changeset 14:16ccb36aa8e3 draft

planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/DnaCauldron/tree/master commit 6ae809b563b40bcdb6be2e74fe2a84ddad5484ae
author tduigou
date Mon, 26 May 2025 11:29:13 +0000
parents 7d1778f5e164
children 074a76e84b80
files cloning_similation.xml cloning_simulation.py output.html output.json
diffstat 4 files changed, 376 insertions(+), 370 deletions(-) [+]
line wrap: on
line diff
--- a/cloning_similation.xml	Mon May 26 10:10:46 2025 +0000
+++ b/cloning_similation.xml	Mon May 26 11:29:13 2025 +0000
@@ -40,7 +40,7 @@
             --output_simulation 'output_zip.zip'
             --enzyme '$adv.enzyme'
             --topology '$topology' &&
-        cp 'output_zip.zip' '$output_zip' && echo DEBUG && ls 'outdir_gb'
+        cp 'output_zip.zip' '$output_zip'
     ]]></command>
     <inputs>
         <param name="genbank_files" type="data_collection" collection_type="list" format="genbank,fasta" label="GenBank and/or Fasta File(s)" optional="True"/>
--- a/cloning_simulation.py	Mon May 26 10:10:46 2025 +0000
+++ b/cloning_simulation.py	Mon May 26 11:29:13 2025 +0000
@@ -81,7 +81,6 @@
     
     new_csvname = "assambly.csv"
     os.rename(csv_file, new_csvname)
