Mercurial > repos > tduigou > cloning_simulation
changeset 16:fbb241adf6c2 draft default tip
planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/DnaCauldron/tree/master commit af45e5e0e81535ab0423b0bcff8b5b220bb9b4d0-dirty
author | tduigou |
---|---|
date | Thu, 17 Jul 2025 10:17:24 +0000 |
parents | 074a76e84b80 |
children | |
files | cloning_similation.xml cloning_simulation.py output.html output.json test-data/test-JSON.json |
diffstat | 5 files changed, 904 insertions(+), 441 deletions(-) [+] |
line wrap: on
line diff
--- a/cloning_similation.xml Mon May 26 13:39:57 2025 +0000 +++ b/cloning_similation.xml Thu Jul 17 10:17:24 2025 +0000 @@ -1,8 +1,8 @@ <tool id="cloning_simulation" name="Cloning Simulation" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.09"> <description>A cloning simulator for synthetic biology</description> <macros> - <token name="@VERSION_SUFFIX@">0</token> - <token name="@TOOL_VERSION@">0.1.0</token> + <token name="@VERSION_SUFFIX@">1</token> + <token name="@TOOL_VERSION@">0.2.0</token> </macros> <requirements> <requirement type="package" version="0.1.11">flametree</requirement> @@ -31,36 +31,47 @@ --parts_files '$genbank_file_paths' --domesticated_seq '$domesticated_input_paths' --assembly_csv 'assembly_csv.csv' - --assembly_plan_name '$assembly_plan_name' --file_name_mapping '$file_name_mapping' --file_name_mapping_dom '$file_name_mapping_dom' - --use_file_names_as_id '$adv.use_file_names_as_ids' + --use_json_paramers '$json_use.use_json_paramers' + #if not $json_use.use_json_paramers: + --enzyme '$json_use.enzyme' + --topology '$json_use.topology' + --assembly_plan_name '$json_use.assembly_plan_name' + #else: + --json_conf '$json_use.json_conf' + #end if + --use_file_names_as_id '$use_file_names_as_ids' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' - --output_simulation 'output_zip.zip' - --enzyme '$adv.enzyme' - --topology '$topology' && + --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '$output_zip' ]]></command> <inputs> <param name="genbank_files" type="data_collection" collection_type="list" format="genbank,fasta" label="GenBank and/or Fasta File(s)" optional="True"/> <param name="assembly_csv" type="data" format="csv" label="Assemby csv"/> <param name="domesticated_input" type="data_collection" collection_type="list" format="genbank" label="Domesticated GenBank" optional="True"/> - <param name="assembly_plan_name" type="select" label="Assembly Calss" help="select the assambly class"> - <option value="Type2sRestrictionAssembly" selected="True">GoldenGate_assembly</option> - <option value="GibsonAssembly">Gibson_assembly</option> - <option value="BASICAssembly">BASIC_assembly</option> - <option value="BioBrickStandardAssembly">biobrick_assembly</option> - <option value="LigaseCyclingReactionAssembly">lcr_assembly</option> - </param> - <param name="topology" type="select" label="Assambly Topology" help="select circular or linear topology"> - <option value="linear">linear</option> - <option value="circular" selected="True">circular</option> - </param> - <section name="adv" title="Advanced Options" expanded="false"> - <param name="enzyme" type="text" label="Enzyme" value="auto" optional="True"/> - <param name="use_file_names_as_ids" type="boolean" checked="True" label="Use File Names As Sequence IDs" /> - </section> + <conditional name="json_use"> + <param name="use_json_paramers" type="boolean" checked='false' label="Use parameters from JSON" help="extract parameters from json file" /> + <when value="false"> + <param name="assembly_plan_name" type="select" label="Assembly Calss" help="select the assambly class"> + <option value="Type2sRestrictionAssembly" selected="True">GoldenGate_assembly</option> + <option value="GibsonAssembly">Gibson_assembly</option> + <option value="BASICAssembly">BASIC_assembly</option> + <option value="BioBrickStandardAssembly">biobrick_assembly</option> + <option value="LigaseCyclingReactionAssembly">lcr_assembly</option> + </param> + <param name="topology" type="select" label="Assambly Topology" help="select circular or linear topology"> + <option value="linear">linear</option> + <option value="circular" selected="True">circular</option> + </param> + <param name="enzyme" type="text" label="Enzyme" value="auto" optional="True"/> + </when> + <when value="true"> + <param name="json_conf" type="data" format='json' label="DB config as a json file" help="JSON file specifying the database URI, table name and the column names for annotation and sequence data" optional="false" /> + </when> + </conditional> + <param name="use_file_names_as_ids" type="boolean" checked="True" label="Use File Names As Sequence IDs" /> </inputs> <outputs> <data format="zip" name="output_zip" label="simulation results (zip)"/> @@ -88,9 +99,12 @@ </collection> </param> <param name="assembly_csv" value="2-step_golden_gate_parts/2-step-golden_gate_plan.csv" /> - <param name='assembly_plan_name' value='Type2sRestrictionAssembly' /> - <param name="topology" value="circular"/> - <param name="adv|use_file_names_as_ids" value="True" /> + <conditional nam="json_use"> + <param name='use_json_paramers' value='false' /> + <param name='assembly_plan_name' value='Type2sRestrictionAssembly' /> + <param name="topology" value="circular"/> + </conditional> + <param name="use_file_names_as_ids" value="True" /> <output name="output_zip" ftype='zip'> <assert_contents> <has_archive_member path=".*" n="62"/> @@ -130,9 +144,12 @@ </collection> </param> <param name="assembly_csv" value="Gibson_assembly_dataset/gibson_assembly.csv" /> - <param name='assembly_plan_name' value='GibsonAssembly' /> - <param name="topology" value="circular"/> - <param name="adv|use_file_names_as_ids" value="True" /> + <conditional nam="json_use"> + <param name='use_json_paramers' value='false' /> + <param name='assembly_plan_name' value='GibsonAssembly' /> + <param name="topology" value="circular"/> + </conditional> + <param name="use_file_names_as_ids" value="True" /> <output name="output_zip" ftype='zip'> <assert_contents> <has_archive_member path=".*" n="78"/> @@ -168,9 +185,12 @@ </collection> </param> <param name="assembly_csv" value="lcr_assembly_dataset/assembly_plan.csv" /> - <param name='assembly_plan_name' value='LigaseCyclingReactionAssembly' /> - <param name="topology" value="circular"/> - <param name="adv|use_file_names_as_ids" value="True" /> + <conditional nam="json_use"> + <param name='use_json_paramers' value='false' /> + <param name='assembly_plan_name' value='LigaseCyclingReactionAssembly' /> + <param name="topology" value="circular"/> + </conditional> + <param name="use_file_names_as_ids" value="True" /> <output name="output_zip" ftype='zip'> <assert_contents> <has_archive_member path=".*" n="68"/> @@ -194,9 +214,12 @@ </collection> </param> <param name="assembly_csv" value="BASIC_assembly_dataset/basic_assembly.csv" /> - <param name='assembly_plan_name' value='BASICAssembly' /> - <param name="topology" value="circular"/> - <param name="adv|use_file_names_as_ids" value="True" /> + <conditional nam="json_use"> + <param name='use_json_paramers' value='false' /> + <param name='assembly_plan_name' value='BASICAssembly' /> + <param name="topology" value="circular"/> + </conditional> + <param name="use_file_names_as_ids" value="True" /> <output name="output_zip" ftype='zip'> <assert_contents> <has_archive_member path=".*" n="47"/> @@ -220,9 +243,12 @@ </collection> </param> <param name="assembly_csv" value="BioBrick_assembly_dataset/hierarchical_biobrick.csv" /> - <param name='assembly_plan_name' value='BioBrickStandardAssembly' /> - <param name="topology" value="circular"/> - <param name="adv|use_file_names_as_ids" value="True" /> + <conditional nam="json_use"> + <param name='use_json_paramers' value='false' /> + <param name='assembly_plan_name' value='BioBrickStandardAssembly' /> + <param name="topology" value="circular"/> + </conditional> + <param name="use_file_names_as_ids" value="True" /> <output name="output_zip" ftype='zip'> <assert_contents> <has_archive_member path=".*" n="47"/> @@ -263,7 +289,12 @@ </collection> </param> <param name="assembly_csv" value="2-step_golden_gate_parts/2-step-golden_gate_plan.csv" /> - <param name='assembly_plan_name' value='Type2sRestrictionAssembly' /> + <conditional nam="json_use"> + <param name='use_json_paramers' value='false' /> + <param name='assembly_plan_name' value='Type2sRestrictionAssembly' /> + <param name="topology" value="circular"/> + </conditional> + <param name="use_file_names_as_ids" value="True" /> <param name="domesticated_input"> <collection type="list"> <element name="part_H" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_H.gb" /> @@ -273,8 +304,6 @@ <element name="part_L" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_L.gb" /> </collection> </param> - <param name="topology" value="circular"/> - <param name="adv|use_file_names_as_ids" value="True" /> <output name="output_zip" ftype='zip'> <assert_contents> <has_archive_member path=".*" n="62"/> @@ -325,9 +354,67 @@ </collection> </param> <param name="assembly_csv" value="2-step_golden_gate_parts/2-step-golden_gate_plan.csv" /> - <param name='assembly_plan_name' value='Type2sRestrictionAssembly' /> - <param name="topology" value="circular"/> - <param name="adv|use_file_names_as_ids" value="True" /> + <conditional nam="json_use"> + <param name='use_json_paramers' value='false' /> + <param name='assembly_plan_name' value='Type2sRestrictionAssembly' /> + <param name="topology" value="circular"/> + </conditional> + <param name="use_file_names_as_ids" value="True" /> + <output name="output_zip" ftype='zip'> + <assert_contents> + <has_archive_member path=".*" n="62"/> + <has_archive_member path="assambly_simulation/assembly_plan_graph.pdf"> + <has_size min="5"/> + </has_archive_member> + </assert_contents> + </output> + <output_collection name="construct_gb" type="list" count="4"> + <element name="construct_1"> + <assert_contents> + <has_n_lines min="20" /> + </assert_contents> + </element> + <element name="construct_2"> + <assert_contents> + <has_n_lines min="20" /> + </assert_contents> + </element> + <element name="construct_3"> + <assert_contents> + <has_n_lines min="20" /> + </assert_contents> + </element> + <element name="construct_4"> + <assert_contents> + <has_n_lines min="20" /> + </assert_contents> + </element> + </output_collection> + </test> + <!--test JSON param--> + <test> + <param name="genbank_files"> + <collection type="list"> + <element name="part_A" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_A.gb" /> + <element name="part_B" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_B.gb" /> + <element name="part_C" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_C.gb" /> + <element name="part_D" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_D.gb" /> + <element name="part_E" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_E.gb" /> + <element name="part_F" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_F.gb" /> + <element name="part_G" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_G.gb" /> + <element name="part_H" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_H.gb" /> + <element name="part_I" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_I.gb" /> + <element name="part_J" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_J.gb" /> + <element name="part_K" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_K.gb" /> + <element name="part_L" value="2-step_golden_gate_parts/parts_for_2-step_golden_gate/part_L.gb" /> + </collection> + </param> + <param name="assembly_csv" value="2-step_golden_gate_parts/2-step-golden_gate_plan.csv" /> + <conditional nam="json_use"> + <param name="use_json_paramers" value='true'/> + <param name="json_conf" value="test-JSON.json" /> + </conditional> + <param name="use_file_names_as_ids" value="True" /> <output name="output_zip" ftype='zip'> <assert_contents> <has_archive_member path=".*" n="62"/> @@ -369,6 +456,7 @@ **Parameters**: --------------- +* **Use parameters from JSON**: Yes/No parameter to ask user if he wants to set parameters manually or using JSON file. * **Assemby csv**: csv file containes the construct names with their parts. (Without Header) * **GenBank files**: Upload all the parts sequences for your assembli(es). Don't forget the receptor vector(s). * **Domesticated GenBank**: Dimesticated GenBank list (Optional)
--- a/cloning_simulation.py Mon May 26 13:39:57 2025 +0000 +++ b/cloning_simulation.py Thu Jul 17 10:17:24 2025 +0000 @@ -1,29 +1,30 @@ +import argparse import os +import json +import zipfile +import pandas import dnacauldron -from Bio import SeqIO -import pandas -import argparse -import zipfile + def cloning_simulation(files_to_assembly, domesticated_list, csv_file, assembly_type, topology, file_name_mapping, file_name_mapping_dom, use_file_names_as_id, - outdir_simulation, output_simulation,enzyme,outdir_gb): + outdir_simulation, output_simulation, enzyme, outdir_gb): files_to_assembly = files_to_assembly.split(',') repository = dnacauldron.SequenceRepository() - repository.import_records(files=files_to_assembly, - use_file_names_as_ids=use_file_names_as_id, + repository.import_records(files=files_to_assembly, + use_file_names_as_ids=use_file_names_as_id, topology=topology) if domesticated_list: domesticated_files = domesticated_list.split(',') - repository.import_records(files=domesticated_files, - use_file_names_as_ids=use_file_names_as_id, - topology=topology) + repository.import_records(files=domesticated_files, + use_file_names_as_ids=use_file_names_as_id, + topology=topology) - #refine the real record name dict + # refine the real record name dict if isinstance(file_name_mapping, str): file_name_mapping = dict( item.split(":") for item in file_name_mapping.split(",") @@ -31,11 +32,11 @@ real_names = { os.path.splitext(os.path.basename(k))[0]: v.replace(".gb", "") for k, v in file_name_mapping.items() - } + } - #refine the real record name dict_dom + # refine the real record name dict_dom if file_name_mapping_dom == "": - file_name_mapping_dom={} + file_name_mapping_dom = {} else: if isinstance(file_name_mapping_dom, str): file_name_mapping_dom = dict( @@ -44,10 +45,10 @@ dom_real_names = { os.path.splitext(os.path.basename(k))[0]: v.replace(".gb", "") for k, v in file_name_mapping_dom.items() - } + } real_names.update(dom_real_names) - - #update the records + + # update the records for key, record in list(repository.collections["parts"].items()): current_id = record.id @@ -58,9 +59,9 @@ record.description = new_id repository.collections["parts"][new_id] = repository.collections["parts"].pop(key) ######################################################## - #print (f"repo: {vars(repository)}") - #any(pandas.read_csv(csv_file, index_col=0, header=None).duplicated()) - df=pandas.read_csv(csv_file, index_col=0, header=None) + # print (f"repo: {vars(repository)}") + # any(pandas.read_csv(csv_file, index_col=0, header=None).duplicated()) + df = pandas.read_csv(csv_file, index_col=0, header=None) if df.duplicated().any(): raise ValueError("Duplicate rows found in the data!") @@ -78,7 +79,7 @@ assembly_class = dnacauldron.LigaseCyclingReactionAssembly else: raise ValueError(f"Unsupported assembly type: {assembly_type}") - + new_csvname = "assambly.csv" os.rename(csv_file, new_csvname) @@ -113,9 +114,9 @@ full_path = os.path.join(root, file) arcname = os.path.relpath(full_path, outdir_simulation) zipf.write(full_path, arcname) - #print("Files in the zip archive:") - #for info in zipf.infolist(): - #print(info.filename) + # print("Files in the zip archive:") + # for info in zipf.infolist(): + # print(info.filename) for member in zipf.namelist(): # Only extract actual files inside 'all_construct_records/' (not subfolders) if member.startswith("assambly_simulation/all_construct_records/") and not member.endswith("/"): @@ -137,40 +138,63 @@ def parse_command_line_args(): parser = argparse.ArgumentParser(description="Domestication") - parser.add_argument("--parts_files", required=True, + parser.add_argument("--parts_files", required=True, help="List of GenBank files (Comma-separated)") - parser.add_argument("--domesticated_seq", required=True, + parser.add_argument("--domesticated_seq", required=True, help="output of domestication (ganbank list)") - parser.add_argument("--assembly_csv", required=True, + parser.add_argument("--assembly_csv", required=True, help="csv assembly") - parser.add_argument('--assembly_plan_name', type=str, + parser.add_argument('--assembly_plan_name', type=str, required=False, help='type of assembly') - parser.add_argument('--topology', type=str, + parser.add_argument('--topology', type=str, required=False, help='"circular" or "linear"') - parser.add_argument('--file_name_mapping', type=str, + parser.add_argument('--file_name_mapping', type=str, help='Mapping of Galaxy filenames to original filenames') - parser.add_argument('--file_name_mapping_dom', type=str, + parser.add_argument('--file_name_mapping_dom', type=str, help='Mapping of Galaxy filenames to original domestication filenames') - parser.add_argument("--use_file_names_as_id", type=lambda x: x.lower() == 'true', default=True, + parser.add_argument("--use_file_names_as_id", type=lambda x: x.lower() == 'true', default=True, help="Use file names as IDs (True/False)") - parser.add_argument("--outdir_simulation", required=True, + parser.add_argument("--outdir_simulation", required=True, help="dir output for cloning simulation results") - parser.add_argument("--output_simulation", required=True, + parser.add_argument("--output_simulation", required=True, help="zip output for cloning simulation results") - parser.add_argument('--enzyme', type=str, + parser.add_argument('--enzyme', type=str,required=False, help='enzyme to use') - parser.add_argument("--outdir_gb", required=True, + parser.add_argument("--outdir_gb", required=True, help="dir output constructs gb files") + parser.add_argument("--use_json_paramers", required=True, + help="Use parameters from JSON: true/false") + parser.add_argument("--json_conf", required=False, + help="JSON config file with DB parameters") return parser.parse_args() + if __name__ == "__main__": args = parse_command_line_args() + #json param checking + config_params = {} + use_json = args.use_json_paramers == 'true' + if use_json: + if not args.json_conf: + raise ValueError("You must provide --json_conf when --use_json_paramers is 'true'") + with open(args.json_conf, "r") as f: + config_params = json.load(f) + else: + config_params = { + "assembly_plan_name": args.assembly_plan_name, + "topology": args.topology, + "enzyme": args.enzyme + } + assembly_plan_name = config_params["assembly_plan_name"] + topology = config_params["topology"] + enzyme = config_params["enzyme"] + cloning_simulation( args.parts_files, args.domesticated_seq, - args.assembly_csv, args.assembly_plan_name, args.topology, - args.file_name_mapping, args.file_name_mapping_dom, + args.assembly_csv, assembly_plan_name, topology, + args.file_name_mapping, args.file_name_mapping_dom, args.use_file_names_as_id, args.outdir_simulation, - args.output_simulation, args.enzyme, args.outdir_gb - ) \ No newline at end of file + args.output_simulation, enzyme, args.outdir_gb + )
--- a/output.html Mon May 26 13:39:57 2025 +0000 +++ b/output.html Thu Jul 17 10:17:24 2025 +0000 @@ -285,7 +285,7 @@ var md = window.markdownit({ html: true, }); - target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDEwMC4wJSIgYXJpYS12YWx1ZW5vdz0iNyIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iNyIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSI3IFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjciIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAwLjAlIiBhcmlhLXZhbHVlbm93PSIwIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSI3IiB0aXRsZT0iMCBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDcgfAp8IFBhc3NlZCAgICAgfCA3IHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDAgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAxKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8yLzAvZC9kYXRhc2V0XzIwZDQwNjFhLTgxZTQtNDkxNS1hODQxLWFlOGFhNTk1YzdiNC5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9kL2QvOC9kYXRhc2V0X2RkODQ0ZDYxLWZjMDUtNDFkOS04MTc5LTIxMjMzNjQ5NDA3ZC5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9jL2IvMi9kYXRhc2V0X2NiMjM2MmYzLTRiMzItNDZjYy1hMjI3LWRjMTU3NDJiZjllNy5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy82L2QvNy9kYXRhc2V0XzZkNzJkZmU0LTNlNmItNGJhZi1iN2I1LTlmYjJlODQzNDYxYS5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8zLzMvZS9kYXRhc2V0XzMzZTgwNGIyLTBmYmUtNDg0NC05YjVkLTQyMGU4YTJkYjc3Mi5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8yL2QvYi9kYXRhc2V0XzJkYjM4MjVjLTUzOGItNDgzZi1iNmZmLThkYzRlY2MwMzc4MC5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8wLzQvOC9kYXRhc2V0XzA0OGVlN2VkLTVmNGMtNDFlZi1hZWQ0LWYyY2Y5NzVhYWM5Mi5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9jLzUvMC9kYXRhc2V0X2M1MDVjMTJlLTcwODktNGExNy1hNjA1LTRmMTFkYWQ2ZjFkNy5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy80LzkvMS9kYXRhc2V0XzQ5MTJmMTJkLTA4NDItNDZiNy04YWFmLTJhOTRhNTJmMDRmOC5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9iLzIvYi9kYXRhc2V0X2IyYjk2ZDQxLWM3YzgtNDljMS05ZDM1LWNlYWExYzdkMzAyNy5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9iLzgvZi9kYXRhc2V0X2I4ZmQ0NjEwLTJmNmQtNDc1Yy04NDA1LThiZjhjMmJjMDMwNi5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8wLzkvZi9kYXRhc2V0XzA5ZjRiMDIwLTRlN2ItNDkzOS1iM2JhLTM0OGY5MWNiOTJiYy5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9lL2IvNy9kYXRhc2V0X2ViNzMwMjYzLTk0NDItNGRjYS1hMmRjLTM0YjFjYWU0NTBkNy5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZC9kLzgvZGF0YXNldF9kZDg0NGQ2MS1mYzA1LTQxZDktODE3OS0yMTIzMzY0OTQwN2QuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2MvYi8yL2RhdGFzZXRfY2IyMzYyZjMtNGIzMi00NmNjLWEyMjctZGMxNTc0MmJmOWU3LmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy82L2QvNy9kYXRhc2V0XzZkNzJkZmU0LTNlNmItNGJhZi1iN2I1LTlmYjJlODQzNDYxYS5kYXQ6cGFydF9DLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMy8zL2UvZGF0YXNldF8zM2U4MDRiMi0wZmJlLTQ4NDQtOWI1ZC00MjBlOGEyZGI3NzIuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzIvZC9iL2RhdGFzZXRfMmRiMzgyNWMtNTM4Yi00ODNmLWI2ZmYtOGRjNGVjYzAzNzgwLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8wLzQvOC9kYXRhc2V0XzA0OGVlN2VkLTVmNGMtNDFlZi1hZWQ0LWYyY2Y5NzVhYWM5Mi5kYXQ6cGFydF9GLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYy81LzAvZGF0YXNldF9jNTA1YzEyZS03MDg5LTRhMTctYTYwNS00ZjExZGFkNmYxZDcuZGF0OnBhcnRfRy5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzQvOS8xL2RhdGFzZXRfNDkxMmYxMmQtMDg0Mi00NmI3LThhYWYtMmE5NGE1MmYwNGY4LmRhdDpwYXJ0X0guZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9iLzIvYi9kYXRhc2V0X2IyYjk2ZDQxLWM3YzgtNDljMS05ZDM1LWNlYWExYzdkMzAyNy5kYXQ6cGFydF9JLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYi84L2YvZGF0YXNldF9iOGZkNDYxMC0yZjZkLTQ3NWMtODQwNS04YmY4YzJiYzAzMDYuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzAvOS9mL2RhdGFzZXRfMDlmNGIwMjAtNGU3Yi00OTM5LWIzYmEtMzQ4ZjkxY2I5MmJjLmRhdDpwYXJ0X0suZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9lL2IvNy9kYXRhc2V0X2ViNzMwMjYzLTk0NDItNGRjYS1hMmRjLTM0YjFjYWU0NTBkNy5kYXQ6cGFydF9MLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcG0xZnlvYjN0L2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMTQvb3V0cHV0cy9kYXRhc2V0XzY0ZDFkOGFjLTMyZjAtNDA5NS1iZTMwLTIyZWVlMzFlMjRhNC5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDUwJXzilojilojilojilojiloggICAgIHwgMi80IFswMDowMDwwMDowMCwgIDIuNThpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDMvNCBbMDA6MDE8MDA6MDAsICAyLjI2aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNC80IFswMDowMjwwMDowMCwgIDEuODJpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDR9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDEsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wbTFmeW9iM3QvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDIpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzEvNi9mL2RhdGFzZXRfMTZmNmQ0NzUtYjYxNC00NDI3LTljMDYtOTVhMGQ1NmQzYzkyLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzkvNi9hL2RhdGFzZXRfOTZhOGY3NjktMzU0NC00NDA3LWIwNjQtMDRmMjRhNzMzODk2LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnR2lic29uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOS82L2EvZGF0YXNldF85NmE4Zjc2OS0zNTQ0LTQ0MDctYjA2NC0wNGYyNGE3MzM4OTYuZGF0OmdpYnNvbl9zZXF1ZW5jZXMuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wbTFmeW9iM3Qvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8xNy9vdXRwdXRzL2RhdGFzZXRfNTA1ZWNiMmQtYTZjYS00MGQzLTg2NGQtZmMzZThiYzdmOWExLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNDAlfOKWiOKWiOKWiOKWiCAgICAgIHwgMi81IFswMDowMDwwMDowMCwgIDQuMzVpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MCV84paI4paI4paI4paI4paI4paIICAgIHwgMy81IFswMDowMDwwMDowMCwgIDQuMzNpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA4MCV84paI4paI4paI4paI4paI4paI4paI4paIICB8IDQvNSBbMDA6MDA8MDA6MDAsICA0LjMxaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNS81IFswMDowMTwwMDowMCwgIDMuNTNpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAyLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDMsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiR2lic29uQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcG0xZnlvYjN0L2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAzKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9mLzcvYy9kYXRhc2V0X2Y3YzlhZDc4LThlNzQtNGEzYy05NTc5LTgwYTkzYWM5MjNkZS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9mLzUvNi9kYXRhc2V0X2Y1NjkxM2JkLWZjOTItNDEyMi04Y2YxLWQ5YjFjNjBlODM4NS5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8zL2IvNC9kYXRhc2V0XzNiNGU3NWIzLWU2YTYtNDU5YS1hOTU5LWQ0M2NlMDBjMzcwMS5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0xpZ2FzZUN5Y2xpbmdSZWFjdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2YvNS82L2RhdGFzZXRfZjU2OTEzYmQtZmM5Mi00MTIyLThjZjEtZDliMWM2MGU4Mzg1LmRhdDpSRlBfR0ZQX3BsYXNtaWRfQk9zLmZhLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMy9iLzQvZGF0YXNldF8zYjRlNzViMy1lNmE2LTQ1OWEtYTk1OS1kNDNjZTAwYzM3MDEuZGF0OlJGUF9HRlBfcGxhc21pZF9wYXJ0cy5mYScgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBtMWZ5b2IzdC9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzIxL291dHB1dHMvZGF0YXNldF8zZmM2MjVjOC03MjJmLTRlZmItOWMwOS0wZDY2NGRlYzJhOWQuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCAyLzIgWzAwOjAwPDAwOjAwLCAgMi40MGl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDIsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJMaWdhc2VDeWNsaW5nUmVhY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wbTFmeW9iM3QvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDQpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2YvYi80L2RhdGFzZXRfZmI0MjZjZWItMjYxNS00NDdkLWIwNGUtYWU0MjUzYWY2NDhkLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2UvYy9iL2RhdGFzZXRfZWNiMDU3YTItZGJmOC00MTA1LWI1NWUtZDcyNmVjMWU5NjkzLmRhdCwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzQvOS84L2RhdGFzZXRfNDk4ZmU3MDMtNTJjMy00MTYyLWJlMDAtOTNmNDlmMDA2ODlkLmRhdCwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2QvNC8wL2RhdGFzZXRfZDQwMmMyYWMtY2EyZC00NmI2LWI5ZDMtOTg5NzM5Njc4ZGUxLmRhdCwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzEvMS8yL2RhdGFzZXRfMTEyNGZmMzYtZjYxYi00OTMyLWFkYzYtMGI2ZGU1YTg4OGFlLmRhdCwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzgvZi9lL2RhdGFzZXRfOGZlNTEwOTEtMzljNS00YWE2LWIwZWMtZmJjMzQ3MTJlNDA1LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnQkFTSUNBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9lL2MvYi9kYXRhc2V0X2VjYjA1N2EyLWRiZjgtNDEwNS1iNTVlLWQ3MjZlYzFlOTY5My5kYXQ6R0ZQLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvNC85LzgvZGF0YXNldF80OThmZTcwMy01MmMzLTQxNjItYmUwMC05M2Y0OWYwMDY4OWQuZGF0OnAxNUFfa2FuLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZC80LzAvZGF0YXNldF9kNDAyYzJhYy1jYTJkLTQ2YjYtYjlkMy05ODk3Mzk2NzhkZTEuZGF0OnByb21vdGVyLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMS8xLzIvZGF0YXNldF8xMTI0ZmYzNi1mNjFiLTQ5MzItYWRjNi0wYjZkZTVhODg4YWUuZGF0OlJGUC5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzgvZi9lL2RhdGFzZXRfOGZlNTEwOTEtMzljNS00YWE2LWIwZWMtZmJjMzQ3MTJlNDA1LmRhdDpvbGlnb3MuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wbTFmeW9iM3Qvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8yOC9vdXRwdXRzL2RhdGFzZXRfNDVlZjdlZDUtNDhhYS00Mjg2LWFjNTEtMzM5MWI1OTNlYjdjLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC8xMCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzggWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDYvOCBbMDA6MDA8MDA6MDAsIDQ4Ljk3aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAyLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogOCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiAwfQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiA3LCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBhc3NlbWJseVxfcGxhblxfbmFtZSB8IGAgIkJBU0lDQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcG0xZnlvYjN0L2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyA1KTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy80LzkvYS9kYXRhc2V0XzQ5YWYyYzA4LTNhZDQtNDk0MC1hZTg0LWY5M2RmM2MwZGQ4YS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy84LzkvNC9kYXRhc2V0Xzg5NGQwYTVlLTJkODctNDg2MS04NWNiLWI1Y2FlODNiMTljYi5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8zLzEvNS9kYXRhc2V0XzMxNWYxODA4LWU5YzUtNDVmYi04Y2I4LWI3MWU4ZTFjODM2Ni5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9iLzYvNy9kYXRhc2V0X2I2N2E2MjY0LTYyMDgtNGI0NC04ZmQ0LTQ3YmEzZjk2ZmFlZS5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9jL2UvMy9kYXRhc2V0X2NlM2EwYjVlLTAzNDQtNDQyMi1iODRhLTg0OTA0ODE4Mzk2Yi5kYXQsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9iLzcvZC9kYXRhc2V0X2I3ZGNhY2UzLTJkYmQtNDlkYi05NGFjLTk4NDg1YmY1MjJhYS5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0Jpb0JyaWNrU3RhbmRhcmRBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBtMWZ5b2IzdC9maWxlcy84LzkvNC9kYXRhc2V0Xzg5NGQwYTVlLTJkODctNDg2MS04NWNiLWI1Y2FlODNiMTljYi5kYXQ6QkJhX0UwMDQwX0dGUC5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzMvMS81L2RhdGFzZXRfMzE1ZjE4MDgtZTljNS00NWZiLThjYjgtYjcxZThlMWM4MzY2LmRhdDpCQmFfSjIzMTE5X3Byb20uZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9iLzYvNy9kYXRhc2V0X2I2N2E2MjY0LTYyMDgtNGI0NC04ZmQ0LTQ3YmEzZjk2ZmFlZS5kYXQ6QkJhX0oyMzExOV9wcm9tX2ZsYXdlZC5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2MvZS8zL2RhdGFzZXRfY2UzYTBiNWUtMDM0NC00NDIyLWI4NGEtODQ5MDQ4MTgzOTZiLmRhdDpCQmFfSjYxMDQ4X3Rlcm0uZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9iLzcvZC9kYXRhc2V0X2I3ZGNhY2UzLTJkYmQtNDlkYi05NGFjLTk4NDg1YmY1MjJhYS5kYXQ6QkJhX0s2MTEwOTRfYmFyLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcG0xZnlvYjN0L2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMzUvb3V0cHV0cy9kYXRhc2V0XzNmNzJlYTY0LTAyZjMtNDEzZS05ZDlhLTVjNDNlYWFhZGYxNC5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDY3JXzilojilojilojilojilojilojilosgICB8IDIvMyBbMDA6MDA8MDA6MDAsICAyLjA0aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgMy8zIFswMDowMTwwMDowMCwgIDEuNjZpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDksICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiQmlvQnJpY2tTdGFuZGFyZEFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBtMWZ5b2IzdC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNik8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZi8yLzMvZGF0YXNldF9mMjM5MGJhNi1iODkxLTRjNzUtYjViNC04ODFmYWJlMTUyMTIuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZC9mL2UvZGF0YXNldF9kZmU3MWI3MS0yNjAzLTQ4Y2YtYmY1OS03NzI3MjRhYmVhMGYuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMC85LzIvZGF0YXNldF8wOTI2MDAxNy1hYzllLTQ4NjgtYjM4Ni0yN2VmMDdjYTAzYTguZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOC80L2UvZGF0YXNldF84NGU1NzAyNi00ZTg1LTRhNjMtYjY2YS04YmFlNWI3NjdmMGMuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvNy9kLzIvZGF0YXNldF83ZDI2ZDM2ZC1iYjFjLTRmODMtYmU0Zi0zMzExZTRlYzI0NDEuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOC9hLzAvZGF0YXNldF84YTBmZjFlNS1hYWY3LTQ2MWUtYjY0Mi1iNjBlNWNmMTMxMzIuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZi85LzQvZGF0YXNldF9mOTRmYjdjOS03NjFiLTRkYzEtOGNhYS1hMDJlZTc4OTJjNTkuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYy83L2UvZGF0YXNldF9jN2U0MDhiNS05MjdiLTQ5NjYtOGQxZi0wOGRlM2I0MWZjMzQuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYi8yLzYvZGF0YXNldF9iMjYzZTExZi0xZDUyLTQ1ZDQtODY3OS04YmIyMzY2ODE1NGEuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYy80L2MvZGF0YXNldF9jNGMwOGU4Zi0zZmZjLTQwZDAtOGEyNy0xYmVlOGI1ZjZmZWUuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZC9kL2MvZGF0YXNldF9kZGNiOWY5My05YjRmLTQxZTMtYTFkZi01NTM3YjYzMjZhNzguZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOS85L2IvZGF0YXNldF85OWJhYzk4ZC0xY2JmLTRhYjEtYTY4MC00OWNkYjcyMWU0NDcuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvNi84LzUvZGF0YXNldF82ODVjZDU3MS04MGI1LTRjMDMtYjI0Ny00ZmI1MWUxOTk2MzkuZGF0JyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZC9mL2UvZGF0YXNldF9kZmU3MWI3MS0yNjAzLTQ4Y2YtYmY1OS03NzI3MjRhYmVhMGYuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzAvOS8yL2RhdGFzZXRfMDkyNjAwMTctYWM5ZS00ODY4LWIzODYtMjdlZjA3Y2EwM2E4LmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy84LzQvZS9kYXRhc2V0Xzg0ZTU3MDI2LTRlODUtNGE2My1iNjZhLThiYWU1Yjc2N2YwYy5kYXQ6cGFydF9DLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvNy9kLzIvZGF0YXNldF83ZDI2ZDM2ZC1iYjFjLTRmODMtYmU0Zi0zMzExZTRlYzI0NDEuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzgvYS8wL2RhdGFzZXRfOGEwZmYxZTUtYWFmNy00NjFlLWI2NDItYjYwZTVjZjEzMTMyLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9mLzkvNC9kYXRhc2V0X2Y5NGZiN2M5LTc2MWItNGRjMS04Y2FhLWEwMmVlNzg5MmM1OS5kYXQ6cGFydF9GLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYy83L2UvZGF0YXNldF9jN2U0MDhiNS05MjdiLTQ5NjYtOGQxZi0wOGRlM2I0MWZjMzQuZGF0OnBhcnRfRy5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYi8yLzYvZGF0YXNldF9iMjYzZTExZi0xZDUyLTQ1ZDQtODY3OS04YmIyMzY2ODE1NGEuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2MvNC9jL2RhdGFzZXRfYzRjMDhlOGYtM2ZmYy00MGQwLThhMjctMWJlZThiNWY2ZmVlLmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy9kL2QvYy9kYXRhc2V0X2RkY2I5ZjkzLTliNGYtNDFlMy1hMWRmLTU1MzdiNjMyNmE3OC5kYXQ6cGFydF9KLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOS85L2IvZGF0YXNldF85OWJhYzk4ZC0xY2JmLTRhYjEtYTY4MC00OWNkYjcyMWU0NDcuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzYvOC81L2RhdGFzZXRfNjg1Y2Q1NzEtODBiNS00YzAzLWIyNDctNGZiNTFlMTk5NjM5LmRhdDpwYXJ0X0wuZ2InIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wbTFmeW9iM3Qvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC80OS9vdXRwdXRzL2RhdGFzZXRfYjVjMWQ5MTgtOWE4Ni00N2FjLTlmZDAtMGQxZWVlY2IzNTE1LmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNTAlfOKWiOKWiOKWiOKWiOKWiCAgICAgfCAyLzQgWzAwOjAwPDAwOjAwLCAgMi40MGl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDc1JXzilojilojilojilojilojilojilojilowgIHwgMy80IFswMDowMTwwMDowMCwgIDIuMjFpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA0LzQgWzAwOjAyPDAwOjAwLCAgMS44MWl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDAsICd2YWxpZF9hc3NlbWJsaWVzJzogNH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTIsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxMSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBtMWZ5b2IzdC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNyk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMy9jLzEvZGF0YXNldF8zYzEyMjFiYy1iYTUzLTRlZGUtODk5Yy1lNGRlZmJlODM4ZWIuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wbTFmeW9iM3QvZmlsZXMvNi84L2UvZGF0YXNldF82OGVlMmU2OS1jMmQ5LTQzY2QtODUxZS0wYjY2MDg4NGNhYzIuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvNS9jLzIvZGF0YXNldF81YzI5OGFmMy05Y2RiLTQ4MzctODA1NC04OTAzYzI2ODNmODUuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOS9jLzEvZGF0YXNldF85YzFmZDY1MS1kZTFlLTRiYTktYThlMS1lZTc4OTUzYjBjOGUuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvZS83LzcvZGF0YXNldF9lNzdjOTU1ZC1lOWI1LTQxNzUtYTA2MS04MWI5YTc4MWQyZmYuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMy81L2QvZGF0YXNldF8zNWRmMWNlYi00MTZiLTRjMmQtYjIwYS0zZWZlOTZiNjc3MGYuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYy8wLzIvZGF0YXNldF9jMDJmYzlmYi1kYzRlLTQ5ZTEtYjk5Zi04MTk5ZmQ5N2Q3OTUuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMy8zLzkvZGF0YXNldF8zMzliNGNiZi00Y2EyLTRjNDktOWNjNC05Nzk2YzViOWJhOGEuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMi8yLzQvZGF0YXNldF8yMjQ2OTQ3YS1kYmI3LTRlZDItODU1YS01NmE0MmE4OTlhYWIuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMC9hLzkvZGF0YXNldF8wYTkzNWMwMy00OGE3LTRjOGEtODA3Ny1hZWE0MDdlNTI4NWQuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMC80L2IvZGF0YXNldF8wNGJjZjljMS1jY2M4LTRkNTItYTczOS1mYjM2MzBmOTBiMDUuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvNC8wLzIvZGF0YXNldF80MDJhYWFiZS0wZWE5LTQ1MTktOTk4Yi0xMWNmNmIwN2ExZGYuZGF0LC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOS9jL2YvZGF0YXNldF85Y2Y3MTk4NS1hNjJkLTRkODktODQ1Yy0yYjk5NmQ4MDk2ZmEuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzYvOC9lL2RhdGFzZXRfNjhlZTJlNjktYzJkOS00M2NkLTg1MWUtMGI2NjA4ODRjYWMyLmRhdDpwYXJ0X0EuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy81L2MvMi9kYXRhc2V0XzVjMjk4YWYzLTljZGItNDgzNy04MDU0LTg5MDNjMjY4M2Y4NS5kYXQ6cGFydF9CLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOS9jLzEvZGF0YXNldF85YzFmZDY1MS1kZTFlLTRiYTktYThlMS1lZTc4OTUzYjBjOGUuZGF0OnBhcnRfQy5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzL2UvNy83L2RhdGFzZXRfZTc3Yzk1NWQtZTliNS00MTc1LWEwNjEtODFiOWE3ODFkMmZmLmRhdDpwYXJ0X0QuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8zLzUvZC9kYXRhc2V0XzM1ZGYxY2ViLTQxNmItNGMyZC1iMjBhLTNlZmU5NmI2NzcwZi5kYXQ6cGFydF9FLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvYy8wLzIvZGF0YXNldF9jMDJmYzlmYi1kYzRlLTQ5ZTEtYjk5Zi04MTk5ZmQ5N2Q3OTUuZGF0OnBhcnRfRi5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzMvMy85L2RhdGFzZXRfMzM5YjRjYmYtNGNhMi00YzQ5LTljYzQtOTc5NmM1YjliYThhLmRhdDpwYXJ0X0cuZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy8yLzIvNC9kYXRhc2V0XzIyNDY5NDdhLWRiYjctNGVkMi04NTVhLTU2YTQyYTg5OWFhYi5kYXQ6cGFydF9ILmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvMC9hLzkvZGF0YXNldF8wYTkzNWMwMy00OGE3LTRjOGEtODA3Ny1hZWE0MDdlNTI4NWQuZGF0OnBhcnRfSS5nYiwvdG1wL3RtcG0xZnlvYjN0L2ZpbGVzLzAvNC9iL2RhdGFzZXRfMDRiY2Y5YzEtY2NjOC00ZDUyLWE3MzktZmIzNjMwZjkwYjA1LmRhdDpwYXJ0X0ouZ2IsL3RtcC90bXBtMWZ5b2IzdC9maWxlcy80LzAvMi9kYXRhc2V0XzQwMmFhYWJlLTBlYTktNDUxOS05OThiLTExY2Y2YjA3YTFkZi5kYXQ6cGFydF9LLmdiLC90bXAvdG1wbTFmeW9iM3QvZmlsZXMvOS9jL2YvZGF0YXNldF85Y2Y3MTk4NS1hNjJkLTRkODktODQ1Yy0yYjk5NmQ4MDk2ZmEuZGF0OnBhcnRfTC5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBtMWZ5b2IzdC9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzYzL291dHB1dHMvZGF0YXNldF8wMmU3ZWE1ZS02YzhmLTQxOWQtODJkZS00NzZiY2NjNTUwZWMuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA1MCV84paI4paI4paI4paI4paIICAgICB8IDIvNCBbMDA6MDA8MDA6MDAsICAyLjQzaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNzUlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWjCAgfCAzLzQgWzAwOjAxPDAwOjAwLCAgMi4yMWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDQvNCBbMDA6MDI8MDA6MDAsICAxLjgxaXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiA0fQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIE5vbmUgYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxNCwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBtMWZ5b2IzdC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCjwvZGV0YWlscz4K')); + target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDEwMC4wJSIgYXJpYS12YWx1ZW5vdz0iOCIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iOCIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSI4IFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjgiIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAwLjAlIiBhcmlhLXZhbHVlbm93PSIwIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSI4IiB0aXRsZT0iMCBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDggfAp8IFBhc3NlZCAgICAgfCA4IHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDAgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAxKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBlNnBtZzdqdy9maWxlcy8wL2IvMS9kYXRhc2V0XzBiMWQ5YTMxLWUxMjQtNDJjZi1iOTk1LWY3YzEzNjkwMGYyOS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBlNnBtZzdqdy9maWxlcy83LzYvOS9kYXRhc2V0Xzc2OTUyYzNjLWZjMTItNDc0OC04N2NiLWI2YWYzOGRiOWQzZS5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy85L2EvNi9kYXRhc2V0XzlhNjBmNGFmLWQ3ZDQtNGJjZS1hYjc5LTM3MThkYWM0NjhlZC5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9mL2UvYy9kYXRhc2V0X2ZlYzA4MjM2LTRiMWItNDE3NC1hZjljLTdjM2E4NDQ4NzQyNC5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8yLzAvNi9kYXRhc2V0XzIwNmNhNDE5LTc5MjEtNGZjMS05YmUwLTEyYzM1Yzg0YmQ2NS5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8zLzEvYi9kYXRhc2V0XzMxYmIwYjI0LWU3NWMtNDkzZi1hMDE2LTM3OTZkNTRlYWExOC5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy82L2YvYS9kYXRhc2V0XzZmYTk1M2M3LWE5YTctNGJhNy1hMDMwLWRhMTQ3ZWFkZWZkYy5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy83L2UvZi9kYXRhc2V0XzdlZjE0N2NiLWYzMzEtNDM1Yy05YTFlLTZmMGU1MmFiZDEwMi5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy85L2IvNi9kYXRhc2V0XzliNjExYzU1LWMxOWUtNDJjZS1iNDVjLTQwYWMwNDliOTRjYi5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy85L2IvZC9kYXRhc2V0XzliZDg2MjdlLTA0MTctNDc1Zi1iODU1LTM1MmJjZDg5MDYzMC5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8xLzYvNC9kYXRhc2V0XzE2NDEzNWMwLTdiNTQtNGVhMC04NmQzLWU5ZTkyOGNiYzM5OC5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9iL2UvOS9kYXRhc2V0X2JlOTI3YmI0LTFhMzQtNDNiYi04NjgwLTgxNTg5NDU5NzMyYi5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy84L2EvNC9kYXRhc2V0XzhhNGJhYjMzLWIzZTgtNDU4Ni1iMzc1LWFlOTA0ZGMwNjc5My5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBlNnBtZzdqdy9maWxlcy83LzYvOS9kYXRhc2V0Xzc2OTUyYzNjLWZjMTItNDc0OC04N2NiLWI2YWYzOGRiOWQzZS5kYXQ6cGFydF9BLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvOS9hLzYvZGF0YXNldF85YTYwZjRhZi1kN2Q0LTRiY2UtYWI3OS0zNzE4ZGFjNDY4ZWQuZGF0OnBhcnRfQi5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2YvZS9jL2RhdGFzZXRfZmVjMDgyMzYtNGIxYi00MTc0LWFmOWMtN2MzYTg0NDg3NDI0LmRhdDpwYXJ0X0MuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8yLzAvNi9kYXRhc2V0XzIwNmNhNDE5LTc5MjEtNGZjMS05YmUwLTEyYzM1Yzg0YmQ2NS5kYXQ6cGFydF9ELmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMy8xL2IvZGF0YXNldF8zMWJiMGIyNC1lNzVjLTQ5M2YtYTAxNi0zNzk2ZDU0ZWFhMTguZGF0OnBhcnRfRS5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzYvZi9hL2RhdGFzZXRfNmZhOTUzYzctYTlhNy00YmE3LWEwMzAtZGExNDdlYWRlZmRjLmRhdDpwYXJ0X0YuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy83L2UvZi9kYXRhc2V0XzdlZjE0N2NiLWYzMzEtNDM1Yy05YTFlLTZmMGU1MmFiZDEwMi5kYXQ6cGFydF9HLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvOS9iLzYvZGF0YXNldF85YjYxMWM1NS1jMTllLTQyY2UtYjQ1Yy00MGFjMDQ5Yjk0Y2IuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzkvYi9kL2RhdGFzZXRfOWJkODYyN2UtMDQxNy00NzVmLWI4NTUtMzUyYmNkODkwNjMwLmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8xLzYvNC9kYXRhc2V0XzE2NDEzNWMwLTdiNTQtNGVhMC04NmQzLWU5ZTkyOGNiYzM5OC5kYXQ6cGFydF9KLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYi9lLzkvZGF0YXNldF9iZTkyN2JiNC0xYTM0LTQzYmItODY4MC04MTU4OTQ1OTczMmIuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzgvYS80L2RhdGFzZXRfOGE0YmFiMzMtYjNlOC00NTg2LWIzNzUtYWU5MDRkYzA2NzkzLmRhdDpwYXJ0X0wuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2pzb25fcGFyYW1lcnMgJ2ZhbHNlJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5JyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBlNnBtZzdqdy9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzE0L291dHB1dHMvZGF0YXNldF85NWUyMWViYy01YmZmLTQ1NDQtYTVkNC0wNmRiMjJlOTEwNjYuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA1MCV84paI4paI4paI4paI4paIICAgICB8IDIvNCBbMDA6MDA8MDA6MDAsICAyLjQ1aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNzUlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWjCAgfCAzLzQgWzAwOjAxPDAwOjAwLCAgMi4yM2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDQvNCBbMDA6MDI8MDA6MDAsICAxLjg0aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiA0fQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxLCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBqc29uXF91c2UgfCBgIHsiX19jdXJyZW50X2Nhc2VfXyI6IDAsICJhc3NlbWJseV9wbGFuX25hbWUiOiAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIsICJlbnp5bWUiOiAiYXV0byIsICJ0b3BvbG9neSI6ICJjaXJjdWxhciIsICJ1c2VfanNvbl9wYXJhbWVycyI6IGZhbHNlfSBgIHwKICAgICAgIHwgdXNlXF9maWxlXF9uYW1lc1xfYXNcX2lkcyB8IGAgdHJ1ZSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBlNnBtZzdqdy9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgMik8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvMi9hL2QvZGF0YXNldF8yYWQ5YWZiYi03OTUzLTRjZDktYmZmMy00ODI5OTM3OTEwMjguZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvNy8wLzgvZGF0YXNldF83MDhlMTkwMS1iZTY0LTQxZjktYjc2Ny1iMTc0OWE3MWI3ODUuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvNy8wLzgvZGF0YXNldF83MDhlMTkwMS1iZTY0LTQxZjktYjc2Ny1iMTc0OWE3MWI3ODUuZGF0OmdpYnNvbl9zZXF1ZW5jZXMuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2pzb25fcGFyYW1lcnMgJ2ZhbHNlJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdHaWJzb25Bc3NlbWJseScgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wZTZwbWc3ancvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8xNy9vdXRwdXRzL2RhdGFzZXRfOWE1OGUxNjktNDdmNC00NDE4LThhM2ItMGZlYzg2MjQyYjVjLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNDAlfOKWiOKWiOKWiOKWiCAgICAgIHwgMi81IFswMDowMDwwMDowMCwgIDQuMzdpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MCV84paI4paI4paI4paI4paI4paIICAgIHwgMy81IFswMDowMDwwMDowMCwgIDQuMzhpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA4MCV84paI4paI4paI4paI4paI4paI4paI4paIICB8IDQvNSBbMDA6MDA8MDA6MDAsICA0LjM4aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNS81IFswMDowMTwwMDowMCwgIDMuNjJpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAyLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDMsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGpzb25cX3VzZSB8IGAgeyJfX2N1cnJlbnRfY2FzZV9fIjogMCwgImFzc2VtYmx5X3BsYW5fbmFtZSI6ICJHaWJzb25Bc3NlbWJseSIsICJlbnp5bWUiOiAiYXV0byIsICJ0b3BvbG9neSI6ICJjaXJjdWxhciIsICJ1c2VfanNvbl9wYXJhbWVycyI6IGZhbHNlfSBgIHwKICAgICAgIHwgdXNlXF9maWxlXF9uYW1lc1xfYXNcX2lkcyB8IGAgdHJ1ZSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBlNnBtZzdqdy9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgMyk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvZC80L2YvZGF0YXNldF9kNGY0MmNmNC04NWVkLTRlYjctYWI3OS05NDQyMzk2NzFhMGMuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvYy82LzYvZGF0YXNldF9jNjY2NjJmNS01MzA3LTQwZjUtYjdkOC0xYWUzNGU5YmM1OTQuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvZS9iL2IvZGF0YXNldF9lYmI3N2Q4OS1mY2FmLTRhYWQtYWUwNy1iZDZkZjFjYmM3NWQuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvYy82LzYvZGF0YXNldF9jNjY2NjJmNS01MzA3LTQwZjUtYjdkOC0xYWUzNGU5YmM1OTQuZGF0OlJGUF9HRlBfcGxhc21pZF9CT3MuZmEsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9lL2IvYi9kYXRhc2V0X2ViYjc3ZDg5LWZjYWYtNGFhZC1hZTA3LWJkNmRmMWNiYzc1ZC5kYXQ6UkZQX0dGUF9wbGFzbWlkX3BhcnRzLmZhJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9qc29uX3BhcmFtZXJzICdmYWxzZScgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnTGlnYXNlQ3ljbGluZ1JlYWN0aW9uQXNzZW1ibHknIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcGU2cG1nN2p3L2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMjEvb3V0cHV0cy9kYXRhc2V0X2UzN2IyZDU0LWJkNGQtNDQ1Yy05MTcxLWRkMDQ5ZjQ5ZWQzNi5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMiBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMiBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDIvMiBbMDA6MDA8MDA6MDAsICAyLjM1aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMiwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiAwfQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiA1LCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBqc29uXF91c2UgfCBgIHsiX19jdXJyZW50X2Nhc2VfXyI6IDAsICJhc3NlbWJseV9wbGFuX25hbWUiOiAiTGlnYXNlQ3ljbGluZ1JlYWN0aW9uQXNzZW1ibHkiLCAiZW56eW1lIjogImF1dG8iLCAidG9wb2xvZ3kiOiAiY2lyY3VsYXIiLCAidXNlX2pzb25fcGFyYW1lcnMiOiBmYWxzZX0gYCB8CiAgICAgICB8IHVzZVxfZmlsZVxfbmFtZXNcX2FzXF9pZHMgfCBgIHRydWUgYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wZTZwbWc3ancvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDQpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2IvZi8xL2RhdGFzZXRfYmYxMWJkM2QtY2EwZS00NzU2LTgxMDYtMTQyMTg0ZGM1N2U3LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2EvZi8zL2RhdGFzZXRfYWYzMmRiMTYtZTZkYy00OTNmLWI2YTctNWEzYjY3MjVhNzM2LmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2EvNC85L2RhdGFzZXRfYTQ5MzZlOWItZDhiZS00Y2Y5LThkNmMtMWM2MjU2NzZiYzU4LmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzAvMy9jL2RhdGFzZXRfMDNjZGExMjAtMGM0ZC00NDUyLWFmYWItOTI1ZGY0YTU3MjNhLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzMvYi8xL2RhdGFzZXRfM2IxNjRjYWQtZmJhYi00N2E5LTg5NjUtYzk1ODIwODI2ZGFmLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2EvYi8zL2RhdGFzZXRfYWIzNTUxMWQtMmZiZi00MDE0LWIwNzktNjViMjcwYmQ5Y2M4LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2EvZi8zL2RhdGFzZXRfYWYzMmRiMTYtZTZkYy00OTNmLWI2YTctNWEzYjY3MjVhNzM2LmRhdDpHRlAuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9hLzQvOS9kYXRhc2V0X2E0OTM2ZTliLWQ4YmUtNGNmOS04ZDZjLTFjNjI1Njc2YmM1OC5kYXQ6cDE1QV9rYW4uZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8wLzMvYy9kYXRhc2V0XzAzY2RhMTIwLTBjNGQtNDQ1Mi1hZmFiLTkyNWRmNGE1NzIzYS5kYXQ6cHJvbW90ZXIuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8zL2IvMS9kYXRhc2V0XzNiMTY0Y2FkLWZiYWItNDdhOS04OTY1LWM5NTgyMDgyNmRhZi5kYXQ6UkZQLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYS9iLzMvZGF0YXNldF9hYjM1NTExZC0yZmJmLTQwMTQtYjA3OS02NWIyNzBiZDljYzguZGF0Om9saWdvcy5mYScgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfanNvbl9wYXJhbWVycyAnZmFsc2UnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0JBU0lDQXNzZW1ibHknIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcGU2cG1nN2p3L2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMjgvb3V0cHV0cy9kYXRhc2V0X2YxMzBlODRlLTgxNDAtNDQ5Yi1iYjdlLThkZjM3MGE0MjFkMS5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMTAgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC84IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNzUlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWjCAgfCA2LzggWzAwOjAwPDAwOjAwLCA0OS42Nml0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMiwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDgsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNywgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwganNvblxfdXNlIHwgYCB7Il9fY3VycmVudF9jYXNlX18iOiAwLCAiYXNzZW1ibHlfcGxhbl9uYW1lIjogIkJBU0lDQXNzZW1ibHkiLCAiZW56eW1lIjogImF1dG8iLCAidG9wb2xvZ3kiOiAiY2lyY3VsYXIiLCAidXNlX2pzb25fcGFyYW1lcnMiOiBmYWxzZX0gYCB8CiAgICAgICB8IHVzZVxfZmlsZVxfbmFtZXNcX2FzXF9pZHMgfCBgIHRydWUgYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wZTZwbWc3ancvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDUpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzMvMC83L2RhdGFzZXRfMzA3ZmY3NzQtNzhlNS00MTBiLTkyNmItMzk2YmYwMzQ2ZjVmLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzgvNy85L2RhdGFzZXRfODc5ZjZjNDktMTRmNS00Zjc4LThiMzItZjA2ZDA5OGE3ZjRmLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2EvMy9jL2RhdGFzZXRfYTNjYjhjZWEtMTZhZC00YTMzLThlNDEtYTliMzc4YjI5NzRhLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2MvNy9iL2RhdGFzZXRfYzdiY2E3MGUtMGFlOS00MDYyLWIxODUtMWUwZTVlZDExNmE2LmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2IvMy9hL2RhdGFzZXRfYjNhMTFiYzktNGMyOS00NzBjLTg5ODUtZDg0NWMyZjllMTgzLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzAvOC8xL2RhdGFzZXRfMDgxMjkzNDAtMjQwYy00MzQ5LWFmNmMtMDM3OWQzMmNhZTljLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzgvNy85L2RhdGFzZXRfODc5ZjZjNDktMTRmNS00Zjc4LThiMzItZjA2ZDA5OGE3ZjRmLmRhdDpCQmFfRTAwNDBfR0ZQLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYS8zL2MvZGF0YXNldF9hM2NiOGNlYS0xNmFkLTRhMzMtOGU0MS1hOWIzNzhiMjk3NGEuZGF0OkJCYV9KMjMxMTlfcHJvbS5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2MvNy9iL2RhdGFzZXRfYzdiY2E3MGUtMGFlOS00MDYyLWIxODUtMWUwZTVlZDExNmE2LmRhdDpCQmFfSjIzMTE5X3Byb21fZmxhd2VkLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYi8zL2EvZGF0YXNldF9iM2ExMWJjOS00YzI5LTQ3MGMtODk4NS1kODQ1YzJmOWUxODMuZGF0OkJCYV9KNjEwNDhfdGVybS5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzAvOC8xL2RhdGFzZXRfMDgxMjkzNDAtMjQwYy00MzQ5LWFmNmMtMDM3OWQzMmNhZTljLmRhdDpCQmFfSzYxMTA5NF9iYXIuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2pzb25fcGFyYW1lcnMgJ2ZhbHNlJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdCaW9Ccmlja1N0YW5kYXJkQXNzZW1ibHknIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcGU2cG1nN2p3L2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMzUvb3V0cHV0cy9kYXRhc2V0X2MyZjdkNzFmLWRlMjctNDhjNi1iYzFmLWI2NTZiYzhkNTNmMS5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDY3JXzilojilojilojilojilojilojilosgICB8IDIvMyBbMDA6MDE8MDA6MDAsICAxLjkzaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgMy8zIFswMDowMTwwMDowMCwgIDEuNTlpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDksICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGpzb25cX3VzZSB8IGAgeyJfX2N1cnJlbnRfY2FzZV9fIjogMCwgImFzc2VtYmx5X3BsYW5fbmFtZSI6ICJCaW9Ccmlja1N0YW5kYXJkQXNzZW1ibHkiLCAiZW56eW1lIjogImF1dG8iLCAidG9wb2xvZ3kiOiAiY2lyY3VsYXIiLCAidXNlX2pzb25fcGFyYW1lcnMiOiBmYWxzZX0gYCB8CiAgICAgICB8IHVzZVxfZmlsZVxfbmFtZXNcX2FzXF9pZHMgfCBgIHRydWUgYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wZTZwbWc3ancvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDYpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzkvYi81L2RhdGFzZXRfOWI1M2U3MzYtOWFhNC00MjhiLTg2NmItNzJkMmY1MjVmOTllLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2QvMS81L2RhdGFzZXRfZDE1ZmYwMjYtYmFiZi00MWQxLWI5ZTAtZTcwMWUwYTUxYjZiLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzIvOS84L2RhdGFzZXRfMjk4ZDk4M2MtM2U1Yy00YjkzLTk0NGMtYjM3MmQ0Mjk1NzQwLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzQvZS8zL2RhdGFzZXRfNGUzYzAxMDMtZGJiOC00NjVjLWFiYmYtN2Y5YjY2YTgyNjNiLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzEvNS80L2RhdGFzZXRfMTU0NTIyODQtYmMxOS00M2Q2LTgzNjctMjc1MzA1NmE5NmVjLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzAvZi8zL2RhdGFzZXRfMGYzNmIzM2QtOGMxYy00NzJiLWFiYmQtYzNmNjM0MTgxNzRhLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2EvZC9kL2RhdGFzZXRfYWRkZTk3MGYtODdhOC00NWIwLTkzMDMtYWNmMGQ3ZWQ3YzJlLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzkvNi9iL2RhdGFzZXRfOTZiZDg2ZjQtY2QwYS00YTM0LWExY2YtMzA0NGE2MmY3N2EyLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzUvNS84L2RhdGFzZXRfNTU4NzY3NmEtOGM4MS00OTU0LWJmMzMtMmM5NjViZjc2MzVkLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2IvZi9iL2RhdGFzZXRfYmZiODE1YTItNjdjOC00Y2I1LWFmYjgtZWEzNWNmYTM3MmViLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzIvMS82L2RhdGFzZXRfMjE2YTk5OGMtMzVkZS00OGMyLWEwMTctYzNmZWQ5Nzg3MzE5LmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzgvOS8xL2RhdGFzZXRfODkxMTJlM2YtZTkzNi00NDE5LTkzOGQtYjRiNGRhYTY4ZTQwLmRhdCwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzUvMy8yL2RhdGFzZXRfNTMyMThkNzMtMGY2MS00NTI3LWIyNzktNjJjZWQ5ODcwMWQxLmRhdCcgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvZC8xLzUvZGF0YXNldF9kMTVmZjAyNi1iYWJmLTQxZDEtYjllMC1lNzAxZTBhNTFiNmIuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzIvOS84L2RhdGFzZXRfMjk4ZDk4M2MtM2U1Yy00YjkzLTk0NGMtYjM3MmQ0Mjk1NzQwLmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy80L2UvMy9kYXRhc2V0XzRlM2MwMTAzLWRiYjgtNDY1Yy1hYmJmLTdmOWI2NmE4MjYzYi5kYXQ6cGFydF9DLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMS81LzQvZGF0YXNldF8xNTQ1MjI4NC1iYzE5LTQzZDYtODM2Ny0yNzUzMDU2YTk2ZWMuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzAvZi8zL2RhdGFzZXRfMGYzNmIzM2QtOGMxYy00NzJiLWFiYmQtYzNmNjM0MTgxNzRhLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9hL2QvZC9kYXRhc2V0X2FkZGU5NzBmLTg3YTgtNDViMC05MzAzLWFjZjBkN2VkN2MyZS5kYXQ6cGFydF9GLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvOS82L2IvZGF0YXNldF85NmJkODZmNC1jZDBhLTRhMzQtYTFjZi0zMDQ0YTYyZjc3YTIuZGF0OnBhcnRfRy5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvNS81LzgvZGF0YXNldF81NTg3Njc2YS04YzgxLTQ5NTQtYmYzMy0yYzk2NWJmNzYzNWQuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2IvZi9iL2RhdGFzZXRfYmZiODE1YTItNjdjOC00Y2I1LWFmYjgtZWEzNWNmYTM3MmViLmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8yLzEvNi9kYXRhc2V0XzIxNmE5OThjLTM1ZGUtNDhjMi1hMDE3LWMzZmVkOTc4NzMxOS5kYXQ6cGFydF9KLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvOC85LzEvZGF0YXNldF84OTExMmUzZi1lOTM2LTQ0MTktOTM4ZC1iNGI0ZGFhNjhlNDAuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzUvMy8yL2RhdGFzZXRfNTMyMThkNzMtMGY2MS00NTI3LWIyNzktNjJjZWQ5ODcwMWQxLmRhdDpwYXJ0X0wuZ2InIC0tdXNlX2pzb25fcGFyYW1lcnMgJ2ZhbHNlJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5JyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBlNnBtZzdqdy9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzQ5L291dHB1dHMvZGF0YXNldF84NTY1N2MzOC1jOWJlLTQyMWEtOGQyZS0zYmE1NGRjZDFlZTEuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA1MCV84paI4paI4paI4paI4paIICAgICB8IDIvNCBbMDA6MDA8MDA6MDAsICAyLjQzaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNzUlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWjCAgfCAzLzQgWzAwOjAxPDAwOjAwLCAgMi4yMml0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDQvNCBbMDA6MDI8MDA6MDAsICAxLjgyaXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiA0fQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxMiwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDExLCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBqc29uXF91c2UgfCBgIHsiX19jdXJyZW50X2Nhc2VfXyI6IDAsICJhc3NlbWJseV9wbGFuX25hbWUiOiAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIsICJlbnp5bWUiOiAiYXV0byIsICJ0b3BvbG9neSI6ICJjaXJjdWxhciIsICJ1c2VfanNvbl9wYXJhbWVycyI6IGZhbHNlfSBgIHwKICAgICAgIHwgdXNlXF9maWxlXF9uYW1lc1xfYXNcX2lkcyB8IGAgdHJ1ZSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBlNnBtZzdqdy9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNyk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvMi84LzQvZGF0YXNldF8yODQ0ZmM5OS0zZGIyLTQ1OGItOTY1Ni05YzE4OTYyYWVkMTMuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvMy82LzcvZGF0YXNldF8zNjdjOGFkYi02MjNiLTRmYzItODcxMC0xNDAyYjkwZGMyN2EuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYi84L2MvZGF0YXNldF9iOGMxNTY4My1hMzY5LTRiNTItYjk0ZC01MmU4MjNlMmRiYzQuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvNy9iLzcvZGF0YXNldF83YjcxMTk3Yi05Y2VjLTRlYmMtYTBhYi05YTkwNzA4NTY2ODAuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMC84LzIvZGF0YXNldF8wODIwM2JmNC1lMjg1LTRlNDEtODQ1ZC1jN2RiMTA3MDlhMTQuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYi8xLzcvZGF0YXNldF9iMTc0ZjZmOC1lYjBjLTQ0YjktOWQxYi04OWI3YTYyYmM0OTQuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYy81LzkvZGF0YXNldF9jNTk4ZDNiNi01OGFiLTQ2OTUtOTlhNS01ZmI2MTk3YTQ4MjMuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMC85L2UvZGF0YXNldF8wOWVlYzQ1Ny0zN2RlLTRjMmMtOGI3ZS0xYmUxZGZiYWZmZDYuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvZS84LzQvZGF0YXNldF9lODRiYzY2Zi1mMzI3LTQwNzAtODUxMS1jNTczNDE2MWVhNGIuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvZC9iLzAvZGF0YXNldF9kYjBjMGYxNy0wOTczLTQ4ZjItYTcwYS0yNzYwYzc1MjFhZjMuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYS9mLzEvZGF0YXNldF9hZjE3MTYyNS0wYmI3LTRhNWYtYTg1OC1mOTI5ODNlOWY1NGUuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMy81LzEvZGF0YXNldF8zNTE1ZmQzMS0wNzU4LTRlMTQtYTZhYy1iMDFiYTk5NDE4NTAuZGF0LC90bXAvdG1wZTZwbWc3ancvZmlsZXMvZi8yLzEvZGF0YXNldF9mMjExOWViNC1jOWNhLTQ2MWYtOGQ0MC02Mjg0ZWZmYmVmYTEuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wZTZwbWc3ancvZmlsZXMvMy82LzcvZGF0YXNldF8zNjdjOGFkYi02MjNiLTRmYzItODcxMC0xNDAyYjkwZGMyN2EuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2IvOC9jL2RhdGFzZXRfYjhjMTU2ODMtYTM2OS00YjUyLWI5NGQtNTJlODIzZTJkYmM0LmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy83L2IvNy9kYXRhc2V0XzdiNzExOTdiLTljZWMtNGViYy1hMGFiLTlhOTA3MDg1NjY4MC5kYXQ6cGFydF9DLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMC84LzIvZGF0YXNldF8wODIwM2JmNC1lMjg1LTRlNDEtODQ1ZC1jN2RiMTA3MDlhMTQuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2IvMS83L2RhdGFzZXRfYjE3NGY2ZjgtZWIwYy00NGI5LTlkMWItODliN2E2MmJjNDk0LmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9jLzUvOS9kYXRhc2V0X2M1OThkM2I2LTU4YWItNDY5NS05OWE1LTVmYjYxOTdhNDgyMy5kYXQ6cGFydF9GLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMC85L2UvZGF0YXNldF8wOWVlYzQ1Ny0zN2RlLTRjMmMtOGI3ZS0xYmUxZGZiYWZmZDYuZGF0OnBhcnRfRy5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2UvOC80L2RhdGFzZXRfZTg0YmM2NmYtZjMyNy00MDcwLTg1MTEtYzU3MzQxNjFlYTRiLmRhdDpwYXJ0X0guZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9kL2IvMC9kYXRhc2V0X2RiMGMwZjE3LTA5NzMtNDhmMi1hNzBhLTI3NjBjNzUyMWFmMy5kYXQ6cGFydF9JLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYS9mLzEvZGF0YXNldF9hZjE3MTYyNS0wYmI3LTRhNWYtYTg1OC1mOTI5ODNlOWY1NGUuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzMvNS8xL2RhdGFzZXRfMzUxNWZkMzEtMDc1OC00ZTE0LWE2YWMtYjAxYmE5OTQxODUwLmRhdDpwYXJ0X0suZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9mLzIvMS9kYXRhc2V0X2YyMTE5ZWI0LWM5Y2EtNDYxZi04ZDQwLTYyODRlZmZiZWZhMS5kYXQ6cGFydF9MLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9qc29uX3BhcmFtZXJzICdmYWxzZScgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseScgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wZTZwbWc3ancvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC82My9vdXRwdXRzL2RhdGFzZXRfZmM0YTk1YmEtNDM2OC00NDU3LWIxNzUtZWJmMjZhZjY1OWFhLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNTAlfOKWiOKWiOKWiOKWiOKWiCAgICAgfCAyLzQgWzAwOjAwPDAwOjAwLCAgMi40MGl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDc1JXzilojilojilojilojilojilojilojilowgIHwgMy80IFswMDowMTwwMDowMCwgIDIuMTlpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA0LzQgWzAwOjAyPDAwOjAwLCAgMS44MGl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDAsICd2YWxpZF9hc3NlbWJsaWVzJzogNH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCBOb25lIGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTQsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGpzb25cX3VzZSB8IGAgeyJfX2N1cnJlbnRfY2FzZV9fIjogMCwgImFzc2VtYmx5X3BsYW5fbmFtZSI6ICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiwgImVuenltZSI6ICJhdXRvIiwgInRvcG9sb2d5IjogImNpcmN1bGFyIiwgInVzZV9qc29uX3BhcmFtZXJzIjogZmFsc2V9IGAgfAogICAgICAgfCB1c2VcX2ZpbGVcX25hbWVzXF9hc1xfaWRzIHwgYCB0cnVlIGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcGU2cG1nN2p3L2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyA4KTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBlNnBtZzdqdy9maWxlcy8xLzUvZS9kYXRhc2V0XzE1ZTc2MzkzLThiNmQtNDRhNC1hZDU0LTYxZTkwOTBmMjI4MS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBlNnBtZzdqdy9maWxlcy81LzkvNS9kYXRhc2V0XzU5NTJlYWM3LTcyYzUtNGU4Ny1iYWM0LTk0YTZlYjNkNzI1OC5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9jLzYvYy9kYXRhc2V0X2M2Y2FmMGI2LThkMDctNDk5OC04ZDBkLTI5YjVkNzZmYWY0Ni5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9jLzMvZS9kYXRhc2V0X2MzZTFlZjlkLWQ4NzctNDQyMy05ZjZkLTBjMWQxMDljMDEwMS5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy84LzYvYS9kYXRhc2V0Xzg2YTI0MzY1LTZlZWQtNDQxNS1iNTZmLWQwZmY5ODU0ZjBkYi5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy82LzkvNi9kYXRhc2V0XzY5Njk4NzQ5LWFiMTAtNDg2NS1iMTlhLWVmNGM1Y2I0Nzk5Ni5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy84L2UvZC9kYXRhc2V0XzhlZGE1MGRjLTZiNGItNGFmOC05MDg3LWM2NDczZTM0NWE0Ny5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9mLzkvOS9kYXRhc2V0X2Y5OWVjMTA4LWEzYzYtNGU4MC04ZWZmLTY4ZDliOGU5ZjY3Yy5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8xLzgvNy9kYXRhc2V0XzE4N2MyYzkzLTBhNjMtNDFjZS1iZjRmLTg4YjdjNzcwNTU3Yi5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy8zL2QvNy9kYXRhc2V0XzNkN2YwNjI3LWJhMWMtNDU0MS05NWY3LTI3ZWQ0MWU2MDFmYS5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy80L2MvMS9kYXRhc2V0XzRjMThkOWE1LWUzN2MtNDI4ZS1hNWEzLThmNjk4YmJkOWIzZi5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9jL2QvMi9kYXRhc2V0X2NkMjE1MjVlLWQ0ZTQtNGUwMy1hNjMyLTVhNzE1MjUyOWQ4Mi5kYXQsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9jL2EvYS9kYXRhc2V0X2NhYTRhMTY2LWYzMGItNDVmNS1iMWE5LWNkYWNjNmI0MDA3My5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBlNnBtZzdqdy9maWxlcy81LzkvNS9kYXRhc2V0XzU5NTJlYWM3LTcyYzUtNGU4Ny1iYWM0LTk0YTZlYjNkNzI1OC5kYXQ6cGFydF9BLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYy82L2MvZGF0YXNldF9jNmNhZjBiNi04ZDA3LTQ5OTgtOGQwZC0yOWI1ZDc2ZmFmNDYuZGF0OnBhcnRfQi5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2MvMy9lL2RhdGFzZXRfYzNlMWVmOWQtZDg3Ny00NDIzLTlmNmQtMGMxZDEwOWMwMTAxLmRhdDpwYXJ0X0MuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy84LzYvYS9kYXRhc2V0Xzg2YTI0MzY1LTZlZWQtNDQxNS1iNTZmLWQwZmY5ODU0ZjBkYi5kYXQ6cGFydF9ELmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvNi85LzYvZGF0YXNldF82OTY5ODc0OS1hYjEwLTQ4NjUtYjE5YS1lZjRjNWNiNDc5OTYuZGF0OnBhcnRfRS5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzgvZS9kL2RhdGFzZXRfOGVkYTUwZGMtNmI0Yi00YWY4LTkwODctYzY0NzNlMzQ1YTQ3LmRhdDpwYXJ0X0YuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy9mLzkvOS9kYXRhc2V0X2Y5OWVjMTA4LWEzYzYtNGU4MC04ZWZmLTY4ZDliOGU5ZjY3Yy5kYXQ6cGFydF9HLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvMS84LzcvZGF0YXNldF8xODdjMmM5My0wYTYzLTQxY2UtYmY0Zi04OGI3Yzc3MDU1N2IuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzMvZC83L2RhdGFzZXRfM2Q3ZjA2MjctYmExYy00NTQxLTk1ZjctMjdlZDQxZTYwMWZhLmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXBlNnBtZzdqdy9maWxlcy80L2MvMS9kYXRhc2V0XzRjMThkOWE1LWUzN2MtNDI4ZS1hNWEzLThmNjk4YmJkOWIzZi5kYXQ6cGFydF9KLmdiLC90bXAvdG1wZTZwbWc3ancvZmlsZXMvYy9kLzIvZGF0YXNldF9jZDIxNTI1ZS1kNGU0LTRlMDMtYTYzMi01YTcxNTI1MjlkODIuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzL2MvYS9hL2RhdGFzZXRfY2FhNGExNjYtZjMwYi00NWY1LWIxYTktY2RhY2M2YjQwMDczLmRhdDpwYXJ0X0wuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2pzb25fcGFyYW1lcnMgJ3RydWUnIC0tanNvbl9jb25mICcvdG1wL3RtcGU2cG1nN2p3L2ZpbGVzLzkvYi84L2RhdGFzZXRfOWI4OTlhZmYtMjgzNS00ZjEwLTg0ZjMtNTIwMzRjNTViNWRjLmRhdCcgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wZTZwbWc3ancvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC83OC9vdXRwdXRzL2RhdGFzZXRfNmVlMmNkNWMtZDQzYy00ZmM3LTllYmMtMjY1Zjg5YTg3Njk2LmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNTAlfOKWiOKWiOKWiOKWiOKWiCAgICAgfCAyLzQgWzAwOjAwPDAwOjAwLCAgMi4zOWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDc1JXzilojilojilojilojilojilojilojilowgIHwgMy80IFswMDowMTwwMDowMCwgIDIuMTlpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA0LzQgWzAwOjAyPDAwOjAwLCAgMS44MWl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDAsICd2YWxpZF9hc3NlbWJsaWVzJzogNH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTYsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGpzb25cX3VzZSB8IGAgeyJfX2N1cnJlbnRfY2FzZV9fIjogMSwgImpzb25fY29uZiI6IHsidmFsdWVzIjogW3siaWQiOiA5NSwgInNyYyI6ICJoZGEifV19LCAidXNlX2pzb25fcGFyYW1lcnMiOiB0cnVlfSBgIHwKICAgICAgIHwgdXNlXF9maWxlXF9uYW1lc1xfYXNcX2lkcyB8IGAgdHJ1ZSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBlNnBtZzdqdy9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCjwvZGV0YWlscz4K')); </script> </body> </html> \ No newline at end of file
--- a/output.json Mon May 26 13:39:57 2025 +0000 +++ b/output.json Thu Jul 17 10:17:24 2025 +0000 @@ -3,101 +3,102 @@ "num_errors": 0, "num_failures": 0, "num_skips": 0, - "num_tests": 7 + "num_tests": 8 }, "tests": [ { "data": { "inputs": { - "adv|use_file_names_as_ids": true, "assembly_csv": { - "id": "1e8e6749bc68d8e8", + "id": "54d710fc68386373", "src": "hda" }, - "assembly_plan_name": "Type2sRestrictionAssembly", "genbank_files": { - "id": "e2ca7f14a85a8d44", + "id": "986c9b47c580ae59", "src": "hdca" }, - "topology": "circular" + "json_use|assembly_plan_name": "Type2sRestrictionAssembly", + "json_use|topology": "circular", + "json_use|use_json_paramers": false, + "use_file_names_as_ids": true }, "job": { - "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpm1fyob3t/files/2/0/d/dataset_20d4061a-81e4-4915-a841-ae8aa595c7b4.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpm1fyob3t/files/d/d/8/dataset_dd844d61-fc05-41d9-8179-21233649407d.dat,/tmp/tmpm1fyob3t/files/c/b/2/dataset_cb2362f3-4b32-46cc-a227-dc15742bf9e7.dat,/tmp/tmpm1fyob3t/files/6/d/7/dataset_6d72dfe4-3e6b-4baf-b7b5-9fb2e843461a.dat,/tmp/tmpm1fyob3t/files/3/3/e/dataset_33e804b2-0fbe-4844-9b5d-420e8a2db772.dat,/tmp/tmpm1fyob3t/files/2/d/b/dataset_2db3825c-538b-483f-b6ff-8dc4ecc03780.dat,/tmp/tmpm1fyob3t/files/0/4/8/dataset_048ee7ed-5f4c-41ef-aed4-f2cf975aac92.dat,/tmp/tmpm1fyob3t/files/c/5/0/dataset_c505c12e-7089-4a17-a605-4f11dad6f1d7.dat,/tmp/tmpm1fyob3t/files/4/9/1/dataset_4912f12d-0842-46b7-8aaf-2a94a52f04f8.dat,/tmp/tmpm1fyob3t/files/b/2/b/dataset_b2b96d41-c7c8-49c1-9d35-ceaa1c7d3027.dat,/tmp/tmpm1fyob3t/files/b/8/f/dataset_b8fd4610-2f6d-475c-8405-8bf8c2bc0306.dat,/tmp/tmpm1fyob3t/files/0/9/f/dataset_09f4b020-4e7b-4939-b3ba-348f91cb92bc.dat,/tmp/tmpm1fyob3t/files/e/b/7/dataset_eb730263-9442-4dca-a2dc-34b1cae450d7.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpm1fyob3t/files/d/d/8/dataset_dd844d61-fc05-41d9-8179-21233649407d.dat:part_A.gb,/tmp/tmpm1fyob3t/files/c/b/2/dataset_cb2362f3-4b32-46cc-a227-dc15742bf9e7.dat:part_B.gb,/tmp/tmpm1fyob3t/files/6/d/7/dataset_6d72dfe4-3e6b-4baf-b7b5-9fb2e843461a.dat:part_C.gb,/tmp/tmpm1fyob3t/files/3/3/e/dataset_33e804b2-0fbe-4844-9b5d-420e8a2db772.dat:part_D.gb,/tmp/tmpm1fyob3t/files/2/d/b/dataset_2db3825c-538b-483f-b6ff-8dc4ecc03780.dat:part_E.gb,/tmp/tmpm1fyob3t/files/0/4/8/dataset_048ee7ed-5f4c-41ef-aed4-f2cf975aac92.dat:part_F.gb,/tmp/tmpm1fyob3t/files/c/5/0/dataset_c505c12e-7089-4a17-a605-4f11dad6f1d7.dat:part_G.gb,/tmp/tmpm1fyob3t/files/4/9/1/dataset_4912f12d-0842-46b7-8aaf-2a94a52f04f8.dat:part_H.gb,/tmp/tmpm1fyob3t/files/b/2/b/dataset_b2b96d41-c7c8-49c1-9d35-ceaa1c7d3027.dat:part_I.gb,/tmp/tmpm1fyob3t/files/b/8/f/dataset_b8fd4610-2f6d-475c-8405-8bf8c2bc0306.dat:part_J.gb,/tmp/tmpm1fyob3t/files/0/9/f/dataset_09f4b020-4e7b-4939-b3ba-348f91cb92bc.dat:part_K.gb,/tmp/tmpm1fyob3t/files/e/b/7/dataset_eb730263-9442-4dca-a2dc-34b1cae450d7.dat:part_L.gb' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpm1fyob3t/job_working_directory/000/14/outputs/dataset_64d1d8ac-32f0-4095-be30-22eee31e24a4.dat'", + "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/0/b/1/dataset_0b1d9a31-e124-42cf-b995-f7c136900f29.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/7/6/9/dataset_76952c3c-fc12-4748-87cb-b6af38db9d3e.dat,/tmp/tmpe6pmg7jw/files/9/a/6/dataset_9a60f4af-d7d4-4bce-ab79-3718dac468ed.dat,/tmp/tmpe6pmg7jw/files/f/e/c/dataset_fec08236-4b1b-4174-af9c-7c3a84487424.dat,/tmp/tmpe6pmg7jw/files/2/0/6/dataset_206ca419-7921-4fc1-9be0-12c35c84bd65.dat,/tmp/tmpe6pmg7jw/files/3/1/b/dataset_31bb0b24-e75c-493f-a016-3796d54eaa18.dat,/tmp/tmpe6pmg7jw/files/6/f/a/dataset_6fa953c7-a9a7-4ba7-a030-da147eadefdc.dat,/tmp/tmpe6pmg7jw/files/7/e/f/dataset_7ef147cb-f331-435c-9a1e-6f0e52abd102.dat,/tmp/tmpe6pmg7jw/files/9/b/6/dataset_9b611c55-c19e-42ce-b45c-40ac049b94cb.dat,/tmp/tmpe6pmg7jw/files/9/b/d/dataset_9bd8627e-0417-475f-b855-352bcd890630.dat,/tmp/tmpe6pmg7jw/files/1/6/4/dataset_164135c0-7b54-4ea0-86d3-e9e928cbc398.dat,/tmp/tmpe6pmg7jw/files/b/e/9/dataset_be927bb4-1a34-43bb-8680-81589459732b.dat,/tmp/tmpe6pmg7jw/files/8/a/4/dataset_8a4bab33-b3e8-4586-b375-ae904dc06793.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/7/6/9/dataset_76952c3c-fc12-4748-87cb-b6af38db9d3e.dat:part_A.gb,/tmp/tmpe6pmg7jw/files/9/a/6/dataset_9a60f4af-d7d4-4bce-ab79-3718dac468ed.dat:part_B.gb,/tmp/tmpe6pmg7jw/files/f/e/c/dataset_fec08236-4b1b-4174-af9c-7c3a84487424.dat:part_C.gb,/tmp/tmpe6pmg7jw/files/2/0/6/dataset_206ca419-7921-4fc1-9be0-12c35c84bd65.dat:part_D.gb,/tmp/tmpe6pmg7jw/files/3/1/b/dataset_31bb0b24-e75c-493f-a016-3796d54eaa18.dat:part_E.gb,/tmp/tmpe6pmg7jw/files/6/f/a/dataset_6fa953c7-a9a7-4ba7-a030-da147eadefdc.dat:part_F.gb,/tmp/tmpe6pmg7jw/files/7/e/f/dataset_7ef147cb-f331-435c-9a1e-6f0e52abd102.dat:part_G.gb,/tmp/tmpe6pmg7jw/files/9/b/6/dataset_9b611c55-c19e-42ce-b45c-40ac049b94cb.dat:part_H.gb,/tmp/tmpe6pmg7jw/files/9/b/d/dataset_9bd8627e-0417-475f-b855-352bcd890630.dat:part_I.gb,/tmp/tmpe6pmg7jw/files/1/6/4/dataset_164135c0-7b54-4ea0-86d3-e9e928cbc398.dat:part_J.gb,/tmp/tmpe6pmg7jw/files/b/e/9/dataset_be927bb4-1a34-43bb-8680-81589459732b.dat:part_K.gb,/tmp/tmpe6pmg7jw/files/8/a/4/dataset_8a4bab33-b3e8-4586-b375-ae904dc06793.dat:part_L.gb' --file_name_mapping_dom '' --use_json_paramers 'false' --enzyme 'auto' --topology 'circular' --assembly_plan_name 'Type2sRestrictionAssembly' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/14/outputs/dataset_95e21ebc-5bff-4544-a5d4-06db22e91066.dat'", "command_version": "", "copied_from_job_id": null, - "create_time": "2025-05-26T12:02:32.643157", + "create_time": "2025-07-17T10:10:24.406223", "dependencies": [], "exit_code": 0, - "external_id": "172939", - "galaxy_version": "24.2", + "external_id": "75641", + "galaxy_version": "25.0", "handler": null, - "history_id": "e2ca7f14a85a8d44", - "id": "a36db940f4513bd9", + "history_id": "986c9b47c580ae59", + "id": "98a2432f1cff4f91", "inputs": { "assembly_csv": { - "id": "1e8e6749bc68d8e8", + "id": "54d710fc68386373", "src": "hda", - "uuid": "20d4061a-81e4-4915-a841-ae8aa595c7b4" + "uuid": "0b1d9a31-e124-42cf-b995-f7c136900f29" }, "genbank_files1": { - "id": "e2ca7f14a85a8d44", + "id": "986c9b47c580ae59", "src": "hda", - "uuid": "dd844d61-fc05-41d9-8179-21233649407d" + "uuid": "76952c3c-fc12-4748-87cb-b6af38db9d3e" }, "genbank_files10": { - "id": "fbec4a551130f847", + "id": "8de66704b7df8b5e", "src": "hda", - "uuid": "b8fd4610-2f6d-475c-8405-8bf8c2bc0306" + "uuid": "164135c0-7b54-4ea0-86d3-e9e928cbc398" }, "genbank_files11": { - "id": "5bd8560352cb0b69", + "id": "54c6d71c8dc7cb11", "src": "hda", - "uuid": "09f4b020-4e7b-4939-b3ba-348f91cb92bc" + "uuid": "be927bb4-1a34-43bb-8680-81589459732b" }, "genbank_files12": { - "id": "cb2fe7fb50f38553", + "id": "2592d2c705ba0baa", "src": "hda", - "uuid": "eb730263-9442-4dca-a2dc-34b1cae450d7" + "uuid": "8a4bab33-b3e8-4586-b375-ae904dc06793" }, "genbank_files2": { - "id": "62e98d1a229b6ef5", + "id": "8354ecc64d56337d", "src": "hda", - "uuid": "cb2362f3-4b32-46cc-a227-dc15742bf9e7" + "uuid": "9a60f4af-d7d4-4bce-ab79-3718dac468ed" }, "genbank_files3": { - "id": "f8fe24202fc5b2e5", + "id": "c06bae188baa9490", "src": "hda", - "uuid": "6d72dfe4-3e6b-4baf-b7b5-9fb2e843461a" + "uuid": "fec08236-4b1b-4174-af9c-7c3a84487424" }, "genbank_files4": { - "id": "0d58e12bbe78a903", + "id": "71d208f6d8b613ba", "src": "hda", - "uuid": "33e804b2-0fbe-4844-9b5d-420e8a2db772" + "uuid": "206ca419-7921-4fc1-9be0-12c35c84bd65" }, "genbank_files5": { - "id": "3937d5ff7c0e1373", + "id": "58ad66a9f93223b8", "src": "hda", - "uuid": "2db3825c-538b-483f-b6ff-8dc4ecc03780" + "uuid": "31bb0b24-e75c-493f-a016-3796d54eaa18" }, "genbank_files6": { - "id": "473b1992d5f5b84f", + "id": "e9003a596293e37c", "src": "hda", - "uuid": "048ee7ed-5f4c-41ef-aed4-f2cf975aac92" + "uuid": "6fa953c7-a9a7-4ba7-a030-da147eadefdc" }, "genbank_files7": { - "id": "9b5c1fe7a52a75e0", + "id": "8c39a9a410cc0a00", "src": "hda", - "uuid": "c505c12e-7089-4a17-a605-4f11dad6f1d7" + "uuid": "7ef147cb-f331-435c-9a1e-6f0e52abd102" }, "genbank_files8": { - "id": "c32c50a47ebf8564", + "id": "f7b25594aba42961", "src": "hda", - "uuid": "4912f12d-0842-46b7-8aaf-2a94a52f04f8" + "uuid": "9b611c55-c19e-42ce-b45c-40ac049b94cb" }, "genbank_files9": { - "id": "5f035ce298b798b0", + "id": "5f098a2d242af5ee", "src": "hda", - "uuid": "b2b96d41-c7c8-49c1-9d35-ceaa1c7d3027" + "uuid": "9bd8627e-0417-475f-b855-352bcd890630" } }, "job_messages": [], @@ -108,60 +109,59 @@ "model_class": "Job", "output_collections": { "construct_gb": { - "id": "62e98d1a229b6ef5", + "id": "8354ecc64d56337d", "src": "hdca" } }, "outputs": { "__new_primary_file_construct_gb|construct_1__": { - "id": "182eefa577c2a56d", + "id": "172543d29b19f394", "src": "hda", - "uuid": "991437a5-bbe4-4adb-8831-c9a871adb17f" + "uuid": "c12d7e47-49c5-4805-8a24-5d4fb0aa8cfa" }, "__new_primary_file_construct_gb|construct_2__": { - "id": "979fd704a8b37879", + "id": "018c827a8e5b161a", "src": "hda", - "uuid": "9ebdb527-8609-4bc8-85a3-f8775156c356" + "uuid": "be0c60c4-c33d-4855-95d4-ffdb53751eea" }, "__new_primary_file_construct_gb|construct_3__": { - "id": "b53ff5232a859d40", + "id": "494079827008dff1", "src": "hda", - "uuid": "235361e4-93cc-4b56-ad81-c33ce8f593f0" + "uuid": "77ec05f3-e147-4ff3-af59-1d173fbc6d27" }, "__new_primary_file_construct_gb|construct_4__": { - "id": "1ce0e68b6cd95b3c", + "id": "665c2a499b613b70", "src": "hda", - "uuid": "49100d5c-134b-4cb0-a86b-2cf03a336b1c" + "uuid": "fd3ed880-c345-47d7-8a38-1ce5c507b417" }, "output_zip": { - "id": "a36db940f4513bd9", + "id": "98a2432f1cff4f91", "src": "hda", - "uuid": "64d1d8ac-32f0-4095-be30-22eee31e24a4" + "uuid": "95e21ebc-5bff-4544-a5d4-06db22e91066" } }, "params": { "__input_ext": "\"input\"", - "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}", - "assembly_plan_name": "\"Type2sRestrictionAssembly\"", - "chromInfo": "\"/tmp/tmpm1fyob3t/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", + "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", "dbkey": "\"?\"", "domesticated_input": null, "genbank_files": "{\"values\": [{\"id\": 1, \"src\": \"hdca\"}]}", - "topology": "\"circular\"" + "json_use": "{\"__current_case__\": 0, \"assembly_plan_name\": \"Type2sRestrictionAssembly\", \"enzyme\": \"auto\", \"topology\": \"circular\", \"use_json_paramers\": false}", + "use_file_names_as_ids": "true" }, "state": "ok", - "stderr": "\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\rassembly: 50%|\u2588\u2588\u2588\u2588\u2588 | 2/4 [00:00<00:00, 2.58it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 3/4 [00:01<00:00, 2.26it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00, 1.82it/s, now=None]\r \r", + "stderr": "\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\rassembly: 50%|\u2588\u2588\u2588\u2588\u2588 | 2/4 [00:00<00:00, 2.45it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 3/4 [00:01<00:00, 2.23it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00, 1.84it/s, now=None]\r \r", "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n", "tool_id": "cloning_simulation", - "tool_stderr": "\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\rassembly: 50%|\u2588\u2588\u2588\u2588\u2588 | 2/4 [00:00<00:00, 2.58it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 3/4 [00:01<00:00, 2.26it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00, 1.82it/s, now=None]\r \r", + "tool_stderr": "\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\rassembly: 50%|\u2588\u2588\u2588\u2588\u2588 | 2/4 [00:00<00:00, 2.45it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 3/4 [00:01<00:00, 2.23it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00, 1.84it/s, now=None]\r \r", "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n", - "update_time": "2025-05-26T12:02:45.106475", + "update_time": "2025-07-17T10:10:36.297958", "user_email": "planemo@galaxyproject.org", - "user_id": "e2ca7f14a85a8d44" + "user_id": "986c9b47c580ae59" }, "status": "success", "test_index": 0, - "time_seconds": 53.48332858085632, + "time_seconds": 52.21098494529724, "tool_id": "cloning_simulation", "tool_version": "0.1.0+galaxy0" }, @@ -171,23 +171,24 @@ { "data": { "inputs": { - "adv|use_file_names_as_ids": true, "assembly_csv": { - "id": "035124d32eef3033", + "id": "cf7d3dafd862f640", "src": "hda" }, - "assembly_plan_name": "GibsonAssembly", "genbank_files": { - "id": "f8fe24202fc5b2e5", + "id": "c06bae188baa9490", "src": "hdca" }, - "topology": "circular" + "json_use|assembly_plan_name": "GibsonAssembly", + "json_use|topology": "circular", + "json_use|use_json_paramers": false, + "use_file_names_as_ids": true }, "job": { - "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpm1fyob3t/files/1/6/f/dataset_16f6d475-b614-4427-9c06-95a0d56d3c92.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpm1fyob3t/files/9/6/a/dataset_96a8f769-3544-4407-b064-04f24a733896.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'GibsonAssembly' --file_name_mapping '/tmp/tmpm1fyob3t/files/9/6/a/dataset_96a8f769-3544-4407-b064-04f24a733896.dat:gibson_sequences.fa' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpm1fyob3t/job_working_directory/000/17/outputs/dataset_505ecb2d-a6ca-40d3-864d-fc3e8bc7f9a1.dat'", + "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/2/a/d/dataset_2ad9afbb-7953-4cd9-bff3-482993791028.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/7/0/8/dataset_708e1901-be64-41f9-b767-b1749a71b785.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/7/0/8/dataset_708e1901-be64-41f9-b767-b1749a71b785.dat:gibson_sequences.fa' --file_name_mapping_dom '' --use_json_paramers 'false' --enzyme 'auto' --topology 'circular' --assembly_plan_name 'GibsonAssembly' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/17/outputs/dataset_9a58e169-47f4-4418-8a3b-0fec86242b5c.dat'", "command_version": "", "copied_from_job_id": null, - "create_time": "2025-05-26T12:02:55.721992", + "create_time": "2025-07-17T10:10:47.298570", "dependencies": [ { "cacheable": false, @@ -367,21 +368,21 @@ } ], "exit_code": 0, - "external_id": "173310", - "galaxy_version": "24.2", + "external_id": "76029", + "galaxy_version": "25.0", "handler": null, - "history_id": "62e98d1a229b6ef5", - "id": "b53ff5232a859d40", + "history_id": "8354ecc64d56337d", + "id": "494079827008dff1", "inputs": { "assembly_csv": { - "id": "035124d32eef3033", + "id": "cf7d3dafd862f640", "src": "hda", - "uuid": "16f6d475-b614-4427-9c06-95a0d56d3c92" + "uuid": "2ad9afbb-7953-4cd9-bff3-482993791028" }, "genbank_files1": { - "id": "1fe688df02a38cc2", + "id": "ccc90f05d17193c7", "src": "hda", - "uuid": "96a8f769-3544-4407-b064-04f24a733896" + "uuid": "708e1901-be64-41f9-b767-b1749a71b785" } }, "job_messages": [], @@ -392,55 +393,54 @@ "model_class": "Job", "output_collections": { "construct_gb": { - "id": "0d58e12bbe78a903", + "id": "71d208f6d8b613ba", "src": "hdca" } }, "outputs": { "__new_primary_file_construct_gb|construct_1__": { - "id": "f970a04054a49348", + "id": "5c63ea88ecac53b0", "src": "hda", - "uuid": "ff8ea1a1-10ff-4416-b944-a78a4fd3e72e" + "uuid": "bdd63ae3-8743-4fb8-b62e-15e2dd1b22fe" }, "__new_primary_file_construct_gb|construct_2__": { - "id": "ae9b306409c7f353", + "id": "56f89f48d02eaad8", "src": "hda", - "uuid": "7afee741-2c2b-4e3b-a947-819ebb5b67b4" + "uuid": "ae8106cf-202a-4ae6-b3be-0af4a59bf28b" }, "__new_primary_file_construct_gb|construct_3__": { - "id": "791483eeafbe6bcb", + "id": "a5c371b6918b1c88", "src": "hda", - "uuid": "c820ba84-23dc-4e1c-b2de-abed54b17015" + "uuid": "7085c961-0057-4a6f-93a5-e28a77e87a65" }, "output_zip": { - "id": "cd80768c91dddfb6", + "id": "f0ec65f930df3348", "src": "hda", - "uuid": "505ecb2d-a6ca-40d3-864d-fc3e8bc7f9a1" + "uuid": "9a58e169-47f4-4418-8a3b-0fec86242b5c" } }, "params": { "__input_ext": "\"input\"", - "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}", - "assembly_plan_name": "\"GibsonAssembly\"", - "chromInfo": "\"/tmp/tmpm1fyob3t/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", + "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", "dbkey": "\"?\"", "domesticated_input": null, "genbank_files": "{\"values\": [{\"id\": 3, \"src\": \"hdca\"}]}", - "topology": "\"circular\"" + "json_use": "{\"__current_case__\": 0, \"assembly_plan_name\": \"GibsonAssembly\", \"enzyme\": \"auto\", \"topology\": \"circular\", \"use_json_paramers\": false}", + "use_file_names_as_ids": "true" }, "state": "ok", - "stderr": "\rassembly: 0%| | 0/5 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/5 [00:00<?, ?it/s, now=None]\rassembly: 40%|\u2588\u2588\u2588\u2588 | 2/5 [00:00<00:00, 4.35it/s, now=None]\rassembly: 60%|\u2588\u2588\u2588\u2588\u2588\u2588 | 3/5 [00:00<00:00, 4.33it/s, now=None]\rassembly: 80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 | 4/5 [00:00<00:00, 4.31it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:01<00:00, 3.53it/s, now=None]\r \r", + "stderr": "\rassembly: 0%| | 0/5 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/5 [00:00<?, ?it/s, now=None]\rassembly: 40%|\u2588\u2588\u2588\u2588 | 2/5 [00:00<00:00, 4.37it/s, now=None]\rassembly: 60%|\u2588\u2588\u2588\u2588\u2588\u2588 | 3/5 [00:00<00:00, 4.38it/s, now=None]\rassembly: 80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 | 4/5 [00:00<00:00, 4.38it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:01<00:00, 3.62it/s, now=None]\r \r", "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 3}\nGenerating assemblies reports...\n", "tool_id": "cloning_simulation", - "tool_stderr": "\rassembly: 0%| | 0/5 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/5 [00:00<?, ?it/s, now=None]\rassembly: 40%|\u2588\u2588\u2588\u2588 | 2/5 [00:00<00:00, 4.35it/s, now=None]\rassembly: 60%|\u2588\u2588\u2588\u2588\u2588\u2588 | 3/5 [00:00<00:00, 4.33it/s, now=None]\rassembly: 80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 | 4/5 [00:00<00:00, 4.31it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:01<00:00, 3.53it/s, now=None]\r \r", + "tool_stderr": "\rassembly: 0%| | 0/5 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/5 [00:00<?, ?it/s, now=None]\rassembly: 40%|\u2588\u2588\u2588\u2588 | 2/5 [00:00<00:00, 4.37it/s, now=None]\rassembly: 60%|\u2588\u2588\u2588\u2588\u2588\u2588 | 3/5 [00:00<00:00, 4.38it/s, now=None]\rassembly: 80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 | 4/5 [00:00<00:00, 4.38it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:01<00:00, 3.62it/s, now=None]\r \r", "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 3}\nGenerating assemblies reports...\n", - "update_time": "2025-05-26T12:03:07.748084", + "update_time": "2025-07-17T10:10:58.876561", "user_email": "planemo@galaxyproject.org", - "user_id": "e2ca7f14a85a8d44" + "user_id": "986c9b47c580ae59" }, "status": "success", "test_index": 1, - "time_seconds": 22.338457345962524, + "time_seconds": 22.198808431625366, "tool_id": "cloning_simulation", "tool_version": "0.1.0+galaxy0" }, @@ -450,23 +450,24 @@ { "data": { "inputs": { - "adv|use_file_names_as_ids": true, "assembly_csv": { - "id": "c9169186136d0f27", + "id": "9f199e72d4c8734c", "src": "hda" }, - "assembly_plan_name": "LigaseCyclingReactionAssembly", "genbank_files": { - "id": "3937d5ff7c0e1373", + "id": "58ad66a9f93223b8", "src": "hdca" }, - "topology": "circular" + "json_use|assembly_plan_name": "LigaseCyclingReactionAssembly", + "json_use|topology": "circular", + "json_use|use_json_paramers": false, + "use_file_names_as_ids": true }, "job": { - "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpm1fyob3t/files/f/7/c/dataset_f7c9ad78-8e74-4a3c-9579-80a93ac923de.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpm1fyob3t/files/f/5/6/dataset_f56913bd-fc92-4122-8cf1-d9b1c60e8385.dat,/tmp/tmpm1fyob3t/files/3/b/4/dataset_3b4e75b3-e6a6-459a-a959-d43ce00c3701.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'LigaseCyclingReactionAssembly' --file_name_mapping '/tmp/tmpm1fyob3t/files/f/5/6/dataset_f56913bd-fc92-4122-8cf1-d9b1c60e8385.dat:RFP_GFP_plasmid_BOs.fa,/tmp/tmpm1fyob3t/files/3/b/4/dataset_3b4e75b3-e6a6-459a-a959-d43ce00c3701.dat:RFP_GFP_plasmid_parts.fa' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpm1fyob3t/job_working_directory/000/21/outputs/dataset_3fc625c8-722f-4efb-9c09-0d664dec2a9d.dat'", + "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/d/4/f/dataset_d4f42cf4-85ed-4eb7-ab79-944239671a0c.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/c/6/6/dataset_c66662f5-5307-40f5-b7d8-1ae34e9bc594.dat,/tmp/tmpe6pmg7jw/files/e/b/b/dataset_ebb77d89-fcaf-4aad-ae07-bd6df1cbc75d.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/c/6/6/dataset_c66662f5-5307-40f5-b7d8-1ae34e9bc594.dat:RFP_GFP_plasmid_BOs.fa,/tmp/tmpe6pmg7jw/files/e/b/b/dataset_ebb77d89-fcaf-4aad-ae07-bd6df1cbc75d.dat:RFP_GFP_plasmid_parts.fa' --file_name_mapping_dom '' --use_json_paramers 'false' --enzyme 'auto' --topology 'circular' --assembly_plan_name 'LigaseCyclingReactionAssembly' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/21/outputs/dataset_e37b2d54-bd4d-445c-9171-dd049f49ed36.dat'", "command_version": "", "copied_from_job_id": null, - "create_time": "2025-05-26T12:03:18.983816", + "create_time": "2025-07-17T10:11:10.098701", "dependencies": [ { "cacheable": false, @@ -646,26 +647,26 @@ } ], "exit_code": 0, - "external_id": "173689", - "galaxy_version": "24.2", + "external_id": "76477", + "galaxy_version": "25.0", "handler": null, - "history_id": "f8fe24202fc5b2e5", - "id": "cd80768c91dddfb6", + "history_id": "c06bae188baa9490", + "id": "f0ec65f930df3348", "inputs": { "assembly_csv": { - "id": "c9169186136d0f27", + "id": "9f199e72d4c8734c", "src": "hda", - "uuid": "f7c9ad78-8e74-4a3c-9579-80a93ac923de" + "uuid": "d4f42cf4-85ed-4eb7-ab79-944239671a0c" }, "genbank_files1": { - "id": "f14f22136515e5fc", + "id": "4eec6dacaee8b95b", "src": "hda", - "uuid": "f56913bd-fc92-4122-8cf1-d9b1c60e8385" + "uuid": "c66662f5-5307-40f5-b7d8-1ae34e9bc594" }, "genbank_files2": { - "id": "d00c2a698869e2f3", + "id": "214d04ae88ac0b41", "src": "hda", - "uuid": "3b4e75b3-e6a6-459a-a959-d43ce00c3701" + "uuid": "ebb77d89-fcaf-4aad-ae07-bd6df1cbc75d" } }, "job_messages": [], @@ -676,40 +677,39 @@ "model_class": "Job", "output_collections": { "construct_gb": { - "id": "473b1992d5f5b84f", + "id": "e9003a596293e37c", "src": "hdca" } }, "outputs": { "output_zip": { - "id": "0bb6e1adb7bbb7d6", + "id": "1893df3b29988972", "src": "hda", - "uuid": "3fc625c8-722f-4efb-9c09-0d664dec2a9d" + "uuid": "e37b2d54-bd4d-445c-9171-dd049f49ed36" } }, "params": { "__input_ext": "\"input\"", - "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}", - "assembly_plan_name": "\"LigaseCyclingReactionAssembly\"", - "chromInfo": "\"/tmp/tmpm1fyob3t/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", + "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", "dbkey": "\"?\"", "domesticated_input": null, "genbank_files": "{\"values\": [{\"id\": 5, \"src\": \"hdca\"}]}", - "topology": "\"circular\"" + "json_use": "{\"__current_case__\": 0, \"assembly_plan_name\": \"LigaseCyclingReactionAssembly\", \"enzyme\": \"auto\", \"topology\": \"circular\", \"use_json_paramers\": false}", + "use_file_names_as_ids": "true" }, "state": "ok", - "stderr": "\rassembly: 0%| | 0/2 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/2 [00:00<?, ?it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 2/2 [00:00<00:00, 2.40it/s, now=None]\r \r", + "stderr": "\rassembly: 0%| | 0/2 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/2 [00:00<?, ?it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 2/2 [00:00<00:00, 2.35it/s, now=None]\r \r", "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 0}\nGenerating assemblies reports...\n", "tool_id": "cloning_simulation", - "tool_stderr": "\rassembly: 0%| | 0/2 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/2 [00:00<?, ?it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 2/2 [00:00<00:00, 2.40it/s, now=None]\r \r", + "tool_stderr": "\rassembly: 0%| | 0/2 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/2 [00:00<?, ?it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 2/2 [00:00<00:00, 2.35it/s, now=None]\r \r", "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 0}\nGenerating assemblies reports...\n", - "update_time": "2025-05-26T12:03:31.119796", + "update_time": "2025-07-17T10:11:21.625362", "user_email": "planemo@galaxyproject.org", - "user_id": "e2ca7f14a85a8d44" + "user_id": "986c9b47c580ae59" }, "status": "success", "test_index": 2, - "time_seconds": 23.440476655960083, + "time_seconds": 22.644192218780518, "tool_id": "cloning_simulation", "tool_version": "0.1.0+galaxy0" }, @@ -719,23 +719,24 @@ { "data": { "inputs": { - "adv|use_file_names_as_ids": true, "assembly_csv": { - "id": "b66a1bb5ed06a6bf", + "id": "62b2e7c0b424e83e", "src": "hda" }, - "assembly_plan_name": "BASICAssembly", "genbank_files": { - "id": "9b5c1fe7a52a75e0", + "id": "8c39a9a410cc0a00", "src": "hdca" }, - "topology": "circular" + "json_use|assembly_plan_name": "BASICAssembly", + "json_use|topology": "circular", + "json_use|use_json_paramers": false, + "use_file_names_as_ids": true }, "job": { - "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpm1fyob3t/files/f/b/4/dataset_fb426ceb-2615-447d-b04e-ae4253af648d.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpm1fyob3t/files/e/c/b/dataset_ecb057a2-dbf8-4105-b55e-d726ec1e9693.dat,/tmp/tmpm1fyob3t/files/4/9/8/dataset_498fe703-52c3-4162-be00-93f49f00689d.dat,/tmp/tmpm1fyob3t/files/d/4/0/dataset_d402c2ac-ca2d-46b6-b9d3-989739678de1.dat,/tmp/tmpm1fyob3t/files/1/1/2/dataset_1124ff36-f61b-4932-adc6-0b6de5a888ae.dat,/tmp/tmpm1fyob3t/files/8/f/e/dataset_8fe51091-39c5-4aa6-b0ec-fbc34712e405.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'BASICAssembly' --file_name_mapping '/tmp/tmpm1fyob3t/files/e/c/b/dataset_ecb057a2-dbf8-4105-b55e-d726ec1e9693.dat:GFP.gb,/tmp/tmpm1fyob3t/files/4/9/8/dataset_498fe703-52c3-4162-be00-93f49f00689d.dat:p15A_kan.gb,/tmp/tmpm1fyob3t/files/d/4/0/dataset_d402c2ac-ca2d-46b6-b9d3-989739678de1.dat:promoter.gb,/tmp/tmpm1fyob3t/files/1/1/2/dataset_1124ff36-f61b-4932-adc6-0b6de5a888ae.dat:RFP.gb,/tmp/tmpm1fyob3t/files/8/f/e/dataset_8fe51091-39c5-4aa6-b0ec-fbc34712e405.dat:oligos.fa' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpm1fyob3t/job_working_directory/000/28/outputs/dataset_45ef7ed5-48aa-4286-ac51-3391b593eb7c.dat'", + "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/b/f/1/dataset_bf11bd3d-ca0e-4756-8106-142184dc57e7.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/a/f/3/dataset_af32db16-e6dc-493f-b6a7-5a3b6725a736.dat,/tmp/tmpe6pmg7jw/files/a/4/9/dataset_a4936e9b-d8be-4cf9-8d6c-1c625676bc58.dat,/tmp/tmpe6pmg7jw/files/0/3/c/dataset_03cda120-0c4d-4452-afab-925df4a5723a.dat,/tmp/tmpe6pmg7jw/files/3/b/1/dataset_3b164cad-fbab-47a9-8965-c95820826daf.dat,/tmp/tmpe6pmg7jw/files/a/b/3/dataset_ab35511d-2fbf-4014-b079-65b270bd9cc8.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/a/f/3/dataset_af32db16-e6dc-493f-b6a7-5a3b6725a736.dat:GFP.gb,/tmp/tmpe6pmg7jw/files/a/4/9/dataset_a4936e9b-d8be-4cf9-8d6c-1c625676bc58.dat:p15A_kan.gb,/tmp/tmpe6pmg7jw/files/0/3/c/dataset_03cda120-0c4d-4452-afab-925df4a5723a.dat:promoter.gb,/tmp/tmpe6pmg7jw/files/3/b/1/dataset_3b164cad-fbab-47a9-8965-c95820826daf.dat:RFP.gb,/tmp/tmpe6pmg7jw/files/a/b/3/dataset_ab35511d-2fbf-4014-b079-65b270bd9cc8.dat:oligos.fa' --file_name_mapping_dom '' --use_json_paramers 'false' --enzyme 'auto' --topology 'circular' --assembly_plan_name 'BASICAssembly' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/28/outputs/dataset_f130e84e-8140-449b-bb7e-8df370a421d1.dat'", "command_version": "", "copied_from_job_id": null, - "create_time": "2025-05-26T12:03:51.986652", + "create_time": "2025-07-17T10:11:42.348377", "dependencies": [ { "cacheable": false, @@ -915,41 +916,41 @@ } ], "exit_code": 0, - "external_id": "174270", - "galaxy_version": "24.2", + "external_id": "77127", + "galaxy_version": "25.0", "handler": null, - "history_id": "0d58e12bbe78a903", - "id": "0bb6e1adb7bbb7d6", + "history_id": "71d208f6d8b613ba", + "id": "1893df3b29988972", "inputs": { "assembly_csv": { - "id": "b66a1bb5ed06a6bf", + "id": "62b2e7c0b424e83e", "src": "hda", - "uuid": "fb426ceb-2615-447d-b04e-ae4253af648d" + "uuid": "bf11bd3d-ca0e-4756-8106-142184dc57e7" }, "genbank_files1": { - "id": "4c26f2b3928e5c2b", + "id": "b20d34fd097d655b", "src": "hda", - "uuid": "ecb057a2-dbf8-4105-b55e-d726ec1e9693" + "uuid": "af32db16-e6dc-493f-b6a7-5a3b6725a736" }, "genbank_files2": { - "id": "7f1b25c57f1b4097", + "id": "38d1a5747f8e5978", "src": "hda", - "uuid": "498fe703-52c3-4162-be00-93f49f00689d" + "uuid": "a4936e9b-d8be-4cf9-8d6c-1c625676bc58" }, "genbank_files3": { - "id": "cbd9b7f3981a10ff", + "id": "aa0c2bc050c99399", "src": "hda", - "uuid": "d402c2ac-ca2d-46b6-b9d3-989739678de1" + "uuid": "03cda120-0c4d-4452-afab-925df4a5723a" }, "genbank_files4": { - "id": "8f1ec376bf339086", + "id": "7696fc7f810474ba", "src": "hda", - "uuid": "1124ff36-f61b-4932-adc6-0b6de5a888ae" + "uuid": "3b164cad-fbab-47a9-8965-c95820826daf" }, "genbank_files5": { - "id": "a91e9fd0ce2e3c53", + "id": "bf4065b67294e257", "src": "hda", - "uuid": "8fe51091-39c5-4aa6-b0ec-fbc34712e405" + "uuid": "ab35511d-2fbf-4014-b079-65b270bd9cc8" } }, "job_messages": [], @@ -960,40 +961,39 @@ "model_class": "Job", "output_collections": { "construct_gb": { - "id": "c32c50a47ebf8564", + "id": "f7b25594aba42961", "src": "hdca" } }, "outputs": { "output_zip": { - "id": "2be24ce9bdbc87e1", + "id": "1f477a8cb4ab1699", "src": "hda", - "uuid": "45ef7ed5-48aa-4286-ac51-3391b593eb7c" + "uuid": "f130e84e-8140-449b-bb7e-8df370a421d1" } }, "params": { "__input_ext": "\"input\"", - "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}", - "assembly_plan_name": "\"BASICAssembly\"", - "chromInfo": "\"/tmp/tmpm1fyob3t/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", + "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", "dbkey": "\"?\"", "domesticated_input": null, "genbank_files": "{\"values\": [{\"id\": 7, \"src\": \"hdca\"}]}", - "topology": "\"circular\"" + "json_use": "{\"__current_case__\": 0, \"assembly_plan_name\": \"BASICAssembly\", \"enzyme\": \"auto\", \"topology\": \"circular\", \"use_json_paramers\": false}", + "use_file_names_as_ids": "true" }, "state": "ok", - "stderr": "\rassembly: 0%| | 0/10 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/8 [00:00<?, ?it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 6/8 [00:00<00:00, 48.97it/s, now=None]\r \r", + "stderr": "\rassembly: 0%| | 0/10 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/8 [00:00<?, ?it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 6/8 [00:00<00:00, 49.66it/s, now=None]\r \r", "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 2, 'errored_assemblies': 8, 'valid_assemblies': 0}\nGenerating assemblies reports...\n", "tool_id": "cloning_simulation", - "tool_stderr": "\rassembly: 0%| | 0/10 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/8 [00:00<?, ?it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 6/8 [00:00<00:00, 48.97it/s, now=None]\r \r", + "tool_stderr": "\rassembly: 0%| | 0/10 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/8 [00:00<?, ?it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 6/8 [00:00<00:00, 49.66it/s, now=None]\r \r", "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 2, 'errored_assemblies': 8, 'valid_assemblies': 0}\nGenerating assemblies reports...\n", - "update_time": "2025-05-26T12:04:01.978111", + "update_time": "2025-07-17T10:11:52.291581", "user_email": "planemo@galaxyproject.org", - "user_id": "e2ca7f14a85a8d44" + "user_id": "986c9b47c580ae59" }, "status": "success", "test_index": 3, - "time_seconds": 30.717636823654175, + "time_seconds": 30.479472160339355, "tool_id": "cloning_simulation", "tool_version": "0.1.0+galaxy0" }, @@ -1003,23 +1003,327 @@ { "data": { "inputs": { - "adv|use_file_names_as_ids": true, "assembly_csv": { - "id": "5493159c7d57114c", + "id": "38b6c0c549bf284f", "src": "hda" }, - "assembly_plan_name": "BioBrickStandardAssembly", "genbank_files": { - "id": "5f035ce298b798b0", + "id": "5f098a2d242af5ee", "src": "hdca" }, - "topology": "circular" + "json_use|assembly_plan_name": "BioBrickStandardAssembly", + "json_use|topology": "circular", + "json_use|use_json_paramers": false, + "use_file_names_as_ids": true }, "job": { - "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpm1fyob3t/files/4/9/a/dataset_49af2c08-3ad4-4940-ae84-f93df3c0dd8a.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpm1fyob3t/files/8/9/4/dataset_894d0a5e-2d87-4861-85cb-b5cae83b19cb.dat,/tmp/tmpm1fyob3t/files/3/1/5/dataset_315f1808-e9c5-45fb-8cb8-b71e8e1c8366.dat,/tmp/tmpm1fyob3t/files/b/6/7/dataset_b67a6264-6208-4b44-8fd4-47ba3f96faee.dat,/tmp/tmpm1fyob3t/files/c/e/3/dataset_ce3a0b5e-0344-4422-b84a-84904818396b.dat,/tmp/tmpm1fyob3t/files/b/7/d/dataset_b7dcace3-2dbd-49db-94ac-98485bf522aa.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'BioBrickStandardAssembly' --file_name_mapping '/tmp/tmpm1fyob3t/files/8/9/4/dataset_894d0a5e-2d87-4861-85cb-b5cae83b19cb.dat:BBa_E0040_GFP.gb,/tmp/tmpm1fyob3t/files/3/1/5/dataset_315f1808-e9c5-45fb-8cb8-b71e8e1c8366.dat:BBa_J23119_prom.gb,/tmp/tmpm1fyob3t/files/b/6/7/dataset_b67a6264-6208-4b44-8fd4-47ba3f96faee.dat:BBa_J23119_prom_flawed.gb,/tmp/tmpm1fyob3t/files/c/e/3/dataset_ce3a0b5e-0344-4422-b84a-84904818396b.dat:BBa_J61048_term.gb,/tmp/tmpm1fyob3t/files/b/7/d/dataset_b7dcace3-2dbd-49db-94ac-98485bf522aa.dat:BBa_K611094_bar.gb' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpm1fyob3t/job_working_directory/000/35/outputs/dataset_3f72ea64-02f3-413e-9d9a-5c43eaaadf14.dat'", + "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/3/0/7/dataset_307ff774-78e5-410b-926b-396bf0346f5f.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/8/7/9/dataset_879f6c49-14f5-4f78-8b32-f06d098a7f4f.dat,/tmp/tmpe6pmg7jw/files/a/3/c/dataset_a3cb8cea-16ad-4a33-8e41-a9b378b2974a.dat,/tmp/tmpe6pmg7jw/files/c/7/b/dataset_c7bca70e-0ae9-4062-b185-1e0e5ed116a6.dat,/tmp/tmpe6pmg7jw/files/b/3/a/dataset_b3a11bc9-4c29-470c-8985-d845c2f9e183.dat,/tmp/tmpe6pmg7jw/files/0/8/1/dataset_08129340-240c-4349-af6c-0379d32cae9c.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/8/7/9/dataset_879f6c49-14f5-4f78-8b32-f06d098a7f4f.dat:BBa_E0040_GFP.gb,/tmp/tmpe6pmg7jw/files/a/3/c/dataset_a3cb8cea-16ad-4a33-8e41-a9b378b2974a.dat:BBa_J23119_prom.gb,/tmp/tmpe6pmg7jw/files/c/7/b/dataset_c7bca70e-0ae9-4062-b185-1e0e5ed116a6.dat:BBa_J23119_prom_flawed.gb,/tmp/tmpe6pmg7jw/files/b/3/a/dataset_b3a11bc9-4c29-470c-8985-d845c2f9e183.dat:BBa_J61048_term.gb,/tmp/tmpe6pmg7jw/files/0/8/1/dataset_08129340-240c-4349-af6c-0379d32cae9c.dat:BBa_K611094_bar.gb' --file_name_mapping_dom '' --use_json_paramers 'false' --enzyme 'auto' --topology 'circular' --assembly_plan_name 'BioBrickStandardAssembly' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/35/outputs/dataset_c2f7d71f-de27-48c6-bc1f-b656bc8d53f1.dat'", "command_version": "", "copied_from_job_id": null, - "create_time": "2025-05-26T12:04:23.734013", + "create_time": "2025-07-17T10:12:13.370696", + "dependencies": [ + { + "cacheable": false, + "dependency_resolver": { + "auto_init": true, + "auto_install": true, + "can_uninstall_dependencies": true, + "ensure_channels": "conda-forge,bioconda", + "model_class": "CondaDependencyResolver", + "prefix": "/home/rkhaled/miniconda3", + "read_only": false, + "resolver_type": "conda", + "resolves_simple_dependencies": true, + "use_local": false, + "versionless": false + }, + "dependency_type": "conda", + "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf", + "exact": true, + "model_class": "MergedCondaDependency", + "name": "flametree", + "version": "0.1.11" + }, + { + "cacheable": false, + "dependency_resolver": { + "auto_init": true, + "auto_install": true, + "can_uninstall_dependencies": true, + "ensure_channels": "conda-forge,bioconda", + "model_class": "CondaDependencyResolver", + "prefix": "/home/rkhaled/miniconda3", + "read_only": false, + "resolver_type": "conda", + "resolves_simple_dependencies": true, + "use_local": false, + "versionless": false + }, + "dependency_type": "conda", + "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf", + "exact": true, + "model_class": "MergedCondaDependency", + "name": "biopython", + "version": "1.85" + }, + { + "cacheable": false, + "dependency_resolver": { + "auto_init": true, + "auto_install": true, + "can_uninstall_dependencies": true, + "ensure_channels": "conda-forge,bioconda", + "model_class": "CondaDependencyResolver", + "prefix": "/home/rkhaled/miniconda3", + "read_only": false, + "resolver_type": "conda", + "resolves_simple_dependencies": true, + "use_local": false, + "versionless": false + }, + "dependency_type": "conda", + "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf", + "exact": true, + "model_class": "MergedCondaDependency", + "name": "proglog", + "version": "0.1.10" + }, + { + "cacheable": false, + "dependency_resolver": { + "auto_init": true, + "auto_install": true, + "can_uninstall_dependencies": true, + "ensure_channels": "conda-forge,bioconda", + "model_class": "CondaDependencyResolver", + "prefix": "/home/rkhaled/miniconda3", + "read_only": false, + "resolver_type": "conda", + "resolves_simple_dependencies": true, + "use_local": false, + "versionless": false + }, + "dependency_type": "conda", + "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf", + "exact": true, + "model_class": "MergedCondaDependency", + "name": "pandas", + "version": "2.2.3" + }, + { + "cacheable": false, + "dependency_resolver": { + "auto_init": true, + "auto_install": true, + "can_uninstall_dependencies": true, + "ensure_channels": "conda-forge,bioconda", + "model_class": "CondaDependencyResolver", + "prefix": "/home/rkhaled/miniconda3", + "read_only": false, + "resolver_type": "conda", + "resolves_simple_dependencies": true, + "use_local": false, + "versionless": false + }, + "dependency_type": "conda", + "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf", + "exact": true, + "model_class": "MergedCondaDependency", + "name": "dnacauldron", + "version": "2.0.12" + }, + { + "cacheable": false, + "dependency_resolver": { + "auto_init": true, + "auto_install": true, + "can_uninstall_dependencies": true, + "ensure_channels": "conda-forge,bioconda", + "model_class": "CondaDependencyResolver", + "prefix": "/home/rkhaled/miniconda3", + "read_only": false, + "resolver_type": "conda", + "resolves_simple_dependencies": true, + "use_local": false, + "versionless": false + }, + "dependency_type": "conda", + "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf", + "exact": true, + "model_class": "MergedCondaDependency", + "name": "pdf-reports", + "version": "0.3.9" + }, + { + "cacheable": false, + "dependency_resolver": { + "auto_init": true, + "auto_install": true, + "can_uninstall_dependencies": true, + "ensure_channels": "conda-forge,bioconda", + "model_class": "CondaDependencyResolver", + "prefix": "/home/rkhaled/miniconda3", + "read_only": false, + "resolver_type": "conda", + "resolves_simple_dependencies": true, + "use_local": false, + "versionless": false + }, + "dependency_type": "conda", + "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf", + "exact": true, + "model_class": "MergedCondaDependency", + "name": "sequenticon", + "version": "0.1.8" + }, + { + "cacheable": false, + "dependency_resolver": { + "auto_init": true, + "auto_install": true, + "can_uninstall_dependencies": true, + "ensure_channels": "conda-forge,bioconda", + "model_class": "CondaDependencyResolver", + "prefix": "/home/rkhaled/miniconda3", + "read_only": false, + "resolver_type": "conda", + "resolves_simple_dependencies": true, + "use_local": false, + "versionless": false + }, + "dependency_type": "conda", + "environment_path": "/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf", + "exact": true, + "model_class": "MergedCondaDependency", + "name": "dna_features_viewer", + "version": "3.1.5" + } + ], + "exit_code": 0, + "external_id": "77757", + "galaxy_version": "25.0", + "handler": null, + "history_id": "58ad66a9f93223b8", + "id": "1f477a8cb4ab1699", + "inputs": { + "assembly_csv": { + "id": "38b6c0c549bf284f", + "src": "hda", + "uuid": "307ff774-78e5-410b-926b-396bf0346f5f" + }, + "genbank_files1": { + "id": "de5166318ad7499c", + "src": "hda", + "uuid": "879f6c49-14f5-4f78-8b32-f06d098a7f4f" + }, + "genbank_files2": { + "id": "0a0976316513f675", + "src": "hda", + "uuid": "a3cb8cea-16ad-4a33-8e41-a9b378b2974a" + }, + "genbank_files3": { + "id": "88f51edac3b2f70e", + "src": "hda", + "uuid": "c7bca70e-0ae9-4062-b185-1e0e5ed116a6" + }, + "genbank_files4": { + "id": "6974b4f354e9f36a", + "src": "hda", + "uuid": "b3a11bc9-4c29-470c-8985-d845c2f9e183" + }, + "genbank_files5": { + "id": "5b088a1dc26c39a4", + "src": "hda", + "uuid": "08129340-240c-4349-af6c-0379d32cae9c" + } + }, + "job_messages": [], + "job_metrics": [], + "job_runner_name": null, + "job_stderr": "", + "job_stdout": "", + "model_class": "Job", + "output_collections": { + "construct_gb": { + "id": "8de66704b7df8b5e", + "src": "hdca" + } + }, + "outputs": { + "__new_primary_file_construct_gb|C1_prom_barcode__": { + "id": "79e58137b38a96f5", + "src": "hda", + "uuid": "8b1ffa40-fda8-4629-a843-4a17c7d9e983" + }, + "__new_primary_file_construct_gb|C2_gfp_term__": { + "id": "b5ab7a1e4a941d0d", + "src": "hda", + "uuid": "ef840f10-be08-4855-858c-ee696e852624" + }, + "__new_primary_file_construct_gb|C3_final__": { + "id": "76e4f31bf12269ab", + "src": "hda", + "uuid": "0eba0e00-8261-4ff7-a40e-46d7fd0b9f62" + }, + "output_zip": { + "id": "8380aea1f9c6b8c9", + "src": "hda", + "uuid": "c2f7d71f-de27-48c6-bc1f-b656bc8d53f1" + } + }, + "params": { + "__input_ext": "\"input\"", + "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", + "dbkey": "\"?\"", + "domesticated_input": null, + "genbank_files": "{\"values\": [{\"id\": 9, \"src\": \"hdca\"}]}", + "json_use": "{\"__current_case__\": 0, \"assembly_plan_name\": \"BioBrickStandardAssembly\", \"enzyme\": \"auto\", \"topology\": \"circular\", \"use_json_paramers\": false}", + "use_file_names_as_ids": "true" + }, + "state": "ok", + "stderr": "\rassembly: 0%| | 0/3 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/3 [00:00<?, ?it/s, now=None]\rassembly: 67%|\u2588\u2588\u2588\u2588\u2588\u2588\u258b | 2/3 [00:01<00:00, 1.93it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00, 1.59it/s, now=None]\r \r", + "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 3}\nGenerating assemblies reports...\n", + "tool_id": "cloning_simulation", + "tool_stderr": "\rassembly: 0%| | 0/3 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/3 [00:00<?, ?it/s, now=None]\rassembly: 67%|\u2588\u2588\u2588\u2588\u2588\u2588\u258b | 2/3 [00:01<00:00, 1.93it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00, 1.59it/s, now=None]\r \r", + "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 3}\nGenerating assemblies reports...\n", + "update_time": "2025-07-17T10:12:26.209759", + "user_email": "planemo@galaxyproject.org", + "user_id": "986c9b47c580ae59" + }, + "status": "success", + "test_index": 4, + "time_seconds": 33.86248016357422, + "tool_id": "cloning_simulation", + "tool_version": "0.1.0+galaxy0" + }, + "has_data": true, + "id": "cloning_simulation-4" + }, + { + "data": { + "inputs": { + "assembly_csv": { + "id": "7b8a6e6b82f35567", + "src": "hda" + }, + "domesticated_input": { + "id": "54c6d71c8dc7cb11", + "src": "hdca" + }, + "genbank_files": { + "id": "2592d2c705ba0baa", + "src": "hdca" + }, + "json_use|assembly_plan_name": "Type2sRestrictionAssembly", + "json_use|topology": "circular", + "json_use|use_json_paramers": false, + "use_file_names_as_ids": true + }, + "job": { + "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/9/b/5/dataset_9b53e736-9aa4-428b-866b-72d2f525f99e.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/d/1/5/dataset_d15ff026-babf-41d1-b9e0-e701e0a51b6b.dat,/tmp/tmpe6pmg7jw/files/2/9/8/dataset_298d983c-3e5c-4b93-944c-b372d4295740.dat,/tmp/tmpe6pmg7jw/files/4/e/3/dataset_4e3c0103-dbb8-465c-abbf-7f9b66a8263b.dat,/tmp/tmpe6pmg7jw/files/1/5/4/dataset_15452284-bc19-43d6-8367-2753056a96ec.dat,/tmp/tmpe6pmg7jw/files/0/f/3/dataset_0f36b33d-8c1c-472b-abbd-c3f63418174a.dat,/tmp/tmpe6pmg7jw/files/a/d/d/dataset_adde970f-87a8-45b0-9303-acf0d7ed7c2e.dat,/tmp/tmpe6pmg7jw/files/9/6/b/dataset_96bd86f4-cd0a-4a34-a1cf-3044a62f77a2.dat' --domesticated_seq '/tmp/tmpe6pmg7jw/files/5/5/8/dataset_5587676a-8c81-4954-bf33-2c965bf7635d.dat,/tmp/tmpe6pmg7jw/files/b/f/b/dataset_bfb815a2-67c8-4cb5-afb8-ea35cfa372eb.dat,/tmp/tmpe6pmg7jw/files/2/1/6/dataset_216a998c-35de-48c2-a017-c3fed9787319.dat,/tmp/tmpe6pmg7jw/files/8/9/1/dataset_89112e3f-e936-4419-938d-b4b4daa68e40.dat,/tmp/tmpe6pmg7jw/files/5/3/2/dataset_53218d73-0f61-4527-b279-62ced98701d1.dat' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/d/1/5/dataset_d15ff026-babf-41d1-b9e0-e701e0a51b6b.dat:part_A.gb,/tmp/tmpe6pmg7jw/files/2/9/8/dataset_298d983c-3e5c-4b93-944c-b372d4295740.dat:part_B.gb,/tmp/tmpe6pmg7jw/files/4/e/3/dataset_4e3c0103-dbb8-465c-abbf-7f9b66a8263b.dat:part_C.gb,/tmp/tmpe6pmg7jw/files/1/5/4/dataset_15452284-bc19-43d6-8367-2753056a96ec.dat:part_D.gb,/tmp/tmpe6pmg7jw/files/0/f/3/dataset_0f36b33d-8c1c-472b-abbd-c3f63418174a.dat:part_E.gb,/tmp/tmpe6pmg7jw/files/a/d/d/dataset_adde970f-87a8-45b0-9303-acf0d7ed7c2e.dat:part_F.gb,/tmp/tmpe6pmg7jw/files/9/6/b/dataset_96bd86f4-cd0a-4a34-a1cf-3044a62f77a2.dat:part_G.gb' --file_name_mapping_dom '/tmp/tmpe6pmg7jw/files/5/5/8/dataset_5587676a-8c81-4954-bf33-2c965bf7635d.dat:part_H.gb,/tmp/tmpe6pmg7jw/files/b/f/b/dataset_bfb815a2-67c8-4cb5-afb8-ea35cfa372eb.dat:part_I.gb,/tmp/tmpe6pmg7jw/files/2/1/6/dataset_216a998c-35de-48c2-a017-c3fed9787319.dat:part_J.gb,/tmp/tmpe6pmg7jw/files/8/9/1/dataset_89112e3f-e936-4419-938d-b4b4daa68e40.dat:part_K.gb,/tmp/tmpe6pmg7jw/files/5/3/2/dataset_53218d73-0f61-4527-b279-62ced98701d1.dat:part_L.gb' --use_json_paramers 'false' --enzyme 'auto' --topology 'circular' --assembly_plan_name 'Type2sRestrictionAssembly' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/49/outputs/dataset_85657c38-c9be-421a-8d2e-3ba54dcd1ee1.dat'", + "command_version": "", + "copied_from_job_id": null, + "create_time": "2025-07-17T10:13:06.053332", "dependencies": [ { "cacheable": false, @@ -1199,41 +1503,76 @@ } ], "exit_code": 0, - "external_id": "174889", - "galaxy_version": "24.2", + "external_id": "78856", + "galaxy_version": "25.0", "handler": null, - "history_id": "3937d5ff7c0e1373", - "id": "2be24ce9bdbc87e1", + "history_id": "e9003a596293e37c", + "id": "c4dd95e8260a7aca", "inputs": { "assembly_csv": { - "id": "5493159c7d57114c", + "id": "7b8a6e6b82f35567", + "src": "hda", + "uuid": "9b53e736-9aa4-428b-866b-72d2f525f99e" + }, + "domesticated_input1": { + "id": "3cae7d055c6a8b90", + "src": "hda", + "uuid": "5587676a-8c81-4954-bf33-2c965bf7635d" + }, + "domesticated_input2": { + "id": "eb3eeb1f7f0d700b", "src": "hda", - "uuid": "49af2c08-3ad4-4940-ae84-f93df3c0dd8a" + "uuid": "bfb815a2-67c8-4cb5-afb8-ea35cfa372eb" + }, + "domesticated_input3": { + "id": "0a842033366cb6f4", + "src": "hda", + "uuid": "216a998c-35de-48c2-a017-c3fed9787319" + }, + "domesticated_input4": { + "id": "3b0ecfffcd65a433", + "src": "hda", + "uuid": "89112e3f-e936-4419-938d-b4b4daa68e40" + }, + "domesticated_input5": { + "id": "7b7bd43bd69db4da", + "src": "hda", + "uuid": "53218d73-0f61-4527-b279-62ced98701d1" }, "genbank_files1": { - "id": "8d7d89366ae6734b", + "id": "b2f60919761cbe66", "src": "hda", - "uuid": "894d0a5e-2d87-4861-85cb-b5cae83b19cb" + "uuid": "d15ff026-babf-41d1-b9e0-e701e0a51b6b" }, "genbank_files2": { - "id": "30133c2583e745a4", + "id": "99a09fce7ce0f899", "src": "hda", - "uuid": "315f1808-e9c5-45fb-8cb8-b71e8e1c8366" + "uuid": "298d983c-3e5c-4b93-944c-b372d4295740" }, "genbank_files3": { - "id": "d3fd00b679818750", + "id": "f6b26195fd7f7f3e", "src": "hda", - "uuid": "b67a6264-6208-4b44-8fd4-47ba3f96faee" + "uuid": "4e3c0103-dbb8-465c-abbf-7f9b66a8263b" }, "genbank_files4": { - "id": "a5593c3e02c9d8f6", + "id": "c4dd95e8260a7aca", "src": "hda", - "uuid": "ce3a0b5e-0344-4422-b84a-84904818396b" + "uuid": "15452284-bc19-43d6-8367-2753056a96ec" }, "genbank_files5": { - "id": "fb42640a8a596816", + "id": "03de0919cac4bbd5", + "src": "hda", + "uuid": "0f36b33d-8c1c-472b-abbd-c3f63418174a" + }, + "genbank_files6": { + "id": "8b133a938a16d94a", "src": "hda", - "uuid": "b7dcace3-2dbd-49db-94ac-98485bf522aa" + "uuid": "adde970f-87a8-45b0-9303-acf0d7ed7c2e" + }, + "genbank_files7": { + "id": "de8340ef2cf62a09", + "src": "hda", + "uuid": "96bd86f4-cd0a-4a34-a1cf-3044a62f77a2" } }, "job_messages": [], @@ -1244,85 +1583,86 @@ "model_class": "Job", "output_collections": { "construct_gb": { - "id": "fbec4a551130f847", + "id": "54d710fc68386373", "src": "hdca" } }, "outputs": { - "__new_primary_file_construct_gb|C1_prom_barcode__": { - "id": "f1bdbab1d80457ac", + "__new_primary_file_construct_gb|construct_1__": { + "id": "955be7be95972849", "src": "hda", - "uuid": "8a7dec58-9e11-4bbf-a945-3910d02c89d9" + "uuid": "14602eef-eda6-4c3a-8f13-f1cac1adca78" + }, + "__new_primary_file_construct_gb|construct_2__": { + "id": "535a274eb83bb714", + "src": "hda", + "uuid": "c94a01f0-fd44-4112-be7e-0cc5c48e541d" }, - "__new_primary_file_construct_gb|C2_gfp_term__": { - "id": "588795470b41a739", + "__new_primary_file_construct_gb|construct_3__": { + "id": "b79f0249bac52469", "src": "hda", - "uuid": "ee52fe89-63a0-498c-bdbb-ec9fe5b72eca" + "uuid": "a4df015a-0bc4-4cec-b8be-67681da9f1b7" }, - "__new_primary_file_construct_gb|C3_final__": { - "id": "de619fffe043835f", + "__new_primary_file_construct_gb|construct_4__": { + "id": "3cafb1bf19a56844", "src": "hda", - "uuid": "6b8fe4a1-1743-4ec5-a12e-6b7b267efa08" + "uuid": "d38c7640-aa80-4ddd-b16b-6c71f3aaf195" }, "output_zip": { - "id": "a072914da4208f87", + "id": "0d8c106f64e9b667", "src": "hda", - "uuid": "3f72ea64-02f3-413e-9d9a-5c43eaaadf14" + "uuid": "85657c38-c9be-421a-8d2e-3ba54dcd1ee1" } }, "params": { "__input_ext": "\"input\"", - "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}", - "assembly_plan_name": "\"BioBrickStandardAssembly\"", - "chromInfo": "\"/tmp/tmpm1fyob3t/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", + "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", "dbkey": "\"?\"", - "domesticated_input": null, - "genbank_files": "{\"values\": [{\"id\": 9, \"src\": \"hdca\"}]}", - "topology": "\"circular\"" + "domesticated_input": "{\"values\": [{\"id\": 11, \"src\": \"hdca\"}]}", + "genbank_files": "{\"values\": [{\"id\": 12, \"src\": \"hdca\"}]}", + "json_use": "{\"__current_case__\": 0, \"assembly_plan_name\": \"Type2sRestrictionAssembly\", \"enzyme\": \"auto\", \"topology\": \"circular\", \"use_json_paramers\": false}", + "use_file_names_as_ids": "true" }, "state": "ok", - "stderr": "\rassembly: 0%| | 0/3 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/3 [00:00<?, ?it/s, now=None]\rassembly: 67%|\u2588\u2588\u2588\u2588\u2588\u2588\u258b | 2/3 [00:00<00:00, 2.04it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00, 1.66it/s, now=None]\r \r", - "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 3}\nGenerating assemblies reports...\n", + "stderr": "\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\rassembly: 50%|\u2588\u2588\u2588\u2588\u2588 | 2/4 [00:00<00:00, 2.43it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 3/4 [00:01<00:00, 2.22it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00, 1.82it/s, now=None]\r \r", + "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n", "tool_id": "cloning_simulation", - "tool_stderr": "\rassembly: 0%| | 0/3 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/3 [00:00<?, ?it/s, now=None]\rassembly: 67%|\u2588\u2588\u2588\u2588\u2588\u2588\u258b | 2/3 [00:00<00:00, 2.04it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00, 1.66it/s, now=None]\r \r", - "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 3}\nGenerating assemblies reports...\n", - "update_time": "2025-05-26T12:04:36.963198", + "tool_stderr": "\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\rassembly: 50%|\u2588\u2588\u2588\u2588\u2588 | 2/4 [00:00<00:00, 2.43it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 3/4 [00:01<00:00, 2.22it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00, 1.82it/s, now=None]\r \r", + "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n", + "update_time": "2025-07-17T10:13:18.198417", "user_email": "planemo@galaxyproject.org", - "user_id": "e2ca7f14a85a8d44" + "user_id": "986c9b47c580ae59" }, "status": "success", - "test_index": 4, - "time_seconds": 34.648075580596924, + "test_index": 5, + "time_seconds": 51.96266531944275, "tool_id": "cloning_simulation", "tool_version": "0.1.0+galaxy0" }, "has_data": true, - "id": "cloning_simulation-4" + "id": "cloning_simulation-5" }, { "data": { "inputs": { - "adv|use_file_names_as_ids": true, "assembly_csv": { - "id": "d61e70858d065388", + "id": "6cceecf1bcab0d5e", "src": "hda" }, - "assembly_plan_name": "Type2sRestrictionAssembly", "domesticated_input": { - "id": "5bd8560352cb0b69", + "id": "98a2432f1cff4f91", "src": "hdca" }, - "genbank_files": { - "id": "cb2fe7fb50f38553", - "src": "hdca" - }, - "topology": "circular" + "json_use|assembly_plan_name": "Type2sRestrictionAssembly", + "json_use|topology": "circular", + "json_use|use_json_paramers": false, + "use_file_names_as_ids": true }, "job": { - "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpm1fyob3t/files/f/2/3/dataset_f2390ba6-b891-4c75-b5b4-881fabe15212.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpm1fyob3t/files/d/f/e/dataset_dfe71b71-2603-48cf-bf59-772724abea0f.dat,/tmp/tmpm1fyob3t/files/0/9/2/dataset_09260017-ac9e-4868-b386-27ef07ca03a8.dat,/tmp/tmpm1fyob3t/files/8/4/e/dataset_84e57026-4e85-4a63-b66a-8bae5b767f0c.dat,/tmp/tmpm1fyob3t/files/7/d/2/dataset_7d26d36d-bb1c-4f83-be4f-3311e4ec2441.dat,/tmp/tmpm1fyob3t/files/8/a/0/dataset_8a0ff1e5-aaf7-461e-b642-b60e5cf13132.dat,/tmp/tmpm1fyob3t/files/f/9/4/dataset_f94fb7c9-761b-4dc1-8caa-a02ee7892c59.dat,/tmp/tmpm1fyob3t/files/c/7/e/dataset_c7e408b5-927b-4966-8d1f-08de3b41fc34.dat' --domesticated_seq '/tmp/tmpm1fyob3t/files/b/2/6/dataset_b263e11f-1d52-45d4-8679-8bb23668154a.dat,/tmp/tmpm1fyob3t/files/c/4/c/dataset_c4c08e8f-3ffc-40d0-8a27-1bee8b5f6fee.dat,/tmp/tmpm1fyob3t/files/d/d/c/dataset_ddcb9f93-9b4f-41e3-a1df-5537b6326a78.dat,/tmp/tmpm1fyob3t/files/9/9/b/dataset_99bac98d-1cbf-4ab1-a680-49cdb721e447.dat,/tmp/tmpm1fyob3t/files/6/8/5/dataset_685cd571-80b5-4c03-b247-4fb51e199639.dat' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpm1fyob3t/files/d/f/e/dataset_dfe71b71-2603-48cf-bf59-772724abea0f.dat:part_A.gb,/tmp/tmpm1fyob3t/files/0/9/2/dataset_09260017-ac9e-4868-b386-27ef07ca03a8.dat:part_B.gb,/tmp/tmpm1fyob3t/files/8/4/e/dataset_84e57026-4e85-4a63-b66a-8bae5b767f0c.dat:part_C.gb,/tmp/tmpm1fyob3t/files/7/d/2/dataset_7d26d36d-bb1c-4f83-be4f-3311e4ec2441.dat:part_D.gb,/tmp/tmpm1fyob3t/files/8/a/0/dataset_8a0ff1e5-aaf7-461e-b642-b60e5cf13132.dat:part_E.gb,/tmp/tmpm1fyob3t/files/f/9/4/dataset_f94fb7c9-761b-4dc1-8caa-a02ee7892c59.dat:part_F.gb,/tmp/tmpm1fyob3t/files/c/7/e/dataset_c7e408b5-927b-4966-8d1f-08de3b41fc34.dat:part_G.gb' --file_name_mapping_dom '/tmp/tmpm1fyob3t/files/b/2/6/dataset_b263e11f-1d52-45d4-8679-8bb23668154a.dat:part_H.gb,/tmp/tmpm1fyob3t/files/c/4/c/dataset_c4c08e8f-3ffc-40d0-8a27-1bee8b5f6fee.dat:part_I.gb,/tmp/tmpm1fyob3t/files/d/d/c/dataset_ddcb9f93-9b4f-41e3-a1df-5537b6326a78.dat:part_J.gb,/tmp/tmpm1fyob3t/files/9/9/b/dataset_99bac98d-1cbf-4ab1-a680-49cdb721e447.dat:part_K.gb,/tmp/tmpm1fyob3t/files/6/8/5/dataset_685cd571-80b5-4c03-b247-4fb51e199639.dat:part_L.gb' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpm1fyob3t/job_working_directory/000/49/outputs/dataset_b5c1d918-9a86-47ac-9fd0-0d1eeecb3515.dat'", + "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/2/8/4/dataset_2844fc99-3db2-458b-9656-9c18962aed13.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/3/6/7/dataset_367c8adb-623b-4fc2-8710-1402b90dc27a.dat,/tmp/tmpe6pmg7jw/files/b/8/c/dataset_b8c15683-a369-4b52-b94d-52e823e2dbc4.dat,/tmp/tmpe6pmg7jw/files/7/b/7/dataset_7b71197b-9cec-4ebc-a0ab-9a9070856680.dat,/tmp/tmpe6pmg7jw/files/0/8/2/dataset_08203bf4-e285-4e41-845d-c7db10709a14.dat,/tmp/tmpe6pmg7jw/files/b/1/7/dataset_b174f6f8-eb0c-44b9-9d1b-89b7a62bc494.dat,/tmp/tmpe6pmg7jw/files/c/5/9/dataset_c598d3b6-58ab-4695-99a5-5fb6197a4823.dat,/tmp/tmpe6pmg7jw/files/0/9/e/dataset_09eec457-37de-4c2c-8b7e-1be1dfbaffd6.dat,/tmp/tmpe6pmg7jw/files/e/8/4/dataset_e84bc66f-f327-4070-8511-c5734161ea4b.dat,/tmp/tmpe6pmg7jw/files/d/b/0/dataset_db0c0f17-0973-48f2-a70a-2760c7521af3.dat,/tmp/tmpe6pmg7jw/files/a/f/1/dataset_af171625-0bb7-4a5f-a858-f92983e9f54e.dat,/tmp/tmpe6pmg7jw/files/3/5/1/dataset_3515fd31-0758-4e14-a6ac-b01ba9941850.dat,/tmp/tmpe6pmg7jw/files/f/2/1/dataset_f2119eb4-c9ca-461f-8d40-6284effbefa1.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/3/6/7/dataset_367c8adb-623b-4fc2-8710-1402b90dc27a.dat:part_A.gb,/tmp/tmpe6pmg7jw/files/b/8/c/dataset_b8c15683-a369-4b52-b94d-52e823e2dbc4.dat:part_B.gb,/tmp/tmpe6pmg7jw/files/7/b/7/dataset_7b71197b-9cec-4ebc-a0ab-9a9070856680.dat:part_C.gb,/tmp/tmpe6pmg7jw/files/0/8/2/dataset_08203bf4-e285-4e41-845d-c7db10709a14.dat:part_D.gb,/tmp/tmpe6pmg7jw/files/b/1/7/dataset_b174f6f8-eb0c-44b9-9d1b-89b7a62bc494.dat:part_E.gb,/tmp/tmpe6pmg7jw/files/c/5/9/dataset_c598d3b6-58ab-4695-99a5-5fb6197a4823.dat:part_F.gb,/tmp/tmpe6pmg7jw/files/0/9/e/dataset_09eec457-37de-4c2c-8b7e-1be1dfbaffd6.dat:part_G.gb,/tmp/tmpe6pmg7jw/files/e/8/4/dataset_e84bc66f-f327-4070-8511-c5734161ea4b.dat:part_H.gb,/tmp/tmpe6pmg7jw/files/d/b/0/dataset_db0c0f17-0973-48f2-a70a-2760c7521af3.dat:part_I.gb,/tmp/tmpe6pmg7jw/files/a/f/1/dataset_af171625-0bb7-4a5f-a858-f92983e9f54e.dat:part_J.gb,/tmp/tmpe6pmg7jw/files/3/5/1/dataset_3515fd31-0758-4e14-a6ac-b01ba9941850.dat:part_K.gb,/tmp/tmpe6pmg7jw/files/f/2/1/dataset_f2119eb4-c9ca-461f-8d40-6284effbefa1.dat:part_L.gb' --file_name_mapping_dom '' --use_json_paramers 'false' --enzyme 'auto' --topology 'circular' --assembly_plan_name 'Type2sRestrictionAssembly' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/63/outputs/dataset_fc4a95ba-4368-4457-b175-ebf26af659aa.dat'", "command_version": "", "copied_from_job_id": null, - "create_time": "2025-05-26T12:05:17.468278", + "create_time": "2025-07-17T10:13:57.903413", "dependencies": [ { "cacheable": false, @@ -1502,76 +1842,76 @@ } ], "exit_code": 0, - "external_id": "176006", - "galaxy_version": "24.2", + "external_id": "80009", + "galaxy_version": "25.0", "handler": null, - "history_id": "473b1992d5f5b84f", - "id": "52d2dbb7944a53fc", + "history_id": "8c39a9a410cc0a00", + "id": "3cafb1bf19a56844", "inputs": { "assembly_csv": { - "id": "d61e70858d065388", + "id": "6cceecf1bcab0d5e", "src": "hda", - "uuid": "f2390ba6-b891-4c75-b5b4-881fabe15212" + "uuid": "2844fc99-3db2-458b-9656-9c18962aed13" }, "domesticated_input1": { - "id": "201ce005b4eba284", + "id": "95f8e30291b4c724", + "src": "hda", + "uuid": "367c8adb-623b-4fc2-8710-1402b90dc27a" + }, + "domesticated_input10": { + "id": "5dc7959fa599d57d", "src": "hda", - "uuid": "b263e11f-1d52-45d4-8679-8bb23668154a" + "uuid": "af171625-0bb7-4a5f-a858-f92983e9f54e" + }, + "domesticated_input11": { + "id": "d309b7113a9d8008", + "src": "hda", + "uuid": "3515fd31-0758-4e14-a6ac-b01ba9941850" + }, + "domesticated_input12": { + "id": "f558e884d7fd7d56", + "src": "hda", + "uuid": "f2119eb4-c9ca-461f-8d40-6284effbefa1" }, "domesticated_input2": { - "id": "ccacdf94e033958e", + "id": "e51e45ceb8fc2cce", "src": "hda", - "uuid": "c4c08e8f-3ffc-40d0-8a27-1bee8b5f6fee" + "uuid": "b8c15683-a369-4b52-b94d-52e823e2dbc4" }, "domesticated_input3": { - "id": "71f633fb8d250097", + "id": "7a147471a754feaa", "src": "hda", - "uuid": "ddcb9f93-9b4f-41e3-a1df-5537b6326a78" + "uuid": "7b71197b-9cec-4ebc-a0ab-9a9070856680" }, "domesticated_input4": { - "id": "23971c9dcf22198b", + "id": "980ee860844f9585", "src": "hda", - "uuid": "99bac98d-1cbf-4ab1-a680-49cdb721e447" + "uuid": "08203bf4-e285-4e41-845d-c7db10709a14" }, "domesticated_input5": { - "id": "60438d790668bc40", + "id": "fbc8779ea7cd6ed6", "src": "hda", - "uuid": "685cd571-80b5-4c03-b247-4fb51e199639" - }, - "genbank_files1": { - "id": "562cdacb0f854350", - "src": "hda", - "uuid": "dfe71b71-2603-48cf-bf59-772724abea0f" + "uuid": "b174f6f8-eb0c-44b9-9d1b-89b7a62bc494" }, - "genbank_files2": { - "id": "b5f666ac47f1f830", + "domesticated_input6": { + "id": "185e1f0b9b0a67b3", "src": "hda", - "uuid": "09260017-ac9e-4868-b386-27ef07ca03a8" - }, - "genbank_files3": { - "id": "316b2bf479d3691f", - "src": "hda", - "uuid": "84e57026-4e85-4a63-b66a-8bae5b767f0c" + "uuid": "c598d3b6-58ab-4695-99a5-5fb6197a4823" }, - "genbank_files4": { - "id": "52d2dbb7944a53fc", + "domesticated_input7": { + "id": "37c673ee68b5c3ed", "src": "hda", - "uuid": "7d26d36d-bb1c-4f83-be4f-3311e4ec2441" - }, - "genbank_files5": { - "id": "6d0420a098f813ba", - "src": "hda", - "uuid": "8a0ff1e5-aaf7-461e-b642-b60e5cf13132" + "uuid": "09eec457-37de-4c2c-8b7e-1be1dfbaffd6" }, - "genbank_files6": { - "id": "98086fd4fda4fb74", + "domesticated_input8": { + "id": "8a3a0f65c762008d", "src": "hda", - "uuid": "f94fb7c9-761b-4dc1-8caa-a02ee7892c59" + "uuid": "e84bc66f-f327-4070-8511-c5734161ea4b" }, - "genbank_files7": { - "id": "1e3f8509b9833e4e", + "domesticated_input9": { + "id": "5033875e970a3799", "src": "hda", - "uuid": "c7e408b5-927b-4966-8d1f-08de3b41fc34" + "uuid": "db0c0f17-0973-48f2-a70a-2760c7521af3" } }, "job_messages": [], @@ -1582,86 +1922,88 @@ "model_class": "Job", "output_collections": { "construct_gb": { - "id": "1e8e6749bc68d8e8", + "id": "172543d29b19f394", "src": "hdca" } }, "outputs": { "__new_primary_file_construct_gb|construct_1__": { - "id": "825e5e92a55932c1", + "id": "6665d38e10ff581d", "src": "hda", - "uuid": "fd97fd7a-08b9-42ba-ae2a-022c8be1b219" + "uuid": "30a2a28d-9d1b-4332-8d5a-acda885308dd" }, "__new_primary_file_construct_gb|construct_2__": { - "id": "4a8ace5529c8c3e9", + "id": "0788ac4ba66a0bdd", "src": "hda", - "uuid": "b9201d86-ee66-45ac-99a5-09d3ca161d8b" + "uuid": "49f11bec-1e54-49fe-8c44-7cc25273d54d" }, "__new_primary_file_construct_gb|construct_3__": { - "id": "f0d76a7bda3035c9", + "id": "f41d1a7bd862df72", "src": "hda", - "uuid": "7c74cbab-8a62-43a2-95f3-00919cc11fa7" + "uuid": "a01def58-86a8-48c3-aabc-d9d5a9367927" }, "__new_primary_file_construct_gb|construct_4__": { - "id": "640790f555d03105", + "id": "a371069cf8561e3f", "src": "hda", - "uuid": "a450e128-38e8-4eb5-82a1-304b04c68510" + "uuid": "7fd4fd46-1149-4dbe-aaa4-531dc7db5adb" }, "output_zip": { - "id": "50943f113f3eedaf", + "id": "9df6b2b003837432", "src": "hda", - "uuid": "b5c1d918-9a86-47ac-9fd0-0d1eeecb3515" + "uuid": "fc4a95ba-4368-4457-b175-ebf26af659aa" } }, "params": { "__input_ext": "\"input\"", - "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}", - "assembly_plan_name": "\"Type2sRestrictionAssembly\"", - "chromInfo": "\"/tmp/tmpm1fyob3t/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", + "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", "dbkey": "\"?\"", - "domesticated_input": "{\"values\": [{\"id\": 11, \"src\": \"hdca\"}]}", - "genbank_files": "{\"values\": [{\"id\": 12, \"src\": \"hdca\"}]}", - "topology": "\"circular\"" + "domesticated_input": "{\"values\": [{\"id\": 14, \"src\": \"hdca\"}]}", + "genbank_files": null, + "json_use": "{\"__current_case__\": 0, \"assembly_plan_name\": \"Type2sRestrictionAssembly\", \"enzyme\": \"auto\", \"topology\": \"circular\", \"use_json_paramers\": false}", + "use_file_names_as_ids": "true" }, "state": "ok", - "stderr": "\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\rassembly: 50%|\u2588\u2588\u2588\u2588\u2588 | 2/4 [00:00<00:00, 2.40it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 3/4 [00:01<00:00, 2.21it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00, 1.81it/s, now=None]\r \r", + "stderr": "\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\rassembly: 50%|\u2588\u2588\u2588\u2588\u2588 | 2/4 [00:00<00:00, 2.40it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 3/4 [00:01<00:00, 2.19it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00, 1.80it/s, now=None]\r \r", "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n", "tool_id": "cloning_simulation", - "tool_stderr": "\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\rassembly: 50%|\u2588\u2588\u2588\u2588\u2588 | 2/4 [00:00<00:00, 2.40it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 3/4 [00:01<00:00, 2.21it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00, 1.81it/s, now=None]\r \r", + "tool_stderr": "\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\rassembly: 50%|\u2588\u2588\u2588\u2588\u2588 | 2/4 [00:00<00:00, 2.40it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 3/4 [00:01<00:00, 2.19it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00, 1.80it/s, now=None]\r \r", "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n", - "update_time": "2025-05-26T12:05:29.989306", + "update_time": "2025-07-17T10:14:10.606776", "user_email": "planemo@galaxyproject.org", - "user_id": "e2ca7f14a85a8d44" + "user_id": "986c9b47c580ae59" }, "status": "success", - "test_index": 5, - "time_seconds": 53.09692740440369, + "test_index": 6, + "time_seconds": 52.30599284172058, "tool_id": "cloning_simulation", "tool_version": "0.1.0+galaxy0" }, "has_data": true, - "id": "cloning_simulation-5" + "id": "cloning_simulation-6" }, { "data": { "inputs": { - "adv|use_file_names_as_ids": true, "assembly_csv": { - "id": "d71403ee85b47d8d", + "id": "1a15f75791a9be7d", "src": "hda" }, - "assembly_plan_name": "Type2sRestrictionAssembly", - "domesticated_input": { - "id": "a36db940f4513bd9", + "genbank_files": { + "id": "018c827a8e5b161a", "src": "hdca" }, - "topology": "circular" + "json_use|json_conf": { + "id": "9736c9b0f355f9e7", + "src": "hda" + }, + "json_use|use_json_paramers": true, + "use_file_names_as_ids": true }, "job": { - "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpm1fyob3t/files/3/c/1/dataset_3c1221bc-ba53-4ede-899c-e4defbe838eb.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpm1fyob3t/files/6/8/e/dataset_68ee2e69-c2d9-43cd-851e-0b660884cac2.dat,/tmp/tmpm1fyob3t/files/5/c/2/dataset_5c298af3-9cdb-4837-8054-8903c2683f85.dat,/tmp/tmpm1fyob3t/files/9/c/1/dataset_9c1fd651-de1e-4ba9-a8e1-ee78953b0c8e.dat,/tmp/tmpm1fyob3t/files/e/7/7/dataset_e77c955d-e9b5-4175-a061-81b9a781d2ff.dat,/tmp/tmpm1fyob3t/files/3/5/d/dataset_35df1ceb-416b-4c2d-b20a-3efe96b6770f.dat,/tmp/tmpm1fyob3t/files/c/0/2/dataset_c02fc9fb-dc4e-49e1-b99f-8199fd97d795.dat,/tmp/tmpm1fyob3t/files/3/3/9/dataset_339b4cbf-4ca2-4c49-9cc4-9796c5b9ba8a.dat,/tmp/tmpm1fyob3t/files/2/2/4/dataset_2246947a-dbb7-4ed2-855a-56a42a899aab.dat,/tmp/tmpm1fyob3t/files/0/a/9/dataset_0a935c03-48a7-4c8a-8077-aea407e5285d.dat,/tmp/tmpm1fyob3t/files/0/4/b/dataset_04bcf9c1-ccc8-4d52-a739-fb3630f90b05.dat,/tmp/tmpm1fyob3t/files/4/0/2/dataset_402aaabe-0ea9-4519-998b-11cf6b07a1df.dat,/tmp/tmpm1fyob3t/files/9/c/f/dataset_9cf71985-a62d-4d89-845c-2b996d8096fa.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpm1fyob3t/files/6/8/e/dataset_68ee2e69-c2d9-43cd-851e-0b660884cac2.dat:part_A.gb,/tmp/tmpm1fyob3t/files/5/c/2/dataset_5c298af3-9cdb-4837-8054-8903c2683f85.dat:part_B.gb,/tmp/tmpm1fyob3t/files/9/c/1/dataset_9c1fd651-de1e-4ba9-a8e1-ee78953b0c8e.dat:part_C.gb,/tmp/tmpm1fyob3t/files/e/7/7/dataset_e77c955d-e9b5-4175-a061-81b9a781d2ff.dat:part_D.gb,/tmp/tmpm1fyob3t/files/3/5/d/dataset_35df1ceb-416b-4c2d-b20a-3efe96b6770f.dat:part_E.gb,/tmp/tmpm1fyob3t/files/c/0/2/dataset_c02fc9fb-dc4e-49e1-b99f-8199fd97d795.dat:part_F.gb,/tmp/tmpm1fyob3t/files/3/3/9/dataset_339b4cbf-4ca2-4c49-9cc4-9796c5b9ba8a.dat:part_G.gb,/tmp/tmpm1fyob3t/files/2/2/4/dataset_2246947a-dbb7-4ed2-855a-56a42a899aab.dat:part_H.gb,/tmp/tmpm1fyob3t/files/0/a/9/dataset_0a935c03-48a7-4c8a-8077-aea407e5285d.dat:part_I.gb,/tmp/tmpm1fyob3t/files/0/4/b/dataset_04bcf9c1-ccc8-4d52-a739-fb3630f90b05.dat:part_J.gb,/tmp/tmpm1fyob3t/files/4/0/2/dataset_402aaabe-0ea9-4519-998b-11cf6b07a1df.dat:part_K.gb,/tmp/tmpm1fyob3t/files/9/c/f/dataset_9cf71985-a62d-4d89-845c-2b996d8096fa.dat:part_L.gb' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpm1fyob3t/job_working_directory/000/63/outputs/dataset_02e7ea5e-6c8f-419d-82de-476bccc550ec.dat'", + "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpe6pmg7jw/files/1/5/e/dataset_15e76393-8b6d-44a4-ad54-61e9090f2281.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpe6pmg7jw/files/5/9/5/dataset_5952eac7-72c5-4e87-bac4-94a6eb3d7258.dat,/tmp/tmpe6pmg7jw/files/c/6/c/dataset_c6caf0b6-8d07-4998-8d0d-29b5d76faf46.dat,/tmp/tmpe6pmg7jw/files/c/3/e/dataset_c3e1ef9d-d877-4423-9f6d-0c1d109c0101.dat,/tmp/tmpe6pmg7jw/files/8/6/a/dataset_86a24365-6eed-4415-b56f-d0ff9854f0db.dat,/tmp/tmpe6pmg7jw/files/6/9/6/dataset_69698749-ab10-4865-b19a-ef4c5cb47996.dat,/tmp/tmpe6pmg7jw/files/8/e/d/dataset_8eda50dc-6b4b-4af8-9087-c6473e345a47.dat,/tmp/tmpe6pmg7jw/files/f/9/9/dataset_f99ec108-a3c6-4e80-8eff-68d9b8e9f67c.dat,/tmp/tmpe6pmg7jw/files/1/8/7/dataset_187c2c93-0a63-41ce-bf4f-88b7c770557b.dat,/tmp/tmpe6pmg7jw/files/3/d/7/dataset_3d7f0627-ba1c-4541-95f7-27ed41e601fa.dat,/tmp/tmpe6pmg7jw/files/4/c/1/dataset_4c18d9a5-e37c-428e-a5a3-8f698bbd9b3f.dat,/tmp/tmpe6pmg7jw/files/c/d/2/dataset_cd21525e-d4e4-4e03-a632-5a7152529d82.dat,/tmp/tmpe6pmg7jw/files/c/a/a/dataset_caa4a166-f30b-45f5-b1a9-cdacc6b40073.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --file_name_mapping '/tmp/tmpe6pmg7jw/files/5/9/5/dataset_5952eac7-72c5-4e87-bac4-94a6eb3d7258.dat:part_A.gb,/tmp/tmpe6pmg7jw/files/c/6/c/dataset_c6caf0b6-8d07-4998-8d0d-29b5d76faf46.dat:part_B.gb,/tmp/tmpe6pmg7jw/files/c/3/e/dataset_c3e1ef9d-d877-4423-9f6d-0c1d109c0101.dat:part_C.gb,/tmp/tmpe6pmg7jw/files/8/6/a/dataset_86a24365-6eed-4415-b56f-d0ff9854f0db.dat:part_D.gb,/tmp/tmpe6pmg7jw/files/6/9/6/dataset_69698749-ab10-4865-b19a-ef4c5cb47996.dat:part_E.gb,/tmp/tmpe6pmg7jw/files/8/e/d/dataset_8eda50dc-6b4b-4af8-9087-c6473e345a47.dat:part_F.gb,/tmp/tmpe6pmg7jw/files/f/9/9/dataset_f99ec108-a3c6-4e80-8eff-68d9b8e9f67c.dat:part_G.gb,/tmp/tmpe6pmg7jw/files/1/8/7/dataset_187c2c93-0a63-41ce-bf4f-88b7c770557b.dat:part_H.gb,/tmp/tmpe6pmg7jw/files/3/d/7/dataset_3d7f0627-ba1c-4541-95f7-27ed41e601fa.dat:part_I.gb,/tmp/tmpe6pmg7jw/files/4/c/1/dataset_4c18d9a5-e37c-428e-a5a3-8f698bbd9b3f.dat:part_J.gb,/tmp/tmpe6pmg7jw/files/c/d/2/dataset_cd21525e-d4e4-4e03-a632-5a7152529d82.dat:part_K.gb,/tmp/tmpe6pmg7jw/files/c/a/a/dataset_caa4a166-f30b-45f5-b1a9-cdacc6b40073.dat:part_L.gb' --file_name_mapping_dom '' --use_json_paramers 'true' --json_conf '/tmp/tmpe6pmg7jw/files/9/b/8/dataset_9b899aff-2835-4f10-84f3-52034c55b5dc.dat' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' && cp 'output_zip.zip' '/tmp/tmpe6pmg7jw/job_working_directory/000/78/outputs/dataset_6ee2cd5c-d43c-4fc7-9ebc-265f89a87696.dat'", "command_version": "", "copied_from_job_id": null, - "create_time": "2025-05-26T12:06:09.749817", + "create_time": "2025-07-17T10:14:50.961634", "dependencies": [ { "cacheable": false, @@ -1841,76 +2183,81 @@ } ], "exit_code": 0, - "external_id": "177047", - "galaxy_version": "24.2", + "external_id": "81204", + "galaxy_version": "25.0", "handler": null, - "history_id": "9b5c1fe7a52a75e0", - "id": "640790f555d03105", + "history_id": "f7b25594aba42961", + "id": "6665d38e10ff581d", "inputs": { "assembly_csv": { - "id": "d71403ee85b47d8d", + "id": "1a15f75791a9be7d", "src": "hda", - "uuid": "3c1221bc-ba53-4ede-899c-e4defbe838eb" + "uuid": "15e76393-8b6d-44a4-ad54-61e9090f2281" }, - "domesticated_input1": { - "id": "740094ed962e7335", + "genbank_files1": { + "id": "59c39a1f7cd89b1b", "src": "hda", - "uuid": "68ee2e69-c2d9-43cd-851e-0b660884cac2" + "uuid": "5952eac7-72c5-4e87-bac4-94a6eb3d7258" }, - "domesticated_input10": { - "id": "06981e06b6149081", + "genbank_files10": { + "id": "e01657e1b61da6f3", "src": "hda", - "uuid": "04bcf9c1-ccc8-4d52-a739-fb3630f90b05" + "uuid": "4c18d9a5-e37c-428e-a5a3-8f698bbd9b3f" }, - "domesticated_input11": { - "id": "343d33e0d7549cb9", + "genbank_files11": { + "id": "ca4aa85e07d14f5a", "src": "hda", - "uuid": "402aaabe-0ea9-4519-998b-11cf6b07a1df" + "uuid": "cd21525e-d4e4-4e03-a632-5a7152529d82" }, - "domesticated_input12": { - "id": "2c330e522704b0f9", + "genbank_files12": { + "id": "c041165b2b3d8e70", "src": "hda", - "uuid": "9cf71985-a62d-4d89-845c-2b996d8096fa" + "uuid": "caa4a166-f30b-45f5-b1a9-cdacc6b40073" }, - "domesticated_input2": { - "id": "839c90adaefe5f3f", + "genbank_files2": { + "id": "a6194e007a63df57", "src": "hda", - "uuid": "5c298af3-9cdb-4837-8054-8903c2683f85" + "uuid": "c6caf0b6-8d07-4998-8d0d-29b5d76faf46" }, - "domesticated_input3": { - "id": "1f56aa824e7dde43", + "genbank_files3": { + "id": "fa554b79bf343ee0", "src": "hda", - "uuid": "9c1fd651-de1e-4ba9-a8e1-ee78953b0c8e" + "uuid": "c3e1ef9d-d877-4423-9f6d-0c1d109c0101" }, - "domesticated_input4": { - "id": "26b32a65097dcc1d", + "genbank_files4": { + "id": "5a80b8b59c71bb8c", "src": "hda", - "uuid": "e77c955d-e9b5-4175-a061-81b9a781d2ff" + "uuid": "86a24365-6eed-4415-b56f-d0ff9854f0db" }, - "domesticated_input5": { - "id": "60327bfb8991788f", + "genbank_files5": { + "id": "e0d49f429b51fe72", "src": "hda", - "uuid": "35df1ceb-416b-4c2d-b20a-3efe96b6770f" + "uuid": "69698749-ab10-4865-b19a-ef4c5cb47996" }, - "domesticated_input6": { - "id": "ac528058169ea450", + "genbank_files6": { + "id": "78e04b973431c16b", "src": "hda", - "uuid": "c02fc9fb-dc4e-49e1-b99f-8199fd97d795" + "uuid": "8eda50dc-6b4b-4af8-9087-c6473e345a47" }, - "domesticated_input7": { - "id": "8d7c8aec2b1ab229", + "genbank_files7": { + "id": "0582b59361b7ebfc", "src": "hda", - "uuid": "339b4cbf-4ca2-4c49-9cc4-9796c5b9ba8a" + "uuid": "f99ec108-a3c6-4e80-8eff-68d9b8e9f67c" }, - "domesticated_input8": { - "id": "f996cb18f164a451", + "genbank_files8": { + "id": "d65ee033f23e8216", "src": "hda", - "uuid": "2246947a-dbb7-4ed2-855a-56a42a899aab" + "uuid": "187c2c93-0a63-41ce-bf4f-88b7c770557b" }, - "domesticated_input9": { - "id": "f3c4f2ef486441ac", + "genbank_files9": { + "id": "eb35258b10e09e8e", "src": "hda", - "uuid": "0a935c03-48a7-4c8a-8077-aea407e5285d" + "uuid": "3d7f0627-ba1c-4541-95f7-27ed41e601fa" + }, + "json_use|json_conf": { + "id": "9736c9b0f355f9e7", + "src": "hda", + "uuid": "9b899aff-2835-4f10-84f3-52034c55b5dc" } }, "job_messages": [], @@ -1921,65 +2268,64 @@ "model_class": "Job", "output_collections": { "construct_gb": { - "id": "182eefa577c2a56d", + "id": "494079827008dff1", "src": "hdca" } }, "outputs": { "__new_primary_file_construct_gb|construct_1__": { - "id": "613a1bff017ef479", + "id": "042ef984f231298e", "src": "hda", - "uuid": "a0c57d2e-8ac7-48d8-b9c5-f01b728ebba7" + "uuid": "88d735c2-5600-4ed7-942c-07e0ce3b5b4a" }, "__new_primary_file_construct_gb|construct_2__": { - "id": "1a8ab2437d7e496f", + "id": "ec93ee31e9126c50", "src": "hda", - "uuid": "d7804ee2-c9a8-46c2-b057-7f25a8002f55" + "uuid": "7b9fee32-94aa-421d-a905-a8a5863047e3" }, "__new_primary_file_construct_gb|construct_3__": { - "id": "af3c5f81417a677c", + "id": "5cf69b6cb189d4a3", "src": "hda", - "uuid": "71c1f25b-f43d-43f7-9893-bfd3bc967517" + "uuid": "001a91be-d900-4196-b6b0-fa5ac8e97946" }, "__new_primary_file_construct_gb|construct_4__": { - "id": "b5b1a9766aab456e", + "id": "84d3b22c61ad807e", "src": "hda", - "uuid": "f23f1069-e4c4-4a9e-9787-5b2b5e905e24" + "uuid": "e567ccf6-ed3b-4dcb-85e8-8456952d28cc" }, "output_zip": { - "id": "7d40cd3e06526c58", + "id": "985e51699d0cdeaa", "src": "hda", - "uuid": "02e7ea5e-6c8f-419d-82de-476bccc550ec" + "uuid": "6ee2cd5c-d43c-4fc7-9ebc-265f89a87696" } }, "params": { "__input_ext": "\"input\"", - "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}", - "assembly_plan_name": "\"Type2sRestrictionAssembly\"", - "chromInfo": "\"/tmp/tmpm1fyob3t/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", + "chromInfo": "\"/tmp/tmpe6pmg7jw/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", "dbkey": "\"?\"", - "domesticated_input": "{\"values\": [{\"id\": 14, \"src\": \"hdca\"}]}", - "genbank_files": null, - "topology": "\"circular\"" + "domesticated_input": null, + "genbank_files": "{\"values\": [{\"id\": 16, \"src\": \"hdca\"}]}", + "json_use": "{\"__current_case__\": 1, \"json_conf\": {\"values\": [{\"id\": 95, \"src\": \"hda\"}]}, \"use_json_paramers\": true}", + "use_file_names_as_ids": "true" }, "state": "ok", - "stderr": "\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\rassembly: 50%|\u2588\u2588\u2588\u2588\u2588 | 2/4 [00:00<00:00, 2.43it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 3/4 [00:01<00:00, 2.21it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00, 1.81it/s, now=None]\r \r", + "stderr": "\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\rassembly: 50%|\u2588\u2588\u2588\u2588\u2588 | 2/4 [00:00<00:00, 2.39it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 3/4 [00:01<00:00, 2.19it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00, 1.81it/s, now=None]\r \r", "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n", "tool_id": "cloning_simulation", - "tool_stderr": "\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\rassembly: 50%|\u2588\u2588\u2588\u2588\u2588 | 2/4 [00:00<00:00, 2.43it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 3/4 [00:01<00:00, 2.21it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00, 1.81it/s, now=None]\r \r", + "tool_stderr": "\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\r \r\rassembly: 0%| | 0/4 [00:00<?, ?it/s, now=None]\rassembly: 50%|\u2588\u2588\u2588\u2588\u2588 | 2/4 [00:00<00:00, 2.39it/s, now=None]\rassembly: 75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c | 3/4 [00:01<00:00, 2.19it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00, 1.81it/s, now=None]\r \r", "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n", - "update_time": "2025-05-26T12:06:22.164674", + "update_time": "2025-07-17T10:15:03.707417", "user_email": "planemo@galaxyproject.org", - "user_id": "e2ca7f14a85a8d44" + "user_id": "986c9b47c580ae59" }, "status": "success", - "test_index": 6, - "time_seconds": 52.117783308029175, + "test_index": 7, + "time_seconds": 52.973809242248535, "tool_id": "cloning_simulation", "tool_version": "0.1.0+galaxy0" }, "has_data": true, - "id": "cloning_simulation-6" + "id": "cloning_simulation-7" } ], "version": "0.1"