changeset 8:07e902da89ad draft

planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/DnaCauldron/tree/master commit 6ae809b563b40bcdb6be2e74fe2a84ddad5484ae
author tduigou
date Mon, 26 May 2025 09:23:51 +0000
parents 296e5145a862
children eaff3028ba07
files cloning_similation.xml cloning_simulation.py output.html output.json test-data/2-step_golden_gate_parts/2-step-golden_gate_plan.csv test-data/BASIC_assembly_dataset/basic_assembly.csv test-data/lcr_assembly_dataset/assembly_plan.csv
diffstat 7 files changed, 271 insertions(+), 264 deletions(-) [+]
line wrap: on
line diff
--- a/cloning_similation.xml	Fri May 23 12:53:50 2025 +0000
+++ b/cloning_similation.xml	Mon May 26 09:23:51 2025 +0000
@@ -369,7 +369,7 @@
 
 **Parameters**:
 ---------------
-* **Assemby csv**: csv file containes the construct names with their parts.
+* **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)
 * **Topology**: Can be "circular", "linear".
--- a/cloning_simulation.py	Fri May 23 12:53:50 2025 +0000
+++ b/cloning_simulation.py	Mon May 26 09:23:51 2025 +0000
@@ -59,7 +59,10 @@
             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())
+    #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!")
 
     if assembly_type == "Type2sRestrictionAssembly":
         assembly_class = dnacauldron.Type2sRestrictionAssembly
@@ -82,6 +85,7 @@
     assembly_plan = dnacauldron.AssemblyPlan.from_spreadsheet(
         name="auto_from_filename",
         path=new_csvname,
+        header=[0],
         assembly_class=assembly_class
     )
     if enzyme != 'auto':