-    print (df)
 
     assembly_plan = dnacauldron.AssemblyPlan.from_spreadsheet(
         name="auto_from_filename",
--- a/output.html	Mon May 26 10:10:46 2025 +0000
+++ b/output.html	Mon May 26 11:29:13 2025 +0000
@@ -285,7 +285,7 @@
         var md = window.markdownit({
           html: true,
         });
-        target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDg1LjcxNDI4NTcxNDI4NTcxJSIgYXJpYS12YWx1ZW5vdz0iNiIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iNyIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSI2IFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjciIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAxNC4yODU3MTQyODU3MTQyODUlIiBhcmlhLXZhbHVlbm93PSIxIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSI3IiB0aXRsZT0iMSBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDcgfAp8IFBhc3NlZCAgICAgfCA2IHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDEgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyBvcGVuPjxzdW1tYXJ5PkZhaWxlZCBUZXN0czwvc3VtbWFyeT4KCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LXJlZCI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LXJlZCI+JiMxMDA2MDsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgMSk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKlByb2JsZW1zKio6CiAgICAqIGBgYAogICAgICBKb2IgaW4gZXJyb3Igc3RhdGUuLiB0b29sX2lkOiBjbG9uaW5nX3NpbXVsYXRpb24sIGV4aXRfY29kZTogMSwgc3RkZXJyOiAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAgIEZpbGUgIi9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weSIsIGxpbmUgMTcxLCBpbiA8bW9kdWxlPgogICAgICAgICAgY2xvbmluZ19zaW11bGF0aW9uKAogICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+XgogICAgICAgICAgICAgIGFyZ3MucGFydHNfZmlsZXMsIGFyZ3MuZG9tZXN0aWNhdGVkX3NlcSwKICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCiAgICAgICAgICAuLi48MyBsaW5lcz4uLi4KICAgICAgICAgICAgICBhcmdzLm91dHB1dF9zaW11bGF0aW9uLCBhcmdzLmVuenltZSwgYXJncy5vdXRkaXJfZ2IKICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KICAgICAgICAgICkKICAgICAgICAgIF4KICAgICAgICBGaWxlICIvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHkiLCBsaW5lIDk3LCBpbiBjbG9uaW5nX3NpbXVsYXRpb24KICAgICAgICAgIHNpbXVsYXRpb24gPSBhc3NlbWJseV9wbGFuLnNpbXVsYXRlKHNlcXVlbmNlX3JlcG9zaXRvcnk9cmVwb3NpdG9yeSkKICAgICAgICBGaWxlICIvaG9tZS9ya2hhbGVkL21pbmljb25kYTMvZW52cy9tdWxsZWQtdjEtNmMyYjllYmI0NzVhMzdiZDBkOWNhNzg1NzQ3NGU4NTc0NzE5ZTU0NmRlODgyODEwZjc4MjhmZTU5OTNhOGFkZi9saWIvcHl0aG9uMy4xMy9zaXRlLXBhY2thZ2VzL2RuYWNhdWxkcm9uL0Fzc2VtYmx5UGxhbi9Bc3NlbWJseVBsYW4ucHkiLCBsaW5lIDI1MSwgaW4gc2ltdWxhdGUKICAgICAgICAgIHNpbXVsYXRpb25fcmVzdWx0ID0gYXNzZW1ibHkuc2ltdWxhdGUoc2VxdWVuY2VfcmVwb3NpdG9yeSkKICAgICAgICBGaWxlICIvaG9tZS9ya2hhbGVkL21pbmljb25kYTMvZW52cy9tdWxsZWQtdjEtNmMyYjllYmI0NzVhMzdiZDBkOWNhNzg1NzQ3NGU4NTc0NzE5ZTU0NmRlODgyODEwZjc4MjhmZTU5OTNhOGFkZi9saWIvcHl0aG9uMy4xMy9zaXRlLXBhY2thZ2VzL2RuYWNhdWxkcm9uL0Fzc2VtYmx5L2J1aWx0aW5fYXNzZW1ibHlfY2xhc3Nlcy9UeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5LnB5IiwgbGluZSAxODEsIGluIHNpbXVsYXRlCiAgICAgICAgICByZWNvcmRzID0gc2VxdWVuY2VfcmVwb3NpdG9yeS5nZXRfcmVjb3JkcyhzZWxmLnBhcnRzKQogICAgICAgIEZpbGUgIi9ob21lL3JraGFsZWQvbWluaWNvbmRhMy9lbnZzL211bGxlZC12MS02YzJiOWViYjQ3NWEzN2JkMGQ5Y2E3ODU3NDc0ZTg1NzQ3MTllNTQ2ZGU4ODI4MTBmNzgyOGZlNTk5M2E4YWRmL2xpYi9weXRob24zLjEzL3NpdGUtcGFja2FnZXMvZG5hY2F1bGRyb24vU2VxdWVuY2VSZXBvc2l0b3J5LnB5IiwgbGluZSAxMjAsIGluIGdldF9yZWNvcmRzCiAgICAgICAgICByYWlzZSBOb3RJblJlcG9zaXRvcnlFcnJvcihub3RfaW5fcmVwb3NpdG9yeSwgcmVwb3NpdG9yeT1zZWxmKQogICAgICBkbmFjYXVsZHJvbi5TZXF1ZW5jZVJlcG9zaXRvcnkuTm90SW5SZXBvc2l0b3J5RXJyb3I6IFBhcnRzIG5vdCBmb3VuZCBpbiByZXBvOiBwYXJ0MSwgcGFydDIsIHBhcnQzLCBwYXJ0NCwgcGFydDUsIHBhcnQ2CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgLgogICAgICBgYGAKICAgICogYGBgCiAgICAgIEpvYiBpbiBlcnJvciBzdGF0ZS4uIHRvb2xfaWQ6IGNsb25pbmdfc2ltdWxhdGlvbiwgZXhpdF9jb2RlOiAxLCBzdGRlcnI6IAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzUgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV1UcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgICAgRmlsZSAiL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5IiwgbGluZSAxNzEsIGluIDxtb2R1bGU+CiAgICAgICAgICBjbG9uaW5nX3NpbXVsYXRpb24oCiAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5eCiAgICAgICAgICAgICAgYXJncy5wYXJ0c19maWxlcywgYXJncy5kb21lc3RpY2F0ZWRfc2VxLAogICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KICAgICAgICAgIC4uLjwzIGxpbmVzPi4uLgogICAgICAgICAgICAgIGFyZ3Mub3V0cHV0X3NpbXVsYXRpb24sIGFyZ3MuZW56eW1lLCBhcmdzLm91dGRpcl9nYgogICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgogICAgICAgICAgKQogICAgICAgICAgXgogICAgICAgIEZpbGUgIi9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weSIsIGxpbmUgOTcsIGluIGNsb25pbmdfc2ltdWxhdGlvbgogICAgICAgICAgc2ltdWxhdGlvbiA9IGFzc2VtYmx5X3BsYW4uc2ltdWxhdGUoc2VxdWVuY2VfcmVwb3NpdG9yeT1yZXBvc2l0b3J5KQogICAgICAgIEZpbGUgIi9ob21lL3JraGFsZWQvbWluaWNvbmRhMy9lbnZzL211bGxlZC12MS02YzJiOWViYjQ3NWEzN2JkMGQ5Y2E3ODU3NDc0ZTg1NzQ3MTllNTQ2ZGU4ODI4MTBmNzgyOGZlNTk5M2E4YWRmL2xpYi9weXRob24zLjEzL3NpdGUtcGFja2FnZXMvZG5hY2F1bGRyb24vQXNzZW1ibHlQbGFuL0Fzc2VtYmx5UGxhbi5weSIsIGxpbmUgMjUxLCBpbiBzaW11bGF0ZQogICAgICAgICAgc2ltdWxhdGlvbl9yZXN1bHQgPSBhc3NlbWJseS5zaW11bGF0ZShzZXF1ZW5jZV9yZXBvc2l0b3J5KQogICAgICAgIEZpbGUgIi9ob21lL3JraGFsZWQvbWluaWNvbmRhMy9lbnZzL211bGxlZC12MS02YzJiOWViYjQ3NWEzN2JkMGQ5Y2E3ODU3NDc0ZTg1NzQ3MTllNTQ2ZGU4ODI4MTBmNzgyOGZlNTk5M2E4YWRmL2xpYi9weXRob24zLjEzL3NpdGUtcGFja2FnZXMvZG5hY2F1bGRyb24vQXNzZW1ibHkvYnVpbHRpbl9hc3NlbWJseV9jbGFzc2VzL1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHkucHkiLCBsaW5lIDE4MSwgaW4gc2ltdWxhdGUKICAgICAgICAgIHJlY29yZHMgPSBzZXF1ZW5jZV9yZXBvc2l0b3J5LmdldF9yZWNvcmRzKHNlbGYucGFydHMpCiAgICAgICAgRmlsZSAiL2hvbWUvcmtoYWxlZC9taW5pY29uZGEzL2VudnMvbXVsbGVkLXYxLTZjMmI5ZWJiNDc1YTM3YmQwZDljYTc4NTc0NzRlODU3NDcxOWU1NDZkZTg4MjgxMGY3ODI4ZmU1OTkzYThhZGYvbGliL3B5dGhvbjMuMTMvc2l0ZS1wYWNrYWdlcy9kbmFjYXVsZHJvbi9TZXF1ZW5jZVJlcG9zaXRvcnkucHkiLCBsaW5lIDEyMCwgaW4gZ2V0X3JlY29yZHMKICAgICAgICAgIHJhaXNlIE5vdEluUmVwb3NpdG9yeUVycm9yKG5vdF9pbl9yZXBvc2l0b3J5LCByZXBvc2l0b3J5PXNlbGYpCiAgICAgIGRuYWNhdWxkcm9uLlNlcXVlbmNlUmVwb3NpdG9yeS5Ob3RJblJlcG9zaXRvcnlFcnJvcjogUGFydHMgbm90IGZvdW5kIGluIHJlcG86IHBhcnQxLCBwYXJ0MiwgcGFydDMsIHBhcnQ0LCBwYXJ0NSwgcGFydDYKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAuCiAgICAgIGBgYAogICAgKiBgYGAKICAgICAgT3V0cHV0IGNvbGxlY3Rpb24gJ2NvbnN0cnVjdF9nYic6IGV4cGVjdGVkIHRvIGhhdmUgNCBlbGVtZW50cywgYnV0IGl0IGhhZCAwLgogICAgICBgYGAKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8xL2EvMS9kYXRhc2V0XzFhMWVlMzJkLWVlZDctNDdmZC1iNDkxLTRmMDc5OWI0NGE4NS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXB5MnlzdjZ0bi9maWxlcy80LzQvMS9kYXRhc2V0XzQ0MTI5MTkxLTU1MzEtNGNjOS1iMzdiLWZlYzRlM2M2NzdkNS5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy82LzEvZi9kYXRhc2V0XzYxZjVmMTlmLTE0N2ItNDZmZC04OTAwLWE4NTMwZjMxMTgzNS5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy80LzQvMC9kYXRhc2V0XzQ0MGIzNGU3LTQ5MGUtNDliZC05YjI5LTZhZmNhYmU1ZjZmNi5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9hLzMvZi9kYXRhc2V0X2EzZmNhMjEyLWI4ZGMtNDU3OS05MDFjLTYxMmI4MDYyNDFhZi5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy81LzMvOS9kYXRhc2V0XzUzOThmMmNiLTFhMjUtNDVlNS05YmEwLWNkNzlhODhiNmU4OC5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9mLzUvMC9kYXRhc2V0X2Y1MDUyOTNhLTgyMjMtNGRhMi1hMjJjLWFhMjYxZDQ5NTVlYy5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9jLzUvMC9kYXRhc2V0X2M1MGU0YjFmLWM3MmEtNDI3Mi1iMzI0LWUxYzJjN2Q1MDI5My5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8wLzAvZC9kYXRhc2V0XzAwZDc5NTYwLWY5NDQtNGQ4ZS05OGU3LWY1MTY2ODRhNjEwMC5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8zL2QvNS9kYXRhc2V0XzNkNWJiMGZiLWQ2MTAtNDkzOS04ZmM1LTk5OTE3NGZlZTVjYS5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9jLzcvYy9kYXRhc2V0X2M3Y2Y5NmFmLWFiMWMtNDE5OS04MjFmLTViYjViOTQ3NzUyZi5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8wL2EvNS9kYXRhc2V0XzBhNTEzOWU3LTdkODMtNDhmMS1hMWM5LTQ1OGExZTcyNjg1Yy5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9mL2IvMy9kYXRhc2V0X2ZiMzYxZjIyLTAyMGMtNDk3Mi04NjYxLWYxZjU3ZDFhN2FmYS5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvNC80LzEvZGF0YXNldF80NDEyOTE5MS01NTMxLTRjYzktYjM3Yi1mZWM0ZTNjNjc3ZDUuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzYvMS9mL2RhdGFzZXRfNjFmNWYxOWYtMTQ3Yi00NmZkLTg5MDAtYTg1MzBmMzExODM1LmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy80LzQvMC9kYXRhc2V0XzQ0MGIzNGU3LTQ5MGUtNDliZC05YjI5LTZhZmNhYmU1ZjZmNi5kYXQ6cGFydF9DLmdiLC90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvYS8zL2YvZGF0YXNldF9hM2ZjYTIxMi1iOGRjLTQ1NzktOTAxYy02MTJiODA2MjQxYWYuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzUvMy85L2RhdGFzZXRfNTM5OGYyY2ItMWEyNS00NWU1LTliYTAtY2Q3OWE4OGI2ZTg4LmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9mLzUvMC9kYXRhc2V0X2Y1MDUyOTNhLTgyMjMtNGRhMi1hMjJjLWFhMjYxZDQ5NTVlYy5kYXQ6cGFydF9GLmdiLC90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvYy81LzAvZGF0YXNldF9jNTBlNGIxZi1jNzJhLTQyNzItYjMyNC1lMWMyYzdkNTAyOTMuZGF0OnBhcnRfRy5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzAvMC9kL2RhdGFzZXRfMDBkNzk1NjAtZjk0NC00ZDhlLTk4ZTctZjUxNjY4NGE2MTAwLmRhdDpwYXJ0X0guZ2IsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8zL2QvNS9kYXRhc2V0XzNkNWJiMGZiLWQ2MTAtNDkzOS04ZmM1LTk5OTE3NGZlZTVjYS5kYXQ6cGFydF9JLmdiLC90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvYy83L2MvZGF0YXNldF9jN2NmOTZhZi1hYjFjLTQxOTktODIxZi01YmI1Yjk0Nzc1MmYuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzAvYS81L2RhdGFzZXRfMGE1MTM5ZTctN2Q4My00OGYxLWExYzktNDU4YTFlNzI2ODVjLmRhdDpwYXJ0X0suZ2IsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9mL2IvMy9kYXRhc2V0X2ZiMzYxZjIyLTAyMGMtNDk3Mi04NjYxLWYxZjU3ZDFhN2FmYS5kYXQ6cGFydF9MLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcHkyeXN2NnRuL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMTQvb3V0cHV0cy9kYXRhc2V0X2FjYjA2NGQ3LTI3ODEtNDZmZS05OGRmLTcxNmZlZTAyNGM4ZC5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMQogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNSBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXVRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAgICBGaWxlICIvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHkiLCBsaW5lIDE3MSwgaW4gPG1vZHVsZT4KICAgICAgICAgIGNsb25pbmdfc2ltdWxhdGlvbigKICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fl4KICAgICAgICAgICAgICBhcmdzLnBhcnRzX2ZpbGVzLCBhcmdzLmRvbWVzdGljYXRlZF9zZXEsCiAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgogICAgICAgICAgLi4uPDMgbGluZXM+Li4uCiAgICAgICAgICAgICAgYXJncy5vdXRwdXRfc2ltdWxhdGlvbiwgYXJncy5lbnp5bWUsIGFyZ3Mub3V0ZGlyX2diCiAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCiAgICAgICAgICApCiAgICAgICAgICBeCiAgICAgICAgRmlsZSAiL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5IiwgbGluZSA5NywgaW4gY2xvbmluZ19zaW11bGF0aW9uCiAgICAgICAgICBzaW11bGF0aW9uID0gYXNzZW1ibHlfcGxhbi5zaW11bGF0ZShzZXF1ZW5jZV9yZXBvc2l0b3J5PXJlcG9zaXRvcnkpCiAgICAgICAgRmlsZSAiL2hvbWUvcmtoYWxlZC9taW5pY29uZGEzL2VudnMvbXVsbGVkLXYxLTZjMmI5ZWJiNDc1YTM3YmQwZDljYTc4NTc0NzRlODU3NDcxOWU1NDZkZTg4MjgxMGY3ODI4ZmU1OTkzYThhZGYvbGliL3B5dGhvbjMuMTMvc2l0ZS1wYWNrYWdlcy9kbmFjYXVsZHJvbi9Bc3NlbWJseVBsYW4vQXNzZW1ibHlQbGFuLnB5IiwgbGluZSAyNTEsIGluIHNpbXVsYXRlCiAgICAgICAgICBzaW11bGF0aW9uX3Jlc3VsdCA9IGFzc2VtYmx5LnNpbXVsYXRlKHNlcXVlbmNlX3JlcG9zaXRvcnkpCiAgICAgICAgRmlsZSAiL2hvbWUvcmtoYWxlZC9taW5pY29uZGEzL2VudnMvbXVsbGVkLXYxLTZjMmI5ZWJiNDc1YTM3YmQwZDljYTc4NTc0NzRlODU3NDcxOWU1NDZkZTg4MjgxMGY3ODI4ZmU1OTkzYThhZGYvbGliL3B5dGhvbjMuMTMvc2l0ZS1wYWNrYWdlcy9kbmFjYXVsZHJvbi9Bc3NlbWJseS9idWlsdGluX2Fzc2VtYmx5X2NsYXNzZXMvVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseS5weSIsIGxpbmUgMTgxLCBpbiBzaW11bGF0ZQogICAgICAgICAgcmVjb3JkcyA9IHNlcXVlbmNlX3JlcG9zaXRvcnkuZ2V0X3JlY29yZHMoc2VsZi5wYXJ0cykKICAgICAgICBGaWxlICIvaG9tZS9ya2hhbGVkL21pbmljb25kYTMvZW52cy9tdWxsZWQtdjEtNmMyYjllYmI0NzVhMzdiZDBkOWNhNzg1NzQ3NGU4NTc0NzE5ZTU0NmRlODgyODEwZjc4MjhmZTU5OTNhOGFkZi9saWIvcHl0aG9uMy4xMy9zaXRlLXBhY2thZ2VzL2RuYWNhdWxkcm9uL1NlcXVlbmNlUmVwb3NpdG9yeS5weSIsIGxpbmUgMTIwLCBpbiBnZXRfcmVjb3JkcwogICAgICAgICAgcmFpc2UgTm90SW5SZXBvc2l0b3J5RXJyb3Iobm90X2luX3JlcG9zaXRvcnksIHJlcG9zaXRvcnk9c2VsZikKICAgICAgZG5hY2F1bGRyb24uU2VxdWVuY2VSZXBvc2l0b3J5Lk5vdEluUmVwb3NpdG9yeUVycm9yOiBQYXJ0cyBub3QgZm91bmQgaW4gcmVwbzogcGFydDEsIHBhcnQyLCBwYXJ0MywgcGFydDQsIHBhcnQ1LCBwYXJ0NgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICAgICAgIDIgICAgICAgMyAgICAgICA0ICAgICAgIDUgICAgICAgNgogICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIElEICAgICAgICAgICAgICAgICBwYXJ0MSAgIHBhcnQyICAgcGFydDMgICBwYXJ0NCAgIHBhcnQ1ICAgcGFydDYKICAgICAgY29uc3RydWN0XzMgIGNvbnN0cnVjdF8xICBwYXJ0X0wgIHBhcnRfSiAgcGFydF9LICAgICBOYU4gICAgIE5hTgogICAgICBjb25zdHJ1Y3RfNCAgY29uc3RydWN0XzIgIHBhcnRfTCAgcGFydF9KICBwYXJ0X0sgICAgIE5hTiAgICAgTmFOCiAgICAgIGNvbnN0cnVjdF8xICAgICAgIHBhcnRfQSAgcGFydF9CICBwYXJ0X0MgIHBhcnRfRCAgcGFydF9FICBwYXJ0X0YKICAgICAgY29uc3RydWN0XzIgICAgICAgcGFydF9BICBwYXJ0X0cgIHBhcnRfSCAgcGFydF9JICBwYXJ0X0YgICAgIE5hTgogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXB5MnlzdjZ0bi9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCjwvZGV0YWlscz4KPGRldGFpbHMgPjxzdW1tYXJ5PlBhc3NlZCBUZXN0czwvc3VtbWFyeT4KCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgMik8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvNi9lL2IvZGF0YXNldF82ZWIyMGRlMy02NjJjLTQ0MjgtOTA3Zi0yOWNiZTBhNWNjMjAuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvYi82L2YvZGF0YXNldF9iNmZlMTQxZC1mMjdkLTQ3NWQtOTVmZC01MDFlMDMyZjBjM2IuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdHaWJzb25Bc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9iLzYvZi9kYXRhc2V0X2I2ZmUxNDFkLWYyN2QtNDc1ZC05NWZkLTUwMWUwMzJmMGMzYi5kYXQ6Z2lic29uX3NlcXVlbmNlcy5mYScgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXB5MnlzdjZ0bi9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzE3L291dHB1dHMvZGF0YXNldF80MWQ4NTNiNC1hZGI2LTQ2MDUtYmJhZi1kNzE3OGI5NjJkOTIuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzUgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzUgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA0MCV84paI4paI4paI4paIICAgICAgfCAyLzUgWzAwOjAwPDAwOjAwLCAgNC4zMml0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDYwJXzilojilojilojilojilojiloggICAgfCAzLzUgWzAwOjAwPDAwOjAwLCAgNC4yNGl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDgwJXzilojilojilojilojilojilojilojiloggIHwgNC81IFswMDowMDwwMDowMCwgIDQuMzVpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA1LzUgWzAwOjAxPDAwOjAwLCAgMy42M2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgICAgICAgICAgICAgICAgICAgIDEgICAgICAgMiAgICAgICAzICAgICAgICA0ICAgICAgICA1CiAgICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGNvbnN0cnVjdCAgICAgcGFydHMgICAgIE5hTiAgICAgTmFOICAgICAgTmFOICAgICAgTmFOCiAgICAgIGNvbnN0cnVjdF8xICBGcmFnXzEgIEZyYWdfMiAgRnJhZ18zICAgRnJhZ180ICAgRnJhZ181CiAgICAgIGNvbnN0cnVjdF8yICBGcmFnXzEgIEZyYWdfMiAgRnJhZ18zICBGcmFnXzRiICAgRnJhZ181CiAgICAgIGNvbnN0cnVjdF8zICBGcmFnXzEgIEZyYWdfMiAgRnJhZ18zICBGcmFnXzRjICBGcmFnXzViCiAgICAgIGNvbnN0cnVjdF80ICBGcmFnXzEgIEZyYWdfMiAgRnJhZ18zICAgRnJhZ180ICAgICAgTmFOCiAgICAgIGNvbnN0cnVjdF81ICBGcmFnXzEgIEZyYWdfMiAgRnJhZ18zICAgRnJhZ180ICBGcmFnXzRiCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDIsICd2YWxpZF9hc3NlbWJsaWVzJzogM30KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMywgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJHaWJzb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1weTJ5c3Y2dG4vZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDMpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzQvNi85L2RhdGFzZXRfNDY5ZGYwNDgtMTYwOC00ZTI4LWE4YzMtNTc2NDMzYzcyYzdmLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzEvOC85L2RhdGFzZXRfMTg5NTJjZWYtYzcxNS00Nzc2LTlmNTMtNjkxNTZkYTg5ZDAxLmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzgvMS8zL2RhdGFzZXRfODEzMjIwNTYtNjllYi00ZGNkLTg4ZWUtNmNiNzhmZjYxN2RiLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnTGlnYXNlQ3ljbGluZ1JlYWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvMS84LzkvZGF0YXNldF8xODk1MmNlZi1jNzE1LTQ3NzYtOWY1My02OTE1NmRhODlkMDEuZGF0OlJGUF9HRlBfcGxhc21pZF9CT3MuZmEsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy84LzEvMy9kYXRhc2V0XzgxMzIyMDU2LTY5ZWItNGRjZC04OGVlLTZjYjc4ZmY2MTdkYi5kYXQ6UkZQX0dGUF9wbGFzbWlkX3BhcnRzLmZhJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcHkyeXN2NnRuL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMjEvb3V0cHV0cy9kYXRhc2V0X2QyZGY2MTkwLTk0NjItNDFhYS05MmQyLWQ0YTVjMWE2MDVkMy5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMiBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMiBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDIvMiBbMDA6MDA8MDA6MDAsICAyLjI3aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAgIC4uLiAgICAgICAgICAgMTQKICAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLiAgICAgICAgICAgICAKICAgICAgQ29uc3RydWN0MSAgICAgICAgIFJGUF9HRlBfQk9fMTAyMzIgIC4uLiAgcDdfYmFja2JvbmUKICAgICAgQ29uc3RydWN0Ml9mbGF3ZWQgIFJGUF9HRlBfQk9fMTAyMzIgIC4uLiAgICAgICAgICBOYU4KCiAgICAgIFsyIHJvd3MgeCAxNCBjb2x1bW5zXQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAyLCAndmFsaWRfYXNzZW1ibGllcyc6IDB9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDUsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiTGlnYXNlQ3ljbGluZ1JlYWN0aW9uQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcHkyeXN2NnRuL2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyA0KTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8xLzEvYi9kYXRhc2V0XzExYjE5MDgwLWQyMWYtNGEzZS1hNTE2LTc3YmI3ZjFlYjhmZi5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9jLzEvMy9kYXRhc2V0X2MxM2MzYmI1LTc0ZjMtNDliNC05NzllLTA4MDY0Y2JjZDk2ZS5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8yLzIvMC9kYXRhc2V0XzIyMGQ4Y2UzLTY1YTItNDg4MC05OTI0LWU0MWY2ODVlMTM4Ni5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8yLzYvNC9kYXRhc2V0XzI2NGQ3ZTk1LTgwN2QtNDVhYS1hZGE3LTI0NGU3ODk2ZGQ5NS5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy83L2UvZS9kYXRhc2V0XzdlZWRlODFjLWE3OTYtNDE4OS05NGRmLTgyMjQ1NzYzZTE5Zi5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9jLzkvNS9kYXRhc2V0X2M5NTM3OTM4LWRiMGQtNGQwNy05ZWVlLTJjZmVlYzUwYTkwZC5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0JBU0lDQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvYy8xLzMvZGF0YXNldF9jMTNjM2JiNS03NGYzLTQ5YjQtOTc5ZS0wODA2NGNiY2Q5NmUuZGF0OkdGUC5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzIvMi8wL2RhdGFzZXRfMjIwZDhjZTMtNjVhMi00ODgwLTk5MjQtZTQxZjY4NWUxMzg2LmRhdDpwMTVBX2thbi5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzIvNi80L2RhdGFzZXRfMjY0ZDdlOTUtODA3ZC00NWFhLWFkYTctMjQ0ZTc4OTZkZDk1LmRhdDpwcm9tb3Rlci5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzcvZS9lL2RhdGFzZXRfN2VlZGU4MWMtYTc5Ni00MTg5LTk0ZGYtODIyNDU3NjNlMTlmLmRhdDpSRlAuZ2IsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9jLzkvNS9kYXRhc2V0X2M5NTM3OTM4LWRiMGQtNGQwNy05ZWVlLTJjZmVlYzUwYTkwZC5kYXQ6b2xpZ29zLmZhJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcHkyeXN2NnRuL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMjgvb3V0cHV0cy9kYXRhc2V0X2IwNTVlZGM5LWVhNzItNDZjYS04OTcxLTM1MmM0NmRiMzg3ZS5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMTAgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC84IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNjIlfOKWiOKWiOKWiOKWiOKWiOKWiOKWjiAgIHwgNS84IFswMDowMDwwMDowMCwgNDcuNTRpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAzICAgLi4uICAgICAxMCAgICAgICAgMTEgICAgIDEyCiAgICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgTDJSQlMtMVAgICAgIEwyUkJTLTFQX2Z3ZCAgTDJSQlMtMVBfYWRhcHRlciAgICAgICBOYU4gIC4uLiAgICBOYU4gICAgICAgTmFOICAgIE5hTgogICAgICBMTUEtUyAgICAgICAgICAgTE1BLVNfZndkICAgICBMTUEtU19hZGFwdGVyICAgICAgIE5hTiAgLi4uICAgIE5hTiAgICAgICBOYU4gICAgTmFOCiAgICAgIEwxUkJTLXhTICAgICBMMVJCUy14U19md2QgIEwxUkJTLXhTX2FkYXB0ZXIgICAgICAgTmFOICAuLi4gICAgTmFOICAgICAgIE5hTiAgICBOYU4KICAgICAgTDFSQlMtMVAgICAgIEwxUkJTLTFQX2Z3ZCAgTDFSQlMtMVBfYWRhcHRlciAgICAgICBOYU4gIC4uLiAgICBOYU4gICAgICAgTmFOICAgIE5hTgogICAgICBMMlJCUy14UyAgICAgTDJSQlMteFNfZndkICBMMlJCUy14U19hZGFwdGVyICAgICAgIE5hTiAgLi4uICAgIE5hTiAgICAgICBOYU4gICAgTmFOCiAgICAgIExNQS1QICAgICAgICAgICBMTUEtUF9md2QgICAgIExNQS1QX2FkYXB0ZXIgICAgICAgTmFOICAuLi4gICAgTmFOICAgICAgIE5hTiAgICBOYU4KICAgICAgTE1CLVMgICAgICAgICAgIExNQi1TX2Z3ZCAgICAgTE1CLVNfYWRhcHRlciAgICAgICBOYU4gIC4uLiAgICBOYU4gICAgICAgTmFOICAgIE5hTgogICAgICBMTUItUCAgICAgICAgICAgTE1CLVBfZndkICAgICBMTUItUF9hZGFwdGVyICAgICAgIE5hTiAgLi4uICAgIE5hTiAgICAgICBOYU4gICAgTmFOCiAgICAgIGFzbV9HRlBfUkZQICAgICAgICAgTE1BLVAgICAgICAgICAgcHJvbW90ZXIgIEwxUkJTLXhTICAuLi4gIExNQi1QICBwMTVBX2thbiAgTE1BLVMKICAgICAgYXNtX1JGUF9HRlAgICAgICAgICBMTUEtUCAgICAgICAgICBwcm9tb3RlciAgTDFSQlMteFMgIC4uLiAgTE1CLVAgIHAxNUFfa2FuICBMTUEtUwoKICAgICAgWzEwIHJvd3MgeCAxMiBjb2x1bW5zXQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDIsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiA4LCAndmFsaWRfYXNzZW1ibGllcyc6IDB9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDcsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiQkFTSUNBc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1weTJ5c3Y2dG4vZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDUpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzUvNi9lL2RhdGFzZXRfNTZlODgwYmMtMWY5My00OTVmLWJmYTgtMDg3M2NiODE4MmE5LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzL2QvZC9lL2RhdGFzZXRfZGRlZDc4ZTYtNWQzYS00NjZkLWEzNzgtNTc5M2M4MDFmMzJjLmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzIvYS8wL2RhdGFzZXRfMmEwN2E5OTItNjUyNy00YWM3LTljNDktN2ZkOWFjYmRlYTU3LmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzEvMi9mL2RhdGFzZXRfMTJmYWEzZDktYzk1ZC00YzM0LTlkZjctNmM1MzE3NGQ0Mjc2LmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzUvOC8xL2RhdGFzZXRfNTgxYTRjNTUtMGNlMi00YzNiLWEzODAtNzU2NDQ4ODcxZjMyLmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzL2EvYi9mL2RhdGFzZXRfYWJmMjU1ZjctOTg0MS00OTkxLTliNjUtNTk4ZGYzNjhmZjg1LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnQmlvQnJpY2tTdGFuZGFyZEFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzL2QvZC9lL2RhdGFzZXRfZGRlZDc4ZTYtNWQzYS00NjZkLWEzNzgtNTc5M2M4MDFmMzJjLmRhdDpCQmFfRTAwNDBfR0ZQLmdiLC90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvMi9hLzAvZGF0YXNldF8yYTA3YTk5Mi02NTI3LTRhYzctOWM0OS03ZmQ5YWNiZGVhNTcuZGF0OkJCYV9KMjMxMTlfcHJvbS5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzEvMi9mL2RhdGFzZXRfMTJmYWEzZDktYzk1ZC00YzM0LTlkZjctNmM1MzE3NGQ0Mjc2LmRhdDpCQmFfSjIzMTE5X3Byb21fZmxhd2VkLmdiLC90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvNS84LzEvZGF0YXNldF81ODFhNGM1NS0wY2UyLTRjM2ItYTM4MC03NTY0NDg4NzFmMzIuZGF0OkJCYV9KNjEwNDhfdGVybS5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzL2EvYi9mL2RhdGFzZXRfYWJmMjU1ZjctOTg0MS00OTkxLTliNjUtNTk4ZGYzNjhmZjg1LmRhdDpCQmFfSzYxMTA5NF9iYXIuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1weTJ5c3Y2dG4vam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8zNS9vdXRwdXRzL2RhdGFzZXRfZDVlMmFmZmQtOTIyOC00YjIxLThlODktMzZhNDNjNTlhYjM3LmRhdCcgJiYgZWNobyBERUJVRyAmJiBscyAnb3V0ZGlyX2diJwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzMgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzMgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2NyV84paI4paI4paI4paI4paI4paI4paLICAgfCAyLzMgWzAwOjAxPDAwOjAwLCAgMS45OGl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDMvMyBbMDA6MDE8MDA6MDAsICAxLjYwaXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgMgogICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGNvbnN0cnVjdCAgICAgICAgICAgICAgICAgIHBhcnRzICAgICAgICAgICAgICBOYU4KICAgICAgQzFfcHJvbV9iYXJjb2RlICBCQmFfSzYxMTA5NF9iYXIgIEJCYV9KMjMxMTlfcHJvbQogICAgICBDMl9nZnBfdGVybSAgICAgICAgQkJhX0UwMDQwX0dGUCAgQkJhX0o2MTA0OF90ZXJtCiAgICAgIEMzX2ZpbmFsICAgICAgICAgQzFfcHJvbV9iYXJjb2RlICAgICAgQzJfZ2ZwX3Rlcm0KICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiAzfQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgogICAgICBERUJVRwogICAgICBDMV9wcm9tX2JhcmNvZGUuZ2IKICAgICAgQzJfZ2ZwX3Rlcm0uZ2IKICAgICAgQzNfZmluYWwuZ2IKCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogOSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJCaW9Ccmlja1N0YW5kYXJkQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcHkyeXN2NnRuL2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyA2KTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXB5MnlzdjZ0bi9maWxlcy82L2MvMi9kYXRhc2V0XzZjMjA4OWRlLTUyODUtNGFlNi04ZTA4LWFmYTM4ODEwYzBlZS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9iLzYvOC9kYXRhc2V0X2I2OGQ4ZGJhLWYwOTgtNGYxNC1hYzlmLWI2OTU0MWE4MzRjOC5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9hLzkvNC9kYXRhc2V0X2E5NDA0MmQ3LTJkNzAtNDI1Ny1iYmM1LWFjM2YyYmU5M2FmZi5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8xL2QvZS9kYXRhc2V0XzFkZTcyMzQxLWY0YzEtNDhkZi05NDY2LWExYzgwZTIzZmRmYi5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9jLzEvMS9kYXRhc2V0X2MxMTI4YWJkLTg2YTEtNDhiOS1iNjZjLTAxNTJkNzZjODVjOS5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8yL2YvMi9kYXRhc2V0XzJmMmFiN2I3LWQ2ZWYtNGEyZS05MGI4LWYxNWNkZGY1NmVlYS5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy85LzAvNC9kYXRhc2V0XzkwNDg1ODI3LWQ4MzktNGUzMi1iNTQ2LTljMzJmNzdmZDI2NC5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy83L2MvNS9kYXRhc2V0XzdjNTZhMDcxLWU5ZmUtNDEzMy04YTk5LThhN2Q1OGU3YjFmZC5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8wL2YvMy9kYXRhc2V0XzBmMzhkNDIwLWFmMmEtNDJiYS1hNmQzLWYxNjgwNzY1MzQwMi5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8wL2IvNi9kYXRhc2V0XzBiNjUzZWQ0LWY0NTgtNDU2Ny1iOWI3LTA3NDI1NzkzNDQzMy5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy83LzAvZC9kYXRhc2V0XzcwZDdjODU5LTgzZjEtNGFhNy1iMWRiLWZlZTFiNGQzODRjMC5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9jL2UvMi9kYXRhc2V0X2NlMjUwNWU2LTM1YzctNDg1OC1hMjdlLTZjNTc2MWEzNWJlMy5kYXQsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy82LzgvYi9kYXRhc2V0XzY4YjhkMzBlLTZjMGMtNDY2Zi1hNzBjLTBlNThiY2MyN2UwZC5kYXQnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9iLzYvOC9kYXRhc2V0X2I2OGQ4ZGJhLWYwOTgtNGYxNC1hYzlmLWI2OTU0MWE4MzRjOC5kYXQ6cGFydF9BLmdiLC90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvYS85LzQvZGF0YXNldF9hOTQwNDJkNy0yZDcwLTQyNTctYmJjNS1hYzNmMmJlOTNhZmYuZGF0OnBhcnRfQi5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzEvZC9lL2RhdGFzZXRfMWRlNzIzNDEtZjRjMS00OGRmLTk0NjYtYTFjODBlMjNmZGZiLmRhdDpwYXJ0X0MuZ2IsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9jLzEvMS9kYXRhc2V0X2MxMTI4YWJkLTg2YTEtNDhiOS1iNjZjLTAxNTJkNzZjODVjOS5kYXQ6cGFydF9ELmdiLC90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvMi9mLzIvZGF0YXNldF8yZjJhYjdiNy1kNmVmLTRhMmUtOTBiOC1mMTVjZGRmNTZlZWEuZGF0OnBhcnRfRS5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzkvMC80L2RhdGFzZXRfOTA0ODU4MjctZDgzOS00ZTMyLWI1NDYtOWMzMmY3N2ZkMjY0LmRhdDpwYXJ0X0YuZ2IsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy83L2MvNS9kYXRhc2V0XzdjNTZhMDcxLWU5ZmUtNDEzMy04YTk5LThhN2Q1OGU3YjFmZC5kYXQ6cGFydF9HLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8wL2YvMy9kYXRhc2V0XzBmMzhkNDIwLWFmMmEtNDJiYS1hNmQzLWYxNjgwNzY1MzQwMi5kYXQ6cGFydF9ILmdiLC90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvMC9iLzYvZGF0YXNldF8wYjY1M2VkNC1mNDU4LTQ1NjctYjliNy0wNzQyNTc5MzQ0MzMuZGF0OnBhcnRfSS5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzcvMC9kL2RhdGFzZXRfNzBkN2M4NTktODNmMS00YWE3LWIxZGItZmVlMWI0ZDM4NGMwLmRhdDpwYXJ0X0ouZ2IsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9jL2UvMi9kYXRhc2V0X2NlMjUwNWU2LTM1YzctNDg1OC1hMjdlLTZjNTc2MWEzNWJlMy5kYXQ6cGFydF9LLmdiLC90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvNi84L2IvZGF0YXNldF82OGI4ZDMwZS02YzBjLTQ2NmYtYTcwYy0wZTU4YmNjMjdlMGQuZGF0OnBhcnRfTC5nYicgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXB5MnlzdjZ0bi9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzQ5L291dHB1dHMvZGF0YXNldF80NDViYWI0MS1iYWE0LTRkZTEtYWRmYy1kNGZkNTY4OTJjNWYuZGF0JyAmJiBlY2hvIERFQlVHICYmIGxzICdvdXRkaXJfZ2InCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDUwJXzilojilojilojilojiloggICAgIHwgMi80IFswMDowMDwwMDowMCwgIDIuMzlpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDMvNCBbMDA6MDE8MDA6MDAsICAyLjIwaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNC80IFswMDowMjwwMDowMCwgIDEuNzlpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgICAgICAgMiAgICAgICAzICAgICAgIDQgICAgICAgNSAgICAgICA2CiAgICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgY29uc3RydWN0XzMgIGNvbnN0cnVjdF8xICBwYXJ0X0wgIHBhcnRfSiAgcGFydF9LICAgICBOYU4gICAgIE5hTgogICAgICBjb25zdHJ1Y3RfNCAgY29uc3RydWN0XzIgIHBhcnRfTCAgcGFydF9KICBwYXJ0X0sgICAgIE5hTiAgICAgTmFOCiAgICAgIGNvbnN0cnVjdF8xICAgICAgIHBhcnRfQSAgcGFydF9CICBwYXJ0X0MgIHBhcnRfRCAgcGFydF9FICBwYXJ0X0YKICAgICAgY29uc3RydWN0XzIgICAgICAgcGFydF9BICBwYXJ0X0cgIHBhcnRfSCAgcGFydF9JICBwYXJ0X0YgICAgIE5hTgogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDR9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCiAgICAgIERFQlVHCiAgICAgIGNvbnN0cnVjdF8xLmdiCiAgICAgIGNvbnN0cnVjdF8yLmdiCiAgICAgIGNvbnN0cnVjdF8zLmdiCiAgICAgIGNvbnN0cnVjdF80LmdiCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDEyLCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTEsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1weTJ5c3Y2dG4vZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDcpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzL2EvYS9kL2RhdGFzZXRfYWFkYzJhYzUtYjkyZC00NDg5LWJhOWMtOWUzMGM3OWRhMjA3LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzMvOC84L2RhdGFzZXRfMzg4Njc0ZDItMjRmZS00ZTc2LWIwYjgtMmRiNjQ2M2U3ODhmLmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzcvNS9jL2RhdGFzZXRfNzVjMjdlZTUtZmQ5Yi00NmExLWJlMDctZjBjZGM0ZTE2YmMxLmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzL2IvYi9iL2RhdGFzZXRfYmJiYTVmZjktNjllNy00ZDQxLWFmODItOTkyZGY1ZjA2NWZiLmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzL2QvYy85L2RhdGFzZXRfZGM5ODJlOWQtNmQ5My00NjM4LWI0ZmMtNjdmYzgyMzhiMjk1LmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzL2UvZC8yL2RhdGFzZXRfZWQyZDdiMzUtNjI1Zi00MjllLWFlNTAtY2UxMDk4YTIwYjg1LmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzUvYS8yL2RhdGFzZXRfNWEyMDEwY2ItNjRjZi00ZmY5LTg4NTItZjg4M2Y3YWIwMjY5LmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzAvZi9hL2RhdGFzZXRfMGZhOGVkNmEtYjg0OC00YjBkLTk0NzQtMTNjZDIyZDRhNDdlLmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzL2EvYi9lL2RhdGFzZXRfYWJlYWQ0MTMtYzNkNC00MmQzLWJkOTctYzAyYTZiZDY5Nzc5LmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzYvYS9iL2RhdGFzZXRfNmFiNmM0NzItYzY3Mi00YmRmLTk4MTQtOGUwNjlhOGEwN2UxLmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzL2IvMC9lL2RhdGFzZXRfYjBlMmNlMDctY2NmMC00ODA1LTk1OGMtOGRlMTc0YzNkNGMxLmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzMvMy9hL2RhdGFzZXRfMzNhZDIwNzItZmI3Ni00N2M0LWIzZjctNjBhMmEwOTdhYjg3LmRhdCwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzkvZC8xL2RhdGFzZXRfOWQxM2M0MTgtYmJiMS00NTdlLWJkYWYtMGYyYmY1MjMyZjc4LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8zLzgvOC9kYXRhc2V0XzM4ODY3NGQyLTI0ZmUtNGU3Ni1iMGI4LTJkYjY0NjNlNzg4Zi5kYXQ6cGFydF9BLmdiLC90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvNy81L2MvZGF0YXNldF83NWMyN2VlNS1mZDliLTQ2YTEtYmUwNy1mMGNkYzRlMTZiYzEuZGF0OnBhcnRfQi5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzL2IvYi9iL2RhdGFzZXRfYmJiYTVmZjktNjllNy00ZDQxLWFmODItOTkyZGY1ZjA2NWZiLmRhdDpwYXJ0X0MuZ2IsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9kL2MvOS9kYXRhc2V0X2RjOTgyZTlkLTZkOTMtNDYzOC1iNGZjLTY3ZmM4MjM4YjI5NS5kYXQ6cGFydF9ELmdiLC90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvZS9kLzIvZGF0YXNldF9lZDJkN2IzNS02MjVmLTQyOWUtYWU1MC1jZTEwOThhMjBiODUuZGF0OnBhcnRfRS5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzUvYS8yL2RhdGFzZXRfNWEyMDEwY2ItNjRjZi00ZmY5LTg4NTItZjg4M2Y3YWIwMjY5LmRhdDpwYXJ0X0YuZ2IsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy8wL2YvYS9kYXRhc2V0XzBmYThlZDZhLWI4NDgtNGIwZC05NDc0LTEzY2QyMmQ0YTQ3ZS5kYXQ6cGFydF9HLmdiLC90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvYS9iL2UvZGF0YXNldF9hYmVhZDQxMy1jM2Q0LTQyZDMtYmQ5Ny1jMDJhNmJkNjk3NzkuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzYvYS9iL2RhdGFzZXRfNmFiNmM0NzItYzY3Mi00YmRmLTk4MTQtOGUwNjlhOGEwN2UxLmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXB5MnlzdjZ0bi9maWxlcy9iLzAvZS9kYXRhc2V0X2IwZTJjZTA3LWNjZjAtNDgwNS05NThjLThkZTE3NGMzZDRjMS5kYXQ6cGFydF9KLmdiLC90bXAvdG1weTJ5c3Y2dG4vZmlsZXMvMy8zL2EvZGF0YXNldF8zM2FkMjA3Mi1mYjc2LTQ3YzQtYjNmNy02MGEyYTA5N2FiODcuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcHkyeXN2NnRuL2ZpbGVzLzkvZC8xL2RhdGFzZXRfOWQxM2M0MTgtYmJiMS00NTdlLWJkYWYtMGYyYmY1MjMyZjc4LmRhdDpwYXJ0X0wuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1weTJ5c3Y2dG4vam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC82My9vdXRwdXRzL2RhdGFzZXRfZmJlYjU3ZWQtMTcxOC00ZDJiLWEyMmItNWM0YTU3NzlkOWFiLmRhdCcgJiYgZWNobyBERUJVRyAmJiBscyAnb3V0ZGlyX2diJwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA1MCV84paI4paI4paI4paI4paIICAgICB8IDIvNCBbMDA6MDA8MDA6MDAsICAyLjMxaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNzUlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWjCAgfCAzLzQgWzAwOjAxPDAwOjAwLCAgMi4xMWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDQvNCBbMDA6MDI8MDA6MDAsICAxLjc1aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICAgICAgIDIgICAgICAgMyAgICAgICA0ICAgICAgIDUgICAgICAgNgogICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGNvbnN0cnVjdF8zICBjb25zdHJ1Y3RfMSAgcGFydF9MICBwYXJ0X0ogIHBhcnRfSyAgICAgTmFOICAgICBOYU4KICAgICAgY29uc3RydWN0XzQgIGNvbnN0cnVjdF8yICBwYXJ0X0wgIHBhcnRfSiAgcGFydF9LICAgICBOYU4gICAgIE5hTgogICAgICBjb25zdHJ1Y3RfMSAgICAgICBwYXJ0X0EgIHBhcnRfQiAgcGFydF9DICBwYXJ0X0QgIHBhcnRfRSAgcGFydF9GCiAgICAgIGNvbnN0cnVjdF8yICAgICAgIHBhcnRfQSAgcGFydF9HICBwYXJ0X0ggIHBhcnRfSSAgcGFydF9GICAgICBOYU4KICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiA0fQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgogICAgICBERUJVRwogICAgICBjb25zdHJ1Y3RfMS5nYgogICAgICBjb25zdHJ1Y3RfMi5nYgogICAgICBjb25zdHJ1Y3RfMy5nYgogICAgICBjb25zdHJ1Y3RfNC5nYgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIE5vbmUgYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxNCwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXB5MnlzdjZ0bi9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCjwvZGV0YWlscz4K'));
+        target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDEwMC4wJSIgYXJpYS12YWx1ZW5vdz0iNyIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iNyIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSI3IFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjciIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAwLjAlIiBhcmlhLXZhbHVlbm93PSIwIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSI3IiB0aXRsZT0iMCBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDcgfAp8IFBhc3NlZCAgICAgfCA3IHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDAgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAxKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBjNmxpYzRwOS9maWxlcy8yL2IvZC9kYXRhc2V0XzJiZGY0MzZmLTUyY2MtNGM2ZS1hZmRiLTNmMDUxNjI5OTAwZi5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBjNmxpYzRwOS9maWxlcy80LzYvNS9kYXRhc2V0XzQ2NWE1M2FiLTg3NzAtNDUxNC1hOWIzLTIyN2Y3OTY0NmViNy5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy9hL2UvMi9kYXRhc2V0X2FlMjJkNWQyLWNkZTAtNDViNS05ZThlLTY3YjVjYmQ1ODZmYS5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy9lLzYvNC9kYXRhc2V0X2U2NDA1N2IxLTQzYjMtNDc4OC04ODkxLTc3YmNkMjk3MjIzYy5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy8xL2QvMS9kYXRhc2V0XzFkMWY5ODMyLWI1OGUtNDhjMi1iMWIzLTZjM2ZiMThlOTg5MC5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy82LzcvMy9kYXRhc2V0XzY3MzJmYzc5LTA4MWUtNGVkZi1iY2NjLWEwMDg3NTIwMTcyYS5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy9iLzEvNy9kYXRhc2V0X2IxN2M3YTQ5LTMxMjEtNDI5Mi05NWZmLTUxODkxYWEwNjZkMS5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy8yLzgvMS9kYXRhc2V0XzI4MTFmODE2LTg1MzItNGRkZC04ZTI5LTlhNmVkN2RhZDU0ZS5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy9lLzcvNC9kYXRhc2V0X2U3NGQwMTgyLTgwN2UtNDBhOC1iNjdhLWFjMDg4ZmMyZTAyYy5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy85L2QvYy9kYXRhc2V0XzlkYzU1Yzk4LTRhYjktNDI3Mi1hNjgwLTliMzEyOTk1NDM2Ny5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy85LzUvNi9kYXRhc2V0Xzk1Njk5ZGI5LTc3Y2YtNGFlMS04NDU0LTRmMjU1ZjNjYjYyYS5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy8xLzEvOS9kYXRhc2V0XzExOTc5YzI4LTgyZWUtNDNjNC05ZTQzLWYzNGNiNTQxZjk2Yi5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy8zL2YvNS9kYXRhc2V0XzNmNTNjYjg2LTJkMmItNDI5YS1iZjUxLWUyNzZiYmUzOTNmYS5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wYzZsaWM0cDkvZmlsZXMvNC82LzUvZGF0YXNldF80NjVhNTNhYi04NzcwLTQ1MTQtYTliMy0yMjdmNzk2NDZlYjcuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzL2EvZS8yL2RhdGFzZXRfYWUyMmQ1ZDItY2RlMC00NWI1LTllOGUtNjdiNWNiZDU4NmZhLmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBjNmxpYzRwOS9maWxlcy9lLzYvNC9kYXRhc2V0X2U2NDA1N2IxLTQzYjMtNDc4OC04ODkxLTc3YmNkMjk3MjIzYy5kYXQ6cGFydF9DLmdiLC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvMS9kLzEvZGF0YXNldF8xZDFmOTgzMi1iNThlLTQ4YzItYjFiMy02YzNmYjE4ZTk4OTAuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzLzYvNy8zL2RhdGFzZXRfNjczMmZjNzktMDgxZS00ZWRmLWJjY2MtYTAwODc1MjAxNzJhLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBjNmxpYzRwOS9maWxlcy9iLzEvNy9kYXRhc2V0X2IxN2M3YTQ5LTMxMjEtNDI5Mi05NWZmLTUxODkxYWEwNjZkMS5kYXQ6cGFydF9GLmdiLC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvMi84LzEvZGF0YXNldF8yODExZjgxNi04NTMyLTRkZGQtOGUyOS05YTZlZDdkYWQ1NGUuZGF0OnBhcnRfRy5nYiwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzL2UvNy80L2RhdGFzZXRfZTc0ZDAxODItODA3ZS00MGE4LWI2N2EtYWMwODhmYzJlMDJjLmRhdDpwYXJ0X0guZ2IsL3RtcC90bXBjNmxpYzRwOS9maWxlcy85L2QvYy9kYXRhc2V0XzlkYzU1Yzk4LTRhYjktNDI3Mi1hNjgwLTliMzEyOTk1NDM2Ny5kYXQ6cGFydF9JLmdiLC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvOS81LzYvZGF0YXNldF85NTY5OWRiOS03N2NmLTRhZTEtODQ1NC00ZjI1NWYzY2I2MmEuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzLzEvMS85L2RhdGFzZXRfMTE5NzljMjgtODJlZS00M2M0LTllNDMtZjM0Y2I1NDFmOTZiLmRhdDpwYXJ0X0suZ2IsL3RtcC90bXBjNmxpYzRwOS9maWxlcy8zL2YvNS9kYXRhc2V0XzNmNTNjYjg2LTJkMmItNDI5YS1iZjUxLWUyNzZiYmUzOTNmYS5kYXQ6cGFydF9MLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcGM2bGljNHA5L2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMTQvb3V0cHV0cy9kYXRhc2V0X2FjMmQ5OGU3LWZmNTUtNGE5NC05ZTc5LTg2MWIwN2Q2MzUyOC5kYXQnICYmIGVjaG8gREVCVUcgJiYgbHMgJ291dGRpcl9nYicKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNTAlfOKWiOKWiOKWiOKWiOKWiCAgICAgfCAyLzQgWzAwOjAwPDAwOjAwLCAgMi4zOGl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDc1JXzilojilojilojilojilojilojilojilowgIHwgMy80IFswMDowMTwwMDowMCwgIDIuMThpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA0LzQgWzAwOjAyPDAwOjAwLCAgMS43N2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAgICAgICAyICAgICAgIDMgICAgICAgNCAgICAgICA1ICAgICAgIDYKICAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBjb25zdHJ1Y3RfMyAgY29uc3RydWN0XzEgIHBhcnRfTCAgcGFydF9KICBwYXJ0X0sgICAgIE5hTiAgICAgTmFOCiAgICAgIGNvbnN0cnVjdF80ICBjb25zdHJ1Y3RfMiAgcGFydF9MICBwYXJ0X0ogIHBhcnRfSyAgICAgTmFOICAgICBOYU4KICAgICAgY29uc3RydWN0XzEgICAgICAgcGFydF9BICBwYXJ0X0IgIHBhcnRfQyAgcGFydF9EICBwYXJ0X0UgIHBhcnRfRgogICAgICBjb25zdHJ1Y3RfMiAgICAgICBwYXJ0X0EgIHBhcnRfRyAgcGFydF9IICBwYXJ0X0kgIHBhcnRfRiAgICAgTmFOCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDAsICd2YWxpZF9hc3NlbWJsaWVzJzogNH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KICAgICAgREVCVUcKICAgICAgY29uc3RydWN0XzEuZ2IKICAgICAgY29uc3RydWN0XzIuZ2IKICAgICAgY29uc3RydWN0XzMuZ2IKICAgICAgY29uc3RydWN0XzQuZ2IKCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBjNmxpYzRwOS9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgMik8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wYzZsaWM0cDkvZmlsZXMvMS9kLzYvZGF0YXNldF8xZDYyNGMyNC1lODY0LTQ2M2EtOWZkMy0wYzYzZmQ0NmNiZDIuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wYzZsaWM0cDkvZmlsZXMvNS8wLzUvZGF0YXNldF81MDVhYWZhMi01ZTljLTQ0YmItOWQyNi0zZjNlNjI0OGZjOWIuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdHaWJzb25Bc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBjNmxpYzRwOS9maWxlcy81LzAvNS9kYXRhc2V0XzUwNWFhZmEyLTVlOWMtNDRiYi05ZDI2LTNmM2U2MjQ4ZmM5Yi5kYXQ6Z2lic29uX3NlcXVlbmNlcy5mYScgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBjNmxpYzRwOS9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzE3L291dHB1dHMvZGF0YXNldF8wZjYxNzE5Mi1lNjI1LTRkOWUtODM1OC0wYjliMWIwYWEwMjQuZGF0JyAmJiBlY2hvIERFQlVHICYmIGxzICdvdXRkaXJfZ2InCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNSBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNSBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDQwJXzilojilojilojiloggICAgICB8IDIvNSBbMDA6MDA8MDA6MDAsICA0LjI0aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNjAlfOKWiOKWiOKWiOKWiOKWiOKWiCAgICB8IDMvNSBbMDA6MDA8MDA6MDAsICA0LjI3aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgODAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiCAgfCA0LzUgWzAwOjAwPDAwOjAwLCAgNC4yOGl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDUvNSBbMDA6MDE8MDA6MDAsICAzLjQ4aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgICAgICAgICAgICAgICAgICAgMSAgICAgICAyICAgICAgIDMgICAgICAgIDQgICAgICAgIDUKICAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgY29uc3RydWN0ICAgICBwYXJ0cyAgICAgTmFOICAgICBOYU4gICAgICBOYU4gICAgICBOYU4KICAgICAgY29uc3RydWN0XzEgIEZyYWdfMSAgRnJhZ18yICBGcmFnXzMgICBGcmFnXzQgICBGcmFnXzUKICAgICAgY29uc3RydWN0XzIgIEZyYWdfMSAgRnJhZ18yICBGcmFnXzMgIEZyYWdfNGIgICBGcmFnXzUKICAgICAgY29uc3RydWN0XzMgIEZyYWdfMSAgRnJhZ18yICBGcmFnXzMgIEZyYWdfNGMgIEZyYWdfNWIKICAgICAgY29uc3RydWN0XzQgIEZyYWdfMSAgRnJhZ18yICBGcmFnXzMgICBGcmFnXzQgICAgICBOYU4KICAgICAgY29uc3RydWN0XzUgIEZyYWdfMSAgRnJhZ18yICBGcmFnXzMgICBGcmFnXzQgIEZyYWdfNGIKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMiwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiAzfQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgogICAgICBERUJVRwogICAgICBjb25zdHJ1Y3RfMS5nYgogICAgICBjb25zdHJ1Y3RfMi5nYgogICAgICBjb25zdHJ1Y3RfMy5nYgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiAzLCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBhc3NlbWJseVxfcGxhblxfbmFtZSB8IGAgIkdpYnNvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBjNmxpYzRwOS9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgMyk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wYzZsaWM0cDkvZmlsZXMvYS8xL2YvZGF0YXNldF9hMWY5ODliOS1lNzlmLTRiZDctOWNmMy02NjY3NWMxZDFlOTQuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wYzZsaWM0cDkvZmlsZXMvYS82LzEvZGF0YXNldF9hNjE3YWUxZi03MGUzLTQ4NzMtYmRjYy1mMjI2OGZmZWFhZDQuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvOS80LzEvZGF0YXNldF85NDFiNGU5NS02MDBhLTQ4NWMtYTNmYS0xZGNmMGRlZmRkNzYuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdMaWdhc2VDeWNsaW5nUmVhY3Rpb25Bc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBjNmxpYzRwOS9maWxlcy9hLzYvMS9kYXRhc2V0X2E2MTdhZTFmLTcwZTMtNDg3My1iZGNjLWYyMjY4ZmZlYWFkNC5kYXQ6UkZQX0dGUF9wbGFzbWlkX0JPcy5mYSwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzLzkvNC8xL2RhdGFzZXRfOTQxYjRlOTUtNjAwYS00ODVjLWEzZmEtMWRjZjBkZWZkZDc2LmRhdDpSRlBfR0ZQX3BsYXNtaWRfcGFydHMuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wYzZsaWM0cDkvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8yMS9vdXRwdXRzL2RhdGFzZXRfODI3ZTY0YTEtN2Y4NC00ZjllLTg0NjgtZWFiYjM2ODRlZmEzLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC8yIFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC8yIFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgMi8yIFswMDowMDwwMDowMCwgIDIuMTZpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICAgLi4uICAgICAgICAgICAxNAogICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uICAgICAgICAgICAgIAogICAgICBDb25zdHJ1Y3QxICAgICAgICAgUkZQX0dGUF9CT18xMDIzMiAgLi4uICBwN19iYWNrYm9uZQogICAgICBDb25zdHJ1Y3QyX2ZsYXdlZCAgUkZQX0dGUF9CT18xMDIzMiAgLi4uICAgICAgICAgIE5hTgoKICAgICAgWzIgcm93cyB4IDE0IGNvbHVtbnNdCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDIsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJMaWdhc2VDeWNsaW5nUmVhY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wYzZsaWM0cDkvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDQpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcGM2bGljNHA5L2ZpbGVzLzYvYi9lL2RhdGFzZXRfNmJlMzhmN2QtYjVjNC00MzA4LTg1ZDEtM2JkNmI0ZGFlNGZjLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcGM2bGljNHA5L2ZpbGVzL2MvYi9hL2RhdGFzZXRfY2JhOWIyOTctNGRmZS00MDYzLTg1MTAtNmM0OGExYjZiN2ExLmRhdCwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzLzMvZS84L2RhdGFzZXRfM2U4ZGZjZTEtN2EwNS00NjY1LTkyNzctMzg4ZTNhYTQyNTgxLmRhdCwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzL2EvNS9kL2RhdGFzZXRfYTVkMDkzYzItMDA4Ny00NTNlLWI3ZDEtZDk0YTdjYjY2NGUwLmRhdCwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzLzAvZS9jL2RhdGFzZXRfMGVjNzJjYzAtMmE5NS00NzRiLWFhNzctN2E0MzZkYWQ2YTliLmRhdCwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzL2QvMi83L2RhdGFzZXRfZDI3MjE5OWYtMmUxYi00OWUxLWE1OTctNWZmYTExNTA3ZTgzLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnQkFTSUNBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBjNmxpYzRwOS9maWxlcy9jL2IvYS9kYXRhc2V0X2NiYTliMjk3LTRkZmUtNDA2My04NTEwLTZjNDhhMWI2YjdhMS5kYXQ6R0ZQLmdiLC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvMy9lLzgvZGF0YXNldF8zZThkZmNlMS03YTA1LTQ2NjUtOTI3Ny0zODhlM2FhNDI1ODEuZGF0OnAxNUFfa2FuLmdiLC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvYS81L2QvZGF0YXNldF9hNWQwOTNjMi0wMDg3LTQ1M2UtYjdkMS1kOTRhN2NiNjY0ZTAuZGF0OnByb21vdGVyLmdiLC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvMC9lL2MvZGF0YXNldF8wZWM3MmNjMC0yYTk1LTQ3NGItYWE3Ny03YTQzNmRhZDZhOWIuZGF0OlJGUC5nYiwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzL2QvMi83L2RhdGFzZXRfZDI3MjE5OWYtMmUxYi00OWUxLWE1OTctNWZmYTExNTA3ZTgzLmRhdDpvbGlnb3MuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wYzZsaWM0cDkvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8yOC9vdXRwdXRzL2RhdGFzZXRfNzQzNTMzNWUtODk2ZS00N2Y0LTg5YzctM2E2YzJjMjVmMjQ3LmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC8xMCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzggWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDYvOCBbMDA6MDA8MDA6MDAsIDUwLjA0aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAyLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogOCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiAwfQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiA3LCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBhc3NlbWJseVxfcGxhblxfbmFtZSB8IGAgIkJBU0lDQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcGM2bGljNHA5L2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyA1KTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBjNmxpYzRwOS9maWxlcy84L2UvMi9kYXRhc2V0XzhlMmRjYWFiLTNkZDctNDhjNC05MjBlLWJkZmZhYWQzOTc5My5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBjNmxpYzRwOS9maWxlcy9kLzQvMi9kYXRhc2V0X2Q0MjcxYTQzLTg3MjItNDM0NC05NTYyLTAwZTlhMzZkMDdlNS5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy8yLzQvOC9kYXRhc2V0XzI0ODRiYmZiLWQ0YjAtNGM4Yi1hNTdmLTY3NTYyNWY5ODc1My5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy84LzMvZi9kYXRhc2V0XzgzZjAzNWY3LTI1ZmMtNGE1OS04M2IyLWQzNzdlM2NkNTlhZC5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy81L2EvYS9kYXRhc2V0XzVhYTdiMTllLTBhZDEtNDNiMS05MDgzLTk1NDA2N2ZmMjAxMC5kYXQsL3RtcC90bXBjNmxpYzRwOS9maWxlcy9kLzYvNC9kYXRhc2V0X2Q2NDZiNzFjLTUzOTMtNDI5MS1iY2M1LTdkNmNiZTIyZjA1NS5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0Jpb0JyaWNrU3RhbmRhcmRBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBjNmxpYzRwOS9maWxlcy9kLzQvMi9kYXRhc2V0X2Q0MjcxYTQzLTg3MjItNDM0NC05NTYyLTAwZTlhMzZkMDdlNS5kYXQ6QkJhX0UwMDQwX0dGUC5nYiwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzLzIvNC84L2RhdGFzZXRfMjQ4NGJiZmItZDRiMC00YzhiLWE1N2YtNjc1NjI1Zjk4NzUzLmRhdDpCQmFfSjIzMTE5X3Byb20uZ2IsL3RtcC90bXBjNmxpYzRwOS9maWxlcy84LzMvZi9kYXRhc2V0XzgzZjAzNWY3LTI1ZmMtNGE1OS04M2IyLWQzNzdlM2NkNTlhZC5kYXQ6QkJhX0oyMzExOV9wcm9tX2ZsYXdlZC5nYiwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzLzUvYS9hL2RhdGFzZXRfNWFhN2IxOWUtMGFkMS00M2IxLTkwODMtOTU0MDY3ZmYyMDEwLmRhdDpCQmFfSjYxMDQ4X3Rlcm0uZ2IsL3RtcC90bXBjNmxpYzRwOS9maWxlcy9kLzYvNC9kYXRhc2V0X2Q2NDZiNzFjLTUzOTMtNDI5MS1iY2M1LTdkNmNiZTIyZjA1NS5kYXQ6QkJhX0s2MTEwOTRfYmFyLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcGM2bGljNHA5L2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMzUvb3V0cHV0cy9kYXRhc2V0XzgwODZjOGMwLTI0YjgtNGE1MS04NGRiLTZiNGM5YjBlNzZkMC5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDY3JXzilojilojilojilojilojilojilosgICB8IDIvMyBbMDA6MDA8MDA6MDAsICAyLjEwaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgMy8zIFswMDowMTwwMDowMCwgIDEuNzJpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDksICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiQmlvQnJpY2tTdGFuZGFyZEFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBjNmxpYzRwOS9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNik8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wYzZsaWM0cDkvZmlsZXMvOS84L2UvZGF0YXNldF85OGUxYjg2Mi0yZDNlLTQxNjQtYWVjZi01NmJkNDY0ZDBmMTEuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wYzZsaWM0cDkvZmlsZXMvYi82LzYvZGF0YXNldF9iNjZhZmE1Yi02ODJkLTQ5ZjgtOTc1My1jNzhjMzU2ZmYyMjguZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvNC82L2UvZGF0YXNldF80NmVhM2ZiOS04ZTYwLTQyZjMtYjdkMy1jMWE2ZWRjMTgzN2MuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvOC8zLzUvZGF0YXNldF84MzU4ZTY1Ny0wZTYxLTQ4NmItYWRiNC1lODg2ZjBmMzU0YmEuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvNC9jL2YvZGF0YXNldF80Y2ZiYjJkZC1jNWE1LTQyZmUtODg5Yi1kYTY1MTA0MjJiNzIuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvMi84L2MvZGF0YXNldF8yOGM5NjQ0NC1hYmZiLTQxNzMtOTcwZS1lODk1MTQ2YWVmOTcuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvZi81LzQvZGF0YXNldF9mNTRjN2ExNi1hYzZmLTQyYzItOWI2Yy0zNDVhZjMwNTBkODMuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvMi9hLzMvZGF0YXNldF8yYTMzMGViNy1kMDMzLTRlNzUtYmU3YS00NDczNzQ4YTZmMmQuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJy90bXAvdG1wYzZsaWM0cDkvZmlsZXMvNi84LzcvZGF0YXNldF82ODc3YzIyNy0yYzcwLTQwODAtOTYyZS1lZTE4NTVkZDc5N2YuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvZS8yLzEvZGF0YXNldF9lMjEyMjYyYy1hMzM2LTQyNjMtYTA3Ni0yY2QzMDA1OTBiYTQuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvNC8xLzEvZGF0YXNldF80MTEyZDU0NS03ZTM3LTRhNmUtOGNhOC03YzFiOGY5MGE3MWUuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvYi8zLzEvZGF0YXNldF9iMzE5NTVjZS1lYTQ0LTRlM2EtODZhMS02YWViYzQ3YmU4NDEuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvZC80L2QvZGF0YXNldF9kNGQxNDM4OC01NWQzLTRhZWMtODEwZC1hYTkwMjAyOGYyOWYuZGF0JyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wYzZsaWM0cDkvZmlsZXMvYi82LzYvZGF0YXNldF9iNjZhZmE1Yi02ODJkLTQ5ZjgtOTc1My1jNzhjMzU2ZmYyMjguZGF0OnBhcnRfQS5nYiwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzLzQvNi9lL2RhdGFzZXRfNDZlYTNmYjktOGU2MC00MmYzLWI3ZDMtYzFhNmVkYzE4MzdjLmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBjNmxpYzRwOS9maWxlcy84LzMvNS9kYXRhc2V0XzgzNThlNjU3LTBlNjEtNDg2Yi1hZGI0LWU4ODZmMGYzNTRiYS5kYXQ6cGFydF9DLmdiLC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvNC9jL2YvZGF0YXNldF80Y2ZiYjJkZC1jNWE1LTQyZmUtODg5Yi1kYTY1MTA0MjJiNzIuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzLzIvOC9jL2RhdGFzZXRfMjhjOTY0NDQtYWJmYi00MTczLTk3MGUtZTg5NTE0NmFlZjk3LmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBjNmxpYzRwOS9maWxlcy9mLzUvNC9kYXRhc2V0X2Y1NGM3YTE2LWFjNmYtNDJjMi05YjZjLTM0NWFmMzA1MGQ4My5kYXQ6cGFydF9GLmdiLC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvMi9hLzMvZGF0YXNldF8yYTMzMGViNy1kMDMzLTRlNzUtYmU3YS00NDczNzQ4YTZmMmQuZGF0OnBhcnRfRy5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJy90bXAvdG1wYzZsaWM0cDkvZmlsZXMvNi84LzcvZGF0YXNldF82ODc3YzIyNy0yYzcwLTQwODAtOTYyZS1lZTE4NTVkZDc5N2YuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzL2UvMi8xL2RhdGFzZXRfZTIxMjI2MmMtYTMzNi00MjYzLWEwNzYtMmNkMzAwNTkwYmE0LmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXBjNmxpYzRwOS9maWxlcy80LzEvMS9kYXRhc2V0XzQxMTJkNTQ1LTdlMzctNGE2ZS04Y2E4LTdjMWI4ZjkwYTcxZS5kYXQ6cGFydF9KLmdiLC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvYi8zLzEvZGF0YXNldF9iMzE5NTVjZS1lYTQ0LTRlM2EtODZhMS02YWViYzQ3YmU4NDEuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzL2QvNC9kL2RhdGFzZXRfZDRkMTQzODgtNTVkMy00YWVjLTgxMGQtYWE5MDIwMjhmMjlmLmRhdDpwYXJ0X0wuZ2InIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wYzZsaWM0cDkvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC80OS9vdXRwdXRzL2RhdGFzZXRfNzdmMzlkMTItNTMyYy00NjhiLWJjZjctZmNjMWZkZWRkMzRjLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNTAlfOKWiOKWiOKWiOKWiOKWiCAgICAgfCAyLzQgWzAwOjAwPDAwOjAwLCAgMi4zMWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDc1JXzilojilojilojilojilojilojilojilowgIHwgMy80IFswMDowMTwwMDowMCwgIDIuMTRpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA0LzQgWzAwOjAyPDAwOjAwLCAgMS43NGl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDAsICd2YWxpZF9hc3NlbWJsaWVzJzogNH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTIsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxMSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBjNmxpYzRwOS9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNyk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wYzZsaWM0cDkvZmlsZXMvOS81LzAvZGF0YXNldF85NTA0ODk3ZC0wZDk5LTQ0YTQtOTAzMy03ZDE0ZTM5NDNlYzkuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wYzZsaWM0cDkvZmlsZXMvYS9jL2QvZGF0YXNldF9hY2Q5ZTU0Ni1iYjMxLTQzOTEtYjg2Ny0xZDgxY2FiMTA5MjAuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvYy9mL2UvZGF0YXNldF9jZmU4NTJmNi01YjMyLTQ2ZmQtYTlkOC0yYjc3NzAxNmQ0MDMuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvMi81L2IvZGF0YXNldF8yNWJlMjc3MC1mNzY4LTRiMGUtYmU5Ni00NTllNDdlNmFlOGQuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvZS81LzgvZGF0YXNldF9lNTgwZjgwNi1lOGJhLTRkYWMtYjhkNS02Yjc2YjRhNzQyMWIuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvMC9kLzYvZGF0YXNldF8wZDZkZTMxYS1hYWIxLTQyN2YtYTJhMS03YzhiYzk4ODIwOGUuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvMS8yLzcvZGF0YXNldF8xMjcyYjIzZi03Y2VmLTRkZWItYmY5Mi1mYmFkOTczYmYyYzYuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvNy80LzcvZGF0YXNldF83NDc2YjEwZC1jMTQzLTRiZTctYWRiNS0xMThkY2YzNzIyODcuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvZS8yL2UvZGF0YXNldF9lMmVkMGU0Ni1iMTU5LTRiY2EtYWVhYS05YmVmOWE1YjljOWEuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvYy9hLzEvZGF0YXNldF9jYTE4YjUwYy0zYjRjLTQyMDEtODhiMC1kZmZkMDQ5NzE4ZjguZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvMS9iLzQvZGF0YXNldF8xYjQ4MGU4NC0wM2NmLTQ0ODMtOWU5ZS1jY2Y3OWJmNjU0YTEuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvYi9lLzgvZGF0YXNldF9iZTgzYjhmNC03M2RlLTQ3NzUtYWJiOC03NTQ4M2Q0ZThhYjIuZGF0LC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvNS9kL2QvZGF0YXNldF81ZGRkZTU0OC00ODI4LTQwNjctOTNiNy0xMzc3YTcxMjIxZDcuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcGM2bGljNHA5L2ZpbGVzL2EvYy9kL2RhdGFzZXRfYWNkOWU1NDYtYmIzMS00MzkxLWI4NjctMWQ4MWNhYjEwOTIwLmRhdDpwYXJ0X0EuZ2IsL3RtcC90bXBjNmxpYzRwOS9maWxlcy9jL2YvZS9kYXRhc2V0X2NmZTg1MmY2LTViMzItNDZmZC1hOWQ4LTJiNzc3MDE2ZDQwMy5kYXQ6cGFydF9CLmdiLC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvMi81L2IvZGF0YXNldF8yNWJlMjc3MC1mNzY4LTRiMGUtYmU5Ni00NTllNDdlNmFlOGQuZGF0OnBhcnRfQy5nYiwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzL2UvNS84L2RhdGFzZXRfZTU4MGY4MDYtZThiYS00ZGFjLWI4ZDUtNmI3NmI0YTc0MjFiLmRhdDpwYXJ0X0QuZ2IsL3RtcC90bXBjNmxpYzRwOS9maWxlcy8wL2QvNi9kYXRhc2V0XzBkNmRlMzFhLWFhYjEtNDI3Zi1hMmExLTdjOGJjOTg4MjA4ZS5kYXQ6cGFydF9FLmdiLC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvMS8yLzcvZGF0YXNldF8xMjcyYjIzZi03Y2VmLTRkZWItYmY5Mi1mYmFkOTczYmYyYzYuZGF0OnBhcnRfRi5nYiwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzLzcvNC83L2RhdGFzZXRfNzQ3NmIxMGQtYzE0My00YmU3LWFkYjUtMTE4ZGNmMzcyMjg3LmRhdDpwYXJ0X0cuZ2IsL3RtcC90bXBjNmxpYzRwOS9maWxlcy9lLzIvZS9kYXRhc2V0X2UyZWQwZTQ2LWIxNTktNGJjYS1hZWFhLTliZWY5YTViOWM5YS5kYXQ6cGFydF9ILmdiLC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvYy9hLzEvZGF0YXNldF9jYTE4YjUwYy0zYjRjLTQyMDEtODhiMC1kZmZkMDQ5NzE4ZjguZGF0OnBhcnRfSS5nYiwvdG1wL3RtcGM2bGljNHA5L2ZpbGVzLzEvYi80L2RhdGFzZXRfMWI0ODBlODQtMDNjZi00NDgzLTllOWUtY2NmNzliZjY1NGExLmRhdDpwYXJ0X0ouZ2IsL3RtcC90bXBjNmxpYzRwOS9maWxlcy9iL2UvOC9kYXRhc2V0X2JlODNiOGY0LTczZGUtNDc3NS1hYmI4LTc1NDgzZDRlOGFiMi5kYXQ6cGFydF9LLmdiLC90bXAvdG1wYzZsaWM0cDkvZmlsZXMvNS9kL2QvZGF0YXNldF81ZGRkZTU0OC00ODI4LTQwNjctOTNiNy0xMzc3YTcxMjIxZDcuZGF0OnBhcnRfTC5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBjNmxpYzRwOS9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzYzL291dHB1dHMvZGF0YXNldF9lMTA3ODRhNi0zMDUwLTQxMzEtYTY4NC0zODQ3Mzk3YzRjNGQuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA1MCV84paI4paI4paI4paI4paIICAgICB8IDIvNCBbMDA6MDA8MDA6MDAsICAyLjQ1aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNzUlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWjCAgfCAzLzQgWzAwOjAxPDAwOjAwLCAgMi4yNGl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDQvNCBbMDA6MDI8MDA6MDAsICAxLjg0aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiA0fQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIE5vbmUgYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxNCwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBjNmxpYzRwOS9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCjwvZGV0YWlscz4K'));
     </script>
   </body>
 </html>
\ No newline at end of file
--- a/output.json	Mon May 26 10:10:46 2025 +0000
+++ b/output.json	Mon May 26 11:29:13 2025 +0000
@@ -1,7 +1,7 @@
 {
     "summary": {
         "num_errors": 0,
-        "num_failures": 1,
+        "num_failures": 0,
         "num_skips": 0,
         "num_tests": 7
     },
@@ -11,104 +11,96 @@
                 "inputs": {
                     "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "41ca6db0600d7999",
+                        "id": "c173cff58a987f8f",
                         "src": "hda"
                     },
                     "assembly_plan_name": "Type2sRestrictionAssembly",
                     "genbank_files": {
-                        "id": "66f8380583c086e1",
+                        "id": "fcc5b7d13a1328f6",
                         "src": "hdca"
                     },
                     "topology": "circular"
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpy2ysv6tn/files/1/a/1/dataset_1a1ee32d-eed7-47fd-b491-4f0799b44a85.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpy2ysv6tn/files/4/4/1/dataset_44129191-5531-4cc9-b37b-fec4e3c677d5.dat,/tmp/tmpy2ysv6tn/files/6/1/f/dataset_61f5f19f-147b-46fd-8900-a8530f311835.dat,/tmp/tmpy2ysv6tn/files/4/4/0/dataset_440b34e7-490e-49bd-9b29-6afcabe5f6f6.dat,/tmp/tmpy2ysv6tn/files/a/3/f/dataset_a3fca212-b8dc-4579-901c-612b806241af.dat,/tmp/tmpy2ysv6tn/files/5/3/9/dataset_5398f2cb-1a25-45e5-9ba0-cd79a88b6e88.dat,/tmp/tmpy2ysv6tn/files/f/5/0/dataset_f505293a-8223-4da2-a22c-aa261d4955ec.dat,/tmp/tmpy2ysv6tn/files/c/5/0/dataset_c50e4b1f-c72a-4272-b324-e1c2c7d50293.dat,/tmp/tmpy2ysv6tn/files/0/0/d/dataset_00d79560-f944-4d8e-98e7-f516684a6100.dat,/tmp/tmpy2ysv6tn/files/3/d/5/dataset_3d5bb0fb-d610-4939-8fc5-999174fee5ca.dat,/tmp/tmpy2ysv6tn/files/c/7/c/dataset_c7cf96af-ab1c-4199-821f-5bb5b947752f.dat,/tmp/tmpy2ysv6tn/files/0/a/5/dataset_0a5139e7-7d83-48f1-a1c9-458a1e72685c.dat,/tmp/tmpy2ysv6tn/files/f/b/3/dataset_fb361f22-020c-4972-8661-f1f57d1a7afa.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpy2ysv6tn/files/4/4/1/dataset_44129191-5531-4cc9-b37b-fec4e3c677d5.dat:part_A.gb,/tmp/tmpy2ysv6tn/files/6/1/f/dataset_61f5f19f-147b-46fd-8900-a8530f311835.dat:part_B.gb,/tmp/tmpy2ysv6tn/files/4/4/0/dataset_440b34e7-490e-49bd-9b29-6afcabe5f6f6.dat:part_C.gb,/tmp/tmpy2ysv6tn/files/a/3/f/dataset_a3fca212-b8dc-4579-901c-612b806241af.dat:part_D.gb,/tmp/tmpy2ysv6tn/files/5/3/9/dataset_5398f2cb-1a25-45e5-9ba0-cd79a88b6e88.dat:part_E.gb,/tmp/tmpy2ysv6tn/files/f/5/0/dataset_f505293a-8223-4da2-a22c-aa261d4955ec.dat:part_F.gb,/tmp/tmpy2ysv6tn/files/c/5/0/dataset_c50e4b1f-c72a-4272-b324-e1c2c7d50293.dat:part_G.gb,/tmp/tmpy2ysv6tn/files/0/0/d/dataset_00d79560-f944-4d8e-98e7-f516684a6100.dat:part_H.gb,/tmp/tmpy2ysv6tn/files/3/d/5/dataset_3d5bb0fb-d610-4939-8fc5-999174fee5ca.dat:part_I.gb,/tmp/tmpy2ysv6tn/files/c/7/c/dataset_c7cf96af-ab1c-4199-821f-5bb5b947752f.dat:part_J.gb,/tmp/tmpy2ysv6tn/files/0/a/5/dataset_0a5139e7-7d83-48f1-a1c9-458a1e72685c.dat:part_K.gb,/tmp/tmpy2ysv6tn/files/f/b/3/dataset_fb361f22-020c-4972-8661-f1f57d1a7afa.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/tmpy2ysv6tn/job_working_directory/000/14/outputs/dataset_acb064d7-2781-46fe-98df-716fee024c8d.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpc6lic4p9/files/2/b/d/dataset_2bdf436f-52cc-4c6e-afdb-3f051629900f.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpc6lic4p9/files/4/6/5/dataset_465a53ab-8770-4514-a9b3-227f79646eb7.dat,/tmp/tmpc6lic4p9/files/a/e/2/dataset_ae22d5d2-cde0-45b5-9e8e-67b5cbd586fa.dat,/tmp/tmpc6lic4p9/files/e/6/4/dataset_e64057b1-43b3-4788-8891-77bcd297223c.dat,/tmp/tmpc6lic4p9/files/1/d/1/dataset_1d1f9832-b58e-48c2-b1b3-6c3fb18e9890.dat,/tmp/tmpc6lic4p9/files/6/7/3/dataset_6732fc79-081e-4edf-bccc-a0087520172a.dat,/tmp/tmpc6lic4p9/files/b/1/7/dataset_b17c7a49-3121-4292-95ff-51891aa066d1.dat,/tmp/tmpc6lic4p9/files/2/8/1/dataset_2811f816-8532-4ddd-8e29-9a6ed7dad54e.dat,/tmp/tmpc6lic4p9/files/e/7/4/dataset_e74d0182-807e-40a8-b67a-ac088fc2e02c.dat,/tmp/tmpc6lic4p9/files/9/d/c/dataset_9dc55c98-4ab9-4272-a680-9b3129954367.dat,/tmp/tmpc6lic4p9/files/9/5/6/dataset_95699db9-77cf-4ae1-8454-4f255f3cb62a.dat,/tmp/tmpc6lic4p9/files/1/1/9/dataset_11979c28-82ee-43c4-9e43-f34cb541f96b.dat,/tmp/tmpc6lic4p9/files/3/f/5/dataset_3f53cb86-2d2b-429a-bf51-e276bbe393fa.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpc6lic4p9/files/4/6/5/dataset_465a53ab-8770-4514-a9b3-227f79646eb7.dat:part_A.gb,/tmp/tmpc6lic4p9/files/a/e/2/dataset_ae22d5d2-cde0-45b5-9e8e-67b5cbd586fa.dat:part_B.gb,/tmp/tmpc6lic4p9/files/e/6/4/dataset_e64057b1-43b3-4788-8891-77bcd297223c.dat:part_C.gb,/tmp/tmpc6lic4p9/files/1/d/1/dataset_1d1f9832-b58e-48c2-b1b3-6c3fb18e9890.dat:part_D.gb,/tmp/tmpc6lic4p9/files/6/7/3/dataset_6732fc79-081e-4edf-bccc-a0087520172a.dat:part_E.gb,/tmp/tmpc6lic4p9/files/b/1/7/dataset_b17c7a49-3121-4292-95ff-51891aa066d1.dat:part_F.gb,/tmp/tmpc6lic4p9/files/2/8/1/dataset_2811f816-8532-4ddd-8e29-9a6ed7dad54e.dat:part_G.gb,/tmp/tmpc6lic4p9/files/e/7/4/dataset_e74d0182-807e-40a8-b67a-ac088fc2e02c.dat:part_H.gb,/tmp/tmpc6lic4p9/files/9/d/c/dataset_9dc55c98-4ab9-4272-a680-9b3129954367.dat:part_I.gb,/tmp/tmpc6lic4p9/files/9/5/6/dataset_95699db9-77cf-4ae1-8454-4f255f3cb62a.dat:part_J.gb,/tmp/tmpc6lic4p9/files/1/1/9/dataset_11979c28-82ee-43c4-9e43-f34cb541f96b.dat:part_K.gb,/tmp/tmpc6lic4p9/files/3/f/5/dataset_3f53cb86-2d2b-429a-bf51-e276bbe393fa.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/tmpc6lic4p9/job_working_directory/000/14/outputs/dataset_ac2d98e7-ff55-4a94-9e79-861b07d63528.dat' && echo DEBUG && ls 'outdir_gb'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-26T10:00:43.823779",
+                    "create_time": "2025-05-26T11:24:01.275241",
                     "dependencies": [],
-                    "exit_code": 1,
-                    "external_id": "114506",
+                    "exit_code": 0,
+                    "external_id": "151844",
                     "galaxy_version": "24.2",
                     "handler": null,
-                    "history_id": "66f8380583c086e1",
-                    "id": "7f406d9538852eeb",
+                    "history_id": "fcc5b7d13a1328f6",
+                    "id": "c9445e550eef23d0",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "41ca6db0600d7999",
+                            "id": "c173cff58a987f8f",
                             "src": "hda",
-                            "uuid": "1a1ee32d-eed7-47fd-b491-4f0799b44a85"
+                            "uuid": "2bdf436f-52cc-4c6e-afdb-3f051629900f"
                         },
                         "genbank_files1": {
-                            "id": "66f8380583c086e1",
+                            "id": "fcc5b7d13a1328f6",
                             "src": "hda",
-                            "uuid": "44129191-5531-4cc9-b37b-fec4e3c677d5"
+                            "uuid": "465a53ab-8770-4514-a9b3-227f79646eb7"
                         },
                         "genbank_files10": {
-                            "id": "d3a48cfe9e5a1f02",
+                            "id": "cf75f655bb15877b",
                             "src": "hda",
-                            "uuid": "c7cf96af-ab1c-4199-821f-5bb5b947752f"
+                            "uuid": "95699db9-77cf-4ae1-8454-4f255f3cb62a"
                         },
                         "genbank_files11": {
-                            "id": "4fffd7776804f395",
+                            "id": "744832bdd7ccd728",
                             "src": "hda",
-                            "uuid": "0a5139e7-7d83-48f1-a1c9-458a1e72685c"
+                            "uuid": "11979c28-82ee-43c4-9e43-f34cb541f96b"
                         },
                         "genbank_files12": {
-                            "id": "193b12b5837c3789",
+                            "id": "855b83dd0dec8eab",
                             "src": "hda",
-                            "uuid": "fb361f22-020c-4972-8661-f1f57d1a7afa"
+                            "uuid": "3f53cb86-2d2b-429a-bf51-e276bbe393fa"
                         },
                         "genbank_files2": {
-                            "id": "afa012b5b55ac394",
+                            "id": "df00a2d9def0cc87",
                             "src": "hda",
-                            "uuid": "61f5f19f-147b-46fd-8900-a8530f311835"
+                            "uuid": "ae22d5d2-cde0-45b5-9e8e-67b5cbd586fa"
                         },
                         "genbank_files3": {
-                            "id": "c1bc3f2cd94aab77",
+                            "id": "d9e72a80becfe6e7",
                             "src": "hda",
-                            "uuid": "440b34e7-490e-49bd-9b29-6afcabe5f6f6"
+                            "uuid": "e64057b1-43b3-4788-8891-77bcd297223c"
                         },
                         "genbank_files4": {
-                            "id": "f1661b71781d8acc",
+                            "id": "038c626e299361e9",
                             "src": "hda",
-                            "uuid": "a3fca212-b8dc-4579-901c-612b806241af"
+                            "uuid": "1d1f9832-b58e-48c2-b1b3-6c3fb18e9890"
                         },
                         "genbank_files5": {
-                            "id": "e1129f30c30438be",
+                            "id": "c7c3cd49f3337c1a",
                             "src": "hda",
-                            "uuid": "5398f2cb-1a25-45e5-9ba0-cd79a88b6e88"
+                            "uuid": "6732fc79-081e-4edf-bccc-a0087520172a"
                         },
                         "genbank_files6": {
-                            "id": "abbaf1e2c3c282ad",
+                            "id": "51c35891e43131e2",
                             "src": "hda",
-                            "uuid": "f505293a-8223-4da2-a22c-aa261d4955ec"
+                            "uuid": "b17c7a49-3121-4292-95ff-51891aa066d1"
                         },
                         "genbank_files7": {
-                            "id": "18bb6cd07b986e37",
+                            "id": "84db48b219855f4d",
                             "src": "hda",
-                            "uuid": "c50e4b1f-c72a-4272-b324-e1c2c7d50293"
+                            "uuid": "2811f816-8532-4ddd-8e29-9a6ed7dad54e"
                         },
                         "genbank_files8": {
-                            "id": "82689942017f4326",
+                            "id": "cf00b67a5455eb5a",
                             "src": "hda",
-                            "uuid": "00d79560-f944-4d8e-98e7-f516684a6100"
+                            "uuid": "e74d0182-807e-40a8-b67a-ac088fc2e02c"
                         },
                         "genbank_files9": {
-                            "id": "ecc2b8a59c690090",
+                            "id": "a3780ecc1a00a0d8",
                             "src": "hda",
-                            "uuid": "3d5bb0fb-d610-4939-8fc5-999174fee5ca"
+                            "uuid": "9dc55c98-4ab9-4272-a680-9b3129954367"
                         }
                     },
-                    "job_messages": [
-                        {
-                            "code_desc": "",
-                            "desc": "Fatal error: Exit code 1 ()",
-                            "error_level": 3,
-                            "exit_code": 1,
-                            "type": "exit_code"
-                        }
-                    ],
+                    "job_messages": [],
                     "job_metrics": [],
                     "job_runner_name": null,
                     "job_stderr": "",
@@ -116,45 +108,60 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "afa012b5b55ac394",
+                            "id": "df00a2d9def0cc87",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
+                        "__new_primary_file_construct_gb|construct_1__": {
+                            "id": "fedb85639c7c80b9",
+                            "src": "hda",
+                            "uuid": "4bf90377-e4de-4d13-8ebc-39a53494ea2a"
+                        },
+                        "__new_primary_file_construct_gb|construct_2__": {
+                            "id": "bd75ec7b3d9705ea",
+                            "src": "hda",
+                            "uuid": "ac9bac0c-348b-46b7-a882-60f56867cc30"
+                        },
+                        "__new_primary_file_construct_gb|construct_3__": {
+                            "id": "7eb30039064fccdd",
+                            "src": "hda",
+                            "uuid": "48e39545-a44e-410b-859b-01fcf6189002"
+                        },
+                        "__new_primary_file_construct_gb|construct_4__": {
+                            "id": "61cc0a7b70456dfd",
+                            "src": "hda",
+                            "uuid": "df8aca7f-8413-430f-b35f-7dac694ee0b6"
+                        },
                         "output_zip": {
-                            "id": "7f406d9538852eeb",
+                            "id": "c9445e550eef23d0",
                             "src": "hda",
-                            "uuid": "acb064d7-2781-46fe-98df-716fee024c8d"
+                            "uuid": "ac2d98e7-ff55-4a94-9e79-861b07d63528"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
                         "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
                         "assembly_plan_name": "\"Type2sRestrictionAssembly\"",
-                        "chromInfo": "\"/tmp/tmpy2ysv6tn/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmpc6lic4p9/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
                         "domesticated_input": null,
                         "genbank_files": "{\"values\": [{\"id\": 1, \"src\": \"hdca\"}]}",
                         "topology": "\"circular\""
                     },