--- a/output.html	Fri May 23 12:53:50 2025 +0000
+++ b/output.html	Mon May 26 09:23:51 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+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAxKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iLzEvMS9kYXRhc2V0X2IxMTQ5NTJkLTc5NWYtNDg3Mi1hNTA4LTFiNjhmNzFmNjg0My5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy83LzcvMi9kYXRhc2V0Xzc3MjgzOTJiLTZjZWMtNDg2NC1iYjIxLTc5YzUzMzBmMzRkYi5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mLzkvNi9kYXRhc2V0X2Y5NmExYzZmLWNjNWItNDk2OS05NDdlLWQwYzVkOWJjMTg2MS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy81L2QvOS9kYXRhc2V0XzVkOWZhMzlkLTU4YTAtNDM4NS1hNTJhLWNmZjU2NmFiNjU2OS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy85LzIvZC9kYXRhc2V0XzkyZDc0ZGJiLTMyMDAtNDE4Mi1iMWMxLWI5MTZkOGI5NjM2YS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy80L2UvNy9kYXRhc2V0XzRlN2YzOTc1LWUwYzQtNDA0My1hMWQ2LWU3OThkNDNjODhiZC5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy85LzYvNS9kYXRhc2V0Xzk2NWQ1YTFjLTViMTEtNDRjNC1iMWJjLTM5MmNiMmUzNGJkYS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iLzIvOS9kYXRhc2V0X2IyOWI2ZWRlLWZkN2QtNGRiNy04MTJhLWU0NzE5ODQ4YzlkOS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9kLzAvYi9kYXRhc2V0X2QwYjhiNTVlLWQzMjktNDU2Ni1iOGEyLTg3MDhmMjNkNTdkMi5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iL2MvMS9kYXRhc2V0X2JjMTA3NjY1LTBlMzgtNDJmZS04MTgzLWVkYjNiM2YyMjI0OC5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mLzcvZS9kYXRhc2V0X2Y3ZTA4NGRhLTdhYmMtNGIwYi1hNzVhLWQ3YmUwODhlMzBlZS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy82LzIvZS9kYXRhc2V0XzYyZWNlNzlkLWMwY2MtNDU0YS1iYmQ4LTFjOTQzZmYwYmNjZS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8yLzQvNy9kYXRhc2V0XzI0NzY4ODdmLTc3ZTctNDk1NS04ZTczLWEwYjU3YjUwMDA5ZC5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNy83LzIvZGF0YXNldF83NzI4MzkyYi02Y2VjLTQ4NjQtYmIyMS03OWM1MzMwZjM0ZGIuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvOS82L2RhdGFzZXRfZjk2YTFjNmYtY2M1Yi00OTY5LTk0N2UtZDBjNWQ5YmMxODYxLmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy81L2QvOS9kYXRhc2V0XzVkOWZhMzlkLTU4YTAtNDM4NS1hNTJhLWNmZjU2NmFiNjU2OS5kYXQ6cGFydF9DLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvOS8yL2QvZGF0YXNldF85MmQ3NGRiYi0zMjAwLTQxODItYjFjMS1iOTE2ZDhiOTYzNmEuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvZS83L2RhdGFzZXRfNGU3ZjM5NzUtZTBjNC00MDQzLWExZDYtZTc5OGQ0M2M4OGJkLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy85LzYvNS9kYXRhc2V0Xzk2NWQ1YTFjLTViMTEtNDRjNC1iMWJjLTM5MmNiMmUzNGJkYS5kYXQ6cGFydF9GLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvYi8yLzkvZGF0YXNldF9iMjliNmVkZS1mZDdkLTRkYjctODEyYS1lNDcxOTg0OGM5ZDkuZGF0OnBhcnRfRy5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2QvMC9iL2RhdGFzZXRfZDBiOGI1NWUtZDMyOS00NTY2LWI4YTItODcwOGYyM2Q1N2QyLmRhdDpwYXJ0X0guZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iL2MvMS9kYXRhc2V0X2JjMTA3NjY1LTBlMzgtNDJmZS04MTgzLWVkYjNiM2YyMjI0OC5kYXQ6cGFydF9JLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZi83L2UvZGF0YXNldF9mN2UwODRkYS03YWJjLTRiMGItYTc1YS1kN2JlMDg4ZTMwZWUuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzYvMi9lL2RhdGFzZXRfNjJlY2U3OWQtYzBjYy00NTRhLWJiZDgtMWM5NDNmZjBiY2NlLmRhdDpwYXJ0X0suZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8yLzQvNy9kYXRhc2V0XzI0NzY4ODdmLTc3ZTctNDk1NS04ZTczLWEwYjU3YjUwMDA5ZC5kYXQ6cGFydF9MLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcHVsYjdrZWNwL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMTQvb3V0cHV0cy9kYXRhc2V0XzUzMWI1Yzc0LTg1NzctNGJhMi04NmNmLWQ4ZjI1ZjE2ZTE2OS5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDUwJXzilojilojilojilojiloggICAgIHwgMi80IFswMDowMDwwMDowMCwgIDIuNDNpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDMvNCBbMDA6MDE8MDA6MDAsICAyLjIwaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNC80IFswMDowMjwwMDowMCwgIDEuNzhpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDR9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDEsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDIpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvYi80L2RhdGFzZXRfY2I0ODU5ODYtM2I4Ny00Njc1LWIzYzUtY2RiMmQwMjg3YzJhLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2EvNi8wL2RhdGFzZXRfYTYwOWY3YzItMDQyZS00NDEyLTk4YTgtMjA1NmZlNjk4NTMzLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnR2lic29uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvYS82LzAvZGF0YXNldF9hNjA5ZjdjMi0wNDJlLTQ0MTItOThhOC0yMDU2ZmU2OTg1MzMuZGF0OmdpYnNvbl9zZXF1ZW5jZXMuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wdWxiN2tlY3Avam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8xNy9vdXRwdXRzL2RhdGFzZXRfZmY2M2JjMTEtOGU0NC00NzUzLWEyNDgtMzI5ZmI0NGVlM2IxLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNDAlfOKWiOKWiOKWiOKWiCAgICAgIHwgMi81IFswMDowMDwwMDowMCwgIDQuMzdpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MCV84paI4paI4paI4paI4paI4paIICAgIHwgMy81IFswMDowMDwwMDowMCwgIDQuMzZpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA4MCV84paI4paI4paI4paI4paI4paI4paI4paIICB8IDQvNSBbMDA6MDA8MDA6MDAsICA0LjM1aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNS81IFswMDowMTwwMDowMCwgIDMuNTRpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAyLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDMsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiR2lic29uQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcHVsYjdrZWNwL2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAzKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iLzcvNy9kYXRhc2V0X2I3NzEzMjI3LTZjOTctNDY4NC1hYzlhLTc2NjUwNjMxYTBhOS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mL2UvOS9kYXRhc2V0X2ZlOWE4ZWM2LTVkMGYtNGY4OS05MzRmLWE0NmJiOWZmOGRiNy5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy80LzUvNy9kYXRhc2V0XzQ1NzYzODU0LTMyN2UtNDcyZi05Y2IzLWEzY2M3MmI4Zjc2Yi5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0xpZ2FzZUN5Y2xpbmdSZWFjdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvZS85L2RhdGFzZXRfZmU5YThlYzYtNWQwZi00Zjg5LTkzNGYtYTQ2YmI5ZmY4ZGI3LmRhdDpSRlBfR0ZQX3BsYXNtaWRfQk9zLmZhLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNC81LzcvZGF0YXNldF80NTc2Mzg1NC0zMjdlLTQ3MmYtOWNiMy1hM2NjNzJiOGY3NmIuZGF0OlJGUF9HRlBfcGxhc21pZF9wYXJ0cy5mYScgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXB1bGI3a2VjcC9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzIxL291dHB1dHMvZGF0YXNldF8xZDUzMTI5Yi1hMzk2LTQyOWItOTk3MS0yZDAwYjk5M2U0OGEuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCAyLzIgWzAwOjAwPDAwOjAwLCAgMi4zN2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDIsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJMaWdhc2VDeWNsaW5nUmVhY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDQpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzUvMS8zL2RhdGFzZXRfNTEzMjk0YzQtYjFiZi00YTAyLWEzN2QtNmY0YmQ3NDQzNmQ5LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2EvNy85L2RhdGFzZXRfYTc5ODI5ZWYtNjQ1MC00MDRhLThkNTktZmE0MmRkYjkxY2EzLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzcvYy83L2RhdGFzZXRfN2M3NGQ0YzMtMzhiNS00MGE3LTljNzEtNDgyNTAyZTZlNWY4LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzUvMS9jL2RhdGFzZXRfNTFjMzE4NGQtZmQ3ZS00OWE4LWFmNTEtZTI5YmJmN2E4YTM3LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzIvNC80L2RhdGFzZXRfMjQ0OTM1NzktYTcwMy00Yjk0LWFjMDktZTI4M2Y1OTAzNWIwLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvYi80L2RhdGFzZXRfY2I0YmZkMTYtZGI1Yy00N2NlLTk4ZjUtYTVjNTA2NWQ0ZGQ0LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnQkFTSUNBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9hLzcvOS9kYXRhc2V0X2E3OTgyOWVmLTY0NTAtNDA0YS04ZDU5LWZhNDJkZGI5MWNhMy5kYXQ6R0ZQLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNy9jLzcvZGF0YXNldF83Yzc0ZDRjMy0zOGI1LTQwYTctOWM3MS00ODI1MDJlNmU1ZjguZGF0OnAxNUFfa2FuLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNS8xL2MvZGF0YXNldF81MWMzMTg0ZC1mZDdlLTQ5YTgtYWY1MS1lMjliYmY3YThhMzcuZGF0OnByb21vdGVyLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMi80LzQvZGF0YXNldF8yNDQ5MzU3OS1hNzAzLTRiOTQtYWMwOS1lMjgzZjU5MDM1YjAuZGF0OlJGUC5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvYi80L2RhdGFzZXRfY2I0YmZkMTYtZGI1Yy00N2NlLTk4ZjUtYTVjNTA2NWQ0ZGQ0LmRhdDpvbGlnb3MuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wdWxiN2tlY3Avam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8yOC9vdXRwdXRzL2RhdGFzZXRfNDc0OTExMzItOTAxZC00MjQ5LTljMWUtZGZkMTJmZWFlMTdlLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC8xMCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzggWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MiV84paI4paI4paI4paI4paI4paI4paOICAgfCA1LzggWzAwOjAwPDAwOjAwLCA0OS4wNWl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMiwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDgsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNywgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJCQVNJQ0Fzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXB1bGI3a2VjcC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNSk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvOS80LzAvZGF0YXNldF85NDBhMDQ4YS1lYzlmLTRjYzktOTk5MC1mMGYxYmI5YzAxZGIuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZC81LzkvZGF0YXNldF9kNTkxOTAyYi03MjRkLTQ0NmQtYmFkNS0xZWNmNTM5ZjQxOTMuZGF0LC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNC81LzcvZGF0YXNldF80NTdkNjgwYS03ZmQ1LTQyY2UtODc0Ny1hNzgyNjcwODNkYTkuZGF0LC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMS9hLzkvZGF0YXNldF8xYTlhYTRjOC00Mzg3LTRiNjUtYTYzOC0xMDMzNDY1MDYwZDcuZGF0LC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMy9mL2UvZGF0YXNldF8zZmVlYTYyYi1jMzViLTRmNjUtOTM3ZC0zMjMzZGI2YmYwZWMuZGF0LC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZi85LzEvZGF0YXNldF9mOTE3ZjQyZC05ZDE0LTRiNWUtYWE0Zi1iMDRlMDZhNTYzNTcuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdCaW9Ccmlja1N0YW5kYXJkQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZC81LzkvZGF0YXNldF9kNTkxOTAyYi03MjRkLTQ0NmQtYmFkNS0xZWNmNTM5ZjQxOTMuZGF0OkJCYV9FMDA0MF9HRlAuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy80LzUvNy9kYXRhc2V0XzQ1N2Q2ODBhLTdmZDUtNDJjZS04NzQ3LWE3ODI2NzA4M2RhOS5kYXQ6QkJhX0oyMzExOV9wcm9tLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMS9hLzkvZGF0YXNldF8xYTlhYTRjOC00Mzg3LTRiNjUtYTYzOC0xMDMzNDY1MDYwZDcuZGF0OkJCYV9KMjMxMTlfcHJvbV9mbGF3ZWQuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8zL2YvZS9kYXRhc2V0XzNmZWVhNjJiLWMzNWItNGY2NS05MzdkLTMyMzNkYjZiZjBlYy5kYXQ6QkJhX0o2MTA0OF90ZXJtLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZi85LzEvZGF0YXNldF9mOTE3ZjQyZC05ZDE0LTRiNWUtYWE0Zi1iMDRlMDZhNTYzNTcuZGF0OkJCYV9LNjExMDk0X2Jhci5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXB1bGI3a2VjcC9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzM1L291dHB1dHMvZGF0YXNldF8zMzJhNjBiNS0xYjdlLTQwZDYtYjRkOS1hMDdmMDViYzlkNGIuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzMgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzMgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2NyV84paI4paI4paI4paI4paI4paI4paLICAgfCAyLzMgWzAwOjAxPDAwOjAwLCAgMS44OWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDMvMyBbMDA6MDE8MDA6MDAsICAxLjU1aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiAzfQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiA5LCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBhc3NlbWJseVxfcGxhblxfbmFtZSB8IGAgIkJpb0JyaWNrU3RhbmRhcmRBc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDYpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvZi9hL2RhdGFzZXRfY2ZhMWM2MjgtMWJhZC00ODY0LTk3YzktZjVmZjhhZTNiYjk0LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzAvOS8yL2RhdGFzZXRfMDkyZTNkNjktMzRhMC00YzAyLTk1OTMtODU5ZmExNzAxNmZiLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2UvZC81L2RhdGFzZXRfZWQ1OTEwMGQtYTRlNy00ZWI4LTk5NjUtODgxN2E4ZTQ0MDAwLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzAvMS83L2RhdGFzZXRfMDE3MmJkY2UtY2E0OS00NWQ0LWFmMmQtMTJhNTMwNGI1NWNhLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2QvMi8yL2RhdGFzZXRfZDIyNDc1ZjMtNmMyZi00YzUyLTkxNjQtMTIyNDhiYTVkMmE4LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvZC85L2RhdGFzZXRfMWQ5YjNkNGMtZWVkMy00NDRlLTg3ZTYtMjljMDRlOTE1YzBkLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzIvNC9jL2RhdGFzZXRfMjRjNTU1ZWMtMTUzNi00ZWY2LWEwN2QtMjBkNzQ0ZjNiNWZjLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvMi8zL2RhdGFzZXRfYzIzZjQ3NWItZjgyNi00MzMzLTg2NDEtNjZlNjhiZmFkNDJhLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvZi9hL2RhdGFzZXRfZmZhOGRmYTYtZGYzNC00MTJiLTg0YWUtMzI1YTNlMzg5YTg4LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvMy8zL2RhdGFzZXRfZjMzYWY2YjYtY2NlMy00OWIyLWExN2UtOWExNjhhZDA2NWY5LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzIvOS83L2RhdGFzZXRfMjk3ZWM2ZGEtNGU1NS00NTM0LTk0YzctOTAzZTdlMTA3NjMyLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzMvMC83L2RhdGFzZXRfMzA3ODVjN2YtMDYyOC00ZTYzLWJlNDUtNzcyNzJmZGVkYjUwLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvMy8yL2RhdGFzZXRfZjMyYTkwNjItOWNmNy00OGQ5LTlkZGItZWYwYzAyNTI2NTY0LmRhdCcgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzAvOS8yL2RhdGFzZXRfMDkyZTNkNjktMzRhMC00YzAyLTk1OTMtODU5ZmExNzAxNmZiLmRhdDpwYXJ0X0EuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9lL2QvNS9kYXRhc2V0X2VkNTkxMDBkLWE0ZTctNGViOC05OTY1LTg4MTdhOGU0NDAwMC5kYXQ6cGFydF9CLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMC8xLzcvZGF0YXNldF8wMTcyYmRjZS1jYTQ5LTQ1ZDQtYWYyZC0xMmE1MzA0YjU1Y2EuZGF0OnBhcnRfQy5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2QvMi8yL2RhdGFzZXRfZDIyNDc1ZjMtNmMyZi00YzUyLTkxNjQtMTIyNDhiYTVkMmE4LmRhdDpwYXJ0X0QuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8xL2QvOS9kYXRhc2V0XzFkOWIzZDRjLWVlZDMtNDQ0ZS04N2U2LTI5YzA0ZTkxNWMwZC5kYXQ6cGFydF9FLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMi80L2MvZGF0YXNldF8yNGM1NTVlYy0xNTM2LTRlZjYtYTA3ZC0yMGQ3NDRmM2I1ZmMuZGF0OnBhcnRfRi5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvMi8zL2RhdGFzZXRfYzIzZjQ3NWItZjgyNi00MzMzLTg2NDEtNjZlNjhiZmFkNDJhLmRhdDpwYXJ0X0cuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvZi9hL2RhdGFzZXRfZmZhOGRmYTYtZGYzNC00MTJiLTg0YWUtMzI1YTNlMzg5YTg4LmRhdDpwYXJ0X0guZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mLzMvMy9kYXRhc2V0X2YzM2FmNmI2LWNjZTMtNDliMi1hMTdlLTlhMTY4YWQwNjVmOS5kYXQ6cGFydF9JLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMi85LzcvZGF0YXNldF8yOTdlYzZkYS00ZTU1LTQ1MzQtOTRjNy05MDNlN2UxMDc2MzIuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzMvMC83L2RhdGFzZXRfMzA3ODVjN2YtMDYyOC00ZTYzLWJlNDUtNzcyNzJmZGVkYjUwLmRhdDpwYXJ0X0suZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mLzMvMi9kYXRhc2V0X2YzMmE5MDYyLTljZjctNDhkOS05ZGRiLWVmMGMwMjUyNjU2NC5kYXQ6cGFydF9MLmdiJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcHVsYjdrZWNwL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvNDkvb3V0cHV0cy9kYXRhc2V0X2RhNmY4YjkyLTAzYmEtNDU2MS04MWE0LTJhYzUxMGFmZjhjNi5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDUwJXzilojilojilojilojiloggICAgIHwgMi80IFswMDowMDwwMDowMCwgIDIuNDNpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDMvNCBbMDA6MDE8MDA6MDAsICAyLjIxaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNC80IFswMDowMjwwMDowMCwgIDEuODFpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDR9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDEyLCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTEsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDcpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvZC82L2RhdGFzZXRfNGQ2NjRjMjEtMDYwNi00OGYyLWE0MDMtYzk3MGVhZGE1NDY5LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2IvZi83L2RhdGFzZXRfYmY3OGFmNzktMmQxMy00ZmQ1LTg4NTgtYTBmY2YwNTI3MTI1LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzYvYy9mL2RhdGFzZXRfNmNmNmY1OWYtM2NlZS00NTM5LTg1ZTItMGI1Nzg2YjQyYThhLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzgvYy8xL2RhdGFzZXRfOGMxYTQ1MDktZjc5My00YjFhLTlmYzItNTk5YjgzNmU2ZDFlLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzMvOC8xL2RhdGFzZXRfMzgxOGFmYjQtMTE4NC00M2IxLWFhNDgtMTNlZmFiYjdlY2M4LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzkvMC9lL2RhdGFzZXRfOTBlMzc3YjYtYzUzZS00Mjc3LThjNTQtYzM2MTc2OWVlNTJmLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvNS85L2RhdGFzZXRfNDU5NDQ0MmEtOGQyYi00Zjk3LWEyODAtOGRlYjc5MTVkYTljLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzYvZS85L2RhdGFzZXRfNmU5NzY3YmYtMDg1ZC00OGQwLTlhZDMtNTk2ZTQzNTIyNGYzLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvNC9iL2RhdGFzZXRfMTRiZDM2OWItODQxMC00ODRlLTg0MDItMzNhYWM5OTk4Yjg0LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvMS84L2RhdGFzZXRfMTE4MGQxODktOGY0OS00ODExLThlNzktOTU3YzdiZjMxOWU0LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvOS8xL2RhdGFzZXRfNDkxNDAyOTItNWJiMi00YjJlLWJmMDItODc0MDI3NDFkMTIwLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2IvNC8yL2RhdGFzZXRfYjQyNzhkMTYtZDU2ZC00Y2JmLThmYzYtMTAwZjEwYTVhMTQyLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvOC8wL2RhdGFzZXRfMTgwMjE3NTItYTE4Ni00YjYzLWJhNjgtYjU2ZGE2NGM3ZTlhLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iL2YvNy9kYXRhc2V0X2JmNzhhZjc5LTJkMTMtNGZkNS04ODU4LWEwZmNmMDUyNzEyNS5kYXQ6cGFydF9BLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNi9jL2YvZGF0YXNldF82Y2Y2ZjU5Zi0zY2VlLTQ1MzktODVlMi0wYjU3ODZiNDJhOGEuZGF0OnBhcnRfQi5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzgvYy8xL2RhdGFzZXRfOGMxYTQ1MDktZjc5My00YjFhLTlmYzItNTk5YjgzNmU2ZDFlLmRhdDpwYXJ0X0MuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8zLzgvMS9kYXRhc2V0XzM4MThhZmI0LTExODQtNDNiMS1hYTQ4LTEzZWZhYmI3ZWNjOC5kYXQ6cGFydF9ELmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvOS8wL2UvZGF0YXNldF85MGUzNzdiNi1jNTNlLTQyNzctOGM1NC1jMzYxNzY5ZWU1MmYuZGF0OnBhcnRfRS5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvNS85L2RhdGFzZXRfNDU5NDQ0MmEtOGQyYi00Zjk3LWEyODAtOGRlYjc5MTVkYTljLmRhdDpwYXJ0X0YuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy82L2UvOS9kYXRhc2V0XzZlOTc2N2JmLTA4NWQtNDhkMC05YWQzLTU5NmU0MzUyMjRmMy5kYXQ6cGFydF9HLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMS80L2IvZGF0YXNldF8xNGJkMzY5Yi04NDEwLTQ4NGUtODQwMi0zM2FhYzk5OThiODQuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvMS84L2RhdGFzZXRfMTE4MGQxODktOGY0OS00ODExLThlNzktOTU3YzdiZjMxOWU0LmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy80LzkvMS9kYXRhc2V0XzQ5MTQwMjkyLTViYjItNGIyZS1iZjAyLTg3NDAyNzQxZDEyMC5kYXQ6cGFydF9KLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvYi80LzIvZGF0YXNldF9iNDI3OGQxNi1kNTZkLTRjYmYtOGZjNi0xMDBmMTBhNWExNDIuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvOC8wL2RhdGFzZXRfMTgwMjE3NTItYTE4Ni00YjYzLWJhNjgtYjU2ZGE2NGM3ZTlhLmRhdDpwYXJ0X0wuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wdWxiN2tlY3Avam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC82My9vdXRwdXRzL2RhdGFzZXRfNWU5NzJhYzMtYTFjMC00OGM0LTlkYjgtNjQ4MzQzOTM3ODkxLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNTAlfOKWiOKWiOKWiOKWiOKWiCAgICAgfCAyLzQgWzAwOjAwPDAwOjAwLCAgMi4zOWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDc1JXzilojilojilojilojilojilojilojilowgIHwgMy80IFswMDowMTwwMDowMCwgIDIuMTlpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA0LzQgWzAwOjAyPDAwOjAwLCAgMS43OWl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDAsICd2YWxpZF9hc3NlbWJsaWVzJzogNH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCBOb25lIGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTQsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgo8L2RldGFpbHM+Cg=='));
+        target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDEwMC4wJSIgYXJpYS12YWx1ZW5vdz0iNyIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iNyIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSI3IFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjciIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAwLjAlIiBhcmlhLXZhbHVlbm93PSIwIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSI3IiB0aXRsZT0iMCBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDcgfAp8IFBhc3NlZCAgICAgfCA3IHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDAgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAxKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy9iL2EvYS9kYXRhc2V0X2JhYTU5YjE0LTdmYjUtNGVmYy1hNzVkLTIyOGQyNmI3MGFkYy5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy9mLzcvYi9kYXRhc2V0X2Y3YmRlMzc1LTJjNmItNGUyMy05MTE3LWU5NmJiNGMzZjZlNi5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9iL2EvNS9kYXRhc2V0X2JhNWM5ZDEwLWU0N2UtNGNlZC05YWFmLWE1MWJmMThlNzkzMi5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9iL2YvNi9kYXRhc2V0X2JmNmU2NDgyLWFmYWEtNDc5MC1hYzc0LTIzZjUzMmZhNDhhZC5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8xL2IvOC9kYXRhc2V0XzFiOGM3YjQ3LWZkYmEtNDA0Ni05NTNhLTg5ZGMwYzA3YWUxNC5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy81L2YvNS9kYXRhc2V0XzVmNTMyMWI5LWZhOWEtNGE3My05NTczLTg5MGQwYzAwMjA5ZC5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy84LzUvNS9kYXRhc2V0Xzg1NTdhNzYyLTdjMzYtNDExMS1hMDE1LTJiNjFjYWFkNGU1Yi5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9mLzcvMC9kYXRhc2V0X2Y3MDAwZmMyLTdlMDQtNDU2MS04NzVjLWI4NDYxNGY1MTk2Ni5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zL2QvZi9kYXRhc2V0XzNkZmRlYjFiLTk1ODItNGUxNS1hNGY4LWZmMDAyYmE5YmYwOS5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9lLzMvYi9kYXRhc2V0X2UzYjI2ZDc3LTVkMDUtNGEwZi1hZGY3LTAxNmJmODZjNWViMy5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zLzIvMS9kYXRhc2V0XzMyMTc0OTJlLWJjOTctNGQ2MS04N2ZkLWI5ZDFmMmU0NTM0ZC5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9mLzgvZi9kYXRhc2V0X2Y4ZjA0MzAyLTU5OGMtNDU5Ni05OWExLTZjN2Q4NGI2MTNkNi5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy85L2YvNi9kYXRhc2V0XzlmNjdjYmZkLWNhMDYtNDkyNi1iMDQyLTc0YTBkNDNiNTg1YS5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvZi83L2IvZGF0YXNldF9mN2JkZTM3NS0yYzZiLTRlMjMtOTExNy1lOTZiYjRjM2Y2ZTYuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2IvYS81L2RhdGFzZXRfYmE1YzlkMTAtZTQ3ZS00Y2VkLTlhYWYtYTUxYmYxOGU3OTMyLmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9iL2YvNi9kYXRhc2V0X2JmNmU2NDgyLWFmYWEtNDc5MC1hYzc0LTIzZjUzMmZhNDhhZC5kYXQ6cGFydF9DLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMS9iLzgvZGF0YXNldF8xYjhjN2I0Ny1mZGJhLTQwNDYtOTUzYS04OWRjMGMwN2FlMTQuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzUvZi81L2RhdGFzZXRfNWY1MzIxYjktZmE5YS00YTczLTk1NzMtODkwZDBjMDAyMDlkLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy84LzUvNS9kYXRhc2V0Xzg1NTdhNzYyLTdjMzYtNDExMS1hMDE1LTJiNjFjYWFkNGU1Yi5kYXQ6cGFydF9GLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvZi83LzAvZGF0YXNldF9mNzAwMGZjMi03ZTA0LTQ1NjEtODc1Yy1iODQ2MTRmNTE5NjYuZGF0OnBhcnRfRy5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzMvZC9mL2RhdGFzZXRfM2RmZGViMWItOTU4Mi00ZTE1LWE0ZjgtZmYwMDJiYTliZjA5LmRhdDpwYXJ0X0guZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9lLzMvYi9kYXRhc2V0X2UzYjI2ZDc3LTVkMDUtNGEwZi1hZGY3LTAxNmJmODZjNWViMy5kYXQ6cGFydF9JLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMy8yLzEvZGF0YXNldF8zMjE3NDkyZS1iYzk3LTRkNjEtODdmZC1iOWQxZjJlNDUzNGQuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2YvOC9mL2RhdGFzZXRfZjhmMDQzMDItNTk4Yy00NTk2LTk5YTEtNmM3ZDg0YjYxM2Q2LmRhdDpwYXJ0X0suZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy85L2YvNi9kYXRhc2V0XzlmNjdjYmZkLWNhMDYtNDkyNi1iMDQyLTc0YTBkNDNiNTg1YS5kYXQ6cGFydF9MLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcF9pYmtkY2owL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMTQvb3V0cHV0cy9kYXRhc2V0XzQ5MTY0ZDg1LTliZmYtNDdmNS1iOGVlLWRlMDAxZDE1NWZkMy5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDUwJXzilojilojilojilojiloggICAgIHwgMi80IFswMDowMDwwMDowMCwgIDIuNDFpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDMvNCBbMDA6MDE8MDA6MDAsICAyLjIxaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNC80IFswMDowMjwwMDowMCwgIDEuODFpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDR9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDEsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wX2lia2RjajAvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDIpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzUvYi8yL2RhdGFzZXRfNWIyZTAxZDktZTYzYi00NWUxLTg1MjMtZTg4NTcwYWVjYmQxLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzUvNi8zL2RhdGFzZXRfNTYzMzA4NGQtMDEyMy00OGJhLWI3MzMtMDg2NTUwYTk1OTQ0LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnR2lic29uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvNS82LzMvZGF0YXNldF81NjMzMDg0ZC0wMTIzLTQ4YmEtYjczMy0wODY1NTBhOTU5NDQuZGF0OmdpYnNvbl9zZXF1ZW5jZXMuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wX2lia2RjajAvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8xNy9vdXRwdXRzL2RhdGFzZXRfODFjODMwN2EtOGUwMy00OTc1LWIzZWMtMTExNWY0ZjQ3Mjg0LmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNDAlfOKWiOKWiOKWiOKWiCAgICAgIHwgMi81IFswMDowMDwwMDowMCwgIDQuNDJpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MCV84paI4paI4paI4paI4paI4paIICAgIHwgMy81IFswMDowMDwwMDowMCwgIDQuNDFpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA4MCV84paI4paI4paI4paI4paI4paI4paI4paIICB8IDQvNSBbMDA6MDA8MDA6MDAsICA0LjQwaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNS81IFswMDowMTwwMDowMCwgIDMuNjNpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAyLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDMsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiR2lic29uQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcF9pYmtkY2owL2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAzKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zLzYvYy9kYXRhc2V0XzM2Yzk2NDJjLWM5ODAtNGE1Zi1iYWJlLWUxMTQwNDUwOTY1Yi5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy9mL2QvNy9kYXRhc2V0X2ZkN2ZlZWM4LWQ4MzktNGFhYy1iYTU5LTU0ZDQwNDJkNzJkNC5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8wLzkvNy9kYXRhc2V0XzA5N2QzYWY1LTQ4ZDctNGIxNS05MDYzLTE5Y2MxMTU4NWQ4Mi5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0xpZ2FzZUN5Y2xpbmdSZWFjdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2YvZC83L2RhdGFzZXRfZmQ3ZmVlYzgtZDgzOS00YWFjLWJhNTktNTRkNDA0MmQ3MmQ0LmRhdDpSRlBfR0ZQX3BsYXNtaWRfQk9zLmZhLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMC85LzcvZGF0YXNldF8wOTdkM2FmNS00OGQ3LTRiMTUtOTA2My0xOWNjMTE1ODVkODIuZGF0OlJGUF9HRlBfcGxhc21pZF9wYXJ0cy5mYScgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBfaWJrZGNqMC9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzIxL291dHB1dHMvZGF0YXNldF9kZDM5YTM5Ni04NGFkLTQzNTAtOGQ5Yi1hMGVmYWZkNWVhMmEuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCAyLzIgWzAwOjAwPDAwOjAwLCAgMi4yM2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDIsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJMaWdhc2VDeWNsaW5nUmVhY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wX2lia2RjajAvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDQpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzIvNS8xL2RhdGFzZXRfMjUxZDQxM2YtMGZlOC00MmNkLThhNzYtN2VmNzdjZGU2ZjE1LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzcvZC84L2RhdGFzZXRfN2Q4OTNiYmYtYjRlMC00ZDY0LWJhZmMtMjFiYTE1NjYyMzdkLmRhdCwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2MvYy8yL2RhdGFzZXRfY2MyMzE0ZmEtOTI0Zi00N2MwLWI4OWEtNjYxZmI3ODc5MGE0LmRhdCwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzgvZC8wL2RhdGFzZXRfOGQwOTdjOTctN2JkNS00OGViLTlmOWUtZjViOTJjZTE5NDU4LmRhdCwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzUvOS8xL2RhdGFzZXRfNTkxODkzMDUtZTgzMi00MTkxLWJlN2MtNDk2YzAxYzhhYmE2LmRhdCwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzQvMC8yL2RhdGFzZXRfNDAyNTAwZDctNjUzMi00MDA4LTk0NDUtYzBjZjdmZWQ1MzUwLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnQkFTSUNBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy83L2QvOC9kYXRhc2V0XzdkODkzYmJmLWI0ZTAtNGQ2NC1iYWZjLTIxYmExNTY2MjM3ZC5kYXQ6R0ZQLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvYy9jLzIvZGF0YXNldF9jYzIzMTRmYS05MjRmLTQ3YzAtYjg5YS02NjFmYjc4NzkwYTQuZGF0OnAxNUFfa2FuLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvOC9kLzAvZGF0YXNldF84ZDA5N2M5Ny03YmQ1LTQ4ZWItOWY5ZS1mNWI5MmNlMTk0NTguZGF0OnByb21vdGVyLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvNS85LzEvZGF0YXNldF81OTE4OTMwNS1lODMyLTQxOTEtYmU3Yy00OTZjMDFjOGFiYTYuZGF0OlJGUC5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzQvMC8yL2RhdGFzZXRfNDAyNTAwZDctNjUzMi00MDA4LTk0NDUtYzBjZjdmZWQ1MzUwLmRhdDpvbGlnb3MuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wX2lia2RjajAvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8yOC9vdXRwdXRzL2RhdGFzZXRfOGU2YjMxZWItODRiMy00MTg0LTkyZWItMzMzODRhZTUwODU3LmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC8xMCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzggWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDYvOCBbMDA6MDA8MDA6MDAsIDQ5LjM4aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAyLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogOCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiAwfQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiA3LCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBhc3NlbWJseVxfcGxhblxfbmFtZSB8IGAgIkJBU0lDQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcF9pYmtkY2owL2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyA1KTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy9mL2QvOS9kYXRhc2V0X2ZkOTEzYzBmLWVhOTgtNGI4ZC1hMTcwLTk2MTE0NmMyMDFkNS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zLzgvNC9kYXRhc2V0XzM4NDAyZjM5LWExZDMtNDk1ZS1hZmVkLWJmODMzNWI0Y2RiNi5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy85L2MvOC9kYXRhc2V0XzljOGVhNDUzLTE2YjktNGI5ZC1iMTcxLTlkNWMwMzIyYWRmOS5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zLzEvYS9kYXRhc2V0XzMxYTQ2ZmJiLTAyNjctNDJlMy1iOWQzLWM2MDgwNGVkZDMwYy5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9lLzIvNy9kYXRhc2V0X2UyNzhlNmVhLTMxNDYtNDlmYS1hNGY1LWJlY2Y3NjZlNGY1ZS5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy82L2EvMS9kYXRhc2V0XzZhMTlkMzdmLTU0ZTEtNGM5NC1hMmIxLTFhN2YzNzgyMGFhZC5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0Jpb0JyaWNrU3RhbmRhcmRBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zLzgvNC9kYXRhc2V0XzM4NDAyZjM5LWExZDMtNDk1ZS1hZmVkLWJmODMzNWI0Y2RiNi5kYXQ6QkJhX0UwMDQwX0dGUC5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzkvYy84L2RhdGFzZXRfOWM4ZWE0NTMtMTZiOS00YjlkLWIxNzEtOWQ1YzAzMjJhZGY5LmRhdDpCQmFfSjIzMTE5X3Byb20uZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zLzEvYS9kYXRhc2V0XzMxYTQ2ZmJiLTAyNjctNDJlMy1iOWQzLWM2MDgwNGVkZDMwYy5kYXQ6QkJhX0oyMzExOV9wcm9tX2ZsYXdlZC5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2UvMi83L2RhdGFzZXRfZTI3OGU2ZWEtMzE0Ni00OWZhLWE0ZjUtYmVjZjc2NmU0ZjVlLmRhdDpCQmFfSjYxMDQ4X3Rlcm0uZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy82L2EvMS9kYXRhc2V0XzZhMTlkMzdmLTU0ZTEtNGM5NC1hMmIxLTFhN2YzNzgyMGFhZC5kYXQ6QkJhX0s2MTEwOTRfYmFyLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcF9pYmtkY2owL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMzUvb3V0cHV0cy9kYXRhc2V0X2EzZjJlYWIxLWJiZTEtNDAxZS1iNDM2LWI3ZmZjNjk4ZWUzYS5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDY3JXzilojilojilojilojilojilojilosgICB8IDIvMyBbMDA6MDE8MDA6MDAsICAxLjkwaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgMy8zIFswMDowMTwwMDowMCwgIDEuNTRpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDksICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiQmlvQnJpY2tTdGFuZGFyZEFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBfaWJrZGNqMC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNik8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvOS83L2IvZGF0YXNldF85N2IxNmZhOS01M2FiLTRlNjUtOWRlNy1lMzAxMTJiY2RkMDYuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvOC8yLzMvZGF0YXNldF84MjNjZmM0Yy05OGRiLTQ5NGQtYTAzYi01MTgxMTc5YTM1ODEuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvNi8wL2EvZGF0YXNldF82MGE1M2IyYy05MjdlLTRjMzMtYjZiMC0yZTkyNzI2NjA0NGUuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvZC8zLzUvZGF0YXNldF9kMzU3OTk2ZC00NWMzLTQ3MTUtYjhlYi1lYTZiYjgzNmIxOGUuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvZC9hL2MvZGF0YXNldF9kYWNmZDdlMi1mNWZmLTQ4MjEtOGQ3MC1mNzMzMDdmNzk5N2UuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvOS9iLzMvZGF0YXNldF85YjNmOTM1Ny1jMWNjLTQzYzktYTgxYy1jMTAwNDgzYjNhMGQuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvNS9lLzQvZGF0YXNldF81ZTQzMTUwYy0zYzdjLTQwNzItOTcyMC1mZGMwODVjZDZkOGIuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvMi9kL2UvZGF0YXNldF8yZGU3NWE0MS03NjczLTRjZWYtYWE2My0yY2Y2ZDk0NjZlOGMuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvZS9mLzMvZGF0YXNldF9lZjNmMDQyMy1mMWRkLTQ2MmItOGQ2OC1lNjhjZDZkNTlkODIuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvZS9hLzIvZGF0YXNldF9lYTI5NzYwOS04N2M0LTRiZmMtYWJmZC0wODRmYmNjOTRkNWIuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvNi8wL2QvZGF0YXNldF82MGQ5MTlmZi05YjU0LTQ4NTYtYjNkMC05ODM2MTE0YzI1NzUuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvMC84L2UvZGF0YXNldF8wOGVmZWY2ZC0xM2M0LTRlMWItYTE1NS04NTllMGEwZGY5ODkuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvZS83LzIvZGF0YXNldF9lNzJmYWNjMi0wYmQ4LTQ5ZTgtOTRlNi02YjI1NTg1M2IwMzAuZGF0JyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvOC8yLzMvZGF0YXNldF84MjNjZmM0Yy05OGRiLTQ5NGQtYTAzYi01MTgxMTc5YTM1ODEuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzYvMC9hL2RhdGFzZXRfNjBhNTNiMmMtOTI3ZS00YzMzLWI2YjAtMmU5MjcyNjYwNDRlLmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9kLzMvNS9kYXRhc2V0X2QzNTc5OTZkLTQ1YzMtNDcxNS1iOGViLWVhNmJiODM2YjE4ZS5kYXQ6cGFydF9DLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvZC9hL2MvZGF0YXNldF9kYWNmZDdlMi1mNWZmLTQ4MjEtOGQ3MC1mNzMzMDdmNzk5N2UuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzkvYi8zL2RhdGFzZXRfOWIzZjkzNTctYzFjYy00M2M5LWE4MWMtYzEwMDQ4M2IzYTBkLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy81L2UvNC9kYXRhc2V0XzVlNDMxNTBjLTNjN2MtNDA3Mi05NzIwLWZkYzA4NWNkNmQ4Yi5kYXQ6cGFydF9GLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMi9kL2UvZGF0YXNldF8yZGU3NWE0MS03NjczLTRjZWYtYWE2My0yY2Y2ZDk0NjZlOGMuZGF0OnBhcnRfRy5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJy90bXAvdG1wX2lia2RjajAvZmlsZXMvZS9mLzMvZGF0YXNldF9lZjNmMDQyMy1mMWRkLTQ2MmItOGQ2OC1lNjhjZDZkNTlkODIuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2UvYS8yL2RhdGFzZXRfZWEyOTc2MDktODdjNC00YmZjLWFiZmQtMDg0ZmJjYzk0ZDViLmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy82LzAvZC9kYXRhc2V0XzYwZDkxOWZmLTliNTQtNDg1Ni1iM2QwLTk4MzYxMTRjMjU3NS5kYXQ6cGFydF9KLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMC84L2UvZGF0YXNldF8wOGVmZWY2ZC0xM2M0LTRlMWItYTE1NS04NTllMGEwZGY5ODkuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2UvNy8yL2RhdGFzZXRfZTcyZmFjYzItMGJkOC00OWU4LTk0ZTYtNmIyNTU4NTNiMDMwLmRhdDpwYXJ0X0wuZ2InIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wX2lia2RjajAvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC80OS9vdXRwdXRzL2RhdGFzZXRfMmJjYTIzOGUtNTQyMS00NTZkLWJmOTgtMWJkNDRlNjVmYzc2LmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNTAlfOKWiOKWiOKWiOKWiOKWiCAgICAgfCAyLzQgWzAwOjAwPDAwOjAwLCAgMi40NGl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDc1JXzilojilojilojilojilojilojilojilowgIHwgMy80IFswMDowMTwwMDowMCwgIDIuMjJpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA0LzQgWzAwOjAyPDAwOjAwLCAgMS44MWl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDAsICd2YWxpZF9hc3NlbWJsaWVzJzogNH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTIsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxMSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBfaWJrZGNqMC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNyk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvNS8wLzQvZGF0YXNldF81MDQyMjEzYy04YmI2LTQ4ZTAtOTUwMS0wNzBlNTVhOWE4YzAuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvZC9kLzgvZGF0YXNldF9kZDhkOTc0NC1kN2YwLTQ2YWUtYjI2Zi1kZTk2MWUzZjUwMzMuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvYS9hLzYvZGF0YXNldF9hYTY0ZDlmMi1mMzUxLTQ3NzYtYWFiNi02NDhhNWZhNWY2ZGEuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvMS9kL2IvZGF0YXNldF8xZGJjYTU4Yy1iZDEyLTQ4YzctYmJmZS00OWVmODgwMWY4YzMuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvZC8zLzkvZGF0YXNldF9kMzk2ZDdkZi04ZTlkLTQ0MWItYjA0ZS1hYmFhYTBjOTBhN2YuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvNC8xLzMvZGF0YXNldF80MTMwZGRiNC02ZWI2LTRmYTEtYmQyMS0zM2VhNjNkYzRmMmEuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvMi9lLzkvZGF0YXNldF8yZTkwNzczOS0xODFkLTQ0YmMtOGJjNC0zNWQyNTJlMDA1MzUuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvOS9kLzMvZGF0YXNldF85ZDMwNTNlMi02MzBkLTRmYmEtOWIwOC0wOWY1OTAxM2FiOTYuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvMi82LzMvZGF0YXNldF8yNjM2NDg3Ny1mNDgyLTRiNGQtODM0Ni02MWEyZjUwZjFjY2YuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvNi9mLzYvZGF0YXNldF82ZjY0ZjgyOC1iZThlLTRlNzItYTk0MC04NzM5NjI1NmZlM2YuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvZC8yLzQvZGF0YXNldF9kMjQ5MmYzYi04ZWE5LTQwZTctOGJkYS1hMTViNTA2YTIyYWMuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvMy9hLzgvZGF0YXNldF8zYTg1NzY3NS0wMjdjLTRiMjgtYmY2OS03NTkxZGI1NjkyMTMuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvMi82L2QvZGF0YXNldF8yNmRmMmM1MC00Y2JlLTQ1ZjUtYmEwNy1iZThmYjg5Y2ZiN2MuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2QvZC84L2RhdGFzZXRfZGQ4ZDk3NDQtZDdmMC00NmFlLWIyNmYtZGU5NjFlM2Y1MDMzLmRhdDpwYXJ0X0EuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9hL2EvNi9kYXRhc2V0X2FhNjRkOWYyLWYzNTEtNDc3Ni1hYWI2LTY0OGE1ZmE1ZjZkYS5kYXQ6cGFydF9CLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMS9kL2IvZGF0YXNldF8xZGJjYTU4Yy1iZDEyLTQ4YzctYmJmZS00OWVmODgwMWY4YzMuZGF0OnBhcnRfQy5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2QvMy85L2RhdGFzZXRfZDM5NmQ3ZGYtOGU5ZC00NDFiLWIwNGUtYWJhYWEwYzkwYTdmLmRhdDpwYXJ0X0QuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy80LzEvMy9kYXRhc2V0XzQxMzBkZGI0LTZlYjYtNGZhMS1iZDIxLTMzZWE2M2RjNGYyYS5kYXQ6cGFydF9FLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMi9lLzkvZGF0YXNldF8yZTkwNzczOS0xODFkLTQ0YmMtOGJjNC0zNWQyNTJlMDA1MzUuZGF0OnBhcnRfRi5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzkvZC8zL2RhdGFzZXRfOWQzMDUzZTItNjMwZC00ZmJhLTliMDgtMDlmNTkwMTNhYjk2LmRhdDpwYXJ0X0cuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8yLzYvMy9kYXRhc2V0XzI2MzY0ODc3LWY0ODItNGI0ZC04MzQ2LTYxYTJmNTBmMWNjZi5kYXQ6cGFydF9ILmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvNi9mLzYvZGF0YXNldF82ZjY0ZjgyOC1iZThlLTRlNzItYTk0MC04NzM5NjI1NmZlM2YuZGF0OnBhcnRfSS5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2QvMi80L2RhdGFzZXRfZDI0OTJmM2ItOGVhOS00MGU3LThiZGEtYTE1YjUwNmEyMmFjLmRhdDpwYXJ0X0ouZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zL2EvOC9kYXRhc2V0XzNhODU3Njc1LTAyN2MtNGIyOC1iZjY5LTc1OTFkYjU2OTIxMy5kYXQ6cGFydF9LLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMi82L2QvZGF0YXNldF8yNmRmMmM1MC00Y2JlLTQ1ZjUtYmEwNy1iZThmYjg5Y2ZiN2MuZGF0OnBhcnRfTC5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBfaWJrZGNqMC9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzYzL291dHB1dHMvZGF0YXNldF80ZTM5ZjNiNy0yODk5LTQxMGUtYTMyZi00NzI3MDk3MGFlMTQuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA1MCV84paI4paI4paI4paI4paIICAgICB8IDIvNCBbMDA6MDA8MDA6MDAsICAyLjQyaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNzUlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWjCAgfCAzLzQgWzAwOjAxPDAwOjAwLCAgMi4yMWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDQvNCBbMDA6MDI8MDA6MDAsICAxLjgxaXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiA0fQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIE5vbmUgYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxNCwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBfaWJrZGNqMC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCjwvZGV0YWlscz4K'));
     </script>
   </body>
 </html>
\ No newline at end of file
--- a/output.json	Fri May 23 12:53:50 2025 +0000
+++ b/output.json	Mon May 26 09:23:51 2025 +0000
@@ -11,93 +11,93 @@
                 "inputs": {
                     "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "106ff655f8a511fe",
+                        "id": "0a696a8b22798e06",
                         "src": "hda"
                     },
                     "assembly_plan_name": "Type2sRestrictionAssembly",
                     "genbank_files": {
-                        "id": "8094a24bdbd328fd",
+                        "id": "cb6d3fbb91be6861",
                         "src": "hdca"
                     },
                     "topology": "circular"
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpulb7kecp/files/b/1/1/dataset_b114952d-795f-4872-a508-1b68f71f6843.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpulb7kecp/files/7/7/2/dataset_7728392b-6cec-4864-bb21-79c5330f34db.dat,/tmp/tmpulb7kecp/files/f/9/6/dataset_f96a1c6f-cc5b-4969-947e-d0c5d9bc1861.dat,/tmp/tmpulb7kecp/files/5/d/9/dataset_5d9fa39d-58a0-4385-a52a-cff566ab6569.dat,/tmp/tmpulb7kecp/files/9/2/d/dataset_92d74dbb-3200-4182-b1c1-b916d8b9636a.dat,/tmp/tmpulb7kecp/files/4/e/7/dataset_4e7f3975-e0c4-4043-a1d6-e798d43c88bd.dat,/tmp/tmpulb7kecp/files/9/6/5/dataset_965d5a1c-5b11-44c4-b1bc-392cb2e34bda.dat,/tmp/tmpulb7kecp/files/b/2/9/dataset_b29b6ede-fd7d-4db7-812a-e4719848c9d9.dat,/tmp/tmpulb7kecp/files/d/0/b/dataset_d0b8b55e-d329-4566-b8a2-8708f23d57d2.dat,/tmp/tmpulb7kecp/files/b/c/1/dataset_bc107665-0e38-42fe-8183-edb3b3f22248.dat,/tmp/tmpulb7kecp/files/f/7/e/dataset_f7e084da-7abc-4b0b-a75a-d7be088e30ee.dat,/tmp/tmpulb7kecp/files/6/2/e/dataset_62ece79d-c0cc-454a-bbd8-1c943ff0bcce.dat,/tmp/tmpulb7kecp/files/2/4/7/dataset_2476887f-77e7-4955-8e73-a0b57b50009d.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpulb7kecp/files/7/7/2/dataset_7728392b-6cec-4864-bb21-79c5330f34db.dat:part_A.gb,/tmp/tmpulb7kecp/files/f/9/6/dataset_f96a1c6f-cc5b-4969-947e-d0c5d9bc1861.dat:part_B.gb,/tmp/tmpulb7kecp/files/5/d/9/dataset_5d9fa39d-58a0-4385-a52a-cff566ab6569.dat:part_C.gb,/tmp/tmpulb7kecp/files/9/2/d/dataset_92d74dbb-3200-4182-b1c1-b916d8b9636a.dat:part_D.gb,/tmp/tmpulb7kecp/files/4/e/7/dataset_4e7f3975-e0c4-4043-a1d6-e798d43c88bd.dat:part_E.gb,/tmp/tmpulb7kecp/files/9/6/5/dataset_965d5a1c-5b11-44c4-b1bc-392cb2e34bda.dat:part_F.gb,/tmp/tmpulb7kecp/files/b/2/9/dataset_b29b6ede-fd7d-4db7-812a-e4719848c9d9.dat:part_G.gb,/tmp/tmpulb7kecp/files/d/0/b/dataset_d0b8b55e-d329-4566-b8a2-8708f23d57d2.dat:part_H.gb,/tmp/tmpulb7kecp/files/b/c/1/dataset_bc107665-0e38-42fe-8183-edb3b3f22248.dat:part_I.gb,/tmp/tmpulb7kecp/files/f/7/e/dataset_f7e084da-7abc-4b0b-a75a-d7be088e30ee.dat:part_J.gb,/tmp/tmpulb7kecp/files/6/2/e/dataset_62ece79d-c0cc-454a-bbd8-1c943ff0bcce.dat:part_K.gb,/tmp/tmpulb7kecp/files/2/4/7/dataset_2476887f-77e7-4955-8e73-a0b57b50009d.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/tmpulb7kecp/job_working_directory/000/14/outputs/dataset_531b5c74-8577-4ba2-86cf-d8f25f16e169.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmp_ibkdcj0/files/b/a/a/dataset_baa59b14-7fb5-4efc-a75d-228d26b70adc.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmp_ibkdcj0/files/f/7/b/dataset_f7bde375-2c6b-4e23-9117-e96bb4c3f6e6.dat,/tmp/tmp_ibkdcj0/files/b/a/5/dataset_ba5c9d10-e47e-4ced-9aaf-a51bf18e7932.dat,/tmp/tmp_ibkdcj0/files/b/f/6/dataset_bf6e6482-afaa-4790-ac74-23f532fa48ad.dat,/tmp/tmp_ibkdcj0/files/1/b/8/dataset_1b8c7b47-fdba-4046-953a-89dc0c07ae14.dat,/tmp/tmp_ibkdcj0/files/5/f/5/dataset_5f5321b9-fa9a-4a73-9573-890d0c00209d.dat,/tmp/tmp_ibkdcj0/files/8/5/5/dataset_8557a762-7c36-4111-a015-2b61caad4e5b.dat,/tmp/tmp_ibkdcj0/files/f/7/0/dataset_f7000fc2-7e04-4561-875c-b84614f51966.dat,/tmp/tmp_ibkdcj0/files/3/d/f/dataset_3dfdeb1b-9582-4e15-a4f8-ff002ba9bf09.dat,/tmp/tmp_ibkdcj0/files/e/3/b/dataset_e3b26d77-5d05-4a0f-adf7-016bf86c5eb3.dat,/tmp/tmp_ibkdcj0/files/3/2/1/dataset_3217492e-bc97-4d61-87fd-b9d1f2e4534d.dat,/tmp/tmp_ibkdcj0/files/f/8/f/dataset_f8f04302-598c-4596-99a1-6c7d84b613d6.dat,/tmp/tmp_ibkdcj0/files/9/f/6/dataset_9f67cbfd-ca06-4926-b042-74a0d43b585a.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmp_ibkdcj0/files/f/7/b/dataset_f7bde375-2c6b-4e23-9117-e96bb4c3f6e6.dat:part_A.gb,/tmp/tmp_ibkdcj0/files/b/a/5/dataset_ba5c9d10-e47e-4ced-9aaf-a51bf18e7932.dat:part_B.gb,/tmp/tmp_ibkdcj0/files/b/f/6/dataset_bf6e6482-afaa-4790-ac74-23f532fa48ad.dat:part_C.gb,/tmp/tmp_ibkdcj0/files/1/b/8/dataset_1b8c7b47-fdba-4046-953a-89dc0c07ae14.dat:part_D.gb,/tmp/tmp_ibkdcj0/files/5/f/5/dataset_5f5321b9-fa9a-4a73-9573-890d0c00209d.dat:part_E.gb,/tmp/tmp_ibkdcj0/files/8/5/5/dataset_8557a762-7c36-4111-a015-2b61caad4e5b.dat:part_F.gb,/tmp/tmp_ibkdcj0/files/f/7/0/dataset_f7000fc2-7e04-4561-875c-b84614f51966.dat:part_G.gb,/tmp/tmp_ibkdcj0/files/3/d/f/dataset_3dfdeb1b-9582-4e15-a4f8-ff002ba9bf09.dat:part_H.gb,/tmp/tmp_ibkdcj0/files/e/3/b/dataset_e3b26d77-5d05-4a0f-adf7-016bf86c5eb3.dat:part_I.gb,/tmp/tmp_ibkdcj0/files/3/2/1/dataset_3217492e-bc97-4d61-87fd-b9d1f2e4534d.dat:part_J.gb,/tmp/tmp_ibkdcj0/files/f/8/f/dataset_f8f04302-598c-4596-99a1-6c7d84b613d6.dat:part_K.gb,/tmp/tmp_ibkdcj0/files/9/f/6/dataset_9f67cbfd-ca06-4926-b042-74a0d43b585a.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/tmp_ibkdcj0/job_working_directory/000/14/outputs/dataset_49164d85-9bff-47f5-b8ee-de001d155fd3.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-23T12:13:12.978945",
+                    "create_time": "2025-05-26T08:56:03.115650",
                     "dependencies": [],
                     "exit_code": 0,