-                    "state": "error",
-                    "stderr": "\rassembly:   0%|          | 0/5 [00:00<?, ?it/s, now=None]Traceback (most recent call last):\n  File \"/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py\", line 171, in <module>\n    cloning_simulation(\n    ~~~~~~~~~~~~~~~~~~^\n        args.parts_files, args.domesticated_seq,\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    ...<3 lines>...\n        args.output_simulation, args.enzyme, args.outdir_gb\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    )\n    ^\n  File \"/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py\", line 97, in cloning_simulation\n    simulation = assembly_plan.simulate(sequence_repository=repository)\n  File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/AssemblyPlan/AssemblyPlan.py\", line 251, in simulate\n    simulation_result = assembly.simulate(sequence_repository)\n  File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/Assembly/builtin_assembly_classes/Type2sRestrictionAssembly.py\", line 181, in simulate\n    records = sequence_repository.get_records(self.parts)\n  File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 120, in get_records\n    raise NotInRepositoryError(not_in_repository, repository=self)\ndnacauldron.SequenceRepository.NotInRepositoryError: Parts not found in repo: part1, part2, part3, part4, part5, part6\n\r                                                         \r",
-                    "stdout": "                       1       2       3       4       5       6\n0                                                               \nID                 part1   part2   part3   part4   part5   part6\nconstruct_3  construct_1  part_L  part_J  part_K     NaN     NaN\nconstruct_4  construct_2  part_L  part_J  part_K     NaN     NaN\nconstruct_1       part_A  part_B  part_C  part_D  part_E  part_F\nconstruct_2       part_A  part_G  part_H  part_I  part_F     NaN\nSimulating assembly plan assambly...\n",
+                    "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.38it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.18it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.77it/s, now=None]\r                                                                 \r",
+                    "stdout": "                       1       2       3       4       5       6\n0                                                               \nconstruct_3  construct_1  part_L  part_J  part_K     NaN     NaN\nconstruct_4  construct_2  part_L  part_J  part_K     NaN     NaN\nconstruct_1       part_A  part_B  part_C  part_D  part_E  part_F\nconstruct_2       part_A  part_G  part_H  part_I  part_F     NaN\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\nDEBUG\nconstruct_1.gb\nconstruct_2.gb\nconstruct_3.gb\nconstruct_4.gb\n",
                     "tool_id": "cloning_simulation",