-                    "external_id": "178458",
+                    "external_id": "78665",
                     "galaxy_version": "24.2",
                     "handler": null,
-                    "history_id": "8094a24bdbd328fd",
-                    "id": "a843aa6880d39864",
+                    "history_id": "cb6d3fbb91be6861",
+                    "id": "2ff5b0f6b4cfbb73",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "106ff655f8a511fe",
+                            "id": "0a696a8b22798e06",
                             "src": "hda",
-                            "uuid": "b114952d-795f-4872-a508-1b68f71f6843"
+                            "uuid": "baa59b14-7fb5-4efc-a75d-228d26b70adc"
                         },
                         "genbank_files1": {
-                            "id": "8094a24bdbd328fd",
+                            "id": "cb6d3fbb91be6861",
                             "src": "hda",
-                            "uuid": "7728392b-6cec-4864-bb21-79c5330f34db"
+                            "uuid": "f7bde375-2c6b-4e23-9117-e96bb4c3f6e6"
                         },
                         "genbank_files10": {
-                            "id": "54ed1ed3b165c7b4",
+                            "id": "7ede2556a40dc9ba",
                             "src": "hda",
-                            "uuid": "f7e084da-7abc-4b0b-a75a-d7be088e30ee"
+                            "uuid": "3217492e-bc97-4d61-87fd-b9d1f2e4534d"
                         },
                         "genbank_files11": {
-                            "id": "aa441ebc75addcb0",
+                            "id": "76608081d307dc20",
                             "src": "hda",
-                            "uuid": "62ece79d-c0cc-454a-bbd8-1c943ff0bcce"
+                            "uuid": "f8f04302-598c-4596-99a1-6c7d84b613d6"
                         },
                         "genbank_files12": {
-                            "id": "41108ccf3c813abd",
+                            "id": "0551bf01e3dbca02",
                             "src": "hda",
-                            "uuid": "2476887f-77e7-4955-8e73-a0b57b50009d"
+                            "uuid": "9f67cbfd-ca06-4926-b042-74a0d43b585a"
                         },
                         "genbank_files2": {
-                            "id": "6c2020bf7be1ec65",
+                            "id": "18a1e53d7b8ec0fa",
                             "src": "hda",
-                            "uuid": "f96a1c6f-cc5b-4969-947e-d0c5d9bc1861"
+                            "uuid": "ba5c9d10-e47e-4ced-9aaf-a51bf18e7932"
                         },
                         "genbank_files3": {
-                            "id": "8a7a2aba20929ed0",
+                            "id": "afdf3d24f0e34eea",
                             "src": "hda",
-                            "uuid": "5d9fa39d-58a0-4385-a52a-cff566ab6569"
+                            "uuid": "bf6e6482-afaa-4790-ac74-23f532fa48ad"
                         },
                         "genbank_files4": {
-                            "id": "53ad8e2eaf8a05d9",
+                            "id": "285751a21c9d1d68",
                             "src": "hda",
-                            "uuid": "92d74dbb-3200-4182-b1c1-b916d8b9636a"
+                            "uuid": "1b8c7b47-fdba-4046-953a-89dc0c07ae14"
                         },
                         "genbank_files5": {
-                            "id": "85b2c5efa0bce20f",
+                            "id": "48e4779cf88cf124",
                             "src": "hda",
-                            "uuid": "4e7f3975-e0c4-4043-a1d6-e798d43c88bd"
+                            "uuid": "5f5321b9-fa9a-4a73-9573-890d0c00209d"
                         },
                         "genbank_files6": {
-                            "id": "3758c7315f184c9a",
+                            "id": "2bf3ecab9316a382",
                             "src": "hda",
-                            "uuid": "965d5a1c-5b11-44c4-b1bc-392cb2e34bda"
+                            "uuid": "8557a762-7c36-4111-a015-2b61caad4e5b"
                         },
                         "genbank_files7": {
-                            "id": "cc5b73713462c207",
+                            "id": "d51bf47fbc922335",
                             "src": "hda",
-                            "uuid": "b29b6ede-fd7d-4db7-812a-e4719848c9d9"
+                            "uuid": "f7000fc2-7e04-4561-875c-b84614f51966"
                         },
                         "genbank_files8": {
-                            "id": "abedd81ff2360f10",
+                            "id": "590bb56cc83504dc",
                             "src": "hda",
-                            "uuid": "d0b8b55e-d329-4566-b8a2-8708f23d57d2"
+                            "uuid": "3dfdeb1b-9582-4e15-a4f8-ff002ba9bf09"
                         },
                         "genbank_files9": {
-                            "id": "83d0643dcafc650b",
+                            "id": "ff96e44e65db99f8",
                             "src": "hda",
-                            "uuid": "bc107665-0e38-42fe-8183-edb3b3f22248"
+                            "uuid": "e3b26d77-5d05-4a0f-adf7-016bf86c5eb3"
                         }
                     },
                     "job_messages": [],