-                    "tool_stderr": "\rassembly:   0%|          | 0/5 [00:00<?, ?it/s, now=None]Traceback (most recent call last):\n  File \"/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py\", line 171, in <module>\n    cloning_simulation(\n    ~~~~~~~~~~~~~~~~~~^\n        args.parts_files, args.domesticated_seq,\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    ...<3 lines>...\n        args.output_simulation, args.enzyme, args.outdir_gb\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    )\n    ^\n  File \"/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py\", line 97, in cloning_simulation\n    simulation = assembly_plan.simulate(sequence_repository=repository)\n  File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/AssemblyPlan/AssemblyPlan.py\", line 251, in simulate\n    simulation_result = assembly.simulate(sequence_repository)\n  File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/Assembly/builtin_assembly_classes/Type2sRestrictionAssembly.py\", line 181, in simulate\n    records = sequence_repository.get_records(self.parts)\n  File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 120, in get_records\n    raise NotInRepositoryError(not_in_repository, repository=self)\ndnacauldron.SequenceRepository.NotInRepositoryError: Parts not found in repo: part1, part2, part3, part4, part5, part6\n\r                                                         \r",
-                    "tool_stdout": "                       1       2       3       4       5       6\n0                                                               \nID                 part1   part2   part3   part4   part5   part6\nconstruct_3  construct_1  part_L  part_J  part_K     NaN     NaN\nconstruct_4  construct_2  part_L  part_J  part_K     NaN     NaN\nconstruct_1       part_A  part_B  part_C  part_D  part_E  part_F\nconstruct_2       part_A  part_G  part_H  part_I  part_F     NaN\nSimulating assembly plan assambly...\n",
-                    "update_time": "2025-05-26T10:00:52.817543",
+                    "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.38it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.18it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.77it/s, now=None]\r                                                                 \r",
+                    "tool_stdout": "                       1       2       3       4       5       6\n0                                                               \nconstruct_3  construct_1  part_L  part_J  part_K     NaN     NaN\nconstruct_4  construct_2  part_L  part_J  part_K     NaN     NaN\nconstruct_1       part_A  part_B  part_C  part_D  part_E  part_F\nconstruct_2       part_A  part_G  part_H  part_I  part_F     NaN\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\nDEBUG\nconstruct_1.gb\nconstruct_2.gb\nconstruct_3.gb\nconstruct_4.gb\n",
+                    "update_time": "2025-05-26T11:24:14.526803",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "66f8380583c086e1"
+                    "user_id": "fcc5b7d13a1328f6"
                 },
-                "output_problems": [
-                    "Job in error state.. tool_id: cloning_simulation, exit_code: 1, stderr: \rassembly:   0%|          | 0/5 [00:00<?, ?it/s, now=None]Traceback (most recent call last):\n  File \"/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py\", line 171, in <module>\n    cloning_simulation(\n    ~~~~~~~~~~~~~~~~~~^\n        args.parts_files, args.domesticated_seq,\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    ...<3 lines>...\n        args.output_simulation, args.enzyme, args.outdir_gb\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    )\n    ^\n  File \"/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py\", line 97, in cloning_simulation\n    simulation = assembly_plan.simulate(sequence_repository=repository)\n  File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/AssemblyPlan/AssemblyPlan.py\", line 251, in simulate\n    simulation_result = assembly.simulate(sequence_repository)\n  File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/Assembly/builtin_assembly_classes/Type2sRestrictionAssembly.py\", line 181, in simulate\n    records = sequence_repository.get_records(self.parts)\n  File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 120, in get_records\n    raise NotInRepositoryError(not_in_repository, repository=self)\ndnacauldron.SequenceRepository.NotInRepositoryError: Parts not found in repo: part1, part2, part3, part4, part5, part6\n\r                                                         \r.",
-                    "Job in error state.. tool_id: cloning_simulation, exit_code: 1, stderr: \rassembly:   0%|          | 0/5 [00:00<?, ?it/s, now=None]Traceback (most recent call last):\n  File \"/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py\", line 171, in <module>\n    cloning_simulation(\n    ~~~~~~~~~~~~~~~~~~^\n        args.parts_files, args.domesticated_seq,\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    ...<3 lines>...\n        args.output_simulation, args.enzyme, args.outdir_gb\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    )\n    ^\n  File \"/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py\", line 97, in cloning_simulation\n    simulation = assembly_plan.simulate(sequence_repository=repository)\n  File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/AssemblyPlan/AssemblyPlan.py\", line 251, in simulate\n    simulation_result = assembly.simulate(sequence_repository)\n  File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/Assembly/builtin_assembly_classes/Type2sRestrictionAssembly.py\", line 181, in simulate\n    records = sequence_repository.get_records(self.parts)\n  File \"/home/rkhaled/miniconda3/envs/mulled-v1-6c2b9ebb475a37bd0d9ca7857474e8574719e546de882810f7828fe5993a8adf/lib/python3.13/site-packages/dnacauldron/SequenceRepository.py\", line 120, in get_records\n    raise NotInRepositoryError(not_in_repository, repository=self)\ndnacauldron.SequenceRepository.NotInRepositoryError: Parts not found in repo: part1, part2, part3, part4, part5, part6\n\r                                                         \r.",
-                    "Output collection 'construct_gb': expected to have 4 elements, but it had 0."
-                ],
-                "status": "failure",
+                "status": "success",
                 "test_index": 0,
-                "time_seconds": 51.33188271522522,
+                "time_seconds": 53.70547914505005,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
@@ -166,21 +173,21 @@
                 "inputs": {
                     "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "3abc48ca4f3e8d37",
+                        "id": "3af58a5242e85ea6",
                         "src": "hda"
                     },
                     "assembly_plan_name": "GibsonAssembly",
                     "genbank_files": {
-                        "id": "c1bc3f2cd94aab77",
+                        "id": "d9e72a80becfe6e7",
                         "src": "hdca"
                     },
                     "topology": "circular"
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpy2ysv6tn/files/6/e/b/dataset_6eb20de3-662c-4428-907f-29cbe0a5cc20.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpy2ysv6tn/files/b/6/f/dataset_b6fe141d-f27d-475d-95fd-501e032f0c3b.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'GibsonAssembly' --file_name_mapping '/tmp/tmpy2ysv6tn/files/b/6/f/dataset_b6fe141d-f27d-475d-95fd-501e032f0c3b.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/tmpy2ysv6tn/job_working_directory/000/17/outputs/dataset_41d853b4-adb6-4605-bbaf-d7178b962d92.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpc6lic4p9/files/1/d/6/dataset_1d624c24-e864-463a-9fd3-0c63fd46cbd2.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpc6lic4p9/files/5/0/5/dataset_505aafa2-5e9c-44bb-9d26-3f3e6248fc9b.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'GibsonAssembly' --file_name_mapping '/tmp/tmpc6lic4p9/files/5/0/5/dataset_505aafa2-5e9c-44bb-9d26-3f3e6248fc9b.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/tmpc6lic4p9/job_working_directory/000/17/outputs/dataset_0f617192-e625-4d9e-8358-0b9b1b0aa024.dat' && echo DEBUG && ls 'outdir_gb'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-26T10:01:03.681089",
+                    "create_time": "2025-05-26T11:24:25.394299",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -360,21 +367,21 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "114833",
+                    "external_id": "152204",
                     "galaxy_version": "24.2",
                     "handler": null,
-                    "history_id": "afa012b5b55ac394",
-                    "id": "991084752433b654",
+                    "history_id": "df00a2d9def0cc87",
+                    "id": "7eb30039064fccdd",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "3abc48ca4f3e8d37",
+                            "id": "3af58a5242e85ea6",
                             "src": "hda",
-                            "uuid": "6eb20de3-662c-4428-907f-29cbe0a5cc20"
+                            "uuid": "1d624c24-e864-463a-9fd3-0c63fd46cbd2"
                         },
                         "genbank_files1": {
-                            "id": "9677ca5db33658a1",
+                            "id": "3b85967b9c87a1cc",
                             "src": "hda",
-                            "uuid": "b6fe141d-f27d-475d-95fd-501e032f0c3b"
+                            "uuid": "505aafa2-5e9c-44bb-9d26-3f3e6248fc9b"
                         }
                     },
                     "job_messages": [],
@@ -385,55 +392,55 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "f1661b71781d8acc",
+                            "id": "038c626e299361e9",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "__new_primary_file_construct_gb|construct_1__": {
-                            "id": "400090ecd3303f56",
+                            "id": "9773f41fb184880d",
                             "src": "hda",
-                            "uuid": "e24f4e4b-a2c0-4ebc-ac8a-e80cb0ce1266"
+                            "uuid": "0d66c887-a6a3-4fd6-978a-9c0e2ce4b317"
                         },
                         "__new_primary_file_construct_gb|construct_2__": {
-                            "id": "974cc872eaa7d6a0",
+                            "id": "41b44b0c750630a6",
                             "src": "hda",
-                            "uuid": "baec54da-c9df-4fb2-a156-7aaaabc3ee2d"
+                            "uuid": "be7e7183-3b0d-40dd-9908-3e8dcd7f80bf"
                         },
                         "__new_primary_file_construct_gb|construct_3__": {
-                            "id": "8586d482e8f05e33",
+                            "id": "bfc60c3d9bac68ee",
                             "src": "hda",
-                            "uuid": "8649dd5f-afe7-44fa-b07c-aba6fdb3c6fc"
+                            "uuid": "2c7f645c-33d1-4a91-9608-221494b22be4"
                         },
                         "output_zip": {
-                            "id": "991084752433b654",
+                            "id": "5c8c8c874b5b07c6",
                             "src": "hda",
-                            "uuid": "41d853b4-adb6-4605-bbaf-d7178b962d92"
+                            "uuid": "0f617192-e625-4d9e-8358-0b9b1b0aa024"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
                         "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
                         "assembly_plan_name": "\"GibsonAssembly\"",
-                        "chromInfo": "\"/tmp/tmpy2ysv6tn/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmpc6lic4p9/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.32it/s, now=None]\rassembly:  60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:00<00:00,  4.24it/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.63it/s, now=None]\r                                                                 \r",
-                    "stdout": "                  1       2       3        4        5\n0                                                    \nconstruct     parts     NaN     NaN      NaN      NaN\nconstruct_1  Frag_1  Frag_2  Frag_3   Frag_4   Frag_5\nconstruct_2  Frag_1  Frag_2  Frag_3  Frag_4b   Frag_5\nconstruct_3  Frag_1  Frag_2  Frag_3  Frag_4c  Frag_5b\nconstruct_4  Frag_1  Frag_2  Frag_3   Frag_4      NaN\nconstruct_5  Frag_1  Frag_2  Frag_3   Frag_4  Frag_4b\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 3}\nGenerating assemblies reports...\n",
+                    "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.24it/s, now=None]\rassembly:  60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:00<00:00,  4.27it/s, now=None]\rassembly:  80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  | 4/5 [00:00<00:00,  4.28it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:01<00:00,  3.48it/s, now=None]\r                                                                 \r",
+                    "stdout": "                  1       2       3        4        5\n0                                                    \nconstruct     parts     NaN     NaN      NaN      NaN\nconstruct_1  Frag_1  Frag_2  Frag_3   Frag_4   Frag_5\nconstruct_2  Frag_1  Frag_2  Frag_3  Frag_4b   Frag_5\nconstruct_3  Frag_1  Frag_2  Frag_3  Frag_4c  Frag_5b\nconstruct_4  Frag_1  Frag_2  Frag_3   Frag_4      NaN\nconstruct_5  Frag_1  Frag_2  Frag_3   Frag_4  Frag_4b\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 3}\nGenerating assemblies reports...\nDEBUG\nconstruct_1.gb\nconstruct_2.gb\nconstruct_3.gb\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.32it/s, now=None]\rassembly:  60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:00<00:00,  4.24it/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.63it/s, now=None]\r                                                                 \r",
-                    "tool_stdout": "                  1       2       3        4        5\n0                                                    \nconstruct     parts     NaN     NaN      NaN      NaN\nconstruct_1  Frag_1  Frag_2  Frag_3   Frag_4   Frag_5\nconstruct_2  Frag_1  Frag_2  Frag_3  Frag_4b   Frag_5\nconstruct_3  Frag_1  Frag_2  Frag_3  Frag_4c  Frag_5b\nconstruct_4  Frag_1  Frag_2  Frag_3   Frag_4      NaN\nconstruct_5  Frag_1  Frag_2  Frag_3   Frag_4  Frag_4b\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 3}\nGenerating assemblies reports...\n",
-                    "update_time": "2025-05-26T10:01:15.563285",
+                    "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.24it/s, now=None]\rassembly:  60%|\u2588\u2588\u2588\u2588\u2588\u2588    | 3/5 [00:00<00:00,  4.27it/s, now=None]\rassembly:  80%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588  | 4/5 [00:00<00:00,  4.28it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 5/5 [00:01<00:00,  3.48it/s, now=None]\r                                                                 \r",
+                    "tool_stdout": "                  1       2       3        4        5\n0                                                    \nconstruct     parts     NaN     NaN      NaN      NaN\nconstruct_1  Frag_1  Frag_2  Frag_3   Frag_4   Frag_5\nconstruct_2  Frag_1  Frag_2  Frag_3  Frag_4b   Frag_5\nconstruct_3  Frag_1  Frag_2  Frag_3  Frag_4c  Frag_5b\nconstruct_4  Frag_1  Frag_2  Frag_3   Frag_4      NaN\nconstruct_5  Frag_1  Frag_2  Frag_3   Frag_4  Frag_4b\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 3}\nGenerating assemblies reports...\nDEBUG\nconstruct_1.gb\nconstruct_2.gb\nconstruct_3.gb\n",
+                    "update_time": "2025-05-26T11:24:37.446583",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "66f8380583c086e1"
+                    "user_id": "fcc5b7d13a1328f6"
                 },
                 "status": "success",
                 "test_index": 1,