@@ -108,60 +108,60 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "6c2020bf7be1ec65",
+                            "id": "18a1e53d7b8ec0fa",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "__new_primary_file_construct_gb|construct_1__": {
-                            "id": "03b30db777cad5e1",
+                            "id": "be5466d8eb2c2229",
                             "src": "hda",
-                            "uuid": "21d43ad8-7969-4897-bade-2bde4913b7c5"
+                            "uuid": "2c83aaa9-63df-43a5-b008-9a361a9fc312"
                         },
                         "__new_primary_file_construct_gb|construct_2__": {
-                            "id": "d7483ddd36cf3921",
+                            "id": "a37f81f30817f4ff",
                             "src": "hda",
-                            "uuid": "9420de76-fe00-401e-9cef-039d76b41e8f"
+                            "uuid": "8ba2ce56-ba8b-4ff8-bcc0-54d0a2ad3b09"
                         },
                         "__new_primary_file_construct_gb|construct_3__": {
-                            "id": "2239b1a77a4b659c",
+                            "id": "b4705f371a43addc",
                             "src": "hda",
-                            "uuid": "e360b3e5-97c6-49be-9e0e-4ff44209fb03"
+                            "uuid": "47741e71-6bf6-46ec-9353-25bb48d895ed"
                         },
                         "__new_primary_file_construct_gb|construct_4__": {
-                            "id": "b9f6f443461a8e55",
+                            "id": "0dc911fcb05967a3",
                             "src": "hda",
-                            "uuid": "580f1a4e-e43c-4396-9ae5-d441a0f64d1a"
+                            "uuid": "6aa740ec-6985-4d66-8427-b1652fa06f3a"
                         },
                         "output_zip": {
-                            "id": "a843aa6880d39864",
+                            "id": "2ff5b0f6b4cfbb73",
                             "src": "hda",
-                            "uuid": "531b5c74-8577-4ba2-86cf-d8f25f16e169"
+                            "uuid": "49164d85-9bff-47f5-b8ee-de001d155fd3"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
                         "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
                         "assembly_plan_name": "\"Type2sRestrictionAssembly\"",
-                        "chromInfo": "\"/tmp/tmpulb7kecp/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmp_ibkdcj0/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
                         "domesticated_input": null,
                         "genbank_files": "{\"values\": [{\"id\": 1, \"src\": \"hdca\"}]}",
                         "topology": "\"circular\""
                     },
                     "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.20it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.78it/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.41it/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",
                     "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.20it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.78it/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.41it/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_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n",
-                    "update_time": "2025-05-23T12:13:26.150051",
+                    "update_time": "2025-05-26T08:56:15.534051",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "8094a24bdbd328fd"
+                    "user_id": "cb6d3fbb91be6861"
                 },
                 "status": "success",
                 "test_index": 0,
-                "time_seconds": 53.7402708530426,
+                "time_seconds": 54.95904994010925,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
@@ -173,21 +173,21 @@
                 "inputs": {
                     "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "9ebeb50920a3365f",
+                        "id": "e01f0df21d75058c",
                         "src": "hda"
                     },
                     "assembly_plan_name": "GibsonAssembly",
                     "genbank_files": {
-                        "id": "8a7a2aba20929ed0",
+                        "id": "afdf3d24f0e34eea",
                         "src": "hdca"
                     },
                     "topology": "circular"
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpulb7kecp/files/c/b/4/dataset_cb485986-3b87-4675-b3c5-cdb2d0287c2a.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpulb7kecp/files/a/6/0/dataset_a609f7c2-042e-4412-98a8-2056fe698533.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'GibsonAssembly' --file_name_mapping '/tmp/tmpulb7kecp/files/a/6/0/dataset_a609f7c2-042e-4412-98a8-2056fe698533.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/tmpulb7kecp/job_working_directory/000/17/outputs/dataset_ff63bc11-8e44-4753-a248-329fb44ee3b1.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmp_ibkdcj0/files/5/b/2/dataset_5b2e01d9-e63b-45e1-8523-e88570aecbd1.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmp_ibkdcj0/files/5/6/3/dataset_5633084d-0123-48ba-b733-086550a95944.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'GibsonAssembly' --file_name_mapping '/tmp/tmp_ibkdcj0/files/5/6/3/dataset_5633084d-0123-48ba-b733-086550a95944.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/tmp_ibkdcj0/job_working_directory/000/17/outputs/dataset_81c8307a-8e03-4975-b3ec-1115f4f47284.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-23T12:13:37.414073",
+                    "create_time": "2025-05-26T08:56:26.250368",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -367,21 +367,21 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "178806",
+                    "external_id": "79009",
                     "galaxy_version": "24.2",
                     "handler": null,
-                    "history_id": "6c2020bf7be1ec65",
-                    "id": "2239b1a77a4b659c",
+                    "history_id": "18a1e53d7b8ec0fa",
+                    "id": "b4705f371a43addc",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "9ebeb50920a3365f",
+                            "id": "e01f0df21d75058c",
                             "src": "hda",
-                            "uuid": "cb485986-3b87-4675-b3c5-cdb2d0287c2a"
+                            "uuid": "5b2e01d9-e63b-45e1-8523-e88570aecbd1"
                         },
                         "genbank_files1": {
-                            "id": "293d5da1ac833ef3",
+                            "id": "bc8da7662961ae94",
                             "src": "hda",
-                            "uuid": "a609f7c2-042e-4412-98a8-2056fe698533"
+                            "uuid": "5633084d-0123-48ba-b733-086550a95944"
                         }
                     },
                     "job_messages": [],
@@ -392,55 +392,55 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "53ad8e2eaf8a05d9",
+                            "id": "285751a21c9d1d68",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "__new_primary_file_construct_gb|construct_1__": {
-                            "id": "a21f4c8cc3b535db",
+                            "id": "d8c348e4a6c18790",
                             "src": "hda",
-                            "uuid": "0463b48d-c2d8-42a4-8b6a-ecb4dfc701c4"
+                            "uuid": "39e12d2a-e4aa-491e-bb74-be0d48efaa36"
                         },
                         "__new_primary_file_construct_gb|construct_2__": {
-                            "id": "c9bb032e1a0e8897",
+                            "id": "cc98bdb1867cbf6a",
                             "src": "hda",
-                            "uuid": "89f175c4-8e96-49e3-8c45-514b2193b29a"
+                            "uuid": "dbc568c1-dd73-4973-aa7a-f33cb279cbb7"
                         },
                         "__new_primary_file_construct_gb|construct_3__": {
-                            "id": "68281df0cf338722",
+                            "id": "dd60b22cea40a264",
                             "src": "hda",
-                            "uuid": "2a43a8fd-7b64-4f92-a483-6c716ec2f681"
+                            "uuid": "3d0514f2-d798-484f-add3-d04103fef517"
                         },
                         "output_zip": {
-                            "id": "713969bb307bfc17",
+                            "id": "cb5bc2d1019b090c",
                             "src": "hda",
-                            "uuid": "ff63bc11-8e44-4753-a248-329fb44ee3b1"
+                            "uuid": "81c8307a-8e03-4975-b3ec-1115f4f47284"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
                         "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
                         "assembly_plan_name": "\"GibsonAssembly\"",
-                        "chromInfo": "\"/tmp/tmpulb7kecp/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmp_ibkdcj0/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
                         "domesticated_input": null,
                         "genbank_files": "{\"values\": [{\"id\": 3, \"src\": \"hdca\"}]}",
                         "topology": "\"circular\""
                     },
                     "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.37it/s, now=None]\rassembly:  60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:00<00:00,  4.36it/s, now=None]\rassembly:  80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  | 4/5 [00:00<00:00,  4.35it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:01<00:00,  3.54it/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.42it/s, now=None]\rassembly:  60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:00<00:00,  4.41it/s, now=None]\rassembly:  80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  | 4/5 [00:00<00:00,  4.40it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:01<00:00,  3.63it/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.37it/s, now=None]\rassembly:  60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:00<00:00,  4.36it/s, now=None]\rassembly:  80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  | 4/5 [00:00<00:00,  4.35it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:01<00:00,  3.54it/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.42it/s, now=None]\rassembly:  60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:00<00:00,  4.41it/s, now=None]\rassembly:  80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  | 4/5 [00:00<00:00,  4.40it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:01<00:00,  3.63it/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-23T12:13:49.541469",
+                    "update_time": "2025-05-26T08:56:38.283009",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "8094a24bdbd328fd"
+                    "user_id": "cb6d3fbb91be6861"
                 },
                 "status": "success",
                 "test_index": 1,
-                "time_seconds": 23.19603419303894,
+                "time_seconds": 22.636474609375,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
@@ -452,21 +452,21 @@
                 "inputs": {
                     "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "6ba0e4a0e82495c8",
+                        "id": "c6996082322986ef",
                         "src": "hda"
                     },
                     "assembly_plan_name": "LigaseCyclingReactionAssembly",
                     "genbank_files": {
-                        "id": "85b2c5efa0bce20f",
+                        "id": "48e4779cf88cf124",
                         "src": "hdca"
                     },
                     "topology": "circular"
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpulb7kecp/files/b/7/7/dataset_b7713227-6c97-4684-ac9a-76650631a0a9.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpulb7kecp/files/f/e/9/dataset_fe9a8ec6-5d0f-4f89-934f-a46bb9ff8db7.dat,/tmp/tmpulb7kecp/files/4/5/7/dataset_45763854-327e-472f-9cb3-a3cc72b8f76b.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'LigaseCyclingReactionAssembly' --file_name_mapping '/tmp/tmpulb7kecp/files/f/e/9/dataset_fe9a8ec6-5d0f-4f89-934f-a46bb9ff8db7.dat:RFP_GFP_plasmid_BOs.fa,/tmp/tmpulb7kecp/files/4/5/7/dataset_45763854-327e-472f-9cb3-a3cc72b8f76b.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/tmpulb7kecp/job_working_directory/000/21/outputs/dataset_1d53129b-a396-429b-9971-2d00b993e48a.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmp_ibkdcj0/files/3/6/c/dataset_36c9642c-c980-4a5f-babe-e1140450965b.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmp_ibkdcj0/files/f/d/7/dataset_fd7feec8-d839-4aac-ba59-54d4042d72d4.dat,/tmp/tmp_ibkdcj0/files/0/9/7/dataset_097d3af5-48d7-4b15-9063-19cc11585d82.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'LigaseCyclingReactionAssembly' --file_name_mapping '/tmp/tmp_ibkdcj0/files/f/d/7/dataset_fd7feec8-d839-4aac-ba59-54d4042d72d4.dat:RFP_GFP_plasmid_BOs.fa,/tmp/tmp_ibkdcj0/files/0/9/7/dataset_097d3af5-48d7-4b15-9063-19cc11585d82.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/tmp_ibkdcj0/job_working_directory/000/21/outputs/dataset_dd39a396-84ad-4350-8d9b-a0efafd5ea2a.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-23T12:14:01.238952",
+                    "create_time": "2025-05-26T08:56:49.662294",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -646,26 +646,26 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "179225",
+                    "external_id": "79436",
                     "galaxy_version": "24.2",
                     "handler": null,
-                    "history_id": "8a7a2aba20929ed0",
-                    "id": "713969bb307bfc17",
+                    "history_id": "afdf3d24f0e34eea",
+                    "id": "cb5bc2d1019b090c",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "6ba0e4a0e82495c8",
+                            "id": "c6996082322986ef",
                             "src": "hda",
-                            "uuid": "b7713227-6c97-4684-ac9a-76650631a0a9"
+                            "uuid": "36c9642c-c980-4a5f-babe-e1140450965b"
                         },
                         "genbank_files1": {
-                            "id": "f1fafc006c3c5be7",
+                            "id": "ff6721ae641686bd",
                             "src": "hda",
-                            "uuid": "fe9a8ec6-5d0f-4f89-934f-a46bb9ff8db7"
+                            "uuid": "fd7feec8-d839-4aac-ba59-54d4042d72d4"
                         },
                         "genbank_files2": {
-                            "id": "8c1f52fe6e59f5ac",
+                            "id": "898f771988549b05",
                             "src": "hda",
-                            "uuid": "45763854-327e-472f-9cb3-a3cc72b8f76b"
+                            "uuid": "097d3af5-48d7-4b15-9063-19cc11585d82"
                         }
                     },
                     "job_messages": [],
@@ -676,40 +676,40 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "3758c7315f184c9a",
+                            "id": "2bf3ecab9316a382",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "output_zip": {
-                            "id": "db12508970e81a14",
+                            "id": "b995dfb8c32b92b7",
                             "src": "hda",
-                            "uuid": "1d53129b-a396-429b-9971-2d00b993e48a"
+                            "uuid": "dd39a396-84ad-4350-8d9b-a0efafd5ea2a"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
                         "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
                         "assembly_plan_name": "\"LigaseCyclingReactionAssembly\"",
-                        "chromInfo": "\"/tmp/tmpulb7kecp/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmp_ibkdcj0/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
                         "domesticated_input": null,
                         "genbank_files": "{\"values\": [{\"id\": 5, \"src\": \"hdca\"}]}",
                         "topology": "\"circular\""
                     },
                     "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.37it/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.23it/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.37it/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.23it/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-23T12:14:13.046545",
+                    "update_time": "2025-05-26T08:57:02.321903",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "8094a24bdbd328fd"
+                    "user_id": "cb6d3fbb91be6861"
                 },
                 "status": "success",
                 "test_index": 2,
-                "time_seconds": 23.21994924545288,
+                "time_seconds": 23.856895685195923,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
@@ -721,21 +721,21 @@
                 "inputs": {
                     "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "a9ed9e5261104c2a",
+                        "id": "9d9573fdc2182066",
                         "src": "hda"
                     },
                     "assembly_plan_name": "BASICAssembly",
                     "genbank_files": {
-                        "id": "cc5b73713462c207",
+                        "id": "d51bf47fbc922335",
                         "src": "hdca"
                     },
                     "topology": "circular"
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpulb7kecp/files/5/1/3/dataset_513294c4-b1bf-4a02-a37d-6f4bd74436d9.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpulb7kecp/files/a/7/9/dataset_a79829ef-6450-404a-8d59-fa42ddb91ca3.dat,/tmp/tmpulb7kecp/files/7/c/7/dataset_7c74d4c3-38b5-40a7-9c71-482502e6e5f8.dat,/tmp/tmpulb7kecp/files/5/1/c/dataset_51c3184d-fd7e-49a8-af51-e29bbf7a8a37.dat,/tmp/tmpulb7kecp/files/2/4/4/dataset_24493579-a703-4b94-ac09-e283f59035b0.dat,/tmp/tmpulb7kecp/files/c/b/4/dataset_cb4bfd16-db5c-47ce-98f5-a5c5065d4dd4.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'BASICAssembly' --file_name_mapping '/tmp/tmpulb7kecp/files/a/7/9/dataset_a79829ef-6450-404a-8d59-fa42ddb91ca3.dat:GFP.gb,/tmp/tmpulb7kecp/files/7/c/7/dataset_7c74d4c3-38b5-40a7-9c71-482502e6e5f8.dat:p15A_kan.gb,/tmp/tmpulb7kecp/files/5/1/c/dataset_51c3184d-fd7e-49a8-af51-e29bbf7a8a37.dat:promoter.gb,/tmp/tmpulb7kecp/files/2/4/4/dataset_24493579-a703-4b94-ac09-e283f59035b0.dat:RFP.gb,/tmp/tmpulb7kecp/files/c/b/4/dataset_cb4bfd16-db5c-47ce-98f5-a5c5065d4dd4.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/tmpulb7kecp/job_working_directory/000/28/outputs/dataset_47491132-901d-4249-9c1e-dfd12feae17e.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmp_ibkdcj0/files/2/5/1/dataset_251d413f-0fe8-42cd-8a76-7ef77cde6f15.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmp_ibkdcj0/files/7/d/8/dataset_7d893bbf-b4e0-4d64-bafc-21ba1566237d.dat,/tmp/tmp_ibkdcj0/files/c/c/2/dataset_cc2314fa-924f-47c0-b89a-661fb78790a4.dat,/tmp/tmp_ibkdcj0/files/8/d/0/dataset_8d097c97-7bd5-48eb-9f9e-f5b92ce19458.dat,/tmp/tmp_ibkdcj0/files/5/9/1/dataset_59189305-e832-4191-be7c-496c01c8aba6.dat,/tmp/tmp_ibkdcj0/files/4/0/2/dataset_402500d7-6532-4008-9445-c0cf7fed5350.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'BASICAssembly' --file_name_mapping '/tmp/tmp_ibkdcj0/files/7/d/8/dataset_7d893bbf-b4e0-4d64-bafc-21ba1566237d.dat:GFP.gb,/tmp/tmp_ibkdcj0/files/c/c/2/dataset_cc2314fa-924f-47c0-b89a-661fb78790a4.dat:p15A_kan.gb,/tmp/tmp_ibkdcj0/files/8/d/0/dataset_8d097c97-7bd5-48eb-9f9e-f5b92ce19458.dat:promoter.gb,/tmp/tmp_ibkdcj0/files/5/9/1/dataset_59189305-e832-4191-be7c-496c01c8aba6.dat:RFP.gb,/tmp/tmp_ibkdcj0/files/4/0/2/dataset_402500d7-6532-4008-9445-c0cf7fed5350.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/tmp_ibkdcj0/job_working_directory/000/28/outputs/dataset_8e6b31eb-84b3-4184-92eb-33384ae50857.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-23T12:14:34.083682",
+                    "create_time": "2025-05-26T08:57:24.342653",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -915,41 +915,41 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "179816",
+                    "external_id": "80040",
                     "galaxy_version": "24.2",
                     "handler": null,