-                "time_seconds": 22.980356216430664,
+                "time_seconds": 22.626197814941406,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
@@ -445,21 +452,113 @@
                 "inputs": {
                     "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "94fb43fdf96ceebf",
+                        "id": "48d1542b43af9171",
                         "src": "hda"
                     },
                     "assembly_plan_name": "LigaseCyclingReactionAssembly",
                     "genbank_files": {
-                        "id": "e1129f30c30438be",
+                        "id": "c7c3cd49f3337c1a",
                         "src": "hdca"
                     },
                     "topology": "circular"
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpy2ysv6tn/files/4/6/9/dataset_469df048-1608-4e28-a8c3-576433c72c7f.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpy2ysv6tn/files/1/8/9/dataset_18952cef-c715-4776-9f53-69156da89d01.dat,/tmp/tmpy2ysv6tn/files/8/1/3/dataset_81322056-69eb-4dcd-88ee-6cb78ff617db.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'LigaseCyclingReactionAssembly' --file_name_mapping '/tmp/tmpy2ysv6tn/files/1/8/9/dataset_18952cef-c715-4776-9f53-69156da89d01.dat:RFP_GFP_plasmid_BOs.fa,/tmp/tmpy2ysv6tn/files/8/1/3/dataset_81322056-69eb-4dcd-88ee-6cb78ff617db.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/tmpy2ysv6tn/job_working_directory/000/21/outputs/dataset_d2df6190-9462-41aa-92d2-d4a5c1a605d3.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpc6lic4p9/files/a/1/f/dataset_a1f989b9-e79f-4bd7-9cf3-66675c1d1e94.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpc6lic4p9/files/a/6/1/dataset_a617ae1f-70e3-4873-bdcc-f2268ffeaad4.dat,/tmp/tmpc6lic4p9/files/9/4/1/dataset_941b4e95-600a-485c-a3fa-1dcf0defdd76.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'LigaseCyclingReactionAssembly' --file_name_mapping '/tmp/tmpc6lic4p9/files/a/6/1/dataset_a617ae1f-70e3-4873-bdcc-f2268ffeaad4.dat:RFP_GFP_plasmid_BOs.fa,/tmp/tmpc6lic4p9/files/9/4/1/dataset_941b4e95-600a-485c-a3fa-1dcf0defdd76.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/tmpc6lic4p9/job_working_directory/000/21/outputs/dataset_827e64a1-7f84-4f9e-8468-eabb3684efa3.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-26T10:01:27.721793",
+                    "create_time": "2025-05-26T11:24:49.729783",
+                    "dependencies": [],
+                    "exit_code": 0,
+                    "external_id": "152654",
+                    "galaxy_version": "24.2",
+                    "handler": null,
+                    "history_id": "d9e72a80becfe6e7",
+                    "id": "5c8c8c874b5b07c6",
+                    "inputs": {
+                        "assembly_csv": {
+                            "id": "48d1542b43af9171",
+                            "src": "hda",
+                            "uuid": "a1f989b9-e79f-4bd7-9cf3-66675c1d1e94"
+                        },
+                        "genbank_files1": {
+                            "id": "b8df5ed9fe071f18",
+                            "src": "hda",
+                            "uuid": "a617ae1f-70e3-4873-bdcc-f2268ffeaad4"
+                        },
+                        "genbank_files2": {
+                            "id": "6de9142d4b5ca725",
+                            "src": "hda",
+                            "uuid": "941b4e95-600a-485c-a3fa-1dcf0defdd76"
+                        }
+                    },
+                    "job_messages": [],
+                    "job_metrics": [],
+                    "job_runner_name": null,
+                    "job_stderr": "",
+                    "job_stdout": "",
+                    "model_class": "Job",
+                    "output_collections": {
+                        "construct_gb": {
+                            "id": "51c35891e43131e2",
+                            "src": "hdca"
+                        }
+                    },
+                    "outputs": {
+                        "output_zip": {
+                            "id": "56521fbfdcb4ef20",
+                            "src": "hda",
+                            "uuid": "827e64a1-7f84-4f9e-8468-eabb3684efa3"
+                        }
+                    },
+                    "params": {
+                        "__input_ext": "\"input\"",
+                        "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
+                        "assembly_plan_name": "\"LigaseCyclingReactionAssembly\"",
+                        "chromInfo": "\"/tmp/tmpc6lic4p9/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.16it/s, now=None]\r                                                                 \r",
+                    "stdout": "                                 1   ...           14\n0                                    ...             \nConstruct1         RFP_GFP_BO_10232  ...  p7_backbone\nConstruct2_flawed  RFP_GFP_BO_10232  ...          NaN\n\n[2 rows x 14 columns]\nSimulating 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.16it/s, now=None]\r                                                                 \r",
+                    "tool_stdout": "                                 1   ...           14\n0                                    ...             \nConstruct1         RFP_GFP_BO_10232  ...  p7_backbone\nConstruct2_flawed  RFP_GFP_BO_10232  ...          NaN\n\n[2 rows x 14 columns]\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 0}\nGenerating assemblies reports...\n",
+                    "update_time": "2025-05-26T11:25:02.028309",
+                    "user_email": "planemo@galaxyproject.org",
+                    "user_id": "fcc5b7d13a1328f6"
+                },
+                "status": "success",
+                "test_index": 2,
+                "time_seconds": 24.395533084869385,
+                "tool_id": "cloning_simulation",
+                "tool_version": "0.1.0+galaxy0"
+            },
+            "has_data": true,
+            "id": "cloning_simulation-2"
+        },
+        {
+            "data": {
+                "inputs": {
+                    "adv|use_file_names_as_ids": true,
+                    "assembly_csv": {
+                        "id": "2b17a3fa18c23b8a",
+                        "src": "hda"
+                    },
+                    "assembly_plan_name": "BASICAssembly",
+                    "genbank_files": {
+                        "id": "84db48b219855f4d",
+                        "src": "hdca"
+                    },
+                    "topology": "circular"
+                },
+                "job": {
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpc6lic4p9/files/6/b/e/dataset_6be38f7d-b5c4-4308-85d1-3bd6b4dae4fc.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpc6lic4p9/files/c/b/a/dataset_cba9b297-4dfe-4063-8510-6c48a1b6b7a1.dat,/tmp/tmpc6lic4p9/files/3/e/8/dataset_3e8dfce1-7a05-4665-9277-388e3aa42581.dat,/tmp/tmpc6lic4p9/files/a/5/d/dataset_a5d093c2-0087-453e-b7d1-d94a7cb664e0.dat,/tmp/tmpc6lic4p9/files/0/e/c/dataset_0ec72cc0-2a95-474b-aa77-7a436dad6a9b.dat,/tmp/tmpc6lic4p9/files/d/2/7/dataset_d272199f-2e1b-49e1-a597-5ffa11507e83.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'BASICAssembly' --file_name_mapping '/tmp/tmpc6lic4p9/files/c/b/a/dataset_cba9b297-4dfe-4063-8510-6c48a1b6b7a1.dat:GFP.gb,/tmp/tmpc6lic4p9/files/3/e/8/dataset_3e8dfce1-7a05-4665-9277-388e3aa42581.dat:p15A_kan.gb,/tmp/tmpc6lic4p9/files/a/5/d/dataset_a5d093c2-0087-453e-b7d1-d94a7cb664e0.dat:promoter.gb,/tmp/tmpc6lic4p9/files/0/e/c/dataset_0ec72cc0-2a95-474b-aa77-7a436dad6a9b.dat:RFP.gb,/tmp/tmpc6lic4p9/files/d/2/7/dataset_d272199f-2e1b-49e1-a597-5ffa11507e83.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/tmpc6lic4p9/job_working_directory/000/28/outputs/dataset_7435335e-896e-47f4-89c7-3a6c2c25f247.dat'",
+                    "command_version": "",
+                    "copied_from_job_id": null,
+                    "create_time": "2025-05-26T11:25:23.055332",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -639,26 +738,41 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "115234",
+                    "external_id": "153248",
                     "galaxy_version": "24.2",
                     "handler": null,
-                    "history_id": "c1bc3f2cd94aab77",
-                    "id": "de23ac49d5c4a7c8",
+                    "history_id": "038c626e299361e9",
+                    "id": "56521fbfdcb4ef20",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "94fb43fdf96ceebf",
+                            "id": "2b17a3fa18c23b8a",
                             "src": "hda",
-                            "uuid": "469df048-1608-4e28-a8c3-576433c72c7f"
+                            "uuid": "6be38f7d-b5c4-4308-85d1-3bd6b4dae4fc"
                         },
                         "genbank_files1": {
-                            "id": "de23ac49d5c4a7c8",
+                            "id": "aed8b1a22d89d8c9",
                             "src": "hda",
-                            "uuid": "18952cef-c715-4776-9f53-69156da89d01"
+                            "uuid": "cba9b297-4dfe-4063-8510-6c48a1b6b7a1"
                         },
                         "genbank_files2": {
-                            "id": "de6580a03a572321",
+                            "id": "eba7a310b55aafdd",
+                            "src": "hda",
+                            "uuid": "3e8dfce1-7a05-4665-9277-388e3aa42581"
+                        },
+                        "genbank_files3": {
+                            "id": "eca1089322e0a5fc",
                             "src": "hda",
-                            "uuid": "81322056-69eb-4dcd-88ee-6cb78ff617db"
+                            "uuid": "a5d093c2-0087-453e-b7d1-d94a7cb664e0"
+                        },
+                        "genbank_files4": {
+                            "id": "0b586e83183b9891",
+                            "src": "hda",
+                            "uuid": "0ec72cc0-2a95-474b-aa77-7a436dad6a9b"
+                        },
+                        "genbank_files5": {
+                            "id": "18d15f79e0c5cee5",
+                            "src": "hda",
+                            "uuid": "d272199f-2e1b-49e1-a597-5ffa11507e83"
                         }
                     },
                     "job_messages": [],
@@ -669,66 +783,66 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "abbaf1e2c3c282ad",
+                            "id": "cf00b67a5455eb5a",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "output_zip": {
-                            "id": "fdc5ed0a88852c9a",
+                            "id": "684e8d7e5eb8731e",
                             "src": "hda",
-                            "uuid": "d2df6190-9462-41aa-92d2-d4a5c1a605d3"
+                            "uuid": "7435335e-896e-47f4-89c7-3a6c2c25f247"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
                         "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
-                        "assembly_plan_name": "\"LigaseCyclingReactionAssembly\"",
-                        "chromInfo": "\"/tmp/tmpy2ysv6tn/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "assembly_plan_name": "\"BASICAssembly\"",
+                        "chromInfo": "\"/tmp/tmpc6lic4p9/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
                         "dbkey": "\"?\"",
                         "domesticated_input": null,
-                        "genbank_files": "{\"values\": [{\"id\": 5, \"src\": \"hdca\"}]}",
+                        "genbank_files": "{\"values\": [{\"id\": 7, \"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.27it/s, now=None]\r                                                                 \r",
-                    "stdout": "                                 1   ...           14\n0                                    ...             \nConstruct1         RFP_GFP_BO_10232  ...  p7_backbone\nConstruct2_flawed  RFP_GFP_BO_10232  ...          NaN\n\n[2 rows x 14 columns]\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 0}\nGenerating assemblies reports...\n",
+                    "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, 50.04it/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/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.27it/s, now=None]\r                                                                 \r",
-                    "tool_stdout": "                                 1   ...           14\n0                                    ...             \nConstruct1         RFP_GFP_BO_10232  ...  p7_backbone\nConstruct2_flawed  RFP_GFP_BO_10232  ...          NaN\n\n[2 rows x 14 columns]\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 2, 'valid_assemblies': 0}\nGenerating assemblies reports...\n",
-                    "update_time": "2025-05-26T10:01:40.416074",
+                    "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, 50.04it/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-26T11:25:33.071688",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "66f8380583c086e1"
+                    "user_id": "fcc5b7d13a1328f6"
                 },
                 "status": "success",
-                "test_index": 2,
-                "time_seconds": 24.68060541152954,
+                "test_index": 3,
+                "time_seconds": 30.88078260421753,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
             "has_data": true,
-            "id": "cloning_simulation-2"
+            "id": "cloning_simulation-3"
         },
         {
             "data": {
                 "inputs": {
                     "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "b07ae8db70ca0b69",
+                        "id": "8484dc7b019fd65a",
                         "src": "hda"
                     },
-                    "assembly_plan_name": "BASICAssembly",
+                    "assembly_plan_name": "BioBrickStandardAssembly",
                     "genbank_files": {
-                        "id": "18bb6cd07b986e37",
+                        "id": "a3780ecc1a00a0d8",
                         "src": "hdca"
                     },
                     "topology": "circular"
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpy2ysv6tn/files/1/1/b/dataset_11b19080-d21f-4a3e-a516-77bb7f1eb8ff.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpy2ysv6tn/files/c/1/3/dataset_c13c3bb5-74f3-49b4-979e-08064cbcd96e.dat,/tmp/tmpy2ysv6tn/files/2/2/0/dataset_220d8ce3-65a2-4880-9924-e41f685e1386.dat,/tmp/tmpy2ysv6tn/files/2/6/4/dataset_264d7e95-807d-45aa-ada7-244e7896dd95.dat,/tmp/tmpy2ysv6tn/files/7/e/e/dataset_7eede81c-a796-4189-94df-82245763e19f.dat,/tmp/tmpy2ysv6tn/files/c/9/5/dataset_c9537938-db0d-4d07-9eee-2cfeec50a90d.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'BASICAssembly' --file_name_mapping '/tmp/tmpy2ysv6tn/files/c/1/3/dataset_c13c3bb5-74f3-49b4-979e-08064cbcd96e.dat:GFP.gb,/tmp/tmpy2ysv6tn/files/2/2/0/dataset_220d8ce3-65a2-4880-9924-e41f685e1386.dat:p15A_kan.gb,/tmp/tmpy2ysv6tn/files/2/6/4/dataset_264d7e95-807d-45aa-ada7-244e7896dd95.dat:promoter.gb,/tmp/tmpy2ysv6tn/files/7/e/e/dataset_7eede81c-a796-4189-94df-82245763e19f.dat:RFP.gb,/tmp/tmpy2ysv6tn/files/c/9/5/dataset_c9537938-db0d-4d07-9eee-2cfeec50a90d.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/tmpy2ysv6tn/job_working_directory/000/28/outputs/dataset_b055edc9-ea72-46ca-8971-352c46db387e.dat'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpc6lic4p9/files/8/e/2/dataset_8e2dcaab-3dd7-48c4-920e-bdffaad39793.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpc6lic4p9/files/d/4/2/dataset_d4271a43-8722-4344-9562-00e9a36d07e5.dat,/tmp/tmpc6lic4p9/files/2/4/8/dataset_2484bbfb-d4b0-4c8b-a57f-675625f98753.dat,/tmp/tmpc6lic4p9/files/8/3/f/dataset_83f035f7-25fc-4a59-83b2-d377e3cd59ad.dat,/tmp/tmpc6lic4p9/files/5/a/a/dataset_5aa7b19e-0ad1-43b1-9083-954067ff2010.dat,/tmp/tmpc6lic4p9/files/d/6/4/dataset_d646b71c-5393-4291-bcc5-7d6cbe22f055.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'BioBrickStandardAssembly' --file_name_mapping '/tmp/tmpc6lic4p9/files/d/4/2/dataset_d4271a43-8722-4344-9562-00e9a36d07e5.dat:BBa_E0040_GFP.gb,/tmp/tmpc6lic4p9/files/2/4/8/dataset_2484bbfb-d4b0-4c8b-a57f-675625f98753.dat:BBa_J23119_prom.gb,/tmp/tmpc6lic4p9/files/8/3/f/dataset_83f035f7-25fc-4a59-83b2-d377e3cd59ad.dat:BBa_J23119_prom_flawed.gb,/tmp/tmpc6lic4p9/files/5/a/a/dataset_5aa7b19e-0ad1-43b1-9083-954067ff2010.dat:BBa_J61048_term.gb,/tmp/tmpc6lic4p9/files/d/6/4/dataset_d646b71c-5393-4291-bcc5-7d6cbe22f055.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/tmpc6lic4p9/job_working_directory/000/35/outputs/dataset_8086c8c0-24b8-4a51-84db-6b4c9b0e76d0.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-26T10:02:02.222212",
+                    "create_time": "2025-05-26T11:25:53.885012",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -908,41 +1022,41 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "115859",
+                    "external_id": "153816",
                     "galaxy_version": "24.2",
                     "handler": null,
-                    "history_id": "f1661b71781d8acc",
-                    "id": "80951ee9dc2649e8",
+                    "history_id": "c7c3cd49f3337c1a",
+                    "id": "684e8d7e5eb8731e",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "b07ae8db70ca0b69",
+                            "id": "8484dc7b019fd65a",
                             "src": "hda",
-                            "uuid": "11b19080-d21f-4a3e-a516-77bb7f1eb8ff"
+                            "uuid": "8e2dcaab-3dd7-48c4-920e-bdffaad39793"
                         },
                         "genbank_files1": {
-                            "id": "cd28fb0d133db699",
+                            "id": "f007b0e97c7852a9",
                             "src": "hda",
-                            "uuid": "c13c3bb5-74f3-49b4-979e-08064cbcd96e"
+                            "uuid": "d4271a43-8722-4344-9562-00e9a36d07e5"
                         },
                         "genbank_files2": {
-                            "id": "204f425176d83e80",
+                            "id": "0776247cf19fcdeb",
                             "src": "hda",
-                            "uuid": "220d8ce3-65a2-4880-9924-e41f685e1386"
+                            "uuid": "2484bbfb-d4b0-4c8b-a57f-675625f98753"
                         },
                         "genbank_files3": {
-                            "id": "a412e91f962611fc",
+                            "id": "428c69cf899eb78e",
                             "src": "hda",
-                            "uuid": "264d7e95-807d-45aa-ada7-244e7896dd95"
+                            "uuid": "83f035f7-25fc-4a59-83b2-d377e3cd59ad"
                         },
                         "genbank_files4": {
-                            "id": "80951ee9dc2649e8",
+                            "id": "6576e427b69a444e",
                             "src": "hda",
-                            "uuid": "7eede81c-a796-4189-94df-82245763e19f"
+                            "uuid": "5aa7b19e-0ad1-43b1-9083-954067ff2010"
                         },
                         "genbank_files5": {
-                            "id": "02cc6fb051fdc602",
+                            "id": "bd5ff021b11f5160",
                             "src": "hda",
-                            "uuid": "c9537938-db0d-4d07-9eee-2cfeec50a90d"
+                            "uuid": "d646b71c-5393-4291-bcc5-7d6cbe22f055"
                         }
                     },
                     "job_messages": [],