-                    "history_id": "53ad8e2eaf8a05d9",
-                    "id": "db12508970e81a14",
+                    "history_id": "285751a21c9d1d68",
+                    "id": "b995dfb8c32b92b7",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "a9ed9e5261104c2a",
+                            "id": "9d9573fdc2182066",
                             "src": "hda",
-                            "uuid": "513294c4-b1bf-4a02-a37d-6f4bd74436d9"
+                            "uuid": "251d413f-0fe8-42cd-8a76-7ef77cde6f15"
                         },
                         "genbank_files1": {
-                            "id": "ce8e89b55ee6d12d",
+                            "id": "241cfac882733d83",
                             "src": "hda",
-                            "uuid": "a79829ef-6450-404a-8d59-fa42ddb91ca3"
+                            "uuid": "7d893bbf-b4e0-4d64-bafc-21ba1566237d"
                         },
                         "genbank_files2": {
-                            "id": "9c6b8acc292ccf30",
+                            "id": "7ada2c781708b1e8",
                             "src": "hda",
-                            "uuid": "7c74d4c3-38b5-40a7-9c71-482502e6e5f8"
+                            "uuid": "cc2314fa-924f-47c0-b89a-661fb78790a4"
                         },
                         "genbank_files3": {
-                            "id": "0b252ddd8f79f3ec",
+                            "id": "4deb8a541e3f0671",
                             "src": "hda",
-                            "uuid": "51c3184d-fd7e-49a8-af51-e29bbf7a8a37"
+                            "uuid": "8d097c97-7bd5-48eb-9f9e-f5b92ce19458"
                         },
                         "genbank_files4": {
-                            "id": "757270683c70cddd",
+                            "id": "cdcc9004d7157de8",
                             "src": "hda",
-                            "uuid": "24493579-a703-4b94-ac09-e283f59035b0"
+                            "uuid": "59189305-e832-4191-be7c-496c01c8aba6"
                         },
                         "genbank_files5": {
-                            "id": "3932a26d59be2681",
+                            "id": "33fad5084f4d4cb5",
                             "src": "hda",
-                            "uuid": "cb4bfd16-db5c-47ce-98f5-a5c5065d4dd4"
+                            "uuid": "402500d7-6532-4008-9445-c0cf7fed5350"
                         }
                     },
                     "job_messages": [],
@@ -960,40 +960,40 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "abedd81ff2360f10",
+                            "id": "590bb56cc83504dc",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "output_zip": {
-                            "id": "8c26318d49002581",
+                            "id": "4f510c4214d7d568",
                             "src": "hda",
-                            "uuid": "47491132-901d-4249-9c1e-dfd12feae17e"
+                            "uuid": "8e6b31eb-84b3-4184-92eb-33384ae50857"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
                         "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
                         "assembly_plan_name": "\"BASICAssembly\"",
-                        "chromInfo": "\"/tmp/tmpulb7kecp/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmp_ibkdcj0/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
                         "domesticated_input": null,
                         "genbank_files": "{\"values\": [{\"id\": 7, \"src\": \"hdca\"}]}",
                         "topology": "\"circular\""
                     },
                     "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:  62%|\u2588\u2588\u2588\u2588\u2588\u2588\u258e   | 5/8 [00:00<00:00, 49.05it/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.38it/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:  62%|\u2588\u2588\u2588\u2588\u2588\u2588\u258e   | 5/8 [00:00<00:00, 49.05it/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.38it/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-23T12:14:44.485473",
+                    "update_time": "2025-05-26T08:57:34.740635",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "8094a24bdbd328fd"
+                    "user_id": "cb6d3fbb91be6861"
                 },
                 "status": "success",
                 "test_index": 3,
-                "time_seconds": 31.373873472213745,
+                "time_seconds": 32.283992767333984,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
@@ -1005,21 +1005,21 @@
                 "inputs": {
                     "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "723f42bbf157272d",
+                        "id": "017df84d4155fcba",
                         "src": "hda"
                     },
                     "assembly_plan_name": "BioBrickStandardAssembly",
                     "genbank_files": {
-                        "id": "83d0643dcafc650b",
+                        "id": "ff96e44e65db99f8",
                         "src": "hdca"
                     },
                     "topology": "circular"
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpulb7kecp/files/9/4/0/dataset_940a048a-ec9f-4cc9-9990-f0f1bb9c01db.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpulb7kecp/files/d/5/9/dataset_d591902b-724d-446d-bad5-1ecf539f4193.dat,/tmp/tmpulb7kecp/files/4/5/7/dataset_457d680a-7fd5-42ce-8747-a78267083da9.dat,/tmp/tmpulb7kecp/files/1/a/9/dataset_1a9aa4c8-4387-4b65-a638-1033465060d7.dat,/tmp/tmpulb7kecp/files/3/f/e/dataset_3feea62b-c35b-4f65-937d-3233db6bf0ec.dat,/tmp/tmpulb7kecp/files/f/9/1/dataset_f917f42d-9d14-4b5e-aa4f-b04e06a56357.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'BioBrickStandardAssembly' --file_name_mapping '/tmp/tmpulb7kecp/files/d/5/9/dataset_d591902b-724d-446d-bad5-1ecf539f4193.dat:BBa_E0040_GFP.gb,/tmp/tmpulb7kecp/files/4/5/7/dataset_457d680a-7fd5-42ce-8747-a78267083da9.dat:BBa_J23119_prom.gb,/tmp/tmpulb7kecp/files/1/a/9/dataset_1a9aa4c8-4387-4b65-a638-1033465060d7.dat:BBa_J23119_prom_flawed.gb,/tmp/tmpulb7kecp/files/3/f/e/dataset_3feea62b-c35b-4f65-937d-3233db6bf0ec.dat:BBa_J61048_term.gb,/tmp/tmpulb7kecp/files/f/9/1/dataset_f917f42d-9d14-4b5e-aa4f-b04e06a56357.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/tmpulb7kecp/job_working_directory/000/35/outputs/dataset_332a60b5-1b7e-40d6-b4d9-a07f05bc9d4b.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmp_ibkdcj0/files/f/d/9/dataset_fd913c0f-ea98-4b8d-a170-961146c201d5.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmp_ibkdcj0/files/3/8/4/dataset_38402f39-a1d3-495e-afed-bf8335b4cdb6.dat,/tmp/tmp_ibkdcj0/files/9/c/8/dataset_9c8ea453-16b9-4b9d-b171-9d5c0322adf9.dat,/tmp/tmp_ibkdcj0/files/3/1/a/dataset_31a46fbb-0267-42e3-b9d3-c60804edd30c.dat,/tmp/tmp_ibkdcj0/files/e/2/7/dataset_e278e6ea-3146-49fa-a4f5-becf766e4f5e.dat,/tmp/tmp_ibkdcj0/files/6/a/1/dataset_6a19d37f-54e1-4c94-a2b1-1a7f37820aad.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'BioBrickStandardAssembly' --file_name_mapping '/tmp/tmp_ibkdcj0/files/3/8/4/dataset_38402f39-a1d3-495e-afed-bf8335b4cdb6.dat:BBa_E0040_GFP.gb,/tmp/tmp_ibkdcj0/files/9/c/8/dataset_9c8ea453-16b9-4b9d-b171-9d5c0322adf9.dat:BBa_J23119_prom.gb,/tmp/tmp_ibkdcj0/files/3/1/a/dataset_31a46fbb-0267-42e3-b9d3-c60804edd30c.dat:BBa_J23119_prom_flawed.gb,/tmp/tmp_ibkdcj0/files/e/2/7/dataset_e278e6ea-3146-49fa-a4f5-becf766e4f5e.dat:BBa_J61048_term.gb,/tmp/tmp_ibkdcj0/files/6/a/1/dataset_6a19d37f-54e1-4c94-a2b1-1a7f37820aad.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/tmp_ibkdcj0/job_working_directory/000/35/outputs/dataset_a3f2eab1-bbe1-401e-b436-b7ffc698ee3a.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-23T12:15:06.093194",
+                    "create_time": "2025-05-26T08:57:56.917009",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -1199,41 +1199,41 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "180435",
+                    "external_id": "80672",
                     "galaxy_version": "24.2",
                     "handler": null,
-                    "history_id": "85b2c5efa0bce20f",
-                    "id": "8c26318d49002581",
+                    "history_id": "48e4779cf88cf124",
+                    "id": "4f510c4214d7d568",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "723f42bbf157272d",
+                            "id": "017df84d4155fcba",
                             "src": "hda",
-                            "uuid": "940a048a-ec9f-4cc9-9990-f0f1bb9c01db"
+                            "uuid": "fd913c0f-ea98-4b8d-a170-961146c201d5"
                         },
                         "genbank_files1": {
-                            "id": "068bcc8e8d7a762b",
+                            "id": "1745fab1994e918a",
                             "src": "hda",
-                            "uuid": "d591902b-724d-446d-bad5-1ecf539f4193"
+                            "uuid": "38402f39-a1d3-495e-afed-bf8335b4cdb6"
                         },
                         "genbank_files2": {
-                            "id": "9f11456f5a306175",
+                            "id": "9f4b12edd1240647",
                             "src": "hda",
-                            "uuid": "457d680a-7fd5-42ce-8747-a78267083da9"
+                            "uuid": "9c8ea453-16b9-4b9d-b171-9d5c0322adf9"
                         },
                         "genbank_files3": {
-                            "id": "4d6d92e009725c02",
+                            "id": "070cf47a9114ebf0",
                             "src": "hda",
-                            "uuid": "1a9aa4c8-4387-4b65-a638-1033465060d7"
+                            "uuid": "31a46fbb-0267-42e3-b9d3-c60804edd30c"
                         },
                         "genbank_files4": {
-                            "id": "ba31cade4e4f4bd8",
+                            "id": "176efb58f023067c",
                             "src": "hda",
-                            "uuid": "3feea62b-c35b-4f65-937d-3233db6bf0ec"
+                            "uuid": "e278e6ea-3146-49fa-a4f5-becf766e4f5e"
                         },
                         "genbank_files5": {
-                            "id": "5c13ba18dcd7e71d",
+                            "id": "2c38922866e3bd19",
                             "src": "hda",
-                            "uuid": "f917f42d-9d14-4b5e-aa4f-b04e06a56357"
+                            "uuid": "6a19d37f-54e1-4c94-a2b1-1a7f37820aad"
                         }
                     },
                     "job_messages": [],
@@ -1244,55 +1244,55 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "54ed1ed3b165c7b4",
+                            "id": "7ede2556a40dc9ba",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "__new_primary_file_construct_gb|C1_prom_barcode__": {
-                            "id": "165ffecff174f921",
+                            "id": "e9bea5372f4a6a20",
                             "src": "hda",
-                            "uuid": "dbf78ec4-1125-4869-b2c7-22ea1e088383"
+                            "uuid": "80f480c8-264d-428b-8b95-253cd89d7764"
                         },
                         "__new_primary_file_construct_gb|C2_gfp_term__": {
-                            "id": "68b55cb1abb6ffc8",
+                            "id": "1290d6537f2937e3",
                             "src": "hda",
-                            "uuid": "eefbb36b-1cb4-4159-a989-674ce4a361d9"
+                            "uuid": "7b7b6524-575a-4dfc-800c-dc0d3e8ece79"
                         },
                         "__new_primary_file_construct_gb|C3_final__": {
-                            "id": "be504c8d89de9ae4",
+                            "id": "cd293a8cb9d8e7b5",
                             "src": "hda",
-                            "uuid": "7c89fcf8-b98f-4719-bedc-509f7d2adbb8"
+                            "uuid": "7be9e218-0841-46cd-ac62-5686969f6935"
                         },
                         "output_zip": {
-                            "id": "67dd2dff3a365063",
+                            "id": "3651b2c7591f0e47",
                             "src": "hda",
-                            "uuid": "332a60b5-1b7e-40d6-b4d9-a07f05bc9d4b"
+                            "uuid": "a3f2eab1-bbe1-401e-b436-b7ffc698ee3a"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
                         "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
                         "assembly_plan_name": "\"BioBrickStandardAssembly\"",
-                        "chromInfo": "\"/tmp/tmpulb7kecp/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmp_ibkdcj0/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
                         "domesticated_input": null,
                         "genbank_files": "{\"values\": [{\"id\": 9, \"src\": \"hdca\"}]}",
                         "topology": "\"circular\""
                     },
                     "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.89it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00,  1.55it/s, now=None]\r                                                                 \r",
+                    "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.90it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00,  1.54it/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.89it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00,  1.55it/s, now=None]\r                                                                 \r",
+                    "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.90it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00,  1.54it/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-23T12:15:19.591969",
+                    "update_time": "2025-05-26T08:58:09.572798",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "8094a24bdbd328fd"
+                    "user_id": "cb6d3fbb91be6861"
                 },
                 "status": "success",
                 "test_index": 4,