@@ -953,162 +1067,55 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "82689942017f4326",
-                            "src": "hdca"
-                        }
-                    },
-                    "outputs": {
-                        "output_zip": {
-                            "id": "68883cc453ec32a5",
-                            "src": "hda",
-                            "uuid": "b055edc9-ea72-46ca-8971-352c46db387e"
-                        }
-                    },
-                    "params": {
-                        "__input_ext": "\"input\"",
-                        "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
-                        "assembly_plan_name": "\"BASICAssembly\"",
-                        "chromInfo": "\"/tmp/tmpy2ysv6tn/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, 47.54it/s, now=None]\r                                                                 \r",
-                    "stdout": "                       1                 2         3   ...     10        11     12\n0                                                      ...                        \nL2RBS-1P     L2RBS-1P_fwd  L2RBS-1P_adapter       NaN  ...    NaN       NaN    NaN\nLMA-S           LMA-S_fwd     LMA-S_adapter       NaN  ...    NaN       NaN    NaN\nL1RBS-xS     L1RBS-xS_fwd  L1RBS-xS_adapter       NaN  ...    NaN       NaN    NaN\nL1RBS-1P     L1RBS-1P_fwd  L1RBS-1P_adapter       NaN  ...    NaN       NaN    NaN\nL2RBS-xS     L2RBS-xS_fwd  L2RBS-xS_adapter       NaN  ...    NaN       NaN    NaN\nLMA-P           LMA-P_fwd     LMA-P_adapter       NaN  ...    NaN       NaN    NaN\nLMB-S           LMB-S_fwd     LMB-S_adapter       NaN  ...    NaN       NaN    NaN\nLMB-P           LMB-P_fwd     LMB-P_adapter       NaN  ...    NaN       NaN    NaN\nasm_GFP_RFP         LMA-P          promoter  L1RBS-xS  ...  LMB-P  p15A_kan  LMA-S\nasm_RFP_GFP         LMA-P          promoter  L1RBS-xS  ...  LMB-P  p15A_kan  LMA-S\n\n[10 rows x 12 columns]\nSimulating 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, 47.54it/s, now=None]\r                                                                 \r",
-                    "tool_stdout": "                       1                 2         3   ...     10        11     12\n0                                                      ...                        \nL2RBS-1P     L2RBS-1P_fwd  L2RBS-1P_adapter       NaN  ...    NaN       NaN    NaN\nLMA-S           LMA-S_fwd     LMA-S_adapter       NaN  ...    NaN       NaN    NaN\nL1RBS-xS     L1RBS-xS_fwd  L1RBS-xS_adapter       NaN  ...    NaN       NaN    NaN\nL1RBS-1P     L1RBS-1P_fwd  L1RBS-1P_adapter       NaN  ...    NaN       NaN    NaN\nL2RBS-xS     L2RBS-xS_fwd  L2RBS-xS_adapter       NaN  ...    NaN       NaN    NaN\nLMA-P           LMA-P_fwd     LMA-P_adapter       NaN  ...    NaN       NaN    NaN\nLMB-S           LMB-S_fwd     LMB-S_adapter       NaN  ...    NaN       NaN    NaN\nLMB-P           LMB-P_fwd     LMB-P_adapter       NaN  ...    NaN       NaN    NaN\nasm_GFP_RFP         LMA-P          promoter  L1RBS-xS  ...  LMB-P  p15A_kan  LMA-S\nasm_RFP_GFP         LMA-P          promoter  L1RBS-xS  ...  LMB-P  p15A_kan  LMA-S\n\n[10 rows x 12 columns]\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 2, 'errored_assemblies': 8, 'valid_assemblies': 0}\nGenerating assemblies reports...\n",
-                    "update_time": "2025-05-26T10:02:12.965513",
-                    "user_email": "planemo@galaxyproject.org",
-                    "user_id": "66f8380583c086e1"
-                },
-                "status": "success",
-                "test_index": 3,
-                "time_seconds": 32.275617599487305,
-                "tool_id": "cloning_simulation",
-                "tool_version": "0.1.0+galaxy0"
-            },
-            "has_data": true,
-            "id": "cloning_simulation-3"
-        },
-        {
-            "data": {
-                "inputs": {
-                    "adv|use_file_names_as_ids": true,
-                    "assembly_csv": {
-                        "id": "ab2d796f030478a4",
-                        "src": "hda"
-                    },
-                    "assembly_plan_name": "BioBrickStandardAssembly",
-                    "genbank_files": {
-                        "id": "ecc2b8a59c690090",
-                        "src": "hdca"
-                    },
-                    "topology": "circular"
-                },
-                "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpy2ysv6tn/files/5/6/e/dataset_56e880bc-1f93-495f-bfa8-0873cb8182a9.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpy2ysv6tn/files/d/d/e/dataset_dded78e6-5d3a-466d-a378-5793c801f32c.dat,/tmp/tmpy2ysv6tn/files/2/a/0/dataset_2a07a992-6527-4ac7-9c49-7fd9acbdea57.dat,/tmp/tmpy2ysv6tn/files/1/2/f/dataset_12faa3d9-c95d-4c34-9df7-6c53174d4276.dat,/tmp/tmpy2ysv6tn/files/5/8/1/dataset_581a4c55-0ce2-4c3b-a380-756448871f32.dat,/tmp/tmpy2ysv6tn/files/a/b/f/dataset_abf255f7-9841-4991-9b65-598df368ff85.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'BioBrickStandardAssembly' --file_name_mapping '/tmp/tmpy2ysv6tn/files/d/d/e/dataset_dded78e6-5d3a-466d-a378-5793c801f32c.dat:BBa_E0040_GFP.gb,/tmp/tmpy2ysv6tn/files/2/a/0/dataset_2a07a992-6527-4ac7-9c49-7fd9acbdea57.dat:BBa_J23119_prom.gb,/tmp/tmpy2ysv6tn/files/1/2/f/dataset_12faa3d9-c95d-4c34-9df7-6c53174d4276.dat:BBa_J23119_prom_flawed.gb,/tmp/tmpy2ysv6tn/files/5/8/1/dataset_581a4c55-0ce2-4c3b-a380-756448871f32.dat:BBa_J61048_term.gb,/tmp/tmpy2ysv6tn/files/a/b/f/dataset_abf255f7-9841-4991-9b65-598df368ff85.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/tmpy2ysv6tn/job_working_directory/000/35/outputs/dataset_d5e2affd-9228-4b21-8e89-36a43c59ab37.dat' && echo DEBUG && ls 'outdir_gb'",
-                    "command_version": "",
-                    "copied_from_job_id": null,
-                    "create_time": "2025-05-26T10:02:34.725504",
-                    "dependencies": [],
-                    "exit_code": 0,
-                    "external_id": "116476",
-                    "galaxy_version": "24.2",
-                    "handler": null,
-                    "history_id": "e1129f30c30438be",
-                    "id": "2edb1d8c4fcdfa57",
-                    "inputs": {
-                        "assembly_csv": {
-                            "id": "ab2d796f030478a4",
-                            "src": "hda",
-                            "uuid": "56e880bc-1f93-495f-bfa8-0873cb8182a9"
-                        },
-                        "genbank_files1": {
-                            "id": "70033f808724210d",
-                            "src": "hda",
-                            "uuid": "dded78e6-5d3a-466d-a378-5793c801f32c"
-                        },
-                        "genbank_files2": {
-                            "id": "e4c403c1aada23ec",
-                            "src": "hda",
-                            "uuid": "2a07a992-6527-4ac7-9c49-7fd9acbdea57"
-                        },
-                        "genbank_files3": {
-                            "id": "afa1993aa783dac3",
-                            "src": "hda",
-                            "uuid": "12faa3d9-c95d-4c34-9df7-6c53174d4276"
-                        },
-                        "genbank_files4": {
-                            "id": "2edb1d8c4fcdfa57",
-                            "src": "hda",
-                            "uuid": "581a4c55-0ce2-4c3b-a380-756448871f32"
-                        },
-                        "genbank_files5": {
-                            "id": "cc59f77d482719ba",
-                            "src": "hda",
-                            "uuid": "abf255f7-9841-4991-9b65-598df368ff85"
-                        }
-                    },
-                    "job_messages": [],
-                    "job_metrics": [],
-                    "job_runner_name": null,
-                    "job_stderr": "",
-                    "job_stdout": "",
-                    "model_class": "Job",
-                    "output_collections": {
-                        "construct_gb": {
-                            "id": "d3a48cfe9e5a1f02",
+                            "id": "cf75f655bb15877b",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "__new_primary_file_construct_gb|C1_prom_barcode__": {
-                            "id": "b5e4bb927c5912de",
+                            "id": "db302e29238adc09",
                             "src": "hda",
-                            "uuid": "1689e287-c7c5-488c-b397-a0d14018a93a"
+                            "uuid": "d9b71247-a39f-49ea-b279-18a95173730d"
                         },
                         "__new_primary_file_construct_gb|C2_gfp_term__": {
-                            "id": "924199a1dc6199a2",
+                            "id": "a0c89ee18eccf84a",
                             "src": "hda",
-                            "uuid": "82e60c5f-9305-4962-984c-4e667dc08972"
+                            "uuid": "cf4710c7-cf67-4f0e-a486-606e525f5689"
                         },
                         "__new_primary_file_construct_gb|C3_final__": {
-                            "id": "f95eef361447e9a0",
+                            "id": "b326684e3f9ff9a4",
                             "src": "hda",
-                            "uuid": "50703365-ca24-444a-8cc2-ac9467884479"
+                            "uuid": "a4ed1a6f-9385-45da-9eda-3fae86d46b5b"
                         },
                         "output_zip": {
-                            "id": "5165064d73efc2e3",
+                            "id": "e3a5c74dec901fc5",
                             "src": "hda",
-                            "uuid": "d5e2affd-9228-4b21-8e89-36a43c59ab37"
+                            "uuid": "8086c8c0-24b8-4a51-84db-6b4c9b0e76d0"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
                         "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
                         "assembly_plan_name": "\"BioBrickStandardAssembly\"",
-                        "chromInfo": "\"/tmp/tmpy2ysv6tn/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmpc6lic4p9/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.98it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00,  1.60it/s, now=None]\r                                                                 \r",
-                    "stdout": "                               1                2\n0                                                \nconstruct                  parts              NaN\nC1_prom_barcode  BBa_K611094_bar  BBa_J23119_prom\nC2_gfp_term        BBa_E0040_GFP  BBa_J61048_term\nC3_final         C1_prom_barcode      C2_gfp_term\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 3}\nGenerating assemblies reports...\nDEBUG\nC1_prom_barcode.gb\nC2_gfp_term.gb\nC3_final.gb\n",
+                    "stderr": "\rassembly:   0%|          | 0/3 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/3 [00:00<?, ?it/s, now=None]\rassembly:  67%|\u2588\u2588\u2588\u2588\u2588\u2588\u258b   | 2/3 [00:00<00:00,  2.10it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00,  1.72it/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.98it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00,  1.60it/s, now=None]\r                                                                 \r",
-                    "tool_stdout": "                               1                2\n0                                                \nconstruct                  parts              NaN\nC1_prom_barcode  BBa_K611094_bar  BBa_J23119_prom\nC2_gfp_term        BBa_E0040_GFP  BBa_J61048_term\nC3_final         C1_prom_barcode      C2_gfp_term\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 3}\nGenerating assemblies reports...\nDEBUG\nC1_prom_barcode.gb\nC2_gfp_term.gb\nC3_final.gb\n",
-                    "update_time": "2025-05-26T10:02:47.655383",
+                    "tool_stderr": "\rassembly:   0%|          | 0/3 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/3 [00:00<?, ?it/s, now=None]\rassembly:  67%|\u2588\u2588\u2588\u2588\u2588\u2588\u258b   | 2/3 [00:00<00:00,  2.10it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 3/3 [00:01<00:00,  1.72it/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-26T11:26:06.650033",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "66f8380583c086e1"
+                    "user_id": "fcc5b7d13a1328f6"
                 },
                 "status": "success",
                 "test_index": 4,
-                "time_seconds": 34.81275129318237,
+                "time_seconds": 33.60218787193298,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
@@ -1120,25 +1127,25 @@
                 "inputs": {
                     "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "3494efe97c2aacb8",
+                        "id": "ffdd8176dffd877d",
                         "src": "hda"
                     },
                     "assembly_plan_name": "Type2sRestrictionAssembly",
                     "domesticated_input": {
-                        "id": "4fffd7776804f395",
+                        "id": "744832bdd7ccd728",
                         "src": "hdca"
                     },
                     "genbank_files": {
-                        "id": "193b12b5837c3789",
+                        "id": "855b83dd0dec8eab",
                         "src": "hdca"
                     },
                     "topology": "circular"
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpy2ysv6tn/files/6/c/2/dataset_6c2089de-5285-4ae6-8e08-afa38810c0ee.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpy2ysv6tn/files/b/6/8/dataset_b68d8dba-f098-4f14-ac9f-b69541a834c8.dat,/tmp/tmpy2ysv6tn/files/a/9/4/dataset_a94042d7-2d70-4257-bbc5-ac3f2be93aff.dat,/tmp/tmpy2ysv6tn/files/1/d/e/dataset_1de72341-f4c1-48df-9466-a1c80e23fdfb.dat,/tmp/tmpy2ysv6tn/files/c/1/1/dataset_c1128abd-86a1-48b9-b66c-0152d76c85c9.dat,/tmp/tmpy2ysv6tn/files/2/f/2/dataset_2f2ab7b7-d6ef-4a2e-90b8-f15cddf56eea.dat,/tmp/tmpy2ysv6tn/files/9/0/4/dataset_90485827-d839-4e32-b546-9c32f77fd264.dat,/tmp/tmpy2ysv6tn/files/7/c/5/dataset_7c56a071-e9fe-4133-8a99-8a7d58e7b1fd.dat' --domesticated_seq '/tmp/tmpy2ysv6tn/files/0/f/3/dataset_0f38d420-af2a-42ba-a6d3-f16807653402.dat,/tmp/tmpy2ysv6tn/files/0/b/6/dataset_0b653ed4-f458-4567-b9b7-074257934433.dat,/tmp/tmpy2ysv6tn/files/7/0/d/dataset_70d7c859-83f1-4aa7-b1db-fee1b4d384c0.dat,/tmp/tmpy2ysv6tn/files/c/e/2/dataset_ce2505e6-35c7-4858-a27e-6c5761a35be3.dat,/tmp/tmpy2ysv6tn/files/6/8/b/dataset_68b8d30e-6c0c-466f-a70c-0e58bcc27e0d.dat' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpy2ysv6tn/files/b/6/8/dataset_b68d8dba-f098-4f14-ac9f-b69541a834c8.dat:part_A.gb,/tmp/tmpy2ysv6tn/files/a/9/4/dataset_a94042d7-2d70-4257-bbc5-ac3f2be93aff.dat:part_B.gb,/tmp/tmpy2ysv6tn/files/1/d/e/dataset_1de72341-f4c1-48df-9466-a1c80e23fdfb.dat:part_C.gb,/tmp/tmpy2ysv6tn/files/c/1/1/dataset_c1128abd-86a1-48b9-b66c-0152d76c85c9.dat:part_D.gb,/tmp/tmpy2ysv6tn/files/2/f/2/dataset_2f2ab7b7-d6ef-4a2e-90b8-f15cddf56eea.dat:part_E.gb,/tmp/tmpy2ysv6tn/files/9/0/4/dataset_90485827-d839-4e32-b546-9c32f77fd264.dat:part_F.gb,/tmp/tmpy2ysv6tn/files/7/c/5/dataset_7c56a071-e9fe-4133-8a99-8a7d58e7b1fd.dat:part_G.gb' --file_name_mapping_dom '/tmp/tmpy2ysv6tn/files/0/f/3/dataset_0f38d420-af2a-42ba-a6d3-f16807653402.dat:part_H.gb,/tmp/tmpy2ysv6tn/files/0/b/6/dataset_0b653ed4-f458-4567-b9b7-074257934433.dat:part_I.gb,/tmp/tmpy2ysv6tn/files/7/0/d/dataset_70d7c859-83f1-4aa7-b1db-fee1b4d384c0.dat:part_J.gb,/tmp/tmpy2ysv6tn/files/c/e/2/dataset_ce2505e6-35c7-4858-a27e-6c5761a35be3.dat:part_K.gb,/tmp/tmpy2ysv6tn/files/6/8/b/dataset_68b8d30e-6c0c-466f-a70c-0e58bcc27e0d.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/tmpy2ysv6tn/job_working_directory/000/49/outputs/dataset_445bab41-baa4-4de1-adfc-d4fd56892c5f.dat' && echo DEBUG && ls 'outdir_gb'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpc6lic4p9/files/9/8/e/dataset_98e1b862-2d3e-4164-aecf-56bd464d0f11.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpc6lic4p9/files/b/6/6/dataset_b66afa5b-682d-49f8-9753-c78c356ff228.dat,/tmp/tmpc6lic4p9/files/4/6/e/dataset_46ea3fb9-8e60-42f3-b7d3-c1a6edc1837c.dat,/tmp/tmpc6lic4p9/files/8/3/5/dataset_8358e657-0e61-486b-adb4-e886f0f354ba.dat,/tmp/tmpc6lic4p9/files/4/c/f/dataset_4cfbb2dd-c5a5-42fe-889b-da6510422b72.dat,/tmp/tmpc6lic4p9/files/2/8/c/dataset_28c96444-abfb-4173-970e-e895146aef97.dat,/tmp/tmpc6lic4p9/files/f/5/4/dataset_f54c7a16-ac6f-42c2-9b6c-345af3050d83.dat,/tmp/tmpc6lic4p9/files/2/a/3/dataset_2a330eb7-d033-4e75-be7a-4473748a6f2d.dat' --domesticated_seq '/tmp/tmpc6lic4p9/files/6/8/7/dataset_6877c227-2c70-4080-962e-ee1855dd797f.dat,/tmp/tmpc6lic4p9/files/e/2/1/dataset_e212262c-a336-4263-a076-2cd300590ba4.dat,/tmp/tmpc6lic4p9/files/4/1/1/dataset_4112d545-7e37-4a6e-8ca8-7c1b8f90a71e.dat,/tmp/tmpc6lic4p9/files/b/3/1/dataset_b31955ce-ea44-4e3a-86a1-6aebc47be841.dat,/tmp/tmpc6lic4p9/files/d/4/d/dataset_d4d14388-55d3-4aec-810d-aa902028f29f.dat' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpc6lic4p9/files/b/6/6/dataset_b66afa5b-682d-49f8-9753-c78c356ff228.dat:part_A.gb,/tmp/tmpc6lic4p9/files/4/6/e/dataset_46ea3fb9-8e60-42f3-b7d3-c1a6edc1837c.dat:part_B.gb,/tmp/tmpc6lic4p9/files/8/3/5/dataset_8358e657-0e61-486b-adb4-e886f0f354ba.dat:part_C.gb,/tmp/tmpc6lic4p9/files/4/c/f/dataset_4cfbb2dd-c5a5-42fe-889b-da6510422b72.dat:part_D.gb,/tmp/tmpc6lic4p9/files/2/8/c/dataset_28c96444-abfb-4173-970e-e895146aef97.dat:part_E.gb,/tmp/tmpc6lic4p9/files/f/5/4/dataset_f54c7a16-ac6f-42c2-9b6c-345af3050d83.dat:part_F.gb,/tmp/tmpc6lic4p9/files/2/a/3/dataset_2a330eb7-d033-4e75-be7a-4473748a6f2d.dat:part_G.gb' --file_name_mapping_dom '/tmp/tmpc6lic4p9/files/6/8/7/dataset_6877c227-2c70-4080-962e-ee1855dd797f.dat:part_H.gb,/tmp/tmpc6lic4p9/files/e/2/1/dataset_e212262c-a336-4263-a076-2cd300590ba4.dat:part_I.gb,/tmp/tmpc6lic4p9/files/4/1/1/dataset_4112d545-7e37-4a6e-8ca8-7c1b8f90a71e.dat:part_J.gb,/tmp/tmpc6lic4p9/files/b/3/1/dataset_b31955ce-ea44-4e3a-86a1-6aebc47be841.dat:part_K.gb,/tmp/tmpc6lic4p9/files/d/4/d/dataset_d4d14388-55d3-4aec-810d-aa902028f29f.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/tmpc6lic4p9/job_working_directory/000/49/outputs/dataset_77f39d12-532c-468b-bcf7-fcc1fdedd34c.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-26T10:03:29.120983",
+                    "create_time": "2025-05-26T11:26:47.030790",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -1318,76 +1325,76 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "117561",
+                    "external_id": "154908",
                     "galaxy_version": "24.2",
                     "handler": null,
-                    "history_id": "abbaf1e2c3c282ad",
-                    "id": "3494efe97c2aacb8",
+                    "history_id": "51c35891e43131e2",
+                    "id": "0b19a103e85bbfbf",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "3494efe97c2aacb8",
+                            "id": "ffdd8176dffd877d",
                             "src": "hda",
-                            "uuid": "6c2089de-5285-4ae6-8e08-afa38810c0ee"
+                            "uuid": "98e1b862-2d3e-4164-aecf-56bd464d0f11"
                         },
                         "domesticated_input1": {
-                            "id": "a4800f28d8ead13a",
+                            "id": "96e47893a0f61173",
                             "src": "hda",
-                            "uuid": "0f38d420-af2a-42ba-a6d3-f16807653402"
+                            "uuid": "6877c227-2c70-4080-962e-ee1855dd797f"
                         },
                         "domesticated_input2": {
-                            "id": "73a220014461252c",
+                            "id": "07b1a06cea2f6611",
                             "src": "hda",
-                            "uuid": "0b653ed4-f458-4567-b9b7-074257934433"
+                            "uuid": "e212262c-a336-4263-a076-2cd300590ba4"
                         },
                         "domesticated_input3": {
-                            "id": "7d1b502fc1fb844a",
+                            "id": "7c42ebb9622f8a60",
                             "src": "hda",
-                            "uuid": "70d7c859-83f1-4aa7-b1db-fee1b4d384c0"
+                            "uuid": "4112d545-7e37-4a6e-8ca8-7c1b8f90a71e"
                         },
                         "domesticated_input4": {
-                            "id": "6a344bf502116f62",
+                            "id": "33456f383510d381",
                             "src": "hda",
-                            "uuid": "ce2505e6-35c7-4858-a27e-6c5761a35be3"
+                            "uuid": "b31955ce-ea44-4e3a-86a1-6aebc47be841"
                         },
                         "domesticated_input5": {
-                            "id": "a28d730bd7e6d71e",
+                            "id": "3c2a17e7ec6c065d",
                             "src": "hda",
-                            "uuid": "68b8d30e-6c0c-466f-a70c-0e58bcc27e0d"
+                            "uuid": "d4d14388-55d3-4aec-810d-aa902028f29f"
                         },
                         "genbank_files1": {
-                            "id": "b4c6f22fd42e2fbc",
+                            "id": "c2ddc784389f17d2",
                             "src": "hda",
-                            "uuid": "b68d8dba-f098-4f14-ac9f-b69541a834c8"
+                            "uuid": "b66afa5b-682d-49f8-9753-c78c356ff228"
                         },
                         "genbank_files2": {
-                            "id": "60c65d41f8ff0e9b",
+                            "id": "79b5ff6df7bc6716",
                             "src": "hda",
-                            "uuid": "a94042d7-2d70-4257-bbc5-ac3f2be93aff"
+                            "uuid": "46ea3fb9-8e60-42f3-b7d3-c1a6edc1837c"
                         },
                         "genbank_files3": {
-                            "id": "554995f2d7672bb2",
+                            "id": "6f172ec7c3220722",
                             "src": "hda",
-                            "uuid": "1de72341-f4c1-48df-9466-a1c80e23fdfb"
+                            "uuid": "8358e657-0e61-486b-adb4-e886f0f354ba"
                         },
                         "genbank_files4": {
-                            "id": "9450471e42664058",
+                            "id": "0b19a103e85bbfbf",
                             "src": "hda",
-                            "uuid": "c1128abd-86a1-48b9-b66c-0152d76c85c9"
+                            "uuid": "4cfbb2dd-c5a5-42fe-889b-da6510422b72"
                         },
                         "genbank_files5": {
-                            "id": "9a370553f77d6a31",
+                            "id": "00fa99289b8a441d",
                             "src": "hda",
-                            "uuid": "2f2ab7b7-d6ef-4a2e-90b8-f15cddf56eea"
+                            "uuid": "28c96444-abfb-4173-970e-e895146aef97"
                         },
                         "genbank_files6": {
-                            "id": "cecfeefdcb127887",
+                            "id": "95a08e54dcf8e4b4",
                             "src": "hda",
-                            "uuid": "90485827-d839-4e32-b546-9c32f77fd264"
+                            "uuid": "f54c7a16-ac6f-42c2-9b6c-345af3050d83"
                         },
                         "genbank_files7": {
-                            "id": "88bfe38878128ef9",
+                            "id": "46fceb9ab6cb9139",
                             "src": "hda",
-                            "uuid": "7c56a071-e9fe-4133-8a99-8a7d58e7b1fd"
+                            "uuid": "2a330eb7-d033-4e75-be7a-4473748a6f2d"
                         }
                     },
                     "job_messages": [],
@@ -1398,60 +1405,60 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "41ca6db0600d7999",
+                            "id": "c173cff58a987f8f",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "__new_primary_file_construct_gb|construct_1__": {
-                            "id": "1750f123cc89cd74",
+                            "id": "887639ccacb877d4",
                             "src": "hda",
-                            "uuid": "2402ee1c-8048-48aa-9180-d84ffbac4c0d"
+                            "uuid": "ac0f5082-55fc-4fb6-b3ef-f2587cdd2662"
                         },
                         "__new_primary_file_construct_gb|construct_2__": {
-                            "id": "0a1a12a9af9d8d2a",
+                            "id": "97c509c62c06ea77",
                             "src": "hda",
-                            "uuid": "4f5260cc-c112-4966-83c6-f3cd6f9cdd09"
+                            "uuid": "9e439105-9563-450d-96a3-bec58242389e"
                         },
                         "__new_primary_file_construct_gb|construct_3__": {
-                            "id": "a7850a538357f009",
+                            "id": "05372c5ab71bbd4d",
                             "src": "hda",
-                            "uuid": "d2eb027d-9f28-4cf0-bd60-f8856220a681"
+                            "uuid": "13079e9f-8185-4b43-898a-83348a3fe55b"
                         },
                         "__new_primary_file_construct_gb|construct_4__": {
-                            "id": "eeb0994ae957c814",
+                            "id": "14e667eccbf3c9ac",
                             "src": "hda",
-                            "uuid": "df9e0b45-10c1-46a2-a1bf-fccc2817a77e"
+                            "uuid": "4aec2395-19a8-49b5-a927-39b5b06dabe7"
                         },
                         "output_zip": {
-                            "id": "4d7f94dc70c8b750",
+                            "id": "edb47c5501e52d48",
                             "src": "hda",
-                            "uuid": "445bab41-baa4-4de1-adfc-d4fd56892c5f"
+                            "uuid": "77f39d12-532c-468b-bcf7-fcc1fdedd34c"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
                         "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
                         "assembly_plan_name": "\"Type2sRestrictionAssembly\"",
-                        "chromInfo": "\"/tmp/tmpy2ysv6tn/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmpc6lic4p9/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.39it/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.79it/s, now=None]\r                                                                 \r",
-                    "stdout": "                       1       2       3       4       5       6\n0                                                               \nconstruct_3  construct_1  part_L  part_J  part_K     NaN     NaN\nconstruct_4  construct_2  part_L  part_J  part_K     NaN     NaN\nconstruct_1       part_A  part_B  part_C  part_D  part_E  part_F\nconstruct_2       part_A  part_G  part_H  part_I  part_F     NaN\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\nDEBUG\nconstruct_1.gb\nconstruct_2.gb\nconstruct_3.gb\nconstruct_4.gb\n",
+                    "stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.31it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.14it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.74it/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.20it/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_stdout": "                       1       2       3       4       5       6\n0                                                               \nconstruct_3  construct_1  part_L  part_J  part_K     NaN     NaN\nconstruct_4  construct_2  part_L  part_J  part_K     NaN     NaN\nconstruct_1       part_A  part_B  part_C  part_D  part_E  part_F\nconstruct_2       part_A  part_G  part_H  part_I  part_F     NaN\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\nDEBUG\nconstruct_1.gb\nconstruct_2.gb\nconstruct_3.gb\nconstruct_4.gb\n",
-                    "update_time": "2025-05-26T10:03:41.864270",
+                    "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.31it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.14it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.74it/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-26T11:27:00.365017",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "66f8380583c086e1"
+                    "user_id": "fcc5b7d13a1328f6"
                 },
                 "status": "success",
                 "test_index": 5,
-                "time_seconds": 53.94194722175598,
+                "time_seconds": 53.75153422355652,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },
@@ -1463,21 +1470,21 @@
                 "inputs": {
                     "adv|use_file_names_as_ids": true,
                     "assembly_csv": {
-                        "id": "6fb8fb3f063f475d",
+                        "id": "59a0a00f5fa501d5",
                         "src": "hda"
                     },
                     "assembly_plan_name": "Type2sRestrictionAssembly",
                     "domesticated_input": {
-                        "id": "7f406d9538852eeb",
+                        "id": "c9445e550eef23d0",
                         "src": "hdca"
                     },
                     "topology": "circular"
                 },
                 "job": {
-                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpy2ysv6tn/files/a/a/d/dataset_aadc2ac5-b92d-4489-ba9c-9e30c79da207.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpy2ysv6tn/files/3/8/8/dataset_388674d2-24fe-4e76-b0b8-2db6463e788f.dat,/tmp/tmpy2ysv6tn/files/7/5/c/dataset_75c27ee5-fd9b-46a1-be07-f0cdc4e16bc1.dat,/tmp/tmpy2ysv6tn/files/b/b/b/dataset_bbba5ff9-69e7-4d41-af82-992df5f065fb.dat,/tmp/tmpy2ysv6tn/files/d/c/9/dataset_dc982e9d-6d93-4638-b4fc-67fc8238b295.dat,/tmp/tmpy2ysv6tn/files/e/d/2/dataset_ed2d7b35-625f-429e-ae50-ce1098a20b85.dat,/tmp/tmpy2ysv6tn/files/5/a/2/dataset_5a2010cb-64cf-4ff9-8852-f883f7ab0269.dat,/tmp/tmpy2ysv6tn/files/0/f/a/dataset_0fa8ed6a-b848-4b0d-9474-13cd22d4a47e.dat,/tmp/tmpy2ysv6tn/files/a/b/e/dataset_abead413-c3d4-42d3-bd97-c02a6bd69779.dat,/tmp/tmpy2ysv6tn/files/6/a/b/dataset_6ab6c472-c672-4bdf-9814-8e069a8a07e1.dat,/tmp/tmpy2ysv6tn/files/b/0/e/dataset_b0e2ce07-ccf0-4805-958c-8de174c3d4c1.dat,/tmp/tmpy2ysv6tn/files/3/3/a/dataset_33ad2072-fb76-47c4-b3f7-60a2a097ab87.dat,/tmp/tmpy2ysv6tn/files/9/d/1/dataset_9d13c418-bbb1-457e-bdaf-0f2bf5232f78.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpy2ysv6tn/files/3/8/8/dataset_388674d2-24fe-4e76-b0b8-2db6463e788f.dat:part_A.gb,/tmp/tmpy2ysv6tn/files/7/5/c/dataset_75c27ee5-fd9b-46a1-be07-f0cdc4e16bc1.dat:part_B.gb,/tmp/tmpy2ysv6tn/files/b/b/b/dataset_bbba5ff9-69e7-4d41-af82-992df5f065fb.dat:part_C.gb,/tmp/tmpy2ysv6tn/files/d/c/9/dataset_dc982e9d-6d93-4638-b4fc-67fc8238b295.dat:part_D.gb,/tmp/tmpy2ysv6tn/files/e/d/2/dataset_ed2d7b35-625f-429e-ae50-ce1098a20b85.dat:part_E.gb,/tmp/tmpy2ysv6tn/files/5/a/2/dataset_5a2010cb-64cf-4ff9-8852-f883f7ab0269.dat:part_F.gb,/tmp/tmpy2ysv6tn/files/0/f/a/dataset_0fa8ed6a-b848-4b0d-9474-13cd22d4a47e.dat:part_G.gb,/tmp/tmpy2ysv6tn/files/a/b/e/dataset_abead413-c3d4-42d3-bd97-c02a6bd69779.dat:part_H.gb,/tmp/tmpy2ysv6tn/files/6/a/b/dataset_6ab6c472-c672-4bdf-9814-8e069a8a07e1.dat:part_I.gb,/tmp/tmpy2ysv6tn/files/b/0/e/dataset_b0e2ce07-ccf0-4805-958c-8de174c3d4c1.dat:part_J.gb,/tmp/tmpy2ysv6tn/files/3/3/a/dataset_33ad2072-fb76-47c4-b3f7-60a2a097ab87.dat:part_K.gb,/tmp/tmpy2ysv6tn/files/9/d/1/dataset_9d13c418-bbb1-457e-bdaf-0f2bf5232f78.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/tmpy2ysv6tn/job_working_directory/000/63/outputs/dataset_fbeb57ed-1718-4d2b-a22b-5c4a5779d9ab.dat' && echo DEBUG && ls 'outdir_gb'",
+                    "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpc6lic4p9/files/9/5/0/dataset_9504897d-0d99-44a4-9033-7d14e3943ec9.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpc6lic4p9/files/a/c/d/dataset_acd9e546-bb31-4391-b867-1d81cab10920.dat,/tmp/tmpc6lic4p9/files/c/f/e/dataset_cfe852f6-5b32-46fd-a9d8-2b777016d403.dat,/tmp/tmpc6lic4p9/files/2/5/b/dataset_25be2770-f768-4b0e-be96-459e47e6ae8d.dat,/tmp/tmpc6lic4p9/files/e/5/8/dataset_e580f806-e8ba-4dac-b8d5-6b76b4a7421b.dat,/tmp/tmpc6lic4p9/files/0/d/6/dataset_0d6de31a-aab1-427f-a2a1-7c8bc988208e.dat,/tmp/tmpc6lic4p9/files/1/2/7/dataset_1272b23f-7cef-4deb-bf92-fbad973bf2c6.dat,/tmp/tmpc6lic4p9/files/7/4/7/dataset_7476b10d-c143-4be7-adb5-118dcf372287.dat,/tmp/tmpc6lic4p9/files/e/2/e/dataset_e2ed0e46-b159-4bca-aeaa-9bef9a5b9c9a.dat,/tmp/tmpc6lic4p9/files/c/a/1/dataset_ca18b50c-3b4c-4201-88b0-dffd049718f8.dat,/tmp/tmpc6lic4p9/files/1/b/4/dataset_1b480e84-03cf-4483-9e9e-ccf79bf654a1.dat,/tmp/tmpc6lic4p9/files/b/e/8/dataset_be83b8f4-73de-4775-abb8-75483d4e8ab2.dat,/tmp/tmpc6lic4p9/files/5/d/d/dataset_5ddde548-4828-4067-93b7-1377a71221d7.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpc6lic4p9/files/a/c/d/dataset_acd9e546-bb31-4391-b867-1d81cab10920.dat:part_A.gb,/tmp/tmpc6lic4p9/files/c/f/e/dataset_cfe852f6-5b32-46fd-a9d8-2b777016d403.dat:part_B.gb,/tmp/tmpc6lic4p9/files/2/5/b/dataset_25be2770-f768-4b0e-be96-459e47e6ae8d.dat:part_C.gb,/tmp/tmpc6lic4p9/files/e/5/8/dataset_e580f806-e8ba-4dac-b8d5-6b76b4a7421b.dat:part_D.gb,/tmp/tmpc6lic4p9/files/0/d/6/dataset_0d6de31a-aab1-427f-a2a1-7c8bc988208e.dat:part_E.gb,/tmp/tmpc6lic4p9/files/1/2/7/dataset_1272b23f-7cef-4deb-bf92-fbad973bf2c6.dat:part_F.gb,/tmp/tmpc6lic4p9/files/7/4/7/dataset_7476b10d-c143-4be7-adb5-118dcf372287.dat:part_G.gb,/tmp/tmpc6lic4p9/files/e/2/e/dataset_e2ed0e46-b159-4bca-aeaa-9bef9a5b9c9a.dat:part_H.gb,/tmp/tmpc6lic4p9/files/c/a/1/dataset_ca18b50c-3b4c-4201-88b0-dffd049718f8.dat:part_I.gb,/tmp/tmpc6lic4p9/files/1/b/4/dataset_1b480e84-03cf-4483-9e9e-ccf79bf654a1.dat:part_J.gb,/tmp/tmpc6lic4p9/files/b/e/8/dataset_be83b8f4-73de-4775-abb8-75483d4e8ab2.dat:part_K.gb,/tmp/tmpc6lic4p9/files/5/d/d/dataset_5ddde548-4828-4067-93b7-1377a71221d7.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/tmpc6lic4p9/job_working_directory/000/63/outputs/dataset_e10784a6-3050-4131-a684-3847397c4c4d.dat'",
                     "command_version": "",
                     "copied_from_job_id": null,
-                    "create_time": "2025-05-26T10:04:22.340769",
+                    "create_time": "2025-05-26T11:27:41.184534",
                     "dependencies": [
                         {
                             "cacheable": false,
@@ -1657,76 +1664,76 @@
                         }
                     ],
                     "exit_code": 0,
-                    "external_id": "118646",
+                    "external_id": "155964",
                     "galaxy_version": "24.2",
                     "handler": null,
-                    "history_id": "18bb6cd07b986e37",
-                    "id": "3b86e96397860676",
+                    "history_id": "84db48b219855f4d",
+                    "id": "14e667eccbf3c9ac",
                     "inputs": {
                         "assembly_csv": {
-                            "id": "6fb8fb3f063f475d",
+                            "id": "59a0a00f5fa501d5",
                             "src": "hda",
-                            "uuid": "aadc2ac5-b92d-4489-ba9c-9e30c79da207"
+                            "uuid": "9504897d-0d99-44a4-9033-7d14e3943ec9"
                         },
                         "domesticated_input1": {
-                            "id": "3eddddb1a3bb1719",
+                            "id": "2252f6534dc04be9",
                             "src": "hda",
-                            "uuid": "388674d2-24fe-4e76-b0b8-2db6463e788f"
+                            "uuid": "acd9e546-bb31-4391-b867-1d81cab10920"
                         },
                         "domesticated_input10": {
-                            "id": "6baf136e951fa3e9",
+                            "id": "b26f1eae65161bae",
                             "src": "hda",
-                            "uuid": "b0e2ce07-ccf0-4805-958c-8de174c3d4c1"
+                            "uuid": "1b480e84-03cf-4483-9e9e-ccf79bf654a1"
                         },
                         "domesticated_input11": {
-                            "id": "11a588ee1ee4e36e",
+                            "id": "748ef145f2d110fe",
                             "src": "hda",
-                            "uuid": "33ad2072-fb76-47c4-b3f7-60a2a097ab87"
+                            "uuid": "be83b8f4-73de-4775-abb8-75483d4e8ab2"
                         },
                         "domesticated_input12": {
-                            "id": "8f43de78738fc703",
+                            "id": "37a05bd56b325e88",
                             "src": "hda",
-                            "uuid": "9d13c418-bbb1-457e-bdaf-0f2bf5232f78"
+                            "uuid": "5ddde548-4828-4067-93b7-1377a71221d7"
                         },
                         "domesticated_input2": {
-                            "id": "df551757dda63084",
+                            "id": "2441550d408330ea",
                             "src": "hda",
-                            "uuid": "75c27ee5-fd9b-46a1-be07-f0cdc4e16bc1"
+                            "uuid": "cfe852f6-5b32-46fd-a9d8-2b777016d403"
                         },
                         "domesticated_input3": {
-                            "id": "3b86e96397860676",
+                            "id": "7982f5ab86225272",
                             "src": "hda",
-                            "uuid": "bbba5ff9-69e7-4d41-af82-992df5f065fb"
+                            "uuid": "25be2770-f768-4b0e-be96-459e47e6ae8d"
                         },
                         "domesticated_input4": {
-                            "id": "125f9d0e88ccc764",
+                            "id": "1d0be35bf9fc6600",
                             "src": "hda",
-                            "uuid": "dc982e9d-6d93-4638-b4fc-67fc8238b295"
+                            "uuid": "e580f806-e8ba-4dac-b8d5-6b76b4a7421b"
                         },
                         "domesticated_input5": {
-                            "id": "68e8d3b1610203e4",
+                            "id": "40fe86a604adcf6d",
                             "src": "hda",
-                            "uuid": "ed2d7b35-625f-429e-ae50-ce1098a20b85"
+                            "uuid": "0d6de31a-aab1-427f-a2a1-7c8bc988208e"
                         },
                         "domesticated_input6": {
-                            "id": "f9ce2b01423639ed",
+                            "id": "7355915c318fd136",
                             "src": "hda",
-                            "uuid": "5a2010cb-64cf-4ff9-8852-f883f7ab0269"
+                            "uuid": "1272b23f-7cef-4deb-bf92-fbad973bf2c6"
                         },
                         "domesticated_input7": {
-                            "id": "af7dc246cf57ca17",
+                            "id": "bacbde4487432826",
                             "src": "hda",
-                            "uuid": "0fa8ed6a-b848-4b0d-9474-13cd22d4a47e"
+                            "uuid": "7476b10d-c143-4be7-adb5-118dcf372287"
                         },
                         "domesticated_input8": {
-                            "id": "73904d43e96b8397",
+                            "id": "3b9b440d32d1c6f3",
                             "src": "hda",
-                            "uuid": "abead413-c3d4-42d3-bd97-c02a6bd69779"
+                            "uuid": "e2ed0e46-b159-4bca-aeaa-9bef9a5b9c9a"
                         },
                         "domesticated_input9": {
-                            "id": "5dd99ba27cc0c63e",
+                            "id": "a19ae27f3bb8e8c1",
                             "src": "hda",
-                            "uuid": "6ab6c472-c672-4bdf-9814-8e069a8a07e1"
+                            "uuid": "ca18b50c-3b4c-4201-88b0-dffd049718f8"
                         }
                     },
                     "job_messages": [],
@@ -1737,60 +1744,60 @@
                     "model_class": "Job",
                     "output_collections": {
                         "construct_gb": {
-                            "id": "9677ca5db33658a1",
+                            "id": "fedb85639c7c80b9",
                             "src": "hdca"
                         }
                     },
                     "outputs": {
                         "__new_primary_file_construct_gb|construct_1__": {
-                            "id": "df1d56fe5378c54b",
+                            "id": "94b6b8378debd859",
                             "src": "hda",
-                            "uuid": "c3d590de-2171-4d9a-a1c0-01110787a4ea"
+                            "uuid": "5145585f-443e-4934-af0b-60e1552a08a9"
                         },
                         "__new_primary_file_construct_gb|construct_2__": {
-                            "id": "a443c6a3159c515a",
+                            "id": "dfa4bbdeadf76cd3",
                             "src": "hda",
-                            "uuid": "14cde463-8656-4342-be37-c28798003a81"
+                            "uuid": "6f0dcaec-2131-4c0c-820b-bb5c895103e2"
                         },
                         "__new_primary_file_construct_gb|construct_3__": {
-                            "id": "4048e6cd68dc21c7",
+                            "id": "e48032fd92b02fbb",
                             "src": "hda",
-                            "uuid": "87c175e5-05d6-48e7-b617-e15d49a7027d"
+                            "uuid": "8c4da7fd-9c6b-4430-9444-c6e89b41c5df"
                         },
                         "__new_primary_file_construct_gb|construct_4__": {
-                            "id": "f601f1baaea8c27e",
+                            "id": "68bf450f38f03a28",
                             "src": "hda",
-                            "uuid": "8e8367d5-caae-467d-a9d7-c681fd5497c7"
+                            "uuid": "a878e0a8-6f34-4cdf-8990-e178d0f15d52"
                         },
                         "output_zip": {
-                            "id": "8c0bd3fd394dbc64",
+                            "id": "1062de4bcda0d565",
                             "src": "hda",
-                            "uuid": "fbeb57ed-1718-4d2b-a22b-5c4a5779d9ab"
+                            "uuid": "e10784a6-3050-4131-a684-3847397c4c4d"
                         }
                     },
                     "params": {
                         "__input_ext": "\"input\"",
                         "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}",
                         "assembly_plan_name": "\"Type2sRestrictionAssembly\"",
-                        "chromInfo": "\"/tmp/tmpy2ysv6tn/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"",
+                        "chromInfo": "\"/tmp/tmpc6lic4p9/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.31it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.11it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.75it/s, now=None]\r                                                                 \r",
-                    "stdout": "                       1       2       3       4       5       6\n0                                                               \nconstruct_3  construct_1  part_L  part_J  part_K     NaN     NaN\nconstruct_4  construct_2  part_L  part_J  part_K     NaN     NaN\nconstruct_1       part_A  part_B  part_C  part_D  part_E  part_F\nconstruct_2       part_A  part_G  part_H  part_I  part_F     NaN\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\nDEBUG\nconstruct_1.gb\nconstruct_2.gb\nconstruct_3.gb\nconstruct_4.gb\n",
+                    "stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.45it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.24it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.84it/s, now=None]\r                                                                 \r",
+                    "stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n",
                     "tool_id": "cloning_simulation",
-                    "tool_stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.31it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.11it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.75it/s, now=None]\r                                                                 \r",
-                    "tool_stdout": "                       1       2       3       4       5       6\n0                                                               \nconstruct_3  construct_1  part_L  part_J  part_K     NaN     NaN\nconstruct_4  construct_2  part_L  part_J  part_K     NaN     NaN\nconstruct_1       part_A  part_B  part_C  part_D  part_E  part_F\nconstruct_2       part_A  part_G  part_H  part_I  part_F     NaN\nSimulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\nDEBUG\nconstruct_1.gb\nconstruct_2.gb\nconstruct_3.gb\nconstruct_4.gb\n",
-                    "update_time": "2025-05-26T10:04:35.116441",
+                    "tool_stderr": "\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\r                                                         \r\rassembly:   0%|          | 0/4 [00:00<?, ?it/s, now=None]\rassembly:  50%|\u2588\u2588\u2588\u2588\u2588     | 2/4 [00:00<00:00,  2.45it/s, now=None]\rassembly:  75%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  | 3/4 [00:01<00:00,  2.24it/s, now=None]\rassembly: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 4/4 [00:02<00:00,  1.84it/s, now=None]\r                                                                 \r",
+                    "tool_stdout": "Simulating assembly plan assambly...\n{'cancelled_assemblies': 0, 'errored_assemblies': 0, 'valid_assemblies': 4}\nGenerating assemblies reports...\n",
+                    "update_time": "2025-05-26T11:27:53.929264",
                     "user_email": "planemo@galaxyproject.org",
-                    "user_id": "66f8380583c086e1"
+                    "user_id": "fcc5b7d13a1328f6"
                 },
                 "status": "success",
                 "test_index": 6,
-                "time_seconds": 53.07335948944092,
+                "time_seconds": 53.42731332778931,
                 "tool_id": "cloning_simulation",
                 "tool_version": "0.1.0+galaxy0"
             },