-                "time_seconds": 35.12441039085388,
+                "time_seconds": 34.93839716911316,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
@@ -1304,25 +1304,25 @@
                 "inputs": {
                     "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "8f56f36c2b9f0a7c",
+                        "id": "b1a8f56fe428091e",
                         "src": "hda"
                     },
                     "assembly_plan_name": "Type2sRestrictionAssembly",
                     "domesticated_input": {
-                        "id": "aa441ebc75addcb0",
+                        "id": "76608081d307dc20",
                         "src": "hdca"
                     },
                     "genbank_files": {
-                        "id": "41108ccf3c813abd",
+                        "id": "0551bf01e3dbca02",
                         "src": "hdca"
                     },
                     "topology": "circular"
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpulb7kecp/files/c/f/a/dataset_cfa1c628-1bad-4864-97c9-f5ff8ae3bb94.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpulb7kecp/files/0/9/2/dataset_092e3d69-34a0-4c02-9593-859fa17016fb.dat,/tmp/tmpulb7kecp/files/e/d/5/dataset_ed59100d-a4e7-4eb8-9965-8817a8e44000.dat,/tmp/tmpulb7kecp/files/0/1/7/dataset_0172bdce-ca49-45d4-af2d-12a5304b55ca.dat,/tmp/tmpulb7kecp/files/d/2/2/dataset_d22475f3-6c2f-4c52-9164-12248ba5d2a8.dat,/tmp/tmpulb7kecp/files/1/d/9/dataset_1d9b3d4c-eed3-444e-87e6-29c04e915c0d.dat,/tmp/tmpulb7kecp/files/2/4/c/dataset_24c555ec-1536-4ef6-a07d-20d744f3b5fc.dat,/tmp/tmpulb7kecp/files/c/2/3/dataset_c23f475b-f826-4333-8641-66e68bfad42a.dat' --domesticated_seq '/tmp/tmpulb7kecp/files/f/f/a/dataset_ffa8dfa6-df34-412b-84ae-325a3e389a88.dat,/tmp/tmpulb7kecp/files/f/3/3/dataset_f33af6b6-cce3-49b2-a17e-9a168ad065f9.dat,/tmp/tmpulb7kecp/files/2/9/7/dataset_297ec6da-4e55-4534-94c7-903e7e107632.dat,/tmp/tmpulb7kecp/files/3/0/7/dataset_30785c7f-0628-4e63-be45-77272fdedb50.dat,/tmp/tmpulb7kecp/files/f/3/2/dataset_f32a9062-9cf7-48d9-9ddb-ef0c02526564.dat' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpulb7kecp/files/0/9/2/dataset_092e3d69-34a0-4c02-9593-859fa17016fb.dat:part_A.gb,/tmp/tmpulb7kecp/files/e/d/5/dataset_ed59100d-a4e7-4eb8-9965-8817a8e44000.dat:part_B.gb,/tmp/tmpulb7kecp/files/0/1/7/dataset_0172bdce-ca49-45d4-af2d-12a5304b55ca.dat:part_C.gb,/tmp/tmpulb7kecp/files/d/2/2/dataset_d22475f3-6c2f-4c52-9164-12248ba5d2a8.dat:part_D.gb,/tmp/tmpulb7kecp/files/1/d/9/dataset_1d9b3d4c-eed3-444e-87e6-29c04e915c0d.dat:part_E.gb,/tmp/tmpulb7kecp/files/2/4/c/dataset_24c555ec-1536-4ef6-a07d-20d744f3b5fc.dat:part_F.gb,/tmp/tmpulb7kecp/files/c/2/3/dataset_c23f475b-f826-4333-8641-66e68bfad42a.dat:part_G.gb' --file_name_mapping_dom '/tmp/tmpulb7kecp/files/f/f/a/dataset_ffa8dfa6-df34-412b-84ae-325a3e389a88.dat:part_H.gb,/tmp/tmpulb7kecp/files/f/3/3/dataset_f33af6b6-cce3-49b2-a17e-9a168ad065f9.dat:part_I.gb,/tmp/tmpulb7kecp/files/2/9/7/dataset_297ec6da-4e55-4534-94c7-903e7e107632.dat:part_J.gb,/tmp/tmpulb7kecp/files/3/0/7/dataset_30785c7f-0628-4e63-be45-77272fdedb50.dat:part_K.gb,/tmp/tmpulb7kecp/files/f/3/2/dataset_f32a9062-9cf7-48d9-9ddb-ef0c02526564.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/tmpulb7kecp/job_working_directory/000/49/outputs/dataset_da6f8b92-03ba-4561-81a4-2ac510aff8c6.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmp_ibkdcj0/files/9/7/b/dataset_97b16fa9-53ab-4e65-9de7-e30112bcdd06.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmp_ibkdcj0/files/8/2/3/dataset_823cfc4c-98db-494d-a03b-5181179a3581.dat,/tmp/tmp_ibkdcj0/files/6/0/a/dataset_60a53b2c-927e-4c33-b6b0-2e927266044e.dat,/tmp/tmp_ibkdcj0/files/d/3/5/dataset_d357996d-45c3-4715-b8eb-ea6bb836b18e.dat,/tmp/tmp_ibkdcj0/files/d/a/c/dataset_dacfd7e2-f5ff-4821-8d70-f73307f7997e.dat,/tmp/tmp_ibkdcj0/files/9/b/3/dataset_9b3f9357-c1cc-43c9-a81c-c100483b3a0d.dat,/tmp/tmp_ibkdcj0/files/5/e/4/dataset_5e43150c-3c7c-4072-9720-fdc085cd6d8b.dat,/tmp/tmp_ibkdcj0/files/2/d/e/dataset_2de75a41-7673-4cef-aa63-2cf6d9466e8c.dat' --domesticated_seq '/tmp/tmp_ibkdcj0/files/e/f/3/dataset_ef3f0423-f1dd-462b-8d68-e68cd6d59d82.dat,/tmp/tmp_ibkdcj0/files/e/a/2/dataset_ea297609-87c4-4bfc-abfd-084fbcc94d5b.dat,/tmp/tmp_ibkdcj0/files/6/0/d/dataset_60d919ff-9b54-4856-b3d0-9836114c2575.dat,/tmp/tmp_ibkdcj0/files/0/8/e/dataset_08efef6d-13c4-4e1b-a155-859e0a0df989.dat,/tmp/tmp_ibkdcj0/files/e/7/2/dataset_e72facc2-0bd8-49e8-94e6-6b255853b030.dat' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmp_ibkdcj0/files/8/2/3/dataset_823cfc4c-98db-494d-a03b-5181179a3581.dat:part_A.gb,/tmp/tmp_ibkdcj0/files/6/0/a/dataset_60a53b2c-927e-4c33-b6b0-2e927266044e.dat:part_B.gb,/tmp/tmp_ibkdcj0/files/d/3/5/dataset_d357996d-45c3-4715-b8eb-ea6bb836b18e.dat:part_C.gb,/tmp/tmp_ibkdcj0/files/d/a/c/dataset_dacfd7e2-f5ff-4821-8d70-f73307f7997e.dat:part_D.gb,/tmp/tmp_ibkdcj0/files/9/b/3/dataset_9b3f9357-c1cc-43c9-a81c-c100483b3a0d.dat:part_E.gb,/tmp/tmp_ibkdcj0/files/5/e/4/dataset_5e43150c-3c7c-4072-9720-fdc085cd6d8b.dat:part_F.gb,/tmp/tmp_ibkdcj0/files/2/d/e/dataset_2de75a41-7673-4cef-aa63-2cf6d9466e8c.dat:part_G.gb' --file_name_mapping_dom '/tmp/tmp_ibkdcj0/files/e/f/3/dataset_ef3f0423-f1dd-462b-8d68-e68cd6d59d82.dat:part_H.gb,/tmp/tmp_ibkdcj0/files/e/a/2/dataset_ea297609-87c4-4bfc-abfd-084fbcc94d5b.dat:part_I.gb,/tmp/tmp_ibkdcj0/files/6/0/d/dataset_60d919ff-9b54-4856-b3d0-9836114c2575.dat:part_J.gb,/tmp/tmp_ibkdcj0/files/0/8/e/dataset_08efef6d-13c4-4e1b-a155-859e0a0df989.dat:part_K.gb,/tmp/tmp_ibkdcj0/files/e/7/2/dataset_e72facc2-0bd8-49e8-94e6-6b255853b030.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/tmp_ibkdcj0/job_working_directory/000/49/outputs/dataset_2bca238e-5421-456d-bf98-1bd44e65fc76.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-23T12:16:00.836611",
+                    "create_time": "2025-05-26T08:58:50.541909",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -1502,76 +1502,76 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "181545",
+                    "external_id": "81731",
                     "galaxy_version": "24.2",
                     "handler": null,
-                    "history_id": "3758c7315f184c9a",
-                    "id": "db168591f9c4d2a8",
+                    "history_id": "2bf3ecab9316a382",
+                    "id": "aa893e5f7beb4eb8",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "8f56f36c2b9f0a7c",
+                            "id": "b1a8f56fe428091e",
                             "src": "hda",
-                            "uuid": "cfa1c628-1bad-4864-97c9-f5ff8ae3bb94"
+                            "uuid": "97b16fa9-53ab-4e65-9de7-e30112bcdd06"
                         },
                         "domesticated_input1": {
-                            "id": "762d85be4105a0e7",
+                            "id": "dbc527c8f70438a2",
                             "src": "hda",
-                            "uuid": "ffa8dfa6-df34-412b-84ae-325a3e389a88"
+                            "uuid": "ef3f0423-f1dd-462b-8d68-e68cd6d59d82"
                         },
                         "domesticated_input2": {
-                            "id": "c453f926cdeee4bd",
+                            "id": "a3ea165695c1e088",
                             "src": "hda",
-                            "uuid": "f33af6b6-cce3-49b2-a17e-9a168ad065f9"
+                            "uuid": "ea297609-87c4-4bfc-abfd-084fbcc94d5b"
                         },
                         "domesticated_input3": {
-                            "id": "5bba4dfbf52e531c",
+                            "id": "d4fcfbec208c480f",
                             "src": "hda",
-                            "uuid": "297ec6da-4e55-4534-94c7-903e7e107632"
+                            "uuid": "60d919ff-9b54-4856-b3d0-9836114c2575"
                         },
                         "domesticated_input4": {
-                            "id": "58e4e52cefa9d689",
+                            "id": "b53993d77cff267e",
                             "src": "hda",
-                            "uuid": "30785c7f-0628-4e63-be45-77272fdedb50"
+                            "uuid": "08efef6d-13c4-4e1b-a155-859e0a0df989"
                         },
                         "domesticated_input5": {
-                            "id": "492cbe2cf83388c0",
+                            "id": "e1a323c2b9a73ada",
                             "src": "hda",
-                            "uuid": "f32a9062-9cf7-48d9-9ddb-ef0c02526564"
+                            "uuid": "e72facc2-0bd8-49e8-94e6-6b255853b030"
                         },
                         "genbank_files1": {
-                            "id": "5b9f36df99fe7ddd",
+                            "id": "03a53f60ebb3b30b",
                             "src": "hda",
-                            "uuid": "092e3d69-34a0-4c02-9593-859fa17016fb"
+                            "uuid": "823cfc4c-98db-494d-a03b-5181179a3581"
                         },
                         "genbank_files2": {
-                            "id": "83649da70bd4e994",
+                            "id": "949b6e5fb08e3b2e",
                             "src": "hda",
-                            "uuid": "ed59100d-a4e7-4eb8-9965-8817a8e44000"
+                            "uuid": "60a53b2c-927e-4c33-b6b0-2e927266044e"
                         },
                         "genbank_files3": {
-                            "id": "9e3a7410afb0cd47",
+                            "id": "4b14363353165bd2",
                             "src": "hda",
-                            "uuid": "0172bdce-ca49-45d4-af2d-12a5304b55ca"
+                            "uuid": "d357996d-45c3-4715-b8eb-ea6bb836b18e"
                         },
                         "genbank_files4": {
-                            "id": "db168591f9c4d2a8",
+                            "id": "aa893e5f7beb4eb8",
                             "src": "hda",
-                            "uuid": "d22475f3-6c2f-4c52-9164-12248ba5d2a8"
+                            "uuid": "dacfd7e2-f5ff-4821-8d70-f73307f7997e"
                         },
                         "genbank_files5": {
-                            "id": "fbc673f3c19d4e8f",
+                            "id": "e33440187009b2c6",
                             "src": "hda",
-                            "uuid": "1d9b3d4c-eed3-444e-87e6-29c04e915c0d"
+                            "uuid": "9b3f9357-c1cc-43c9-a81c-c100483b3a0d"
                         },
                         "genbank_files6": {
-                            "id": "612b3112dca3b89a",
+                            "id": "ef97dc51810891e7",
                             "src": "hda",
-                            "uuid": "24c555ec-1536-4ef6-a07d-20d744f3b5fc"
+                            "uuid": "5e43150c-3c7c-4072-9720-fdc085cd6d8b"
                         },
                         "genbank_files7": {
-                            "id": "1122563bf7246535",
+                            "id": "16b078cfbe5cb4fb",
                             "src": "hda",
-                            "uuid": "c23f475b-f826-4333-8641-66e68bfad42a"
+                            "uuid": "2de75a41-7673-4cef-aa63-2cf6d9466e8c"
                         }
                     },
                     "job_messages": [],
@@ -1582,60 +1582,60 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "106ff655f8a511fe",
+                            "id": "0a696a8b22798e06",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "__new_primary_file_construct_gb|construct_1__": {
-                            "id": "4ec2fde3b391b5e9",
+                            "id": "08065af9f1d51b0a",
                             "src": "hda",
-                            "uuid": "65c06a03-7919-4203-8aa0-ee2d6c747da3"
+                            "uuid": "4837c85e-ba71-482d-91d1-be3e3179ee5a"
                         },
                         "__new_primary_file_construct_gb|construct_2__": {
-                            "id": "db0ab281fdd171f3",
+                            "id": "23c03036acf6de8c",
                             "src": "hda",
-                            "uuid": "00b0ee36-bed6-481a-8f87-a3ee2eb3c474"
+                            "uuid": "a898af9c-3721-4b84-8ebc-790dc376316c"
                         },
                         "__new_primary_file_construct_gb|construct_3__": {
-                            "id": "39bf58b498d37eb0",
+                            "id": "950510fee01c22f4",
                             "src": "hda",
-                            "uuid": "c6fb815c-ee68-4263-9e77-86d27f1f5fd9"
+                            "uuid": "be8dfa79-0421-418a-9822-af3e69e3bd0a"
                         },
                         "__new_primary_file_construct_gb|construct_4__": {
-                            "id": "54d1dbb833355e05",
+                            "id": "abd47de82fbecc4e",
                             "src": "hda",
-                            "uuid": "af82262d-217d-4952-8d8f-b733d902879c"
+                            "uuid": "1455799d-9a0a-46e7-8ddb-df60f983fb53"
                         },
                         "output_zip": {
-                            "id": "7830aac4d222c450",
+                            "id": "b52f373b44c22024",
                             "src": "hda",
-                            "uuid": "da6f8b92-03ba-4561-81a4-2ac510aff8c6"
+                            "uuid": "2bca238e-5421-456d-bf98-1bd44e65fc76"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
                         "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
                         "assembly_plan_name": "\"Type2sRestrictionAssembly\"",
-                        "chromInfo": "\"/tmp/tmpulb7kecp/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmp_ibkdcj0/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\""
                     },
                     "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.44it/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.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.44it/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.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-23T12:16:13.850563",
+                    "update_time": "2025-05-26T08:59:03.629936",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "8094a24bdbd328fd"
+                    "user_id": "cb6d3fbb91be6861"
                 },
                 "status": "success",
                 "test_index": 5,
-                "time_seconds": 54.179964542388916,
+                "time_seconds": 53.84836268424988,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
@@ -1647,21 +1647,21 @@
                 "inputs": {
                     "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "a128918b334a087e",
+                        "id": "4b6130eb686f10a7",
                         "src": "hda"
                     },
                     "assembly_plan_name": "Type2sRestrictionAssembly",
                     "domesticated_input": {
-                        "id": "a843aa6880d39864",
+                        "id": "2ff5b0f6b4cfbb73",
                         "src": "hdca"
                     },
                     "topology": "circular"
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpulb7kecp/files/4/d/6/dataset_4d664c21-0606-48f2-a403-c970eada5469.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpulb7kecp/files/b/f/7/dataset_bf78af79-2d13-4fd5-8858-a0fcf0527125.dat,/tmp/tmpulb7kecp/files/6/c/f/dataset_6cf6f59f-3cee-4539-85e2-0b5786b42a8a.dat,/tmp/tmpulb7kecp/files/8/c/1/dataset_8c1a4509-f793-4b1a-9fc2-599b836e6d1e.dat,/tmp/tmpulb7kecp/files/3/8/1/dataset_3818afb4-1184-43b1-aa48-13efabb7ecc8.dat,/tmp/tmpulb7kecp/files/9/0/e/dataset_90e377b6-c53e-4277-8c54-c361769ee52f.dat,/tmp/tmpulb7kecp/files/4/5/9/dataset_4594442a-8d2b-4f97-a280-8deb7915da9c.dat,/tmp/tmpulb7kecp/files/6/e/9/dataset_6e9767bf-085d-48d0-9ad3-596e435224f3.dat,/tmp/tmpulb7kecp/files/1/4/b/dataset_14bd369b-8410-484e-8402-33aac9998b84.dat,/tmp/tmpulb7kecp/files/1/1/8/dataset_1180d189-8f49-4811-8e79-957c7bf319e4.dat,/tmp/tmpulb7kecp/files/4/9/1/dataset_49140292-5bb2-4b2e-bf02-87402741d120.dat,/tmp/tmpulb7kecp/files/b/4/2/dataset_b4278d16-d56d-4cbf-8fc6-100f10a5a142.dat,/tmp/tmpulb7kecp/files/1/8/0/dataset_18021752-a186-4b63-ba68-b56da64c7e9a.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpulb7kecp/files/b/f/7/dataset_bf78af79-2d13-4fd5-8858-a0fcf0527125.dat:part_A.gb,/tmp/tmpulb7kecp/files/6/c/f/dataset_6cf6f59f-3cee-4539-85e2-0b5786b42a8a.dat:part_B.gb,/tmp/tmpulb7kecp/files/8/c/1/dataset_8c1a4509-f793-4b1a-9fc2-599b836e6d1e.dat:part_C.gb,/tmp/tmpulb7kecp/files/3/8/1/dataset_3818afb4-1184-43b1-aa48-13efabb7ecc8.dat:part_D.gb,/tmp/tmpulb7kecp/files/9/0/e/dataset_90e377b6-c53e-4277-8c54-c361769ee52f.dat:part_E.gb,/tmp/tmpulb7kecp/files/4/5/9/dataset_4594442a-8d2b-4f97-a280-8deb7915da9c.dat:part_F.gb,/tmp/tmpulb7kecp/files/6/e/9/dataset_6e9767bf-085d-48d0-9ad3-596e435224f3.dat:part_G.gb,/tmp/tmpulb7kecp/files/1/4/b/dataset_14bd369b-8410-484e-8402-33aac9998b84.dat:part_H.gb,/tmp/tmpulb7kecp/files/1/1/8/dataset_1180d189-8f49-4811-8e79-957c7bf319e4.dat:part_I.gb,/tmp/tmpulb7kecp/files/4/9/1/dataset_49140292-5bb2-4b2e-bf02-87402741d120.dat:part_J.gb,/tmp/tmpulb7kecp/files/b/4/2/dataset_b4278d16-d56d-4cbf-8fc6-100f10a5a142.dat:part_K.gb,/tmp/tmpulb7kecp/files/1/8/0/dataset_18021752-a186-4b63-ba68-b56da64c7e9a.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/tmpulb7kecp/job_working_directory/000/63/outputs/dataset_5e972ac3-a1c0-48c4-9db8-648343937891.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmp_ibkdcj0/files/5/0/4/dataset_5042213c-8bb6-48e0-9501-070e55a9a8c0.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmp_ibkdcj0/files/d/d/8/dataset_dd8d9744-d7f0-46ae-b26f-de961e3f5033.dat,/tmp/tmp_ibkdcj0/files/a/a/6/dataset_aa64d9f2-f351-4776-aab6-648a5fa5f6da.dat,/tmp/tmp_ibkdcj0/files/1/d/b/dataset_1dbca58c-bd12-48c7-bbfe-49ef8801f8c3.dat,/tmp/tmp_ibkdcj0/files/d/3/9/dataset_d396d7df-8e9d-441b-b04e-abaaa0c90a7f.dat,/tmp/tmp_ibkdcj0/files/4/1/3/dataset_4130ddb4-6eb6-4fa1-bd21-33ea63dc4f2a.dat,/tmp/tmp_ibkdcj0/files/2/e/9/dataset_2e907739-181d-44bc-8bc4-35d252e00535.dat,/tmp/tmp_ibkdcj0/files/9/d/3/dataset_9d3053e2-630d-4fba-9b08-09f59013ab96.dat,/tmp/tmp_ibkdcj0/files/2/6/3/dataset_26364877-f482-4b4d-8346-61a2f50f1ccf.dat,/tmp/tmp_ibkdcj0/files/6/f/6/dataset_6f64f828-be8e-4e72-a940-87396256fe3f.dat,/tmp/tmp_ibkdcj0/files/d/2/4/dataset_d2492f3b-8ea9-40e7-8bda-a15b506a22ac.dat,/tmp/tmp_ibkdcj0/files/3/a/8/dataset_3a857675-027c-4b28-bf69-7591db569213.dat,/tmp/tmp_ibkdcj0/files/2/6/d/dataset_26df2c50-4cbe-45f5-ba07-be8fb89cfb7c.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmp_ibkdcj0/files/d/d/8/dataset_dd8d9744-d7f0-46ae-b26f-de961e3f5033.dat:part_A.gb,/tmp/tmp_ibkdcj0/files/a/a/6/dataset_aa64d9f2-f351-4776-aab6-648a5fa5f6da.dat:part_B.gb,/tmp/tmp_ibkdcj0/files/1/d/b/dataset_1dbca58c-bd12-48c7-bbfe-49ef8801f8c3.dat:part_C.gb,/tmp/tmp_ibkdcj0/files/d/3/9/dataset_d396d7df-8e9d-441b-b04e-abaaa0c90a7f.dat:part_D.gb,/tmp/tmp_ibkdcj0/files/4/1/3/dataset_4130ddb4-6eb6-4fa1-bd21-33ea63dc4f2a.dat:part_E.gb,/tmp/tmp_ibkdcj0/files/2/e/9/dataset_2e907739-181d-44bc-8bc4-35d252e00535.dat:part_F.gb,/tmp/tmp_ibkdcj0/files/9/d/3/dataset_9d3053e2-630d-4fba-9b08-09f59013ab96.dat:part_G.gb,/tmp/tmp_ibkdcj0/files/2/6/3/dataset_26364877-f482-4b4d-8346-61a2f50f1ccf.dat:part_H.gb,/tmp/tmp_ibkdcj0/files/6/f/6/dataset_6f64f828-be8e-4e72-a940-87396256fe3f.dat:part_I.gb,/tmp/tmp_ibkdcj0/files/d/2/4/dataset_d2492f3b-8ea9-40e7-8bda-a15b506a22ac.dat:part_J.gb,/tmp/tmp_ibkdcj0/files/3/a/8/dataset_3a857675-027c-4b28-bf69-7591db569213.dat:part_K.gb,/tmp/tmp_ibkdcj0/files/2/6/d/dataset_26df2c50-4cbe-45f5-ba07-be8fb89cfb7c.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/tmp_ibkdcj0/job_working_directory/000/63/outputs/dataset_4e39f3b7-2899-410e-a32f-47270970ae14.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-23T12:16:53.743706",
+                    "create_time": "2025-05-26T08:59:44.629082",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -1841,76 +1841,76 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "182633",
+                    "external_id": "82808",
                     "galaxy_version": "24.2",
                     "handler": null,
-                    "history_id": "cc5b73713462c207",
-                    "id": "54d1dbb833355e05",
+                    "history_id": "d51bf47fbc922335",
+                    "id": "abd47de82fbecc4e",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "a128918b334a087e",
+                            "id": "4b6130eb686f10a7",
                             "src": "hda",
-                            "uuid": "4d664c21-0606-48f2-a403-c970eada5469"
+                            "uuid": "5042213c-8bb6-48e0-9501-070e55a9a8c0"
                         },
                         "domesticated_input1": {
-                            "id": "7b8eadfe954993cc",
+                            "id": "7c76f7472621b5d0",
                             "src": "hda",
-                            "uuid": "bf78af79-2d13-4fd5-8858-a0fcf0527125"
+                            "uuid": "dd8d9744-d7f0-46ae-b26f-de961e3f5033"
                         },
                         "domesticated_input10": {
-                            "id": "eadce10583f118a6",
+                            "id": "9bd6c123148263b6",
                             "src": "hda",
-                            "uuid": "49140292-5bb2-4b2e-bf02-87402741d120"
+                            "uuid": "d2492f3b-8ea9-40e7-8bda-a15b506a22ac"
                         },
                         "domesticated_input11": {
-                            "id": "e9b288c32babea6b",
+                            "id": "5d3d21e362e05995",
                             "src": "hda",
-                            "uuid": "b4278d16-d56d-4cbf-8fc6-100f10a5a142"
+                            "uuid": "3a857675-027c-4b28-bf69-7591db569213"
                         },
                         "domesticated_input12": {
-                            "id": "e756934e84f08dfa",
+                            "id": "043b0e9e9cf8c91c",
                             "src": "hda",
-                            "uuid": "18021752-a186-4b63-ba68-b56da64c7e9a"
+                            "uuid": "26df2c50-4cbe-45f5-ba07-be8fb89cfb7c"
                         },
                         "domesticated_input2": {
-                            "id": "8437c985b2f2555c",
+                            "id": "11e2d0eceb639139",
                             "src": "hda",
-                            "uuid": "6cf6f59f-3cee-4539-85e2-0b5786b42a8a"
+                            "uuid": "aa64d9f2-f351-4776-aab6-648a5fa5f6da"
                         },
                         "domesticated_input3": {
-                            "id": "15bf1fabbf77770e",
+                            "id": "991f793af87d39c4",
                             "src": "hda",
-                            "uuid": "8c1a4509-f793-4b1a-9fc2-599b836e6d1e"
+                            "uuid": "1dbca58c-bd12-48c7-bbfe-49ef8801f8c3"
                         },
                         "domesticated_input4": {
-                            "id": "0892281234ec1188",
+                            "id": "3429ba0772b9ca69",
                             "src": "hda",
-                            "uuid": "3818afb4-1184-43b1-aa48-13efabb7ecc8"
+                            "uuid": "d396d7df-8e9d-441b-b04e-abaaa0c90a7f"
                         },
                         "domesticated_input5": {
-                            "id": "d9fb2dd412cb550f",
+                            "id": "c04c164ed0056d43",
                             "src": "hda",
-                            "uuid": "90e377b6-c53e-4277-8c54-c361769ee52f"
+                            "uuid": "4130ddb4-6eb6-4fa1-bd21-33ea63dc4f2a"
                         },
                         "domesticated_input6": {
-                            "id": "5448650c849fc11a",
+                            "id": "b3ed12fa60bc840b",
                             "src": "hda",
-                            "uuid": "4594442a-8d2b-4f97-a280-8deb7915da9c"
+                            "uuid": "2e907739-181d-44bc-8bc4-35d252e00535"
                         },
                         "domesticated_input7": {
-                            "id": "2f883fbbd5083370",
+                            "id": "5406c597edc1a692",
                             "src": "hda",
-                            "uuid": "6e9767bf-085d-48d0-9ad3-596e435224f3"
+                            "uuid": "9d3053e2-630d-4fba-9b08-09f59013ab96"
                         },
                         "domesticated_input8": {
-                            "id": "24d06ab2f2a935eb",
+                            "id": "780d322efdca3fcd",
                             "src": "hda",
-                            "uuid": "14bd369b-8410-484e-8402-33aac9998b84"
+                            "uuid": "26364877-f482-4b4d-8346-61a2f50f1ccf"
                         },
                         "domesticated_input9": {
-                            "id": "e5bc5fc4cffa052a",
+                            "id": "951610fc65ac475f",
                             "src": "hda",
-                            "uuid": "1180d189-8f49-4811-8e79-957c7bf319e4"
+                            "uuid": "6f64f828-be8e-4e72-a940-87396256fe3f"
                         }
                     },
                     "job_messages": [],
@@ -1921,60 +1921,60 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "03b30db777cad5e1",
+                            "id": "be5466d8eb2c2229",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "__new_primary_file_construct_gb|construct_1__": {
-                            "id": "a0ee6696f34ccc35",
+                            "id": "6d4b50576bf02b31",
                             "src": "hda",
-                            "uuid": "f59b0877-3920-4bb4-b968-f7ae54e3bec8"
+                            "uuid": "d4f04f5f-16a6-4675-a892-fa6d05156592"
                         },
                         "__new_primary_file_construct_gb|construct_2__": {
-                            "id": "f468d17a6d2490da",
+                            "id": "550e95bf5471ae1d",
                             "src": "hda",
-                            "uuid": "b52ac80b-d674-4da6-8ff1-24842aac56e9"
+                            "uuid": "845f0e19-1541-481b-a386-47135e8ebdf1"
                         },
                         "__new_primary_file_construct_gb|construct_3__": {
-                            "id": "5d3f1c2fed018315",
+                            "id": "359048b3278e74c9",
                             "src": "hda",
-                            "uuid": "400e46dc-92e4-418b-8f71-30a8ce7e1de7"
+                            "uuid": "420b6912-da3c-4b75-ae88-b73f0c005864"
                         },
                         "__new_primary_file_construct_gb|construct_4__": {
-                            "id": "b40e1d6349e0d9ca",
+                            "id": "7a3e4925ca1f5f1d",
                             "src": "hda",
-                            "uuid": "03c7f474-9652-4786-954f-bd38c4f6b887"
+                            "uuid": "5b639734-e44b-415c-b347-5a702df97945"
                         },
                         "output_zip": {
-                            "id": "652ce7490abe3672",
+                            "id": "40a6167ab839cf08",
                             "src": "hda",
-                            "uuid": "5e972ac3-a1c0-48c4-9db8-648343937891"
+                            "uuid": "4e39f3b7-2899-410e-a32f-47270970ae14"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
                         "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
                         "assembly_plan_name": "\"Type2sRestrictionAssembly\"",
-                        "chromInfo": "\"/tmp/tmpulb7kecp/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmp_ibkdcj0/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
                         "domesticated_input": "{\"values\": [{\"id\": 14, \"src\": \"hdca\"}]}",
                         "genbank_files": null,
                         "topology": "\"circular\""
                     },
                     "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.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.79it/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.42it/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",
                     "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.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.79it/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.42it/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_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n",
-                    "update_time": "2025-05-23T12:17:07.008117",
+                    "update_time": "2025-05-26T08:59:57.832603",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "8094a24bdbd328fd"
+                    "user_id": "cb6d3fbb91be6861"
                 },
                 "status": "success",
                 "test_index": 6,
-                "time_seconds": 53.04504728317261,
+                "time_seconds": 53.99832892417908,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
--- a/test-data/2-step_golden_gate_parts/2-step-golden_gate_plan.csv	Fri May 23 12:53:50 2025 +0000
+++ b/test-data/2-step_golden_gate_parts/2-step-golden_gate_plan.csv	Mon May 26 09:23:51 2025 +0000
@@ -1,3 +1,4 @@
+ID,part1,part2,part3,part4,part5,part6
 construct_3,construct_1,part_L,part_J,part_K,,
 construct_4,construct_2,part_L,part_J,part_K,,
 construct_1,part_A,part_B,part_C,part_D,part_E,part_F
--- a/test-data/BASIC_assembly_dataset/basic_assembly.csv	Fri May 23 12:53:50 2025 +0000
+++ b/test-data/BASIC_assembly_dataset/basic_assembly.csv	Mon May 26 09:23:51 2025 +0000
@@ -1,3 +1,4 @@
+ID,parts,,,,,,,,,,,
 L2RBS-1P,L2RBS-1P_fwd,L2RBS-1P_adapter,,,,,,,,,,
 LMA-S,LMA-S_fwd,LMA-S_adapter,,,,,,,,,,
 L1RBS-xS,L1RBS-xS_fwd,L1RBS-xS_adapter,,,,,,,,,,
--- a/test-data/lcr_assembly_dataset/assembly_plan.csv	Fri May 23 12:53:50 2025 +0000
+++ b/test-data/lcr_assembly_dataset/assembly_plan.csv	Mon May 26 09:23:51 2025 +0000
@@ -1,2 +1,3 @@
+construct,parts,,,,,,,,,,,,,
 Construct1,RFP_GFP_BO_10232,oligo_indicator: _BO_,RFP_GFP_BO_10234,RFP_GFP_BO_10236,RFP_GFP_BO_10244,RFP_GFP_BO_10268,RFP_GFP_BO_10281,p1_mRFP1-part1,p2_mRFP1-part2,p3_mRFP1-part3,p4_sfGFP-part1,p5_sfGFP-part2,p6_sfGFP-part3,p7_backbone
 Construct2_flawed,RFP_GFP_BO_10232,RFP_GFP_BO_10233,RFP_GFP_BO_10244,RFP_GFP_BO_10268,RFP_GFP_BO_10281,p1_mRFP1-part1,p2_mRFP1-part2,p3_mRFP1-part3,p4_sfGFP-part1,p5_sfGFP-part2,p6_sfGFP-part3,p7_backbone,,