平面2つの 作成過程
7つ .py ファイル コンテナ
import bpy
import base64
import webbrowser
from bpy.types import Operator, Panel
bl_info = {
"name": "My Custom Addon Container",
"author": "Generated by Builder",
"version": (1, 0, 0),
"blender": (4, 0, 0),
"location": "View3D > Sidebar > Container",
"description": "複数のアドオンコードを格納・展開するコンテナ",
"category": "Development",
}
STORED_CODES = [
{
"name": "簡易背景_20260714_014",
"code_b64": (
"YmxfaW5mbyA9IHsKICAgICJuYW1lIjogInppb25hZF9bIOewoeaYk+iDjOaZryBdIiwKICAgICJhdXRo"
"b3IiOiAiWW91ciBOYW1lIiwKICAgICJ2ZXJzaW9uIjogKDEsIDMpLAogICAgImJsZW5kZXIiOiAoNSwg"
"MCwgMCksCiAgICAibG9jYXRpb24iOiAiVmlldzNEID4gU2lkZWJhciAoTuODkeODjeODqykiLAogICAg"
"ImRlc2NyaXB0aW9uIjogIuewoeaYk+iDjOaZr+ioreWumuOAgeOCq+ODqeODvOODlOODg+OCq+ODvCgz"
"eDMp44Gr44KI44KL6Imy5oOF5aCx6KiY5oa244O756K65a6f44Gq44Kz44O844OJ5pu444GN5Ye644GX"
"IiwKICAgICJjYXRlZ29yeSI6ICIzRCBWaWV3IiwKfQoKaW1wb3J0IGJweQppbXBvcnQgbWF0aAppbXBv"
"cnQgbWF0aHV0aWxzCmltcG9ydCB3ZWJicm93c2VyCmltcG9ydCByZQppbXBvcnQgb3MKCiMgPT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyDjgJDlrprnvqnjgJEKIyA9PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PQpBRERPTl9USVRMRSA9ICJbIOewoeaYk+iDjOaZryBdIgpQUkVG"
"SVhfVkFMID0gIkRJQ0VfVE9PTFNfNSIKQURET05fQ0FURUdPUlkgPSBBRERPTl9USVRMRQpQUkVGSVgg"
"PSBQUkVGSVhfVkFMLmxvd2VyKCkKCiMgPT09PT09PT09PT09CiMg44CQ5Yid5pyf6Kit5a6a44O744Oq"
"44Oz44Kv5a6a576p44CRIAojID09PT09PT09PT09PQpMSU5LX05BTUVfMSA9ICLln7rmnKzjgqLjg4nj"
"gqrjg7PoqK3lrpogMjAyNjA3MTHvvYIiCkxJTktfVVJMXzEgPSAiaHR0cHM6Ly9hcHAubm90aW9uLmNv"
"bS9wLzIwMjYwNzExLTM5YWY1ZGFjYWY0MzgwMjc4MTFkY2Q4NzdkYjdjNjMwIgpMSU5LX05BTUVfMiA9"
"ICJwb3NmaWUiCkxJTktfVVJMXzIgPSAiaHR0cHM6Ly9wb3NmaWUuY29tL0B0aW1la2FndXJhL3Qvemlv"
"bmFkMjAyMj9zb3J0PTAiCkxJTktfTkFNRV8zID0gInppb25hZGNoYXQiCkxJTktfVVJMXzMgPSAiaHR0"
"cHM6Ly94LmNvbS96aW9uYWRjaGF0IgpMSU5LX05BTUVfNCA9ICJibGVuZGVyIOOCs+ODs+ODhuODiiAy"
"MDI2MDcxMyIKTElOS19VUkxfNCA9ICJodHRwczovL25vdGUuY29tL3ppb25hZG1pbGxpb24vbi9uOWE0"
"N2Q4OGZlN2I0IgpMSU5LX05BTUVfNSA9ICLnsKHmmJPog4zmma/jgIAyMDI2MDcxNCIKTElOS19VUkxf"
"NSA9ICJodHRwczovL25vdGUuY29tL3ppb25hZG1pbGxpb24vbi9uYjdhZTRkMThmN2JhIgoKIyA9PT09"
"PT09PT09PT0KIyDjgJDjgrPjg6zjgq/jgrfjg6fjg7Pjg7vjgqrjg5bjgrjjgqfjgq/jg4jlkI3jga7l"
"iJ3mnJ/lgKTjgJEKIyA9PT09PT09PT09PT0KSU5JVF9DT0xMX01BSU4gPSAiTWFpbkNvbGxlY3Rpb24i"
"CklOSVRfQ09MTF9TVUIgPSAiU3ViQ29sbGVjdGlvbiIKSU5JVF9PQkpfTkFNRSA9ICJUYXJnZXRPYmpl"
"Y3QiCgojID09PT09PT09PT09PQojIOOAkOaVsOWApOioreWumuOBruWIneacn+WApOOAkQojID09PT09"
"PT09PT09PQpHUklEX1BSRVNFVF8xID0gMTAuMApHUklEX1BSRVNFVF8yID0gMTAwLjAKR1JJRF9DVVNU"
"T01fSU5JVCA9IDEuMAoKIyA9PT09PT09PT09PT0KIyDjgJDliJ3mnJ/oqK3lrprjga7oibIgKOODquOC"
"u+ODg+ODiOeUqCnjgJEKIyA9PT09PT09PT09PT0KQ09MT1JfR1JJRF9JTklUID0gKDAuNzE3NiwgMC44"
"LCAwLjgxNTcsIDEuMCkKQ09MT1JfQkdfSElHSF9JTklUID0gKDAuNDc4NCwgMC40NDMxLCAwLjg1ODgp"
"CkNPTE9SX0JHX0xPV19JTklUID0gKDAuNTcyNSwgMC41NzI1LCAwLjU3MjUpCgojID09PT09PT09PT09"
"PQojIOOAkDPjgrvjg4Pjg4goM3gzKeOBruOCq+ODqeODvOiomOaGtueUqCDliJ3mnJ/lgKTjgJEKIyDj"
"gqjjgq/jgrnjg53jg7zjg4jlrp/ooYzmmYLjgIHjgZPjga7pg6jliIbjgYzoh6rli5Xjgafmm7jjgY3m"
"j5vjgo/jgorjgb7jgZnjgIIKIyA9PT09PT09PT09PT0KUFJFU0VUMV9HUklEID0gKDAuNTU2OSwgMC42"
"MTk2LCAwLjYzMTQsIDEuMCkKUFJFU0VUMV9ISUdIID0gKDAuMCwgMC44NTg4LCAwLjYyMzUpClBSRVNF"
"VDFfTE9XID0gKDAuMDgyNCwgMC4wODI0LCAwLjA4MjQpCgpQUkVTRVQyX0dSSUQgPSAoMC42MzE0LCAw"
"LjA2MzIsIDAuNTQ2OSwgMS4wKQpQUkVTRVQyX0hJR0ggPSAoMC4wOTIyLCAwLjAzNTUsIDAuMTAwNikK"
"UFJFU0VUMl9MT1cgPSAoMC4wMTU0LCAwLjAyMTgsIDAuMDgyNCkKClBSRVNFVDNfR1JJRCA9ICgwLjU1"
"NjksIDAuNjE5NiwgMC42MzE0LCAxLjApClBSRVNFVDNfSElHSCA9ICgwLjQ3ODQsIDAuNDQzMSwgMC44"
"NTg4KQpQUkVTRVQzX0xPVyA9ICgwLjA4MjQsIDAuMDgyNCwgMC4wODI0KQoKCiMgPT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT0KIyDjgJDjg5Pjg6Xjg7zmg4XloLHlj5blvpcg6Zai5pWw44CR"
"CiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGVmIGdldF9ydjNkKGNvbnRleHQp"
"OgogICAgZm9yIGEgaW4gY29udGV4dC53aW5kb3cuc2NyZWVuLmFyZWFzOgogICAgICAgIGlmIGEudHlw"
"ZSA9PSAnVklFV18zRCc6IHJldHVybiBhLnNwYWNlcy5hY3RpdmUucmVnaW9uXzNkCiAgICByZXR1cm4g"
"Tm9uZQoKZGVmIGdldF92aWV3X2luZm9fZGF0YShjb250ZXh0KToKICAgIHJ2M2QsIGFyZWEsIHNwYWNl"
"ID0gTm9uZSwgTm9uZSwgTm9uZQogICAgZm9yIGEgaW4gY29udGV4dC53aW5kb3cuc2NyZWVuLmFyZWFz"
"OgogICAgICAgIGlmIGEudHlwZSA9PSAnVklFV18zRCc6CiAgICAgICAgICAgIHJ2M2QsIGFyZWEsIHNw"
"YWNlID0gYS5zcGFjZXMuYWN0aXZlLnJlZ2lvbl8zZCwgYSwgYS5zcGFjZXMuYWN0aXZlCiAgICAgICAg"
"ICAgIGJyZWFrCiAgICBpZiBub3QgcnYzZCBvciBub3QgYXJlYSBvciBub3Qgc3BhY2U6IHJldHVybiBO"
"b25lCiAgICAgICAgCiAgICBtb2RlID0gcnYzZC52aWV3X3BlcnNwZWN0aXZlCiAgICB0YXJnZXRfcG9z"
"ID0gcnYzZC52aWV3X2xvY2F0aW9uCiAgICB2aWV3X2Rpc3QgPSBydjNkLnZpZXdfZGlzdGFuY2UKICAg"
"IGNhbV9wb3MgPSBydjNkLnZpZXdfbWF0cml4LmludmVydGVkKCkudHJhbnNsYXRpb24KICAgIHZpZXdf"
"ZGlyID0gcnYzZC52aWV3X3JvdGF0aW9uIEAgbWF0aHV0aWxzLlZlY3RvcigoMC4wLCAwLjAsIC0xLjAp"
"KQogICAgYXNwZWN0ID0gYXJlYS5oZWlnaHQgLyBhcmVhLndpZHRoIGlmIGFyZWEud2lkdGggPiAwIGVs"
"c2UgMS4wCiAgICBzZW5zb3IgPSAzMi4wIAogICAgCiAgICBpc19wZXJzcCA9IG1vZGUgaW4geydQRVJT"
"UCcsICdDQU1FUkEnfQogICAgcHJval90ZXh0ID0gIumAj+imluaKleW9sSIgaWYgbW9kZSA9PSAnUEVS"
"U1AnIGVsc2UgIuW5s+ihjOaKleW9sSIgaWYgbW9kZSA9PSAnT1JUSE8nIGVsc2UgIuOCq+ODoeODqeOD"
"k+ODpeODvCIgaWYgbW9kZSA9PSAnQ0FNRVJBJyBlbHNlICLkuI3mmI4iCiAgICAKICAgIGlmIGlzX3Bl"
"cnNwOgogICAgICAgIGZvdl9oID0gMi4wICogbWF0aC5hdGFuKHNlbnNvciAvICgyLjAgKiBzcGFjZS5s"
"ZW5zKSkKICAgICAgICB3ID0gMi4wICogdmlld19kaXN0ICogbWF0aC50YW4oZm92X2ggLyAyLjApCiAg"
"ICBlbHNlOiAKICAgICAgICB3ID0gdmlld19kaXN0ICogKHNlbnNvciAvIHNwYWNlLmxlbnMpCiAgICBo"
"ID0gdyAqIGFzcGVjdAogICAgICAgIAogICAgcmV0dXJuIHsKICAgICAgICAncHJval90ZXh0JzogcHJv"
"al90ZXh0LCAnY2FtX3Bvcyc6IGNhbV9wb3MsICd2aWV3X2Rpcic6IHZpZXdfZGlyLAogICAgICAgICd0"
"YXJnZXRfcG9zJzogdGFyZ2V0X3BvcywgJ2Rpc3QnOiB2aWV3X2Rpc3QsICd3JzogdywgJ2gnOiBoLCAn"
"aXNfcGVyc3AnOiBpc19wZXJzcAogICAgfQoKCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT0KIyDjgJDjgqrjg5rjg6zjg7zjgr/jg7wgKOWun+ihjOaWhynjgJEKIyA9PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBESUNFX1RPT0xTXzVfT1RfcmVzZXRfdmlldyhicHku"
"dHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gZiJ2aWV3M2Que1BSRUZJWH1fcmVzZXRfdmll"
"dyIKICAgIGJsX2xhYmVsID0gIumBuOaKnuOCquODluOCuOOCp+OCr+ODiOOCkueUu+mdouS4reWkruOB"
"q+OBmeOCiyIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHJ2M2QgPSBnZXRf"
"cnYzZChjb250ZXh0KQogICAgICAgIGlmIG5vdCBydjNkOiByZXR1cm4geydDQU5DRUxMRUQnfQogICAg"
"ICAgIHRhcmdldCA9IGNvbnRleHQuYWN0aXZlX29iamVjdAogICAgICAgIHJ2M2Qudmlld19sb2NhdGlv"
"biA9IHRhcmdldC5tYXRyaXhfd29ybGQudG9fdHJhbnNsYXRpb24oKSBpZiB0YXJnZXQgZWxzZSBydjNk"
"LnZpZXdfbG9jYXRpb24uY29weSgpCiAgICAgICAgcnYzZC52aWV3X2Rpc3RhbmNlID0gbWF4KHRhcmdl"
"dC5kaW1lbnNpb25zLmxlbmd0aCAqIDEuNSwgMTAuMCkgaWYgdGFyZ2V0IGVsc2UgMzAuMAogICAgICAg"
"IHJ2M2Qudmlld19wZXJzcGVjdGl2ZSA9ICdQRVJTUCcKICAgICAgICBjb250ZXh0LnZpZXdfbGF5ZXIu"
"dXBkYXRlKCkKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBESUNFX1RPT0xTXzVfT1Rf"
"dXBkYXRlX2luZm8oYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9IGYidmlldzNkLntQ"
"UkVGSVh9X3VwZGF0ZV9pbmZvIgogICAgYmxfbGFiZWwgPSAi5oOF5aCx44KS5pu05pawIgogICAgZGVm"
"IGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgZm9yIGFyZWEgaW4gY29udGV4dC5zY3JlZW4u"
"YXJlYXM6CiAgICAgICAgICAgIGlmIGFyZWEudHlwZSA9PSAnVklFV18zRCc6IGFyZWEudGFnX3JlZHJh"
"dygpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgRElDRV9UT09MU181X09UX2NvcHlf"
"aW5mbyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gZiJ2aWV3M2Que1BSRUZJWH1f"
"Y29weV9pbmZvIgogICAgYmxfbGFiZWwgPSAi5oOF5aCx44KS44Kz44OU44O8IgogICAgZGVmIGV4ZWN1"
"dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgaW5mbyA9IGdldF92aWV3X2luZm9fZGF0YShjb250ZXh0"
"KQogICAgICAgIGlmIG5vdCBpbmZvOiByZXR1cm4geydDQU5DRUxMRUQnfQogICAgICAgIGxpbmVzID0g"
"WwogICAgICAgICAgICBmIuaKleW9seODouODvOODiToge2luZm9bJ3Byb2pfdGV4dCddfSIsCiAgICAg"
"ICAgICAgIGYi55S76Z2i5Lit5aSu5L2N572uOiBYOiB7aW5mb1sndGFyZ2V0X3BvcyddLng6LjFmfSwg"
"WToge2luZm9bJ3RhcmdldF9wb3MnXS55Oi4xZn0sIFo6IHtpbmZvWyd0YXJnZXRfcG9zJ10uejouMWZ9"
"IiwKICAgICAgICAgICAgZiLoppbluqfkvY3nva46IFg6IHtpbmZvWydjYW1fcG9zJ10ueDouMWZ9LCBZ"
"OiB7aW5mb1snY2FtX3BvcyddLnk6LjFmfSwgWjoge2luZm9bJ2NhbV9wb3MnXS56Oi4xZn0iLAogICAg"
"ICAgICAgICBmIuimlue3muaWueWQkTogWDoge2luZm9bJ3ZpZXdfZGlyJ10ueDouMWZ9LCBZOiB7aW5m"
"b1sndmlld19kaXInXS55Oi4xZn0sIFo6IHtpbmZvWyd2aWV3X2RpciddLno6LjFmfSIsCiAgICAgICAg"
"ICAgIGYi55S76Z2i5rC05bmz44Gu5aSn44GN44GVOiB7aW5mb1sndyddOi4xZn0iLAogICAgICAgICAg"
"ICBmIueUu+mdouS4iuS4i+OBruWkp+OBjeOBlToge2luZm9bJ2gnXTouMWZ9IgogICAgICAgIF0KICAg"
"ICAgICBpZiBpbmZvWydpc19wZXJzcCddOiBsaW5lcy5hcHBlbmQoZiLoppbluqfjgYvjgonjga7ot53p"
"m6I6IHtpbmZvWydkaXN0J106LjFmfSIpCiAgICAgICAgY29udGV4dC53aW5kb3dfbWFuYWdlci5jbGlw"
"Ym9hcmQgPSAiXG4iLmpvaW4obGluZXMpCiAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLjg5Pj"
"g6Xjg7zmg4XloLHjgpLjgq/jg6rjg4Pjg5fjg5zjg7zjg4njgavjgrPjg5Tjg7zjgZfjgb7jgZfjgZ8i"
"KQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIERJQ0VfVE9PTFNfNV9PVF9zZXRfZ3Jp"
"ZF9zY2FsZShicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gZiJ2aWV3M2Que1BSRUZJ"
"WH1fc2V0X2dyaWRfc2NhbGUiCiAgICBibF9sYWJlbCA9ICJHcmlk6ZaT6ZqU44KS6Kit5a6aIgogICAg"
"c2NhbGVfdmFsOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJTY2FsZSIpCiAgICB1c2VfY3Vz"
"dG9tOiBicHkucHJvcHMuQm9vbFByb3BlcnR5KG5hbWU9IuaMh+WumuaVsOWApCIsIGRlZmF1bHQ9RmFs"
"c2UpCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBwcm9wcyA9IGdldGF0dHIo"
"Y29udGV4dC5zY2VuZSwgZiJ7UFJFRklYfV9wcm9wcyIpCiAgICAgICAgdmFsID0gcHJvcHMuY3VzdG9t"
"X2dyaWRfc2NhbGUgaWYgc2VsZi51c2VfY3VzdG9tIGVsc2Ugc2VsZi5zY2FsZV92YWwKICAgICAgICBm"
"b3IgYXJlYSBpbiBjb250ZXh0LnNjcmVlbi5hcmVhczoKICAgICAgICAgICAgaWYgYXJlYS50eXBlID09"
"ICdWSUVXXzNEJzoKICAgICAgICAgICAgICAgIGZvciBzcGFjZSBpbiBhcmVhLnNwYWNlczoKICAgICAg"
"ICAgICAgICAgICAgICBpZiBzcGFjZS50eXBlID09ICdWSUVXXzNEJzogc3BhY2Uub3ZlcmxheS5ncmlk"
"X3NjYWxlID0gdmFsCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgRElDRV9UT09MU181"
"X09UX3Jlc2V0X3NldHRpbmdzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSBmInZp"
"ZXczZC57UFJFRklYfV9yZXNldF9zZXR0aW5ncyIKICAgIGJsX2xhYmVsID0gIuWIneacn+WApOOBq+aI"
"u+OBmSIKICAgIGRlZiBzZXRfdGhlbWVfY29sb3Ioc2VsZiwgb2JqLCBhdHRyLCBjb2xvcik6CiAgICAg"
"ICAgdHJ5OgogICAgICAgICAgICB0YXJnZXRfbGVuID0gbGVuKGdldGF0dHIob2JqLCBhdHRyKSkKICAg"
"ICAgICAgICAgc2V0YXR0cihvYmosIGF0dHIsIHR1cGxlKGNvbG9yKSArICgxLjAsKSBpZiB0YXJnZXRf"
"bGVuID09IDQgYW5kIGxlbihjb2xvcikgPT0gMyBlbHNlIHR1cGxlKGNvbG9yKVs6dGFyZ2V0X2xlbl0p"
"CiAgICAgICAgZXhjZXB0OiBwYXNzCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAg"
"ICBwcm9wcyA9IGdldGF0dHIoY29udGV4dC5zY2VuZSwgZiJ7UFJFRklYfV9wcm9wcyIpCiAgICAgICAg"
"cHJvcHMuY3VzdG9tX2dyaWRfc2NhbGUgPSBHUklEX0NVU1RPTV9JTklUCiAgICAgICAgaWYgY29udGV4"
"dC5wcmVmZXJlbmNlcy50aGVtZXM6CiAgICAgICAgICAgIHRoZW1lX3ZpZXczZCA9IGNvbnRleHQucHJl"
"ZmVyZW5jZXMudGhlbWVzWzBdLnZpZXdfM2QKICAgICAgICAgICAgc2VsZi5zZXRfdGhlbWVfY29sb3Io"
"dGhlbWVfdmlldzNkLCAiZ3JpZCIsIENPTE9SX0dSSURfSU5JVCkKICAgICAgICAgICAgc2VsZi5zZXRf"
"dGhlbWVfY29sb3IodGhlbWVfdmlldzNkLnNwYWNlLmdyYWRpZW50cywgImhpZ2hfZ3JhZGllbnQiLCBD"
"T0xPUl9CR19ISUdIX0lOSVQpCiAgICAgICAgICAgIHNlbGYuc2V0X3RoZW1lX2NvbG9yKHRoZW1lX3Zp"
"ZXczZC5zcGFjZS5ncmFkaWVudHMsICJncmFkaWVudCIsIENPTE9SX0JHX0xPV19JTklUKQogICAgICAg"
"IHJldHVybiB7J0ZJTklTSEVEJ30KCiMgLS0tIDN4MyDjgqvjg6njg7zoqJjmhrbnlKgg44Kq44Oa44Os"
"44O844K/44O8IC0tLQpjbGFzcyBESUNFX1RPT0xTXzVfT1RfYXBwbHlfcHJlc2V0KGJweS50eXBlcy5P"
"cGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSBmInZpZXczZC57UFJFRklYfV9hcHBseV9wcmVzZXQiCiAg"
"ICBibF9sYWJlbCA9ICLpgannlKgiCiAgICBwcmVzZXRfaWR4OiBicHkucHJvcHMuSW50UHJvcGVydHko"
"KQogICAgZGVmIHNldF90aGVtZV9jb2xvcihzZWxmLCBvYmosIGF0dHIsIGNvbG9yKToKICAgICAgICB0"
"cnk6CiAgICAgICAgICAgIHRhcmdldF9sZW4gPSBsZW4oZ2V0YXR0cihvYmosIGF0dHIpKQogICAgICAg"
"ICAgICBzZXRhdHRyKG9iaiwgYXR0ciwgdHVwbGUoY29sb3IpICsgKDEuMCwpIGlmIHRhcmdldF9sZW4g"
"PT0gNCBhbmQgbGVuKGNvbG9yKSA9PSAzIGVsc2UgdHVwbGUoY29sb3IpWzp0YXJnZXRfbGVuXSkKICAg"
"ICAgICBleGNlcHQ6IHBhc3MKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHBy"
"b3BzID0gZ2V0YXR0cihjb250ZXh0LnNjZW5lLCBmIntQUkVGSVh9X3Byb3BzIikKICAgICAgICB0aGVt"
"ZV92aWV3M2QgPSBjb250ZXh0LnByZWZlcmVuY2VzLnRoZW1lc1swXS52aWV3XzNkCiAgICAgICAgc2Vs"
"Zi5zZXRfdGhlbWVfY29sb3IodGhlbWVfdmlldzNkLCAiZ3JpZCIsIGdldGF0dHIocHJvcHMsIGYicHJl"
"c2V0e3NlbGYucHJlc2V0X2lkeH1fZ3JpZCIpKQogICAgICAgIHNlbGYuc2V0X3RoZW1lX2NvbG9yKHRo"
"ZW1lX3ZpZXczZC5zcGFjZS5ncmFkaWVudHMsICJoaWdoX2dyYWRpZW50IiwgZ2V0YXR0cihwcm9wcywg"
"ZiJwcmVzZXR7c2VsZi5wcmVzZXRfaWR4fV9oaWdoIikpCiAgICAgICAgc2VsZi5zZXRfdGhlbWVfY29s"
"b3IodGhlbWVfdmlldzNkLnNwYWNlLmdyYWRpZW50cywgImdyYWRpZW50IiwgZ2V0YXR0cihwcm9wcywg"
"ZiJwcmVzZXR7c2VsZi5wcmVzZXRfaWR4fV9sb3ciKSkKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8n"
"fSwgZiLjgrvjg4Pjg4gge3NlbGYucHJlc2V0X2lkeH0g44KS6YGp55So44GX44G+44GX44GfIikKICAg"
"ICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBESUNFX1RPT0xTXzVfT1Rfc3RvcmVfcHJlc2V0"
"KGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSBmInZpZXczZC57UFJFRklYfV9zdG9y"
"ZV9wcmVzZXQiCiAgICBibF9sYWJlbCA9ICLoqJjmhrYiCiAgICBwcmVzZXRfaWR4OiBicHkucHJvcHMu"
"SW50UHJvcGVydHkoKQogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcHJvcHMg"
"PSBnZXRhdHRyKGNvbnRleHQuc2NlbmUsIGYie1BSRUZJWH1fcHJvcHMiKQogICAgICAgIHRoZW1lX3Zp"
"ZXczZCA9IGNvbnRleHQucHJlZmVyZW5jZXMudGhlbWVzWzBdLnZpZXdfM2QKICAgICAgICBjZywgY2gs"
"IGNsID0gdGhlbWVfdmlldzNkLmdyaWQsIHRoZW1lX3ZpZXczZC5zcGFjZS5ncmFkaWVudHMuaGlnaF9n"
"cmFkaWVudCwgdGhlbWVfdmlldzNkLnNwYWNlLmdyYWRpZW50cy5ncmFkaWVudAogICAgICAgICMg6Imy"
"44Gu6YWN5YiX6ZW344KS5by35Yi26KOc5q2j44GX44Gm5L+d5a2YICjjgqjjg6njg7zlm57pgb8pCiAg"
"ICAgICAgc2V0YXR0cihwcm9wcywgZiJwcmVzZXR7c2VsZi5wcmVzZXRfaWR4fV9ncmlkIiwgbGlzdChj"
"ZykgKyBbMS4wXSBpZiBsZW4oY2cpID09IDMgZWxzZSBsaXN0KGNnKVs6NF0pCiAgICAgICAgc2V0YXR0"
"cihwcm9wcywgZiJwcmVzZXR7c2VsZi5wcmVzZXRfaWR4fV9oaWdoIiwgbGlzdChjaClbOjNdKQogICAg"
"ICAgIHNldGF0dHIocHJvcHMsIGYicHJlc2V0e3NlbGYucHJlc2V0X2lkeH1fbG93IiwgbGlzdChjbClb"
"OjNdKQogICAgICAgIHNlbGYucmVwb3J0KHsnSU5GTyd9LCBmIuOCu+ODg+ODiCB7c2VsZi5wcmVzZXRf"
"aWR4fSDjgavoqJjmhrbjgZfjgb7jgZfjgZ8iKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNs"
"YXNzIERJQ0VfVE9PTFNfNV9PVF9leHBvcnRfY29kZShicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxf"
"aWRuYW1lID0gZiJ2aWV3M2Que1BSRUZJWH1fZXhwb3J0X2NvZGUiCiAgICBibF9sYWJlbCA9ICLnj77l"
"nKjjga7oqK3lrprjg7voqJjmhrboibLjgaflhajkvZPjgrPjg7zjg4njgpLlh7rlipsiCgogICAgZGVm"
"IGdldF92YWxpZF9zb3VyY2VfY29kZShzZWxmLCBjb250ZXh0KToKICAgICAgICAjIOeiuuWun+OBq+OA"
"jDN4M+OBruODlOODg+OCq+ODvOWkieaVsOOBjOWtmOWcqOOBmeOCi+acgOaWsOOBruOCs+ODvOODieOA"
"jeOCkuaOouOBmeWHpueQhgogICAgICAgIGNvZGUgPSAiIgogICAgICAgIGlmIGNvbnRleHQuc3BhY2Vf"
"ZGF0YSBhbmQgY29udGV4dC5zcGFjZV9kYXRhLnR5cGUgPT0gJ1RFWFRfRURJVE9SJzoKICAgICAgICAg"
"ICAgY29kZSA9IGNvbnRleHQuc3BhY2VfZGF0YS50ZXh0LmFzX3N0cmluZygpCiAgICAgICAgaWYgY29k"
"ZSBhbmQgIlBSRVNFVDNfTE9XIiBpbiBjb2RlOiByZXR1cm4gY29kZQogICAgICAgIAogICAgICAgIHZh"
"bGlkX3RleHRzID0gW10KICAgICAgICBmb3IgdGV4dCBpbiBicHkuZGF0YS50ZXh0czoKICAgICAgICAg"
"ICAgcyA9IHRleHQuYXNfc3RyaW5nKCkKICAgICAgICAgICAgaWYgInppb25hZF9bIOewoeaYk+iDjOaZ"
"ryBdIiBpbiBzIGFuZCAiUFJFU0VUM19MT1ciIGluIHM6CiAgICAgICAgICAgICAgICB2YWxpZF90ZXh0"
"cy5hcHBlbmQodGV4dCkKICAgICAgICBpZiB2YWxpZF90ZXh0czogcmV0dXJuIHZhbGlkX3RleHRzWy0x"
"XS5hc19zdHJpbmcoKSAjIOacgOaWsOOBruOCguOBruOCkui/lOOBmQogICAgICAgIHJldHVybiAiIgoK"
"ICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gZ2V0YXR0cihjb250"
"ZXh0LnNjZW5lLCBmIntQUkVGSVh9X3Byb3BzIikKICAgICAgICBncmlkX2N1c3RvbSA9IHJvdW5kKHBy"
"b3BzLmN1c3RvbV9ncmlkX3NjYWxlLCA0KQogICAgICAgIGlmIG5vdCBjb250ZXh0LnByZWZlcmVuY2Vz"
"LnRoZW1lczogcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICB0aGVtZV92aWV3M2QgPSBjb250ZXh0"
"LnByZWZlcmVuY2VzLnRoZW1lc1swXS52aWV3XzNkCiAgICAgICAgCiAgICAgICAgIyDjgqjjg6njg7zp"
"mLLmraLjga7jgZ/jgoHplbfjgZXjgpLlm7rlrprjgZfjgabkuLjjgoHjgovplqLmlbAKICAgICAgICBk"
"ZWYgcm91bmRfYyhjLCBzaXplKToKICAgICAgICAgICAgbHN0ID0gbGlzdChjKQogICAgICAgICAgICB3"
"aGlsZSBsZW4obHN0KSA8IHNpemU6IGxzdC5hcHBlbmQoMS4wKQogICAgICAgICAgICByZXR1cm4gdHVw"
"bGUocm91bmQodiwgNCkgZm9yIHYgaW4gbHN0WzpzaXplXSkKCiAgICAgICAgY29kZSA9IHNlbGYuZ2V0"
"X3ZhbGlkX3NvdXJjZV9jb2RlKGNvbnRleHQpCiAgICAgICAgaWYgbm90IGNvZGU6CiAgICAgICAgICAg"
"IHNlbGYucmVwb3J0KHsnRVJST1InfSwgIuato+OBl+OBhOOCveODvOOCueOCs+ODvOODieOBjOimi+OB"
"pOOBi+OCiuOBvuOBm+OCk+OAgiIpCiAgICAgICAgICAgIHJldHVybiB7J0NBTkNFTExFRCd9CgogICAg"
"ICAgICMg5pWw5YCk44O75Yid5pyf5YCk572u5o+bCiAgICAgICAgY29kZSA9IHJlLnN1YihyIkdSSURf"
"Q1VTVE9NX0lOSVRccyo9XHMqW1xkXC5dKyIsIGYiR1JJRF9DVVNUT01fSU5JVCA9IHtncmlkX2N1c3Rv"
"bX0iLCBjb2RlKQogICAgICAgIGNvZGUgPSByZS5zdWIociJDT0xPUl9HUklEX0lOSVRccyo9XHMqXCgu"
"Kj9cKSIsIGYiQ09MT1JfR1JJRF9JTklUID0ge3JvdW5kX2ModGhlbWVfdmlldzNkLmdyaWQsIDQpfSIs"
"IGNvZGUpCiAgICAgICAgY29kZSA9IHJlLnN1YihyIkNPTE9SX0JHX0hJR0hfSU5JVFxzKj1ccypcKC4q"
"P1wpIiwgZiJDT0xPUl9CR19ISUdIX0lOSVQgPSB7cm91bmRfYyh0aGVtZV92aWV3M2Quc3BhY2UuZ3Jh"
"ZGllbnRzLmhpZ2hfZ3JhZGllbnQsIDMpfSIsIGNvZGUpCiAgICAgICAgY29kZSA9IHJlLnN1YihyIkNP"
"TE9SX0JHX0xPV19JTklUXHMqPVxzKlwoLio/XCkiLCBmIkNPTE9SX0JHX0xPV19JTklUID0ge3JvdW5k"
"X2ModGhlbWVfdmlldzNkLnNwYWNlLmdyYWRpZW50cy5ncmFkaWVudCwgMyl9IiwgY29kZSkKCiAgICAg"
"ICAgIyAz44K744OD44OI6KiY5oa26Imy44Gu572u5o+bCiAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMSwg"
"NCk6CiAgICAgICAgICAgIGNnID0gcm91bmRfYyhnZXRhdHRyKHByb3BzLCBmInByZXNldHtpfV9ncmlk"
"IiksIDQpCiAgICAgICAgICAgIGNoID0gcm91bmRfYyhnZXRhdHRyKHByb3BzLCBmInByZXNldHtpfV9o"
"aWdoIiksIDMpCiAgICAgICAgICAgIGNsID0gcm91bmRfYyhnZXRhdHRyKHByb3BzLCBmInByZXNldHtp"
"fV9sb3ciKSwgMykKICAgICAgICAgICAgY29kZSA9IHJlLnN1YihyZiJQUkVTRVR7aX1fR1JJRFxzKj1c"
"cypcKC4qP1wpIiwgZiJQUkVTRVR7aX1fR1JJRCA9IHtjZ30iLCBjb2RlKQogICAgICAgICAgICBjb2Rl"
"ID0gcmUuc3ViKHJmIlBSRVNFVHtpfV9ISUdIXHMqPVxzKlwoLio/XCkiLCBmIlBSRVNFVHtpfV9ISUdI"
"ID0ge2NofSIsIGNvZGUpCiAgICAgICAgICAgIGNvZGUgPSByZS5zdWIocmYiUFJFU0VUe2l9X0xPV1xz"
"Kj1ccypcKC4qP1wpIiwgIGYiUFJFU0VUe2l9X0xPVyA9IHtjbH0iLCBjb2RlKQoKICAgICAgICBuZXdf"
"dGV4dCA9IGJweS5kYXRhLnRleHRzLm5ldyhuYW1lPSJaSU9OQURfVXBkYXRlZF9Db2RlLnB5IikKICAg"
"ICAgICBuZXdfdGV4dC5mcm9tX3N0cmluZyhjb2RlKQogICAgICAgIAogICAgICAgICMg55Sf5oiQ5b6M"
"44CB44OG44Kt44K544OI44Ko44OH44Kj44K/44KS5YiH44KK5pu/44GI44KLCiAgICAgICAgZm9yIGFy"
"ZWEgaW4gY29udGV4dC5zY3JlZW4uYXJlYXM6CiAgICAgICAgICAgIGlmIGFyZWEudHlwZSA9PSAnVEVY"
"VF9FRElUT1InOgogICAgICAgICAgICAgICAgYXJlYS5zcGFjZXMuYWN0aXZlLnRleHQgPSBuZXdfdGV4"
"dAogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgIAogICAgICAgIHNlbGYucmVwb3J0"
"KHsnSU5GTyd9LCBmIuaWsOOBl+OBhOOCs+ODvOODiSAne25ld190ZXh0Lm5hbWV9JyDjgpLnlJ/miJDj"
"gZfjgb7jgZfjgZ/jgILjgZPjgaHjgonjgpLlrp/ooYzjgZfjgabjgY/jgaDjgZXjgYTjgIIiKQogICAg"
"ICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIERJQ0VfVE9PTFNfNV9PVF9vcGVuX3VybChicHku"
"dHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gZiJ3bS57UFJFRklYfV9vcGVuX3VybCIKICAg"
"IGJsX2xhYmVsID0gIuODquODs+OCr+OCkumWi+OBjyIKICAgIHVybDogYnB5LnByb3BzLlN0cmluZ1By"
"b3BlcnR5KCkKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIGlmIHNlbGYudXJs"
"OiB3ZWJicm93c2VyLm9wZW4oc2VsZi51cmwpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xh"
"c3MgRElDRV9UT09MU181X09UX3JlbW92ZV9hZGRvbihicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxf"
"aWRuYW1lID0gZiJ3bS57UFJFRklYfV9yZW1vdmVfYWRkb24iCiAgICBibF9sYWJlbCA9ICLjgqLjg4nj"
"gqrjg7PliYrpmaTlrp/ooYwiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KTogCiAgICAgICAg"
"dHJ5OiB1bnJlZ2lzdGVyKCk7IHNlbGYucmVwb3J0KHsnSU5GTyd9LCAi44Ki44OJ44Kq44Oz44KS5YmK"
"6Zmk44GX44G+44GX44GfIikKICAgICAgICBleGNlcHQ6IHBhc3MKICAgICAgICByZXR1cm4geydGSU5J"
"U0hFRCd9CgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIOOAkOODl+ODreOD"
"keODhuOCo+Wumue+qeOAkQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNz"
"IERJQ0VfVE9PTFNfNV9Qcm9wZXJ0aWVzKGJweS50eXBlcy5Qcm9wZXJ0eUdyb3VwKToKICAgIGN1c3Rv"
"bV9ncmlkX3NjYWxlOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSLmjIflrprmlbDlgKQiLCBk"
"ZWZhdWx0PUdSSURfQ1VTVE9NX0lOSVQsIG1pbj0wLjAwMSkKICAgIAogICAgIyDjgrXjgqTjgrooMywg"
"NCnjgpLljrPlr4bjgavlm7rlrpoKICAgIHByZXNldDFfZ3JpZDogYnB5LnByb3BzLkZsb2F0VmVjdG9y"
"UHJvcGVydHkobmFtZT0iRyIsIHN1YnR5cGU9J0NPTE9SJywgc2l6ZT00LCBkZWZhdWx0PVBSRVNFVDFf"
"R1JJRCwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHByZXNldDFfaGlnaDogYnB5LnByb3BzLkZsb2F0VmVj"
"dG9yUHJvcGVydHkobmFtZT0iSCIsIHN1YnR5cGU9J0NPTE9SJywgc2l6ZT0zLCBkZWZhdWx0PVBSRVNF"
"VDFfSElHSCwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHByZXNldDFfbG93OiAgYnB5LnByb3BzLkZsb2F0"
"VmVjdG9yUHJvcGVydHkobmFtZT0iTCIsIHN1YnR5cGU9J0NPTE9SJywgc2l6ZT0zLCBkZWZhdWx0PVBS"
"RVNFVDFfTE9XLCBtaW49MC4wLCBtYXg9MS4wKQogICAgCiAgICBwcmVzZXQyX2dyaWQ6IGJweS5wcm9w"
"cy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkciLCBzdWJ0eXBlPSdDT0xPUicsIHNpemU9NCwgZGVm"
"YXVsdD1QUkVTRVQyX0dSSUQsIG1pbj0wLjAsIG1heD0xLjApCiAgICBwcmVzZXQyX2hpZ2g6IGJweS5w"
"cm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkgiLCBzdWJ0eXBlPSdDT0xPUicsIHNpemU9Mywg"
"ZGVmYXVsdD1QUkVTRVQyX0hJR0gsIG1pbj0wLjAsIG1heD0xLjApCiAgICBwcmVzZXQyX2xvdzogIGJw"
"eS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkwiLCBzdWJ0eXBlPSdDT0xPUicsIHNpemU9"
"MywgZGVmYXVsdD1QUkVTRVQyX0xPVywgbWluPTAuMCwgbWF4PTEuMCkKICAgIAogICAgcHJlc2V0M19n"
"cmlkOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJHIiwgc3VidHlwZT0nQ09MT1In"
"LCBzaXplPTQsIGRlZmF1bHQ9UFJFU0VUM19HUklELCBtaW49MC4wLCBtYXg9MS4wKQogICAgcHJlc2V0"
"M19oaWdoOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJIIiwgc3VidHlwZT0nQ09M"
"T1InLCBzaXplPTMsIGRlZmF1bHQ9UFJFU0VUM19ISUdILCBtaW49MC4wLCBtYXg9MS4wKQogICAgcHJl"
"c2V0M19sb3c6ICBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJMIiwgc3VidHlwZT0n"
"Q09MT1InLCBzaXplPTMsIGRlZmF1bHQ9UFJFU0VUM19MT1csIG1pbj0wLjAsIG1heD0xLjApCgoKIyA9"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIOOAkFVJ44OR44ON44OrICjjgqLjg4nj"
"gqrjg7Pmp4vpgKAp44CRCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY2xhc3Mg"
"RElDRV9UT09MU181X1BUX21haW5fcGFuZWwoYnB5LnR5cGVzLlBhbmVsKToKICAgIGJsX2lkbmFtZSA9"
"IGYie1BSRUZJWC51cHBlcigpfV9QVF9tYWluX3BhbmVsIgogICAgYmxfbGFiZWwgPSBBRERPTl9USVRM"
"RQogICAgYmxfc3BhY2VfdHlwZSA9ICdWSUVXXzNEJwogICAgYmxfcmVnaW9uX3R5cGUgPSAnVUknCiAg"
"ICBibF9jYXRlZ29yeSA9IEFERE9OX0NBVEVHT1JZCiAgICAKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRl"
"eHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgcHJvcHMgPSBnZXRhdHRyKGNv"
"bnRleHQuc2NlbmUsIGYie1BSRUZJWH1fcHJvcHMiKQogICAgICAgIGluZm8gPSBnZXRfdmlld19pbmZv"
"X2RhdGEoY29udGV4dCkKICAgICAgICAKICAgICAgICBsYXlvdXQub3BlcmF0b3IoZiJ2aWV3M2Que1BS"
"RUZJWH1fcmVzZXRfdmlldyIsIHRleHQ9IumBuOaKnuOCquODluOCuOOCp+OCr+ODiOOCkueUu+mdouS4"
"reWkruOBq+OBmeOCiyIsIGljb249J1pPT01fQUxMJykKICAgICAgICBsYXlvdXQuc2VwYXJhdG9yKGZh"
"Y3Rvcj0xLjUpCiAgICAgICAgCiAgICAgICAgYm94X2luZm8gPSBsYXlvdXQuYm94KCkKICAgICAgICBy"
"b3dfaW5mbyA9IGJveF9pbmZvLnJvdyhhbGlnbj1UcnVlKQogICAgICAgIHJvd19pbmZvLmxhYmVsKHRl"
"eHQ9ZiLmg4XloLE6IFt7aW5mb1sncHJval90ZXh0J10gaWYgaW5mbyBlbHNlICfkuI3mmI4nfV0iLCBp"
"Y29uPSdJTkZPJykKICAgICAgICByb3dfaW5mby5vcGVyYXRvcihmInZpZXczZC57UFJFRklYfV91cGRh"
"dGVfaW5mbyIsIHRleHQ9IiIsIGljb249J0ZJTEVfUkVGUkVTSCcpCiAgICAgICAgCiAgICAgICAgaWYg"
"aW5mbzoKICAgICAgICAgICAgY29sX2luZm8gPSBib3hfaW5mby5jb2x1bW4oYWxpZ249VHJ1ZSkKICAg"
"ICAgICAgICAgY29sX2luZm8ubGFiZWwodGV4dD1mIueUu+mdouS4reWkruS9jee9rjogWDoge2luZm9b"
"J3RhcmdldF9wb3MnXS54Oi4xZn0sIFk6IHtpbmZvWyd0YXJnZXRfcG9zJ10ueTouMWZ9LCBaOiB7aW5m"
"b1sndGFyZ2V0X3BvcyddLno6LjFmfSIpCiAgICAgICAgICAgIGNvbF9pbmZvLmxhYmVsKHRleHQ9ZiLo"
"ppbluqfkvY3nva46IFg6IHtpbmZvWydjYW1fcG9zJ10ueDouMWZ9LCBZOiB7aW5mb1snY2FtX3Bvcydd"
"Lnk6LjFmfSwgWjoge2luZm9bJ2NhbV9wb3MnXS56Oi4xZn0iKQogICAgICAgICAgICBjb2xfaW5mby5s"
"YWJlbCh0ZXh0PWYi6KaW57ea5pa55ZCROiBYOiB7aW5mb1sndmlld19kaXInXS54Oi4xZn0sIFk6IHtp"
"bmZvWyd2aWV3X2RpciddLnk6LjFmfSwgWjoge2luZm9bJ3ZpZXdfZGlyJ10uejouMWZ9IikKICAgICAg"
"ICAgICAgY29sX2luZm8uc2VwYXJhdG9yKCkKICAgICAgICAgICAgY29sX2luZm8ubGFiZWwodGV4dD1m"
"IueUu+mdouawtOW5s+OBruWkp+OBjeOBlToge2luZm9bJ3cnXTouMWZ9IikKICAgICAgICAgICAgY29s"
"X2luZm8ubGFiZWwodGV4dD1mIueUu+mdouS4iuS4i+OBruWkp+OBjeOBlToge2luZm9bJ2gnXTouMWZ9"
"IikKICAgICAgICAgICAgaWYgaW5mb1snaXNfcGVyc3AnXToKICAgICAgICAgICAgICAgIGNvbF9pbmZv"
"LnNlcGFyYXRvcigpCiAgICAgICAgICAgICAgICBjb2xfaW5mby5sYWJlbCh0ZXh0PWYi6KaW5bqn44GL"
"44KJ44Gu6Led6ZuiOiB7aW5mb1snZGlzdCddOi4xZn0iKQogICAgICAgICAgICBib3hfaW5mby5zZXBh"
"cmF0b3IoKQogICAgICAgICAgICBib3hfaW5mby5vcGVyYXRvcihmInZpZXczZC57UFJFRklYfV9jb3B5"
"X2luZm8iLCBpY29uPSdDT1BZRE9XTicpCiAgICAgICAgZWxzZTogYm94X2luZm8ubGFiZWwodGV4dD0i"
"M0Tjg5Pjg6Xjg7zjgYzopovjgaTjgYvjgorjgb7jgZvjgpMiKQogICAgICAgICAgICAKICAgICAgICBs"
"YXlvdXQuc2VwYXJhdG9yKGZhY3Rvcj0xLjUpCiAgICAgICAgCiAgICAgICAgYm94X2dyaWQgPSBsYXlv"
"dXQuYm94KCkKICAgICAgICBib3hfZ3JpZC5sYWJlbCh0ZXh0PSLnsKHmmJPog4zmma8gLyBHcmlkIOio"
"reWumiIsIGljb249J0dSSUQnKQogICAgICAgIHJvd19wcmVzZXQgPSBib3hfZ3JpZC5yb3coYWxpZ249"
"VHJ1ZSkKICAgICAgICByb3dfcHJlc2V0Lm9wZXJhdG9yKGYidmlldzNkLntQUkVGSVh9X3NldF9ncmlk"
"X3NjYWxlIiwgdGV4dD1mIumWk+malCB7R1JJRF9QUkVTRVRfMX0iKS5zY2FsZV92YWwgPSBHUklEX1BS"
"RVNFVF8xCiAgICAgICAgcm93X3ByZXNldC5vcGVyYXRvcihmInZpZXczZC57UFJFRklYfV9zZXRfZ3Jp"
"ZF9zY2FsZSIsIHRleHQ9ZiLplpPpmpQge0dSSURfUFJFU0VUXzJ9Iikuc2NhbGVfdmFsID0gR1JJRF9Q"
"UkVTRVRfMgogICAgICAgIAogICAgICAgIHJvd19jdXN0b20gPSBib3hfZ3JpZC5yb3coYWxpZ249VHJ1"
"ZSkKICAgICAgICByb3dfY3VzdG9tLnByb3AocHJvcHMsICJjdXN0b21fZ3JpZF9zY2FsZSIpCiAgICAg"
"ICAgcm93X2N1c3RvbS5vcGVyYXRvcihmInZpZXczZC57UFJFRklYfV9zZXRfZ3JpZF9zY2FsZSIsIHRl"
"eHQ9IumBqeeUqCIpLnVzZV9jdXN0b20gPSBUcnVlCiAgICAgICAgYm94X2dyaWQuc2VwYXJhdG9yKCkK"
"ICAgICAgICAKICAgICAgICBpZiBjb250ZXh0LnByZWZlcmVuY2VzLnRoZW1lczoKICAgICAgICAgICAg"
"dGhlbWVfdmlldzNkID0gY29udGV4dC5wcmVmZXJlbmNlcy50aGVtZXNbMF0udmlld18zZAogICAgICAg"
"ICAgICBjb2xfdGhlbWUgPSBib3hfZ3JpZC5jb2x1bW4oYWxpZ249VHJ1ZSkKICAgICAgICAgICAgY29s"
"X3RoZW1lLnByb3AodGhlbWVfdmlldzNkLCAiZ3JpZCIsIHRleHQ9IkdyaWQg6Imy5aSJ5pu0IikKICAg"
"ICAgICAgICAgY29sX3RoZW1lLnNlcGFyYXRvcigpCiAgICAgICAgICAgIGNvbF90aGVtZS5wcm9wKHRo"
"ZW1lX3ZpZXczZC5zcGFjZS5ncmFkaWVudHMsICJoaWdoX2dyYWRpZW50IiwgdGV4dD0i55S76Z2i6IOM"
"5pmv6ImyICjkuIopIikKICAgICAgICAgICAgY29sX3RoZW1lLnByb3AodGhlbWVfdmlldzNkLnNwYWNl"
"LmdyYWRpZW50cywgImdyYWRpZW50IiwgdGV4dD0i55S76Z2i6IOM5pmv6ImyICjkuIspIikKCiAgICAg"
"ICAgYm94X2dyaWQuc2VwYXJhdG9yKCkKICAgICAgICBib3hfZ3JpZC5vcGVyYXRvcihmInZpZXczZC57"
"UFJFRklYfV9yZXNldF9zZXR0aW5ncyIsIGljb249J0xPT1BfQkFDSycpCiAgICAgICAgbGF5b3V0LnNl"
"cGFyYXRvcihmYWN0b3I9MS41KQoKICAgICAgICBib3hfbWVtID0gbGF5b3V0LmJveCgpCiAgICAgICAg"
"Ym94X21lbS5sYWJlbCh0ZXh0PSLjgqvjg6njg7zoqJjmhrbjgrnjg63jg4Pjg4ggKDPjgrvjg4Pjg4gp"
"IiwgaWNvbj0nQ09MT1InKQogICAgICAgIAogICAgICAgIGZvciBpIGluIHJhbmdlKDEsIDQpOgogICAg"
"ICAgICAgICByb3dfYnRuID0gYm94X21lbS5yb3coYWxpZ249VHJ1ZSkKICAgICAgICAgICAgcm93X2J0"
"bi5sYWJlbCh0ZXh0PWYi44K744OD44OIIHtpfToiKQogICAgICAgICAgICByb3dfYnRuLm9wZXJhdG9y"
"KGYidmlldzNkLntQUkVGSVh9X2FwcGx5X3ByZXNldCIsIHRleHQ9IumBqeeUqCIsIGljb249J0NIRUNL"
"TUFSSycpLnByZXNldF9pZHggPSBpCiAgICAgICAgICAgIHJvd19idG4ub3BlcmF0b3IoZiJ2aWV3M2Qu"
"e1BSRUZJWH1fc3RvcmVfcHJlc2V0IiwgdGV4dD0i6KiY5oa2IiwgaWNvbj0nRVlFRFJPUFBFUicpLnBy"
"ZXNldF9pZHggPSBpCiAgICAgICAgICAgIAogICAgICAgICAgICByb3dfY29sb3IgPSBib3hfbWVtLnJv"
"dyhhbGlnbj1UcnVlKQogICAgICAgICAgICByb3dfY29sb3IucHJvcChwcm9wcywgZiJwcmVzZXR7aX1f"
"Z3JpZCIsIHRleHQ9IkciKQogICAgICAgICAgICByb3dfY29sb3IucHJvcChwcm9wcywgZiJwcmVzZXR7"
"aX1faGlnaCIsIHRleHQ9IkgiKQogICAgICAgICAgICByb3dfY29sb3IucHJvcChwcm9wcywgZiJwcmVz"
"ZXR7aX1fbG93IiwgIHRleHQ9IkwiKQogICAgICAgICAgICBib3hfbWVtLnNlcGFyYXRvcigpCiAgICAg"
"ICAgCiAgICAgICAgYm94X21lbS5vcGVyYXRvcihmInZpZXczZC57UFJFRklYfV9leHBvcnRfY29kZSIs"
"IGljb249J1RFWFQnKQogICAgICAgIGxheW91dC5zZXBhcmF0b3IoZmFjdG9yPTEuNSkKICAgICAgICAK"
"ICAgICAgICBib3hfc3lzID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94X3N5cy5sYWJlbCh0ZXh0PSLj"
"grfjgrnjg4bjg6AgLyDjg6rjg7Pjgq8iLCBpY29uPSdQUkVGRVJFTkNFUycpCiAgICAgICAgCiAgICAg"
"ICAgZm9yIG5hbWUsIHVybCBpbiBbKExJTktfTkFNRV8xLCBMSU5LX1VSTF8xKSwgKExJTktfTkFNRV8y"
"LCBMSU5LX1VSTF8yKSwgKExJTktfTkFNRV8zLCBMSU5LX1VSTF8zKSwgKExJTktfTkFNRV80LCBMSU5L"
"X1VSTF80KSwgKExJTktfTkFNRV81LCBMSU5LX1VSTF81KV06CiAgICAgICAgICAgIGlmIG5hbWUgYW5k"
"IHVybDoKICAgICAgICAgICAgICAgIG9wID0gYm94X3N5cy5vcGVyYXRvcihmIndtLntQUkVGSVh9X29w"
"ZW5fdXJsIiwgdGV4dD1uYW1lLCBpY29uPSdVUkwnKQogICAgICAgICAgICAgICAgb3AudXJsID0gdXJs"
"CiAgICAgICAgICAgICAgICAKICAgICAgICBib3hfc3lzLnNlcGFyYXRvcigpCiAgICAgICAgYm94X3N5"
"cy5vcGVyYXRvcihmIndtLntQUkVGSVh9X3JlbW92ZV9hZGRvbiIsIGljb249J0NBTkNFTCcpCgoKIyA9"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIOOAkOeZu+mMsuODu+WJiumZpOWHpueQ"
"huOAkQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNzZXMgPSBbCiAgICBE"
"SUNFX1RPT0xTXzVfUHJvcGVydGllcywKICAgIERJQ0VfVE9PTFNfNV9PVF9yZXNldF92aWV3LAogICAg"
"RElDRV9UT09MU181X09UX3VwZGF0ZV9pbmZvLAogICAgRElDRV9UT09MU181X09UX2NvcHlfaW5mbywK"
"ICAgIERJQ0VfVE9PTFNfNV9PVF9zZXRfZ3JpZF9zY2FsZSwKICAgIERJQ0VfVE9PTFNfNV9PVF9yZXNl"
"dF9zZXR0aW5ncywKICAgIERJQ0VfVE9PTFNfNV9PVF9hcHBseV9wcmVzZXQsCiAgICBESUNFX1RPT0xT"
"XzVfT1Rfc3RvcmVfcHJlc2V0LAogICAgRElDRV9UT09MU181X09UX2V4cG9ydF9jb2RlLAogICAgRElD"
"RV9UT09MU181X09UX29wZW5fdXJsLAogICAgRElDRV9UT09MU181X09UX3JlbW92ZV9hZGRvbiwKICAg"
"IERJQ0VfVE9PTFNfNV9QVF9tYWluX3BhbmVsCl0KCmRlZiByZWdpc3RlcigpOgogICAgZm9yIGMgaW4g"
"Y2xhc3NlczogYnB5LnV0aWxzLnJlZ2lzdGVyX2NsYXNzKGMpCiAgICBzZXRhdHRyKGJweS50eXBlcy5T"
"Y2VuZSwgZiJ7UFJFRklYfV9wcm9wcyIsIGJweS5wcm9wcy5Qb2ludGVyUHJvcGVydHkodHlwZT1ESUNF"
"X1RPT0xTXzVfUHJvcGVydGllcykpCgpkZWYgdW5yZWdpc3RlcigpOgogICAgaWYgaGFzYXR0cihicHku"
"dHlwZXMuU2NlbmUsIGYie1BSRUZJWH1fcHJvcHMiKTogZGVsYXR0cihicHkudHlwZXMuU2NlbmUsIGYi"
"e1BSRUZJWH1fcHJvcHMiKQogICAgZm9yIGMgaW4gcmV2ZXJzZWQoY2xhc3Nlcyk6CiAgICAgICAgdHJ5"
"OiBicHkudXRpbHMudW5yZWdpc3Rlcl9jbGFzcyhjKQogICAgICAgIGV4Y2VwdDogcGFzcwoKaWYgX19u"
"YW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHRyeTogdW5yZWdpc3RlcigpCiAgICBleGNlcHQ6IHBhc3MK"
"ICAgIHJlZ2lzdGVyKCk="
)
},
{
"name": "平面2つなす角度 20260713_007",
"code_b64": (
"YmxfaW5mbyA9IHsKICAgICJuYW1lIjogIlRvcnVzIEN1YmUgJiBUcmlhbmdsZSBBbmFseXplciIsCiAg"
"ICAiYXV0aG9yIjogIkFJIEFzc2lzdGFudCIsCiAgICAidmVyc2lvbiI6ICgxLCA3LCAwKSwKICAgICJi"
"bGVuZGVyIjogKDQsIDIsIDApLAogICAgImxvY2F0aW9uIjogIlZpZXczRCA+IFNpZGViYXIgPiBUQ1RB"
"IiwKICAgICJkZXNjcmlwdGlvbiI6ICLjgqrjg5bjgrjjgqfjgq/jg4jnlJ/miJDjga7jg57jgrnjgr/j"
"g7zliLblvqHjgajjgIEz44Gk44Gu5ZCM5b+D55CD44Gr44KI44KL6Led6Zui44Gu6KaW6Kaa5YyWIiwK"
"ICAgICJjYXRlZ29yeSI6ICIzRCBWaWV3IiwKfQoKaW1wb3J0IGJweQppbXBvcnQgYm1lc2gKaW1wb3J0"
"IG1hdGgKaW1wb3J0IG1hdGh1dGlscwppbXBvcnQgcmFuZG9tCgojID09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyAxLiDl"
"iJ3mnJ/lgKTlrprnvqkKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClBSRUZJWCA9ICJUQ1RBXyIKUEFSRU5UX0NPTExF"
"Q1RJT05fTkFNRSA9ICJUb3J1c0N1YmVTcGFjZSIKU1VCX0NPTExFQ1RJT05fTkFNRSA9ICJBbmFseXpl"
"ck9iamVjdHMiClRPUlVTX1NLRUxFVE9OX05BTUUgPSAiVG9ydXNTa2VsZXRvbiIKU1BIRVJFXzFfTkFN"
"RSA9ICJTcGhlcmVfMSIKU1BIRVJFXzJfTkFNRSA9ICJTcGhlcmVfMiIKU1BIRVJFXzNfTkFNRSA9ICJT"
"cGhlcmVfMyIKVFJJQU5HTEVfQV9OQU1FID0gIlRyaWFuZ2xlX0EiClRSSUFOR0xFX0JfTkFNRSA9ICJU"
"cmlhbmdsZV9CIgpBUlJPV19OQU1FID0gIkFycm93X1Nob3J0ZXN0RGlzdCIKQ0lSQ0xFX05BTUUgPSAi"
"Q2lyY2xlX1BsYW5lQiIKRElTVF9TUEhFUkVfTkFNRSA9ICJTcGhlcmVfU2hvcnRlc3REaXN0X0lubmVy"
"IgpPVVRFUl9TUEhFUkVfTkFNRSA9ICJTcGhlcmVfT3V0ZXJCb3VuZCIKSEVNSVNQSEVSRV9OQU1FID0g"
"IkhlbWlzcGhlcmVfUGxhbmVCIgpDT05DX1NQSEVSRV8xX05BTUUgPSAiU3BoZXJlX0NvbmNfMSIgIyDm"
"lrDopo86IOWQjOW/g+eQgzEKQ09OQ19TUEhFUkVfMl9OQU1FID0gIlNwaGVyZV9Db25jXzIiICMg5paw"
"6KaPOiDlkIzlv4PnkIMyCkNPTkNfU1BIRVJFXzNfTkFNRSA9ICJTcGhlcmVfQ29uY18zIiAjIOaWsOim"
"jzog5ZCM5b+D55CDMwoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgMi4g44OX44Ot44OR44OG44Kj5a6a576p77yI"
"6KGo56S65pu05paw44Kz44O844Or44OQ44OD44Kv5ZCr44KA77yJCiMgPT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkZWYg"
"dXBkYXRlX3Zpc2liaWxpdHkoc2VsZiwgY29udGV4dCk6CiAgICAiIiLjg4Hjgqfjg4Pjgq/jg5zjg4Pj"
"gq/jgrnlpInmm7TmmYLjgavjgIHoqbLlvZPjgqrjg5bjgrjjgqfjgq/jg4jjga7ooajnpLov6Z2e6KGo"
"56S644KS5Y2z5bqn44Gr5YiH44KK5pu/44GI44KLIiIiCiAgICBtYXBwaW5nID0gewogICAgICAgIHNl"
"bGYuc2hvd190b3J1czogW1RPUlVTX1NLRUxFVE9OX05BTUVdLAogICAgICAgIHNlbGYuc2hvd190YXJn"
"ZXRzOiBbU1BIRVJFXzFfTkFNRSwgU1BIRVJFXzJfTkFNRSwgU1BIRVJFXzNfTkFNRV0sCiAgICAgICAg"
"c2VsZi5zaG93X3RyaWFuZ2xlczogW1RSSUFOR0xFX0FfTkFNRSwgVFJJQU5HTEVfQl9OQU1FXSwKICAg"
"ICAgICBzZWxmLnNob3dfYXJyb3c6IFtBUlJPV19OQU1FXSwKICAgICAgICBzZWxmLnNob3dfY2lyY2xl"
"OiBbQ0lSQ0xFX05BTUVdLAogICAgICAgIHNlbGYuc2hvd19oZW1pc3BoZXJlOiBbSEVNSVNQSEVSRV9O"
"QU1FXSwKICAgICAgICBzZWxmLnNob3dfaW5uZXJfc3BoZXJlOiBbRElTVF9TUEhFUkVfTkFNRV0sCiAg"
"ICAgICAgc2VsZi5zaG93X291dGVyX3NwaGVyZTogW09VVEVSX1NQSEVSRV9OQU1FXSwKICAgICAgICBz"
"ZWxmLnNob3dfY29uY19zcGhlcmVzOiBbQ09OQ19TUEhFUkVfMV9OQU1FLCBDT05DX1NQSEVSRV8yX05B"
"TUUsIENPTkNfU1BIRVJFXzNfTkFNRV0KICAgIH0KICAgIGZvciBpc19zaG93LCBvYmpfbmFtZXMgaW4g"
"bWFwcGluZy5pdGVtcygpOgogICAgICAgIGZvciBuYW1lIGluIG9ial9uYW1lczoKICAgICAgICAgICAg"
"b2JqID0gYnB5LmRhdGEub2JqZWN0cy5nZXQobmFtZSkKICAgICAgICAgICAgaWYgb2JqOgogICAgICAg"
"ICAgICAgICAgb2JqLmhpZGVfdmlld3BvcnQgPSBub3QgaXNfc2hvdwogICAgICAgICAgICAgICAgb2Jq"
"LmhpZGVfcmVuZGVyID0gbm90IGlzX3Nob3cKCmNsYXNzIFRDVEFfUHJvcGVydGllcyhicHkudHlwZXMu"
"UHJvcGVydHlHcm91cCk6CiAgICAjIC0tLSDlhajkvZPooajnpLrjgrPjg7Pjg4jjg63jg7zjg6sgKE5F"
"VykgLS0tCiAgICBzaG93X3RvcnVzOiBicHkucHJvcHMuQm9vbFByb3BlcnR5KG5hbWU9IuODiOODvOOD"
"qeOCuemqqOagvCIsIGRlZmF1bHQ9VHJ1ZSwgdXBkYXRlPXVwZGF0ZV92aXNpYmlsaXR5KQogICAgc2hv"
"d190YXJnZXRzOiBicHkucHJvcHMuQm9vbFByb3BlcnR5KG5hbWU9IjPjgaTjga7nkIPkvZMo54K5KSIs"
"IGRlZmF1bHQ9VHJ1ZSwgdXBkYXRlPXVwZGF0ZV92aXNpYmlsaXR5KQogICAgc2hvd190cmlhbmdsZXM6"
"IGJweS5wcm9wcy5Cb29sUHJvcGVydHkobmFtZT0i5LiJ6KeS5b2iQeODu0IiLCBkZWZhdWx0PVRydWUs"
"IHVwZGF0ZT11cGRhdGVfdmlzaWJpbGl0eSkKICAgIHNob3dfYXJyb3c6IGJweS5wcm9wcy5Cb29sUHJv"
"cGVydHkobmFtZT0i5pyA55+t6Led6Zui55+i5Y2wIiwgZGVmYXVsdD1UcnVlLCB1cGRhdGU9dXBkYXRl"
"X3Zpc2liaWxpdHkpCiAgICBzaG93X2NpcmNsZTogYnB5LnByb3BzLkJvb2xQcm9wZXJ0eShuYW1lPSLn"
"nYDlvL7lhobnm6QiLCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVfdmlzaWJpbGl0eSkKICAgIHNo"
"b3dfaGVtaXNwaGVyZTogYnB5LnByb3BzLkJvb2xQcm9wZXJ0eShuYW1lPSLlkJHjgZPjgYblgbTljYrn"
"kIMiLCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVfdmlzaWJpbGl0eSkKICAgIHNob3dfaW5uZXJf"
"c3BoZXJlOiBicHkucHJvcHMuQm9vbFByb3BlcnR5KG5hbWU9IuWGheauu+eQgyjmnIDnn60pIiwgZGVm"
"YXVsdD1UcnVlLCB1cGRhdGU9dXBkYXRlX3Zpc2liaWxpdHkpCiAgICBzaG93X291dGVyX3NwaGVyZTog"
"YnB5LnByb3BzLkJvb2xQcm9wZXJ0eShuYW1lPSLlpJbmrrvnkIMo5pyA5aSnKSIsIGRlZmF1bHQ9VHJ1"
"ZSwgdXBkYXRlPXVwZGF0ZV92aXNpYmlsaXR5KQogICAgc2hvd19jb25jX3NwaGVyZXM6IGJweS5wcm9w"
"cy5Cb29sUHJvcGVydHkobmFtZT0iM+OBpOOBruWQjOW/g+eQgyIsIGRlZmF1bHQ9VHJ1ZSwgdXBkYXRl"
"PXVwZGF0ZV92aXNpYmlsaXR5KQoKICAgICMgLS0tIOWfuuacrOioreWumiAtLS0KICAgIHRvcnVzX2Nv"
"bG9yOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJDb2xvciIsIHN1YnR5cGU9J0NP"
"TE9SX0dBTU1BJywgc2l6ZT00LCBkZWZhdWx0PSgwLjEsIDAuNSwgMC44LCAxLjApLCBtaW49MC4wLCBt"
"YXg9MS4wKQogICAgdG9ydXNfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkFscGhh"
"IiwgZGVmYXVsdD0wLjUsIG1pbj0wLjAsIG1heD0xLjApCiAgICAKICAgIG1vZGVfb3B0aW9ucyA9IFso"
"J1JBTkRPTScsICLjg6njg7Pjg4Djg6AiLCAiIiksICgnTUFOVUFMJywgIuaMh+WumuS9jee9riIsICIi"
"KV0KICAgIHNwMV9tb2RlOiBicHkucHJvcHMuRW51bVByb3BlcnR5KG5hbWU9Ik1vZGUiLCBpdGVtcz1t"
"b2RlX29wdGlvbnMsIGRlZmF1bHQ9J1JBTkRPTScpCiAgICBzcDJfbW9kZTogYnB5LnByb3BzLkVudW1Q"
"cm9wZXJ0eShuYW1lPSJNb2RlIiwgaXRlbXM9bW9kZV9vcHRpb25zLCBkZWZhdWx0PSdSQU5ET00nKQog"
"ICAgc3AzX21vZGU6IGJweS5wcm9wcy5FbnVtUHJvcGVydHkobmFtZT0iTW9kZSIsIGl0ZW1zPW1vZGVf"
"b3B0aW9ucywgZGVmYXVsdD0nUkFORE9NJykKICAgIAogICAgc3AxX3BvczogYnB5LnByb3BzLkZsb2F0"
"VmVjdG9yUHJvcGVydHkobmFtZT0iUG9zaXRpb24gMSIsIGRlZmF1bHQ9KDIuMCwgMi4wLCAyLjApKQog"
"ICAgc3AyX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iUG9zaXRpb24gMiIs"
"IGRlZmF1bHQ9KC0yLjAsIC0yLjAsIDIuMCkpCiAgICBzcDNfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0"
"b3JQcm9wZXJ0eShuYW1lPSJQb3NpdGlvbiAzIiwgZGVmYXVsdD0oMC4wLCAzLjAsIC0yLjApKQogICAg"
"CiAgICBzcDFfYWN0dWFsX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkoZGVmYXVsdD0o"
"MCwwLDApKQogICAgc3AyX2FjdHVhbF9wb3M6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KGRl"
"ZmF1bHQ9KDAsMCwwKSkKICAgIHNwM19hY3R1YWxfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9w"
"ZXJ0eShkZWZhdWx0PSgwLDAsMCkpCgogICAgdHJpX3RoaWNrbmVzczogYnB5LnByb3BzLkZsb2F0UHJv"
"cGVydHkobmFtZT0iVGhpY2tuZXNzIiwgZGVmYXVsdD0wLjEsIG1pbj0wLjApCiAgICB0cmlfYWxwaGE6"
"IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkFscGhhIiwgZGVmYXVsdD0wLjEsIG1pbj0wLjAs"
"IG1heD0xLjApCiAgICB0cmlBX2NvbG9yOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1l"
"PSJDb2xvciBBIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuOCwgMC4y"
"LCAwLjIsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCiAgICB0cmlCX2NvbG9yOiBicHkucHJvcHMuRmxv"
"YXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJDb2xvciBCIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXpl"
"PTQsIGRlZmF1bHQ9KDAuMiwgMC44LCAwLjIsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCgogICAgIyAt"
"LS0g6KaW6Kaa5YyW6Kit5a6aIC0tLQogICAgYXJyb3dfdGhpY2tuZXNzOiBicHkucHJvcHMuRmxvYXRQ"
"cm9wZXJ0eShuYW1lPSJBcnJvdyBUaGljayIsIGRlZmF1bHQ9MC4wNSwgbWluPTAuMDEsIG1heD0xLjAp"
"CiAgICBhcnJvd19jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iQXJyb3cg"
"Q29sb3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMS4wLCAwLjgsIDAu"
"MCwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIAogICAgY2lyY2xlX3JhZGl1czogYnB5LnByb3Bz"
"LkZsb2F0UHJvcGVydHkobmFtZT0iUmFkaXVzIChDaXIvSGVtaSkiLCBkZWZhdWx0PTMuMCwgbWluPTAu"
"MSkKICAgIGNpcmNsZV90aGlja25lc3M6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNs"
"ZSBUaGljayIsIGRlZmF1bHQ9MC4xLCBtaW49MC4wKQogICAgY2lyY2xlX2NvbG9yOiBicHkucHJvcHMu"
"RmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJDaXJjbGUgQ29sb3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1N"
"QScsIHNpemU9NCwgZGVmYXVsdD0oMS4wLCAwLjUsIDAuMCwgMC40KSwgbWluPTAuMCwgbWF4PTEuMCkK"
"ICAgIGNpcmNsZV9hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iQ2lyY2xlIEFscGhh"
"IiwgZGVmYXVsdD0wLjQsIG1pbj0wLjAsIG1heD0xLjApCiAgICAKICAgIGhlbWlfZmlsbF9ib3R0b206"
"IGJweS5wcm9wcy5Cb29sUHJvcGVydHkobmFtZT0i5bqV6Z2i44KS5L2c44KLIChGaWxsKSIsIGRlZmF1"
"bHQ9RmFsc2UpCiAgICBoZW1pX2NvbG9yOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1l"
"PSJIZW1pIENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuMiwg"
"MS4wLCAwLjUsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCiAgICBoZW1pX2FscGhhOiBicHkucHJvcHMu"
"RmxvYXRQcm9wZXJ0eShuYW1lPSJIZW1pIEFscGhhIiwgZGVmYXVsdD0wLjMsIG1pbj0wLjAsIG1heD0x"
"LjApCgogICAgZGlzdF9zcGhlcmVfY29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5h"
"bWU9IklubmVyIENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAu"
"MCwgMC44LCAxLjAsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCiAgICBkaXN0X3NwaGVyZV9hbHBoYTog"
"YnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iSW5uZXIgQWxwaGEiLCBkZWZhdWx0PTAuMDYsIG1p"
"bj0wLjAsIG1heD0xLjApCiAgICAKICAgIG91dGVyX3NwaGVyZV9jb2xvcjogYnB5LnByb3BzLkZsb2F0"
"VmVjdG9yUHJvcGVydHkobmFtZT0iT3V0ZXIgQ29sb3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNp"
"emU9NCwgZGVmYXVsdD0oMC44LCAwLjAsIDEuMCwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIG91"
"dGVyX3NwaGVyZV9hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iT3V0ZXIgQWxwaGEi"
"LCBkZWZhdWx0PTAuMDQsIG1pbj0wLjAsIG1heD0xLjApCgogICAgY29uY19zcGhlcmVfY29sb3I6IGJw"
"eS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkNvbmMgQ29sb3IiLCBzdWJ0eXBlPSdDT0xP"
"Ul9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMC41LCAwLjgsIDAuMiwgMS4wKSwgbWluPTAuMCwgbWF4"
"PTEuMCkKICAgIGNvbmNfc3BoZXJlX2FscGhhOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJD"
"b25jIEFscGhhIiwgZGVmYXVsdD0wLjA1LCBtaW49MC4wLCBtYXg9MS4wKQoKICAgICMgLS0tIOaDheWg"
"sSAtLS0KICAgIHZpZXdfY2VudGVyOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJW"
"aWV3IENlbnRlciIpCiAgICB2aWV3X3NpemU6IGJweS5wcm9wcy5JbnRWZWN0b3JQcm9wZXJ0eShuYW1l"
"PSJWaWV3IFNpemUgKFB4KSIsIHNpemU9MikKICAgIHZpZXdfZGlzdGFuY2U6IGJweS5wcm9wcy5GbG9h"
"dFByb3BlcnR5KG5hbWU9IlZpZXcgRGlzdGFuY2UiKQogICAgCiAgICBnZW9fc3AxX2Rpc3Q6IGJweS5w"
"cm9wcy5GbG9hdFByb3BlcnR5KCkKICAgIGdlb19zcDFfYW5nOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQ"
"cm9wZXJ0eShzaXplPTMpCiAgICBnZW9fc3AyX2Rpc3Q6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KCkK"
"ICAgIGdlb19zcDJfYW5nOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShzaXplPTMpCiAgICBn"
"ZW9fc3AzX2Rpc3Q6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KCkKICAgIGdlb19zcDNfYW5nOiBicHku"
"cHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShzaXplPTMpCiAgICAKICAgIGdlb19wbGFuZV9hbmdsZTog"
"YnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAgZ2VvX3BsYW5lX2Rpc3Q6IGJweS5wcm9wcy5GbG9h"
"dFByb3BlcnR5KCkKICAgIGdlb19wbGFuZV9mb290OiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0"
"eShzaXplPTMpCiAgICBnZW9fcGxhbmVfbm9ybWFsOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0"
"eShzaXplPTMpCiAgICBnZW9fb3V0ZXJfcmFkaXVzOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgpCgoK"
"IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09CiMgMy4g44Om44O844OG44Kj44Oq44OG44Kj6Zai5pWwCiMgPT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PQpkZWYgZ2V0XzNkX3ZpZXdfY29udGV4dCgpOgogICAgZm9yIHdpbmRvdyBpbiBicHkuY29udGV4"
"dC53aW5kb3dfbWFuYWdlci53aW5kb3dzOgogICAgICAgIGZvciBhcmVhIGluIHdpbmRvdy5zY3JlZW4u"
"YXJlYXM6CiAgICAgICAgICAgIGlmIGFyZWEudHlwZSA9PSAnVklFV18zRCc6CiAgICAgICAgICAgICAg"
"ICBmb3IgcmVnaW9uIGluIGFyZWEucmVnaW9uczoKICAgICAgICAgICAgICAgICAgICBpZiByZWdpb24u"
"dHlwZSA9PSAnV0lORE9XJzoKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFyZWEsIHJlZ2lv"
"biwgYXJlYS5zcGFjZXMuYWN0aXZlCiAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9uZQoKZGVmIGNyZWF0"
"ZV9tYXRlcmlhbChuYW1lLCBjb2xvciwgYWxwaGEpOgogICAgbWF0ID0gYnB5LmRhdGEubWF0ZXJpYWxz"
"LmdldChuYW1lKQogICAgaWYgbm90IG1hdDoKICAgICAgICBtYXQgPSBicHkuZGF0YS5tYXRlcmlhbHMu"
"bmV3KG5hbWUpCiAgICBtYXQudXNlX25vZGVzID0gVHJ1ZQogICAgaWYgaGFzYXR0cihtYXQsICJibGVu"
"ZF9tZXRob2QiKTogbWF0LmJsZW5kX21ldGhvZCA9ICdCTEVORCcKICAgIGlmIGhhc2F0dHIobWF0LCAi"
"c2hhZG93X21ldGhvZCIpOiBtYXQuc2hhZG93X21ldGhvZCA9ICdOT05FJwogICAgYnNkZiA9IG1hdC5u"
"b2RlX3RyZWUubm9kZXMuZ2V0KCJQcmluY2lwbGVkIEJTREYiKQogICAgaWYgYnNkZjoKICAgICAgICBi"
"c2RmLmlucHV0c1siQmFzZSBDb2xvciJdLmRlZmF1bHRfdmFsdWUgPSBjb2xvcgogICAgICAgIGJzZGYu"
"aW5wdXRzWyJBbHBoYSJdLmRlZmF1bHRfdmFsdWUgPSBhbHBoYQogICAgcmV0dXJuIG1hdAoKZGVmIGNh"
"bGNfZ2VvX2RhdGEocHJvcHMpOgogICAgZGVmIGNhbGNfZGlzdF9hbmdsZSh2ZWMpOgogICAgICAgIGRp"
"c3QgPSB2ZWMubGVuZ3RoCiAgICAgICAgaWYgZGlzdCA9PSAwOiByZXR1cm4gMCwgMCwgMCwgMAogICAg"
"ICAgIG4gPSB2ZWMubm9ybWFsaXplZCgpCiAgICAgICAgcmV0dXJuIGRpc3QsIG1hdGguZGVncmVlcyht"
"YXRoLmFjb3Mobi54KSksIG1hdGguZGVncmVlcyhtYXRoLmFjb3Mobi55KSksIG1hdGguZGVncmVlcyht"
"YXRoLmFjb3Mobi56KSkKCiAgICBwMCA9IG1hdGh1dGlscy5WZWN0b3IoKDAsIDAsIDApKQogICAgcDEg"
"PSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLnNwMV9hY3R1YWxfcG9zKQogICAgcDIgPSBtYXRodXRpbHMu"
"VmVjdG9yKHByb3BzLnNwMl9hY3R1YWxfcG9zKQogICAgcDMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3Bz"
"LnNwM19hY3R1YWxfcG9zKQoKICAgIHByb3BzLmdlb19zcDFfZGlzdCwgKnByb3BzLmdlb19zcDFfYW5n"
"ID0gY2FsY19kaXN0X2FuZ2xlKHAxKQogICAgcHJvcHMuZ2VvX3NwMl9kaXN0LCAqcHJvcHMuZ2VvX3Nw"
"Ml9hbmcgPSBjYWxjX2Rpc3RfYW5nbGUocDIpCiAgICBwcm9wcy5nZW9fc3AzX2Rpc3QsICpwcm9wcy5n"
"ZW9fc3AzX2FuZyA9IGNhbGNfZGlzdF9hbmdsZShwMykKICAgIAogICAgcHJvcHMuZ2VvX291dGVyX3Jh"
"ZGl1cyA9IG1heChwcm9wcy5nZW9fc3AxX2Rpc3QsIHByb3BzLmdlb19zcDJfZGlzdCwgcHJvcHMuZ2Vv"
"X3NwM19kaXN0KQoKICAgIG4xID0gKHAxIC0gcDApLmNyb3NzKHAyIC0gcDApCiAgICBuMiA9IChwMiAt"
"IHAxKS5jcm9zcyhwMyAtIHAxKQogICAgCiAgICBpZiBuMS5sZW5ndGggPiAwLjAwMDEgYW5kIG4yLmxl"
"bmd0aCA+IDAuMDAwMToKICAgICAgICBuMV9ub3JtLCBuMl9ub3JtID0gbjEubm9ybWFsaXplZCgpLCBu"
"Mi5ub3JtYWxpemVkKCkKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfbm9ybWFsID0gbjJfbm9ybQogICAg"
"ICAgIHByb3BzLmdlb19wbGFuZV9hbmdsZSA9IG1hdGguZGVncmVlcyhtYXRoLmFjb3MobWF4KC0xLjAs"
"IG1pbigxLjAsIG4xX25vcm0uZG90KG4yX25vcm0pKSkpKQogICAgZWxzZToKICAgICAgICBwcm9wcy5n"
"ZW9fcGxhbmVfYW5nbGUgPSAwLjAKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfbm9ybWFsID0gKDAsMCwx"
"KQoKICAgIGlmIG4yLmxlbmd0aCA+IDAuMDAwMToKICAgICAgICB0ID0gbjIubm9ybWFsaXplZCgpLmRv"
"dChwMSkKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZGlzdCA9IGFicyh0KQogICAgICAgIHByb3BzLmdl"
"b19wbGFuZV9mb290ID0gbjIubm9ybWFsaXplZCgpICogdAogICAgZWxzZToKICAgICAgICBwcm9wcy5n"
"ZW9fcGxhbmVfZGlzdCA9IDAuMAogICAgICAgIHByb3BzLmdlb19wbGFuZV9mb290ID0gKDAsIDAsIDAp"
"CgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT0KIyA0LiDjgqrjg5rjg6zjg7zjgr/jg7wgKOWHpueQhuODreOCuOODg+OC"
"rykKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09CmNsYXNzIFRDVEFfT1RfVmlld1NlbGVjdGVkKGJweS50eXBlcy5PcGVy"
"YXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS52aWV3X3NlbGVjdGVkIgogICAgYmxfbGFiZWwgPSAi"
"6YG45oqe44KS55S76Z2i5Lit5aSu44GrIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAg"
"ICAgICAgYnB5Lm9wcy52aWV3M2Qudmlld19zZWxlY3RlZCgpCiAgICAgICAgcmV0dXJuIHsnRklOSVNI"
"RUQnfQoKY2xhc3MgVENUQV9PVF9VcGRhdGVWaWV3SW5mbyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAg"
"YmxfaWRuYW1lID0gInRjdGEudXBkYXRlX3ZpZXdfaW5mbyIKICAgIGJsX2xhYmVsID0gIueUu+mdouaD"
"heWgseabtOaWsCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIGFyZWEsIHJl"
"Z2lvbiwgc3BhY2UgPSBnZXRfM2Rfdmlld19jb250ZXh0KCkKICAgICAgICBpZiBub3Qgc3BhY2U6IHJl"
"dHVybiB7J0NBTkNFTExFRCd9CiAgICAgICAgcnYzZCA9IHNwYWNlLnJlZ2lvbl8zZAogICAgICAgIHBy"
"b3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgcHJvcHMudmlld19jZW50ZXIgPSBy"
"djNkLnZpZXdfbG9jYXRpb24KICAgICAgICBwcm9wcy52aWV3X3NpemUgPSAocmVnaW9uLndpZHRoLCBy"
"ZWdpb24uaGVpZ2h0KQogICAgICAgIHByb3BzLnZpZXdfZGlzdGFuY2UgPSBydjNkLnZpZXdfZGlzdGFu"
"Y2UgaWYgcnYzZC52aWV3X3BlcnNwZWN0aXZlID09ICdQRVJTUCcgZWxzZSAwLjAKICAgICAgICByZXR1"
"cm4geydGSU5JU0hFRCd9CgpjbGFzcyBUQ1RBX09UX0NvcHlWaWV3SW5mbyhicHkudHlwZXMuT3BlcmF0"
"b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEuY29weV92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICLj"
"g5Pjg6Xjg7zmg4XloLHjgpLjgrPjg5Tjg7wiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToK"
"ICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAgIGxpbmVzID0gWwog"
"ICAgICAgICAgICBmIkNlbnRlcjogWD17cHJvcHMudmlld19jZW50ZXIueDouMWZ9LCBZPXtwcm9wcy52"
"aWV3X2NlbnRlci55Oi4xZn0sIFo9e3Byb3BzLnZpZXdfY2VudGVyLno6LjFmfSIsCiAgICAgICAgICAg"
"IGYiU2l6ZTogVz17cHJvcHMudmlld19zaXplWzBdfSwgSD17cHJvcHMudmlld19zaXplWzFdfSIsCiAg"
"ICAgICAgICAgIGYiRGlzdGFuY2U6IHtwcm9wcy52aWV3X2Rpc3RhbmNlOi4xZn0iIGlmIHByb3BzLnZp"
"ZXdfZGlzdGFuY2UgPiAwIGVsc2UgIkRpc3RhbmNlOiBOL0EiCiAgICAgICAgXQogICAgICAgIGNvbnRl"
"eHQud2luZG93X21hbmFnZXIuY2xpcGJvYXJkID0gIlxuIi5qb2luKGxpbmVzKQogICAgICAgIHNlbGYu"
"cmVwb3J0KHsnSU5GTyd9LCAi44Kz44OU44O844GX44G+44GX44GfIikKICAgICAgICByZXR1cm4geydG"
"SU5JU0hFRCd9CgpjbGFzcyBUQ1RBX09UX0NyZWF0ZU9iamVjdHMoYnB5LnR5cGVzLk9wZXJhdG9yKToK"
"ICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLmNyZWF0ZV9vYmplY3RzIgogICAgYmxfbGFiZWwgPSAi5L2c5oiQ"
"IgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNj"
"ZW5lLnRjdGFfcHJvcHMKICAgICAgICAKICAgICAgICBwYXJlbnRfY29sID0gYnB5LmRhdGEuY29sbGVj"
"dGlvbnMuZ2V0KFBBUkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAgaWYgbm90IHBhcmVudF9jb2w6"
"CiAgICAgICAgICAgIHBhcmVudF9jb2wgPSBicHkuZGF0YS5jb2xsZWN0aW9ucy5uZXcoUEFSRU5UX0NP"
"TExFQ1RJT05fTkFNRSkKICAgICAgICAgICAgY29udGV4dC5zY2VuZS5jb2xsZWN0aW9uLmNoaWxkcmVu"
"LmxpbmsocGFyZW50X2NvbCkKICAgICAgICAgICAgCiAgICAgICAgc3ViX2NvbCA9IGJweS5kYXRhLmNv"
"bGxlY3Rpb25zLmdldChTVUJfQ09MTEVDVElPTl9OQU1FKQogICAgICAgIGlmIG5vdCBzdWJfY29sOgog"
"ICAgICAgICAgICBzdWJfY29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMubmV3KFNVQl9DT0xMRUNUSU9O"
"X05BTUUpCiAgICAgICAgICAgIHBhcmVudF9jb2wuY2hpbGRyZW4ubGluayhzdWJfY29sKQoKICAgICAg"
"ICAjIOaXouWtmOWJiumZpAogICAgICAgIG5hbWVzX3RvX2RlbGV0ZSA9IFsKICAgICAgICAgICAgVE9S"
"VVNfU0tFTEVUT05fTkFNRSwgU1BIRVJFXzFfTkFNRSwgU1BIRVJFXzJfTkFNRSwgU1BIRVJFXzNfTkFN"
"RSwgCiAgICAgICAgICAgIFRSSUFOR0xFX0FfTkFNRSwgVFJJQU5HTEVfQl9OQU1FLCBBUlJPV19OQU1F"
"LCBDSVJDTEVfTkFNRSwgCiAgICAgICAgICAgIERJU1RfU1BIRVJFX05BTUUsIE9VVEVSX1NQSEVSRV9O"
"QU1FLCBIRU1JU1BIRVJFX05BTUUsIAogICAgICAgICAgICBDT05DX1NQSEVSRV8xX05BTUUsIENPTkNf"
"U1BIRVJFXzJfTkFNRSwgQ09OQ19TUEhFUkVfM19OQU1FCiAgICAgICAgXQogICAgICAgIGZvciBvYmpf"
"bmFtZSBpbiBuYW1lc190b19kZWxldGU6CiAgICAgICAgICAgIGlmIG9ial9uYW1lIGluIGJweS5kYXRh"
"Lm9iamVjdHM6CiAgICAgICAgICAgICAgICBicHkuZGF0YS5vYmplY3RzLnJlbW92ZShicHkuZGF0YS5v"
"YmplY3RzW29ial9uYW1lXSwgZG9fdW5saW5rPVRydWUpCgogICAgICAgICMgLS0tIOWun+W6p+aomeOB"
"ruioiOeulyAtLS0KICAgICAgICBkZWYgZ2V0X3Bvcyhtb2RlLCBwcm9wX3Bvcyk6CiAgICAgICAgICAg"
"IHJldHVybiAocmFuZG9tLnVuaWZvcm0oLTUsNSksIHJhbmRvbS51bmlmb3JtKC01LDUpLCByYW5kb20u"
"dW5pZm9ybSgtNSw1KSkgaWYgbW9kZSA9PSAnUkFORE9NJyBlbHNlIHByb3BfcG9zCgogICAgICAgIHBy"
"b3BzLnNwMV9hY3R1YWxfcG9zID0gZ2V0X3Bvcyhwcm9wcy5zcDFfbW9kZSwgcHJvcHMuc3AxX3BvcykK"
"ICAgICAgICBwcm9wcy5zcDJfYWN0dWFsX3BvcyA9IGdldF9wb3MocHJvcHMuc3AyX21vZGUsIHByb3Bz"
"LnNwMl9wb3MpCiAgICAgICAgcHJvcHMuc3AzX2FjdHVhbF9wb3MgPSBnZXRfcG9zKHByb3BzLnNwM19t"
"b2RlLCBwcm9wcy5zcDNfcG9zKQoKICAgICAgICBjYWxjX2dlb19kYXRhKHByb3BzKQoKICAgICAgICAj"
"IC0tLSDjgqrjg5bjgrjjgqfjgq/jg4jnlJ/miJDplqLmlbAgLS0tCiAgICAgICAgZGVmIG1ha2Vfc3Bo"
"ZXJlKG5hbWUsIGxvYywgciwgbWF0KToKICAgICAgICAgICAgbWVzaCA9IGJweS5kYXRhLm1lc2hlcy5u"
"ZXcobmFtZSkKICAgICAgICAgICAgb2JqID0gYnB5LmRhdGEub2JqZWN0cy5uZXcobmFtZSwgbWVzaCkK"
"ICAgICAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqKQogICAgICAgICAgICBibSA9IGJtZXNo"
"Lm5ldygpCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfdXZzcGhlcmUoYm0sIHVfc2VnbWVudHM9"
"MzIsIHZfc2VnbWVudHM9MTYsIHJhZGl1cz1yKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2gpCiAg"
"ICAgICAgICAgIGJtLmZyZWUoKQogICAgICAgICAgICBvYmoubG9jYXRpb24gPSBsb2MKICAgICAgICAg"
"ICAgZm9yIHBvbHkgaW4gbWVzaC5wb2x5Z29uczogcG9seS51c2Vfc21vb3RoID0gVHJ1ZQogICAgICAg"
"ICAgICBvYmouYWN0aXZlX21hdGVyaWFsID0gbWF0CiAgICAgICAgICAgIHJldHVybiBvYmoKCiAgICAg"
"ICAgIyAxLiDpqqjmoLwKICAgICAgICBtZXNoID0gYnB5LmRhdGEubWVzaGVzLm5ldyhUT1JVU19TS0VM"
"RVRPTl9OQU1FKQogICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVjdHMubmV3KFRPUlVTX1NLRUxFVE9O"
"X05BTUUsIG1lc2gpCiAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqKQogICAgICAgIGJtID0g"
"Ym1lc2gubmV3KCkKICAgICAgICBibWVzaC5vcHMuY3JlYXRlX2N1YmUoYm0sIHNpemU9MTAuMCkKICAg"
"ICAgICBibWVzaC5vcHMuZGVsZXRlKGJtLCBnZW9tPWJtLmZhY2VzLCBjb250ZXh0PSdGQUNFUycpCiAg"
"ICAgICAgYm0udG9fbWVzaChtZXNoKQogICAgICAgIGJtLmZyZWUoKQogICAgICAgIHNraW5fbW9kID0g"
"b2JqLm1vZGlmaWVycy5uZXcobmFtZT0iU2tpbiIsIHR5cGU9J1NLSU4nKQogICAgICAgIHN1Yl9tb2Qg"
"PSBvYmoubW9kaWZpZXJzLm5ldyhuYW1lPSJTdWJkaXZpc2lvbiIsIHR5cGU9J1NVQlNVUkYnKQogICAg"
"ICAgIHN1Yl9tb2QubGV2ZWxzID0gMgogICAgICAgIGZvciB2IGluIG9iai5kYXRhLnNraW5fdmVydGlj"
"ZXNbMF0uZGF0YTogdi5yYWRpdXMgPSAoMC4yLCAwLjIpCiAgICAgICAgb2JqLmFjdGl2ZV9tYXRlcmlh"
"bCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9Ub3J1cyIsIHByb3BzLnRvcnVzX2NvbG9yLCBw"
"cm9wcy50b3J1c19hbHBoYSkKCiAgICAgICAgIyAyLiDjgr/jg7zjgrLjg4Pjg4jnkIMKICAgICAgICBt"
"YXRfdGFyZ2V0ID0gY3JlYXRlX21hdGVyaWFsKFBSRUZJWCsiTWF0X1RhcmdldCIsICgxLDEsMSwxKSwg"
"MS4wKQogICAgICAgIG1ha2Vfc3BoZXJlKFNQSEVSRV8xX05BTUUsIHByb3BzLnNwMV9hY3R1YWxfcG9z"
"LCAwLjUsIG1hdF90YXJnZXQpCiAgICAgICAgbWFrZV9zcGhlcmUoU1BIRVJFXzJfTkFNRSwgcHJvcHMu"
"c3AyX2FjdHVhbF9wb3MsIDAuNSwgbWF0X3RhcmdldCkKICAgICAgICBtYWtlX3NwaGVyZShTUEhFUkVf"
"M19OQU1FLCBwcm9wcy5zcDNfYWN0dWFsX3BvcywgMC41LCBtYXRfdGFyZ2V0KQoKICAgICAgICAjIDMu"
"IOS4ieinkuW9ogogICAgICAgIGRlZiBjcmVhdGVfdHJpKG5hbWUsIHAxLCBwMiwgcDMsIGNvbG9yLCBh"
"bHBoYSwgdGhpY2spOgogICAgICAgICAgICBtZXNoID0gYnB5LmRhdGEubWVzaGVzLm5ldyhuYW1lKQog"
"ICAgICAgICAgICBvYmogPSBicHkuZGF0YS5vYmplY3RzLm5ldyhuYW1lLCBtZXNoKQogICAgICAgICAg"
"ICBzdWJfY29sLm9iamVjdHMubGluayhvYmopCiAgICAgICAgICAgIGJtID0gYm1lc2gubmV3KCkKICAg"
"ICAgICAgICAgYm0uZmFjZXMubmV3KChibS52ZXJ0cy5uZXcocDEpLCBibS52ZXJ0cy5uZXcocDIpLCBi"
"bS52ZXJ0cy5uZXcocDMpKSkKICAgICAgICAgICAgYm0udG9fbWVzaChtZXNoKQogICAgICAgICAgICBi"
"bS5mcmVlKCkKICAgICAgICAgICAgb2JqLm1vZGlmaWVycy5uZXcobmFtZT0iU29saWRpZnkiLCB0eXBl"
"PSdTT0xJRElGWScpLnRoaWNrbmVzcyA9IHRoaWNrCiAgICAgICAgICAgIG9iai5hY3RpdmVfbWF0ZXJp"
"YWwgPSBjcmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRfIituYW1lLCBjb2xvciwgYWxwaGEpCiAgICAg"
"ICAgICAgIHJldHVybiBvYmoKCiAgICAgICAgY3JlYXRlX3RyaShUUklBTkdMRV9BX05BTUUsICgwLDAs"
"MCksIHByb3BzLnNwMV9hY3R1YWxfcG9zLCBwcm9wcy5zcDJfYWN0dWFsX3BvcywgcHJvcHMudHJpQV9j"
"b2xvciwgcHJvcHMudHJpX2FscGhhLCBwcm9wcy50cmlfdGhpY2tuZXNzKQogICAgICAgIGNyZWF0ZV90"
"cmkoVFJJQU5HTEVfQl9OQU1FLCBwcm9wcy5zcDFfYWN0dWFsX3BvcywgcHJvcHMuc3AyX2FjdHVhbF9w"
"b3MsIHByb3BzLnNwM19hY3R1YWxfcG9zLCBwcm9wcy50cmlCX2NvbG9yLCBwcm9wcy50cmlfYWxwaGEs"
"IHByb3BzLnRyaV90aGlja25lc3MpCgogICAgICAgICMgNC4g55+i5Y2wCiAgICAgICAgZGlzdCA9IHBy"
"b3BzLmdlb19wbGFuZV9kaXN0CiAgICAgICAgaWYgZGlzdCA+IDAuMDE6CiAgICAgICAgICAgIG1lc2hf"
"YXJyID0gYnB5LmRhdGEubWVzaGVzLm5ldyhBUlJPV19OQU1FKQogICAgICAgICAgICBvYmpfYXJyID0g"
"YnB5LmRhdGEub2JqZWN0cy5uZXcoQVJST1dfTkFNRSwgbWVzaF9hcnIpCiAgICAgICAgICAgIHN1Yl9j"
"b2wub2JqZWN0cy5saW5rKG9ial9hcnIpCiAgICAgICAgICAgIGJtID0gYm1lc2gubmV3KCkKICAgICAg"
"ICAgICAgciwgaGVhZF9sID0gcHJvcHMuYXJyb3dfdGhpY2tuZXNzLCBtaW4oZGlzdCAqIDAuMywgcHJv"
"cHMuYXJyb3dfdGhpY2tuZXNzICogNC4wKQogICAgICAgICAgICBib2R5X2wgPSBkaXN0IC0gaGVhZF9s"
"CiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfY29uZShibSwgY2FwX2VuZHM9VHJ1ZSwgY2FwX3Ry"
"aXM9RmFsc2UsIHNlZ21lbnRzPTE2LCByYWRpdXMxPXIsIHJhZGl1czI9ciwgZGVwdGg9Ym9keV9sKQog"
"ICAgICAgICAgICBnZW9tX2hlYWQgPSBibWVzaC5vcHMuY3JlYXRlX2NvbmUoYm0sIGNhcF9lbmRzPVRy"
"dWUsIGNhcF90cmlzPUZhbHNlLCBzZWdtZW50cz0xNiwgcmFkaXVzMT1yKjIuNSwgcmFkaXVzMj0wLjAs"
"IGRlcHRoPWhlYWRfbCkKICAgICAgICAgICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9W3Yg"
"Zm9yIHYgaW4gZ2VvbV9oZWFkWyd2ZXJ0cyddXSwgdmVjPSgwLCAwLCBib2R5X2wvMiArIGhlYWRfbC8y"
"KSkKICAgICAgICAgICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9Ym0udmVydHMsIHZlYz0o"
"MCwgMCwgYm9keV9sLzIpKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfYXJyKQogICAgICAgICAg"
"ICBibS5mcmVlKCkKICAgICAgICAgICAgb2JqX2Fyci5sb2NhdGlvbiA9ICgwLCAwLCAwKQogICAgICAg"
"ICAgICBvYmpfYXJyLnJvdGF0aW9uX21vZGUgPSAnUVVBVEVSTklPTicKICAgICAgICAgICAgb2JqX2Fy"
"ci5yb3RhdGlvbl9xdWF0ZXJuaW9uID0gbWF0aHV0aWxzLlZlY3RvcigoMCwwLDEpKS5yb3RhdGlvbl9k"
"aWZmZXJlbmNlKG1hdGh1dGlscy5WZWN0b3IocHJvcHMuZ2VvX3BsYW5lX2Zvb3QpLm5vcm1hbGl6ZWQo"
"KSkKICAgICAgICAgICAgb2JqX2Fyci5hY3RpdmVfbWF0ZXJpYWwgPSBjcmVhdGVfbWF0ZXJpYWwoUFJF"
"RklYKyJNYXRfQXJyb3ciLCBwcm9wcy5hcnJvd19jb2xvciwgMS4wKQoKICAgICAgICAgICAgIyA1LiDl"
"hobnm6QKICAgICAgICAgICAgbWVzaF9jaXIgPSBicHkuZGF0YS5tZXNoZXMubmV3KENJUkNMRV9OQU1F"
"KQogICAgICAgICAgICBvYmpfY2lyID0gYnB5LmRhdGEub2JqZWN0cy5uZXcoQ0lSQ0xFX05BTUUsIG1l"
"c2hfY2lyKQogICAgICAgICAgICBzdWJfY29sLm9iamVjdHMubGluayhvYmpfY2lyKQogICAgICAgICAg"
"ICBibSA9IGJtZXNoLm5ldygpCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfY2lyY2xlKGJtLCBj"
"YXBfZW5kcz1UcnVlLCBjYXBfdHJpcz1GYWxzZSwgc2VnbWVudHM9MzIsIHJhZGl1cz1wcm9wcy5jaXJj"
"bGVfcmFkaXVzKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfY2lyKQogICAgICAgICAgICBibS5m"
"cmVlKCkKICAgICAgICAgICAgb2JqX2Npci5sb2NhdGlvbiA9IHByb3BzLmdlb19wbGFuZV9mb290CiAg"
"ICAgICAgICAgIGlmIG1hdGh1dGlscy5WZWN0b3IocHJvcHMuZ2VvX3BsYW5lX25vcm1hbCkubGVuZ3Ro"
"ID4gMDoKICAgICAgICAgICAgICAgIG9ial9jaXIucm90YXRpb25fbW9kZSA9ICdRVUFURVJOSU9OJwog"
"ICAgICAgICAgICAgICAgb2JqX2Npci5yb3RhdGlvbl9xdWF0ZXJuaW9uID0gbWF0aHV0aWxzLlZlY3Rv"
"cigoMCwwLDEpKS5yb3RhdGlvbl9kaWZmZXJlbmNlKG1hdGh1dGlscy5WZWN0b3IocHJvcHMuZ2VvX3Bs"
"YW5lX25vcm1hbCkpCiAgICAgICAgICAgIG9ial9jaXIubW9kaWZpZXJzLm5ldyhuYW1lPSJTb2xpZGlm"
"eSIsIHR5cGU9J1NPTElESUZZJykudGhpY2tuZXNzID0gcHJvcHMuY2lyY2xlX3RoaWNrbmVzcwogICAg"
"ICAgICAgICBvYmpfY2lyLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1h"
"dF9DaXJjbGUiLCBwcm9wcy5jaXJjbGVfY29sb3IsIHByb3BzLmNpcmNsZV9hbHBoYSkKCiAgICAgICAg"
"ICAgICMgNi4g5Y2K55CDCiAgICAgICAgICAgIG1lc2hfaGVtaSA9IGJweS5kYXRhLm1lc2hlcy5uZXco"
"SEVNSVNQSEVSRV9OQU1FKQogICAgICAgICAgICBvYmpfaGVtaSA9IGJweS5kYXRhLm9iamVjdHMubmV3"
"KEhFTUlTUEhFUkVfTkFNRSwgbWVzaF9oZW1pKQogICAgICAgICAgICBzdWJfY29sLm9iamVjdHMubGlu"
"ayhvYmpfaGVtaSkKICAgICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICBibWVzaC5v"
"cHMuY3JlYXRlX3V2c3BoZXJlKGJtLCB1X3NlZ21lbnRzPTMyLCB2X3NlZ21lbnRzPTE2LCByYWRpdXM9"
"cHJvcHMuY2lyY2xlX3JhZGl1cykKICAgICAgICAgICAgYm1lc2gub3BzLmRlbGV0ZShibSwgZ2VvbT1b"
"diBmb3IgdiBpbiBibS52ZXJ0cyBpZiB2LmNvLnogPCAtMC4wMDFdLCBjb250ZXh0PSdWRVJUUycpCiAg"
"ICAgICAgICAgIGlmIHByb3BzLmhlbWlfZmlsbF9ib3R0b206CiAgICAgICAgICAgICAgICBlZGdlcyA9"
"IFtlIGZvciBlIGluIGJtLmVkZ2VzIGlmIGxlbihlLmxpbmtfZmFjZXMpID09IDFdCiAgICAgICAgICAg"
"ICAgICBpZiBlZGdlczogYm1lc2gub3BzLmhvbGVzX2ZpbGwoYm0sIGVkZ2VzPWVkZ2VzKQogICAgICAg"
"ICAgICBibS50b19tZXNoKG1lc2hfaGVtaSkKICAgICAgICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAg"
"IG9ial9oZW1pLmxvY2F0aW9uID0gcHJvcHMuZ2VvX3BsYW5lX2Zvb3QKICAgICAgICAgICAgdXBfZGly"
"ID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5nZW9fcGxhbmVfZm9vdCkubm9ybWFsaXplZCgpIGlmIG1h"
"dGh1dGlscy5WZWN0b3IocHJvcHMuZ2VvX3BsYW5lX2Zvb3QpLmxlbmd0aCA+IDAuMDAwMSBlbHNlIG1h"
"dGh1dGlscy5WZWN0b3IocHJvcHMuZ2VvX3BsYW5lX25vcm1hbCkKICAgICAgICAgICAgb2JqX2hlbWku"
"cm90YXRpb25fbW9kZSA9ICdRVUFURVJOSU9OJwogICAgICAgICAgICBvYmpfaGVtaS5yb3RhdGlvbl9x"
"dWF0ZXJuaW9uID0gbWF0aHV0aWxzLlZlY3RvcigoMCwwLDEpKS5yb3RhdGlvbl9kaWZmZXJlbmNlKHVw"
"X2RpcikKICAgICAgICAgICAgZm9yIHBvbHkgaW4gbWVzaF9oZW1pLnBvbHlnb25zOiBwb2x5LnVzZV9z"
"bW9vdGggPSBUcnVlCiAgICAgICAgICAgIG9ial9oZW1pLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9t"
"YXRlcmlhbChQUkVGSVgrIk1hdF9IZW1pIiwgcHJvcHMuaGVtaV9jb2xvciwgcHJvcHMuaGVtaV9hbHBo"
"YSkKCiAgICAgICAgICAgICMgNy4g5YaF5q6755CDCiAgICAgICAgICAgIG1ha2Vfc3BoZXJlKERJU1Rf"
"U1BIRVJFX05BTUUsICgwLDAsMCksIGRpc3QsIGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9Jbm5l"
"ciIsIHByb3BzLmRpc3Rfc3BoZXJlX2NvbG9yLCBwcm9wcy5kaXN0X3NwaGVyZV9hbHBoYSkpCgogICAg"
"ICAgICMgOC4g5aSW5q6755CDCiAgICAgICAgaWYgcHJvcHMuZ2VvX291dGVyX3JhZGl1cyA+IDA6CiAg"
"ICAgICAgICAgIG1ha2Vfc3BoZXJlKE9VVEVSX1NQSEVSRV9OQU1FLCAoMCwwLDApLCBwcm9wcy5nZW9f"
"b3V0ZXJfcmFkaXVzLCBjcmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRfT3V0ZXIiLCBwcm9wcy5vdXRl"
"cl9zcGhlcmVfY29sb3IsIHByb3BzLm91dGVyX3NwaGVyZV9hbHBoYSkpCgogICAgICAgICMgOS4g5ZCM"
"5b+D55CDIDEsIDIsIDMgKE5FVykKICAgICAgICBtYXRfY29uYyA9IGNyZWF0ZV9tYXRlcmlhbChQUkVG"
"SVgrIk1hdF9Db25jIiwgcHJvcHMuY29uY19zcGhlcmVfY29sb3IsIHByb3BzLmNvbmNfc3BoZXJlX2Fs"
"cGhhKQogICAgICAgIGlmIHByb3BzLmdlb19zcDFfZGlzdCA+IDA6IG1ha2Vfc3BoZXJlKENPTkNfU1BI"
"RVJFXzFfTkFNRSwgKDAsMCwwKSwgcHJvcHMuZ2VvX3NwMV9kaXN0LCBtYXRfY29uYykKICAgICAgICBp"
"ZiBwcm9wcy5nZW9fc3AyX2Rpc3QgPiAwOiBtYWtlX3NwaGVyZShDT05DX1NQSEVSRV8yX05BTUUsICgw"
"LDAsMCksIHByb3BzLmdlb19zcDJfZGlzdCwgbWF0X2NvbmMpCiAgICAgICAgaWYgcHJvcHMuZ2VvX3Nw"
"M19kaXN0ID4gMDogbWFrZV9zcGhlcmUoQ09OQ19TUEhFUkVfM19OQU1FLCAoMCwwLDApLCBwcm9wcy5n"
"ZW9fc3AzX2Rpc3QsIG1hdF9jb25jKQoKICAgICAgICAjIOacgOW+jOOBq+OAgeODgeOCp+ODg+OCr+eK"
"tuaFi+OBq+W+k+OBo+OBpuihqOekui/pnZ7ooajnpLrjgpLpgannlKgKICAgICAgICB1cGRhdGVfdmlz"
"aWJpbGl0eShwcm9wcywgY29udGV4dCkKCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3Mg"
"VENUQV9PVF9EZXRhY2hPYmplY3RzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAi"
"dGN0YS5kZXRhY2hfb2JqZWN0cyIKICAgIGJsX2xhYmVsID0gIuOCouODieOCquODs+OBi+OCieWIh+OC"
"iumbouOBlyIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHBhcmVudF9jb2wg"
"PSBicHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoUEFSRU5UX0NPTExFQ1RJT05fTkFNRSkKICAgICAgICBp"
"ZiBwYXJlbnRfY29sOgogICAgICAgICAgICBwYXJlbnRfY29sLm5hbWUgPSBQQVJFTlRfQ09MTEVDVElP"
"Tl9OQU1FICsgIl9EZXRhY2hlZCIKICAgICAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLliIfj"
"gorpm6LjgZfjgb7jgZfjgZ8iKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFf"
"T1RfQ29weUdlb0luZm8oYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLmNv"
"cHlfZ2VvX2luZm8iCiAgICBibF9sYWJlbCA9ICLlub7kvZXmg4XloLHjgpLjgrPjg5Tjg7wiCiAgICBk"
"ZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0"
"YV9wcm9wcwogICAgICAgIGxpbmVzID0gW10KICAgICAgICAKICAgICAgICBpZiBwcm9wcy5zaG93X3Rh"
"cmdldHM6CiAgICAgICAgICAgIGxpbmVzLmFwcGVuZChmIlNwMSBEaXN0OiB7cHJvcHMuZ2VvX3NwMV9k"
"aXN0Oi4xZn0sIEFuZzogWD17cHJvcHMuZ2VvX3NwMV9hbmdbMF06LjFmfSwgWT17cHJvcHMuZ2VvX3Nw"
"MV9hbmdbMV06LjFmfSwgWj17cHJvcHMuZ2VvX3NwMV9hbmdbMl06LjFmfSIpCiAgICAgICAgICAgIGxp"
"bmVzLmFwcGVuZChmIlNwMiBEaXN0OiB7cHJvcHMuZ2VvX3NwMl9kaXN0Oi4xZn0sIEFuZzogWD17cHJv"
"cHMuZ2VvX3NwMl9hbmdbMF06LjFmfSwgWT17cHJvcHMuZ2VvX3NwMl9hbmdbMV06LjFmfSwgWj17cHJv"
"cHMuZ2VvX3NwMl9hbmdbMl06LjFmfSIpCiAgICAgICAgICAgIGxpbmVzLmFwcGVuZChmIlNwMyBEaXN0"
"OiB7cHJvcHMuZ2VvX3NwM19kaXN0Oi4xZn0sIEFuZzogWD17cHJvcHMuZ2VvX3NwM19hbmdbMF06LjFm"
"fSwgWT17cHJvcHMuZ2VvX3NwM19hbmdbMV06LjFmfSwgWj17cHJvcHMuZ2VvX3NwM19hbmdbMl06LjFm"
"fSIpCiAgICAgICAgCiAgICAgICAgaWYgcHJvcHMuc2hvd190cmlhbmdsZXM6CiAgICAgICAgICAgIGxp"
"bmVzLmFwcGVuZChmIlBsYW5lIENyb3NzIEFuZ2xlOiB7cHJvcHMuZ2VvX3BsYW5lX2FuZ2xlOi4xZn0i"
"KQogICAgICAgICAgICAKICAgICAgICBpZiBwcm9wcy5zaG93X2lubmVyX3NwaGVyZSBvciBwcm9wcy5z"
"aG93X2Fycm93OgogICAgICAgICAgICBsaW5lcy5hcHBlbmQoZiJTaG9ydGVzdCBEaXN0IHRvIFBsYW5l"
"IEI6IHtwcm9wcy5nZW9fcGxhbmVfZGlzdDouMWZ9IikKICAgICAgICAgICAgbGluZXMuYXBwZW5kKGYi"
"U2hvcnRlc3QgRm9vdCBQb3M6IFg9e3Byb3BzLmdlb19wbGFuZV9mb290WzBdOi4xZn0sIFk9e3Byb3Bz"
"Lmdlb19wbGFuZV9mb290WzFdOi4xZn0sIFo9e3Byb3BzLmdlb19wbGFuZV9mb290WzJdOi4xZn0iKQog"
"ICAgICAgICAgICAKICAgICAgICBpZiBwcm9wcy5zaG93X291dGVyX3NwaGVyZToKICAgICAgICAgICAg"
"bGluZXMuYXBwZW5kKGYiT3V0ZXIgU2hlbGwgUmFkaXVzIChNYXggRGlzdCk6IHtwcm9wcy5nZW9fb3V0"
"ZXJfcmFkaXVzOi4xZn0iKQogICAgICAgICAgICAKICAgICAgICBpZiBwcm9wcy5zaG93X2NvbmNfc3Bo"
"ZXJlczoKICAgICAgICAgICAgbGluZXMuYXBwZW5kKGYiQ29uY2VudHJpYyBTcGhlcmVzIFJhZGlpOiBS"
"MT17cHJvcHMuZ2VvX3NwMV9kaXN0Oi4xZn0sIFIyPXtwcm9wcy5nZW9fc3AyX2Rpc3Q6LjFmfSwgUjM9"
"e3Byb3BzLmdlb19zcDNfZGlzdDouMWZ9IikKCiAgICAgICAgY29udGV4dC53aW5kb3dfbWFuYWdlci5j"
"bGlwYm9hcmQgPSAiXG4iLmpvaW4obGluZXMpCiAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLo"
"oajnpLrkuK3jga7lub7kvZXmg4XloLHjgpLjgrPjg5Tjg7zjgZfjgb7jgZfjgZ8iKQogICAgICAgIHJl"
"dHVybiB7J0ZJTklTSEVEJ30KCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyA1LiBVSSDjg5Hjg43jg6vlrprnvqkK"
"IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09CmNsYXNzIFRDVEFfUFRfUGFuZWxCYXNlOgogICAgYmxfc3BhY2VfdHlwZSA9"
"ICdWSUVXXzNEJwogICAgYmxfcmVnaW9uX3R5cGUgPSAnVUknCiAgICBibF9jYXRlZ29yeSA9ICJUQ1RB"
"IgoKY2xhc3MgVENUQV9QVF9NYWluKFRDVEFfUFRfUGFuZWxCYXNlLCBicHkudHlwZXMuUGFuZWwpOgog"
"ICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfbWFpbiIKICAgIGJsX2xhYmVsID0gIjEuIOODoeOCpOODs+Wu"
"n+ihjCIKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5"
"b3V0CiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNyZWF0ZV9vYmplY3RzIiwgaWNvbj0nUExB"
"WScsIHRleHQ9IuS9nOaIkCAo55Sf5oiQ44O75pu05pawKSIpCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9y"
"KCJ0Y3RhLmRldGFjaF9vYmplY3RzIiwgaWNvbj0nVU5MSU5LRUQnKQoKY2xhc3MgVENUQV9QVF9TZXR0"
"aW5ncyhUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBhbmVsKToKICAgIGJsX2lkbmFtZSA9ICJU"
"Q1RBX1BUX3NldHRpbmdzIgogICAgYmxfbGFiZWwgPSAiMi4g44Kq44OW44K444Kn44Kv44OI77yG44OR"
"44Op44Oh44O844K/6Kit5a6aIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4dCk6CiAgICAgICAgbGF5"
"b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwoK"
"ICAgICAgICAjIC0tLSDnlJ/miJDjg7vooajnpLrjgZnjgovjgqrjg5bjgrjjgqfjgq/jg4jjga7jg57j"
"grnjgr/jg7zliLblvqEgLS0tCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94Lmxh"
"YmVsKHRleHQ9IueUn+aIkC/ooajnpLrjgZnjgovjgqrjg5bjgrjjgqfjgq/jg4ggKE1hc3RlciBUb2dn"
"bGUpOiIsIGljb249J09VVExJTkVSX09CX0dST1VQX0lOU1RBTkNFJykKICAgICAgICAKICAgICAgICAj"
"IDPliJfjgafntrrpupfjgavkuKbjgbnjgosKICAgICAgICBjb2wgPSBib3guY29sdW1uKGFsaWduPVRy"
"dWUpCiAgICAgICAgcm93ID0gY29sLnJvdygpCiAgICAgICAgcm93LnByb3AocHJvcHMsICJzaG93X3Rv"
"cnVzIiwgdGV4dD0i6aqo5qC8IChUb3J1cykiKQogICAgICAgIHJvdy5wcm9wKHByb3BzLCAic2hvd190"
"YXJnZXRzIiwgdGV4dD0iM+eQg+S9kyAoVGFyZ2V0cykiKQogICAgICAgIHJvdy5wcm9wKHByb3BzLCAi"
"c2hvd190cmlhbmdsZXMiLCB0ZXh0PSLkuInop5LlvaIgKFRyaXMpIikKICAgICAgICAKICAgICAgICBy"
"b3cgPSBjb2wucm93KCkKICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfYXJyb3ciLCB0ZXh0PSLn"
"n6LljbAgKEFycm93KSIpCiAgICAgICAgcm93LnByb3AocHJvcHMsICJzaG93X2NpcmNsZSIsIHRleHQ9"
"IuWGhuebpCAoQ2lyY2xlKSIpCiAgICAgICAgcm93LnByb3AocHJvcHMsICJzaG93X2hlbWlzcGhlcmUi"
"LCB0ZXh0PSLljYrnkIMgKEhlbWkpIikKCiAgICAgICAgcm93ID0gY29sLnJvdygpCiAgICAgICAgcm93"
"LnByb3AocHJvcHMsICJzaG93X2lubmVyX3NwaGVyZSIsIHRleHQ9IuWGheauu+eQgyAoSW5uZXIpIikK"
"ICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfb3V0ZXJfc3BoZXJlIiwgdGV4dD0i5aSW5q6755CD"
"IChPdXRlcikiKQogICAgICAgIHJvdy5wcm9wKHByb3BzLCAic2hvd19jb25jX3NwaGVyZXMiLCB0ZXh0"
"PSLlkIzlv4PnkIMgKENvbmMpIikKCiAgICAgICAgbGF5b3V0LnNlcGFyYXRvcigpCgogICAgICAgICMg"
"LS0tIOWAi+WIpeODkeODqeODoeODvOOCv++8iOODgeOCp+ODg+OCr+OBjOWFpeOBo+OBpuOBhOOCi+OC"
"guOBruOBoOOBkeihqOekuu+8iSAtLS0KICAgICAgICBpZiBwcm9wcy5zaG93X3RvcnVzOgogICAgICAg"
"ICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICAgICAgYm94LmxhYmVsKHRleHQ9IlRvcnVzIEZy"
"YW1lOiIpCiAgICAgICAgICAgIHJvdyA9IGJveC5yb3coKQogICAgICAgICAgICByb3cucHJvcChwcm9w"
"cywgInRvcnVzX2NvbG9yIiwgdGV4dD0iQ29sb3IiKQogICAgICAgICAgICByb3cucHJvcChwcm9wcywg"
"InRvcnVzX2FscGhhIiwgdGV4dD0iQWxwaGEiKQogICAgICAgICAgICAKICAgICAgICBpZiBwcm9wcy5z"
"aG93X3RhcmdldHM6CiAgICAgICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgICAgICBib3gu"
"bGFiZWwodGV4dD0iU3BoZXJlcyAoVGFyZ2V0cyk6IikKICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uo"
"MSwgNCk6CiAgICAgICAgICAgICAgICByb3cgPSBib3gucm93KCkKICAgICAgICAgICAgICAgIHJvdy5w"
"cm9wKHByb3BzLCBmInNwe2l9X21vZGUiLCB0ZXh0PWYiU3B7aX0iKQogICAgICAgICAgICAgICAgaWYg"
"Z2V0YXR0cihwcm9wcywgZiJzcHtpfV9tb2RlIikgPT0gJ01BTlVBTCc6CiAgICAgICAgICAgICAgICAg"
"ICAgYm94LnByb3AocHJvcHMsIGYic3B7aX1fcG9zIiwgdGV4dD0iIikKICAgICAgICAgICAgICAgICAg"
"ICAKICAgICAgICBpZiBwcm9wcy5zaG93X3RyaWFuZ2xlczoKICAgICAgICAgICAgYm94ID0gbGF5b3V0"
"LmJveCgpCiAgICAgICAgICAgIGJveC5sYWJlbCh0ZXh0PSJUcmlhbmdsZXM6IikKICAgICAgICAgICAg"
"cm93ID0gYm94LnJvdygpCiAgICAgICAgICAgIHJvdy5wcm9wKHByb3BzLCAidHJpX3RoaWNrbmVzcyIs"
"IHRleHQ9IlRoaWNrIikKICAgICAgICAgICAgcm93LnByb3AocHJvcHMsICJ0cmlfYWxwaGEiLCB0ZXh0"
"PSJBbHBoYSIpCiAgICAgICAgICAgIHJvdyA9IGJveC5yb3coKQogICAgICAgICAgICByb3cucHJvcChw"
"cm9wcywgInRyaUFfY29sb3IiLCB0ZXh0PSJDb2wgQSIpCiAgICAgICAgICAgIHJvdy5wcm9wKHByb3Bz"
"LCAidHJpQl9jb2xvciIsIHRleHQ9IkNvbCBCIikKCiAgICAgICAgaWYgcHJvcHMuc2hvd19hcnJvdzoK"
"ICAgICAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgICAgIGJveC5sYWJlbCh0ZXh0PSJB"
"cnJvdzoiKQogICAgICAgICAgICByb3cgPSBib3gucm93KCkKICAgICAgICAgICAgcm93LnByb3AocHJv"
"cHMsICJhcnJvd190aGlja25lc3MiLCB0ZXh0PSJUaGljayIpCiAgICAgICAgICAgIHJvdy5wcm9wKHBy"
"b3BzLCAiYXJyb3dfY29sb3IiLCB0ZXh0PSJDb2xvciIpCgogICAgICAgIGlmIHByb3BzLnNob3dfY2ly"
"Y2xlOgogICAgICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICAgICAgYm94LmxhYmVsKHRl"
"eHQ9IkNpcmNsZToiKQogICAgICAgICAgICByb3cgPSBib3gucm93KCkKICAgICAgICAgICAgcm93LnBy"
"b3AocHJvcHMsICJjaXJjbGVfcmFkaXVzIiwgdGV4dD0iUmFkaXVzIikKICAgICAgICAgICAgcm93LnBy"
"b3AocHJvcHMsICJjaXJjbGVfdGhpY2tuZXNzIiwgdGV4dD0iVGhpY2siKQogICAgICAgICAgICByb3cg"
"PSBib3gucm93KCkKICAgICAgICAgICAgcm93LnByb3AocHJvcHMsICJjaXJjbGVfY29sb3IiLCB0ZXh0"
"PSJDb2xvciIpCiAgICAgICAgICAgIHJvdy5wcm9wKHByb3BzLCAiY2lyY2xlX2FscGhhIiwgdGV4dD0i"
"QWxwaGEiKQoKICAgICAgICBpZiBwcm9wcy5zaG93X2hlbWlzcGhlcmU6CiAgICAgICAgICAgIGJveCA9"
"IGxheW91dC5ib3goKQogICAgICAgICAgICBib3gubGFiZWwodGV4dD0iSGVtaXNwaGVyZToiKQogICAg"
"ICAgICAgICByb3cgPSBib3gucm93KCkKICAgICAgICAgICAgcm93LnByb3AocHJvcHMsICJoZW1pX2Zp"
"bGxfYm90dG9tIiwgdGV4dD0iRmlsbCBCb3R0b20iKQogICAgICAgICAgICByb3cucHJvcChwcm9wcywg"
"ImNpcmNsZV9yYWRpdXMiLCB0ZXh0PSJSYWRpdXMiKSAjIOWGhuebpOOBqOWFseaciQogICAgICAgICAg"
"ICByb3cgPSBib3gucm93KCkKICAgICAgICAgICAgcm93LnByb3AocHJvcHMsICJoZW1pX2NvbG9yIiwg"
"dGV4dD0iQ29sb3IiKQogICAgICAgICAgICByb3cucHJvcChwcm9wcywgImhlbWlfYWxwaGEiLCB0ZXh0"
"PSJBbHBoYSIpCgogICAgICAgIGlmIHByb3BzLnNob3dfaW5uZXJfc3BoZXJlOgogICAgICAgICAgICBi"
"b3ggPSBsYXlvdXQuYm94KCkKICAgICAgICAgICAgYm94LmxhYmVsKHRleHQ9IklubmVyIFNwaGVyZSAo"
"U2hvcnRlc3QgRGlzdCk6IikKICAgICAgICAgICAgcm93ID0gYm94LnJvdygpCiAgICAgICAgICAgIHJv"
"dy5wcm9wKHByb3BzLCAiZGlzdF9zcGhlcmVfY29sb3IiLCB0ZXh0PSJDb2xvciIpCiAgICAgICAgICAg"
"IHJvdy5wcm9wKHByb3BzLCAiZGlzdF9zcGhlcmVfYWxwaGEiLCB0ZXh0PSJBbHBoYSIpCgogICAgICAg"
"IGlmIHByb3BzLnNob3dfb3V0ZXJfc3BoZXJlOgogICAgICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkK"
"ICAgICAgICAgICAgYm94LmxhYmVsKHRleHQ9Ik91dGVyIFNwaGVyZSAoTWF4IEJvdW5kKToiKQogICAg"
"ICAgICAgICByb3cgPSBib3gucm93KCkKICAgICAgICAgICAgcm93LnByb3AocHJvcHMsICJvdXRlcl9z"
"cGhlcmVfY29sb3IiLCB0ZXh0PSJDb2xvciIpCiAgICAgICAgICAgIHJvdy5wcm9wKHByb3BzLCAib3V0"
"ZXJfc3BoZXJlX2FscGhhIiwgdGV4dD0iQWxwaGEiKQoKICAgICAgICBpZiBwcm9wcy5zaG93X2NvbmNf"
"c3BoZXJlczoKICAgICAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgICAgIGJveC5sYWJl"
"bCh0ZXh0PSJDb25jZW50cmljIFNwaGVyZXMgKDMgUmFkaWkpOiIpCiAgICAgICAgICAgIHJvdyA9IGJv"
"eC5yb3coKQogICAgICAgICAgICByb3cucHJvcChwcm9wcywgImNvbmNfc3BoZXJlX2NvbG9yIiwgdGV4"
"dD0iQ29sb3IiKQogICAgICAgICAgICByb3cucHJvcChwcm9wcywgImNvbmNfc3BoZXJlX2FscGhhIiwg"
"dGV4dD0iQWxwaGEiKQoKY2xhc3MgVENUQV9QVF9HZW9JbmZvKFRDVEFfUFRfUGFuZWxCYXNlLCBicHku"
"dHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfZ2VvX2luZm8iCiAgICBibF9sYWJl"
"bCA9ICIzLiDlub7kvZXmg4XloLEiCiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBs"
"YXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3Bz"
"CiAgICAgICAgCiAgICAgICAgaWYgcHJvcHMuc2hvd190YXJnZXRzOgogICAgICAgICAgICBib3ggPSBs"
"YXlvdXQuYm94KCkKICAgICAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiJTcDEgRGlzdDoge3Byb3BzLmdl"
"b19zcDFfZGlzdDouMWZ9IHwgQW5nOiB7cHJvcHMuZ2VvX3NwMV9hbmdbMF06LjBmfcKwLCB7cHJvcHMu"
"Z2VvX3NwMV9hbmdbMV06LjBmfcKwLCB7cHJvcHMuZ2VvX3NwMV9hbmdbMl06LjBmfcKwIikKICAgICAg"
"ICAgICAgYm94LmxhYmVsKHRleHQ9ZiJTcDIgRGlzdDoge3Byb3BzLmdlb19zcDJfZGlzdDouMWZ9IHwg"
"QW5nOiB7cHJvcHMuZ2VvX3NwMl9hbmdbMF06LjBmfcKwLCB7cHJvcHMuZ2VvX3NwMl9hbmdbMV06LjBm"
"fcKwLCB7cHJvcHMuZ2VvX3NwMl9hbmdbMl06LjBmfcKwIikKICAgICAgICAgICAgYm94LmxhYmVsKHRl"
"eHQ9ZiJTcDMgRGlzdDoge3Byb3BzLmdlb19zcDNfZGlzdDouMWZ9IHwgQW5nOiB7cHJvcHMuZ2VvX3Nw"
"M19hbmdbMF06LjBmfcKwLCB7cHJvcHMuZ2VvX3NwM19hbmdbMV06LjBmfcKwLCB7cHJvcHMuZ2VvX3Nw"
"M19hbmdbMl06LjBmfcKwIikKICAgICAgICAKICAgICAgICBpZiBwcm9wcy5zaG93X3RyaWFuZ2xlczoK"
"ICAgICAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgICAgIGJveC5sYWJlbCh0ZXh0PWYi"
"UGxhbmUgQ3Jvc3MgQW5nbGU6IHtwcm9wcy5nZW9fcGxhbmVfYW5nbGU6LjFmfcKwIikKICAgICAgICAK"
"ICAgICAgICBpZiBwcm9wcy5zaG93X2lubmVyX3NwaGVyZSBvciBwcm9wcy5zaG93X2Fycm93OgogICAg"
"ICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiJTaG9y"
"dGVzdCBEaXN0IHRvIFBsYW5lIEI6IHtwcm9wcy5nZW9fcGxhbmVfZGlzdDouMWZ9IikKICAgICAgICAg"
"ICAgYm94LmxhYmVsKHRleHQ9ZiJGb290OiAoe3Byb3BzLmdlb19wbGFuZV9mb290WzBdOi4xZn0sIHtw"
"cm9wcy5nZW9fcGxhbmVfZm9vdFsxXTouMWZ9LCB7cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMl06LjFmfSki"
"KQoKICAgICAgICBpZiBwcm9wcy5zaG93X291dGVyX3NwaGVyZToKICAgICAgICAgICAgYm94ID0gbGF5"
"b3V0LmJveCgpCiAgICAgICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiT3V0ZXIgU2hlbGwgUmFkaXVzOiB7"
"cHJvcHMuZ2VvX291dGVyX3JhZGl1czouMWZ9IikKICAgICAgICAgICAgCiAgICAgICAgaWYgcHJvcHMu"
"c2hvd19jb25jX3NwaGVyZXM6CiAgICAgICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgICAg"
"ICBib3gubGFiZWwodGV4dD0iQ29uY2VudHJpYyBTcGhlcmVzIFJhZGlpOiIpCiAgICAgICAgICAgIGJv"
"eC5sYWJlbCh0ZXh0PWYiICBSMToge3Byb3BzLmdlb19zcDFfZGlzdDouMWZ9LCBSMjoge3Byb3BzLmdl"
"b19zcDJfZGlzdDouMWZ9LCBSMzoge3Byb3BzLmdlb19zcDNfZGlzdDouMWZ9IikKCiAgICAgICAgbGF5"
"b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNvcHlfZ2VvX2luZm8iLCBpY29uPSdDT1BZRE9XTicpCgoKIyA9PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09CiMgNi4g55m76Yyy5Yem55CGCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjbGFzc2VzID0gKAogICAg"
"VENUQV9Qcm9wZXJ0aWVzLAogICAgVENUQV9PVF9WaWV3U2VsZWN0ZWQsCiAgICBUQ1RBX09UX1VwZGF0"
"ZVZpZXdJbmZvLAogICAgVENUQV9PVF9Db3B5Vmlld0luZm8sCiAgICBUQ1RBX09UX0NyZWF0ZU9iamVj"
"dHMsCiAgICBUQ1RBX09UX0RldGFjaE9iamVjdHMsCiAgICBUQ1RBX09UX0NvcHlHZW9JbmZvLAogICAg"
"VENUQV9QVF9NYWluLAogICAgVENUQV9QVF9TZXR0aW5ncywKICAgIFRDVEFfUFRfR2VvSW5mbywKKQoK"
"ZGVmIHJlZ2lzdGVyKCk6CiAgICBmb3IgY2xzIGluIGNsYXNzZXM6CiAgICAgICAgYnB5LnV0aWxzLnJl"
"Z2lzdGVyX2NsYXNzKGNscykKICAgIGJweS50eXBlcy5TY2VuZS50Y3RhX3Byb3BzID0gYnB5LnByb3Bz"
"LlBvaW50ZXJQcm9wZXJ0eSh0eXBlPVRDVEFfUHJvcGVydGllcykKCmRlZiB1bnJlZ2lzdGVyKCk6CiAg"
"ICBmb3IgY2xzIGluIHJldmVyc2VkKGNsYXNzZXMpOgogICAgICAgIGJweS51dGlscy51bnJlZ2lzdGVy"
"X2NsYXNzKGNscykKICAgIGRlbCBicHkudHlwZXMuU2NlbmUudGN0YV9wcm9wcwoKaWYgX19uYW1lX18g"
"PT0gIl9fbWFpbl9fIjoKICAgIHJlZ2lzdGVyKCk="
)
},
{
"name": "平面2つなす角度 20260713_006",
"code_b64": (
"YmxfaW5mbyA9IHsKICAgICJuYW1lIjogIlRvcnVzIEN1YmUgJiBUcmlhbmdsZSBBbmFseXplciIsCiAg"
"ICAiYXV0aG9yIjogIkFJIEFzc2lzdGFudCIsCiAgICAidmVyc2lvbiI6ICgxLCA2LCAwKSwKICAgICJi"
"bGVuZGVyIjogKDQsIDIsIDApLAogICAgImxvY2F0aW9uIjogIlZpZXczRCA+IFNpZGViYXIgPiBUQ1RB"
"IiwKICAgICJkZXNjcmlwdGlvbiI6ICLlubPpnaLjgbjjga7mnIDnn63ot53pm6LjgajjgIHlkJHjgZPj"
"gYblgbTjgavluoPjgYzjgovljYrnkIPjga7lub7kvZXlrabnmoToppbopprljJYiLAogICAgImNhdGVn"
"b3J5IjogIjNEIFZpZXciLAp9CgppbXBvcnQgYnB5CmltcG9ydCBibWVzaAppbXBvcnQgbWF0aAppbXBv"
"cnQgbWF0aHV0aWxzCmltcG9ydCByYW5kb20KCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDEuIOWIneacn+WApOWu"
"mue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT0KUFJFRklYID0gIlRDVEFfIgpQQVJFTlRfQ09MTEVDVElPTl9OQU1F"
"ID0gIlRvcnVzQ3ViZVNwYWNlIgpTVUJfQ09MTEVDVElPTl9OQU1FID0gIkFuYWx5emVyT2JqZWN0cyIK"
"VE9SVVNfU0tFTEVUT05fTkFNRSA9ICJUb3J1c1NrZWxldG9uIgpTUEhFUkVfMV9OQU1FID0gIlNwaGVy"
"ZV8xIgpTUEhFUkVfMl9OQU1FID0gIlNwaGVyZV8yIgpTUEhFUkVfM19OQU1FID0gIlNwaGVyZV8zIgpU"
"UklBTkdMRV9BX05BTUUgPSAiVHJpYW5nbGVfQSIKVFJJQU5HTEVfQl9OQU1FID0gIlRyaWFuZ2xlX0Ii"
"CkFSUk9XX05BTUUgPSAiQXJyb3dfU2hvcnRlc3REaXN0IgpDSVJDTEVfTkFNRSA9ICJDaXJjbGVfUGxh"
"bmVCIgpESVNUX1NQSEVSRV9OQU1FID0gIlNwaGVyZV9TaG9ydGVzdERpc3QiCk9VVEVSX1NQSEVSRV9O"
"QU1FID0gIlNwaGVyZV9PdXRlckJvdW5kIgpIRU1JU1BIRVJFX05BTUUgPSAiSGVtaXNwaGVyZV9QbGFu"
"ZUIiICMg5paw6KaP6L+95YqgOiDpgaDjgZbjgYvjgovljYrnkIMKCiMgPT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDIu"
"IOODl+ODreODkeODhuOCo+Wumue+qe+8iOabtOaWsOOCs+ODvOODq+ODkOODg+OCr+WQq+OCgO+8iQoj"
"ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT0KZGVmIHVwZGF0ZV92aXNfYXJyb3coc2VsZiwgY29udGV4dCk6CiAgICBvYmog"
"PSBicHkuZGF0YS5vYmplY3RzLmdldChBUlJPV19OQU1FKQogICAgaWYgb2JqOiBvYmouaGlkZV92aWV3"
"cG9ydCA9IG9iai5oaWRlX3JlbmRlciA9IG5vdCBzZWxmLnNob3dfYXJyb3cKCmRlZiB1cGRhdGVfdmlz"
"X2NpcmNsZShzZWxmLCBjb250ZXh0KToKICAgIG9iaiA9IGJweS5kYXRhLm9iamVjdHMuZ2V0KENJUkNM"
"RV9OQU1FKQogICAgaWYgb2JqOiBvYmouaGlkZV92aWV3cG9ydCA9IG9iai5oaWRlX3JlbmRlciA9IG5v"
"dCBzZWxmLnNob3dfY2lyY2xlCgpkZWYgdXBkYXRlX3Zpc19zcGhlcmUoc2VsZiwgY29udGV4dCk6CiAg"
"ICBvYmogPSBicHkuZGF0YS5vYmplY3RzLmdldChESVNUX1NQSEVSRV9OQU1FKQogICAgaWYgb2JqOiBv"
"YmouaGlkZV92aWV3cG9ydCA9IG9iai5oaWRlX3JlbmRlciA9IG5vdCBzZWxmLnNob3dfZGlzdF9zcGhl"
"cmUKCmRlZiB1cGRhdGVfdmlzX291dGVyX3NwaGVyZShzZWxmLCBjb250ZXh0KToKICAgIG9iaiA9IGJw"
"eS5kYXRhLm9iamVjdHMuZ2V0KE9VVEVSX1NQSEVSRV9OQU1FKQogICAgaWYgb2JqOiBvYmouaGlkZV92"
"aWV3cG9ydCA9IG9iai5oaWRlX3JlbmRlciA9IG5vdCBzZWxmLnNob3dfb3V0ZXJfc3BoZXJlCgpkZWYg"
"dXBkYXRlX3Zpc19oZW1pc3BoZXJlKHNlbGYsIGNvbnRleHQpOgogICAgb2JqID0gYnB5LmRhdGEub2Jq"
"ZWN0cy5nZXQoSEVNSVNQSEVSRV9OQU1FKQogICAgaWYgb2JqOiBvYmouaGlkZV92aWV3cG9ydCA9IG9i"
"ai5oaWRlX3JlbmRlciA9IG5vdCBzZWxmLnNob3dfaGVtaXNwaGVyZQoKY2xhc3MgVENUQV9Qcm9wZXJ0"
"aWVzKGJweS50eXBlcy5Qcm9wZXJ0eUdyb3VwKToKICAgICMg44OI44O844Op44K56aqo5qC86Kit5a6a"
"CiAgICB0b3J1c19jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iVG9ydXMg"
"Q29sb3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMC4xLCAwLjUsIDAu"
"OCwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHRvcnVzX2FscGhhOiBicHkucHJvcHMuRmxvYXRQ"
"cm9wZXJ0eShuYW1lPSJUb3J1cyBBbHBoYSIsIGRlZmF1bHQ9MC41LCBtaW49MC4wLCBtYXg9MS4wKQog"
"ICAgCiAgICAjIOmFjee9ruODouODvOODiQogICAgbW9kZV9vcHRpb25zID0gWygnUkFORE9NJywgIuOD"
"qeODs+ODgOODoCIsICIiKSwgKCdNQU5VQUwnLCAi5oyH5a6a5L2N572uIiwgIiIpXQogICAgc3AxX21v"
"ZGU6IGJweS5wcm9wcy5FbnVtUHJvcGVydHkobmFtZT0iTW9kZSIsIGl0ZW1zPW1vZGVfb3B0aW9ucywg"
"ZGVmYXVsdD0nUkFORE9NJykKICAgIHNwMl9tb2RlOiBicHkucHJvcHMuRW51bVByb3BlcnR5KG5hbWU9"
"Ik1vZGUiLCBpdGVtcz1tb2RlX29wdGlvbnMsIGRlZmF1bHQ9J1JBTkRPTScpCiAgICBzcDNfbW9kZTog"
"YnB5LnByb3BzLkVudW1Qcm9wZXJ0eShuYW1lPSJNb2RlIiwgaXRlbXM9bW9kZV9vcHRpb25zLCBkZWZh"
"dWx0PSdSQU5ET00nKQogICAgCiAgICBzcDFfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0"
"eShuYW1lPSJQb3NpdGlvbiAxIiwgZGVmYXVsdD0oMi4wLCAyLjAsIDIuMCkpCiAgICBzcDJfcG9zOiBi"
"cHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJQb3NpdGlvbiAyIiwgZGVmYXVsdD0oLTIu"
"MCwgLTIuMCwgMi4wKSkKICAgIHNwM19wb3M6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5h"
"bWU9IlBvc2l0aW9uIDMiLCBkZWZhdWx0PSgwLjAsIDMuMCwgLTIuMCkpCiAgICAKICAgIHNwMV9hY3R1"
"YWxfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShkZWZhdWx0PSgwLDAsMCkpCiAgICBz"
"cDJfYWN0dWFsX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkoZGVmYXVsdD0oMCwwLDAp"
"KQogICAgc3AzX2FjdHVhbF9wb3M6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KGRlZmF1bHQ9"
"KDAsMCwwKSkKCiAgICAjIOS4ieinkuW9ouioreWumgogICAgdHJpX3RoaWNrbmVzczogYnB5LnByb3Bz"
"LkZsb2F0UHJvcGVydHkobmFtZT0iVGhpY2tuZXNzIiwgZGVmYXVsdD0wLjEsIG1pbj0wLjApCiAgICB0"
"cmlfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkFscGhhIiwgZGVmYXVsdD0wLjEs"
"IG1pbj0wLjAsIG1heD0xLjApCiAgICB0cmlBX2NvbG9yOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9w"
"ZXJ0eShuYW1lPSJDb2xvciBBIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9"
"KDAuOCwgMC4yLCAwLjIsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCiAgICB0cmlCX2NvbG9yOiBicHku"
"cHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJDb2xvciBCIiwgc3VidHlwZT0nQ09MT1JfR0FN"
"TUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuMiwgMC44LCAwLjIsIDEuMCksIG1pbj0wLjAsIG1heD0xLjAp"
"CgogICAgIyDooajnpLov6Z2e6KGo56S644OI44Kw44OrCiAgICBzaG93X2Fycm93OiBicHkucHJvcHMu"
"Qm9vbFByb3BlcnR5KG5hbWU9IuefouWNsCIsIGRlZmF1bHQ9VHJ1ZSwgdXBkYXRlPXVwZGF0ZV92aXNf"
"YXJyb3cpCiAgICBzaG93X2NpcmNsZTogYnB5LnByb3BzLkJvb2xQcm9wZXJ0eShuYW1lPSLlhobnm6Qi"
"LCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVfdmlzX2NpcmNsZSkKICAgIHNob3dfZGlzdF9zcGhl"
"cmU6IGJweS5wcm9wcy5Cb29sUHJvcGVydHkobmFtZT0i5YaF55CDIiwgZGVmYXVsdD1UcnVlLCB1cGRh"
"dGU9dXBkYXRlX3Zpc19zcGhlcmUpCiAgICBzaG93X291dGVyX3NwaGVyZTogYnB5LnByb3BzLkJvb2xQ"
"cm9wZXJ0eShuYW1lPSLlpJbnkIMiLCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVfdmlzX291dGVy"
"X3NwaGVyZSkKICAgIHNob3dfaGVtaXNwaGVyZTogYnB5LnByb3BzLkJvb2xQcm9wZXJ0eShuYW1lPSLl"
"jYrnkIMiLCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVfdmlzX2hlbWlzcGhlcmUpICMgTkVXCgog"
"ICAgIyDoppbopprljJboqbPntLDoqK3lrpoKICAgIGFycm93X3RoaWNrbmVzczogYnB5LnByb3BzLkZs"
"b2F0UHJvcGVydHkobmFtZT0iQXJyb3cgVGhpY2tuZXNzIiwgZGVmYXVsdD0wLjA1LCBtaW49MC4wMSwg"
"bWF4PTEuMCkKICAgIGFycm93X2NvbG9yOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1l"
"PSJBcnJvdyBDb2xvciIsIHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBkZWZhdWx0PSgxLjAs"
"IDAuOCwgMC4wLCAxLjApLCBtaW49MC4wLCBtYXg9MS4wKQogICAgCiAgICBjaXJjbGVfcmFkaXVzOiBi"
"cHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJSYWRpdXMgKENpcmNsZS9IZW1pKSIsIGRlZmF1bHQ9"
"My4wLCBtaW49MC4xKSAjIOWGhuebpOOBqOWNiueQg+OBp+WFseacieOBruWNiuW+hAogICAgY2lyY2xl"
"X3RoaWNrbmVzczogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iQ2lyY2xlIFRoaWNrbmVzcyIs"
"IGRlZmF1bHQ9MC4xLCBtaW49MC4wKQogICAgY2lyY2xlX2NvbG9yOiBicHkucHJvcHMuRmxvYXRWZWN0"
"b3JQcm9wZXJ0eShuYW1lPSJDaXJjbGUgQ29sb3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNpemU9"
"NCwgZGVmYXVsdD0oMS4wLCAwLjUsIDAuMCwgMC40KSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIGNpcmNs"
"ZV9hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iQ2lyY2xlIEFscGhhIiwgZGVmYXVs"
"dD0wLjQsIG1pbj0wLjAsIG1heD0xLjApCiAgICAKICAgIGRpc3Rfc3BoZXJlX2NvbG9yOiBicHkucHJv"
"cHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJJbm5lciBTcGhlcmUgQ29sb3IiLCBzdWJ0eXBlPSdD"
"T0xPUl9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMC4wLCAwLjgsIDEuMCwgMS4wKSwgbWluPTAuMCwg"
"bWF4PTEuMCkKICAgIGRpc3Rfc3BoZXJlX2FscGhhOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1l"
"PSJJbm5lciBTcGhlcmUgQWxwaGEiLCBkZWZhdWx0PTAuMDYsIG1pbj0wLjAsIG1heD0xLjApCiAgICAK"
"ICAgIG91dGVyX3NwaGVyZV9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0i"
"T3V0ZXIgU3BoZXJlIENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9"
"KDAuOCwgMC4wLCAxLjAsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCiAgICBvdXRlcl9zcGhlcmVfYWxw"
"aGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9Ik91dGVyIFNwaGVyZSBBbHBoYSIsIGRlZmF1"
"bHQ9MC4wNCwgbWluPTAuMCwgbWF4PTEuMCkKCiAgICAjIOWNiueQg+ioreWumiAoTkVXKQogICAgaGVt"
"aV9maWxsX2JvdHRvbTogYnB5LnByb3BzLkJvb2xQcm9wZXJ0eShuYW1lPSLlupXpnaLjgpLkvZzjgosg"
"KEZpbGwgQm90dG9tKSIsIGRlZmF1bHQ9RmFsc2UpCiAgICBoZW1pX2NvbG9yOiBicHkucHJvcHMuRmxv"
"YXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJIZW1pc3BoZXJlIENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FN"
"TUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuMiwgMS4wLCAwLjUsIDEuMCksIG1pbj0wLjAsIG1heD0xLjAp"
"CiAgICBoZW1pX2FscGhhOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJIZW1pc3BoZXJlIEFs"
"cGhhIiwgZGVmYXVsdD0wLjMsIG1pbj0wLjAsIG1heD0xLjApCgogICAgIyDjg5Pjg6Xjg7zjg53jg7zj"
"g4jjg7vlub7kvZXmg4XloLEKICAgIHZpZXdfY2VudGVyOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9w"
"ZXJ0eShuYW1lPSJWaWV3IENlbnRlciIpCiAgICB2aWV3X3NpemU6IGJweS5wcm9wcy5JbnRWZWN0b3JQ"
"cm9wZXJ0eShuYW1lPSJWaWV3IFNpemUgKFB4KSIsIHNpemU9MikKICAgIHZpZXdfZGlzdGFuY2U6IGJw"
"eS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IlZpZXcgRGlzdGFuY2UiKQogICAgCiAgICBnZW9fc3Ax"
"X2Rpc3Q6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KCkKICAgIGdlb19zcDFfYW5nOiBicHkucHJvcHMu"
"RmxvYXRWZWN0b3JQcm9wZXJ0eShzaXplPTMpCiAgICBnZW9fc3AyX2Rpc3Q6IGJweS5wcm9wcy5GbG9h"
"dFByb3BlcnR5KCkKICAgIGdlb19zcDJfYW5nOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShz"
"aXplPTMpCiAgICBnZW9fc3AzX2Rpc3Q6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KCkKICAgIGdlb19z"
"cDNfYW5nOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShzaXplPTMpCiAgICAKICAgIGdlb19w"
"bGFuZV9hbmdsZTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAgZ2VvX3BsYW5lX2Rpc3Q6IGJw"
"eS5wcm9wcy5GbG9hdFByb3BlcnR5KCkKICAgIGdlb19wbGFuZV9mb290OiBicHkucHJvcHMuRmxvYXRW"
"ZWN0b3JQcm9wZXJ0eShzaXplPTMpCiAgICBnZW9fcGxhbmVfbm9ybWFsOiBicHkucHJvcHMuRmxvYXRW"
"ZWN0b3JQcm9wZXJ0eShzaXplPTMpCiAgICBnZW9fb3V0ZXJfcmFkaXVzOiBicHkucHJvcHMuRmxvYXRQ"
"cm9wZXJ0eSgpCgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgMy4g44Om44O844OG44Kj44Oq44OG44Kj6Zai5pWw"
"CiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PQpkZWYgZ2V0XzNkX3ZpZXdfY29udGV4dCgpOgogICAgZm9yIHdpbmRvdyBp"
"biBicHkuY29udGV4dC53aW5kb3dfbWFuYWdlci53aW5kb3dzOgogICAgICAgIGZvciBhcmVhIGluIHdp"
"bmRvdy5zY3JlZW4uYXJlYXM6CiAgICAgICAgICAgIGlmIGFyZWEudHlwZSA9PSAnVklFV18zRCc6CiAg"
"ICAgICAgICAgICAgICBmb3IgcmVnaW9uIGluIGFyZWEucmVnaW9uczoKICAgICAgICAgICAgICAgICAg"
"ICBpZiByZWdpb24udHlwZSA9PSAnV0lORE9XJzoKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu"
"IGFyZWEsIHJlZ2lvbiwgYXJlYS5zcGFjZXMuYWN0aXZlCiAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9u"
"ZQoKZGVmIGNyZWF0ZV9tYXRlcmlhbChuYW1lLCBjb2xvciwgYWxwaGEpOgogICAgbWF0ID0gYnB5LmRh"
"dGEubWF0ZXJpYWxzLmdldChuYW1lKQogICAgaWYgbm90IG1hdDoKICAgICAgICBtYXQgPSBicHkuZGF0"
"YS5tYXRlcmlhbHMubmV3KG5hbWUpCiAgICBtYXQudXNlX25vZGVzID0gVHJ1ZQogICAgCiAgICBpZiBo"
"YXNhdHRyKG1hdCwgImJsZW5kX21ldGhvZCIpOgogICAgICAgIG1hdC5ibGVuZF9tZXRob2QgPSAnQkxF"
"TkQnCiAgICBpZiBoYXNhdHRyKG1hdCwgInNoYWRvd19tZXRob2QiKToKICAgICAgICBtYXQuc2hhZG93"
"X21ldGhvZCA9ICdOT05FJwogICAgCiAgICBic2RmID0gbWF0Lm5vZGVfdHJlZS5ub2Rlcy5nZXQoIlBy"
"aW5jaXBsZWQgQlNERiIpCiAgICBpZiBic2RmOgogICAgICAgIGJzZGYuaW5wdXRzWyJCYXNlIENvbG9y"
"Il0uZGVmYXVsdF92YWx1ZSA9IGNvbG9yCiAgICAgICAgYnNkZi5pbnB1dHNbIkFscGhhIl0uZGVmYXVs"
"dF92YWx1ZSA9IGFscGhhCiAgICByZXR1cm4gbWF0CgpkZWYgY2FsY19nZW9fZGF0YShwcm9wcyk6CiAg"
"ICBkZWYgY2FsY19kaXN0X2FuZ2xlKHZlYyk6CiAgICAgICAgZGlzdCA9IHZlYy5sZW5ndGgKICAgICAg"
"ICBpZiBkaXN0ID09IDA6IHJldHVybiAwLCAwLCAwLCAwCiAgICAgICAgbiA9IHZlYy5ub3JtYWxpemVk"
"KCkKICAgICAgICBheCA9IG1hdGguZGVncmVlcyhtYXRoLmFjb3Mobi54KSkKICAgICAgICBheSA9IG1h"
"dGguZGVncmVlcyhtYXRoLmFjb3Mobi55KSkKICAgICAgICBheiA9IG1hdGguZGVncmVlcyhtYXRoLmFj"
"b3Mobi56KSkKICAgICAgICByZXR1cm4gZGlzdCwgYXgsIGF5LCBhegoKICAgIHAwID0gbWF0aHV0aWxz"
"LlZlY3RvcigoMCwgMCwgMCkpCiAgICBwMSA9IG1hdGh1dGlscy5WZWN0b3IocHJvcHMuc3AxX2FjdHVh"
"bF9wb3MpCiAgICBwMiA9IG1hdGh1dGlscy5WZWN0b3IocHJvcHMuc3AyX2FjdHVhbF9wb3MpCiAgICBw"
"MyA9IG1hdGh1dGlscy5WZWN0b3IocHJvcHMuc3AzX2FjdHVhbF9wb3MpCgogICAgZDEsIGF4MSwgYXkx"
"LCBhejEgPSBjYWxjX2Rpc3RfYW5nbGUocDEpCiAgICBwcm9wcy5nZW9fc3AxX2Rpc3QgPSBkMQogICAg"
"cHJvcHMuZ2VvX3NwMV9hbmcgPSAoYXgxLCBheTEsIGF6MSkKCiAgICBkMiwgYXgyLCBheTIsIGF6MiA9"
"IGNhbGNfZGlzdF9hbmdsZShwMikKICAgIHByb3BzLmdlb19zcDJfZGlzdCA9IGQyCiAgICBwcm9wcy5n"
"ZW9fc3AyX2FuZyA9IChheDIsIGF5MiwgYXoyKQoKICAgIGQzLCBheDMsIGF5MywgYXozID0gY2FsY19k"
"aXN0X2FuZ2xlKHAzKQogICAgcHJvcHMuZ2VvX3NwM19kaXN0ID0gZDMKICAgIHByb3BzLmdlb19zcDNf"
"YW5nID0gKGF4MywgYXkzLCBhejMpCiAgICAKICAgIHByb3BzLmdlb19vdXRlcl9yYWRpdXMgPSBtYXgo"
"ZDEsIGQyLCBkMykKCiAgICB2MSA9IHAxIC0gcDAKICAgIHYyID0gcDIgLSBwMAogICAgdjMgPSBwMiAt"
"IHAxCiAgICB2NCA9IHAzIC0gcDEKICAgIG4xID0gdjEuY3Jvc3ModjIpCiAgICBuMiA9IHYzLmNyb3Nz"
"KHY0KQogICAgCiAgICBpZiBuMS5sZW5ndGggPiAwLjAwMDEgYW5kIG4yLmxlbmd0aCA+IDAuMDAwMToK"
"ICAgICAgICBuMV9ub3JtID0gbjEubm9ybWFsaXplZCgpCiAgICAgICAgbjJfbm9ybSA9IG4yLm5vcm1h"
"bGl6ZWQoKQogICAgICAgIHByb3BzLmdlb19wbGFuZV9ub3JtYWwgPSBuMl9ub3JtCiAgICAgICAgZG90"
"ID0gbWF4KC0xLjAsIG1pbigxLjAsIG4xX25vcm0uZG90KG4yX25vcm0pKSkKICAgICAgICBwcm9wcy5n"
"ZW9fcGxhbmVfYW5nbGUgPSBtYXRoLmRlZ3JlZXMobWF0aC5hY29zKGRvdCkpCiAgICBlbHNlOgogICAg"
"ICAgIHByb3BzLmdlb19wbGFuZV9hbmdsZSA9IDAuMAogICAgICAgIHByb3BzLmdlb19wbGFuZV9ub3Jt"
"YWwgPSAoMCwwLDEpCgogICAgaWYgbjIubGVuZ3RoID4gMC4wMDAxOgogICAgICAgIHQgPSBuMl9ub3Jt"
"LmRvdChwMSkKICAgICAgICBIID0gbjJfbm9ybSAqIHQKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZGlz"
"dCA9IGFicyh0KQogICAgICAgIHByb3BzLmdlb19wbGFuZV9mb290ID0gSAogICAgZWxzZToKICAgICAg"
"ICBwcm9wcy5nZW9fcGxhbmVfZGlzdCA9IDAuMAogICAgICAgIHByb3BzLmdlb19wbGFuZV9mb290ID0g"
"KDAsIDAsIDApCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyA0LiDjgqrjg5rjg6zjg7zjgr/jg7wgKOWHpueQhuOD"
"reOCuOODg+OCrykKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNzIFRDVEFfT1RfVmlld1NlbGVjdGVkKGJweS50"
"eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS52aWV3X3NlbGVjdGVkIgogICAgYmxf"
"bGFiZWwgPSAi6YG45oqe44KS55S76Z2i5Lit5aSu44GrIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29u"
"dGV4dCk6CiAgICAgICAgYnB5Lm9wcy52aWV3M2Qudmlld19zZWxlY3RlZCgpCiAgICAgICAgcmV0dXJu"
"IHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9VcGRhdGVWaWV3SW5mbyhicHkudHlwZXMuT3BlcmF0"
"b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEudXBkYXRlX3ZpZXdfaW5mbyIKICAgIGJsX2xhYmVsID0g"
"IueUu+mdouaDheWgseabtOaWsCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAg"
"IGFyZWEsIHJlZ2lvbiwgc3BhY2UgPSBnZXRfM2Rfdmlld19jb250ZXh0KCkKICAgICAgICBpZiBub3Qg"
"c3BhY2U6CiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsnV0FSTklORyd9LCAiM0Tjg5Pjg6Xjg7zjgYzo"
"povjgaTjgYvjgorjgb7jgZvjgpMiKQogICAgICAgICAgICByZXR1cm4geydDQU5DRUxMRUQnfQogICAg"
"ICAgIHJ2M2QgPSBzcGFjZS5yZWdpb25fM2QKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0"
"YV9wcm9wcwogICAgICAgIHByb3BzLnZpZXdfY2VudGVyID0gcnYzZC52aWV3X2xvY2F0aW9uCiAgICAg"
"ICAgcHJvcHMudmlld19zaXplID0gKHJlZ2lvbi53aWR0aCwgcmVnaW9uLmhlaWdodCkKICAgICAgICBp"
"ZiBydjNkLnZpZXdfcGVyc3BlY3RpdmUgPT0gJ1BFUlNQJzoKICAgICAgICAgICAgcHJvcHMudmlld19k"
"aXN0YW5jZSA9IHJ2M2Qudmlld19kaXN0YW5jZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHByb3Bz"
"LnZpZXdfZGlzdGFuY2UgPSAwLjAgCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENU"
"QV9PVF9Db3B5Vmlld0luZm8oYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3Rh"
"LmNvcHlfdmlld19pbmZvIgogICAgYmxfbGFiZWwgPSAi44OT44Ol44O85oOF5aCx44KS44Kz44OU44O8"
"IgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNj"
"ZW5lLnRjdGFfcHJvcHMKICAgICAgICBsaW5lcyA9IFsKICAgICAgICAgICAgZiJDZW50ZXI6IFg9e3By"
"b3BzLnZpZXdfY2VudGVyLng6LjFmfSwgWT17cHJvcHMudmlld19jZW50ZXIueTouMWZ9LCBaPXtwcm9w"
"cy52aWV3X2NlbnRlci56Oi4xZn0iLAogICAgICAgICAgICBmIlNpemU6IFc9e3Byb3BzLnZpZXdfc2l6"
"ZVswXX0sIEg9e3Byb3BzLnZpZXdfc2l6ZVsxXX0iLAogICAgICAgICAgICBmIkRpc3RhbmNlOiB7cHJv"
"cHMudmlld19kaXN0YW5jZTouMWZ9IiBpZiBwcm9wcy52aWV3X2Rpc3RhbmNlID4gMCBlbHNlICJEaXN0"
"YW5jZTogTi9BIgogICAgICAgIF0KICAgICAgICBjb250ZXh0LndpbmRvd19tYW5hZ2VyLmNsaXBib2Fy"
"ZCA9ICJcbiIuam9pbihsaW5lcykKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuOCs+ODlOOD"
"vOOBl+OBvuOBl+OBnyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9D"
"cmVhdGVPYmplY3RzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5jcmVh"
"dGVfb2JqZWN0cyIKICAgIGJsX2xhYmVsID0gIuS9nOaIkCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNv"
"bnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgCiAg"
"ICAgICAgcGFyZW50X2NvbCA9IGJweS5kYXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09MTEVDVElP"
"Tl9OQU1FKQogICAgICAgIGlmIG5vdCBwYXJlbnRfY29sOgogICAgICAgICAgICBwYXJlbnRfY29sID0g"
"YnB5LmRhdGEuY29sbGVjdGlvbnMubmV3KFBBUkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAgICAg"
"IGNvbnRleHQuc2NlbmUuY29sbGVjdGlvbi5jaGlsZHJlbi5saW5rKHBhcmVudF9jb2wpCiAgICAgICAg"
"ICAgIAogICAgICAgIHN1Yl9jb2wgPSBicHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoU1VCX0NPTExFQ1RJ"
"T05fTkFNRSkKICAgICAgICBpZiBub3Qgc3ViX2NvbDoKICAgICAgICAgICAgc3ViX2NvbCA9IGJweS5k"
"YXRhLmNvbGxlY3Rpb25zLm5ldyhTVUJfQ09MTEVDVElPTl9OQU1FKQogICAgICAgICAgICBwYXJlbnRf"
"Y29sLmNoaWxkcmVuLmxpbmsoc3ViX2NvbCkKCiAgICAgICAgbmFtZXNfdG9fZGVsZXRlID0gWwogICAg"
"ICAgICAgICBUT1JVU19TS0VMRVRPTl9OQU1FLCBTUEhFUkVfMV9OQU1FLCBTUEhFUkVfMl9OQU1FLCBT"
"UEhFUkVfM19OQU1FLCAKICAgICAgICAgICAgVFJJQU5HTEVfQV9OQU1FLCBUUklBTkdMRV9CX05BTUUs"
"IEFSUk9XX05BTUUsIENJUkNMRV9OQU1FLCAKICAgICAgICAgICAgRElTVF9TUEhFUkVfTkFNRSwgT1VU"
"RVJfU1BIRVJFX05BTUUsIEhFTUlTUEhFUkVfTkFNRQogICAgICAgIF0KICAgICAgICBmb3Igb2JqX25h"
"bWUgaW4gbmFtZXNfdG9fZGVsZXRlOgogICAgICAgICAgICBpZiBvYmpfbmFtZSBpbiBicHkuZGF0YS5v"
"YmplY3RzOgogICAgICAgICAgICAgICAgYnB5LmRhdGEub2JqZWN0cy5yZW1vdmUoYnB5LmRhdGEub2Jq"
"ZWN0c1tvYmpfbmFtZV0sIGRvX3VubGluaz1UcnVlKQoKICAgICAgICAjIOmqqOagvOOBqOWfuuacrOeQ"
"g+S9k+ODu+S4ieinkuW9ouOBruS9nOaIkAogICAgICAgIG1lc2ggPSBicHkuZGF0YS5tZXNoZXMubmV3"
"KFRPUlVTX1NLRUxFVE9OX05BTUUpCiAgICAgICAgb2JqID0gYnB5LmRhdGEub2JqZWN0cy5uZXcoVE9S"
"VVNfU0tFTEVUT05fTkFNRSwgbWVzaCkKICAgICAgICBzdWJfY29sLm9iamVjdHMubGluayhvYmopCiAg"
"ICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfY3ViZShibSwgc2l6"
"ZT0xMC4wKQogICAgICAgIGJtZXNoLm9wcy5kZWxldGUoYm0sIGdlb209Ym0uZmFjZXMsIGNvbnRleHQ9"
"J0ZBQ0VTJykKICAgICAgICBibS50b19tZXNoKG1lc2gpCiAgICAgICAgYm0uZnJlZSgpCiAgICAgICAg"
"c2tpbl9tb2QgPSBvYmoubW9kaWZpZXJzLm5ldyhuYW1lPSJTa2luIiwgdHlwZT0nU0tJTicpCiAgICAg"
"ICAgc3ViX21vZCA9IG9iai5tb2RpZmllcnMubmV3KG5hbWU9IlN1YmRpdmlzaW9uIiwgdHlwZT0nU1VC"
"U1VSRicpCiAgICAgICAgc3ViX21vZC5sZXZlbHMgPSAyCiAgICAgICAgZm9yIHYgaW4gb2JqLmRhdGEu"
"c2tpbl92ZXJ0aWNlc1swXS5kYXRhOiB2LnJhZGl1cyA9ICgwLjIsIDAuMikKICAgICAgICBvYmouYWN0"
"aXZlX21hdGVyaWFsID0gY3JlYXRlX21hdGVyaWFsKFBSRUZJWCsiTWF0X1RvcnVzIiwgcHJvcHMudG9y"
"dXNfY29sb3IsIHByb3BzLnRvcnVzX2FscGhhKQoKICAgICAgICBkZWYgZ2V0X3Bvcyhtb2RlLCBwcm9w"
"X3Bvcyk6CiAgICAgICAgICAgIGlmIG1vZGUgPT0gJ1JBTkRPTSc6IHJldHVybiAocmFuZG9tLnVuaWZv"
"cm0oLTUsIDUpLCByYW5kb20udW5pZm9ybSgtNSwgNSksIHJhbmRvbS51bmlmb3JtKC01LCA1KSkKICAg"
"ICAgICAgICAgcmV0dXJuIHByb3BfcG9zCgogICAgICAgIHByb3BzLnNwMV9hY3R1YWxfcG9zID0gZ2V0"
"X3Bvcyhwcm9wcy5zcDFfbW9kZSwgcHJvcHMuc3AxX3BvcykKICAgICAgICBwcm9wcy5zcDJfYWN0dWFs"
"X3BvcyA9IGdldF9wb3MocHJvcHMuc3AyX21vZGUsIHByb3BzLnNwMl9wb3MpCiAgICAgICAgcHJvcHMu"
"c3AzX2FjdHVhbF9wb3MgPSBnZXRfcG9zKHByb3BzLnNwM19tb2RlLCBwcm9wcy5zcDNfcG9zKQoKICAg"
"ICAgICBkZWYgY3JlYXRlX3NwaGVyZShuYW1lLCBsb2MpOgogICAgICAgICAgICBtZXNoID0gYnB5LmRh"
"dGEubWVzaGVzLm5ldyhuYW1lKQogICAgICAgICAgICBvYmogPSBicHkuZGF0YS5vYmplY3RzLm5ldyhu"
"YW1lLCBtZXNoKQogICAgICAgICAgICBzdWJfY29sLm9iamVjdHMubGluayhvYmopCiAgICAgICAgICAg"
"IGJtID0gYm1lc2gubmV3KCkKICAgICAgICAgICAgYm1lc2gub3BzLmNyZWF0ZV91dnNwaGVyZShibSwg"
"dV9zZWdtZW50cz0xNiwgdl9zZWdtZW50cz04LCByYWRpdXM9MC41KQogICAgICAgICAgICBibS50b19t"
"ZXNoKG1lc2gpCiAgICAgICAgICAgIGJtLmZyZWUoKQogICAgICAgICAgICBvYmoubG9jYXRpb24gPSBs"
"b2MKICAgICAgICAgICAgcmV0dXJuIG9iagoKICAgICAgICBjcmVhdGVfc3BoZXJlKFNQSEVSRV8xX05B"
"TUUsIHByb3BzLnNwMV9hY3R1YWxfcG9zKQogICAgICAgIGNyZWF0ZV9zcGhlcmUoU1BIRVJFXzJfTkFN"
"RSwgcHJvcHMuc3AyX2FjdHVhbF9wb3MpCiAgICAgICAgY3JlYXRlX3NwaGVyZShTUEhFUkVfM19OQU1F"
"LCBwcm9wcy5zcDNfYWN0dWFsX3BvcykKCiAgICAgICAgZGVmIGNyZWF0ZV90cmlhbmdsZShuYW1lLCBw"
"MSwgcDIsIHAzLCBjb2xvciwgYWxwaGEsIHRoaWNrbmVzcyk6CiAgICAgICAgICAgIG1lc2ggPSBicHku"
"ZGF0YS5tZXNoZXMubmV3KG5hbWUpCiAgICAgICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVjdHMubmV3"
"KG5hbWUsIG1lc2gpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9iaikKICAgICAgICAg"
"ICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICB2MSwgdjIsIHYzID0gYm0udmVydHMubmV3KHAx"
"KSwgYm0udmVydHMubmV3KHAyKSwgYm0udmVydHMubmV3KHAzKQogICAgICAgICAgICBibS5mYWNlcy5u"
"ZXcoKHYxLCB2MiwgdjMpKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2gpCiAgICAgICAgICAgIGJt"
"LmZyZWUoKQogICAgICAgICAgICBzb2wgPSBvYmoubW9kaWZpZXJzLm5ldyhuYW1lPSJTb2xpZGlmeSIs"
"IHR5cGU9J1NPTElESUZZJykKICAgICAgICAgICAgc29sLnRoaWNrbmVzcyA9IHRoaWNrbmVzcwogICAg"
"ICAgICAgICBvYmouYWN0aXZlX21hdGVyaWFsID0gY3JlYXRlX21hdGVyaWFsKFBSRUZJWCsiTWF0XyIr"
"bmFtZSwgY29sb3IsIGFscGhhKQoKICAgICAgICBjcmVhdGVfdHJpYW5nbGUoVFJJQU5HTEVfQV9OQU1F"
"LCAoMCwwLDApLCBwcm9wcy5zcDFfYWN0dWFsX3BvcywgcHJvcHMuc3AyX2FjdHVhbF9wb3MsIHByb3Bz"
"LnRyaUFfY29sb3IsIHByb3BzLnRyaV9hbHBoYSwgcHJvcHMudHJpX3RoaWNrbmVzcykKICAgICAgICBj"
"cmVhdGVfdHJpYW5nbGUoVFJJQU5HTEVfQl9OQU1FLCBwcm9wcy5zcDFfYWN0dWFsX3BvcywgcHJvcHMu"
"c3AyX2FjdHVhbF9wb3MsIHByb3BzLnNwM19hY3R1YWxfcG9zLCBwcm9wcy50cmlCX2NvbG9yLCBwcm9w"
"cy50cmlfYWxwaGEsIHByb3BzLnRyaV90aGlja25lc3MpCgogICAgICAgICMg5bm+5L2V6KiI566XCiAg"
"ICAgICAgY2FsY19nZW9fZGF0YShwcm9wcykKCiAgICAgICAgIyDoppbopprljJbopoHntKDjga7kvZzm"
"iJAKICAgICAgICBkaXN0ID0gcHJvcHMuZ2VvX3BsYW5lX2Rpc3QKICAgICAgICBpZiBkaXN0ID4gMC4w"
"MToKICAgICAgICAgICAgIyAxLiDnn6LljbAKICAgICAgICAgICAgbWVzaF9hcnIgPSBicHkuZGF0YS5t"
"ZXNoZXMubmV3KEFSUk9XX05BTUUpCiAgICAgICAgICAgIG9ial9hcnIgPSBicHkuZGF0YS5vYmplY3Rz"
"Lm5ldyhBUlJPV19OQU1FLCBtZXNoX2FycikKICAgICAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmso"
"b2JqX2FycikKICAgICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICByID0gcHJvcHMu"
"YXJyb3dfdGhpY2tuZXNzCiAgICAgICAgICAgIGhlYWRfbCA9IG1pbihkaXN0ICogMC4zLCByICogNC4w"
"KQogICAgICAgICAgICBib2R5X2wgPSBkaXN0IC0gaGVhZF9sCiAgICAgICAgICAgIGJtZXNoLm9wcy5j"
"cmVhdGVfY29uZShibSwgY2FwX2VuZHM9VHJ1ZSwgY2FwX3RyaXM9RmFsc2UsIHNlZ21lbnRzPTE2LCBy"
"YWRpdXMxPXIsIHJhZGl1czI9ciwgZGVwdGg9Ym9keV9sKQogICAgICAgICAgICBnZW9tX2hlYWQgPSBi"
"bWVzaC5vcHMuY3JlYXRlX2NvbmUoYm0sIGNhcF9lbmRzPVRydWUsIGNhcF90cmlzPUZhbHNlLCBzZWdt"
"ZW50cz0xNiwgcmFkaXVzMT1yKjIuNSwgcmFkaXVzMj0wLjAsIGRlcHRoPWhlYWRfbCkKICAgICAgICAg"
"ICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9W3YgZm9yIHYgaW4gZ2VvbV9oZWFkWyd2ZXJ0"
"cyddXSwgdmVjPSgwLCAwLCBib2R5X2wvMiArIGhlYWRfbC8yKSkKICAgICAgICAgICAgYm1lc2gub3Bz"
"LnRyYW5zbGF0ZShibSwgdmVydHM9Ym0udmVydHMsIHZlYz0oMCwgMCwgYm9keV9sLzIpKQogICAgICAg"
"ICAgICBibS50b19tZXNoKG1lc2hfYXJyKQogICAgICAgICAgICBibS5mcmVlKCkKICAgICAgICAgICAg"
"CiAgICAgICAgICAgIG9ial9hcnIubG9jYXRpb24gPSAoMCwgMCwgMCkKICAgICAgICAgICAgZm9vdF92"
"ZWMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLmdlb19wbGFuZV9mb290KQogICAgICAgICAgICBvYmpf"
"YXJyLnJvdGF0aW9uX21vZGUgPSAnUVVBVEVSTklPTicKICAgICAgICAgICAgb2JqX2Fyci5yb3RhdGlv"
"bl9xdWF0ZXJuaW9uID0gbWF0aHV0aWxzLlZlY3RvcigoMCwwLDEpKS5yb3RhdGlvbl9kaWZmZXJlbmNl"
"KGZvb3RfdmVjLm5vcm1hbGl6ZWQoKSkKICAgICAgICAgICAgb2JqX2Fyci5hY3RpdmVfbWF0ZXJpYWwg"
"PSBjcmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRfQXJyb3ciLCBwcm9wcy5hcnJvd19jb2xvciwgMS4w"
"KQogICAgICAgICAgICBvYmpfYXJyLmhpZGVfdmlld3BvcnQgPSBvYmpfYXJyLmhpZGVfcmVuZGVyID0g"
"bm90IHByb3BzLnNob3dfYXJyb3cKCiAgICAgICAgICAgICMgMi4g5YaG55ukCiAgICAgICAgICAgIG1l"
"c2hfY2lyID0gYnB5LmRhdGEubWVzaGVzLm5ldyhDSVJDTEVfTkFNRSkKICAgICAgICAgICAgb2JqX2Np"
"ciA9IGJweS5kYXRhLm9iamVjdHMubmV3KENJUkNMRV9OQU1FLCBtZXNoX2NpcikKICAgICAgICAgICAg"
"c3ViX2NvbC5vYmplY3RzLmxpbmsob2JqX2NpcikKICAgICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQog"
"ICAgICAgICAgICBibWVzaC5vcHMuY3JlYXRlX2NpcmNsZShibSwgY2FwX2VuZHM9VHJ1ZSwgY2FwX3Ry"
"aXM9RmFsc2UsIHNlZ21lbnRzPTMyLCByYWRpdXM9cHJvcHMuY2lyY2xlX3JhZGl1cykKICAgICAgICAg"
"ICAgYm0udG9fbWVzaChtZXNoX2NpcikKICAgICAgICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAgIAog"
"ICAgICAgICAgICBvYmpfY2lyLmxvY2F0aW9uID0gcHJvcHMuZ2VvX3BsYW5lX2Zvb3QKICAgICAgICAg"
"ICAgbm9ybWFsX3ZlYyA9IG1hdGh1dGlscy5WZWN0b3IocHJvcHMuZ2VvX3BsYW5lX25vcm1hbCkKICAg"
"ICAgICAgICAgaWYgbm9ybWFsX3ZlYy5sZW5ndGggPiAwOgogICAgICAgICAgICAgICAgb2JqX2Npci5y"
"b3RhdGlvbl9tb2RlID0gJ1FVQVRFUk5JT04nCiAgICAgICAgICAgICAgICBvYmpfY2lyLnJvdGF0aW9u"
"X3F1YXRlcm5pb24gPSBtYXRodXRpbHMuVmVjdG9yKCgwLDAsMSkpLnJvdGF0aW9uX2RpZmZlcmVuY2Uo"
"bm9ybWFsX3ZlYykKICAgICAgICAgICAgc29sID0gb2JqX2Npci5tb2RpZmllcnMubmV3KG5hbWU9IlNv"
"bGlkaWZ5IiwgdHlwZT0nU09MSURJRlknKQogICAgICAgICAgICBzb2wudGhpY2tuZXNzID0gcHJvcHMu"
"Y2lyY2xlX3RoaWNrbmVzcwogICAgICAgICAgICBvYmpfY2lyLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0"
"ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9DaXJjbGUiLCBwcm9wcy5jaXJjbGVfY29sb3IsIHByb3BzLmNp"
"cmNsZV9hbHBoYSkKICAgICAgICAgICAgb2JqX2Npci5oaWRlX3ZpZXdwb3J0ID0gb2JqX2Npci5oaWRl"
"X3JlbmRlciA9IG5vdCBwcm9wcy5zaG93X2NpcmNsZQoKICAgICAgICAgICAgIyAzLiDpgaDjgZbjgYvj"
"govljYrnkIMgKE5FVykKICAgICAgICAgICAgbWVzaF9oZW1pID0gYnB5LmRhdGEubWVzaGVzLm5ldyhI"
"RU1JU1BIRVJFX05BTUUpCiAgICAgICAgICAgIG9ial9oZW1pID0gYnB5LmRhdGEub2JqZWN0cy5uZXco"
"SEVNSVNQSEVSRV9OQU1FLCBtZXNoX2hlbWkpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5r"
"KG9ial9oZW1pKQogICAgICAgICAgICAKICAgICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAg"
"ICAgICBibWVzaC5vcHMuY3JlYXRlX3V2c3BoZXJlKGJtLCB1X3NlZ21lbnRzPTMyLCB2X3NlZ21lbnRz"
"PTE2LCByYWRpdXM9cHJvcHMuY2lyY2xlX3JhZGl1cykKICAgICAgICAgICAgIyBaIDwgMCDjga7poILn"
"grnjgpLliYrpmaTjgZfjgabljYrnkIPjgavjgZnjgosgKCta5pa55ZCR44Gr6Iao44KJ44KAKQogICAg"
"ICAgICAgICB2ZXJ0c190b19kZWxldGUgPSBbdiBmb3IgdiBpbiBibS52ZXJ0cyBpZiB2LmNvLnogPCAt"
"MC4wMDFdCiAgICAgICAgICAgIGJtZXNoLm9wcy5kZWxldGUoYm0sIGdlb209dmVydHNfdG9fZGVsZXRl"
"LCBjb250ZXh0PSdWRVJUUycpCiAgICAgICAgICAgIAogICAgICAgICAgICAjIOW6lemdouOCkuWhnuOB"
"kOioreWumuOBjE9O44Gu5aC05ZCICiAgICAgICAgICAgIGlmIHByb3BzLmhlbWlfZmlsbF9ib3R0b206"
"CiAgICAgICAgICAgICAgICBib3VuZGFyeV9lZGdlcyA9IFtlIGZvciBlIGluIGJtLmVkZ2VzIGlmIGxl"
"bihlLmxpbmtfZmFjZXMpID09IDFdCiAgICAgICAgICAgICAgICBpZiBib3VuZGFyeV9lZGdlczoKICAg"
"ICAgICAgICAgICAgICAgICBibWVzaC5vcHMuaG9sZXNfZmlsbChibSwgZWRnZXM9Ym91bmRhcnlfZWRn"
"ZXMpCiAgICAgICAgICAgIAogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfaGVtaSkKICAgICAgICAg"
"ICAgYm0uZnJlZSgpCiAgICAgICAgICAgIAogICAgICAgICAgICBvYmpfaGVtaS5sb2NhdGlvbiA9IHBy"
"b3BzLmdlb19wbGFuZV9mb290CiAgICAgICAgICAgIAogICAgICAgICAgICAjIOWQkeOBje+8muWOn+eC"
"ueOBi+OCiemBoOOBluOBi+OCi+aWueWQke+8iOWegue3muOBrui2s+aWueWQke+8ieOBq+WQkeOBkeOC"
"iwogICAgICAgICAgICB1cF9kaXIgPSBmb290X3ZlYy5ub3JtYWxpemVkKCkgaWYgZm9vdF92ZWMubGVu"
"Z3RoID4gMC4wMDAxIGVsc2Ugbm9ybWFsX3ZlYwogICAgICAgICAgICBvYmpfaGVtaS5yb3RhdGlvbl9t"
"b2RlID0gJ1FVQVRFUk5JT04nCiAgICAgICAgICAgIG9ial9oZW1pLnJvdGF0aW9uX3F1YXRlcm5pb24g"
"PSBtYXRodXRpbHMuVmVjdG9yKCgwLDAsMSkpLnJvdGF0aW9uX2RpZmZlcmVuY2UodXBfZGlyKQogICAg"
"ICAgICAgICAKICAgICAgICAgICAgZm9yIHBvbHkgaW4gbWVzaF9oZW1pLnBvbHlnb25zOiBwb2x5LnVz"
"ZV9zbW9vdGggPSBUcnVlCiAgICAgICAgICAgIG9ial9oZW1pLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0"
"ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9IZW1pIiwgcHJvcHMuaGVtaV9jb2xvciwgcHJvcHMuaGVtaV9h"
"bHBoYSkKICAgICAgICAgICAgb2JqX2hlbWkuaGlkZV92aWV3cG9ydCA9IG9ial9oZW1pLmhpZGVfcmVu"
"ZGVyID0gbm90IHByb3BzLnNob3dfaGVtaXNwaGVyZQoKICAgICAgICAgICAgIyA0LiDmnIDnn63ot53p"
"m6Ljga7pgI/mmI7nkIPkvZMo5YaF5q67KQogICAgICAgICAgICBtZXNoX3NwaCA9IGJweS5kYXRhLm1l"
"c2hlcy5uZXcoRElTVF9TUEhFUkVfTkFNRSkKICAgICAgICAgICAgb2JqX3NwaCA9IGJweS5kYXRhLm9i"
"amVjdHMubmV3KERJU1RfU1BIRVJFX05BTUUsIG1lc2hfc3BoKQogICAgICAgICAgICBzdWJfY29sLm9i"
"amVjdHMubGluayhvYmpfc3BoKQogICAgICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAgICAgICAg"
"IGJtZXNoLm9wcy5jcmVhdGVfdXZzcGhlcmUoYm0sIHVfc2VnbWVudHM9MzIsIHZfc2VnbWVudHM9MTYs"
"IHJhZGl1cz1kaXN0KQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfc3BoKQogICAgICAgICAgICBi"
"bS5mcmVlKCkKICAgICAgICAgICAgb2JqX3NwaC5sb2NhdGlvbiA9ICgwLCAwLCAwKQogICAgICAgICAg"
"ICBmb3IgcG9seSBpbiBtZXNoX3NwaC5wb2x5Z29uczogcG9seS51c2Vfc21vb3RoID0gVHJ1ZQogICAg"
"ICAgICAgICBvYmpfc3BoLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1h"
"dF9EaXN0U3BoZXJlIiwgcHJvcHMuZGlzdF9zcGhlcmVfY29sb3IsIHByb3BzLmRpc3Rfc3BoZXJlX2Fs"
"cGhhKQogICAgICAgICAgICBvYmpfc3BoLmhpZGVfdmlld3BvcnQgPSBvYmpfc3BoLmhpZGVfcmVuZGVy"
"ID0gbm90IHByb3BzLnNob3dfZGlzdF9zcGhlcmUKCiAgICAgICAgIyA1LiDlpJbmrrvjga7lpKfjgY3j"
"garpgI/mmI7nkIPkvZMKICAgICAgICBvdXRlcl9yID0gcHJvcHMuZ2VvX291dGVyX3JhZGl1cwogICAg"
"ICAgIGlmIG91dGVyX3IgPiAwOgogICAgICAgICAgICBtZXNoX291dCA9IGJweS5kYXRhLm1lc2hlcy5u"
"ZXcoT1VURVJfU1BIRVJFX05BTUUpCiAgICAgICAgICAgIG9ial9vdXQgPSBicHkuZGF0YS5vYmplY3Rz"
"Lm5ldyhPVVRFUl9TUEhFUkVfTkFNRSwgbWVzaF9vdXQpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0"
"cy5saW5rKG9ial9vdXQpCiAgICAgICAgICAgIGJtID0gYm1lc2gubmV3KCkKICAgICAgICAgICAgYm1l"
"c2gub3BzLmNyZWF0ZV91dnNwaGVyZShibSwgdV9zZWdtZW50cz0zMiwgdl9zZWdtZW50cz0xNiwgcmFk"
"aXVzPW91dGVyX3IpCiAgICAgICAgICAgIGJtLnRvX21lc2gobWVzaF9vdXQpCiAgICAgICAgICAgIGJt"
"LmZyZWUoKQogICAgICAgICAgICBvYmpfb3V0LmxvY2F0aW9uID0gKDAsIDAsIDApCiAgICAgICAgICAg"
"IGZvciBwb2x5IGluIG1lc2hfb3V0LnBvbHlnb25zOiBwb2x5LnVzZV9zbW9vdGggPSBUcnVlCiAgICAg"
"ICAgICAgIG9ial9vdXQuYWN0aXZlX21hdGVyaWFsID0gY3JlYXRlX21hdGVyaWFsKFBSRUZJWCsiTWF0"
"X091dGVyU3BoZXJlIiwgcHJvcHMub3V0ZXJfc3BoZXJlX2NvbG9yLCBwcm9wcy5vdXRlcl9zcGhlcmVf"
"YWxwaGEpCiAgICAgICAgICAgIG9ial9vdXQuaGlkZV92aWV3cG9ydCA9IG9ial9vdXQuaGlkZV9yZW5k"
"ZXIgPSBub3QgcHJvcHMuc2hvd19vdXRlcl9zcGhlcmUKCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQn"
"fQoKY2xhc3MgVENUQV9PVF9EZXRhY2hPYmplY3RzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9p"
"ZG5hbWUgPSAidGN0YS5kZXRhY2hfb2JqZWN0cyIKICAgIGJsX2xhYmVsID0gIuOCouODieOCquODs+OB"
"i+OCieWIh+OCiumbouOBlyIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHBh"
"cmVudF9jb2wgPSBicHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoUEFSRU5UX0NPTExFQ1RJT05fTkFNRSkK"
"ICAgICAgICBpZiBwYXJlbnRfY29sOgogICAgICAgICAgICBwYXJlbnRfY29sLm5hbWUgPSBQQVJFTlRf"
"Q09MTEVDVElPTl9OQU1FICsgIl9EZXRhY2hlZCIKICAgICAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZP"
"J30sICLliIfjgorpm6LjgZfjgb7jgZfjgZ8iKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNs"
"YXNzIFRDVEFfT1RfUmVzZXRQcm9wcyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0g"
"InRjdGEucmVzZXRfcHJvcHMiCiAgICBibF9sYWJlbCA9ICLliJ3mnJ/lgKTjgavmiLvjgZkiCiAgICBk"
"ZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0"
"YV9wcm9wcwogICAgICAgIHJlc2V0X2xpc3QgPSBbCiAgICAgICAgICAgICJ0b3J1c19jb2xvciIsICJ0"
"b3J1c19hbHBoYSIsICJ0cmlfdGhpY2tuZXNzIiwgInRyaV9hbHBoYSIsICJ0cmlBX2NvbG9yIiwgInRy"
"aUJfY29sb3IiLCAKICAgICAgICAgICAgInNob3dfYXJyb3ciLCAic2hvd19jaXJjbGUiLCAic2hvd19k"
"aXN0X3NwaGVyZSIsICJzaG93X291dGVyX3NwaGVyZSIsICJzaG93X2hlbWlzcGhlcmUiLAogICAgICAg"
"ICAgICAiYXJyb3dfdGhpY2tuZXNzIiwgImFycm93X2NvbG9yIiwgImNpcmNsZV9yYWRpdXMiLCAiY2ly"
"Y2xlX3RoaWNrbmVzcyIsICJjaXJjbGVfY29sb3IiLCAiY2lyY2xlX2FscGhhIiwKICAgICAgICAgICAg"
"ImRpc3Rfc3BoZXJlX2NvbG9yIiwgImRpc3Rfc3BoZXJlX2FscGhhIiwgIm91dGVyX3NwaGVyZV9jb2xv"
"ciIsICJvdXRlcl9zcGhlcmVfYWxwaGEiLAogICAgICAgICAgICAiaGVtaV9maWxsX2JvdHRvbSIsICJo"
"ZW1pX2NvbG9yIiwgImhlbWlfYWxwaGEiCiAgICAgICAgXQogICAgICAgIGZvciBwIGluIHJlc2V0X2xp"
"c3Q6CiAgICAgICAgICAgIHByb3BzLnByb3BlcnR5X3Vuc2V0KHApCiAgICAgICAgcmV0dXJuIHsnRklO"
"SVNIRUQnfQoKY2xhc3MgVENUQV9PVF9SYW5kb21SZXNldChicHkudHlwZXMuT3BlcmF0b3IpOgogICAg"
"YmxfaWRuYW1lID0gInRjdGEucmFuZG9tX3Jlc2V0IgogICAgYmxfbGFiZWwgPSAi44Op44Oz44OA44Og"
"5YaN6KiI566X77yG5pu05pawIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAg"
"YnB5Lm9wcy50Y3RhLmNyZWF0ZV9vYmplY3RzKCkKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9Cgpj"
"bGFzcyBUQ1RBX09UX0NvcHlHZW9JbmZvKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUg"
"PSAidGN0YS5jb3B5X2dlb19pbmZvIgogICAgYmxfbGFiZWwgPSAi5bm+5L2V5oOF5aCx44KS44Kz44OU"
"44O8IgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcHJvcHMgPSBjb250ZXh0"
"LnNjZW5lLnRjdGFfcHJvcHMKICAgICAgICBsaW5lcyA9IFsKICAgICAgICAgICAgZiJTcDEgRGlzdDog"
"e3Byb3BzLmdlb19zcDFfZGlzdDouMWZ9LCBBbmc6IFg9e3Byb3BzLmdlb19zcDFfYW5nWzBdOi4xZn0s"
"IFk9e3Byb3BzLmdlb19zcDFfYW5nWzFdOi4xZn0sIFo9e3Byb3BzLmdlb19zcDFfYW5nWzJdOi4xZn0i"
"LAogICAgICAgICAgICBmIlNwMiBEaXN0OiB7cHJvcHMuZ2VvX3NwMl9kaXN0Oi4xZn0sIEFuZzogWD17"
"cHJvcHMuZ2VvX3NwMl9hbmdbMF06LjFmfSwgWT17cHJvcHMuZ2VvX3NwMl9hbmdbMV06LjFmfSwgWj17"
"cHJvcHMuZ2VvX3NwMl9hbmdbMl06LjFmfSIsCiAgICAgICAgICAgIGYiU3AzIERpc3Q6IHtwcm9wcy5n"
"ZW9fc3AzX2Rpc3Q6LjFmfSwgQW5nOiBYPXtwcm9wcy5nZW9fc3AzX2FuZ1swXTouMWZ9LCBZPXtwcm9w"
"cy5nZW9fc3AzX2FuZ1sxXTouMWZ9LCBaPXtwcm9wcy5nZW9fc3AzX2FuZ1syXTouMWZ9IiwKICAgICAg"
"ICAgICAgZiJQbGFuZSBDcm9zcyBBbmdsZToge3Byb3BzLmdlb19wbGFuZV9hbmdsZTouMWZ9IiwKICAg"
"ICAgICAgICAgZiJTaG9ydGVzdCBEaXN0IHRvIFBsYW5lIEIgKElubmVyIFJhZGl1cyk6IHtwcm9wcy5n"
"ZW9fcGxhbmVfZGlzdDouMWZ9IiwKICAgICAgICAgICAgZiJTaG9ydGVzdCBGb290IFBvczogWD17cHJv"
"cHMuZ2VvX3BsYW5lX2Zvb3RbMF06LjFmfSwgWT17cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMV06LjFmfSwg"
"Wj17cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMl06LjFmfSIsCiAgICAgICAgICAgIGYiT3V0ZXIgU2hlbGwg"
"UmFkaXVzIChNYXggRGlzdCk6IHtwcm9wcy5nZW9fb3V0ZXJfcmFkaXVzOi4xZn0iCiAgICAgICAgXQog"
"ICAgICAgIGNvbnRleHQud2luZG93X21hbmFnZXIuY2xpcGJvYXJkID0gIlxuIi5qb2luKGxpbmVzKQog"
"ICAgICAgIHNlbGYucmVwb3J0KHsnSU5GTyd9LCAi44Kz44OU44O844GX44G+44GX44GfIikKICAgICAg"
"ICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBUQ1RBX09UX09wZW5MaW5rKGJweS50eXBlcy5PcGVy"
"YXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5vcGVuX2xpbmsiCiAgICBibF9sYWJlbCA9ICLjg6rj"
"g7Pjgq/jgpLplovjgY8iCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBicHku"
"b3BzLndtLnVybF9vcGVuKHVybD0iaHR0cHM6Ly93d3cuYmxlbmRlci5vcmcvIikKICAgICAgICByZXR1"
"cm4geydGSU5JU0hFRCd9CgpjbGFzcyBUQ1RBX09UX0RlbGV0ZUFsbChicHkudHlwZXMuT3BlcmF0b3Ip"
"OgogICAgYmxfaWRuYW1lID0gInRjdGEuZGVsZXRlX2FsbCIKICAgIGJsX2xhYmVsID0gIumWoumAo+WF"
"qOWJiumZpCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHBhcmVudF9jb2wg"
"PSBicHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoUEFSRU5UX0NPTExFQ1RJT05fTkFNRSkKICAgICAgICBp"
"ZiBwYXJlbnRfY29sOgogICAgICAgICAgICBmb3Igb2JqIGluIHBhcmVudF9jb2wuYWxsX29iamVjdHM6"
"CiAgICAgICAgICAgICAgICBicHkuZGF0YS5vYmplY3RzLnJlbW92ZShvYmosIGRvX3VubGluaz1UcnVl"
"KQogICAgICAgICAgICBicHkuZGF0YS5jb2xsZWN0aW9ucy5yZW1vdmUocGFyZW50X2NvbCkKICAgICAg"
"ICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLlhajliYrpmaTjgZfjgb7jgZfjgZ8iKQogICAgICAg"
"IHJldHVybiB7J0ZJTklTSEVEJ30KCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyA1LiBVSSDjg5Hjg43jg6vlrprn"
"vqkKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09CmNsYXNzIFRDVEFfUFRfUGFuZWxCYXNlOgogICAgYmxfc3BhY2VfdHlw"
"ZSA9ICdWSUVXXzNEJwogICAgYmxfcmVnaW9uX3R5cGUgPSAnVUknCiAgICBibF9jYXRlZ29yeSA9ICJU"
"Q1RBIgoKY2xhc3MgVENUQV9QVF9WaWV3SW5mbyhUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBh"
"bmVsKToKICAgIGJsX2lkbmFtZSA9ICJUQ1RBX1BUX3ZpZXdfaW5mbyIKICAgIGJsX2xhYmVsID0gIjEu"
"IOODk+ODpeODvOODneODvOODiOaDheWgsSIKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAg"
"ICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFf"
"cHJvcHMKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEudmlld19zZWxlY3RlZCIsIGljb249J1ZJ"
"RVdaT09NJykKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEudXBkYXRlX3ZpZXdfaW5mbyIsIGlj"
"b249J0ZJTEVfUkVGUkVTSCcpCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94Lmxh"
"YmVsKHRleHQ9ZiJDZW50ZXI6ICh7cHJvcHMudmlld19jZW50ZXIueDouMWZ9LCB7cHJvcHMudmlld19j"
"ZW50ZXIueTouMWZ9LCB7cHJvcHMudmlld19jZW50ZXIuejouMWZ9KSIpCiAgICAgICAgYm94LmxhYmVs"
"KHRleHQ9ZiJTaXplIChweCk6IFc9e3Byb3BzLnZpZXdfc2l6ZVswXX0sIEg9e3Byb3BzLnZpZXdfc2l6"
"ZVsxXX0iKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiQ2FtZXJhIERpc3Q6IHtwcm9wcy52aWV3X2Rp"
"c3RhbmNlOi4xZn0iIGlmIHByb3BzLnZpZXdfZGlzdGFuY2UgPiAwIGVsc2UgIkNhbWVyYSBEaXN0OiBO"
"L0EiKQogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS5jb3B5X3ZpZXdfaW5mbyIsIGljb249J0NP"
"UFlET1dOJykKCmNsYXNzIFRDVEFfUFRfTWFpbihUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBh"
"bmVsKToKICAgIGJsX2lkbmFtZSA9ICJUQ1RBX1BUX21haW4iCiAgICBibF9sYWJlbCA9ICIyLiDjg6Hj"
"gqTjg7Plrp/ooYwiCiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBz"
"ZWxmLmxheW91dAogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS5jcmVhdGVfb2JqZWN0cyIsIGlj"
"b249J1BMQVknLCB0ZXh0PSLkvZzmiJAgKOeUn+aIkOODu+abtOaWsCkiKQogICAgICAgIGxheW91dC5v"
"cGVyYXRvcigidGN0YS5kZXRhY2hfb2JqZWN0cyIsIGljb249J1VOTElOS0VEJykKCmNsYXNzIFRDVEFf"
"UFRfU2V0dGluZ3MoVENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5h"
"bWUgPSAiVENUQV9QVF9zZXR0aW5ncyIKICAgIGJsX2xhYmVsID0gIjMuIOODkeODqeODoeODvOOCv+io"
"reWumiIKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5"
"b3V0CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAgICAgICBsYXlvdXQu"
"b3BlcmF0b3IoInRjdGEucmVzZXRfcHJvcHMiLCBpY29uPSdMT09QX0JBQ0snKQogICAgICAgIGJveCA9"
"IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJUb3J1cyBGcmFtZToiKQogICAgICAg"
"IGJveC5wcm9wKHByb3BzLCAidG9ydXNfY29sb3IiLCB0ZXh0PSJDb2xvciIpCiAgICAgICAgYm94LnBy"
"b3AocHJvcHMsICJ0b3J1c19hbHBoYSIsIHRleHQ9IkFscGhhIikKICAgICAgICBib3ggPSBsYXlvdXQu"
"Ym94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iU3BoZXJlczoiKQogICAgICAgIGZvciBpIGluIHJh"
"bmdlKDEsIDQpOgogICAgICAgICAgICByb3cgPSBib3gucm93KCkKICAgICAgICAgICAgcm93LnByb3Ao"
"cHJvcHMsIGYic3B7aX1fbW9kZSIsIHRleHQ9ZiJTcHtpfSIpCiAgICAgICAgICAgIGlmIGdldGF0dHIo"
"cHJvcHMsIGYic3B7aX1fbW9kZSIpID09ICdNQU5VQUwnOgogICAgICAgICAgICAgICAgYm94LnByb3Ao"
"cHJvcHMsIGYic3B7aX1fcG9zIiwgdGV4dD0iWFlaIikKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkK"
"ICAgICAgICBib3gubGFiZWwodGV4dD0iVHJpYW5nbGVzOiIpCiAgICAgICAgYm94LnByb3AocHJvcHMs"
"ICJ0cmlfdGhpY2tuZXNzIikKICAgICAgICBib3gucHJvcChwcm9wcywgInRyaV9hbHBoYSIpCiAgICAg"
"ICAgYm94LnByb3AocHJvcHMsICJ0cmlBX2NvbG9yIikKICAgICAgICBib3gucHJvcChwcm9wcywgInRy"
"aUJfY29sb3IiKQogICAgICAgIAogICAgICAgICMg6KGo56S6L+mdnuihqOekuuODiOOCsOODq+OBqOip"
"s+e0sOioreWumgogICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0"
"PSJHZW9tZXRyaWMgVmlzdWFscyBUb2dnbGU6IikKICAgICAgICAKICAgICAgICByb3cgPSBib3gucm93"
"KCkKICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfYXJyb3ciLCBpY29uPSdUUklBX1JJR0hUJyBp"
"ZiBub3QgcHJvcHMuc2hvd19hcnJvdyBlbHNlICdUUklBX0RPV04nKQogICAgICAgIHJvdy5wcm9wKHBy"
"b3BzLCAic2hvd19jaXJjbGUiLCBpY29uPSdUUklBX1JJR0hUJyBpZiBub3QgcHJvcHMuc2hvd19jaXJj"
"bGUgZWxzZSAnVFJJQV9ET1dOJykKICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfaGVtaXNwaGVy"
"ZSIsIGljb249J1RSSUFfUklHSFQnIGlmIG5vdCBwcm9wcy5zaG93X2hlbWlzcGhlcmUgZWxzZSAnVFJJ"
"QV9ET1dOJykKICAgICAgICAKICAgICAgICByb3cgPSBib3gucm93KCkKICAgICAgICByb3cucHJvcChw"
"cm9wcywgInNob3dfZGlzdF9zcGhlcmUiLCB0ZXh0PSLlhoXmrrvnkIMiLCBpY29uPSdUUklBX1JJR0hU"
"JyBpZiBub3QgcHJvcHMuc2hvd19kaXN0X3NwaGVyZSBlbHNlICdUUklBX0RPV04nKQogICAgICAgIHJv"
"dy5wcm9wKHByb3BzLCAic2hvd19vdXRlcl9zcGhlcmUiLCB0ZXh0PSLlpJbmrrvnkIMiLCBpY29uPSdU"
"UklBX1JJR0hUJyBpZiBub3QgcHJvcHMuc2hvd19vdXRlcl9zcGhlcmUgZWxzZSAnVFJJQV9ET1dOJykK"
"CiAgICAgICAgaWYgcHJvcHMuc2hvd19hcnJvdzoKICAgICAgICAgICAgY29sID0gYm94LmNvbHVtbihh"
"bGlnbj1UcnVlKQogICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImFycm93X3RoaWNrbmVzcyIpCiAg"
"ICAgICAgICAgIGNvbC5wcm9wKHByb3BzLCAiYXJyb3dfY29sb3IiKQogICAgICAgIAogICAgICAgIGlm"
"IHByb3BzLnNob3dfY2lyY2xlOgogICAgICAgICAgICBjb2wgPSBib3guY29sdW1uKGFsaWduPVRydWUp"
"CiAgICAgICAgICAgIGNvbC5zZXBhcmF0b3IoKQogICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImNp"
"cmNsZV9yYWRpdXMiLCB0ZXh0PSJSYWRpdXMgKENpcmNsZSAmIEhlbWkpIikKICAgICAgICAgICAgY29s"
"LnByb3AocHJvcHMsICJjaXJjbGVfdGhpY2tuZXNzIikKICAgICAgICAgICAgY29sLnByb3AocHJvcHMs"
"ICJjaXJjbGVfY29sb3IiKQogICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImNpcmNsZV9hbHBoYSIp"
"CiAgICAgICAgICAgIAogICAgICAgIGlmIHByb3BzLnNob3dfaGVtaXNwaGVyZToKICAgICAgICAgICAg"
"Y29sID0gYm94LmNvbHVtbihhbGlnbj1UcnVlKQogICAgICAgICAgICBjb2wuc2VwYXJhdG9yKCkKICAg"
"ICAgICAgICAgY29sLnByb3AocHJvcHMsICJoZW1pX2ZpbGxfYm90dG9tIikKICAgICAgICAgICAgY29s"
"LnByb3AocHJvcHMsICJoZW1pX2NvbG9yIikKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJoZW1p"
"X2FscGhhIikKICAgICAgICAgICAgCiAgICAgICAgaWYgcHJvcHMuc2hvd19kaXN0X3NwaGVyZToKICAg"
"ICAgICAgICAgY29sID0gYm94LmNvbHVtbihhbGlnbj1UcnVlKQogICAgICAgICAgICBjb2wuc2VwYXJh"
"dG9yKCkKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJkaXN0X3NwaGVyZV9jb2xvciIpCiAgICAg"
"ICAgICAgIGNvbC5wcm9wKHByb3BzLCAiZGlzdF9zcGhlcmVfYWxwaGEiKQoKICAgICAgICBpZiBwcm9w"
"cy5zaG93X291dGVyX3NwaGVyZToKICAgICAgICAgICAgY29sID0gYm94LmNvbHVtbihhbGlnbj1UcnVl"
"KQogICAgICAgICAgICBjb2wuc2VwYXJhdG9yKCkKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJv"
"dXRlcl9zcGhlcmVfY29sb3IiKQogICAgICAgICAgICBjb2wucHJvcChwcm9wcywgIm91dGVyX3NwaGVy"
"ZV9hbHBoYSIpCgpjbGFzcyBUQ1RBX1BUX0dlb0luZm8oVENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBl"
"cy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9QVF9nZW9faW5mbyIKICAgIGJsX2xhYmVsID0g"
"IjQuIOW5vuS9leaDheWgsSIKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91"
"dCA9IHNlbGYubGF5b3V0CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAg"
"ICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEucmFuZG9tX3Jlc2V0IiwgaWNvbj0nRklMRV9SRUZSRVNI"
"JykKICAgICAgICAKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4"
"dD0iU3BoZXJlIDEgKGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIERpc3Q6"
"IHtwcm9wcy5nZW9fc3AxX2Rpc3Q6LjFmfSIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIEFuZzog"
"e3Byb3BzLmdlb19zcDFfYW5nWzBdOi4xZn3CsCwge3Byb3BzLmdlb19zcDFfYW5nWzFdOi4xZn3CsCwg"
"e3Byb3BzLmdlb19zcDFfYW5nWzJdOi4xZn3CsCIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlNwaGVy"
"ZSAyIChmcm9tIDAsMCwwKToiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBEaXN0OiB7cHJvcHMu"
"Z2VvX3NwMl9kaXN0Oi4xZn0iKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBBbmc6IHtwcm9wcy5n"
"ZW9fc3AyX2FuZ1swXTouMWZ9wrAsIHtwcm9wcy5nZW9fc3AyX2FuZ1sxXTouMWZ9wrAsIHtwcm9wcy5n"
"ZW9fc3AyX2FuZ1syXTouMWZ9wrAiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJTcGhlcmUgMyAoZnJv"
"bSAwLDAsMCk6IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIiAgRGlzdDoge3Byb3BzLmdlb19zcDNf"
"ZGlzdDouMWZ9IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIiAgQW5nOiB7cHJvcHMuZ2VvX3NwM19h"
"bmdbMF06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwM19hbmdbMV06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwM19h"
"bmdbMl06LjFmfcKwIikKICAgICAgICAKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBi"
"b3gubGFiZWwodGV4dD0iUGxhbmUgQ3Jvc3MgQW5nbGUgKEEgJiBCKToiKQogICAgICAgIGJveC5sYWJl"
"bCh0ZXh0PWYiICBBbmdsZToge3Byb3BzLmdlb19wbGFuZV9hbmdsZTouMWZ9wrAiKQogICAgICAgIAog"
"ICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJQbGFuZSBCIElu"
"bmVyIERpc3QgKGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIFNob3J0ZXN0"
"IERpc3Q6IHtwcm9wcy5nZW9fcGxhbmVfZGlzdDouMWZ9IikKICAgICAgICBib3gubGFiZWwodGV4dD1m"
"IiAgRm9vdDogKHtwcm9wcy5nZW9fcGxhbmVfZm9vdFswXTouMWZ9LCB7cHJvcHMuZ2VvX3BsYW5lX2Zv"
"b3RbMV06LjFmfSwge3Byb3BzLmdlb19wbGFuZV9mb290WzJdOi4xZn0pIikKCiAgICAgICAgYm94ID0g"
"bGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9Ik91dGVyIEJvdW5kIFNwaGVyZSAoZnJv"
"bSAwLDAsMCk6IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIiAgUmFkaXVzIChNYXggRGlzdCk6IHtw"
"cm9wcy5nZW9fb3V0ZXJfcmFkaXVzOi4xZn0iKQoKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEu"
"Y29weV9nZW9faW5mbyIsIGljb249J0NPUFlET1dOJykKCmNsYXNzIFRDVEFfUFRfU3lzdGVtKFRDVEFf"
"UFRfUGFuZWxCYXNlLCBicHkudHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfc3lz"
"dGVtIgogICAgYmxfbGFiZWwgPSAiNS4g44K344K544OG44OgIgogICAgZGVmIGRyYXcoc2VsZiwgY29u"
"dGV4dCk6CiAgICAgICAgbGF5b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBsYXlvdXQub3BlcmF0b3Io"
"InRjdGEub3Blbl9saW5rIiwgaWNvbj0nVVJMJykKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEu"
"ZGVsZXRlX2FsbCIsIGljb249J1RSQVNIJywgdGV4dD0i44Ki44OJ44Kq44Oz5YmK6ZmkICjlhajjgq/j"
"g6rjgqIpIikKCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyA2LiDnmbvpjLLlh6bnkIYKIyA9PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"CmNsYXNzZXMgPSAoCiAgICBUQ1RBX1Byb3BlcnRpZXMsCiAgICBUQ1RBX09UX1ZpZXdTZWxlY3RlZCwK"
"ICAgIFRDVEFfT1RfVXBkYXRlVmlld0luZm8sCiAgICBUQ1RBX09UX0NvcHlWaWV3SW5mbywKICAgIFRD"
"VEFfT1RfQ3JlYXRlT2JqZWN0cywKICAgIFRDVEFfT1RfRGV0YWNoT2JqZWN0cywKICAgIFRDVEFfT1Rf"
"UmVzZXRQcm9wcywKICAgIFRDVEFfT1RfUmFuZG9tUmVzZXQsCiAgICBUQ1RBX09UX0NvcHlHZW9JbmZv"
"LAogICAgVENUQV9PVF9PcGVuTGluaywKICAgIFRDVEFfT1RfRGVsZXRlQWxsLAogICAgVENUQV9QVF9W"
"aWV3SW5mbywKICAgIFRDVEFfUFRfTWFpbiwKICAgIFRDVEFfUFRfU2V0dGluZ3MsCiAgICBUQ1RBX1BU"
"X0dlb0luZm8sCiAgICBUQ1RBX1BUX1N5c3RlbSwKKQoKZGVmIHJlZ2lzdGVyKCk6CiAgICBmb3IgY2xz"
"IGluIGNsYXNzZXM6CiAgICAgICAgYnB5LnV0aWxzLnJlZ2lzdGVyX2NsYXNzKGNscykKICAgIGJweS50"
"eXBlcy5TY2VuZS50Y3RhX3Byb3BzID0gYnB5LnByb3BzLlBvaW50ZXJQcm9wZXJ0eSh0eXBlPVRDVEFf"
"UHJvcGVydGllcykKCmRlZiB1bnJlZ2lzdGVyKCk6CiAgICBmb3IgY2xzIGluIHJldmVyc2VkKGNsYXNz"
"ZXMpOgogICAgICAgIGJweS51dGlscy51bnJlZ2lzdGVyX2NsYXNzKGNscykKICAgIGRlbCBicHkudHlw"
"ZXMuU2NlbmUudGN0YV9wcm9wcwoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHJlZ2lzdGVy"
"KCk="
)
},
{
"name": "平面2つなす角度 20260713_005",
"code_b64": (
"YmxfaW5mbyA9IHsKICAgICJuYW1lIjogIlRvcnVzIEN1YmUgJiBUcmlhbmdsZSBBbmFseXplciIsCiAg"
"ICAiYXV0aG9yIjogIkFJIEFzc2lzdGFudCIsCiAgICAidmVyc2lvbiI6ICgxLCA1LCAwKSwKICAgICJi"
"bGVuZGVyIjogKDQsIDIsIDApLAogICAgImxvY2F0aW9uIjogIlZpZXczRCA+IFNpZGViYXIgPiBUQ1RB"
"IiwKICAgICJkZXNjcmlwdGlvbiI6ICLlubPpnaLjgbjjga7mnIDnn63ot53pm6LvvIjlhoXmrrvvvInj"
"gajjgIEz55CD5L2T44KS5YyF44KA5pyA5aSn6Led6Zui77yI5aSW5q6777yJ44Gu5bm+5L2V5a2m55qE"
"6KaW6Kaa5YyWIiwKICAgICJjYXRlZ29yeSI6ICIzRCBWaWV3IiwKfQoKaW1wb3J0IGJweQppbXBvcnQg"
"Ym1lc2gKaW1wb3J0IG1hdGgKaW1wb3J0IG1hdGh1dGlscwppbXBvcnQgcmFuZG9tCgojID09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT0KIyAxLiDliJ3mnJ/lgKTlrprnvqkKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClBSRUZJWCA9ICJUQ1RBXyIK"
"UEFSRU5UX0NPTExFQ1RJT05fTkFNRSA9ICJUb3J1c0N1YmVTcGFjZSIKU1VCX0NPTExFQ1RJT05fTkFN"
"RSA9ICJBbmFseXplck9iamVjdHMiClRPUlVTX1NLRUxFVE9OX05BTUUgPSAiVG9ydXNTa2VsZXRvbiIK"
"U1BIRVJFXzFfTkFNRSA9ICJTcGhlcmVfMSIKU1BIRVJFXzJfTkFNRSA9ICJTcGhlcmVfMiIKU1BIRVJF"
"XzNfTkFNRSA9ICJTcGhlcmVfMyIKVFJJQU5HTEVfQV9OQU1FID0gIlRyaWFuZ2xlX0EiClRSSUFOR0xF"
"X0JfTkFNRSA9ICJUcmlhbmdsZV9CIgpBUlJPV19OQU1FID0gIkFycm93X1Nob3J0ZXN0RGlzdCIKQ0lS"
"Q0xFX05BTUUgPSAiQ2lyY2xlX1BsYW5lQiIKRElTVF9TUEhFUkVfTkFNRSA9ICJTcGhlcmVfU2hvcnRl"
"c3REaXN0IgpPVVRFUl9TUEhFUkVfTkFNRSA9ICJTcGhlcmVfT3V0ZXJCb3VuZCIgIyDmlrDopo/ov73l"
"iqA6IDPnkIPjgpLljIXjgoDlpKfjgY3jgarnkIPkvZMKCiMgPT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDIuIOODl+OD"
"reODkeODhuOCo+Wumue+qe+8iOabtOaWsOOCs+ODvOODq+ODkOODg+OCr+WQq+OCgO+8iQojID09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT0KZGVmIHVwZGF0ZV92aXNfYXJyb3coc2VsZiwgY29udGV4dCk6CiAgICBvYmogPSBicHku"
"ZGF0YS5vYmplY3RzLmdldChBUlJPV19OQU1FKQogICAgaWYgb2JqOgogICAgICAgIG9iai5oaWRlX3Zp"
"ZXdwb3J0ID0gbm90IHNlbGYuc2hvd19hcnJvdwogICAgICAgIG9iai5oaWRlX3JlbmRlciA9IG5vdCBz"
"ZWxmLnNob3dfYXJyb3cKCmRlZiB1cGRhdGVfdmlzX2NpcmNsZShzZWxmLCBjb250ZXh0KToKICAgIG9i"
"aiA9IGJweS5kYXRhLm9iamVjdHMuZ2V0KENJUkNMRV9OQU1FKQogICAgaWYgb2JqOgogICAgICAgIG9i"
"ai5oaWRlX3ZpZXdwb3J0ID0gbm90IHNlbGYuc2hvd19jaXJjbGUKICAgICAgICBvYmouaGlkZV9yZW5k"
"ZXIgPSBub3Qgc2VsZi5zaG93X2NpcmNsZQoKZGVmIHVwZGF0ZV92aXNfc3BoZXJlKHNlbGYsIGNvbnRl"
"eHQpOgogICAgb2JqID0gYnB5LmRhdGEub2JqZWN0cy5nZXQoRElTVF9TUEhFUkVfTkFNRSkKICAgIGlm"
"IG9iajoKICAgICAgICBvYmouaGlkZV92aWV3cG9ydCA9IG5vdCBzZWxmLnNob3dfZGlzdF9zcGhlcmUK"
"ICAgICAgICBvYmouaGlkZV9yZW5kZXIgPSBub3Qgc2VsZi5zaG93X2Rpc3Rfc3BoZXJlCgpkZWYgdXBk"
"YXRlX3Zpc19vdXRlcl9zcGhlcmUoc2VsZiwgY29udGV4dCk6CiAgICBvYmogPSBicHkuZGF0YS5vYmpl"
"Y3RzLmdldChPVVRFUl9TUEhFUkVfTkFNRSkKICAgIGlmIG9iajoKICAgICAgICBvYmouaGlkZV92aWV3"
"cG9ydCA9IG5vdCBzZWxmLnNob3dfb3V0ZXJfc3BoZXJlCiAgICAgICAgb2JqLmhpZGVfcmVuZGVyID0g"
"bm90IHNlbGYuc2hvd19vdXRlcl9zcGhlcmUKCmNsYXNzIFRDVEFfUHJvcGVydGllcyhicHkudHlwZXMu"
"UHJvcGVydHlHcm91cCk6CiAgICAjIOODiOODvOODqeOCuemqqOagvOioreWumgogICAgdG9ydXNfY29s"
"b3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IlRvcnVzIENvbG9yIiwgc3VidHlw"
"ZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuMSwgMC41LCAwLjgsIDEuMCksIG1pbj0w"
"LjAsIG1heD0xLjApCiAgICB0b3J1c19hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0i"
"VG9ydXMgQWxwaGEiLCBkZWZhdWx0PTAuNSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIAogICAgIyDphY3n"
"va7jg6Ljg7zjg4kKICAgIG1vZGVfb3B0aW9ucyA9IFsoJ1JBTkRPTScsICLjg6njg7Pjg4Djg6AiLCAi"
"IiksICgnTUFOVUFMJywgIuaMh+WumuS9jee9riIsICIiKV0KICAgIHNwMV9tb2RlOiBicHkucHJvcHMu"
"RW51bVByb3BlcnR5KG5hbWU9Ik1vZGUiLCBpdGVtcz1tb2RlX29wdGlvbnMsIGRlZmF1bHQ9J1JBTkRP"
"TScpCiAgICBzcDJfbW9kZTogYnB5LnByb3BzLkVudW1Qcm9wZXJ0eShuYW1lPSJNb2RlIiwgaXRlbXM9"
"bW9kZV9vcHRpb25zLCBkZWZhdWx0PSdSQU5ET00nKQogICAgc3AzX21vZGU6IGJweS5wcm9wcy5FbnVt"
"UHJvcGVydHkobmFtZT0iTW9kZSIsIGl0ZW1zPW1vZGVfb3B0aW9ucywgZGVmYXVsdD0nUkFORE9NJykK"
"ICAgIAogICAgc3AxX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iUG9zaXRp"
"b24gMSIsIGRlZmF1bHQ9KDIuMCwgMi4wLCAyLjApKQogICAgc3AyX3BvczogYnB5LnByb3BzLkZsb2F0"
"VmVjdG9yUHJvcGVydHkobmFtZT0iUG9zaXRpb24gMiIsIGRlZmF1bHQ9KC0yLjAsIC0yLjAsIDIuMCkp"
"CiAgICBzcDNfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJQb3NpdGlvbiAz"
"IiwgZGVmYXVsdD0oMC4wLCAzLjAsIC0yLjApKQogICAgCiAgICBzcDFfYWN0dWFsX3BvczogYnB5LnBy"
"b3BzLkZsb2F0VmVjdG9yUHJvcGVydHkoZGVmYXVsdD0oMCwwLDApKQogICAgc3AyX2FjdHVhbF9wb3M6"
"IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KGRlZmF1bHQ9KDAsMCwwKSkKICAgIHNwM19hY3R1"
"YWxfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShkZWZhdWx0PSgwLDAsMCkpCgogICAg"
"IyDkuInop5LlvaLoqK3lrpoKICAgIHRyaV90aGlja25lc3M6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5"
"KG5hbWU9IlRoaWNrbmVzcyIsIGRlZmF1bHQ9MC4xLCBtaW49MC4wKQogICAgdHJpX2FscGhhOiBicHku"
"cHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJBbHBoYSIsIGRlZmF1bHQ9MC4xLCBtaW49MC4wLCBtYXg9"
"MS4wKQogICAgdHJpQV9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iQ29s"
"b3IgQSIsIHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBkZWZhdWx0PSgwLjgsIDAuMiwgMC4y"
"LCAxLjApLCBtaW49MC4wLCBtYXg9MS4wKQogICAgdHJpQl9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVj"
"dG9yUHJvcGVydHkobmFtZT0iQ29sb3IgQiIsIHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBk"
"ZWZhdWx0PSgwLjIsIDAuOCwgMC4yLCAxLjApLCBtaW49MC4wLCBtYXg9MS4wKQoKICAgICMg6KGo56S6"
"L+mdnuihqOekuuODiOOCsOODqwogICAgc2hvd19hcnJvdzogYnB5LnByb3BzLkJvb2xQcm9wZXJ0eShu"
"YW1lPSLnn6LljbAiLCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVfdmlzX2Fycm93KQogICAgc2hv"
"d19jaXJjbGU6IGJweS5wcm9wcy5Cb29sUHJvcGVydHkobmFtZT0i5YaG55ukIiwgZGVmYXVsdD1UcnVl"
"LCB1cGRhdGU9dXBkYXRlX3Zpc19jaXJjbGUpCiAgICBzaG93X2Rpc3Rfc3BoZXJlOiBicHkucHJvcHMu"
"Qm9vbFByb3BlcnR5KG5hbWU9IuacgOefrei3nemboueQg+S9kyjlhoXmrrspIiwgZGVmYXVsdD1UcnVl"
"LCB1cGRhdGU9dXBkYXRlX3Zpc19zcGhlcmUpCiAgICBzaG93X291dGVyX3NwaGVyZTogYnB5LnByb3Bz"
"LkJvb2xQcm9wZXJ0eShuYW1lPSLmnIDlpKfot53pm6LnkIPkvZMo5aSW5q67KSIsIGRlZmF1bHQ9VHJ1"
"ZSwgdXBkYXRlPXVwZGF0ZV92aXNfb3V0ZXJfc3BoZXJlKQoKICAgICMg6KaW6Kaa5YyW6Kit5a6aCiAg"
"ICBhcnJvd190aGlja25lc3M6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkFycm93IFRoaWNr"
"bmVzcyIsIGRlZmF1bHQ9MC4wNSwgbWluPTAuMDEsIG1heD0xLjApCiAgICBhcnJvd19jb2xvcjogYnB5"
"LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iQXJyb3cgQ29sb3IiLCBzdWJ0eXBlPSdDT0xP"
"Ul9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMS4wLCAwLjgsIDAuMCwgMS4wKSwgbWluPTAuMCwgbWF4"
"PTEuMCkKICAgIGNpcmNsZV9yYWRpdXM6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNs"
"ZSBSYWRpdXMiLCBkZWZhdWx0PTMuMCwgbWluPTAuMSkKICAgIGNpcmNsZV90aGlja25lc3M6IGJweS5w"
"cm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNsZSBUaGlja25lc3MiLCBkZWZhdWx0PTAuMSwgbWlu"
"PTAuMCkKICAgIGNpcmNsZV9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0i"
"Q2lyY2xlIENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDEuMCwg"
"MC41LCAwLjAsIDAuNCksIG1pbj0wLjAsIG1heD0xLjApCiAgICBjaXJjbGVfYWxwaGE6IGJweS5wcm9w"
"cy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNsZSBBbHBoYSIsIGRlZmF1bHQ9MC40LCBtaW49MC4wLCBt"
"YXg9MS4wKQogICAgZGlzdF9zcGhlcmVfY29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5"
"KG5hbWU9IklubmVyIFNwaGVyZSBDb2xvciIsIHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBk"
"ZWZhdWx0PSgwLjAsIDAuOCwgMS4wLCAxLjApLCBtaW49MC4wLCBtYXg9MS4wKQogICAgZGlzdF9zcGhl"
"cmVfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IklubmVyIFNwaGVyZSBBbHBoYSIs"
"IGRlZmF1bHQ9MC4wNiwgbWluPTAuMCwgbWF4PTEuMCkKICAgIG91dGVyX3NwaGVyZV9jb2xvcjogYnB5"
"LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iT3V0ZXIgU3BoZXJlIENvbG9yIiwgc3VidHlw"
"ZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuOCwgMC4wLCAxLjAsIDEuMCksIG1pbj0w"
"LjAsIG1heD0xLjApCiAgICBvdXRlcl9zcGhlcmVfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5"
"KG5hbWU9Ik91dGVyIFNwaGVyZSBBbHBoYSIsIGRlZmF1bHQ9MC4wNCwgbWluPTAuMCwgbWF4PTEuMCkK"
"CiAgICAjIOODk+ODpeODvOODneODvOODiOODu+W5vuS9leaDheWgsQogICAgdmlld19jZW50ZXI6IGJw"
"eS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IlZpZXcgQ2VudGVyIikKICAgIHZpZXdfc2l6"
"ZTogYnB5LnByb3BzLkludFZlY3RvclByb3BlcnR5KG5hbWU9IlZpZXcgU2l6ZSAoUHgpIiwgc2l6ZT0y"
"KQogICAgdmlld19kaXN0YW5jZTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iVmlldyBEaXN0"
"YW5jZSIpCiAgICAKICAgIGdlb19zcDFfZGlzdDogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAg"
"Z2VvX3NwMV9hbmc6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19z"
"cDJfZGlzdDogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAgZ2VvX3NwMl9hbmc6IGJweS5wcm9w"
"cy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19zcDNfZGlzdDogYnB5LnByb3BzLkZs"
"b2F0UHJvcGVydHkoKQogICAgZ2VvX3NwM19hbmc6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5"
"KHNpemU9MykKICAgIAogICAgZ2VvX3BsYW5lX2FuZ2xlOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgp"
"CiAgICBnZW9fcGxhbmVfZGlzdDogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAgZ2VvX3BsYW5l"
"X2Zvb3Q6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19wbGFuZV9u"
"b3JtYWw6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19vdXRlcl9y"
"YWRpdXM6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KCkgIyDlpJbmrrvnkIPkvZPjga7ljYrlvoQKCgoj"
"ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT0KIyAzLiDjg6bjg7zjg4bjgqPjg6rjg4bjgqPplqLmlbAKIyA9PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09CmRlZiBnZXRfM2Rfdmlld19jb250ZXh0KCk6CiAgICBmb3Igd2luZG93IGluIGJweS5jb250ZXh0"
"LndpbmRvd19tYW5hZ2VyLndpbmRvd3M6CiAgICAgICAgZm9yIGFyZWEgaW4gd2luZG93LnNjcmVlbi5h"
"cmVhczoKICAgICAgICAgICAgaWYgYXJlYS50eXBlID09ICdWSUVXXzNEJzoKICAgICAgICAgICAgICAg"
"IGZvciByZWdpb24gaW4gYXJlYS5yZWdpb25zOgogICAgICAgICAgICAgICAgICAgIGlmIHJlZ2lvbi50"
"eXBlID09ICdXSU5ET1cnOgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXJlYSwgcmVnaW9u"
"LCBhcmVhLnNwYWNlcy5hY3RpdmUKICAgIHJldHVybiBOb25lLCBOb25lLCBOb25lCgpkZWYgY3JlYXRl"
"X21hdGVyaWFsKG5hbWUsIGNvbG9yLCBhbHBoYSk6CiAgICBtYXQgPSBicHkuZGF0YS5tYXRlcmlhbHMu"
"Z2V0KG5hbWUpCiAgICBpZiBub3QgbWF0OgogICAgICAgIG1hdCA9IGJweS5kYXRhLm1hdGVyaWFscy5u"
"ZXcobmFtZSkKICAgIG1hdC51c2Vfbm9kZXMgPSBUcnVlCiAgICAKICAgIGlmIGhhc2F0dHIobWF0LCAi"
"YmxlbmRfbWV0aG9kIik6CiAgICAgICAgbWF0LmJsZW5kX21ldGhvZCA9ICdCTEVORCcKICAgIGlmIGhh"
"c2F0dHIobWF0LCAic2hhZG93X21ldGhvZCIpOgogICAgICAgIG1hdC5zaGFkb3dfbWV0aG9kID0gJ05P"
"TkUnCiAgICAKICAgIGJzZGYgPSBtYXQubm9kZV90cmVlLm5vZGVzLmdldCgiUHJpbmNpcGxlZCBCU0RG"
"IikKICAgIGlmIGJzZGY6CiAgICAgICAgYnNkZi5pbnB1dHNbIkJhc2UgQ29sb3IiXS5kZWZhdWx0X3Zh"
"bHVlID0gY29sb3IKICAgICAgICBic2RmLmlucHV0c1siQWxwaGEiXS5kZWZhdWx0X3ZhbHVlID0gYWxw"
"aGEKICAgIHJldHVybiBtYXQKCmRlZiBjYWxjX2dlb19kYXRhKHByb3BzKToKICAgIGRlZiBjYWxjX2Rp"
"c3RfYW5nbGUodmVjKToKICAgICAgICBkaXN0ID0gdmVjLmxlbmd0aAogICAgICAgIGlmIGRpc3QgPT0g"
"MDogcmV0dXJuIDAsIDAsIDAsIDAKICAgICAgICBuID0gdmVjLm5vcm1hbGl6ZWQoKQogICAgICAgIGF4"
"ID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhuLngpKQogICAgICAgIGF5ID0gbWF0aC5kZWdyZWVzKG1h"
"dGguYWNvcyhuLnkpKQogICAgICAgIGF6ID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhuLnopKQogICAg"
"ICAgIHJldHVybiBkaXN0LCBheCwgYXksIGF6CgogICAgcDAgPSBtYXRodXRpbHMuVmVjdG9yKCgwLCAw"
"LCAwKSkKICAgIHAxID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5zcDFfYWN0dWFsX3BvcykKICAgIHAy"
"ID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5zcDJfYWN0dWFsX3BvcykKICAgIHAzID0gbWF0aHV0aWxz"
"LlZlY3Rvcihwcm9wcy5zcDNfYWN0dWFsX3BvcykKCiAgICBkMSwgYXgxLCBheTEsIGF6MSA9IGNhbGNf"
"ZGlzdF9hbmdsZShwMSkKICAgIHByb3BzLmdlb19zcDFfZGlzdCA9IGQxCiAgICBwcm9wcy5nZW9fc3Ax"
"X2FuZyA9IChheDEsIGF5MSwgYXoxKQoKICAgIGQyLCBheDIsIGF5MiwgYXoyID0gY2FsY19kaXN0X2Fu"
"Z2xlKHAyKQogICAgcHJvcHMuZ2VvX3NwMl9kaXN0ID0gZDIKICAgIHByb3BzLmdlb19zcDJfYW5nID0g"
"KGF4MiwgYXkyLCBhejIpCgogICAgZDMsIGF4MywgYXkzLCBhejMgPSBjYWxjX2Rpc3RfYW5nbGUocDMp"
"CiAgICBwcm9wcy5nZW9fc3AzX2Rpc3QgPSBkMwogICAgcHJvcHMuZ2VvX3NwM19hbmcgPSAoYXgzLCBh"
"eTMsIGF6MykKICAgIAogICAgIyDlpJbmrrvnkIPkvZPvvIgz44Gk44Gu55CD44KS44GZ44G544Gm5YyF"
"44KA77yJ44Gu5Y2K5b6ECiAgICBwcm9wcy5nZW9fb3V0ZXJfcmFkaXVzID0gbWF4KGQxLCBkMiwgZDMp"
"CgogICAgdjEgPSBwMSAtIHAwCiAgICB2MiA9IHAyIC0gcDAKICAgIHYzID0gcDIgLSBwMQogICAgdjQg"
"PSBwMyAtIHAxCiAgICBuMSA9IHYxLmNyb3NzKHYyKQogICAgbjIgPSB2My5jcm9zcyh2NCkKICAgIAog"
"ICAgaWYgbjEubGVuZ3RoID4gMC4wMDAxIGFuZCBuMi5sZW5ndGggPiAwLjAwMDE6CiAgICAgICAgbjFf"
"bm9ybSA9IG4xLm5vcm1hbGl6ZWQoKQogICAgICAgIG4yX25vcm0gPSBuMi5ub3JtYWxpemVkKCkKICAg"
"ICAgICBwcm9wcy5nZW9fcGxhbmVfbm9ybWFsID0gbjJfbm9ybQogICAgICAgIGRvdCA9IG1heCgtMS4w"
"LCBtaW4oMS4wLCBuMV9ub3JtLmRvdChuMl9ub3JtKSkpCiAgICAgICAgcHJvcHMuZ2VvX3BsYW5lX2Fu"
"Z2xlID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhkb3QpKQogICAgZWxzZToKICAgICAgICBwcm9wcy5n"
"ZW9fcGxhbmVfYW5nbGUgPSAwLjAKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfbm9ybWFsID0gKDAsMCwx"
"KQoKICAgIGlmIG4yLmxlbmd0aCA+IDAuMDAwMToKICAgICAgICB0ID0gbjJfbm9ybS5kb3QocDEpCiAg"
"ICAgICAgSCA9IG4yX25vcm0gKiB0CiAgICAgICAgcHJvcHMuZ2VvX3BsYW5lX2Rpc3QgPSBhYnModCkK"
"ICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZm9vdCA9IEgKICAgIGVsc2U6CiAgICAgICAgcHJvcHMuZ2Vv"
"X3BsYW5lX2Rpc3QgPSAwLjAKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZm9vdCA9ICgwLCAwLCAwKQoK"
"IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09CiMgNC4g44Kq44Oa44Os44O844K/44O8ICjlh6bnkIbjg63jgrjjg4Pjgq8p"
"CiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PQpjbGFzcyBUQ1RBX09UX1ZpZXdTZWxlY3RlZChicHkudHlwZXMuT3BlcmF0"
"b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEudmlld19zZWxlY3RlZCIKICAgIGJsX2xhYmVsID0gIumB"
"uOaKnuOCkueUu+mdouS4reWkruOBqyIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAg"
"ICAgIGJweS5vcHMudmlldzNkLnZpZXdfc2VsZWN0ZWQoKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVE"
"J30KCmNsYXNzIFRDVEFfT1RfVXBkYXRlVmlld0luZm8oYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJs"
"X2lkbmFtZSA9ICJ0Y3RhLnVwZGF0ZV92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICLnlLvpnaLmg4Xl"
"oLHmm7TmlrAiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBhcmVhLCByZWdp"
"b24sIHNwYWNlID0gZ2V0XzNkX3ZpZXdfY29udGV4dCgpCiAgICAgICAgaWYgbm90IHNwYWNlOgogICAg"
"ICAgICAgICBzZWxmLnJlcG9ydCh7J1dBUk5JTkcnfSwgIjNE44OT44Ol44O844GM6KaL44Gk44GL44KK"
"44G+44Gb44KTIikKICAgICAgICAgICAgcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICBydjNkID0g"
"c3BhY2UucmVnaW9uXzNkCiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAg"
"ICAgICBwcm9wcy52aWV3X2NlbnRlciA9IHJ2M2Qudmlld19sb2NhdGlvbgogICAgICAgIHByb3BzLnZp"
"ZXdfc2l6ZSA9IChyZWdpb24ud2lkdGgsIHJlZ2lvbi5oZWlnaHQpCiAgICAgICAgaWYgcnYzZC52aWV3"
"X3BlcnNwZWN0aXZlID09ICdQRVJTUCc6CiAgICAgICAgICAgIHByb3BzLnZpZXdfZGlzdGFuY2UgPSBy"
"djNkLnZpZXdfZGlzdGFuY2UKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcm9wcy52aWV3X2Rpc3Rh"
"bmNlID0gMC4wIAogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfQ29weVZp"
"ZXdJbmZvKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5jb3B5X3ZpZXdf"
"aW5mbyIKICAgIGJsX2xhYmVsID0gIuODk+ODpeODvOaDheWgseOCkuOCs+ODlOODvCIKICAgIGRlZiBl"
"eGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3By"
"b3BzCiAgICAgICAgbGluZXMgPSBbCiAgICAgICAgICAgIGYiQ2VudGVyOiBYPXtwcm9wcy52aWV3X2Nl"
"bnRlci54Oi4xZn0sIFk9e3Byb3BzLnZpZXdfY2VudGVyLnk6LjFmfSwgWj17cHJvcHMudmlld19jZW50"
"ZXIuejouMWZ9IiwKICAgICAgICAgICAgZiJTaXplOiBXPXtwcm9wcy52aWV3X3NpemVbMF19LCBIPXtw"
"cm9wcy52aWV3X3NpemVbMV19IiwKICAgICAgICAgICAgZiJEaXN0YW5jZToge3Byb3BzLnZpZXdfZGlz"
"dGFuY2U6LjFmfSIgaWYgcHJvcHMudmlld19kaXN0YW5jZSA+IDAgZWxzZSAiRGlzdGFuY2U6IE4vQSIK"
"ICAgICAgICBdCiAgICAgICAgY29udGV4dC53aW5kb3dfbWFuYWdlci5jbGlwYm9hcmQgPSAiXG4iLmpv"
"aW4obGluZXMpCiAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLjgrPjg5Tjg7zjgZfjgb7jgZfj"
"gZ8iKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfQ3JlYXRlT2JqZWN0"
"cyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEuY3JlYXRlX29iamVjdHMi"
"CiAgICBibF9sYWJlbCA9ICLkvZzmiJAiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAg"
"ICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAgIAogICAgICAgIHBhcmVu"
"dF9jb2wgPSBicHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoUEFSRU5UX0NPTExFQ1RJT05fTkFNRSkKICAg"
"ICAgICBpZiBub3QgcGFyZW50X2NvbDoKICAgICAgICAgICAgcGFyZW50X2NvbCA9IGJweS5kYXRhLmNv"
"bGxlY3Rpb25zLm5ldyhQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQogICAgICAgICAgICBjb250ZXh0LnNj"
"ZW5lLmNvbGxlY3Rpb24uY2hpbGRyZW4ubGluayhwYXJlbnRfY29sKQogICAgICAgICAgICAKICAgICAg"
"ICBzdWJfY29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMuZ2V0KFNVQl9DT0xMRUNUSU9OX05BTUUpCiAg"
"ICAgICAgaWYgbm90IHN1Yl9jb2w6CiAgICAgICAgICAgIHN1Yl9jb2wgPSBicHkuZGF0YS5jb2xsZWN0"
"aW9ucy5uZXcoU1VCX0NPTExFQ1RJT05fTkFNRSkKICAgICAgICAgICAgcGFyZW50X2NvbC5jaGlsZHJl"
"bi5saW5rKHN1Yl9jb2wpCgogICAgICAgIG5hbWVzX3RvX2RlbGV0ZSA9IFsKICAgICAgICAgICAgVE9S"
"VVNfU0tFTEVUT05fTkFNRSwgU1BIRVJFXzFfTkFNRSwgU1BIRVJFXzJfTkFNRSwgU1BIRVJFXzNfTkFN"
"RSwgCiAgICAgICAgICAgIFRSSUFOR0xFX0FfTkFNRSwgVFJJQU5HTEVfQl9OQU1FLCBBUlJPV19OQU1F"
"LCBDSVJDTEVfTkFNRSwgRElTVF9TUEhFUkVfTkFNRSwgT1VURVJfU1BIRVJFX05BTUUKICAgICAgICBd"
"CiAgICAgICAgZm9yIG9ial9uYW1lIGluIG5hbWVzX3RvX2RlbGV0ZToKICAgICAgICAgICAgaWYgb2Jq"
"X25hbWUgaW4gYnB5LmRhdGEub2JqZWN0czoKICAgICAgICAgICAgICAgIGJweS5kYXRhLm9iamVjdHMu"
"cmVtb3ZlKGJweS5kYXRhLm9iamVjdHNbb2JqX25hbWVdLCBkb191bmxpbms9VHJ1ZSkKCiAgICAgICAg"
"IyDpqqjmoLzkvZzmiJAKICAgICAgICBtZXNoID0gYnB5LmRhdGEubWVzaGVzLm5ldyhUT1JVU19TS0VM"
"RVRPTl9OQU1FKQogICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVjdHMubmV3KFRPUlVTX1NLRUxFVE9O"
"X05BTUUsIG1lc2gpCiAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqKQogICAgICAgIGJtID0g"
"Ym1lc2gubmV3KCkKICAgICAgICBibWVzaC5vcHMuY3JlYXRlX2N1YmUoYm0sIHNpemU9MTAuMCkKICAg"
"ICAgICBibWVzaC5vcHMuZGVsZXRlKGJtLCBnZW9tPWJtLmZhY2VzLCBjb250ZXh0PSdGQUNFUycpCiAg"
"ICAgICAgYm0udG9fbWVzaChtZXNoKQogICAgICAgIGJtLmZyZWUoKQogICAgICAgIHNraW5fbW9kID0g"
"b2JqLm1vZGlmaWVycy5uZXcobmFtZT0iU2tpbiIsIHR5cGU9J1NLSU4nKQogICAgICAgIHN1Yl9tb2Qg"
"PSBvYmoubW9kaWZpZXJzLm5ldyhuYW1lPSJTdWJkaXZpc2lvbiIsIHR5cGU9J1NVQlNVUkYnKQogICAg"
"ICAgIHN1Yl9tb2QubGV2ZWxzID0gMgogICAgICAgIGZvciB2IGluIG9iai5kYXRhLnNraW5fdmVydGlj"
"ZXNbMF0uZGF0YToKICAgICAgICAgICAgdi5yYWRpdXMgPSAoMC4yLCAwLjIpCiAgICAgICAgb2JqLmFj"
"dGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9Ub3J1cyIsIHByb3BzLnRv"
"cnVzX2NvbG9yLCBwcm9wcy50b3J1c19hbHBoYSkKCiAgICAgICAgIyDnkIPkvZPkvZzmiJAKICAgICAg"
"ICBkZWYgZ2V0X3Bvcyhtb2RlLCBwcm9wX3Bvcyk6CiAgICAgICAgICAgIGlmIG1vZGUgPT0gJ1JBTkRP"
"TSc6CiAgICAgICAgICAgICAgICByZXR1cm4gKHJhbmRvbS51bmlmb3JtKC01LCA1KSwgcmFuZG9tLnVu"
"aWZvcm0oLTUsIDUpLCByYW5kb20udW5pZm9ybSgtNSwgNSkpCiAgICAgICAgICAgIHJldHVybiBwcm9w"
"X3BvcwoKICAgICAgICBwcm9wcy5zcDFfYWN0dWFsX3BvcyA9IGdldF9wb3MocHJvcHMuc3AxX21vZGUs"
"IHByb3BzLnNwMV9wb3MpCiAgICAgICAgcHJvcHMuc3AyX2FjdHVhbF9wb3MgPSBnZXRfcG9zKHByb3Bz"
"LnNwMl9tb2RlLCBwcm9wcy5zcDJfcG9zKQogICAgICAgIHByb3BzLnNwM19hY3R1YWxfcG9zID0gZ2V0"
"X3Bvcyhwcm9wcy5zcDNfbW9kZSwgcHJvcHMuc3AzX3BvcykKCiAgICAgICAgZGVmIGNyZWF0ZV9zcGhl"
"cmUobmFtZSwgbG9jKToKICAgICAgICAgICAgbWVzaCA9IGJweS5kYXRhLm1lc2hlcy5uZXcobmFtZSkK"
"ICAgICAgICAgICAgb2JqID0gYnB5LmRhdGEub2JqZWN0cy5uZXcobmFtZSwgbWVzaCkKICAgICAgICAg"
"ICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqKQogICAgICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAg"
"ICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfdXZzcGhlcmUoYm0sIHVfc2VnbWVudHM9MTYsIHZfc2Vn"
"bWVudHM9OCwgcmFkaXVzPTAuNSkKICAgICAgICAgICAgYm0udG9fbWVzaChtZXNoKQogICAgICAgICAg"
"ICBibS5mcmVlKCkKICAgICAgICAgICAgb2JqLmxvY2F0aW9uID0gbG9jCiAgICAgICAgICAgIHJldHVy"
"biBvYmoKCiAgICAgICAgY3JlYXRlX3NwaGVyZShTUEhFUkVfMV9OQU1FLCBwcm9wcy5zcDFfYWN0dWFs"
"X3BvcykKICAgICAgICBjcmVhdGVfc3BoZXJlKFNQSEVSRV8yX05BTUUsIHByb3BzLnNwMl9hY3R1YWxf"
"cG9zKQogICAgICAgIGNyZWF0ZV9zcGhlcmUoU1BIRVJFXzNfTkFNRSwgcHJvcHMuc3AzX2FjdHVhbF9w"
"b3MpCgogICAgICAgICMg5LiJ6KeS5b2i5L2c5oiQCiAgICAgICAgZGVmIGNyZWF0ZV90cmlhbmdsZShu"
"YW1lLCBwMSwgcDIsIHAzLCBjb2xvciwgYWxwaGEsIHRoaWNrbmVzcyk6CiAgICAgICAgICAgIG1lc2gg"
"PSBicHkuZGF0YS5tZXNoZXMubmV3KG5hbWUpCiAgICAgICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVj"
"dHMubmV3KG5hbWUsIG1lc2gpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9iaikKICAg"
"ICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICB2MSA9IGJtLnZlcnRzLm5ldyhwMSkK"
"ICAgICAgICAgICAgdjIgPSBibS52ZXJ0cy5uZXcocDIpCiAgICAgICAgICAgIHYzID0gYm0udmVydHMu"
"bmV3KHAzKQogICAgICAgICAgICBibS5mYWNlcy5uZXcoKHYxLCB2MiwgdjMpKQogICAgICAgICAgICBi"
"bS50b19tZXNoKG1lc2gpCiAgICAgICAgICAgIGJtLmZyZWUoKQogICAgICAgICAgICBzb2wgPSBvYmou"
"bW9kaWZpZXJzLm5ldyhuYW1lPSJTb2xpZGlmeSIsIHR5cGU9J1NPTElESUZZJykKICAgICAgICAgICAg"
"c29sLnRoaWNrbmVzcyA9IHRoaWNrbmVzcwogICAgICAgICAgICBvYmouYWN0aXZlX21hdGVyaWFsID0g"
"Y3JlYXRlX21hdGVyaWFsKFBSRUZJWCsiTWF0XyIrbmFtZSwgY29sb3IsIGFscGhhKQoKICAgICAgICBj"
"cmVhdGVfdHJpYW5nbGUoVFJJQU5HTEVfQV9OQU1FLCAoMCwwLDApLCBwcm9wcy5zcDFfYWN0dWFsX3Bv"
"cywgcHJvcHMuc3AyX2FjdHVhbF9wb3MsIHByb3BzLnRyaUFfY29sb3IsIHByb3BzLnRyaV9hbHBoYSwg"
"cHJvcHMudHJpX3RoaWNrbmVzcykKICAgICAgICBjcmVhdGVfdHJpYW5nbGUoVFJJQU5HTEVfQl9OQU1F"
"LCBwcm9wcy5zcDFfYWN0dWFsX3BvcywgcHJvcHMuc3AyX2FjdHVhbF9wb3MsIHByb3BzLnNwM19hY3R1"
"YWxfcG9zLCBwcm9wcy50cmlCX2NvbG9yLCBwcm9wcy50cmlfYWxwaGEsIHByb3BzLnRyaV90aGlja25l"
"c3MpCgogICAgICAgICMg5bm+5L2V6KiI566XCiAgICAgICAgY2FsY19nZW9fZGF0YShwcm9wcykKCiAg"
"ICAgICAgIyDoppbopprljJbopoHntKDjga7kvZzmiJAKICAgICAgICBkaXN0ID0gcHJvcHMuZ2VvX3Bs"
"YW5lX2Rpc3QKICAgICAgICBpZiBkaXN0ID4gMC4wMToKICAgICAgICAgICAgIyDnn6LljbAKICAgICAg"
"ICAgICAgbWVzaF9hcnIgPSBicHkuZGF0YS5tZXNoZXMubmV3KEFSUk9XX05BTUUpCiAgICAgICAgICAg"
"IG9ial9hcnIgPSBicHkuZGF0YS5vYmplY3RzLm5ldyhBUlJPV19OQU1FLCBtZXNoX2FycikKICAgICAg"
"ICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqX2FycikKICAgICAgICAgICAgYm0gPSBibWVzaC5u"
"ZXcoKQogICAgICAgICAgICByID0gcHJvcHMuYXJyb3dfdGhpY2tuZXNzCiAgICAgICAgICAgIGhlYWRf"
"bCA9IG1pbihkaXN0ICogMC4zLCByICogNC4wKQogICAgICAgICAgICBib2R5X2wgPSBkaXN0IC0gaGVh"
"ZF9sCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfY29uZShibSwgY2FwX2VuZHM9VHJ1ZSwgY2Fw"
"X3RyaXM9RmFsc2UsIHNlZ21lbnRzPTE2LCByYWRpdXMxPXIsIHJhZGl1czI9ciwgZGVwdGg9Ym9keV9s"
"KQogICAgICAgICAgICBnZW9tX2hlYWQgPSBibWVzaC5vcHMuY3JlYXRlX2NvbmUoYm0sIGNhcF9lbmRz"
"PVRydWUsIGNhcF90cmlzPUZhbHNlLCBzZWdtZW50cz0xNiwgcmFkaXVzMT1yKjIuNSwgcmFkaXVzMj0w"
"LjAsIGRlcHRoPWhlYWRfbCkKICAgICAgICAgICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9"
"W3YgZm9yIHYgaW4gZ2VvbV9oZWFkWyd2ZXJ0cyddXSwgdmVjPSgwLCAwLCBib2R5X2wvMiArIGhlYWRf"
"bC8yKSkKICAgICAgICAgICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9Ym0udmVydHMsIHZl"
"Yz0oMCwgMCwgYm9keV9sLzIpKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfYXJyKQogICAgICAg"
"ICAgICBibS5mcmVlKCkKICAgICAgICAgICAgCiAgICAgICAgICAgIG9ial9hcnIubG9jYXRpb24gPSAo"
"MCwgMCwgMCkKICAgICAgICAgICAgZm9vdF92ZWMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLmdlb19w"
"bGFuZV9mb290KQogICAgICAgICAgICByb3RfcXVhdCA9IG1hdGh1dGlscy5WZWN0b3IoKDAsMCwxKSku"
"cm90YXRpb25fZGlmZmVyZW5jZShmb290X3ZlYy5ub3JtYWxpemVkKCkpCiAgICAgICAgICAgIG9ial9h"
"cnIucm90YXRpb25fbW9kZSA9ICdRVUFURVJOSU9OJwogICAgICAgICAgICBvYmpfYXJyLnJvdGF0aW9u"
"X3F1YXRlcm5pb24gPSByb3RfcXVhdAogICAgICAgICAgICBvYmpfYXJyLmFjdGl2ZV9tYXRlcmlhbCA9"
"IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9BcnJvdyIsIHByb3BzLmFycm93X2NvbG9yLCAxLjAp"
"CiAgICAgICAgICAgIG9ial9hcnIuaGlkZV92aWV3cG9ydCA9IG5vdCBwcm9wcy5zaG93X2Fycm93CiAg"
"ICAgICAgICAgIG9ial9hcnIuaGlkZV9yZW5kZXIgPSBub3QgcHJvcHMuc2hvd19hcnJvdwoKICAgICAg"
"ICAgICAgIyDlhoYKICAgICAgICAgICAgbWVzaF9jaXIgPSBicHkuZGF0YS5tZXNoZXMubmV3KENJUkNM"
"RV9OQU1FKQogICAgICAgICAgICBvYmpfY2lyID0gYnB5LmRhdGEub2JqZWN0cy5uZXcoQ0lSQ0xFX05B"
"TUUsIG1lc2hfY2lyKQogICAgICAgICAgICBzdWJfY29sLm9iamVjdHMubGluayhvYmpfY2lyKQogICAg"
"ICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfY2lyY2xl"
"KGJtLCBjYXBfZW5kcz1UcnVlLCBjYXBfdHJpcz1GYWxzZSwgc2VnbWVudHM9MzIsIHJhZGl1cz1wcm9w"
"cy5jaXJjbGVfcmFkaXVzKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfY2lyKQogICAgICAgICAg"
"ICBibS5mcmVlKCkKICAgICAgICAgICAgb2JqX2Npci5sb2NhdGlvbiA9IHByb3BzLmdlb19wbGFuZV9m"
"b290CiAgICAgICAgICAgIG5vcm1hbF92ZWMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLmdlb19wbGFu"
"ZV9ub3JtYWwpCiAgICAgICAgICAgIGlmIG5vcm1hbF92ZWMubGVuZ3RoID4gMDoKICAgICAgICAgICAg"
"ICAgIHJvdF9xdWF0X2NpciA9IG1hdGh1dGlscy5WZWN0b3IoKDAsMCwxKSkucm90YXRpb25fZGlmZmVy"
"ZW5jZShub3JtYWxfdmVjKQogICAgICAgICAgICAgICAgb2JqX2Npci5yb3RhdGlvbl9tb2RlID0gJ1FV"
"QVRFUk5JT04nCiAgICAgICAgICAgICAgICBvYmpfY2lyLnJvdGF0aW9uX3F1YXRlcm5pb24gPSByb3Rf"
"cXVhdF9jaXIKICAgICAgICAgICAgc29sID0gb2JqX2Npci5tb2RpZmllcnMubmV3KG5hbWU9IlNvbGlk"
"aWZ5IiwgdHlwZT0nU09MSURJRlknKQogICAgICAgICAgICBzb2wudGhpY2tuZXNzID0gcHJvcHMuY2ly"
"Y2xlX3RoaWNrbmVzcwogICAgICAgICAgICBvYmpfY2lyLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9t"
"YXRlcmlhbChQUkVGSVgrIk1hdF9DaXJjbGUiLCBwcm9wcy5jaXJjbGVfY29sb3IsIHByb3BzLmNpcmNs"
"ZV9hbHBoYSkKICAgICAgICAgICAgb2JqX2Npci5oaWRlX3ZpZXdwb3J0ID0gbm90IHByb3BzLnNob3df"
"Y2lyY2xlCiAgICAgICAgICAgIG9ial9jaXIuaGlkZV9yZW5kZXIgPSBub3QgcHJvcHMuc2hvd19jaXJj"
"bGUKCiAgICAgICAgICAgICMg5pyA55+t6Led6Zui44Gu6YCP5piO55CD5L2TKOWGheauuykKICAgICAg"
"ICAgICAgbWVzaF9zcGggPSBicHkuZGF0YS5tZXNoZXMubmV3KERJU1RfU1BIRVJFX05BTUUpCiAgICAg"
"ICAgICAgIG9ial9zcGggPSBicHkuZGF0YS5vYmplY3RzLm5ldyhESVNUX1NQSEVSRV9OQU1FLCBtZXNo"
"X3NwaCkKICAgICAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqX3NwaCkKICAgICAgICAgICAg"
"Ym0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICBibWVzaC5vcHMuY3JlYXRlX3V2c3BoZXJlKGJtLCB1"
"X3NlZ21lbnRzPTMyLCB2X3NlZ21lbnRzPTE2LCByYWRpdXM9ZGlzdCkKICAgICAgICAgICAgYm0udG9f"
"bWVzaChtZXNoX3NwaCkKICAgICAgICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAgIG9ial9zcGgubG9j"
"YXRpb24gPSAoMCwgMCwgMCkKICAgICAgICAgICAgZm9yIHBvbHkgaW4gbWVzaF9zcGgucG9seWdvbnM6"
"IHBvbHkudXNlX3Ntb290aCA9IFRydWUKICAgICAgICAgICAgb2JqX3NwaC5hY3RpdmVfbWF0ZXJpYWwg"
"PSBjcmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRfRGlzdFNwaGVyZSIsIHByb3BzLmRpc3Rfc3BoZXJl"
"X2NvbG9yLCBwcm9wcy5kaXN0X3NwaGVyZV9hbHBoYSkKICAgICAgICAgICAgb2JqX3NwaC5oaWRlX3Zp"
"ZXdwb3J0ID0gbm90IHByb3BzLnNob3dfZGlzdF9zcGhlcmUKICAgICAgICAgICAgb2JqX3NwaC5oaWRl"
"X3JlbmRlciA9IG5vdCBwcm9wcy5zaG93X2Rpc3Rfc3BoZXJlCgogICAgICAgICMg5aSW5q6744Gu5aSn"
"44GN44Gq6YCP5piO55CD5L2TIChORVcpCiAgICAgICAgb3V0ZXJfciA9IHByb3BzLmdlb19vdXRlcl9y"
"YWRpdXMKICAgICAgICBpZiBvdXRlcl9yID4gMDoKICAgICAgICAgICAgbWVzaF9vdXQgPSBicHkuZGF0"
"YS5tZXNoZXMubmV3KE9VVEVSX1NQSEVSRV9OQU1FKQogICAgICAgICAgICBvYmpfb3V0ID0gYnB5LmRh"
"dGEub2JqZWN0cy5uZXcoT1VURVJfU1BIRVJFX05BTUUsIG1lc2hfb3V0KQogICAgICAgICAgICBzdWJf"
"Y29sLm9iamVjdHMubGluayhvYmpfb3V0KQogICAgICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAg"
"ICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfdXZzcGhlcmUoYm0sIHVfc2VnbWVudHM9MzIsIHZfc2VnbWVu"
"dHM9MTYsIHJhZGl1cz1vdXRlcl9yKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfb3V0KQogICAg"
"ICAgICAgICBibS5mcmVlKCkKICAgICAgICAgICAgb2JqX291dC5sb2NhdGlvbiA9ICgwLCAwLCAwKQog"
"ICAgICAgICAgICBmb3IgcG9seSBpbiBtZXNoX291dC5wb2x5Z29uczogcG9seS51c2Vfc21vb3RoID0g"
"VHJ1ZQogICAgICAgICAgICBvYmpfb3V0LmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQ"
"UkVGSVgrIk1hdF9PdXRlclNwaGVyZSIsIHByb3BzLm91dGVyX3NwaGVyZV9jb2xvciwgcHJvcHMub3V0"
"ZXJfc3BoZXJlX2FscGhhKQogICAgICAgICAgICBvYmpfb3V0LmhpZGVfdmlld3BvcnQgPSBub3QgcHJv"
"cHMuc2hvd19vdXRlcl9zcGhlcmUKICAgICAgICAgICAgb2JqX291dC5oaWRlX3JlbmRlciA9IG5vdCBw"
"cm9wcy5zaG93X291dGVyX3NwaGVyZQoKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBU"
"Q1RBX09UX0RldGFjaE9iamVjdHMoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0"
"Y3RhLmRldGFjaF9vYmplY3RzIgogICAgYmxfbGFiZWwgPSAi44Ki44OJ44Kq44Oz44GL44KJ5YiH44KK"
"6Zui44GXIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcGFyZW50X2NvbCA9"
"IGJweS5kYXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQogICAgICAgIGlm"
"IHBhcmVudF9jb2w6CiAgICAgICAgICAgIHBhcmVudF9jb2wubmFtZSA9IFBBUkVOVF9DT0xMRUNUSU9O"
"X05BTUUgKyAiX0RldGFjaGVkIgogICAgICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuWIh+OC"
"iumbouOBl+OBvuOBl+OBnyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9P"
"VF9SZXNldFByb3BzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5yZXNl"
"dF9wcm9wcyIKICAgIGJsX2xhYmVsID0gIuWIneacn+WApOOBq+aIu+OBmSIKICAgIGRlZiBleGVjdXRl"
"KHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAg"
"ICAgICAgcmVzZXRfbGlzdCA9IFsKICAgICAgICAgICAgInRvcnVzX2NvbG9yIiwgInRvcnVzX2FscGhh"
"IiwgInRyaV90aGlja25lc3MiLCAidHJpX2FscGhhIiwgInRyaUFfY29sb3IiLCAidHJpQl9jb2xvciIs"
"IAogICAgICAgICAgICAic2hvd19hcnJvdyIsICJzaG93X2NpcmNsZSIsICJzaG93X2Rpc3Rfc3BoZXJl"
"IiwgInNob3dfb3V0ZXJfc3BoZXJlIiwKICAgICAgICAgICAgImFycm93X3RoaWNrbmVzcyIsICJhcnJv"
"d19jb2xvciIsICJjaXJjbGVfcmFkaXVzIiwgImNpcmNsZV90aGlja25lc3MiLCAiY2lyY2xlX2NvbG9y"
"IiwgImNpcmNsZV9hbHBoYSIsCiAgICAgICAgICAgICJkaXN0X3NwaGVyZV9jb2xvciIsICJkaXN0X3Nw"
"aGVyZV9hbHBoYSIsICJvdXRlcl9zcGhlcmVfY29sb3IiLCAib3V0ZXJfc3BoZXJlX2FscGhhIgogICAg"
"ICAgIF0KICAgICAgICBmb3IgcCBpbiByZXNldF9saXN0OgogICAgICAgICAgICBwcm9wcy5wcm9wZXJ0"
"eV91bnNldChwKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfUmFuZG9t"
"UmVzZXQoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLnJhbmRvbV9yZXNl"
"dCIKICAgIGJsX2xhYmVsID0gIuODqeODs+ODgOODoOWGjeioiOeul++8huabtOaWsCIKICAgIGRlZiBl"
"eGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIGJweS5vcHMudGN0YS5jcmVhdGVfb2JqZWN0cygp"
"CiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9Db3B5R2VvSW5mbyhicHku"
"dHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEuY29weV9nZW9faW5mbyIKICAgIGJs"
"X2xhYmVsID0gIuW5vuS9leaDheWgseOCkuOCs+ODlOODvCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNv"
"bnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGlu"
"ZXMgPSBbCiAgICAgICAgICAgIGYiU3AxIERpc3Q6IHtwcm9wcy5nZW9fc3AxX2Rpc3Q6LjFmfSwgQW5n"
"OiBYPXtwcm9wcy5nZW9fc3AxX2FuZ1swXTouMWZ9LCBZPXtwcm9wcy5nZW9fc3AxX2FuZ1sxXTouMWZ9"
"LCBaPXtwcm9wcy5nZW9fc3AxX2FuZ1syXTouMWZ9IiwKICAgICAgICAgICAgZiJTcDIgRGlzdDoge3By"
"b3BzLmdlb19zcDJfZGlzdDouMWZ9LCBBbmc6IFg9e3Byb3BzLmdlb19zcDJfYW5nWzBdOi4xZn0sIFk9"
"e3Byb3BzLmdlb19zcDJfYW5nWzFdOi4xZn0sIFo9e3Byb3BzLmdlb19zcDJfYW5nWzJdOi4xZn0iLAog"
"ICAgICAgICAgICBmIlNwMyBEaXN0OiB7cHJvcHMuZ2VvX3NwM19kaXN0Oi4xZn0sIEFuZzogWD17cHJv"
"cHMuZ2VvX3NwM19hbmdbMF06LjFmfSwgWT17cHJvcHMuZ2VvX3NwM19hbmdbMV06LjFmfSwgWj17cHJv"
"cHMuZ2VvX3NwM19hbmdbMl06LjFmfSIsCiAgICAgICAgICAgIGYiUGxhbmUgQ3Jvc3MgQW5nbGU6IHtw"
"cm9wcy5nZW9fcGxhbmVfYW5nbGU6LjFmfSIsCiAgICAgICAgICAgIGYiU2hvcnRlc3QgRGlzdCB0byBQ"
"bGFuZSBCIChJbm5lciBSYWRpdXMpOiB7cHJvcHMuZ2VvX3BsYW5lX2Rpc3Q6LjFmfSIsCiAgICAgICAg"
"ICAgIGYiU2hvcnRlc3QgRm9vdCBQb3M6IFg9e3Byb3BzLmdlb19wbGFuZV9mb290WzBdOi4xZn0sIFk9"
"e3Byb3BzLmdlb19wbGFuZV9mb290WzFdOi4xZn0sIFo9e3Byb3BzLmdlb19wbGFuZV9mb290WzJdOi4x"
"Zn0iLAogICAgICAgICAgICBmIk91dGVyIFNoZWxsIFJhZGl1cyAoTWF4IERpc3QpOiB7cHJvcHMuZ2Vv"
"X291dGVyX3JhZGl1czouMWZ9IgogICAgICAgIF0KICAgICAgICBjb250ZXh0LndpbmRvd19tYW5hZ2Vy"
"LmNsaXBib2FyZCA9ICJcbiIuam9pbihsaW5lcykKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwg"
"IuOCs+ODlOODvOOBl+OBvuOBl+OBnyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3Mg"
"VENUQV9PVF9PcGVuTGluayhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEu"
"b3Blbl9saW5rIgogICAgYmxfbGFiZWwgPSAi44Oq44Oz44Kv44KS6ZaL44GPIgogICAgZGVmIGV4ZWN1"
"dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgYnB5Lm9wcy53bS51cmxfb3Blbih1cmw9Imh0dHBzOi8v"
"d3d3LmJsZW5kZXIub3JnLyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9P"
"VF9EZWxldGVBbGwoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLmRlbGV0"
"ZV9hbGwiCiAgICBibF9sYWJlbCA9ICLplqLpgKPlhajliYrpmaQiCiAgICBkZWYgZXhlY3V0ZShzZWxm"
"LCBjb250ZXh0KToKICAgICAgICBwYXJlbnRfY29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMuZ2V0KFBB"
"UkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAgaWYgcGFyZW50X2NvbDoKICAgICAgICAgICAgZm9y"
"IG9iaiBpbiBwYXJlbnRfY29sLmFsbF9vYmplY3RzOgogICAgICAgICAgICAgICAgYnB5LmRhdGEub2Jq"
"ZWN0cy5yZW1vdmUob2JqLCBkb191bmxpbms9VHJ1ZSkKICAgICAgICAgICAgYnB5LmRhdGEuY29sbGVj"
"dGlvbnMucmVtb3ZlKHBhcmVudF9jb2wpCiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsnSU5GTyd9LCAi"
"5YWo5YmK6Zmk44GX44G+44GX44GfIikKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgoKIyA9PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09CiMgNS4gVUkg44OR44ON44Or5a6a576pCiMgPT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBUQ1RB"
"X1BUX1BhbmVsQmFzZToKICAgIGJsX3NwYWNlX3R5cGUgPSAnVklFV18zRCcKICAgIGJsX3JlZ2lvbl90"
"eXBlID0gJ1VJJwogICAgYmxfY2F0ZWdvcnkgPSAiVENUQSIKCmNsYXNzIFRDVEFfUFRfVmlld0luZm8o"
"VENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9Q"
"VF92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICIxLiDjg5Pjg6Xjg7zjg53jg7zjg4jmg4XloLEiCiAg"
"ICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAg"
"ICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9y"
"KCJ0Y3RhLnZpZXdfc2VsZWN0ZWQiLCBpY29uPSdWSUVXWk9PTScpCiAgICAgICAgbGF5b3V0Lm9wZXJh"
"dG9yKCJ0Y3RhLnVwZGF0ZV92aWV3X2luZm8iLCBpY29uPSdGSUxFX1JFRlJFU0gnKQogICAgICAgIGJv"
"eCA9IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiQ2VudGVyOiAoe3Byb3BzLnZp"
"ZXdfY2VudGVyLng6LjFmfSwge3Byb3BzLnZpZXdfY2VudGVyLnk6LjFmfSwge3Byb3BzLnZpZXdfY2Vu"
"dGVyLno6LjFmfSkiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiU2l6ZSAocHgpOiBXPXtwcm9wcy52"
"aWV3X3NpemVbMF19LCBIPXtwcm9wcy52aWV3X3NpemVbMV19IikKICAgICAgICBib3gubGFiZWwodGV4"
"dD1mIkNhbWVyYSBEaXN0OiB7cHJvcHMudmlld19kaXN0YW5jZTouMWZ9IiBpZiBwcm9wcy52aWV3X2Rp"
"c3RhbmNlID4gMCBlbHNlICJDYW1lcmEgRGlzdDogTi9BIikKICAgICAgICBsYXlvdXQub3BlcmF0b3Io"
"InRjdGEuY29weV92aWV3X2luZm8iLCBpY29uPSdDT1BZRE9XTicpCgpjbGFzcyBUQ1RBX1BUX01haW4o"
"VENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9Q"
"VF9tYWluIgogICAgYmxfbGFiZWwgPSAiMi4g44Oh44Kk44Oz5a6f6KGMIgogICAgZGVmIGRyYXcoc2Vs"
"ZiwgY29udGV4dCk6CiAgICAgICAgbGF5b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBsYXlvdXQub3Bl"
"cmF0b3IoInRjdGEuY3JlYXRlX29iamVjdHMiLCBpY29uPSdQTEFZJywgdGV4dD0i5L2c5oiQICjnlJ/m"
"iJDjg7vmm7TmlrApIikKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEuZGV0YWNoX29iamVjdHMi"
"LCBpY29uPSdVTkxJTktFRCcpCgpjbGFzcyBUQ1RBX1BUX1NldHRpbmdzKFRDVEFfUFRfUGFuZWxCYXNl"
"LCBicHkudHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfc2V0dGluZ3MiCiAgICBi"
"bF9sYWJlbCA9ICIzLiDjg5Hjg6njg6Hjg7zjgr/oqK3lrpoiCiAgICBkZWYgZHJhdyhzZWxmLCBjb250"
"ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHByb3BzID0gY29udGV4dC5z"
"Y2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLnJlc2V0X3Byb3BzIiwg"
"aWNvbj0nTE9PUF9CQUNLJykKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFi"
"ZWwodGV4dD0iVG9ydXMgRnJhbWU6IikKICAgICAgICBib3gucHJvcChwcm9wcywgInRvcnVzX2NvbG9y"
"IiwgdGV4dD0iQ29sb3IiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidG9ydXNfYWxwaGEiLCB0ZXh0"
"PSJBbHBoYSIpCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9"
"IlNwaGVyZXM6IikKICAgICAgICBmb3IgaSBpbiByYW5nZSgxLCA0KToKICAgICAgICAgICAgcm93ID0g"
"Ym94LnJvdygpCiAgICAgICAgICAgIHJvdy5wcm9wKHByb3BzLCBmInNwe2l9X21vZGUiLCB0ZXh0PWYi"
"U3B7aX0iKQogICAgICAgICAgICBpZiBnZXRhdHRyKHByb3BzLCBmInNwe2l9X21vZGUiKSA9PSAnTUFO"
"VUFMJzoKICAgICAgICAgICAgICAgIGJveC5wcm9wKHByb3BzLCBmInNwe2l9X3BvcyIsIHRleHQ9IlhZ"
"WiIpCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlRyaWFu"
"Z2xlczoiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidHJpX3RoaWNrbmVzcyIpCiAgICAgICAgYm94"
"LnByb3AocHJvcHMsICJ0cmlfYWxwaGEiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidHJpQV9jb2xv"
"ciIpCiAgICAgICAgYm94LnByb3AocHJvcHMsICJ0cmlCX2NvbG9yIikKICAgICAgICAKICAgICAgICAj"
"IOihqOekui/pnZ7ooajnpLrjg4jjgrDjg6vjgajoqK3lrpoKICAgICAgICBib3ggPSBsYXlvdXQuYm94"
"KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iR2VvbWV0cmljIFZpc3VhbHMgVG9nZ2xlOiIpCiAgICAg"
"ICAgCiAgICAgICAgcm93ID0gYm94LnJvdygpCiAgICAgICAgcm93LnByb3AocHJvcHMsICJzaG93X2Fy"
"cm93IiwgaWNvbj0nVFJJQV9SSUdIVCcgaWYgbm90IHByb3BzLnNob3dfYXJyb3cgZWxzZSAnVFJJQV9E"
"T1dOJykKICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfY2lyY2xlIiwgaWNvbj0nVFJJQV9SSUdI"
"VCcgaWYgbm90IHByb3BzLnNob3dfY2lyY2xlIGVsc2UgJ1RSSUFfRE9XTicpCiAgICAgICAgCiAgICAg"
"ICAgcm93ID0gYm94LnJvdygpCiAgICAgICAgcm93LnByb3AocHJvcHMsICJzaG93X2Rpc3Rfc3BoZXJl"
"IiwgaWNvbj0nVFJJQV9SSUdIVCcgaWYgbm90IHByb3BzLnNob3dfZGlzdF9zcGhlcmUgZWxzZSAnVFJJ"
"QV9ET1dOJykKICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfb3V0ZXJfc3BoZXJlIiwgaWNvbj0n"
"VFJJQV9SSUdIVCcgaWYgbm90IHByb3BzLnNob3dfb3V0ZXJfc3BoZXJlIGVsc2UgJ1RSSUFfRE9XTicp"
"CgogICAgICAgIGlmIHByb3BzLnNob3dfYXJyb3c6CiAgICAgICAgICAgIGNvbCA9IGJveC5jb2x1bW4o"
"YWxpZ249VHJ1ZSkKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJhcnJvd190aGlja25lc3MiKQog"
"ICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImFycm93X2NvbG9yIikKICAgICAgICAKICAgICAgICBp"
"ZiBwcm9wcy5zaG93X2NpcmNsZToKICAgICAgICAgICAgY29sID0gYm94LmNvbHVtbihhbGlnbj1UcnVl"
"KQogICAgICAgICAgICBjb2wuc2VwYXJhdG9yKCkKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJj"
"aXJjbGVfcmFkaXVzIikKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJjaXJjbGVfdGhpY2tuZXNz"
"IikKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJjaXJjbGVfY29sb3IiKQogICAgICAgICAgICBj"
"b2wucHJvcChwcm9wcywgImNpcmNsZV9hbHBoYSIpCiAgICAgICAgICAgIAogICAgICAgIGlmIHByb3Bz"
"LnNob3dfZGlzdF9zcGhlcmU6CiAgICAgICAgICAgIGNvbCA9IGJveC5jb2x1bW4oYWxpZ249VHJ1ZSkK"
"ICAgICAgICAgICAgY29sLnNlcGFyYXRvcigpCiAgICAgICAgICAgIGNvbC5wcm9wKHByb3BzLCAiZGlz"
"dF9zcGhlcmVfY29sb3IiKQogICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImRpc3Rfc3BoZXJlX2Fs"
"cGhhIikKCiAgICAgICAgaWYgcHJvcHMuc2hvd19vdXRlcl9zcGhlcmU6CiAgICAgICAgICAgIGNvbCA9"
"IGJveC5jb2x1bW4oYWxpZ249VHJ1ZSkKICAgICAgICAgICAgY29sLnNlcGFyYXRvcigpCiAgICAgICAg"
"ICAgIGNvbC5wcm9wKHByb3BzLCAib3V0ZXJfc3BoZXJlX2NvbG9yIikKICAgICAgICAgICAgY29sLnBy"
"b3AocHJvcHMsICJvdXRlcl9zcGhlcmVfYWxwaGEiKQoKY2xhc3MgVENUQV9QVF9HZW9JbmZvKFRDVEFf"
"UFRfUGFuZWxCYXNlLCBicHkudHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfZ2Vv"
"X2luZm8iCiAgICBibF9sYWJlbCA9ICI0LiDlub7kvZXmg4XloLEiCiAgICBkZWYgZHJhdyhzZWxmLCBj"
"b250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHByb3BzID0gY29udGV4"
"dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLnJhbmRvbV9yZXNl"
"dCIsIGljb249J0ZJTEVfUkVGUkVTSCcpCiAgICAgICAgCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgp"
"CiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlNwaGVyZSAxIChmcm9tIDAsMCwwKToiKQogICAgICAgIGJv"
"eC5sYWJlbCh0ZXh0PWYiICBEaXN0OiB7cHJvcHMuZ2VvX3NwMV9kaXN0Oi4xZn0iKQogICAgICAgIGJv"
"eC5sYWJlbCh0ZXh0PWYiICBBbmc6IHtwcm9wcy5nZW9fc3AxX2FuZ1swXTouMWZ9wrAsIHtwcm9wcy5n"
"ZW9fc3AxX2FuZ1sxXTouMWZ9wrAsIHtwcm9wcy5nZW9fc3AxX2FuZ1syXTouMWZ9wrAiKQogICAgICAg"
"IGJveC5sYWJlbCh0ZXh0PSJTcGhlcmUgMiAoZnJvbSAwLDAsMCk6IikKICAgICAgICBib3gubGFiZWwo"
"dGV4dD1mIiAgRGlzdDoge3Byb3BzLmdlb19zcDJfZGlzdDouMWZ9IikKICAgICAgICBib3gubGFiZWwo"
"dGV4dD1mIiAgQW5nOiB7cHJvcHMuZ2VvX3NwMl9hbmdbMF06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwMl9h"
"bmdbMV06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwMl9hbmdbMl06LjFmfcKwIikKICAgICAgICBib3gubGFi"
"ZWwodGV4dD0iU3BoZXJlIDMgKGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIg"
"IERpc3Q6IHtwcm9wcy5nZW9fc3AzX2Rpc3Q6LjFmfSIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIg"
"IEFuZzoge3Byb3BzLmdlb19zcDNfYW5nWzBdOi4xZn3CsCwge3Byb3BzLmdlb19zcDNfYW5nWzFdOi4x"
"Zn3CsCwge3Byb3BzLmdlb19zcDNfYW5nWzJdOi4xZn3CsCIpCiAgICAgICAgCiAgICAgICAgYm94ID0g"
"bGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlBsYW5lIENyb3NzIEFuZ2xlIChBICYg"
"Qik6IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIiAgQW5nbGU6IHtwcm9wcy5nZW9fcGxhbmVfYW5n"
"bGU6LjFmfcKwIikKICAgICAgICAKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gu"
"bGFiZWwodGV4dD0iUGxhbmUgQiBJbm5lciBEaXN0IChmcm9tIDAsMCwwKToiKQogICAgICAgIGJveC5s"
"YWJlbCh0ZXh0PWYiICBTaG9ydGVzdCBEaXN0OiB7cHJvcHMuZ2VvX3BsYW5lX2Rpc3Q6LjFmfSIpCiAg"
"ICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIEZvb3Q6ICh7cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMF06LjFm"
"fSwge3Byb3BzLmdlb19wbGFuZV9mb290WzFdOi4xZn0sIHtwcm9wcy5nZW9fcGxhbmVfZm9vdFsyXTou"
"MWZ9KSIpCgogICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJP"
"dXRlciBCb3VuZCBTcGhlcmUgKGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIg"
"IFJhZGl1cyAoTWF4IERpc3QpOiB7cHJvcHMuZ2VvX291dGVyX3JhZGl1czouMWZ9IikKCiAgICAgICAg"
"bGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNvcHlfZ2VvX2luZm8iLCBpY29uPSdDT1BZRE9XTicpCgpjbGFz"
"cyBUQ1RBX1BUX1N5c3RlbShUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBhbmVsKToKICAgIGJs"
"X2lkbmFtZSA9ICJUQ1RBX1BUX3N5c3RlbSIKICAgIGJsX2xhYmVsID0gIjUuIOOCt+OCueODhuODoCIK"
"ICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAg"
"ICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLm9wZW5fbGluayIsIGljb249J1VSTCcpCiAgICAgICAg"
"bGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmRlbGV0ZV9hbGwiLCBpY29uPSdUUkFTSCcsIHRleHQ9IuOCouOD"
"ieOCquODs+WJiumZpCAo5YWo44Kv44Oq44KiKSIpCgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgNi4g55m76Yyy"
"5Yem55CGCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PQpjbGFzc2VzID0gKAogICAgVENUQV9Qcm9wZXJ0aWVzLAogICAg"
"VENUQV9PVF9WaWV3U2VsZWN0ZWQsCiAgICBUQ1RBX09UX1VwZGF0ZVZpZXdJbmZvLAogICAgVENUQV9P"
"VF9Db3B5Vmlld0luZm8sCiAgICBUQ1RBX09UX0NyZWF0ZU9iamVjdHMsCiAgICBUQ1RBX09UX0RldGFj"
"aE9iamVjdHMsCiAgICBUQ1RBX09UX1Jlc2V0UHJvcHMsCiAgICBUQ1RBX09UX1JhbmRvbVJlc2V0LAog"
"ICAgVENUQV9PVF9Db3B5R2VvSW5mbywKICAgIFRDVEFfT1RfT3BlbkxpbmssCiAgICBUQ1RBX09UX0Rl"
"bGV0ZUFsbCwKICAgIFRDVEFfUFRfVmlld0luZm8sCiAgICBUQ1RBX1BUX01haW4sCiAgICBUQ1RBX1BU"
"X1NldHRpbmdzLAogICAgVENUQV9QVF9HZW9JbmZvLAogICAgVENUQV9QVF9TeXN0ZW0sCikKCmRlZiBy"
"ZWdpc3RlcigpOgogICAgZm9yIGNscyBpbiBjbGFzc2VzOgogICAgICAgIGJweS51dGlscy5yZWdpc3Rl"
"cl9jbGFzcyhjbHMpCiAgICBicHkudHlwZXMuU2NlbmUudGN0YV9wcm9wcyA9IGJweS5wcm9wcy5Qb2lu"
"dGVyUHJvcGVydHkodHlwZT1UQ1RBX1Byb3BlcnRpZXMpCgpkZWYgdW5yZWdpc3RlcigpOgogICAgZm9y"
"IGNscyBpbiByZXZlcnNlZChjbGFzc2VzKToKICAgICAgICBicHkudXRpbHMudW5yZWdpc3Rlcl9jbGFz"
"cyhjbHMpCiAgICBkZWwgYnB5LnR5cGVzLlNjZW5lLnRjdGFfcHJvcHMKCmlmIF9fbmFtZV9fID09ICJf"
"X21haW5fXyI6CiAgICByZWdpc3Rlcigp"
)
},
{
"name": "平面2つなす角度 20260713_004",
"code_b64": (
"YmxfaW5mbyA9IHsKICAgICJuYW1lIjogIlRvcnVzIEN1YmUgJiBUcmlhbmdsZSBBbmFseXplciIsCiAg"
"ICAiYXV0aG9yIjogIkFJIEFzc2lzdGFudCIsCiAgICAidmVyc2lvbiI6ICgxLCA1LCAwKSwKICAgICJi"
"bGVuZGVyIjogKDQsIDIsIDApLAogICAgImxvY2F0aW9uIjogIlZpZXczRCA+IFNpZGViYXIgPiBUQ1RB"
"IiwKICAgICJkZXNjcmlwdGlvbiI6ICLlubPpnaLjgbjjga7mnIDnn63ot53pm6LvvIjlhoXmrrvvvInj"
"gajjgIEz55CD5L2T44KS5YyF44KA5pyA5aSn6Led6Zui77yI5aSW5q6777yJ44Gu5bm+5L2V5a2m55qE"
"6KaW6Kaa5YyWIiwKICAgICJjYXRlZ29yeSI6ICIzRCBWaWV3IiwKfQoKaW1wb3J0IGJweQppbXBvcnQg"
"Ym1lc2gKaW1wb3J0IG1hdGgKaW1wb3J0IG1hdGh1dGlscwppbXBvcnQgcmFuZG9tCgojID09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT0KIyAxLiDliJ3mnJ/lgKTlrprnvqkKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClBSRUZJWCA9ICJUQ1RBXyIK"
"UEFSRU5UX0NPTExFQ1RJT05fTkFNRSA9ICJUb3J1c0N1YmVTcGFjZSIKU1VCX0NPTExFQ1RJT05fTkFN"
"RSA9ICJBbmFseXplck9iamVjdHMiClRPUlVTX1NLRUxFVE9OX05BTUUgPSAiVG9ydXNTa2VsZXRvbiIK"
"U1BIRVJFXzFfTkFNRSA9ICJTcGhlcmVfMSIKU1BIRVJFXzJfTkFNRSA9ICJTcGhlcmVfMiIKU1BIRVJF"
"XzNfTkFNRSA9ICJTcGhlcmVfMyIKVFJJQU5HTEVfQV9OQU1FID0gIlRyaWFuZ2xlX0EiClRSSUFOR0xF"
"X0JfTkFNRSA9ICJUcmlhbmdsZV9CIgpBUlJPV19OQU1FID0gIkFycm93X1Nob3J0ZXN0RGlzdCIKQ0lS"
"Q0xFX05BTUUgPSAiQ2lyY2xlX1BsYW5lQiIKRElTVF9TUEhFUkVfTkFNRSA9ICJTcGhlcmVfU2hvcnRl"
"c3REaXN0IgpPVVRFUl9TUEhFUkVfTkFNRSA9ICJTcGhlcmVfT3V0ZXJCb3VuZCIgIyDmlrDopo/ov73l"
"iqA6IDPnkIPjgpLljIXjgoDlpKfjgY3jgarnkIPkvZMKCiMgPT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDIuIOODl+OD"
"reODkeODhuOCo+Wumue+qe+8iOabtOaWsOOCs+ODvOODq+ODkOODg+OCr+WQq+OCgO+8iQojID09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT0KZGVmIHVwZGF0ZV92aXNfYXJyb3coc2VsZiwgY29udGV4dCk6CiAgICBvYmogPSBicHku"
"ZGF0YS5vYmplY3RzLmdldChBUlJPV19OQU1FKQogICAgaWYgb2JqOgogICAgICAgIG9iai5oaWRlX3Zp"
"ZXdwb3J0ID0gbm90IHNlbGYuc2hvd19hcnJvdwogICAgICAgIG9iai5oaWRlX3JlbmRlciA9IG5vdCBz"
"ZWxmLnNob3dfYXJyb3cKCmRlZiB1cGRhdGVfdmlzX2NpcmNsZShzZWxmLCBjb250ZXh0KToKICAgIG9i"
"aiA9IGJweS5kYXRhLm9iamVjdHMuZ2V0KENJUkNMRV9OQU1FKQogICAgaWYgb2JqOgogICAgICAgIG9i"
"ai5oaWRlX3ZpZXdwb3J0ID0gbm90IHNlbGYuc2hvd19jaXJjbGUKICAgICAgICBvYmouaGlkZV9yZW5k"
"ZXIgPSBub3Qgc2VsZi5zaG93X2NpcmNsZQoKZGVmIHVwZGF0ZV92aXNfc3BoZXJlKHNlbGYsIGNvbnRl"
"eHQpOgogICAgb2JqID0gYnB5LmRhdGEub2JqZWN0cy5nZXQoRElTVF9TUEhFUkVfTkFNRSkKICAgIGlm"
"IG9iajoKICAgICAgICBvYmouaGlkZV92aWV3cG9ydCA9IG5vdCBzZWxmLnNob3dfZGlzdF9zcGhlcmUK"
"ICAgICAgICBvYmouaGlkZV9yZW5kZXIgPSBub3Qgc2VsZi5zaG93X2Rpc3Rfc3BoZXJlCgpkZWYgdXBk"
"YXRlX3Zpc19vdXRlcl9zcGhlcmUoc2VsZiwgY29udGV4dCk6CiAgICBvYmogPSBicHkuZGF0YS5vYmpl"
"Y3RzLmdldChPVVRFUl9TUEhFUkVfTkFNRSkKICAgIGlmIG9iajoKICAgICAgICBvYmouaGlkZV92aWV3"
"cG9ydCA9IG5vdCBzZWxmLnNob3dfb3V0ZXJfc3BoZXJlCiAgICAgICAgb2JqLmhpZGVfcmVuZGVyID0g"
"bm90IHNlbGYuc2hvd19vdXRlcl9zcGhlcmUKCmNsYXNzIFRDVEFfUHJvcGVydGllcyhicHkudHlwZXMu"
"UHJvcGVydHlHcm91cCk6CiAgICAjIOODiOODvOODqeOCuemqqOagvOioreWumgogICAgdG9ydXNfY29s"
"b3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IlRvcnVzIENvbG9yIiwgc3VidHlw"
"ZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuMSwgMC41LCAwLjgsIDEuMCksIG1pbj0w"
"LjAsIG1heD0xLjApCiAgICB0b3J1c19hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0i"
"VG9ydXMgQWxwaGEiLCBkZWZhdWx0PTAuNSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIAogICAgIyDphY3n"
"va7jg6Ljg7zjg4kKICAgIG1vZGVfb3B0aW9ucyA9IFsoJ1JBTkRPTScsICLjg6njg7Pjg4Djg6AiLCAi"
"IiksICgnTUFOVUFMJywgIuaMh+WumuS9jee9riIsICIiKV0KICAgIHNwMV9tb2RlOiBicHkucHJvcHMu"
"RW51bVByb3BlcnR5KG5hbWU9Ik1vZGUiLCBpdGVtcz1tb2RlX29wdGlvbnMsIGRlZmF1bHQ9J1JBTkRP"
"TScpCiAgICBzcDJfbW9kZTogYnB5LnByb3BzLkVudW1Qcm9wZXJ0eShuYW1lPSJNb2RlIiwgaXRlbXM9"
"bW9kZV9vcHRpb25zLCBkZWZhdWx0PSdSQU5ET00nKQogICAgc3AzX21vZGU6IGJweS5wcm9wcy5FbnVt"
"UHJvcGVydHkobmFtZT0iTW9kZSIsIGl0ZW1zPW1vZGVfb3B0aW9ucywgZGVmYXVsdD0nUkFORE9NJykK"
"ICAgIAogICAgc3AxX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iUG9zaXRp"
"b24gMSIsIGRlZmF1bHQ9KDIuMCwgMi4wLCAyLjApKQogICAgc3AyX3BvczogYnB5LnByb3BzLkZsb2F0"
"VmVjdG9yUHJvcGVydHkobmFtZT0iUG9zaXRpb24gMiIsIGRlZmF1bHQ9KC0yLjAsIC0yLjAsIDIuMCkp"
"CiAgICBzcDNfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJQb3NpdGlvbiAz"
"IiwgZGVmYXVsdD0oMC4wLCAzLjAsIC0yLjApKQogICAgCiAgICBzcDFfYWN0dWFsX3BvczogYnB5LnBy"
"b3BzLkZsb2F0VmVjdG9yUHJvcGVydHkoZGVmYXVsdD0oMCwwLDApKQogICAgc3AyX2FjdHVhbF9wb3M6"
"IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KGRlZmF1bHQ9KDAsMCwwKSkKICAgIHNwM19hY3R1"
"YWxfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShkZWZhdWx0PSgwLDAsMCkpCgogICAg"
"IyDkuInop5LlvaLoqK3lrpoKICAgIHRyaV90aGlja25lc3M6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5"
"KG5hbWU9IlRoaWNrbmVzcyIsIGRlZmF1bHQ9MC4xLCBtaW49MC4wKQogICAgdHJpX2FscGhhOiBicHku"
"cHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJBbHBoYSIsIGRlZmF1bHQ9MC4xLCBtaW49MC4wLCBtYXg9"
"MS4wKQogICAgdHJpQV9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iQ29s"
"b3IgQSIsIHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBkZWZhdWx0PSgwLjgsIDAuMiwgMC4y"
"LCAxLjApLCBtaW49MC4wLCBtYXg9MS4wKQogICAgdHJpQl9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVj"
"dG9yUHJvcGVydHkobmFtZT0iQ29sb3IgQiIsIHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBk"
"ZWZhdWx0PSgwLjIsIDAuOCwgMC4yLCAxLjApLCBtaW49MC4wLCBtYXg9MS4wKQoKICAgICMg6KGo56S6"
"L+mdnuihqOekuuODiOOCsOODqwogICAgc2hvd19hcnJvdzogYnB5LnByb3BzLkJvb2xQcm9wZXJ0eShu"
"YW1lPSLnn6LljbAiLCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVfdmlzX2Fycm93KQogICAgc2hv"
"d19jaXJjbGU6IGJweS5wcm9wcy5Cb29sUHJvcGVydHkobmFtZT0i5YaG55ukIiwgZGVmYXVsdD1UcnVl"
"LCB1cGRhdGU9dXBkYXRlX3Zpc19jaXJjbGUpCiAgICBzaG93X2Rpc3Rfc3BoZXJlOiBicHkucHJvcHMu"
"Qm9vbFByb3BlcnR5KG5hbWU9IuacgOefrei3nemboueQg+S9kyjlhoXmrrspIiwgZGVmYXVsdD1UcnVl"
"LCB1cGRhdGU9dXBkYXRlX3Zpc19zcGhlcmUpCiAgICBzaG93X291dGVyX3NwaGVyZTogYnB5LnByb3Bz"
"LkJvb2xQcm9wZXJ0eShuYW1lPSLmnIDlpKfot53pm6LnkIPkvZMo5aSW5q67KSIsIGRlZmF1bHQ9VHJ1"
"ZSwgdXBkYXRlPXVwZGF0ZV92aXNfb3V0ZXJfc3BoZXJlKQoKICAgICMg6KaW6Kaa5YyW6Kit5a6aCiAg"
"ICBhcnJvd190aGlja25lc3M6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkFycm93IFRoaWNr"
"bmVzcyIsIGRlZmF1bHQ9MC4wNSwgbWluPTAuMDEsIG1heD0xLjApCiAgICBhcnJvd19jb2xvcjogYnB5"
"LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iQXJyb3cgQ29sb3IiLCBzdWJ0eXBlPSdDT0xP"
"Ul9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMS4wLCAwLjgsIDAuMCwgMS4wKSwgbWluPTAuMCwgbWF4"
"PTEuMCkKICAgIGNpcmNsZV9yYWRpdXM6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNs"
"ZSBSYWRpdXMiLCBkZWZhdWx0PTMuMCwgbWluPTAuMSkKICAgIGNpcmNsZV90aGlja25lc3M6IGJweS5w"
"cm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNsZSBUaGlja25lc3MiLCBkZWZhdWx0PTAuMSwgbWlu"
"PTAuMCkKICAgIGNpcmNsZV9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0i"
"Q2lyY2xlIENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDEuMCwg"
"MC41LCAwLjAsIDAuNCksIG1pbj0wLjAsIG1heD0xLjApCiAgICBjaXJjbGVfYWxwaGE6IGJweS5wcm9w"
"cy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNsZSBBbHBoYSIsIGRlZmF1bHQ9MC40LCBtaW49MC4wLCBt"
"YXg9MS4wKQogICAgZGlzdF9zcGhlcmVfY29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5"
"KG5hbWU9IklubmVyIFNwaGVyZSBDb2xvciIsIHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBk"
"ZWZhdWx0PSgwLjAsIDAuOCwgMS4wLCAxLjApLCBtaW49MC4wLCBtYXg9MS4wKQogICAgZGlzdF9zcGhl"
"cmVfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IklubmVyIFNwaGVyZSBBbHBoYSIs"
"IGRlZmF1bHQ9MC4wNiwgbWluPTAuMCwgbWF4PTEuMCkKICAgIG91dGVyX3NwaGVyZV9jb2xvcjogYnB5"
"LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iT3V0ZXIgU3BoZXJlIENvbG9yIiwgc3VidHlw"
"ZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuOCwgMC4wLCAxLjAsIDEuMCksIG1pbj0w"
"LjAsIG1heD0xLjApCiAgICBvdXRlcl9zcGhlcmVfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5"
"KG5hbWU9Ik91dGVyIFNwaGVyZSBBbHBoYSIsIGRlZmF1bHQ9MC4wNCwgbWluPTAuMCwgbWF4PTEuMCkK"
"CiAgICAjIOODk+ODpeODvOODneODvOODiOODu+W5vuS9leaDheWgsQogICAgdmlld19jZW50ZXI6IGJw"
"eS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IlZpZXcgQ2VudGVyIikKICAgIHZpZXdfc2l6"
"ZTogYnB5LnByb3BzLkludFZlY3RvclByb3BlcnR5KG5hbWU9IlZpZXcgU2l6ZSAoUHgpIiwgc2l6ZT0y"
"KQogICAgdmlld19kaXN0YW5jZTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iVmlldyBEaXN0"
"YW5jZSIpCiAgICAKICAgIGdlb19zcDFfZGlzdDogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAg"
"Z2VvX3NwMV9hbmc6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19z"
"cDJfZGlzdDogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAgZ2VvX3NwMl9hbmc6IGJweS5wcm9w"
"cy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19zcDNfZGlzdDogYnB5LnByb3BzLkZs"
"b2F0UHJvcGVydHkoKQogICAgZ2VvX3NwM19hbmc6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5"
"KHNpemU9MykKICAgIAogICAgZ2VvX3BsYW5lX2FuZ2xlOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgp"
"CiAgICBnZW9fcGxhbmVfZGlzdDogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkoKQogICAgZ2VvX3BsYW5l"
"X2Zvb3Q6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19wbGFuZV9u"
"b3JtYWw6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KHNpemU9MykKICAgIGdlb19vdXRlcl9y"
"YWRpdXM6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KCkgIyDlpJbmrrvnkIPkvZPjga7ljYrlvoQKCgoj"
"ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT0KIyAzLiDjg6bjg7zjg4bjgqPjg6rjg4bjgqPplqLmlbAKIyA9PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09CmRlZiBnZXRfM2Rfdmlld19jb250ZXh0KCk6CiAgICBmb3Igd2luZG93IGluIGJweS5jb250ZXh0"
"LndpbmRvd19tYW5hZ2VyLndpbmRvd3M6CiAgICAgICAgZm9yIGFyZWEgaW4gd2luZG93LnNjcmVlbi5h"
"cmVhczoKICAgICAgICAgICAgaWYgYXJlYS50eXBlID09ICdWSUVXXzNEJzoKICAgICAgICAgICAgICAg"
"IGZvciByZWdpb24gaW4gYXJlYS5yZWdpb25zOgogICAgICAgICAgICAgICAgICAgIGlmIHJlZ2lvbi50"
"eXBlID09ICdXSU5ET1cnOgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXJlYSwgcmVnaW9u"
"LCBhcmVhLnNwYWNlcy5hY3RpdmUKICAgIHJldHVybiBOb25lLCBOb25lLCBOb25lCgpkZWYgY3JlYXRl"
"X21hdGVyaWFsKG5hbWUsIGNvbG9yLCBhbHBoYSk6CiAgICBtYXQgPSBicHkuZGF0YS5tYXRlcmlhbHMu"
"Z2V0KG5hbWUpCiAgICBpZiBub3QgbWF0OgogICAgICAgIG1hdCA9IGJweS5kYXRhLm1hdGVyaWFscy5u"
"ZXcobmFtZSkKICAgIG1hdC51c2Vfbm9kZXMgPSBUcnVlCiAgICAKICAgIGlmIGhhc2F0dHIobWF0LCAi"
"YmxlbmRfbWV0aG9kIik6CiAgICAgICAgbWF0LmJsZW5kX21ldGhvZCA9ICdCTEVORCcKICAgIGlmIGhh"
"c2F0dHIobWF0LCAic2hhZG93X21ldGhvZCIpOgogICAgICAgIG1hdC5zaGFkb3dfbWV0aG9kID0gJ05P"
"TkUnCiAgICAKICAgIGJzZGYgPSBtYXQubm9kZV90cmVlLm5vZGVzLmdldCgiUHJpbmNpcGxlZCBCU0RG"
"IikKICAgIGlmIGJzZGY6CiAgICAgICAgYnNkZi5pbnB1dHNbIkJhc2UgQ29sb3IiXS5kZWZhdWx0X3Zh"
"bHVlID0gY29sb3IKICAgICAgICBic2RmLmlucHV0c1siQWxwaGEiXS5kZWZhdWx0X3ZhbHVlID0gYWxw"
"aGEKICAgIHJldHVybiBtYXQKCmRlZiBjYWxjX2dlb19kYXRhKHByb3BzKToKICAgIGRlZiBjYWxjX2Rp"
"c3RfYW5nbGUodmVjKToKICAgICAgICBkaXN0ID0gdmVjLmxlbmd0aAogICAgICAgIGlmIGRpc3QgPT0g"
"MDogcmV0dXJuIDAsIDAsIDAsIDAKICAgICAgICBuID0gdmVjLm5vcm1hbGl6ZWQoKQogICAgICAgIGF4"
"ID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhuLngpKQogICAgICAgIGF5ID0gbWF0aC5kZWdyZWVzKG1h"
"dGguYWNvcyhuLnkpKQogICAgICAgIGF6ID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhuLnopKQogICAg"
"ICAgIHJldHVybiBkaXN0LCBheCwgYXksIGF6CgogICAgcDAgPSBtYXRodXRpbHMuVmVjdG9yKCgwLCAw"
"LCAwKSkKICAgIHAxID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5zcDFfYWN0dWFsX3BvcykKICAgIHAy"
"ID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5zcDJfYWN0dWFsX3BvcykKICAgIHAzID0gbWF0aHV0aWxz"
"LlZlY3Rvcihwcm9wcy5zcDNfYWN0dWFsX3BvcykKCiAgICBkMSwgYXgxLCBheTEsIGF6MSA9IGNhbGNf"
"ZGlzdF9hbmdsZShwMSkKICAgIHByb3BzLmdlb19zcDFfZGlzdCA9IGQxCiAgICBwcm9wcy5nZW9fc3Ax"
"X2FuZyA9IChheDEsIGF5MSwgYXoxKQoKICAgIGQyLCBheDIsIGF5MiwgYXoyID0gY2FsY19kaXN0X2Fu"
"Z2xlKHAyKQogICAgcHJvcHMuZ2VvX3NwMl9kaXN0ID0gZDIKICAgIHByb3BzLmdlb19zcDJfYW5nID0g"
"KGF4MiwgYXkyLCBhejIpCgogICAgZDMsIGF4MywgYXkzLCBhejMgPSBjYWxjX2Rpc3RfYW5nbGUocDMp"
"CiAgICBwcm9wcy5nZW9fc3AzX2Rpc3QgPSBkMwogICAgcHJvcHMuZ2VvX3NwM19hbmcgPSAoYXgzLCBh"
"eTMsIGF6MykKICAgIAogICAgIyDlpJbmrrvnkIPkvZPvvIgz44Gk44Gu55CD44KS44GZ44G544Gm5YyF"
"44KA77yJ44Gu5Y2K5b6ECiAgICBwcm9wcy5nZW9fb3V0ZXJfcmFkaXVzID0gbWF4KGQxLCBkMiwgZDMp"
"CgogICAgdjEgPSBwMSAtIHAwCiAgICB2MiA9IHAyIC0gcDAKICAgIHYzID0gcDIgLSBwMQogICAgdjQg"
"PSBwMyAtIHAxCiAgICBuMSA9IHYxLmNyb3NzKHYyKQogICAgbjIgPSB2My5jcm9zcyh2NCkKICAgIAog"
"ICAgaWYgbjEubGVuZ3RoID4gMC4wMDAxIGFuZCBuMi5sZW5ndGggPiAwLjAwMDE6CiAgICAgICAgbjFf"
"bm9ybSA9IG4xLm5vcm1hbGl6ZWQoKQogICAgICAgIG4yX25vcm0gPSBuMi5ub3JtYWxpemVkKCkKICAg"
"ICAgICBwcm9wcy5nZW9fcGxhbmVfbm9ybWFsID0gbjJfbm9ybQogICAgICAgIGRvdCA9IG1heCgtMS4w"
"LCBtaW4oMS4wLCBuMV9ub3JtLmRvdChuMl9ub3JtKSkpCiAgICAgICAgcHJvcHMuZ2VvX3BsYW5lX2Fu"
"Z2xlID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhkb3QpKQogICAgZWxzZToKICAgICAgICBwcm9wcy5n"
"ZW9fcGxhbmVfYW5nbGUgPSAwLjAKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfbm9ybWFsID0gKDAsMCwx"
"KQoKICAgIGlmIG4yLmxlbmd0aCA+IDAuMDAwMToKICAgICAgICB0ID0gbjJfbm9ybS5kb3QocDEpCiAg"
"ICAgICAgSCA9IG4yX25vcm0gKiB0CiAgICAgICAgcHJvcHMuZ2VvX3BsYW5lX2Rpc3QgPSBhYnModCkK"
"ICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZm9vdCA9IEgKICAgIGVsc2U6CiAgICAgICAgcHJvcHMuZ2Vv"
"X3BsYW5lX2Rpc3QgPSAwLjAKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZm9vdCA9ICgwLCAwLCAwKQoK"
"IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09CiMgNC4g44Kq44Oa44Os44O844K/44O8ICjlh6bnkIbjg63jgrjjg4Pjgq8p"
"CiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PQpjbGFzcyBUQ1RBX09UX1ZpZXdTZWxlY3RlZChicHkudHlwZXMuT3BlcmF0"
"b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEudmlld19zZWxlY3RlZCIKICAgIGJsX2xhYmVsID0gIumB"
"uOaKnuOCkueUu+mdouS4reWkruOBqyIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAg"
"ICAgIGJweS5vcHMudmlldzNkLnZpZXdfc2VsZWN0ZWQoKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVE"
"J30KCmNsYXNzIFRDVEFfT1RfVXBkYXRlVmlld0luZm8oYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJs"
"X2lkbmFtZSA9ICJ0Y3RhLnVwZGF0ZV92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICLnlLvpnaLmg4Xl"
"oLHmm7TmlrAiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBhcmVhLCByZWdp"
"b24sIHNwYWNlID0gZ2V0XzNkX3ZpZXdfY29udGV4dCgpCiAgICAgICAgaWYgbm90IHNwYWNlOgogICAg"
"ICAgICAgICBzZWxmLnJlcG9ydCh7J1dBUk5JTkcnfSwgIjNE44OT44Ol44O844GM6KaL44Gk44GL44KK"
"44G+44Gb44KTIikKICAgICAgICAgICAgcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICBydjNkID0g"
"c3BhY2UucmVnaW9uXzNkCiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAg"
"ICAgICBwcm9wcy52aWV3X2NlbnRlciA9IHJ2M2Qudmlld19sb2NhdGlvbgogICAgICAgIHByb3BzLnZp"
"ZXdfc2l6ZSA9IChyZWdpb24ud2lkdGgsIHJlZ2lvbi5oZWlnaHQpCiAgICAgICAgaWYgcnYzZC52aWV3"
"X3BlcnNwZWN0aXZlID09ICdQRVJTUCc6CiAgICAgICAgICAgIHByb3BzLnZpZXdfZGlzdGFuY2UgPSBy"
"djNkLnZpZXdfZGlzdGFuY2UKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcm9wcy52aWV3X2Rpc3Rh"
"bmNlID0gMC4wIAogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfQ29weVZp"
"ZXdJbmZvKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5jb3B5X3ZpZXdf"
"aW5mbyIKICAgIGJsX2xhYmVsID0gIuODk+ODpeODvOaDheWgseOCkuOCs+ODlOODvCIKICAgIGRlZiBl"
"eGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3By"
"b3BzCiAgICAgICAgbGluZXMgPSBbCiAgICAgICAgICAgIGYiQ2VudGVyOiBYPXtwcm9wcy52aWV3X2Nl"
"bnRlci54Oi4xZn0sIFk9e3Byb3BzLnZpZXdfY2VudGVyLnk6LjFmfSwgWj17cHJvcHMudmlld19jZW50"
"ZXIuejouMWZ9IiwKICAgICAgICAgICAgZiJTaXplOiBXPXtwcm9wcy52aWV3X3NpemVbMF19LCBIPXtw"
"cm9wcy52aWV3X3NpemVbMV19IiwKICAgICAgICAgICAgZiJEaXN0YW5jZToge3Byb3BzLnZpZXdfZGlz"
"dGFuY2U6LjFmfSIgaWYgcHJvcHMudmlld19kaXN0YW5jZSA+IDAgZWxzZSAiRGlzdGFuY2U6IE4vQSIK"
"ICAgICAgICBdCiAgICAgICAgY29udGV4dC53aW5kb3dfbWFuYWdlci5jbGlwYm9hcmQgPSAiXG4iLmpv"
"aW4obGluZXMpCiAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLjgrPjg5Tjg7zjgZfjgb7jgZfj"
"gZ8iKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfQ3JlYXRlT2JqZWN0"
"cyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEuY3JlYXRlX29iamVjdHMi"
"CiAgICBibF9sYWJlbCA9ICLkvZzmiJAiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAg"
"ICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAgIAogICAgICAgIHBhcmVu"
"dF9jb2wgPSBicHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoUEFSRU5UX0NPTExFQ1RJT05fTkFNRSkKICAg"
"ICAgICBpZiBub3QgcGFyZW50X2NvbDoKICAgICAgICAgICAgcGFyZW50X2NvbCA9IGJweS5kYXRhLmNv"
"bGxlY3Rpb25zLm5ldyhQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQogICAgICAgICAgICBjb250ZXh0LnNj"
"ZW5lLmNvbGxlY3Rpb24uY2hpbGRyZW4ubGluayhwYXJlbnRfY29sKQogICAgICAgICAgICAKICAgICAg"
"ICBzdWJfY29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMuZ2V0KFNVQl9DT0xMRUNUSU9OX05BTUUpCiAg"
"ICAgICAgaWYgbm90IHN1Yl9jb2w6CiAgICAgICAgICAgIHN1Yl9jb2wgPSBicHkuZGF0YS5jb2xsZWN0"
"aW9ucy5uZXcoU1VCX0NPTExFQ1RJT05fTkFNRSkKICAgICAgICAgICAgcGFyZW50X2NvbC5jaGlsZHJl"
"bi5saW5rKHN1Yl9jb2wpCgogICAgICAgIG5hbWVzX3RvX2RlbGV0ZSA9IFsKICAgICAgICAgICAgVE9S"
"VVNfU0tFTEVUT05fTkFNRSwgU1BIRVJFXzFfTkFNRSwgU1BIRVJFXzJfTkFNRSwgU1BIRVJFXzNfTkFN"
"RSwgCiAgICAgICAgICAgIFRSSUFOR0xFX0FfTkFNRSwgVFJJQU5HTEVfQl9OQU1FLCBBUlJPV19OQU1F"
"LCBDSVJDTEVfTkFNRSwgRElTVF9TUEhFUkVfTkFNRSwgT1VURVJfU1BIRVJFX05BTUUKICAgICAgICBd"
"CiAgICAgICAgZm9yIG9ial9uYW1lIGluIG5hbWVzX3RvX2RlbGV0ZToKICAgICAgICAgICAgaWYgb2Jq"
"X25hbWUgaW4gYnB5LmRhdGEub2JqZWN0czoKICAgICAgICAgICAgICAgIGJweS5kYXRhLm9iamVjdHMu"
"cmVtb3ZlKGJweS5kYXRhLm9iamVjdHNbb2JqX25hbWVdLCBkb191bmxpbms9VHJ1ZSkKCiAgICAgICAg"
"IyDpqqjmoLzkvZzmiJAKICAgICAgICBtZXNoID0gYnB5LmRhdGEubWVzaGVzLm5ldyhUT1JVU19TS0VM"
"RVRPTl9OQU1FKQogICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVjdHMubmV3KFRPUlVTX1NLRUxFVE9O"
"X05BTUUsIG1lc2gpCiAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqKQogICAgICAgIGJtID0g"
"Ym1lc2gubmV3KCkKICAgICAgICBibWVzaC5vcHMuY3JlYXRlX2N1YmUoYm0sIHNpemU9MTAuMCkKICAg"
"ICAgICBibWVzaC5vcHMuZGVsZXRlKGJtLCBnZW9tPWJtLmZhY2VzLCBjb250ZXh0PSdGQUNFUycpCiAg"
"ICAgICAgYm0udG9fbWVzaChtZXNoKQogICAgICAgIGJtLmZyZWUoKQogICAgICAgIHNraW5fbW9kID0g"
"b2JqLm1vZGlmaWVycy5uZXcobmFtZT0iU2tpbiIsIHR5cGU9J1NLSU4nKQogICAgICAgIHN1Yl9tb2Qg"
"PSBvYmoubW9kaWZpZXJzLm5ldyhuYW1lPSJTdWJkaXZpc2lvbiIsIHR5cGU9J1NVQlNVUkYnKQogICAg"
"ICAgIHN1Yl9tb2QubGV2ZWxzID0gMgogICAgICAgIGZvciB2IGluIG9iai5kYXRhLnNraW5fdmVydGlj"
"ZXNbMF0uZGF0YToKICAgICAgICAgICAgdi5yYWRpdXMgPSAoMC4yLCAwLjIpCiAgICAgICAgb2JqLmFj"
"dGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9Ub3J1cyIsIHByb3BzLnRv"
"cnVzX2NvbG9yLCBwcm9wcy50b3J1c19hbHBoYSkKCiAgICAgICAgIyDnkIPkvZPkvZzmiJAKICAgICAg"
"ICBkZWYgZ2V0X3Bvcyhtb2RlLCBwcm9wX3Bvcyk6CiAgICAgICAgICAgIGlmIG1vZGUgPT0gJ1JBTkRP"
"TSc6CiAgICAgICAgICAgICAgICByZXR1cm4gKHJhbmRvbS51bmlmb3JtKC01LCA1KSwgcmFuZG9tLnVu"
"aWZvcm0oLTUsIDUpLCByYW5kb20udW5pZm9ybSgtNSwgNSkpCiAgICAgICAgICAgIHJldHVybiBwcm9w"
"X3BvcwoKICAgICAgICBwcm9wcy5zcDFfYWN0dWFsX3BvcyA9IGdldF9wb3MocHJvcHMuc3AxX21vZGUs"
"IHByb3BzLnNwMV9wb3MpCiAgICAgICAgcHJvcHMuc3AyX2FjdHVhbF9wb3MgPSBnZXRfcG9zKHByb3Bz"
"LnNwMl9tb2RlLCBwcm9wcy5zcDJfcG9zKQogICAgICAgIHByb3BzLnNwM19hY3R1YWxfcG9zID0gZ2V0"
"X3Bvcyhwcm9wcy5zcDNfbW9kZSwgcHJvcHMuc3AzX3BvcykKCiAgICAgICAgZGVmIGNyZWF0ZV9zcGhl"
"cmUobmFtZSwgbG9jKToKICAgICAgICAgICAgbWVzaCA9IGJweS5kYXRhLm1lc2hlcy5uZXcobmFtZSkK"
"ICAgICAgICAgICAgb2JqID0gYnB5LmRhdGEub2JqZWN0cy5uZXcobmFtZSwgbWVzaCkKICAgICAgICAg"
"ICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqKQogICAgICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAg"
"ICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfdXZzcGhlcmUoYm0sIHVfc2VnbWVudHM9MTYsIHZfc2Vn"
"bWVudHM9OCwgcmFkaXVzPTAuNSkKICAgICAgICAgICAgYm0udG9fbWVzaChtZXNoKQogICAgICAgICAg"
"ICBibS5mcmVlKCkKICAgICAgICAgICAgb2JqLmxvY2F0aW9uID0gbG9jCiAgICAgICAgICAgIHJldHVy"
"biBvYmoKCiAgICAgICAgY3JlYXRlX3NwaGVyZShTUEhFUkVfMV9OQU1FLCBwcm9wcy5zcDFfYWN0dWFs"
"X3BvcykKICAgICAgICBjcmVhdGVfc3BoZXJlKFNQSEVSRV8yX05BTUUsIHByb3BzLnNwMl9hY3R1YWxf"
"cG9zKQogICAgICAgIGNyZWF0ZV9zcGhlcmUoU1BIRVJFXzNfTkFNRSwgcHJvcHMuc3AzX2FjdHVhbF9w"
"b3MpCgogICAgICAgICMg5LiJ6KeS5b2i5L2c5oiQCiAgICAgICAgZGVmIGNyZWF0ZV90cmlhbmdsZShu"
"YW1lLCBwMSwgcDIsIHAzLCBjb2xvciwgYWxwaGEsIHRoaWNrbmVzcyk6CiAgICAgICAgICAgIG1lc2gg"
"PSBicHkuZGF0YS5tZXNoZXMubmV3KG5hbWUpCiAgICAgICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVj"
"dHMubmV3KG5hbWUsIG1lc2gpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9iaikKICAg"
"ICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICB2MSA9IGJtLnZlcnRzLm5ldyhwMSkK"
"ICAgICAgICAgICAgdjIgPSBibS52ZXJ0cy5uZXcocDIpCiAgICAgICAgICAgIHYzID0gYm0udmVydHMu"
"bmV3KHAzKQogICAgICAgICAgICBibS5mYWNlcy5uZXcoKHYxLCB2MiwgdjMpKQogICAgICAgICAgICBi"
"bS50b19tZXNoKG1lc2gpCiAgICAgICAgICAgIGJtLmZyZWUoKQogICAgICAgICAgICBzb2wgPSBvYmou"
"bW9kaWZpZXJzLm5ldyhuYW1lPSJTb2xpZGlmeSIsIHR5cGU9J1NPTElESUZZJykKICAgICAgICAgICAg"
"c29sLnRoaWNrbmVzcyA9IHRoaWNrbmVzcwogICAgICAgICAgICBvYmouYWN0aXZlX21hdGVyaWFsID0g"
"Y3JlYXRlX21hdGVyaWFsKFBSRUZJWCsiTWF0XyIrbmFtZSwgY29sb3IsIGFscGhhKQoKICAgICAgICBj"
"cmVhdGVfdHJpYW5nbGUoVFJJQU5HTEVfQV9OQU1FLCAoMCwwLDApLCBwcm9wcy5zcDFfYWN0dWFsX3Bv"
"cywgcHJvcHMuc3AyX2FjdHVhbF9wb3MsIHByb3BzLnRyaUFfY29sb3IsIHByb3BzLnRyaV9hbHBoYSwg"
"cHJvcHMudHJpX3RoaWNrbmVzcykKICAgICAgICBjcmVhdGVfdHJpYW5nbGUoVFJJQU5HTEVfQl9OQU1F"
"LCBwcm9wcy5zcDFfYWN0dWFsX3BvcywgcHJvcHMuc3AyX2FjdHVhbF9wb3MsIHByb3BzLnNwM19hY3R1"
"YWxfcG9zLCBwcm9wcy50cmlCX2NvbG9yLCBwcm9wcy50cmlfYWxwaGEsIHByb3BzLnRyaV90aGlja25l"
"c3MpCgogICAgICAgICMg5bm+5L2V6KiI566XCiAgICAgICAgY2FsY19nZW9fZGF0YShwcm9wcykKCiAg"
"ICAgICAgIyDoppbopprljJbopoHntKDjga7kvZzmiJAKICAgICAgICBkaXN0ID0gcHJvcHMuZ2VvX3Bs"
"YW5lX2Rpc3QKICAgICAgICBpZiBkaXN0ID4gMC4wMToKICAgICAgICAgICAgIyDnn6LljbAKICAgICAg"
"ICAgICAgbWVzaF9hcnIgPSBicHkuZGF0YS5tZXNoZXMubmV3KEFSUk9XX05BTUUpCiAgICAgICAgICAg"
"IG9ial9hcnIgPSBicHkuZGF0YS5vYmplY3RzLm5ldyhBUlJPV19OQU1FLCBtZXNoX2FycikKICAgICAg"
"ICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqX2FycikKICAgICAgICAgICAgYm0gPSBibWVzaC5u"
"ZXcoKQogICAgICAgICAgICByID0gcHJvcHMuYXJyb3dfdGhpY2tuZXNzCiAgICAgICAgICAgIGhlYWRf"
"bCA9IG1pbihkaXN0ICogMC4zLCByICogNC4wKQogICAgICAgICAgICBib2R5X2wgPSBkaXN0IC0gaGVh"
"ZF9sCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfY29uZShibSwgY2FwX2VuZHM9VHJ1ZSwgY2Fw"
"X3RyaXM9RmFsc2UsIHNlZ21lbnRzPTE2LCByYWRpdXMxPXIsIHJhZGl1czI9ciwgZGVwdGg9Ym9keV9s"
"KQogICAgICAgICAgICBnZW9tX2hlYWQgPSBibWVzaC5vcHMuY3JlYXRlX2NvbmUoYm0sIGNhcF9lbmRz"
"PVRydWUsIGNhcF90cmlzPUZhbHNlLCBzZWdtZW50cz0xNiwgcmFkaXVzMT1yKjIuNSwgcmFkaXVzMj0w"
"LjAsIGRlcHRoPWhlYWRfbCkKICAgICAgICAgICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9"
"W3YgZm9yIHYgaW4gZ2VvbV9oZWFkWyd2ZXJ0cyddXSwgdmVjPSgwLCAwLCBib2R5X2wvMiArIGhlYWRf"
"bC8yKSkKICAgICAgICAgICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9Ym0udmVydHMsIHZl"
"Yz0oMCwgMCwgYm9keV9sLzIpKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfYXJyKQogICAgICAg"
"ICAgICBibS5mcmVlKCkKICAgICAgICAgICAgCiAgICAgICAgICAgIG9ial9hcnIubG9jYXRpb24gPSAo"
"MCwgMCwgMCkKICAgICAgICAgICAgZm9vdF92ZWMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLmdlb19w"
"bGFuZV9mb290KQogICAgICAgICAgICByb3RfcXVhdCA9IG1hdGh1dGlscy5WZWN0b3IoKDAsMCwxKSku"
"cm90YXRpb25fZGlmZmVyZW5jZShmb290X3ZlYy5ub3JtYWxpemVkKCkpCiAgICAgICAgICAgIG9ial9h"
"cnIucm90YXRpb25fbW9kZSA9ICdRVUFURVJOSU9OJwogICAgICAgICAgICBvYmpfYXJyLnJvdGF0aW9u"
"X3F1YXRlcm5pb24gPSByb3RfcXVhdAogICAgICAgICAgICBvYmpfYXJyLmFjdGl2ZV9tYXRlcmlhbCA9"
"IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9BcnJvdyIsIHByb3BzLmFycm93X2NvbG9yLCAxLjAp"
"CiAgICAgICAgICAgIG9ial9hcnIuaGlkZV92aWV3cG9ydCA9IG5vdCBwcm9wcy5zaG93X2Fycm93CiAg"
"ICAgICAgICAgIG9ial9hcnIuaGlkZV9yZW5kZXIgPSBub3QgcHJvcHMuc2hvd19hcnJvdwoKICAgICAg"
"ICAgICAgIyDlhoYKICAgICAgICAgICAgbWVzaF9jaXIgPSBicHkuZGF0YS5tZXNoZXMubmV3KENJUkNM"
"RV9OQU1FKQogICAgICAgICAgICBvYmpfY2lyID0gYnB5LmRhdGEub2JqZWN0cy5uZXcoQ0lSQ0xFX05B"
"TUUsIG1lc2hfY2lyKQogICAgICAgICAgICBzdWJfY29sLm9iamVjdHMubGluayhvYmpfY2lyKQogICAg"
"ICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfY2lyY2xl"
"KGJtLCBjYXBfZW5kcz1UcnVlLCBjYXBfdHJpcz1GYWxzZSwgc2VnbWVudHM9MzIsIHJhZGl1cz1wcm9w"
"cy5jaXJjbGVfcmFkaXVzKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfY2lyKQogICAgICAgICAg"
"ICBibS5mcmVlKCkKICAgICAgICAgICAgb2JqX2Npci5sb2NhdGlvbiA9IHByb3BzLmdlb19wbGFuZV9m"
"b290CiAgICAgICAgICAgIG5vcm1hbF92ZWMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLmdlb19wbGFu"
"ZV9ub3JtYWwpCiAgICAgICAgICAgIGlmIG5vcm1hbF92ZWMubGVuZ3RoID4gMDoKICAgICAgICAgICAg"
"ICAgIHJvdF9xdWF0X2NpciA9IG1hdGh1dGlscy5WZWN0b3IoKDAsMCwxKSkucm90YXRpb25fZGlmZmVy"
"ZW5jZShub3JtYWxfdmVjKQogICAgICAgICAgICAgICAgb2JqX2Npci5yb3RhdGlvbl9tb2RlID0gJ1FV"
"QVRFUk5JT04nCiAgICAgICAgICAgICAgICBvYmpfY2lyLnJvdGF0aW9uX3F1YXRlcm5pb24gPSByb3Rf"
"cXVhdF9jaXIKICAgICAgICAgICAgc29sID0gb2JqX2Npci5tb2RpZmllcnMubmV3KG5hbWU9IlNvbGlk"
"aWZ5IiwgdHlwZT0nU09MSURJRlknKQogICAgICAgICAgICBzb2wudGhpY2tuZXNzID0gcHJvcHMuY2ly"
"Y2xlX3RoaWNrbmVzcwogICAgICAgICAgICBvYmpfY2lyLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9t"
"YXRlcmlhbChQUkVGSVgrIk1hdF9DaXJjbGUiLCBwcm9wcy5jaXJjbGVfY29sb3IsIHByb3BzLmNpcmNs"
"ZV9hbHBoYSkKICAgICAgICAgICAgb2JqX2Npci5oaWRlX3ZpZXdwb3J0ID0gbm90IHByb3BzLnNob3df"
"Y2lyY2xlCiAgICAgICAgICAgIG9ial9jaXIuaGlkZV9yZW5kZXIgPSBub3QgcHJvcHMuc2hvd19jaXJj"
"bGUKCiAgICAgICAgICAgICMg5pyA55+t6Led6Zui44Gu6YCP5piO55CD5L2TKOWGheauuykKICAgICAg"
"ICAgICAgbWVzaF9zcGggPSBicHkuZGF0YS5tZXNoZXMubmV3KERJU1RfU1BIRVJFX05BTUUpCiAgICAg"
"ICAgICAgIG9ial9zcGggPSBicHkuZGF0YS5vYmplY3RzLm5ldyhESVNUX1NQSEVSRV9OQU1FLCBtZXNo"
"X3NwaCkKICAgICAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmsob2JqX3NwaCkKICAgICAgICAgICAg"
"Ym0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICBibWVzaC5vcHMuY3JlYXRlX3V2c3BoZXJlKGJtLCB1"
"X3NlZ21lbnRzPTMyLCB2X3NlZ21lbnRzPTE2LCByYWRpdXM9ZGlzdCkKICAgICAgICAgICAgYm0udG9f"
"bWVzaChtZXNoX3NwaCkKICAgICAgICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAgIG9ial9zcGgubG9j"
"YXRpb24gPSAoMCwgMCwgMCkKICAgICAgICAgICAgZm9yIHBvbHkgaW4gbWVzaF9zcGgucG9seWdvbnM6"
"IHBvbHkudXNlX3Ntb290aCA9IFRydWUKICAgICAgICAgICAgb2JqX3NwaC5hY3RpdmVfbWF0ZXJpYWwg"
"PSBjcmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRfRGlzdFNwaGVyZSIsIHByb3BzLmRpc3Rfc3BoZXJl"
"X2NvbG9yLCBwcm9wcy5kaXN0X3NwaGVyZV9hbHBoYSkKICAgICAgICAgICAgb2JqX3NwaC5oaWRlX3Zp"
"ZXdwb3J0ID0gbm90IHByb3BzLnNob3dfZGlzdF9zcGhlcmUKICAgICAgICAgICAgb2JqX3NwaC5oaWRl"
"X3JlbmRlciA9IG5vdCBwcm9wcy5zaG93X2Rpc3Rfc3BoZXJlCgogICAgICAgICMg5aSW5q6744Gu5aSn"
"44GN44Gq6YCP5piO55CD5L2TIChORVcpCiAgICAgICAgb3V0ZXJfciA9IHByb3BzLmdlb19vdXRlcl9y"
"YWRpdXMKICAgICAgICBpZiBvdXRlcl9yID4gMDoKICAgICAgICAgICAgbWVzaF9vdXQgPSBicHkuZGF0"
"YS5tZXNoZXMubmV3KE9VVEVSX1NQSEVSRV9OQU1FKQogICAgICAgICAgICBvYmpfb3V0ID0gYnB5LmRh"
"dGEub2JqZWN0cy5uZXcoT1VURVJfU1BIRVJFX05BTUUsIG1lc2hfb3V0KQogICAgICAgICAgICBzdWJf"
"Y29sLm9iamVjdHMubGluayhvYmpfb3V0KQogICAgICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAg"
"ICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfdXZzcGhlcmUoYm0sIHVfc2VnbWVudHM9MzIsIHZfc2VnbWVu"
"dHM9MTYsIHJhZGl1cz1vdXRlcl9yKQogICAgICAgICAgICBibS50b19tZXNoKG1lc2hfb3V0KQogICAg"
"ICAgICAgICBibS5mcmVlKCkKICAgICAgICAgICAgb2JqX291dC5sb2NhdGlvbiA9ICgwLCAwLCAwKQog"
"ICAgICAgICAgICBmb3IgcG9seSBpbiBtZXNoX291dC5wb2x5Z29uczogcG9seS51c2Vfc21vb3RoID0g"
"VHJ1ZQogICAgICAgICAgICBvYmpfb3V0LmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQ"
"UkVGSVgrIk1hdF9PdXRlclNwaGVyZSIsIHByb3BzLm91dGVyX3NwaGVyZV9jb2xvciwgcHJvcHMub3V0"
"ZXJfc3BoZXJlX2FscGhhKQogICAgICAgICAgICBvYmpfb3V0LmhpZGVfdmlld3BvcnQgPSBub3QgcHJv"
"cHMuc2hvd19vdXRlcl9zcGhlcmUKICAgICAgICAgICAgb2JqX291dC5oaWRlX3JlbmRlciA9IG5vdCBw"
"cm9wcy5zaG93X291dGVyX3NwaGVyZQoKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBU"
"Q1RBX09UX0RldGFjaE9iamVjdHMoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0"
"Y3RhLmRldGFjaF9vYmplY3RzIgogICAgYmxfbGFiZWwgPSAi44Ki44OJ44Kq44Oz44GL44KJ5YiH44KK"
"6Zui44GXIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcGFyZW50X2NvbCA9"
"IGJweS5kYXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQogICAgICAgIGlm"
"IHBhcmVudF9jb2w6CiAgICAgICAgICAgIHBhcmVudF9jb2wubmFtZSA9IFBBUkVOVF9DT0xMRUNUSU9O"
"X05BTUUgKyAiX0RldGFjaGVkIgogICAgICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuWIh+OC"
"iumbouOBl+OBvuOBl+OBnyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9P"
"VF9SZXNldFByb3BzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5yZXNl"
"dF9wcm9wcyIKICAgIGJsX2xhYmVsID0gIuWIneacn+WApOOBq+aIu+OBmSIKICAgIGRlZiBleGVjdXRl"
"KHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAg"
"ICAgICAgcmVzZXRfbGlzdCA9IFsKICAgICAgICAgICAgInRvcnVzX2NvbG9yIiwgInRvcnVzX2FscGhh"
"IiwgInRyaV90aGlja25lc3MiLCAidHJpX2FscGhhIiwgInRyaUFfY29sb3IiLCAidHJpQl9jb2xvciIs"
"IAogICAgICAgICAgICAic2hvd19hcnJvdyIsICJzaG93X2NpcmNsZSIsICJzaG93X2Rpc3Rfc3BoZXJl"
"IiwgInNob3dfb3V0ZXJfc3BoZXJlIiwKICAgICAgICAgICAgImFycm93X3RoaWNrbmVzcyIsICJhcnJv"
"d19jb2xvciIsICJjaXJjbGVfcmFkaXVzIiwgImNpcmNsZV90aGlja25lc3MiLCAiY2lyY2xlX2NvbG9y"
"IiwgImNpcmNsZV9hbHBoYSIsCiAgICAgICAgICAgICJkaXN0X3NwaGVyZV9jb2xvciIsICJkaXN0X3Nw"
"aGVyZV9hbHBoYSIsICJvdXRlcl9zcGhlcmVfY29sb3IiLCAib3V0ZXJfc3BoZXJlX2FscGhhIgogICAg"
"ICAgIF0KICAgICAgICBmb3IgcCBpbiByZXNldF9saXN0OgogICAgICAgICAgICBwcm9wcy5wcm9wZXJ0"
"eV91bnNldChwKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfUmFuZG9t"
"UmVzZXQoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLnJhbmRvbV9yZXNl"
"dCIKICAgIGJsX2xhYmVsID0gIuODqeODs+ODgOODoOWGjeioiOeul++8huabtOaWsCIKICAgIGRlZiBl"
"eGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIGJweS5vcHMudGN0YS5jcmVhdGVfb2JqZWN0cygp"
"CiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9Db3B5R2VvSW5mbyhicHku"
"dHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEuY29weV9nZW9faW5mbyIKICAgIGJs"
"X2xhYmVsID0gIuW5vuS9leaDheWgseOCkuOCs+ODlOODvCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNv"
"bnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGlu"
"ZXMgPSBbCiAgICAgICAgICAgIGYiU3AxIERpc3Q6IHtwcm9wcy5nZW9fc3AxX2Rpc3Q6LjFmfSwgQW5n"
"OiBYPXtwcm9wcy5nZW9fc3AxX2FuZ1swXTouMWZ9LCBZPXtwcm9wcy5nZW9fc3AxX2FuZ1sxXTouMWZ9"
"LCBaPXtwcm9wcy5nZW9fc3AxX2FuZ1syXTouMWZ9IiwKICAgICAgICAgICAgZiJTcDIgRGlzdDoge3By"
"b3BzLmdlb19zcDJfZGlzdDouMWZ9LCBBbmc6IFg9e3Byb3BzLmdlb19zcDJfYW5nWzBdOi4xZn0sIFk9"
"e3Byb3BzLmdlb19zcDJfYW5nWzFdOi4xZn0sIFo9e3Byb3BzLmdlb19zcDJfYW5nWzJdOi4xZn0iLAog"
"ICAgICAgICAgICBmIlNwMyBEaXN0OiB7cHJvcHMuZ2VvX3NwM19kaXN0Oi4xZn0sIEFuZzogWD17cHJv"
"cHMuZ2VvX3NwM19hbmdbMF06LjFmfSwgWT17cHJvcHMuZ2VvX3NwM19hbmdbMV06LjFmfSwgWj17cHJv"
"cHMuZ2VvX3NwM19hbmdbMl06LjFmfSIsCiAgICAgICAgICAgIGYiUGxhbmUgQ3Jvc3MgQW5nbGU6IHtw"
"cm9wcy5nZW9fcGxhbmVfYW5nbGU6LjFmfSIsCiAgICAgICAgICAgIGYiU2hvcnRlc3QgRGlzdCB0byBQ"
"bGFuZSBCIChJbm5lciBSYWRpdXMpOiB7cHJvcHMuZ2VvX3BsYW5lX2Rpc3Q6LjFmfSIsCiAgICAgICAg"
"ICAgIGYiU2hvcnRlc3QgRm9vdCBQb3M6IFg9e3Byb3BzLmdlb19wbGFuZV9mb290WzBdOi4xZn0sIFk9"
"e3Byb3BzLmdlb19wbGFuZV9mb290WzFdOi4xZn0sIFo9e3Byb3BzLmdlb19wbGFuZV9mb290WzJdOi4x"
"Zn0iLAogICAgICAgICAgICBmIk91dGVyIFNoZWxsIFJhZGl1cyAoTWF4IERpc3QpOiB7cHJvcHMuZ2Vv"
"X291dGVyX3JhZGl1czouMWZ9IgogICAgICAgIF0KICAgICAgICBjb250ZXh0LndpbmRvd19tYW5hZ2Vy"
"LmNsaXBib2FyZCA9ICJcbiIuam9pbihsaW5lcykKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwg"
"IuOCs+ODlOODvOOBl+OBvuOBl+OBnyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3Mg"
"VENUQV9PVF9PcGVuTGluayhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEu"
"b3Blbl9saW5rIgogICAgYmxfbGFiZWwgPSAi44Oq44Oz44Kv44KS6ZaL44GPIgogICAgZGVmIGV4ZWN1"
"dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgYnB5Lm9wcy53bS51cmxfb3Blbih1cmw9Imh0dHBzOi8v"
"d3d3LmJsZW5kZXIub3JnLyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9P"
"VF9EZWxldGVBbGwoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLmRlbGV0"
"ZV9hbGwiCiAgICBibF9sYWJlbCA9ICLplqLpgKPlhajliYrpmaQiCiAgICBkZWYgZXhlY3V0ZShzZWxm"
"LCBjb250ZXh0KToKICAgICAgICBwYXJlbnRfY29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMuZ2V0KFBB"
"UkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAgaWYgcGFyZW50X2NvbDoKICAgICAgICAgICAgZm9y"
"IG9iaiBpbiBwYXJlbnRfY29sLmFsbF9vYmplY3RzOgogICAgICAgICAgICAgICAgYnB5LmRhdGEub2Jq"
"ZWN0cy5yZW1vdmUob2JqLCBkb191bmxpbms9VHJ1ZSkKICAgICAgICAgICAgYnB5LmRhdGEuY29sbGVj"
"dGlvbnMucmVtb3ZlKHBhcmVudF9jb2wpCiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsnSU5GTyd9LCAi"
"5YWo5YmK6Zmk44GX44G+44GX44GfIikKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgoKIyA9PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09CiMgNS4gVUkg44OR44ON44Or5a6a576pCiMgPT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBUQ1RB"
"X1BUX1BhbmVsQmFzZToKICAgIGJsX3NwYWNlX3R5cGUgPSAnVklFV18zRCcKICAgIGJsX3JlZ2lvbl90"
"eXBlID0gJ1VJJwogICAgYmxfY2F0ZWdvcnkgPSAiVENUQSIKCmNsYXNzIFRDVEFfUFRfVmlld0luZm8o"
"VENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9Q"
"VF92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICIxLiDjg5Pjg6Xjg7zjg53jg7zjg4jmg4XloLEiCiAg"
"ICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAg"
"ICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9y"
"KCJ0Y3RhLnZpZXdfc2VsZWN0ZWQiLCBpY29uPSdWSUVXWk9PTScpCiAgICAgICAgbGF5b3V0Lm9wZXJh"
"dG9yKCJ0Y3RhLnVwZGF0ZV92aWV3X2luZm8iLCBpY29uPSdGSUxFX1JFRlJFU0gnKQogICAgICAgIGJv"
"eCA9IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiQ2VudGVyOiAoe3Byb3BzLnZp"
"ZXdfY2VudGVyLng6LjFmfSwge3Byb3BzLnZpZXdfY2VudGVyLnk6LjFmfSwge3Byb3BzLnZpZXdfY2Vu"
"dGVyLno6LjFmfSkiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiU2l6ZSAocHgpOiBXPXtwcm9wcy52"
"aWV3X3NpemVbMF19LCBIPXtwcm9wcy52aWV3X3NpemVbMV19IikKICAgICAgICBib3gubGFiZWwodGV4"
"dD1mIkNhbWVyYSBEaXN0OiB7cHJvcHMudmlld19kaXN0YW5jZTouMWZ9IiBpZiBwcm9wcy52aWV3X2Rp"
"c3RhbmNlID4gMCBlbHNlICJDYW1lcmEgRGlzdDogTi9BIikKICAgICAgICBsYXlvdXQub3BlcmF0b3Io"
"InRjdGEuY29weV92aWV3X2luZm8iLCBpY29uPSdDT1BZRE9XTicpCgpjbGFzcyBUQ1RBX1BUX01haW4o"
"VENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9Q"
"VF9tYWluIgogICAgYmxfbGFiZWwgPSAiMi4g44Oh44Kk44Oz5a6f6KGMIgogICAgZGVmIGRyYXcoc2Vs"
"ZiwgY29udGV4dCk6CiAgICAgICAgbGF5b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBsYXlvdXQub3Bl"
"cmF0b3IoInRjdGEuY3JlYXRlX29iamVjdHMiLCBpY29uPSdQTEFZJywgdGV4dD0i5L2c5oiQICjnlJ/m"
"iJDjg7vmm7TmlrApIikKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEuZGV0YWNoX29iamVjdHMi"
"LCBpY29uPSdVTkxJTktFRCcpCgpjbGFzcyBUQ1RBX1BUX1NldHRpbmdzKFRDVEFfUFRfUGFuZWxCYXNl"
"LCBicHkudHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfc2V0dGluZ3MiCiAgICBi"
"bF9sYWJlbCA9ICIzLiDjg5Hjg6njg6Hjg7zjgr/oqK3lrpoiCiAgICBkZWYgZHJhdyhzZWxmLCBjb250"
"ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHByb3BzID0gY29udGV4dC5z"
"Y2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLnJlc2V0X3Byb3BzIiwg"
"aWNvbj0nTE9PUF9CQUNLJykKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFi"
"ZWwodGV4dD0iVG9ydXMgRnJhbWU6IikKICAgICAgICBib3gucHJvcChwcm9wcywgInRvcnVzX2NvbG9y"
"IiwgdGV4dD0iQ29sb3IiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidG9ydXNfYWxwaGEiLCB0ZXh0"
"PSJBbHBoYSIpCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9"
"IlNwaGVyZXM6IikKICAgICAgICBmb3IgaSBpbiByYW5nZSgxLCA0KToKICAgICAgICAgICAgcm93ID0g"
"Ym94LnJvdygpCiAgICAgICAgICAgIHJvdy5wcm9wKHByb3BzLCBmInNwe2l9X21vZGUiLCB0ZXh0PWYi"
"U3B7aX0iKQogICAgICAgICAgICBpZiBnZXRhdHRyKHByb3BzLCBmInNwe2l9X21vZGUiKSA9PSAnTUFO"
"VUFMJzoKICAgICAgICAgICAgICAgIGJveC5wcm9wKHByb3BzLCBmInNwe2l9X3BvcyIsIHRleHQ9IlhZ"
"WiIpCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlRyaWFu"
"Z2xlczoiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidHJpX3RoaWNrbmVzcyIpCiAgICAgICAgYm94"
"LnByb3AocHJvcHMsICJ0cmlfYWxwaGEiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidHJpQV9jb2xv"
"ciIpCiAgICAgICAgYm94LnByb3AocHJvcHMsICJ0cmlCX2NvbG9yIikKICAgICAgICAKICAgICAgICAj"
"IOihqOekui/pnZ7ooajnpLrjg4jjgrDjg6vjgajoqK3lrpoKICAgICAgICBib3ggPSBsYXlvdXQuYm94"
"KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iR2VvbWV0cmljIFZpc3VhbHMgVG9nZ2xlOiIpCiAgICAg"
"ICAgCiAgICAgICAgcm93ID0gYm94LnJvdygpCiAgICAgICAgcm93LnByb3AocHJvcHMsICJzaG93X2Fy"
"cm93IiwgaWNvbj0nVFJJQV9SSUdIVCcgaWYgbm90IHByb3BzLnNob3dfYXJyb3cgZWxzZSAnVFJJQV9E"
"T1dOJykKICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfY2lyY2xlIiwgaWNvbj0nVFJJQV9SSUdI"
"VCcgaWYgbm90IHByb3BzLnNob3dfY2lyY2xlIGVsc2UgJ1RSSUFfRE9XTicpCiAgICAgICAgCiAgICAg"
"ICAgcm93ID0gYm94LnJvdygpCiAgICAgICAgcm93LnByb3AocHJvcHMsICJzaG93X2Rpc3Rfc3BoZXJl"
"IiwgaWNvbj0nVFJJQV9SSUdIVCcgaWYgbm90IHByb3BzLnNob3dfZGlzdF9zcGhlcmUgZWxzZSAnVFJJ"
"QV9ET1dOJykKICAgICAgICByb3cucHJvcChwcm9wcywgInNob3dfb3V0ZXJfc3BoZXJlIiwgaWNvbj0n"
"VFJJQV9SSUdIVCcgaWYgbm90IHByb3BzLnNob3dfb3V0ZXJfc3BoZXJlIGVsc2UgJ1RSSUFfRE9XTicp"
"CgogICAgICAgIGlmIHByb3BzLnNob3dfYXJyb3c6CiAgICAgICAgICAgIGNvbCA9IGJveC5jb2x1bW4o"
"YWxpZ249VHJ1ZSkKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJhcnJvd190aGlja25lc3MiKQog"
"ICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImFycm93X2NvbG9yIikKICAgICAgICAKICAgICAgICBp"
"ZiBwcm9wcy5zaG93X2NpcmNsZToKICAgICAgICAgICAgY29sID0gYm94LmNvbHVtbihhbGlnbj1UcnVl"
"KQogICAgICAgICAgICBjb2wuc2VwYXJhdG9yKCkKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJj"
"aXJjbGVfcmFkaXVzIikKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJjaXJjbGVfdGhpY2tuZXNz"
"IikKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJjaXJjbGVfY29sb3IiKQogICAgICAgICAgICBj"
"b2wucHJvcChwcm9wcywgImNpcmNsZV9hbHBoYSIpCiAgICAgICAgICAgIAogICAgICAgIGlmIHByb3Bz"
"LnNob3dfZGlzdF9zcGhlcmU6CiAgICAgICAgICAgIGNvbCA9IGJveC5jb2x1bW4oYWxpZ249VHJ1ZSkK"
"ICAgICAgICAgICAgY29sLnNlcGFyYXRvcigpCiAgICAgICAgICAgIGNvbC5wcm9wKHByb3BzLCAiZGlz"
"dF9zcGhlcmVfY29sb3IiKQogICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImRpc3Rfc3BoZXJlX2Fs"
"cGhhIikKCiAgICAgICAgaWYgcHJvcHMuc2hvd19vdXRlcl9zcGhlcmU6CiAgICAgICAgICAgIGNvbCA9"
"IGJveC5jb2x1bW4oYWxpZ249VHJ1ZSkKICAgICAgICAgICAgY29sLnNlcGFyYXRvcigpCiAgICAgICAg"
"ICAgIGNvbC5wcm9wKHByb3BzLCAib3V0ZXJfc3BoZXJlX2NvbG9yIikKICAgICAgICAgICAgY29sLnBy"
"b3AocHJvcHMsICJvdXRlcl9zcGhlcmVfYWxwaGEiKQoKY2xhc3MgVENUQV9QVF9HZW9JbmZvKFRDVEFf"
"UFRfUGFuZWxCYXNlLCBicHkudHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfZ2Vv"
"X2luZm8iCiAgICBibF9sYWJlbCA9ICI0LiDlub7kvZXmg4XloLEiCiAgICBkZWYgZHJhdyhzZWxmLCBj"
"b250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHByb3BzID0gY29udGV4"
"dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLnJhbmRvbV9yZXNl"
"dCIsIGljb249J0ZJTEVfUkVGUkVTSCcpCiAgICAgICAgCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgp"
"CiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlNwaGVyZSAxIChmcm9tIDAsMCwwKToiKQogICAgICAgIGJv"
"eC5sYWJlbCh0ZXh0PWYiICBEaXN0OiB7cHJvcHMuZ2VvX3NwMV9kaXN0Oi4xZn0iKQogICAgICAgIGJv"
"eC5sYWJlbCh0ZXh0PWYiICBBbmc6IHtwcm9wcy5nZW9fc3AxX2FuZ1swXTouMWZ9wrAsIHtwcm9wcy5n"
"ZW9fc3AxX2FuZ1sxXTouMWZ9wrAsIHtwcm9wcy5nZW9fc3AxX2FuZ1syXTouMWZ9wrAiKQogICAgICAg"
"IGJveC5sYWJlbCh0ZXh0PSJTcGhlcmUgMiAoZnJvbSAwLDAsMCk6IikKICAgICAgICBib3gubGFiZWwo"
"dGV4dD1mIiAgRGlzdDoge3Byb3BzLmdlb19zcDJfZGlzdDouMWZ9IikKICAgICAgICBib3gubGFiZWwo"
"dGV4dD1mIiAgQW5nOiB7cHJvcHMuZ2VvX3NwMl9hbmdbMF06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwMl9h"
"bmdbMV06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwMl9hbmdbMl06LjFmfcKwIikKICAgICAgICBib3gubGFi"
"ZWwodGV4dD0iU3BoZXJlIDMgKGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIg"
"IERpc3Q6IHtwcm9wcy5nZW9fc3AzX2Rpc3Q6LjFmfSIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIg"
"IEFuZzoge3Byb3BzLmdlb19zcDNfYW5nWzBdOi4xZn3CsCwge3Byb3BzLmdlb19zcDNfYW5nWzFdOi4x"
"Zn3CsCwge3Byb3BzLmdlb19zcDNfYW5nWzJdOi4xZn3CsCIpCiAgICAgICAgCiAgICAgICAgYm94ID0g"
"bGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlBsYW5lIENyb3NzIEFuZ2xlIChBICYg"
"Qik6IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIiAgQW5nbGU6IHtwcm9wcy5nZW9fcGxhbmVfYW5n"
"bGU6LjFmfcKwIikKICAgICAgICAKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gu"
"bGFiZWwodGV4dD0iUGxhbmUgQiBJbm5lciBEaXN0IChmcm9tIDAsMCwwKToiKQogICAgICAgIGJveC5s"
"YWJlbCh0ZXh0PWYiICBTaG9ydGVzdCBEaXN0OiB7cHJvcHMuZ2VvX3BsYW5lX2Rpc3Q6LjFmfSIpCiAg"
"ICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIEZvb3Q6ICh7cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMF06LjFm"
"fSwge3Byb3BzLmdlb19wbGFuZV9mb290WzFdOi4xZn0sIHtwcm9wcy5nZW9fcGxhbmVfZm9vdFsyXTou"
"MWZ9KSIpCgogICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJP"
"dXRlciBCb3VuZCBTcGhlcmUgKGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIg"
"IFJhZGl1cyAoTWF4IERpc3QpOiB7cHJvcHMuZ2VvX291dGVyX3JhZGl1czouMWZ9IikKCiAgICAgICAg"
"bGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNvcHlfZ2VvX2luZm8iLCBpY29uPSdDT1BZRE9XTicpCgpjbGFz"
"cyBUQ1RBX1BUX1N5c3RlbShUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBhbmVsKToKICAgIGJs"
"X2lkbmFtZSA9ICJUQ1RBX1BUX3N5c3RlbSIKICAgIGJsX2xhYmVsID0gIjUuIOOCt+OCueODhuODoCIK"
"ICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAg"
"ICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLm9wZW5fbGluayIsIGljb249J1VSTCcpCiAgICAgICAg"
"bGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmRlbGV0ZV9hbGwiLCBpY29uPSdUUkFTSCcsIHRleHQ9IuOCouOD"
"ieOCquODs+WJiumZpCAo5YWo44Kv44Oq44KiKSIpCgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgNi4g55m76Yyy"
"5Yem55CGCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PQpjbGFzc2VzID0gKAogICAgVENUQV9Qcm9wZXJ0aWVzLAogICAg"
"VENUQV9PVF9WaWV3U2VsZWN0ZWQsCiAgICBUQ1RBX09UX1VwZGF0ZVZpZXdJbmZvLAogICAgVENUQV9P"
"VF9Db3B5Vmlld0luZm8sCiAgICBUQ1RBX09UX0NyZWF0ZU9iamVjdHMsCiAgICBUQ1RBX09UX0RldGFj"
"aE9iamVjdHMsCiAgICBUQ1RBX09UX1Jlc2V0UHJvcHMsCiAgICBUQ1RBX09UX1JhbmRvbVJlc2V0LAog"
"ICAgVENUQV9PVF9Db3B5R2VvSW5mbywKICAgIFRDVEFfT1RfT3BlbkxpbmssCiAgICBUQ1RBX09UX0Rl"
"bGV0ZUFsbCwKICAgIFRDVEFfUFRfVmlld0luZm8sCiAgICBUQ1RBX1BUX01haW4sCiAgICBUQ1RBX1BU"
"X1NldHRpbmdzLAogICAgVENUQV9QVF9HZW9JbmZvLAogICAgVENUQV9QVF9TeXN0ZW0sCikKCmRlZiBy"
"ZWdpc3RlcigpOgogICAgZm9yIGNscyBpbiBjbGFzc2VzOgogICAgICAgIGJweS51dGlscy5yZWdpc3Rl"
"cl9jbGFzcyhjbHMpCiAgICBicHkudHlwZXMuU2NlbmUudGN0YV9wcm9wcyA9IGJweS5wcm9wcy5Qb2lu"
"dGVyUHJvcGVydHkodHlwZT1UQ1RBX1Byb3BlcnRpZXMpCgpkZWYgdW5yZWdpc3RlcigpOgogICAgZm9y"
"IGNscyBpbiByZXZlcnNlZChjbGFzc2VzKToKICAgICAgICBicHkudXRpbHMudW5yZWdpc3Rlcl9jbGFz"
"cyhjbHMpCiAgICBkZWwgYnB5LnR5cGVzLlNjZW5lLnRjdGFfcHJvcHMKCmlmIF9fbmFtZV9fID09ICJf"
"X21haW5fXyI6CiAgICByZWdpc3Rlcigp"
)
},
{
"name": "平面2つなす角度 20260713_003",
"code_b64": (
"YmxfaW5mbyA9IHsKICAgICJuYW1lIjogIlRvcnVzIEN1YmUgJiBUcmlhbmdsZSBBbmFseXplciIsCiAg"
"ICAiYXV0aG9yIjogIkFJIEFzc2lzdGFudCIsCiAgICAidmVyc2lvbiI6ICgxLCA0LCAwKSwKICAgICJi"
"bGVuZGVyIjogKDQsIDIsIDApLAogICAgImxvY2F0aW9uIjogIlZpZXczRCA+IFNpZGViYXIgPiBUQ1RB"
"IiwKICAgICJkZXNjcmlwdGlvbiI6ICLlubPpnaLjga7lub7kvZXmg4XloLHoqIjnrpfjgajmnIDnn63o"
"t53pm6Ljga7oppbopprljJbvvIjooajnpLrliIfmm7/mqZ/og73ku5jjgY3vvIkiLAogICAgImNhdGVn"
"b3J5IjogIjNEIFZpZXciLAp9CgppbXBvcnQgYnB5CmltcG9ydCBibWVzaAppbXBvcnQgbWF0aAppbXBv"
"cnQgbWF0aHV0aWxzCmltcG9ydCByYW5kb20KCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDEuIOWIneacn+WApOWu"
"mue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT0KUFJFRklYID0gIlRDVEFfIgpQQVJFTlRfQ09MTEVDVElPTl9OQU1F"
"ID0gIlRvcnVzQ3ViZVNwYWNlIgpTVUJfQ09MTEVDVElPTl9OQU1FID0gIkFuYWx5emVyT2JqZWN0cyIK"
"VE9SVVNfU0tFTEVUT05fTkFNRSA9ICJUb3J1c1NrZWxldG9uIgpTUEhFUkVfMV9OQU1FID0gIlNwaGVy"
"ZV8xIgpTUEhFUkVfMl9OQU1FID0gIlNwaGVyZV8yIgpTUEhFUkVfM19OQU1FID0gIlNwaGVyZV8zIgpU"
"UklBTkdMRV9BX05BTUUgPSAiVHJpYW5nbGVfQSIKVFJJQU5HTEVfQl9OQU1FID0gIlRyaWFuZ2xlX0Ii"
"CkFSUk9XX05BTUUgPSAiQXJyb3dfU2hvcnRlc3REaXN0IgpDSVJDTEVfTkFNRSA9ICJDaXJjbGVfUGxh"
"bmVCIgpESVNUX1NQSEVSRV9OQU1FID0gIlNwaGVyZV9TaG9ydGVzdERpc3QiCgojID09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT0KIyAyLiDjg5fjg63jg5Hjg4bjgqPlrprnvqnvvIjmm7TmlrDjgrPjg7zjg6vjg5Djg4Pjgq/lkKvj"
"goDvvIkKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09CmRlZiB1cGRhdGVfdmlzX2Fycm93KHNlbGYsIGNvbnRleHQpOgog"
"ICAgb2JqID0gYnB5LmRhdGEub2JqZWN0cy5nZXQoQVJST1dfTkFNRSkKICAgIGlmIG9iajoKICAgICAg"
"ICBvYmouaGlkZV92aWV3cG9ydCA9IG5vdCBzZWxmLnNob3dfYXJyb3cKICAgICAgICBvYmouaGlkZV9y"
"ZW5kZXIgPSBub3Qgc2VsZi5zaG93X2Fycm93CgpkZWYgdXBkYXRlX3Zpc19jaXJjbGUoc2VsZiwgY29u"
"dGV4dCk6CiAgICBvYmogPSBicHkuZGF0YS5vYmplY3RzLmdldChDSVJDTEVfTkFNRSkKICAgIGlmIG9i"
"ajoKICAgICAgICBvYmouaGlkZV92aWV3cG9ydCA9IG5vdCBzZWxmLnNob3dfY2lyY2xlCiAgICAgICAg"
"b2JqLmhpZGVfcmVuZGVyID0gbm90IHNlbGYuc2hvd19jaXJjbGUKCmRlZiB1cGRhdGVfdmlzX3NwaGVy"
"ZShzZWxmLCBjb250ZXh0KToKICAgIG9iaiA9IGJweS5kYXRhLm9iamVjdHMuZ2V0KERJU1RfU1BIRVJF"
"X05BTUUpCiAgICBpZiBvYmo6CiAgICAgICAgb2JqLmhpZGVfdmlld3BvcnQgPSBub3Qgc2VsZi5zaG93"
"X2Rpc3Rfc3BoZXJlCiAgICAgICAgb2JqLmhpZGVfcmVuZGVyID0gbm90IHNlbGYuc2hvd19kaXN0X3Nw"
"aGVyZQoKY2xhc3MgVENUQV9Qcm9wZXJ0aWVzKGJweS50eXBlcy5Qcm9wZXJ0eUdyb3VwKToKICAgICMg"
"44OI44O844Op44K56aqo5qC86Kit5a6aCiAgICB0b3J1c19jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVj"
"dG9yUHJvcGVydHkobmFtZT0iVG9ydXMgQ29sb3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNpemU9"
"NCwgZGVmYXVsdD0oMC4xLCAwLjUsIDAuOCwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHRvcnVz"
"X2FscGhhOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJUb3J1cyBBbHBoYSIsIGRlZmF1bHQ9"
"MC41LCBtaW49MC4wLCBtYXg9MS4wKQogICAgCiAgICAjIOmFjee9ruODouODvOODiQogICAgbW9kZV9v"
"cHRpb25zID0gWygnUkFORE9NJywgIuODqeODs+ODgOODoCIsICIiKSwgKCdNQU5VQUwnLCAi5oyH5a6a"
"5L2N572uIiwgIiIpXQogICAgc3AxX21vZGU6IGJweS5wcm9wcy5FbnVtUHJvcGVydHkobmFtZT0iTW9k"
"ZSIsIGl0ZW1zPW1vZGVfb3B0aW9ucywgZGVmYXVsdD0nUkFORE9NJykKICAgIHNwMl9tb2RlOiBicHku"
"cHJvcHMuRW51bVByb3BlcnR5KG5hbWU9Ik1vZGUiLCBpdGVtcz1tb2RlX29wdGlvbnMsIGRlZmF1bHQ9"
"J1JBTkRPTScpCiAgICBzcDNfbW9kZTogYnB5LnByb3BzLkVudW1Qcm9wZXJ0eShuYW1lPSJNb2RlIiwg"
"aXRlbXM9bW9kZV9vcHRpb25zLCBkZWZhdWx0PSdSQU5ET00nKQogICAgCiAgICBzcDFfcG9zOiBicHku"
"cHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJQb3NpdGlvbiAxIiwgZGVmYXVsdD0oMi4wLCAy"
"LjAsIDIuMCkpCiAgICBzcDJfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJQ"
"b3NpdGlvbiAyIiwgZGVmYXVsdD0oLTIuMCwgLTIuMCwgMi4wKSkKICAgIHNwM19wb3M6IGJweS5wcm9w"
"cy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IlBvc2l0aW9uIDMiLCBkZWZhdWx0PSgwLjAsIDMuMCwg"
"LTIuMCkpCiAgICAKICAgIHNwMV9hY3R1YWxfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0"
"eShkZWZhdWx0PSgwLDAsMCkpCiAgICBzcDJfYWN0dWFsX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9y"
"UHJvcGVydHkoZGVmYXVsdD0oMCwwLDApKQogICAgc3AzX2FjdHVhbF9wb3M6IGJweS5wcm9wcy5GbG9h"
"dFZlY3RvclByb3BlcnR5KGRlZmF1bHQ9KDAsMCwwKSkKCiAgICAjIOS4ieinkuW9ouioreWumgogICAg"
"dHJpX3RoaWNrbmVzczogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iVGhpY2tuZXNzIiwgZGVm"
"YXVsdD0wLjEsIG1pbj0wLjApCiAgICB0cmlfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5h"
"bWU9IkFscGhhIiwgZGVmYXVsdD0wLjEsIG1pbj0wLjAsIG1heD0xLjApCiAgICB0cmlBX2NvbG9yOiBi"
"cHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJDb2xvciBBIiwgc3VidHlwZT0nQ09MT1Jf"
"R0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuOCwgMC4yLCAwLjIsIDEuMCksIG1pbj0wLjAsIG1heD0x"
"LjApCiAgICB0cmlCX2NvbG9yOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJDb2xv"
"ciBCIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuMiwgMC44LCAwLjIs"
"IDEuMCksIG1pbj0wLjAsIG1heD0xLjApCgogICAgIyDooajnpLov6Z2e6KGo56S644OI44Kw44OrIChO"
"RVcpCiAgICBzaG93X2Fycm93OiBicHkucHJvcHMuQm9vbFByb3BlcnR5KG5hbWU9IuefouWNsCIsIGRl"
"ZmF1bHQ9VHJ1ZSwgdXBkYXRlPXVwZGF0ZV92aXNfYXJyb3cpCiAgICBzaG93X2NpcmNsZTogYnB5LnBy"
"b3BzLkJvb2xQcm9wZXJ0eShuYW1lPSLlhobnm6QiLCBkZWZhdWx0PVRydWUsIHVwZGF0ZT11cGRhdGVf"
"dmlzX2NpcmNsZSkKICAgIHNob3dfZGlzdF9zcGhlcmU6IGJweS5wcm9wcy5Cb29sUHJvcGVydHkobmFt"
"ZT0i55CD5L2TIiwgZGVmYXVsdD1UcnVlLCB1cGRhdGU9dXBkYXRlX3Zpc19zcGhlcmUpCgogICAgIyDn"
"n6LljbDoqK3lrpoKICAgIGFycm93X3RoaWNrbmVzczogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFt"
"ZT0iQXJyb3cgVGhpY2tuZXNzIiwgZGVmYXVsdD0wLjA1LCBtaW49MC4wMSwgbWF4PTEuMCkKICAgIGFy"
"cm93X2NvbG9yOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJBcnJvdyBDb2xvciIs"
"IHN1YnR5cGU9J0NPTE9SX0dBTU1BJywgc2l6ZT00LCBkZWZhdWx0PSgxLjAsIDAuOCwgMC4wLCAxLjAp"
"LCBtaW49MC4wLCBtYXg9MS4wKQoKICAgICMg5YaG6Kit5a6aCiAgICBjaXJjbGVfcmFkaXVzOiBicHku"
"cHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJDaXJjbGUgUmFkaXVzIiwgZGVmYXVsdD0zLjAsIG1pbj0w"
"LjEpCiAgICBjaXJjbGVfdGhpY2tuZXNzOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJDaXJj"
"bGUgVGhpY2tuZXNzIiwgZGVmYXVsdD0wLjEsIG1pbj0wLjApCiAgICBjaXJjbGVfY29sb3I6IGJweS5w"
"cm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkNpcmNsZSBDb2xvciIsIHN1YnR5cGU9J0NPTE9S"
"X0dBTU1BJywgc2l6ZT00LCBkZWZhdWx0PSgxLjAsIDAuNSwgMC4wLCAwLjQpLCBtaW49MC4wLCBtYXg9"
"MS4wKQogICAgY2lyY2xlX2FscGhhOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJDaXJjbGUg"
"QWxwaGEiLCBkZWZhdWx0PTAuNCwgbWluPTAuMCwgbWF4PTEuMCkKCiAgICAjIOi3nemboueQg+S9k+io"
"reWumgogICAgZGlzdF9zcGhlcmVfY29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5h"
"bWU9IkRpc3QgU3BoZXJlIENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1"
"bHQ9KDAuMCwgMC44LCAxLjAsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCiAgICBkaXN0X3NwaGVyZV9h"
"bHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iRGlzdCBTcGhlcmUgQWxwaGEiLCBkZWZh"
"dWx0PTAuMDYsIG1pbj0wLjAsIG1heD0xLjApCgogICAgIyDjg5Pjg6Xjg7zjg53jg7zjg4jjg7vlub7k"
"vZXmg4XloLEKICAgIHZpZXdfY2VudGVyOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1l"
"PSJWaWV3IENlbnRlciIpCiAgICB2aWV3X3NpemU6IGJweS5wcm9wcy5JbnRWZWN0b3JQcm9wZXJ0eShu"
"YW1lPSJWaWV3IFNpemUgKFB4KSIsIHNpemU9MikKICAgIHZpZXdfZGlzdGFuY2U6IGJweS5wcm9wcy5G"
"bG9hdFByb3BlcnR5KG5hbWU9IlZpZXcgRGlzdGFuY2UiKQogICAgCiAgICBnZW9fc3AxX2Rpc3Q6IGJw"
"eS5wcm9wcy5GbG9hdFByb3BlcnR5KCkKICAgIGdlb19zcDFfYW5nOiBicHkucHJvcHMuRmxvYXRWZWN0"
"b3JQcm9wZXJ0eShzaXplPTMpCiAgICBnZW9fc3AyX2Rpc3Q6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5"
"KCkKICAgIGdlb19zcDJfYW5nOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShzaXplPTMpCiAg"
"ICBnZW9fcGxhbmVfYW5nbGU6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KCkKICAgIGdlb19wbGFuZV9k"
"aXN0OiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgpCiAgICBnZW9fcGxhbmVfZm9vdDogYnB5LnByb3Bz"
"LkZsb2F0VmVjdG9yUHJvcGVydHkoc2l6ZT0zKQogICAgZ2VvX3BsYW5lX25vcm1hbDogYnB5LnByb3Bz"
"LkZsb2F0VmVjdG9yUHJvcGVydHkoc2l6ZT0zKQoKCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDMuIOODpuODvOOD"
"huOCo+ODquODhuOCo+mWouaVsAojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGVmIGdldF8zZF92aWV3X2NvbnRleHQo"
"KToKICAgIGZvciB3aW5kb3cgaW4gYnB5LmNvbnRleHQud2luZG93X21hbmFnZXIud2luZG93czoKICAg"
"ICAgICBmb3IgYXJlYSBpbiB3aW5kb3cuc2NyZWVuLmFyZWFzOgogICAgICAgICAgICBpZiBhcmVhLnR5"
"cGUgPT0gJ1ZJRVdfM0QnOgogICAgICAgICAgICAgICAgZm9yIHJlZ2lvbiBpbiBhcmVhLnJlZ2lvbnM6"
"CiAgICAgICAgICAgICAgICAgICAgaWYgcmVnaW9uLnR5cGUgPT0gJ1dJTkRPVyc6CiAgICAgICAgICAg"
"ICAgICAgICAgICAgIHJldHVybiBhcmVhLCByZWdpb24sIGFyZWEuc3BhY2VzLmFjdGl2ZQogICAgcmV0"
"dXJuIE5vbmUsIE5vbmUsIE5vbmUKCmRlZiBjcmVhdGVfbWF0ZXJpYWwobmFtZSwgY29sb3IsIGFscGhh"
"KToKICAgIG1hdCA9IGJweS5kYXRhLm1hdGVyaWFscy5nZXQobmFtZSkKICAgIGlmIG5vdCBtYXQ6CiAg"
"ICAgICAgbWF0ID0gYnB5LmRhdGEubWF0ZXJpYWxzLm5ldyhuYW1lKQogICAgbWF0LnVzZV9ub2RlcyA9"
"IFRydWUKICAgIAogICAgaWYgaGFzYXR0cihtYXQsICJibGVuZF9tZXRob2QiKToKICAgICAgICBtYXQu"
"YmxlbmRfbWV0aG9kID0gJ0JMRU5EJwogICAgaWYgaGFzYXR0cihtYXQsICJzaGFkb3dfbWV0aG9kIik6"
"CiAgICAgICAgbWF0LnNoYWRvd19tZXRob2QgPSAnTk9ORScKICAgIAogICAgYnNkZiA9IG1hdC5ub2Rl"
"X3RyZWUubm9kZXMuZ2V0KCJQcmluY2lwbGVkIEJTREYiKQogICAgaWYgYnNkZjoKICAgICAgICBic2Rm"
"LmlucHV0c1siQmFzZSBDb2xvciJdLmRlZmF1bHRfdmFsdWUgPSBjb2xvcgogICAgICAgIGJzZGYuaW5w"
"dXRzWyJBbHBoYSJdLmRlZmF1bHRfdmFsdWUgPSBhbHBoYQogICAgcmV0dXJuIG1hdAoKZGVmIGNhbGNf"
"Z2VvX2RhdGEocHJvcHMpOgogICAgZGVmIGNhbGNfZGlzdF9hbmdsZSh2ZWMpOgogICAgICAgIGRpc3Qg"
"PSB2ZWMubGVuZ3RoCiAgICAgICAgaWYgZGlzdCA9PSAwOiByZXR1cm4gMCwgMCwgMCwgMAogICAgICAg"
"IG4gPSB2ZWMubm9ybWFsaXplZCgpCiAgICAgICAgYXggPSBtYXRoLmRlZ3JlZXMobWF0aC5hY29zKG4u"
"eCkpCiAgICAgICAgYXkgPSBtYXRoLmRlZ3JlZXMobWF0aC5hY29zKG4ueSkpCiAgICAgICAgYXogPSBt"
"YXRoLmRlZ3JlZXMobWF0aC5hY29zKG4ueikpCiAgICAgICAgcmV0dXJuIGRpc3QsIGF4LCBheSwgYXoK"
"CiAgICBwMCA9IG1hdGh1dGlscy5WZWN0b3IoKDAsIDAsIDApKQogICAgcDEgPSBtYXRodXRpbHMuVmVj"
"dG9yKHByb3BzLnNwMV9hY3R1YWxfcG9zKQogICAgcDIgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLnNw"
"Ml9hY3R1YWxfcG9zKQogICAgcDMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLnNwM19hY3R1YWxfcG9z"
"KQoKICAgIGQxLCBheDEsIGF5MSwgYXoxID0gY2FsY19kaXN0X2FuZ2xlKHAxKQogICAgcHJvcHMuZ2Vv"
"X3NwMV9kaXN0ID0gZDEKICAgIHByb3BzLmdlb19zcDFfYW5nID0gKGF4MSwgYXkxLCBhejEpCgogICAg"
"ZDIsIGF4MiwgYXkyLCBhejIgPSBjYWxjX2Rpc3RfYW5nbGUocDIpCiAgICBwcm9wcy5nZW9fc3AyX2Rp"
"c3QgPSBkMgogICAgcHJvcHMuZ2VvX3NwMl9hbmcgPSAoYXgyLCBheTIsIGF6MikKCiAgICB2MSA9IHAx"
"IC0gcDAKICAgIHYyID0gcDIgLSBwMAogICAgdjMgPSBwMiAtIHAxCiAgICB2NCA9IHAzIC0gcDEKICAg"
"IG4xID0gdjEuY3Jvc3ModjIpCiAgICBuMiA9IHYzLmNyb3NzKHY0KQogICAgCiAgICBpZiBuMS5sZW5n"
"dGggPiAwLjAwMDEgYW5kIG4yLmxlbmd0aCA+IDAuMDAwMToKICAgICAgICBuMV9ub3JtID0gbjEubm9y"
"bWFsaXplZCgpCiAgICAgICAgbjJfbm9ybSA9IG4yLm5vcm1hbGl6ZWQoKQogICAgICAgIHByb3BzLmdl"
"b19wbGFuZV9ub3JtYWwgPSBuMl9ub3JtCiAgICAgICAgZG90ID0gbWF4KC0xLjAsIG1pbigxLjAsIG4x"
"X25vcm0uZG90KG4yX25vcm0pKSkKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfYW5nbGUgPSBtYXRoLmRl"
"Z3JlZXMobWF0aC5hY29zKGRvdCkpCiAgICBlbHNlOgogICAgICAgIHByb3BzLmdlb19wbGFuZV9hbmds"
"ZSA9IDAuMAogICAgICAgIHByb3BzLmdlb19wbGFuZV9ub3JtYWwgPSAoMCwwLDEpCgogICAgaWYgbjIu"
"bGVuZ3RoID4gMC4wMDAxOgogICAgICAgIHQgPSBuMl9ub3JtLmRvdChwMSkKICAgICAgICBIID0gbjJf"
"bm9ybSAqIHQKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZGlzdCA9IGFicyh0KQogICAgICAgIHByb3Bz"
"Lmdlb19wbGFuZV9mb290ID0gSAogICAgZWxzZToKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfZGlzdCA9"
"IDAuMAogICAgICAgIHByb3BzLmdlb19wbGFuZV9mb290ID0gKDAsIDAsIDApCgojID09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT0KIyA0LiDjgqrjg5rjg6zjg7zjgr/jg7wgKOWHpueQhuODreOCuOODg+OCrykKIyA9PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09CmNsYXNzIFRDVEFfT1RfVmlld1NlbGVjdGVkKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9p"
"ZG5hbWUgPSAidGN0YS52aWV3X3NlbGVjdGVkIgogICAgYmxfbGFiZWwgPSAi6YG45oqe44KS55S76Z2i"
"5Lit5aSu44GrIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgYnB5Lm9wcy52"
"aWV3M2Qudmlld19zZWxlY3RlZCgpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENU"
"QV9PVF9VcGRhdGVWaWV3SW5mbyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRj"
"dGEudXBkYXRlX3ZpZXdfaW5mbyIKICAgIGJsX2xhYmVsID0gIueUu+mdouaDheWgseabtOaWsCIKICAg"
"IGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIGFyZWEsIHJlZ2lvbiwgc3BhY2UgPSBn"
"ZXRfM2Rfdmlld19jb250ZXh0KCkKICAgICAgICBpZiBub3Qgc3BhY2U6CiAgICAgICAgICAgIHNlbGYu"
"cmVwb3J0KHsnV0FSTklORyd9LCAiM0Tjg5Pjg6Xjg7zjgYzopovjgaTjgYvjgorjgb7jgZvjgpMiKQog"
"ICAgICAgICAgICByZXR1cm4geydDQU5DRUxMRUQnfQogICAgICAgIHJ2M2QgPSBzcGFjZS5yZWdpb25f"
"M2QKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAgIHByb3BzLnZp"
"ZXdfY2VudGVyID0gcnYzZC52aWV3X2xvY2F0aW9uCiAgICAgICAgcHJvcHMudmlld19zaXplID0gKHJl"
"Z2lvbi53aWR0aCwgcmVnaW9uLmhlaWdodCkKICAgICAgICBpZiBydjNkLnZpZXdfcGVyc3BlY3RpdmUg"
"PT0gJ1BFUlNQJzoKICAgICAgICAgICAgcHJvcHMudmlld19kaXN0YW5jZSA9IHJ2M2Qudmlld19kaXN0"
"YW5jZQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHByb3BzLnZpZXdfZGlzdGFuY2UgPSAwLjAgCiAg"
"ICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9Db3B5Vmlld0luZm8oYnB5LnR5"
"cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLmNvcHlfdmlld19pbmZvIgogICAgYmxf"
"bGFiZWwgPSAi44OT44Ol44O85oOF5aCx44KS44Kz44OU44O8IgogICAgZGVmIGV4ZWN1dGUoc2VsZiwg"
"Y29udGV4dCk6CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAgICAgICBs"
"aW5lcyA9IFsKICAgICAgICAgICAgZiJDZW50ZXI6IFg9e3Byb3BzLnZpZXdfY2VudGVyLng6LjFmfSwg"
"WT17cHJvcHMudmlld19jZW50ZXIueTouMWZ9LCBaPXtwcm9wcy52aWV3X2NlbnRlci56Oi4xZn0iLAog"
"ICAgICAgICAgICBmIlNpemU6IFc9e3Byb3BzLnZpZXdfc2l6ZVswXX0sIEg9e3Byb3BzLnZpZXdfc2l6"
"ZVsxXX0iLAogICAgICAgICAgICBmIkRpc3RhbmNlOiB7cHJvcHMudmlld19kaXN0YW5jZTouMWZ9IiBp"
"ZiBwcm9wcy52aWV3X2Rpc3RhbmNlID4gMCBlbHNlICJEaXN0YW5jZTogTi9BIgogICAgICAgIF0KICAg"
"ICAgICBjb250ZXh0LndpbmRvd19tYW5hZ2VyLmNsaXBib2FyZCA9ICJcbiIuam9pbihsaW5lcykKICAg"
"ICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuOCs+ODlOODvOOBl+OBvuOBl+OBnyIpCiAgICAgICAg"
"cmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9DcmVhdGVPYmplY3RzKGJweS50eXBlcy5P"
"cGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5jcmVhdGVfb2JqZWN0cyIKICAgIGJsX2xhYmVs"
"ID0gIuS9nOaIkCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0g"
"Y29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgCiAgICAgICAgcGFyZW50X2NvbCA9IGJweS5k"
"YXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQogICAgICAgIGlmIG5vdCBw"
"YXJlbnRfY29sOgogICAgICAgICAgICBwYXJlbnRfY29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMubmV3"
"KFBBUkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAgICAgIGNvbnRleHQuc2NlbmUuY29sbGVjdGlv"
"bi5jaGlsZHJlbi5saW5rKHBhcmVudF9jb2wpCiAgICAgICAgICAgIAogICAgICAgIHN1Yl9jb2wgPSBi"
"cHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoU1VCX0NPTExFQ1RJT05fTkFNRSkKICAgICAgICBpZiBub3Qg"
"c3ViX2NvbDoKICAgICAgICAgICAgc3ViX2NvbCA9IGJweS5kYXRhLmNvbGxlY3Rpb25zLm5ldyhTVUJf"
"Q09MTEVDVElPTl9OQU1FKQogICAgICAgICAgICBwYXJlbnRfY29sLmNoaWxkcmVuLmxpbmsoc3ViX2Nv"
"bCkKCiAgICAgICAgbmFtZXNfdG9fZGVsZXRlID0gWwogICAgICAgICAgICBUT1JVU19TS0VMRVRPTl9O"
"QU1FLCBTUEhFUkVfMV9OQU1FLCBTUEhFUkVfMl9OQU1FLCBTUEhFUkVfM19OQU1FLCAKICAgICAgICAg"
"ICAgVFJJQU5HTEVfQV9OQU1FLCBUUklBTkdMRV9CX05BTUUsIEFSUk9XX05BTUUsIENJUkNMRV9OQU1F"
"LCBESVNUX1NQSEVSRV9OQU1FCiAgICAgICAgXQogICAgICAgIGZvciBvYmpfbmFtZSBpbiBuYW1lc190"
"b19kZWxldGU6CiAgICAgICAgICAgIGlmIG9ial9uYW1lIGluIGJweS5kYXRhLm9iamVjdHM6CiAgICAg"
"ICAgICAgICAgICBicHkuZGF0YS5vYmplY3RzLnJlbW92ZShicHkuZGF0YS5vYmplY3RzW29ial9uYW1l"
"XSwgZG9fdW5saW5rPVRydWUpCgogICAgICAgICMg6aqo5qC85L2c5oiQCiAgICAgICAgbWVzaCA9IGJw"
"eS5kYXRhLm1lc2hlcy5uZXcoVE9SVVNfU0tFTEVUT05fTkFNRSkKICAgICAgICBvYmogPSBicHkuZGF0"
"YS5vYmplY3RzLm5ldyhUT1JVU19TS0VMRVRPTl9OQU1FLCBtZXNoKQogICAgICAgIHN1Yl9jb2wub2Jq"
"ZWN0cy5saW5rKG9iaikKICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAgICAgYm1lc2gub3BzLmNy"
"ZWF0ZV9jdWJlKGJtLCBzaXplPTEwLjApCiAgICAgICAgYm1lc2gub3BzLmRlbGV0ZShibSwgZ2VvbT1i"
"bS5mYWNlcywgY29udGV4dD0nRkFDRVMnKQogICAgICAgIGJtLnRvX21lc2gobWVzaCkKICAgICAgICBi"
"bS5mcmVlKCkKICAgICAgICBza2luX21vZCA9IG9iai5tb2RpZmllcnMubmV3KG5hbWU9IlNraW4iLCB0"
"eXBlPSdTS0lOJykKICAgICAgICBzdWJfbW9kID0gb2JqLm1vZGlmaWVycy5uZXcobmFtZT0iU3ViZGl2"
"aXNpb24iLCB0eXBlPSdTVUJTVVJGJykKICAgICAgICBzdWJfbW9kLmxldmVscyA9IDIKICAgICAgICBm"
"b3IgdiBpbiBvYmouZGF0YS5za2luX3ZlcnRpY2VzWzBdLmRhdGE6CiAgICAgICAgICAgIHYucmFkaXVz"
"ID0gKDAuMiwgMC4yKQogICAgICAgIG9iai5hY3RpdmVfbWF0ZXJpYWwgPSBjcmVhdGVfbWF0ZXJpYWwo"
"UFJFRklYKyJNYXRfVG9ydXMiLCBwcm9wcy50b3J1c19jb2xvciwgcHJvcHMudG9ydXNfYWxwaGEpCgog"
"ICAgICAgICMg55CD5L2T5L2c5oiQCiAgICAgICAgZGVmIGdldF9wb3MobW9kZSwgcHJvcF9wb3MpOgog"
"ICAgICAgICAgICBpZiBtb2RlID09ICdSQU5ET00nOgogICAgICAgICAgICAgICAgcmV0dXJuIChyYW5k"
"b20udW5pZm9ybSgtNSwgNSksIHJhbmRvbS51bmlmb3JtKC01LCA1KSwgcmFuZG9tLnVuaWZvcm0oLTUs"
"IDUpKQogICAgICAgICAgICByZXR1cm4gcHJvcF9wb3MKCiAgICAgICAgcHJvcHMuc3AxX2FjdHVhbF9w"
"b3MgPSBnZXRfcG9zKHByb3BzLnNwMV9tb2RlLCBwcm9wcy5zcDFfcG9zKQogICAgICAgIHByb3BzLnNw"
"Ml9hY3R1YWxfcG9zID0gZ2V0X3Bvcyhwcm9wcy5zcDJfbW9kZSwgcHJvcHMuc3AyX3BvcykKICAgICAg"
"ICBwcm9wcy5zcDNfYWN0dWFsX3BvcyA9IGdldF9wb3MocHJvcHMuc3AzX21vZGUsIHByb3BzLnNwM19w"
"b3MpCgogICAgICAgIGRlZiBjcmVhdGVfc3BoZXJlKG5hbWUsIGxvYyk6CiAgICAgICAgICAgIG1lc2gg"
"PSBicHkuZGF0YS5tZXNoZXMubmV3KG5hbWUpCiAgICAgICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVj"
"dHMubmV3KG5hbWUsIG1lc2gpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9iaikKICAg"
"ICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICBibWVzaC5vcHMuY3JlYXRlX3V2c3Bo"
"ZXJlKGJtLCB1X3NlZ21lbnRzPTE2LCB2X3NlZ21lbnRzPTgsIHJhZGl1cz0wLjUpCiAgICAgICAgICAg"
"IGJtLnRvX21lc2gobWVzaCkKICAgICAgICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAgIG9iai5sb2Nh"
"dGlvbiA9IGxvYwogICAgICAgICAgICByZXR1cm4gb2JqCgogICAgICAgIGNyZWF0ZV9zcGhlcmUoU1BI"
"RVJFXzFfTkFNRSwgcHJvcHMuc3AxX2FjdHVhbF9wb3MpCiAgICAgICAgY3JlYXRlX3NwaGVyZShTUEhF"
"UkVfMl9OQU1FLCBwcm9wcy5zcDJfYWN0dWFsX3BvcykKICAgICAgICBjcmVhdGVfc3BoZXJlKFNQSEVS"
"RV8zX05BTUUsIHByb3BzLnNwM19hY3R1YWxfcG9zKQoKICAgICAgICAjIOS4ieinkuW9ouS9nOaIkAog"
"ICAgICAgIGRlZiBjcmVhdGVfdHJpYW5nbGUobmFtZSwgcDEsIHAyLCBwMywgY29sb3IsIGFscGhhLCB0"
"aGlja25lc3MpOgogICAgICAgICAgICBtZXNoID0gYnB5LmRhdGEubWVzaGVzLm5ldyhuYW1lKQogICAg"
"ICAgICAgICBvYmogPSBicHkuZGF0YS5vYmplY3RzLm5ldyhuYW1lLCBtZXNoKQogICAgICAgICAgICBz"
"dWJfY29sLm9iamVjdHMubGluayhvYmopCiAgICAgICAgICAgIGJtID0gYm1lc2gubmV3KCkKICAgICAg"
"ICAgICAgdjEgPSBibS52ZXJ0cy5uZXcocDEpCiAgICAgICAgICAgIHYyID0gYm0udmVydHMubmV3KHAy"
"KQogICAgICAgICAgICB2MyA9IGJtLnZlcnRzLm5ldyhwMykKICAgICAgICAgICAgYm0uZmFjZXMubmV3"
"KCh2MSwgdjIsIHYzKSkKICAgICAgICAgICAgYm0udG9fbWVzaChtZXNoKQogICAgICAgICAgICBibS5m"
"cmVlKCkKICAgICAgICAgICAgc29sID0gb2JqLm1vZGlmaWVycy5uZXcobmFtZT0iU29saWRpZnkiLCB0"
"eXBlPSdTT0xJRElGWScpCiAgICAgICAgICAgIHNvbC50aGlja25lc3MgPSB0aGlja25lc3MKICAgICAg"
"ICAgICAgb2JqLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF8iK25h"
"bWUsIGNvbG9yLCBhbHBoYSkKCiAgICAgICAgY3JlYXRlX3RyaWFuZ2xlKFRSSUFOR0xFX0FfTkFNRSwg"
"KDAsMCwwKSwgcHJvcHMuc3AxX2FjdHVhbF9wb3MsIHByb3BzLnNwMl9hY3R1YWxfcG9zLCBwcm9wcy50"
"cmlBX2NvbG9yLCBwcm9wcy50cmlfYWxwaGEsIHByb3BzLnRyaV90aGlja25lc3MpCiAgICAgICAgY3Jl"
"YXRlX3RyaWFuZ2xlKFRSSUFOR0xFX0JfTkFNRSwgcHJvcHMuc3AxX2FjdHVhbF9wb3MsIHByb3BzLnNw"
"Ml9hY3R1YWxfcG9zLCBwcm9wcy5zcDNfYWN0dWFsX3BvcywgcHJvcHMudHJpQl9jb2xvciwgcHJvcHMu"
"dHJpX2FscGhhLCBwcm9wcy50cmlfdGhpY2tuZXNzKQoKICAgICAgICAjIOW5vuS9leioiOeulwogICAg"
"ICAgIGNhbGNfZ2VvX2RhdGEocHJvcHMpCgogICAgICAgICMg6KaW6Kaa5YyW6KaB57Sg44Gu5L2c5oiQ"
"CiAgICAgICAgZGlzdCA9IHByb3BzLmdlb19wbGFuZV9kaXN0CiAgICAgICAgaWYgZGlzdCA+IDAuMDE6"
"CiAgICAgICAgICAgICMg55+i5Y2wCiAgICAgICAgICAgIG1lc2hfYXJyID0gYnB5LmRhdGEubWVzaGVz"
"Lm5ldyhBUlJPV19OQU1FKQogICAgICAgICAgICBvYmpfYXJyID0gYnB5LmRhdGEub2JqZWN0cy5uZXco"
"QVJST1dfTkFNRSwgbWVzaF9hcnIpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9ial9h"
"cnIpCiAgICAgICAgICAgIGJtID0gYm1lc2gubmV3KCkKICAgICAgICAgICAgciA9IHByb3BzLmFycm93"
"X3RoaWNrbmVzcwogICAgICAgICAgICBoZWFkX2wgPSBtaW4oZGlzdCAqIDAuMywgciAqIDQuMCkKICAg"
"ICAgICAgICAgYm9keV9sID0gZGlzdCAtIGhlYWRfbAogICAgICAgICAgICBibWVzaC5vcHMuY3JlYXRl"
"X2NvbmUoYm0sIGNhcF9lbmRzPVRydWUsIGNhcF90cmlzPUZhbHNlLCBzZWdtZW50cz0xNiwgcmFkaXVz"
"MT1yLCByYWRpdXMyPXIsIGRlcHRoPWJvZHlfbCkKICAgICAgICAgICAgZ2VvbV9oZWFkID0gYm1lc2gu"
"b3BzLmNyZWF0ZV9jb25lKGJtLCBjYXBfZW5kcz1UcnVlLCBjYXBfdHJpcz1GYWxzZSwgc2VnbWVudHM9"
"MTYsIHJhZGl1czE9cioyLjUsIHJhZGl1czI9MC4wLCBkZXB0aD1oZWFkX2wpCiAgICAgICAgICAgIGJt"
"ZXNoLm9wcy50cmFuc2xhdGUoYm0sIHZlcnRzPVt2IGZvciB2IGluIGdlb21faGVhZFsndmVydHMnXV0s"
"IHZlYz0oMCwgMCwgYm9keV9sLzIgKyBoZWFkX2wvMikpCiAgICAgICAgICAgIGJtZXNoLm9wcy50cmFu"
"c2xhdGUoYm0sIHZlcnRzPWJtLnZlcnRzLCB2ZWM9KDAsIDAsIGJvZHlfbC8yKSkKICAgICAgICAgICAg"
"Ym0udG9fbWVzaChtZXNoX2FycikKICAgICAgICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAgIAogICAg"
"ICAgICAgICBvYmpfYXJyLmxvY2F0aW9uID0gKDAsIDAsIDApCiAgICAgICAgICAgIGZvb3RfdmVjID0g"
"bWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5nZW9fcGxhbmVfZm9vdCkKICAgICAgICAgICAgcm90X3F1YXQg"
"PSBtYXRodXRpbHMuVmVjdG9yKCgwLDAsMSkpLnJvdGF0aW9uX2RpZmZlcmVuY2UoZm9vdF92ZWMubm9y"
"bWFsaXplZCgpKQogICAgICAgICAgICBvYmpfYXJyLnJvdGF0aW9uX21vZGUgPSAnUVVBVEVSTklPTicK"
"ICAgICAgICAgICAgb2JqX2Fyci5yb3RhdGlvbl9xdWF0ZXJuaW9uID0gcm90X3F1YXQKICAgICAgICAg"
"ICAgb2JqX2Fyci5hY3RpdmVfbWF0ZXJpYWwgPSBjcmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRfQXJy"
"b3ciLCBwcm9wcy5hcnJvd19jb2xvciwgMS4wKQogICAgICAgICAgICAKICAgICAgICAgICAgIyDliJ3m"
"nJ/ooajnpLrnirbmhYvjgpLpgannlKgKICAgICAgICAgICAgb2JqX2Fyci5oaWRlX3ZpZXdwb3J0ID0g"
"bm90IHByb3BzLnNob3dfYXJyb3cKICAgICAgICAgICAgb2JqX2Fyci5oaWRlX3JlbmRlciA9IG5vdCBw"
"cm9wcy5zaG93X2Fycm93CgogICAgICAgICAgICAjIOWGhgogICAgICAgICAgICBtZXNoX2NpciA9IGJw"
"eS5kYXRhLm1lc2hlcy5uZXcoQ0lSQ0xFX05BTUUpCiAgICAgICAgICAgIG9ial9jaXIgPSBicHkuZGF0"
"YS5vYmplY3RzLm5ldyhDSVJDTEVfTkFNRSwgbWVzaF9jaXIpCiAgICAgICAgICAgIHN1Yl9jb2wub2Jq"
"ZWN0cy5saW5rKG9ial9jaXIpCiAgICAgICAgICAgIGJtID0gYm1lc2gubmV3KCkKICAgICAgICAgICAg"
"Ym1lc2gub3BzLmNyZWF0ZV9jaXJjbGUoYm0sIGNhcF9lbmRzPVRydWUsIGNhcF90cmlzPUZhbHNlLCBz"
"ZWdtZW50cz0zMiwgcmFkaXVzPXByb3BzLmNpcmNsZV9yYWRpdXMpCiAgICAgICAgICAgIGJtLnRvX21l"
"c2gobWVzaF9jaXIpCiAgICAgICAgICAgIGJtLmZyZWUoKQoKICAgICAgICAgICAgb2JqX2Npci5sb2Nh"
"dGlvbiA9IHByb3BzLmdlb19wbGFuZV9mb290CiAgICAgICAgICAgIG5vcm1hbF92ZWMgPSBtYXRodXRp"
"bHMuVmVjdG9yKHByb3BzLmdlb19wbGFuZV9ub3JtYWwpCiAgICAgICAgICAgIGlmIG5vcm1hbF92ZWMu"
"bGVuZ3RoID4gMDoKICAgICAgICAgICAgICAgIHJvdF9xdWF0X2NpciA9IG1hdGh1dGlscy5WZWN0b3Io"
"KDAsMCwxKSkucm90YXRpb25fZGlmZmVyZW5jZShub3JtYWxfdmVjKQogICAgICAgICAgICAgICAgb2Jq"
"X2Npci5yb3RhdGlvbl9tb2RlID0gJ1FVQVRFUk5JT04nCiAgICAgICAgICAgICAgICBvYmpfY2lyLnJv"
"dGF0aW9uX3F1YXRlcm5pb24gPSByb3RfcXVhdF9jaXIKICAgICAgICAgICAgc29sID0gb2JqX2Npci5t"
"b2RpZmllcnMubmV3KG5hbWU9IlNvbGlkaWZ5IiwgdHlwZT0nU09MSURJRlknKQogICAgICAgICAgICBz"
"b2wudGhpY2tuZXNzID0gcHJvcHMuY2lyY2xlX3RoaWNrbmVzcwogICAgICAgICAgICBvYmpfY2lyLmFj"
"dGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9DaXJjbGUiLCBwcm9wcy5j"
"aXJjbGVfY29sb3IsIHByb3BzLmNpcmNsZV9hbHBoYSkKICAgICAgICAgICAgCiAgICAgICAgICAgIG9i"
"al9jaXIuaGlkZV92aWV3cG9ydCA9IG5vdCBwcm9wcy5zaG93X2NpcmNsZQogICAgICAgICAgICBvYmpf"
"Y2lyLmhpZGVfcmVuZGVyID0gbm90IHByb3BzLnNob3dfY2lyY2xlCgogICAgICAgICAgICAjIOmAj+aY"
"jueQg+S9kwogICAgICAgICAgICBtZXNoX3NwaCA9IGJweS5kYXRhLm1lc2hlcy5uZXcoRElTVF9TUEhF"
"UkVfTkFNRSkKICAgICAgICAgICAgb2JqX3NwaCA9IGJweS5kYXRhLm9iamVjdHMubmV3KERJU1RfU1BI"
"RVJFX05BTUUsIG1lc2hfc3BoKQogICAgICAgICAgICBzdWJfY29sLm9iamVjdHMubGluayhvYmpfc3Bo"
"KQogICAgICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVf"
"dXZzcGhlcmUoYm0sIHVfc2VnbWVudHM9MzIsIHZfc2VnbWVudHM9MTYsIHJhZGl1cz1kaXN0KQogICAg"
"ICAgICAgICBibS50b19tZXNoKG1lc2hfc3BoKQogICAgICAgICAgICBibS5mcmVlKCkKICAgICAgICAg"
"ICAgb2JqX3NwaC5sb2NhdGlvbiA9ICgwLCAwLCAwKQogICAgICAgICAgICBmb3IgcG9seSBpbiBtZXNo"
"X3NwaC5wb2x5Z29uczoKICAgICAgICAgICAgICAgIHBvbHkudXNlX3Ntb290aCA9IFRydWUKICAgICAg"
"ICAgICAgb2JqX3NwaC5hY3RpdmVfbWF0ZXJpYWwgPSBjcmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRf"
"RGlzdFNwaGVyZSIsIHByb3BzLmRpc3Rfc3BoZXJlX2NvbG9yLCBwcm9wcy5kaXN0X3NwaGVyZV9hbHBo"
"YSkKICAgICAgICAgICAgCiAgICAgICAgICAgIG9ial9zcGguaGlkZV92aWV3cG9ydCA9IG5vdCBwcm9w"
"cy5zaG93X2Rpc3Rfc3BoZXJlCiAgICAgICAgICAgIG9ial9zcGguaGlkZV9yZW5kZXIgPSBub3QgcHJv"
"cHMuc2hvd19kaXN0X3NwaGVyZQoKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBUQ1RB"
"X09UX0RldGFjaE9iamVjdHMoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3Rh"
"LmRldGFjaF9vYmplY3RzIgogICAgYmxfbGFiZWwgPSAi44Ki44OJ44Kq44Oz44GL44KJ5YiH44KK6Zui"
"44GXIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcGFyZW50X2NvbCA9IGJw"
"eS5kYXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQogICAgICAgIGlmIHBh"
"cmVudF9jb2w6CiAgICAgICAgICAgIHBhcmVudF9jb2wubmFtZSA9IFBBUkVOVF9DT0xMRUNUSU9OX05B"
"TUUgKyAiX0RldGFjaGVkIgogICAgICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuWIh+OCiumb"
"ouOBl+OBvuOBl+OBnyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9S"
"ZXNldFByb3BzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5yZXNldF9w"
"cm9wcyIKICAgIGJsX2xhYmVsID0gIuWIneacn+WApOOBq+aIu+OBmSIKICAgIGRlZiBleGVjdXRlKHNl"
"bGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAg"
"ICAgcmVzZXRfbGlzdCA9IFsKICAgICAgICAgICAgInRvcnVzX2NvbG9yIiwgInRvcnVzX2FscGhhIiwg"
"InRyaV90aGlja25lc3MiLCAidHJpX2FscGhhIiwgInRyaUFfY29sb3IiLCAidHJpQl9jb2xvciIsIAog"
"ICAgICAgICAgICAic2hvd19hcnJvdyIsICJzaG93X2NpcmNsZSIsICJzaG93X2Rpc3Rfc3BoZXJlIiwK"
"ICAgICAgICAgICAgImFycm93X3RoaWNrbmVzcyIsICJhcnJvd19jb2xvciIsICJjaXJjbGVfcmFkaXVz"
"IiwgImNpcmNsZV90aGlja25lc3MiLCAiY2lyY2xlX2NvbG9yIiwgImNpcmNsZV9hbHBoYSIsCiAgICAg"
"ICAgICAgICJkaXN0X3NwaGVyZV9jb2xvciIsICJkaXN0X3NwaGVyZV9hbHBoYSIKICAgICAgICBdCiAg"
"ICAgICAgZm9yIHAgaW4gcmVzZXRfbGlzdDoKICAgICAgICAgICAgcHJvcHMucHJvcGVydHlfdW5zZXQo"
"cCkKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBUQ1RBX09UX1JhbmRvbVJlc2V0KGJw"
"eS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5yYW5kb21fcmVzZXQiCiAgICBi"
"bF9sYWJlbCA9ICLjg6njg7Pjg4Djg6Dlho3oqIjnrpfvvIbmm7TmlrAiCiAgICBkZWYgZXhlY3V0ZShz"
"ZWxmLCBjb250ZXh0KToKICAgICAgICBicHkub3BzLnRjdGEuY3JlYXRlX29iamVjdHMoKQogICAgICAg"
"IHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfQ29weUdlb0luZm8oYnB5LnR5cGVzLk9w"
"ZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLmNvcHlfZ2VvX2luZm8iCiAgICBibF9sYWJlbCA9"
"ICLlub7kvZXmg4XloLHjgpLjgrPjg5Tjg7wiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToK"
"ICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAgIGxpbmVzID0gWwog"
"ICAgICAgICAgICBmIlNwMSBEaXN0OiB7cHJvcHMuZ2VvX3NwMV9kaXN0Oi4xZn0iLAogICAgICAgICAg"
"ICBmIlNwMSBBbmc6IFg9e3Byb3BzLmdlb19zcDFfYW5nWzBdOi4xZn0sIFk9e3Byb3BzLmdlb19zcDFf"
"YW5nWzFdOi4xZn0sIFo9e3Byb3BzLmdlb19zcDFfYW5nWzJdOi4xZn0iLAogICAgICAgICAgICBmIlNw"
"MiBEaXN0OiB7cHJvcHMuZ2VvX3NwMl9kaXN0Oi4xZn0iLAogICAgICAgICAgICBmIlNwMiBBbmc6IFg9"
"e3Byb3BzLmdlb19zcDJfYW5nWzBdOi4xZn0sIFk9e3Byb3BzLmdlb19zcDJfYW5nWzFdOi4xZn0sIFo9"
"e3Byb3BzLmdlb19zcDJfYW5nWzJdOi4xZn0iLAogICAgICAgICAgICBmIlBsYW5lIENyb3NzIEFuZ2xl"
"OiB7cHJvcHMuZ2VvX3BsYW5lX2FuZ2xlOi4xZn0iLAogICAgICAgICAgICBmIlNob3J0ZXN0IERpc3Qg"
"dG8gUGxhbmUgQjoge3Byb3BzLmdlb19wbGFuZV9kaXN0Oi4xZn0iLAogICAgICAgICAgICBmIlNob3J0"
"ZXN0IEZvb3QgUG9zOiBYPXtwcm9wcy5nZW9fcGxhbmVfZm9vdFswXTouMWZ9LCBZPXtwcm9wcy5nZW9f"
"cGxhbmVfZm9vdFsxXTouMWZ9LCBaPXtwcm9wcy5nZW9fcGxhbmVfZm9vdFsyXTouMWZ9IgogICAgICAg"
"IF0KICAgICAgICBjb250ZXh0LndpbmRvd19tYW5hZ2VyLmNsaXBib2FyZCA9ICJcbiIuam9pbihsaW5l"
"cykKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuOCs+ODlOODvOOBl+OBvuOBl+OBnyIpCiAg"
"ICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9PcGVuTGluayhicHkudHlwZXMu"
"T3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEub3Blbl9saW5rIgogICAgYmxfbGFiZWwgPSAi"
"44Oq44Oz44Kv44KS6ZaL44GPIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAg"
"YnB5Lm9wcy53bS51cmxfb3Blbih1cmw9Imh0dHBzOi8vd3d3LmJsZW5kZXIub3JnLyIpCiAgICAgICAg"
"cmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9EZWxldGVBbGwoYnB5LnR5cGVzLk9wZXJh"
"dG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLmRlbGV0ZV9hbGwiCiAgICBibF9sYWJlbCA9ICLplqLp"
"gKPlhajliYrpmaQiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBwYXJlbnRf"
"Y29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMuZ2V0KFBBUkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAg"
"ICAgaWYgcGFyZW50X2NvbDoKICAgICAgICAgICAgZm9yIG9iaiBpbiBwYXJlbnRfY29sLmFsbF9vYmpl"
"Y3RzOgogICAgICAgICAgICAgICAgYnB5LmRhdGEub2JqZWN0cy5yZW1vdmUob2JqLCBkb191bmxpbms9"
"VHJ1ZSkKICAgICAgICAgICAgYnB5LmRhdGEuY29sbGVjdGlvbnMucmVtb3ZlKHBhcmVudF9jb2wpCiAg"
"ICAgICAgICAgIHNlbGYucmVwb3J0KHsnSU5GTyd9LCAi5YWo5YmK6Zmk44GX44G+44GX44GfIikKICAg"
"ICAgICByZXR1cm4geydGSU5JU0hFRCd9CgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgNS4gVUkg44OR44ON44Or"
"5a6a576pCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBUQ1RBX1BUX1BhbmVsQmFzZToKICAgIGJsX3NwYWNl"
"X3R5cGUgPSAnVklFV18zRCcKICAgIGJsX3JlZ2lvbl90eXBlID0gJ1VJJwogICAgYmxfY2F0ZWdvcnkg"
"PSAiVENUQSIKCmNsYXNzIFRDVEFfUFRfVmlld0luZm8oVENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBl"
"cy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9QVF92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9"
"ICIxLiDjg5Pjg6Xjg7zjg53jg7zjg4jmg4XloLEiCiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToK"
"ICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50"
"Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLnZpZXdfc2VsZWN0ZWQiLCBpY29u"
"PSdWSUVXWk9PTScpCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLnVwZGF0ZV92aWV3X2luZm8i"
"LCBpY29uPSdGSUxFX1JFRlJFU0gnKQogICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgIGJv"
"eC5sYWJlbCh0ZXh0PWYiQ2VudGVyOiAoe3Byb3BzLnZpZXdfY2VudGVyLng6LjFmfSwge3Byb3BzLnZp"
"ZXdfY2VudGVyLnk6LjFmfSwge3Byb3BzLnZpZXdfY2VudGVyLno6LjFmfSkiKQogICAgICAgIGJveC5s"
"YWJlbCh0ZXh0PWYiU2l6ZSAocHgpOiBXPXtwcm9wcy52aWV3X3NpemVbMF19LCBIPXtwcm9wcy52aWV3"
"X3NpemVbMV19IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIkNhbWVyYSBEaXN0OiB7cHJvcHMudmll"
"d19kaXN0YW5jZTouMWZ9IiBpZiBwcm9wcy52aWV3X2Rpc3RhbmNlID4gMCBlbHNlICJDYW1lcmEgRGlz"
"dDogTi9BIikKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEuY29weV92aWV3X2luZm8iLCBpY29u"
"PSdDT1BZRE9XTicpCgpjbGFzcyBUQ1RBX1BUX01haW4oVENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBl"
"cy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9QVF9tYWluIgogICAgYmxfbGFiZWwgPSAiMi4g"
"44Oh44Kk44Oz5a6f6KGMIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4dCk6CiAgICAgICAgbGF5b3V0"
"ID0gc2VsZi5sYXlvdXQKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEuY3JlYXRlX29iamVjdHMi"
"LCBpY29uPSdQTEFZJywgdGV4dD0i5L2c5oiQICjnlJ/miJDjg7vmm7TmlrApIikKICAgICAgICBsYXlv"
"dXQub3BlcmF0b3IoInRjdGEuZGV0YWNoX29iamVjdHMiLCBpY29uPSdVTkxJTktFRCcpCgpjbGFzcyBU"
"Q1RBX1BUX1NldHRpbmdzKFRDVEFfUFRfUGFuZWxCYXNlLCBicHkudHlwZXMuUGFuZWwpOgogICAgYmxf"
"aWRuYW1lID0gIlRDVEFfUFRfc2V0dGluZ3MiCiAgICBibF9sYWJlbCA9ICIzLiDjg5Hjg6njg6Hjg7zj"
"gr/oqK3lrpoiCiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxm"
"LmxheW91dAogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5"
"b3V0Lm9wZXJhdG9yKCJ0Y3RhLnJlc2V0X3Byb3BzIiwgaWNvbj0nTE9PUF9CQUNLJykKICAgICAgICBi"
"b3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iVG9ydXMgRnJhbWU6IikKICAg"
"ICAgICBib3gucHJvcChwcm9wcywgInRvcnVzX2NvbG9yIiwgdGV4dD0iQ29sb3IiKQogICAgICAgIGJv"
"eC5wcm9wKHByb3BzLCAidG9ydXNfYWxwaGEiLCB0ZXh0PSJBbHBoYSIpCiAgICAgICAgYm94ID0gbGF5"
"b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlNwaGVyZXM6IikKICAgICAgICBmb3IgaSBp"
"biByYW5nZSgxLCA0KToKICAgICAgICAgICAgcm93ID0gYm94LnJvdygpCiAgICAgICAgICAgIHJvdy5w"
"cm9wKHByb3BzLCBmInNwe2l9X21vZGUiLCB0ZXh0PWYiU3B7aX0iKQogICAgICAgICAgICBpZiBnZXRh"
"dHRyKHByb3BzLCBmInNwe2l9X21vZGUiKSA9PSAnTUFOVUFMJzoKICAgICAgICAgICAgICAgIGJveC5w"
"cm9wKHByb3BzLCBmInNwe2l9X3BvcyIsIHRleHQ9IlhZWiIpCiAgICAgICAgYm94ID0gbGF5b3V0LmJv"
"eCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlRyaWFuZ2xlczoiKQogICAgICAgIGJveC5wcm9wKHBy"
"b3BzLCAidHJpX3RoaWNrbmVzcyIpCiAgICAgICAgYm94LnByb3AocHJvcHMsICJ0cmlfYWxwaGEiKQog"
"ICAgICAgIGJveC5wcm9wKHByb3BzLCAidHJpQV9jb2xvciIpCiAgICAgICAgYm94LnByb3AocHJvcHMs"
"ICJ0cmlCX2NvbG9yIikKICAgICAgICAKICAgICAgICAjIOihqOekui/pnZ7ooajnpLrjg4jjgrDjg6vj"
"gajoqK3lrpoKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0i"
"U2hvcnRlc3QgRGlzdGFuY2UgVmlzdWFsczoiKQogICAgICAgIAogICAgICAgIHJvdyA9IGJveC5yb3co"
"KQogICAgICAgIHJvdy5wcm9wKHByb3BzLCAic2hvd19hcnJvdyIsIGljb249J1RSSUFfUklHSFQnIGlm"
"IG5vdCBwcm9wcy5zaG93X2Fycm93IGVsc2UgJ1RSSUFfRE9XTicpCiAgICAgICAgcm93LnByb3AocHJv"
"cHMsICJzaG93X2NpcmNsZSIsIGljb249J1RSSUFfUklHSFQnIGlmIG5vdCBwcm9wcy5zaG93X2NpcmNs"
"ZSBlbHNlICdUUklBX0RPV04nKQogICAgICAgIHJvdy5wcm9wKHByb3BzLCAic2hvd19kaXN0X3NwaGVy"
"ZSIsIHRleHQ9IlNwaGVyZSIsIGljb249J1RSSUFfUklHSFQnIGlmIG5vdCBwcm9wcy5zaG93X2Rpc3Rf"
"c3BoZXJlIGVsc2UgJ1RSSUFfRE9XTicpCgogICAgICAgICMg44OB44Kn44OD44Kv44GM5YWl44Gj44Gm"
"44GE44KL5aC05ZCI44Gu44G/6Kit5a6a6aCF55uu44KS6KGo56S6CiAgICAgICAgaWYgcHJvcHMuc2hv"
"d19hcnJvdzoKICAgICAgICAgICAgY29sID0gYm94LmNvbHVtbihhbGlnbj1UcnVlKQogICAgICAgICAg"
"ICBjb2wucHJvcChwcm9wcywgImFycm93X3RoaWNrbmVzcyIpCiAgICAgICAgICAgIGNvbC5wcm9wKHBy"
"b3BzLCAiYXJyb3dfY29sb3IiKQogICAgICAgIAogICAgICAgIGlmIHByb3BzLnNob3dfY2lyY2xlOgog"
"ICAgICAgICAgICBjb2wgPSBib3guY29sdW1uKGFsaWduPVRydWUpCiAgICAgICAgICAgIGNvbC5zZXBh"
"cmF0b3IoKQogICAgICAgICAgICBjb2wucHJvcChwcm9wcywgImNpcmNsZV9yYWRpdXMiKQogICAgICAg"
"ICAgICBjb2wucHJvcChwcm9wcywgImNpcmNsZV90aGlja25lc3MiKQogICAgICAgICAgICBjb2wucHJv"
"cChwcm9wcywgImNpcmNsZV9jb2xvciIpCiAgICAgICAgICAgIGNvbC5wcm9wKHByb3BzLCAiY2lyY2xl"
"X2FscGhhIikKICAgICAgICAgICAgCiAgICAgICAgaWYgcHJvcHMuc2hvd19kaXN0X3NwaGVyZToKICAg"
"ICAgICAgICAgY29sID0gYm94LmNvbHVtbihhbGlnbj1UcnVlKQogICAgICAgICAgICBjb2wuc2VwYXJh"
"dG9yKCkKICAgICAgICAgICAgY29sLnByb3AocHJvcHMsICJkaXN0X3NwaGVyZV9jb2xvciIpCiAgICAg"
"ICAgICAgIGNvbC5wcm9wKHByb3BzLCAiZGlzdF9zcGhlcmVfYWxwaGEiKQoKY2xhc3MgVENUQV9QVF9H"
"ZW9JbmZvKFRDVEFfUFRfUGFuZWxCYXNlLCBicHkudHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0g"
"IlRDVEFfUFRfZ2VvX2luZm8iCiAgICBibF9sYWJlbCA9ICI0LiDlub7kvZXmg4XloLEiCiAgICBkZWYg"
"ZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHBy"
"b3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3Rh"
"LnJhbmRvbV9yZXNldCIsIGljb249J0ZJTEVfUkVGUkVTSCcpCiAgICAgICAgCiAgICAgICAgYm94ID0g"
"bGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlNwaGVyZSAxIChmcm9tIDAsMCwwKToi"
"KQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBEaXN0OiB7cHJvcHMuZ2VvX3NwMV9kaXN0Oi4xZn0i"
"KQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBBbmc6IHtwcm9wcy5nZW9fc3AxX2FuZ1swXTouMWZ9"
"wrAsIHtwcm9wcy5nZW9fc3AxX2FuZ1sxXTouMWZ9wrAsIHtwcm9wcy5nZW9fc3AxX2FuZ1syXTouMWZ9"
"wrAiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJTcGhlcmUgMiAoZnJvbSAwLDAsMCk6IikKICAgICAg"
"ICBib3gubGFiZWwodGV4dD1mIiAgRGlzdDoge3Byb3BzLmdlb19zcDJfZGlzdDouMWZ9IikKICAgICAg"
"ICBib3gubGFiZWwodGV4dD1mIiAgQW5nOiB7cHJvcHMuZ2VvX3NwMl9hbmdbMF06LjFmfcKwLCB7cHJv"
"cHMuZ2VvX3NwMl9hbmdbMV06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwMl9hbmdbMl06LjFmfcKwIikKICAg"
"ICAgICAKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iUGxh"
"bmUgQ3Jvc3MgQW5nbGUgKEEgJiBCKToiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBBbmdsZTog"
"e3Byb3BzLmdlb19wbGFuZV9hbmdsZTouMWZ9wrAiKQogICAgICAgIAogICAgICAgIGJveCA9IGxheW91"
"dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJQbGFuZSBCIGZyb20gMCwwLDA6IikKICAgICAg"
"ICBib3gubGFiZWwodGV4dD1mIiAgU2hvcnRlc3QgRGlzdCAoUmFkaXVzKToge3Byb3BzLmdlb19wbGFu"
"ZV9kaXN0Oi4xZn0iKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBGb290IChUb3VjaCBQb2ludCk6"
"ICh7cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMF06LjFmfSwge3Byb3BzLmdlb19wbGFuZV9mb290WzFdOi4x"
"Zn0sIHtwcm9wcy5nZW9fcGxhbmVfZm9vdFsyXTouMWZ9KSIpCgogICAgICAgIGxheW91dC5vcGVyYXRv"
"cigidGN0YS5jb3B5X2dlb19pbmZvIiwgaWNvbj0nQ09QWURPV04nKQoKY2xhc3MgVENUQV9QVF9TeXN0"
"ZW0oVENUQV9QVF9QYW5lbEJhc2UsIGJweS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENU"
"QV9QVF9zeXN0ZW0iCiAgICBibF9sYWJlbCA9ICI1LiDjgrfjgrnjg4bjg6AiCiAgICBkZWYgZHJhdyhz"
"ZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIGxheW91dC5v"
"cGVyYXRvcigidGN0YS5vcGVuX2xpbmsiLCBpY29uPSdVUkwnKQogICAgICAgIGxheW91dC5vcGVyYXRv"
"cigidGN0YS5kZWxldGVfYWxsIiwgaWNvbj0nVFJBU0gnLCB0ZXh0PSLjgqLjg4njgqrjg7PliYrpmaQg"
"KOWFqOOCr+ODquOCoikiKQoKCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDYuIOeZu+mMsuWHpueQhgojID09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT0KY2xhc3NlcyA9ICgKICAgIFRDVEFfUHJvcGVydGllcywKICAgIFRDVEFfT1RfVmlld1Nl"
"bGVjdGVkLAogICAgVENUQV9PVF9VcGRhdGVWaWV3SW5mbywKICAgIFRDVEFfT1RfQ29weVZpZXdJbmZv"
"LAogICAgVENUQV9PVF9DcmVhdGVPYmplY3RzLAogICAgVENUQV9PVF9EZXRhY2hPYmplY3RzLAogICAg"
"VENUQV9PVF9SZXNldFByb3BzLAogICAgVENUQV9PVF9SYW5kb21SZXNldCwKICAgIFRDVEFfT1RfQ29w"
"eUdlb0luZm8sCiAgICBUQ1RBX09UX09wZW5MaW5rLAogICAgVENUQV9PVF9EZWxldGVBbGwsCiAgICBU"
"Q1RBX1BUX1ZpZXdJbmZvLAogICAgVENUQV9QVF9NYWluLAogICAgVENUQV9QVF9TZXR0aW5ncywKICAg"
"IFRDVEFfUFRfR2VvSW5mbywKICAgIFRDVEFfUFRfU3lzdGVtLAopCgpkZWYgcmVnaXN0ZXIoKToKICAg"
"IGZvciBjbHMgaW4gY2xhc3NlczoKICAgICAgICBicHkudXRpbHMucmVnaXN0ZXJfY2xhc3MoY2xzKQog"
"ICAgYnB5LnR5cGVzLlNjZW5lLnRjdGFfcHJvcHMgPSBicHkucHJvcHMuUG9pbnRlclByb3BlcnR5KHR5"
"cGU9VENUQV9Qcm9wZXJ0aWVzKQoKZGVmIHVucmVnaXN0ZXIoKToKICAgIGZvciBjbHMgaW4gcmV2ZXJz"
"ZWQoY2xhc3Nlcyk6CiAgICAgICAgYnB5LnV0aWxzLnVucmVnaXN0ZXJfY2xhc3MoY2xzKQogICAgZGVs"
"IGJweS50eXBlcy5TY2VuZS50Y3RhX3Byb3BzCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAg"
"cmVnaXN0ZXIoKQ=="
)
},
{
"name": "平面2つなす角度 20260713_002",
"code_b64": (
"YmxfaW5mbyA9IHsKICAgICJuYW1lIjogIlRvcnVzIEN1YmUgJiBUcmlhbmdsZSBBbmFseXplciIsCiAg"
"ICAiYXV0aG9yIjogIkFJIEFzc2lzdGFudCIsCiAgICAidmVyc2lvbiI6ICgxLCAzLCAwKSwKICAgICJi"
"bGVuZGVyIjogKDQsIDIsIDApLAogICAgImxvY2F0aW9uIjogIlZpZXczRCA+IFNpZGViYXIgPiBUQ1RB"
"IiwKICAgICJkZXNjcmlwdGlvbiI6ICLlubPpnaLjga7lub7kvZXmg4XloLHoqIjnrpfjgajmnIDnn63o"
"t53pm6Ljga7oppbopprljJbvvIjnn6LljbDjg7vlhobjg7vmjqXjgZnjgovnkIPkvZPvvIkiLAogICAg"
"ImNhdGVnb3J5IjogIjNEIFZpZXciLAp9CgppbXBvcnQgYnB5CmltcG9ydCBibWVzaAppbXBvcnQgbWF0"
"aAppbXBvcnQgbWF0aHV0aWxzCmltcG9ydCByYW5kb20KCiMgPT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDEuIOWIneac"
"n+WApOWumue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT0KUFJFRklYID0gIlRDVEFfIgpQQVJFTlRfQ09MTEVDVElP"
"Tl9OQU1FID0gIlRvcnVzQ3ViZVNwYWNlIgpTVUJfQ09MTEVDVElPTl9OQU1FID0gIkFuYWx5emVyT2Jq"
"ZWN0cyIKVE9SVVNfU0tFTEVUT05fTkFNRSA9ICJUb3J1c1NrZWxldG9uIgpTUEhFUkVfMV9OQU1FID0g"
"IlNwaGVyZV8xIgpTUEhFUkVfMl9OQU1FID0gIlNwaGVyZV8yIgpTUEhFUkVfM19OQU1FID0gIlNwaGVy"
"ZV8zIgpUUklBTkdMRV9BX05BTUUgPSAiVHJpYW5nbGVfQSIKVFJJQU5HTEVfQl9OQU1FID0gIlRyaWFu"
"Z2xlX0IiCkFSUk9XX05BTUUgPSAiQXJyb3dfU2hvcnRlc3REaXN0IgpDSVJDTEVfTkFNRSA9ICJDaXJj"
"bGVfUGxhbmVCIgpESVNUX1NQSEVSRV9OQU1FID0gIlNwaGVyZV9TaG9ydGVzdERpc3QiICMg5paw6KaP"
"6L+95YqgOiDot53pm6LjgpLnpLrjgZnmjqXjgZnjgovnkIPkvZMKCiMgPT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDIu"
"IOODl+ODreODkeODhuOCo+Wumue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY2xhc3MgVENUQV9Qcm9wZXJ0aWVz"
"KGJweS50eXBlcy5Qcm9wZXJ0eUdyb3VwKToKICAgICMg44OI44O844Op44K56aqo5qC86Kit5a6aCiAg"
"ICB0b3J1c19jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iVG9ydXMgQ29s"
"b3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMC4xLCAwLjUsIDAuOCwg"
"MS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHRvcnVzX2FscGhhOiBicHkucHJvcHMuRmxvYXRQcm9w"
"ZXJ0eShuYW1lPSJUb3J1cyBBbHBoYSIsIGRlZmF1bHQ9MC41LCBtaW49MC4wLCBtYXg9MS4wKQogICAg"
"CiAgICAjIOmFjee9ruODouODvOODiQogICAgbW9kZV9vcHRpb25zID0gWygnUkFORE9NJywgIuODqeOD"
"s+ODgOODoCIsICIiKSwgKCdNQU5VQUwnLCAi5oyH5a6a5L2N572uIiwgIiIpXQogICAgc3AxX21vZGU6"
"IGJweS5wcm9wcy5FbnVtUHJvcGVydHkobmFtZT0iTW9kZSIsIGl0ZW1zPW1vZGVfb3B0aW9ucywgZGVm"
"YXVsdD0nUkFORE9NJykKICAgIHNwMl9tb2RlOiBicHkucHJvcHMuRW51bVByb3BlcnR5KG5hbWU9Ik1v"
"ZGUiLCBpdGVtcz1tb2RlX29wdGlvbnMsIGRlZmF1bHQ9J1JBTkRPTScpCiAgICBzcDNfbW9kZTogYnB5"
"LnByb3BzLkVudW1Qcm9wZXJ0eShuYW1lPSJNb2RlIiwgaXRlbXM9bW9kZV9vcHRpb25zLCBkZWZhdWx0"
"PSdSQU5ET00nKQogICAgCiAgICAjIOaMh+WumuW6p+aomeWFpeWKmwogICAgc3AxX3BvczogYnB5LnBy"
"b3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iUG9zaXRpb24gMSIsIGRlZmF1bHQ9KDIuMCwgMi4w"
"LCAyLjApKQogICAgc3AyX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iUG9z"
"aXRpb24gMiIsIGRlZmF1bHQ9KC0yLjAsIC0yLjAsIDIuMCkpCiAgICBzcDNfcG9zOiBicHkucHJvcHMu"
"RmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJQb3NpdGlvbiAzIiwgZGVmYXVsdD0oMC4wLCAzLjAsIC0y"
"LjApKQogICAgCiAgICAjIOWGhemDqOioiOeul+eUqO+8iOWun+W6p+aome+8iQogICAgc3AxX2FjdHVh"
"bF9wb3M6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KGRlZmF1bHQ9KDAsMCwwKSkKICAgIHNw"
"Ml9hY3R1YWxfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShkZWZhdWx0PSgwLDAsMCkp"
"CiAgICBzcDNfYWN0dWFsX3BvczogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkoZGVmYXVsdD0o"
"MCwwLDApKQoKICAgICMg5LiJ6KeS5b2i6Kit5a6aCiAgICB0cmlfdGhpY2tuZXNzOiBicHkucHJvcHMu"
"RmxvYXRQcm9wZXJ0eShuYW1lPSJUaGlja25lc3MiLCBkZWZhdWx0PTAuMSwgbWluPTAuMCkKICAgIHRy"
"aV9hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iQWxwaGEiLCBkZWZhdWx0PTAuMSwg"
"bWluPTAuMCwgbWF4PTEuMCkKICAgIHRyaUFfY29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3Bl"
"cnR5KG5hbWU9IkNvbG9yIEEiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0o"
"MC44LCAwLjIsIDAuMiwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHRyaUJfY29sb3I6IGJweS5w"
"cm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkNvbG9yIEIiLCBzdWJ0eXBlPSdDT0xPUl9HQU1N"
"QScsIHNpemU9NCwgZGVmYXVsdD0oMC4yLCAwLjgsIDAuMiwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkK"
"CiAgICAjIOefouWNsOioreWumgogICAgYXJyb3dfdGhpY2tuZXNzOiBicHkucHJvcHMuRmxvYXRQcm9w"
"ZXJ0eShuYW1lPSJBcnJvdyBUaGlja25lc3MiLCBkZWZhdWx0PTAuMDUsIG1pbj0wLjAxLCBtYXg9MS4w"
"KQogICAgYXJyb3dfY29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkFycm93"
"IENvbG9yIiwgc3VidHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDEuMCwgMC44LCAw"
"LjAsIDEuMCksIG1pbj0wLjAsIG1heD0xLjApCgogICAgIyDlhoboqK3lrpoKICAgIGNpcmNsZV9yYWRp"
"dXM6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IkNpcmNsZSBSYWRpdXMiLCBkZWZhdWx0PTMu"
"MCwgbWluPTAuMSkKICAgIGNpcmNsZV90aGlja25lc3M6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5h"
"bWU9IkNpcmNsZSBUaGlja25lc3MiLCBkZWZhdWx0PTAuMSwgbWluPTAuMCkKICAgIGNpcmNsZV9jb2xv"
"cjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0iQ2lyY2xlIENvbG9yIiwgc3VidHlw"
"ZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDEuMCwgMC41LCAwLjAsIDAuNCksIG1pbj0w"
"LjAsIG1heD0xLjApCiAgICBjaXJjbGVfYWxwaGE6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9"
"IkNpcmNsZSBBbHBoYSIsIGRlZmF1bHQ9MC40LCBtaW49MC4wLCBtYXg9MS4wKQoKICAgICMg6Led6Zui"
"55CD5L2T6Kit5a6aIChORVcpCiAgICBkaXN0X3NwaGVyZV9jb2xvcjogYnB5LnByb3BzLkZsb2F0VmVj"
"dG9yUHJvcGVydHkobmFtZT0iRGlzdCBTcGhlcmUgQ29sb3IiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScs"
"IHNpemU9NCwgZGVmYXVsdD0oMC4wLCAwLjgsIDEuMCwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAg"
"IGRpc3Rfc3BoZXJlX2FscGhhOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJEaXN0IFNwaGVy"
"ZSBBbHBoYSIsIGRlZmF1bHQ9MC4wNiwgbWluPTAuMCwgbWF4PTEuMCkgIyDopoHmnJvjga7liJ3mnJ/l"
"gKQwLjA2CgogICAgIyDjg5Pjg6Xjg7zjg53jg7zjg4jmg4XloLEKICAgIHZpZXdfY2VudGVyOiBicHku"
"cHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJWaWV3IENlbnRlciIpCiAgICB2aWV3X3NpemU6"
"IGJweS5wcm9wcy5JbnRWZWN0b3JQcm9wZXJ0eShuYW1lPSJWaWV3IFNpemUgKFB4KSIsIHNpemU9MikK"
"ICAgIHZpZXdfZGlzdGFuY2U6IGJweS5wcm9wcy5GbG9hdFByb3BlcnR5KG5hbWU9IlZpZXcgRGlzdGFu"
"Y2UiKQogICAgCiAgICAjIOW5vuS9leaDheWgsQogICAgZ2VvX3NwMV9kaXN0OiBicHkucHJvcHMuRmxv"
"YXRQcm9wZXJ0eSgpCiAgICBnZW9fc3AxX2FuZzogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHko"
"c2l6ZT0zKQogICAgZ2VvX3NwMl9kaXN0OiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgpCiAgICBnZW9f"
"c3AyX2FuZzogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkoc2l6ZT0zKQogICAgZ2VvX3BsYW5l"
"X2FuZ2xlOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgpCiAgICBnZW9fcGxhbmVfZGlzdDogYnB5LnBy"
"b3BzLkZsb2F0UHJvcGVydHkoKQogICAgZ2VvX3BsYW5lX2Zvb3Q6IGJweS5wcm9wcy5GbG9hdFZlY3Rv"
"clByb3BlcnR5KHNpemU9MykKICAgIGdlb19wbGFuZV9ub3JtYWw6IGJweS5wcm9wcy5GbG9hdFZlY3Rv"
"clByb3BlcnR5KHNpemU9MykKCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyAzLiDjg6bjg7zjg4bjgqPjg6rjg4bj"
"gqPplqLmlbAKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09CmRlZiBnZXRfM2Rfdmlld19jb250ZXh0KCk6CiAgICBmb3Ig"
"d2luZG93IGluIGJweS5jb250ZXh0LndpbmRvd19tYW5hZ2VyLndpbmRvd3M6CiAgICAgICAgZm9yIGFy"
"ZWEgaW4gd2luZG93LnNjcmVlbi5hcmVhczoKICAgICAgICAgICAgaWYgYXJlYS50eXBlID09ICdWSUVX"
"XzNEJzoKICAgICAgICAgICAgICAgIGZvciByZWdpb24gaW4gYXJlYS5yZWdpb25zOgogICAgICAgICAg"
"ICAgICAgICAgIGlmIHJlZ2lvbi50eXBlID09ICdXSU5ET1cnOgogICAgICAgICAgICAgICAgICAgICAg"
"ICByZXR1cm4gYXJlYSwgcmVnaW9uLCBhcmVhLnNwYWNlcy5hY3RpdmUKICAgIHJldHVybiBOb25lLCBO"
"b25lLCBOb25lCgpkZWYgY3JlYXRlX21hdGVyaWFsKG5hbWUsIGNvbG9yLCBhbHBoYSk6CiAgICBtYXQg"
"PSBicHkuZGF0YS5tYXRlcmlhbHMuZ2V0KG5hbWUpCiAgICBpZiBub3QgbWF0OgogICAgICAgIG1hdCA9"
"IGJweS5kYXRhLm1hdGVyaWFscy5uZXcobmFtZSkKICAgIG1hdC51c2Vfbm9kZXMgPSBUcnVlCiAgICAK"
"ICAgIGlmIGhhc2F0dHIobWF0LCAiYmxlbmRfbWV0aG9kIik6CiAgICAgICAgbWF0LmJsZW5kX21ldGhv"
"ZCA9ICdCTEVORCcKICAgIGlmIGhhc2F0dHIobWF0LCAic2hhZG93X21ldGhvZCIpOgogICAgICAgIG1h"
"dC5zaGFkb3dfbWV0aG9kID0gJ05PTkUnCiAgICAKICAgIGJzZGYgPSBtYXQubm9kZV90cmVlLm5vZGVz"
"LmdldCgiUHJpbmNpcGxlZCBCU0RGIikKICAgIGlmIGJzZGY6CiAgICAgICAgYnNkZi5pbnB1dHNbIkJh"
"c2UgQ29sb3IiXS5kZWZhdWx0X3ZhbHVlID0gY29sb3IKICAgICAgICBic2RmLmlucHV0c1siQWxwaGEi"
"XS5kZWZhdWx0X3ZhbHVlID0gYWxwaGEKICAgIHJldHVybiBtYXQKCmRlZiBjYWxjX2dlb19kYXRhKHBy"
"b3BzKToKICAgIGRlZiBjYWxjX2Rpc3RfYW5nbGUodmVjKToKICAgICAgICBkaXN0ID0gdmVjLmxlbmd0"
"aAogICAgICAgIGlmIGRpc3QgPT0gMDogcmV0dXJuIDAsIDAsIDAsIDAKICAgICAgICBuID0gdmVjLm5v"
"cm1hbGl6ZWQoKQogICAgICAgIGF4ID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhuLngpKQogICAgICAg"
"IGF5ID0gbWF0aC5kZWdyZWVzKG1hdGguYWNvcyhuLnkpKQogICAgICAgIGF6ID0gbWF0aC5kZWdyZWVz"
"KG1hdGguYWNvcyhuLnopKQogICAgICAgIHJldHVybiBkaXN0LCBheCwgYXksIGF6CgogICAgcDAgPSBt"
"YXRodXRpbHMuVmVjdG9yKCgwLCAwLCAwKSkKICAgIHAxID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5z"
"cDFfYWN0dWFsX3BvcykKICAgIHAyID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5zcDJfYWN0dWFsX3Bv"
"cykKICAgIHAzID0gbWF0aHV0aWxzLlZlY3Rvcihwcm9wcy5zcDNfYWN0dWFsX3BvcykKCiAgICBkMSwg"
"YXgxLCBheTEsIGF6MSA9IGNhbGNfZGlzdF9hbmdsZShwMSkKICAgIHByb3BzLmdlb19zcDFfZGlzdCA9"
"IGQxCiAgICBwcm9wcy5nZW9fc3AxX2FuZyA9IChheDEsIGF5MSwgYXoxKQoKICAgIGQyLCBheDIsIGF5"
"MiwgYXoyID0gY2FsY19kaXN0X2FuZ2xlKHAyKQogICAgcHJvcHMuZ2VvX3NwMl9kaXN0ID0gZDIKICAg"
"IHByb3BzLmdlb19zcDJfYW5nID0gKGF4MiwgYXkyLCBhejIpCgogICAgdjEgPSBwMSAtIHAwCiAgICB2"
"MiA9IHAyIC0gcDAKICAgIHYzID0gcDIgLSBwMQogICAgdjQgPSBwMyAtIHAxCiAgICBuMSA9IHYxLmNy"
"b3NzKHYyKQogICAgbjIgPSB2My5jcm9zcyh2NCkKICAgIAogICAgaWYgbjEubGVuZ3RoID4gMC4wMDAx"
"IGFuZCBuMi5sZW5ndGggPiAwLjAwMDE6CiAgICAgICAgbjFfbm9ybSA9IG4xLm5vcm1hbGl6ZWQoKQog"
"ICAgICAgIG4yX25vcm0gPSBuMi5ub3JtYWxpemVkKCkKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfbm9y"
"bWFsID0gbjJfbm9ybQogICAgICAgIGRvdCA9IG1heCgtMS4wLCBtaW4oMS4wLCBuMV9ub3JtLmRvdChu"
"Ml9ub3JtKSkpCiAgICAgICAgcHJvcHMuZ2VvX3BsYW5lX2FuZ2xlID0gbWF0aC5kZWdyZWVzKG1hdGgu"
"YWNvcyhkb3QpKQogICAgZWxzZToKICAgICAgICBwcm9wcy5nZW9fcGxhbmVfYW5nbGUgPSAwLjAKICAg"
"ICAgICBwcm9wcy5nZW9fcGxhbmVfbm9ybWFsID0gKDAsMCwxKQoKICAgIGlmIG4yLmxlbmd0aCA+IDAu"
"MDAwMToKICAgICAgICB0ID0gbjJfbm9ybS5kb3QocDEpCiAgICAgICAgSCA9IG4yX25vcm0gKiB0CiAg"
"ICAgICAgcHJvcHMuZ2VvX3BsYW5lX2Rpc3QgPSBhYnModCkKICAgICAgICBwcm9wcy5nZW9fcGxhbmVf"
"Zm9vdCA9IEgKICAgIGVsc2U6CiAgICAgICAgcHJvcHMuZ2VvX3BsYW5lX2Rpc3QgPSAwLjAKICAgICAg"
"ICBwcm9wcy5nZW9fcGxhbmVfZm9vdCA9ICgwLCAwLCAwKQoKIyA9PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgNC4g44Kq"
"44Oa44Os44O844K/44O8ICjlh6bnkIbjg63jgrjjg4Pjgq8pCiMgPT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBU"
"Q1RBX09UX1ZpZXdTZWxlY3RlZChicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRj"
"dGEudmlld19zZWxlY3RlZCIKICAgIGJsX2xhYmVsID0gIumBuOaKnuOCkueUu+mdouS4reWkruOBqyIK"
"ICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIGJweS5vcHMudmlldzNkLnZpZXdf"
"c2VsZWN0ZWQoKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfVXBkYXRl"
"Vmlld0luZm8oYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLnVwZGF0ZV92"
"aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICLnlLvpnaLmg4XloLHmm7TmlrAiCiAgICBkZWYgZXhlY3V0"
"ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBhcmVhLCByZWdpb24sIHNwYWNlID0gZ2V0XzNkX3ZpZXdf"
"Y29udGV4dCgpCiAgICAgICAgaWYgbm90IHNwYWNlOgogICAgICAgICAgICBzZWxmLnJlcG9ydCh7J1dB"
"Uk5JTkcnfSwgIjNE44OT44Ol44O844GM6KaL44Gk44GL44KK44G+44Gb44KTIikKICAgICAgICAgICAg"
"cmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICBydjNkID0gc3BhY2UucmVnaW9uXzNkCiAgICAgICAg"
"cHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAgICAgICBwcm9wcy52aWV3X2NlbnRlciA9"
"IHJ2M2Qudmlld19sb2NhdGlvbgogICAgICAgIHByb3BzLnZpZXdfc2l6ZSA9IChyZWdpb24ud2lkdGgs"
"IHJlZ2lvbi5oZWlnaHQpCiAgICAgICAgaWYgcnYzZC52aWV3X3BlcnNwZWN0aXZlID09ICdQRVJTUCc6"
"CiAgICAgICAgICAgIHByb3BzLnZpZXdfZGlzdGFuY2UgPSBydjNkLnZpZXdfZGlzdGFuY2UKICAgICAg"
"ICBlbHNlOgogICAgICAgICAgICBwcm9wcy52aWV3X2Rpc3RhbmNlID0gMC4wIAogICAgICAgIHJldHVy"
"biB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfQ29weVZpZXdJbmZvKGJweS50eXBlcy5PcGVyYXRv"
"cik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5jb3B5X3ZpZXdfaW5mbyIKICAgIGJsX2xhYmVsID0gIuOD"
"k+ODpeODvOaDheWgseOCkuOCs+ODlOODvCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgog"
"ICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAgICAgbGluZXMgPSBbCiAg"
"ICAgICAgICAgIGYiQ2VudGVyOiBYPXtwcm9wcy52aWV3X2NlbnRlci54Oi4xZn0sIFk9e3Byb3BzLnZp"
"ZXdfY2VudGVyLnk6LjFmfSwgWj17cHJvcHMudmlld19jZW50ZXIuejouMWZ9IiwKICAgICAgICAgICAg"
"ZiJTaXplOiBXPXtwcm9wcy52aWV3X3NpemVbMF19LCBIPXtwcm9wcy52aWV3X3NpemVbMV19IiwKICAg"
"ICAgICAgICAgZiJEaXN0YW5jZToge3Byb3BzLnZpZXdfZGlzdGFuY2U6LjFmfSIgaWYgcHJvcHMudmll"
"d19kaXN0YW5jZSA+IDAgZWxzZSAiRGlzdGFuY2U6IE4vQSIKICAgICAgICBdCiAgICAgICAgY29udGV4"
"dC53aW5kb3dfbWFuYWdlci5jbGlwYm9hcmQgPSAiXG4iLmpvaW4obGluZXMpCiAgICAgICAgc2VsZi5y"
"ZXBvcnQoeydJTkZPJ30sICLjgrPjg5Tjg7zjgZfjgb7jgZfjgZ8iKQogICAgICAgIHJldHVybiB7J0ZJ"
"TklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfQ3JlYXRlT2JqZWN0cyhicHkudHlwZXMuT3BlcmF0b3IpOgog"
"ICAgYmxfaWRuYW1lID0gInRjdGEuY3JlYXRlX29iamVjdHMiCiAgICBibF9sYWJlbCA9ICLkvZzmiJAi"
"CiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2Nl"
"bmUudGN0YV9wcm9wcwogICAgICAgIAogICAgICAgIHBhcmVudF9jb2wgPSBicHkuZGF0YS5jb2xsZWN0"
"aW9ucy5nZXQoUEFSRU5UX0NPTExFQ1RJT05fTkFNRSkKICAgICAgICBpZiBub3QgcGFyZW50X2NvbDoK"
"ICAgICAgICAgICAgcGFyZW50X2NvbCA9IGJweS5kYXRhLmNvbGxlY3Rpb25zLm5ldyhQQVJFTlRfQ09M"
"TEVDVElPTl9OQU1FKQogICAgICAgICAgICBjb250ZXh0LnNjZW5lLmNvbGxlY3Rpb24uY2hpbGRyZW4u"
"bGluayhwYXJlbnRfY29sKQogICAgICAgICAgICAKICAgICAgICBzdWJfY29sID0gYnB5LmRhdGEuY29s"
"bGVjdGlvbnMuZ2V0KFNVQl9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAgaWYgbm90IHN1Yl9jb2w6CiAg"
"ICAgICAgICAgIHN1Yl9jb2wgPSBicHkuZGF0YS5jb2xsZWN0aW9ucy5uZXcoU1VCX0NPTExFQ1RJT05f"
"TkFNRSkKICAgICAgICAgICAgcGFyZW50X2NvbC5jaGlsZHJlbi5saW5rKHN1Yl9jb2wpCgogICAgICAg"
"ICMg5pei5a2Y5YmK6ZmkCiAgICAgICAgbmFtZXNfdG9fZGVsZXRlID0gWwogICAgICAgICAgICBUT1JV"
"U19TS0VMRVRPTl9OQU1FLCBTUEhFUkVfMV9OQU1FLCBTUEhFUkVfMl9OQU1FLCBTUEhFUkVfM19OQU1F"
"LCAKICAgICAgICAgICAgVFJJQU5HTEVfQV9OQU1FLCBUUklBTkdMRV9CX05BTUUsIEFSUk9XX05BTUUs"
"IENJUkNMRV9OQU1FLCBESVNUX1NQSEVSRV9OQU1FCiAgICAgICAgXQogICAgICAgIGZvciBvYmpfbmFt"
"ZSBpbiBuYW1lc190b19kZWxldGU6CiAgICAgICAgICAgIGlmIG9ial9uYW1lIGluIGJweS5kYXRhLm9i"
"amVjdHM6CiAgICAgICAgICAgICAgICBicHkuZGF0YS5vYmplY3RzLnJlbW92ZShicHkuZGF0YS5vYmpl"
"Y3RzW29ial9uYW1lXSwgZG9fdW5saW5rPVRydWUpCgogICAgICAgICMgMS4g6aqo5qC85L2c5oiQCiAg"
"ICAgICAgbWVzaCA9IGJweS5kYXRhLm1lc2hlcy5uZXcoVE9SVVNfU0tFTEVUT05fTkFNRSkKICAgICAg"
"ICBvYmogPSBicHkuZGF0YS5vYmplY3RzLm5ldyhUT1JVU19TS0VMRVRPTl9OQU1FLCBtZXNoKQogICAg"
"ICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9iaikKICAgICAgICBibSA9IGJtZXNoLm5ldygpCiAgICAg"
"ICAgYm1lc2gub3BzLmNyZWF0ZV9jdWJlKGJtLCBzaXplPTEwLjApCiAgICAgICAgYm1lc2gub3BzLmRl"
"bGV0ZShibSwgZ2VvbT1ibS5mYWNlcywgY29udGV4dD0nRkFDRVMnKQogICAgICAgIGJtLnRvX21lc2go"
"bWVzaCkKICAgICAgICBibS5mcmVlKCkKICAgICAgICBza2luX21vZCA9IG9iai5tb2RpZmllcnMubmV3"
"KG5hbWU9IlNraW4iLCB0eXBlPSdTS0lOJykKICAgICAgICBzdWJfbW9kID0gb2JqLm1vZGlmaWVycy5u"
"ZXcobmFtZT0iU3ViZGl2aXNpb24iLCB0eXBlPSdTVUJTVVJGJykKICAgICAgICBzdWJfbW9kLmxldmVs"
"cyA9IDIKICAgICAgICBmb3IgdiBpbiBvYmouZGF0YS5za2luX3ZlcnRpY2VzWzBdLmRhdGE6CiAgICAg"
"ICAgICAgIHYucmFkaXVzID0gKDAuMiwgMC4yKQogICAgICAgIG9iai5hY3RpdmVfbWF0ZXJpYWwgPSBj"
"cmVhdGVfbWF0ZXJpYWwoUFJFRklYKyJNYXRfVG9ydXMiLCBwcm9wcy50b3J1c19jb2xvciwgcHJvcHMu"
"dG9ydXNfYWxwaGEpCgogICAgICAgICMgMi4g55CD5L2T5L2c5oiQCiAgICAgICAgZGVmIGdldF9wb3Mo"
"bW9kZSwgcHJvcF9wb3MpOgogICAgICAgICAgICBpZiBtb2RlID09ICdSQU5ET00nOgogICAgICAgICAg"
"ICAgICAgcmV0dXJuIChyYW5kb20udW5pZm9ybSgtNSwgNSksIHJhbmRvbS51bmlmb3JtKC01LCA1KSwg"
"cmFuZG9tLnVuaWZvcm0oLTUsIDUpKQogICAgICAgICAgICByZXR1cm4gcHJvcF9wb3MKCiAgICAgICAg"
"cHJvcHMuc3AxX2FjdHVhbF9wb3MgPSBnZXRfcG9zKHByb3BzLnNwMV9tb2RlLCBwcm9wcy5zcDFfcG9z"
"KQogICAgICAgIHByb3BzLnNwMl9hY3R1YWxfcG9zID0gZ2V0X3Bvcyhwcm9wcy5zcDJfbW9kZSwgcHJv"
"cHMuc3AyX3BvcykKICAgICAgICBwcm9wcy5zcDNfYWN0dWFsX3BvcyA9IGdldF9wb3MocHJvcHMuc3Az"
"X21vZGUsIHByb3BzLnNwM19wb3MpCgogICAgICAgIGRlZiBjcmVhdGVfc3BoZXJlKG5hbWUsIGxvYyk6"
"CiAgICAgICAgICAgIG1lc2ggPSBicHkuZGF0YS5tZXNoZXMubmV3KG5hbWUpCiAgICAgICAgICAgIG9i"
"aiA9IGJweS5kYXRhLm9iamVjdHMubmV3KG5hbWUsIG1lc2gpCiAgICAgICAgICAgIHN1Yl9jb2wub2Jq"
"ZWN0cy5saW5rKG9iaikKICAgICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICBibWVz"
"aC5vcHMuY3JlYXRlX3V2c3BoZXJlKGJtLCB1X3NlZ21lbnRzPTE2LCB2X3NlZ21lbnRzPTgsIHJhZGl1"
"cz0wLjUpCiAgICAgICAgICAgIGJtLnRvX21lc2gobWVzaCkKICAgICAgICAgICAgYm0uZnJlZSgpCiAg"
"ICAgICAgICAgIG9iai5sb2NhdGlvbiA9IGxvYwogICAgICAgICAgICByZXR1cm4gb2JqCgogICAgICAg"
"IGNyZWF0ZV9zcGhlcmUoU1BIRVJFXzFfTkFNRSwgcHJvcHMuc3AxX2FjdHVhbF9wb3MpCiAgICAgICAg"
"Y3JlYXRlX3NwaGVyZShTUEhFUkVfMl9OQU1FLCBwcm9wcy5zcDJfYWN0dWFsX3BvcykKICAgICAgICBj"
"cmVhdGVfc3BoZXJlKFNQSEVSRV8zX05BTUUsIHByb3BzLnNwM19hY3R1YWxfcG9zKQoKICAgICAgICAj"
"IDMuIOS4ieinkuW9ouS9nOaIkAogICAgICAgIGRlZiBjcmVhdGVfdHJpYW5nbGUobmFtZSwgcDEsIHAy"
"LCBwMywgY29sb3IsIGFscGhhLCB0aGlja25lc3MpOgogICAgICAgICAgICBtZXNoID0gYnB5LmRhdGEu"
"bWVzaGVzLm5ldyhuYW1lKQogICAgICAgICAgICBvYmogPSBicHkuZGF0YS5vYmplY3RzLm5ldyhuYW1l"
"LCBtZXNoKQogICAgICAgICAgICBzdWJfY29sLm9iamVjdHMubGluayhvYmopCiAgICAgICAgICAgIGJt"
"ID0gYm1lc2gubmV3KCkKICAgICAgICAgICAgdjEgPSBibS52ZXJ0cy5uZXcocDEpCiAgICAgICAgICAg"
"IHYyID0gYm0udmVydHMubmV3KHAyKQogICAgICAgICAgICB2MyA9IGJtLnZlcnRzLm5ldyhwMykKICAg"
"ICAgICAgICAgYm0uZmFjZXMubmV3KCh2MSwgdjIsIHYzKSkKICAgICAgICAgICAgYm0udG9fbWVzaCht"
"ZXNoKQogICAgICAgICAgICBibS5mcmVlKCkKICAgICAgICAgICAgc29sID0gb2JqLm1vZGlmaWVycy5u"
"ZXcobmFtZT0iU29saWRpZnkiLCB0eXBlPSdTT0xJRElGWScpCiAgICAgICAgICAgIHNvbC50aGlja25l"
"c3MgPSB0aGlja25lc3MKICAgICAgICAgICAgb2JqLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRl"
"cmlhbChQUkVGSVgrIk1hdF8iK25hbWUsIGNvbG9yLCBhbHBoYSkKCiAgICAgICAgY3JlYXRlX3RyaWFu"
"Z2xlKFRSSUFOR0xFX0FfTkFNRSwgKDAsMCwwKSwgcHJvcHMuc3AxX2FjdHVhbF9wb3MsIHByb3BzLnNw"
"Ml9hY3R1YWxfcG9zLCBwcm9wcy50cmlBX2NvbG9yLCBwcm9wcy50cmlfYWxwaGEsIHByb3BzLnRyaV90"
"aGlja25lc3MpCiAgICAgICAgY3JlYXRlX3RyaWFuZ2xlKFRSSUFOR0xFX0JfTkFNRSwgcHJvcHMuc3Ax"
"X2FjdHVhbF9wb3MsIHByb3BzLnNwMl9hY3R1YWxfcG9zLCBwcm9wcy5zcDNfYWN0dWFsX3BvcywgcHJv"
"cHMudHJpQl9jb2xvciwgcHJvcHMudHJpX2FscGhhLCBwcm9wcy50cmlfdGhpY2tuZXNzKQoKICAgICAg"
"ICAjIDQuIOW5vuS9leioiOeulwogICAgICAgIGNhbGNfZ2VvX2RhdGEocHJvcHMpCgogICAgICAgICMg"
"NS4g5pyA55+t6Led6Zui44Gu6KaW6Kaa5YyW77yI55+i5Y2w44O75YaG44O76YCP5piO55CD5L2T77yJ"
"CiAgICAgICAgZGlzdCA9IHByb3BzLmdlb19wbGFuZV9kaXN0CiAgICAgICAgaWYgZGlzdCA+IDAuMDE6"
"CiAgICAgICAgICAgICMgLS0tIOefouWNsCAtLS0KICAgICAgICAgICAgbWVzaF9hcnIgPSBicHkuZGF0"
"YS5tZXNoZXMubmV3KEFSUk9XX05BTUUpCiAgICAgICAgICAgIG9ial9hcnIgPSBicHkuZGF0YS5vYmpl"
"Y3RzLm5ldyhBUlJPV19OQU1FLCBtZXNoX2FycikKICAgICAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxp"
"bmsob2JqX2FycikKICAgICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICByID0gcHJv"
"cHMuYXJyb3dfdGhpY2tuZXNzCiAgICAgICAgICAgIGhlYWRfbCA9IG1pbihkaXN0ICogMC4zLCByICog"
"NC4wKQogICAgICAgICAgICBib2R5X2wgPSBkaXN0IC0gaGVhZF9sCiAgICAgICAgICAgIGJtZXNoLm9w"
"cy5jcmVhdGVfY29uZShibSwgY2FwX2VuZHM9VHJ1ZSwgY2FwX3RyaXM9RmFsc2UsIHNlZ21lbnRzPTE2"
"LCByYWRpdXMxPXIsIHJhZGl1czI9ciwgZGVwdGg9Ym9keV9sKQogICAgICAgICAgICBnZW9tX2hlYWQg"
"PSBibWVzaC5vcHMuY3JlYXRlX2NvbmUoYm0sIGNhcF9lbmRzPVRydWUsIGNhcF90cmlzPUZhbHNlLCBz"
"ZWdtZW50cz0xNiwgcmFkaXVzMT1yKjIuNSwgcmFkaXVzMj0wLjAsIGRlcHRoPWhlYWRfbCkKICAgICAg"
"ICAgICAgYm1lc2gub3BzLnRyYW5zbGF0ZShibSwgdmVydHM9W3YgZm9yIHYgaW4gZ2VvbV9oZWFkWyd2"
"ZXJ0cyddXSwgdmVjPSgwLCAwLCBib2R5X2wvMiArIGhlYWRfbC8yKSkKICAgICAgICAgICAgYm1lc2gu"
"b3BzLnRyYW5zbGF0ZShibSwgdmVydHM9Ym0udmVydHMsIHZlYz0oMCwgMCwgYm9keV9sLzIpKQogICAg"
"ICAgICAgICBibS50b19tZXNoKG1lc2hfYXJyKQogICAgICAgICAgICBibS5mcmVlKCkKICAgICAgICAg"
"ICAgCiAgICAgICAgICAgIG9ial9hcnIubG9jYXRpb24gPSAoMCwgMCwgMCkKICAgICAgICAgICAgZm9v"
"dF92ZWMgPSBtYXRodXRpbHMuVmVjdG9yKHByb3BzLmdlb19wbGFuZV9mb290KQogICAgICAgICAgICBy"
"b3RfcXVhdCA9IG1hdGh1dGlscy5WZWN0b3IoKDAsMCwxKSkucm90YXRpb25fZGlmZmVyZW5jZShmb290"
"X3ZlYy5ub3JtYWxpemVkKCkpCiAgICAgICAgICAgIG9ial9hcnIucm90YXRpb25fbW9kZSA9ICdRVUFU"
"RVJOSU9OJwogICAgICAgICAgICBvYmpfYXJyLnJvdGF0aW9uX3F1YXRlcm5pb24gPSByb3RfcXVhdAog"
"ICAgICAgICAgICBvYmpfYXJyLmFjdGl2ZV9tYXRlcmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgr"
"Ik1hdF9BcnJvdyIsIHByb3BzLmFycm93X2NvbG9yLCAxLjApCgogICAgICAgICAgICAjIC0tLSDlhoYg"
"KOedgOW8vueCueOBruazoue0iykgLS0tCiAgICAgICAgICAgIG1lc2hfY2lyID0gYnB5LmRhdGEubWVz"
"aGVzLm5ldyhDSVJDTEVfTkFNRSkKICAgICAgICAgICAgb2JqX2NpciA9IGJweS5kYXRhLm9iamVjdHMu"
"bmV3KENJUkNMRV9OQU1FLCBtZXNoX2NpcikKICAgICAgICAgICAgc3ViX2NvbC5vYmplY3RzLmxpbmso"
"b2JqX2NpcikKICAgICAgICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICBibWVzaC5vcHMu"
"Y3JlYXRlX2NpcmNsZShibSwgY2FwX2VuZHM9VHJ1ZSwgY2FwX3RyaXM9RmFsc2UsIHNlZ21lbnRzPTMy"
"LCByYWRpdXM9cHJvcHMuY2lyY2xlX3JhZGl1cykKICAgICAgICAgICAgYm0udG9fbWVzaChtZXNoX2Np"
"cikKICAgICAgICAgICAgYm0uZnJlZSgpCgogICAgICAgICAgICBvYmpfY2lyLmxvY2F0aW9uID0gcHJv"
"cHMuZ2VvX3BsYW5lX2Zvb3QKICAgICAgICAgICAgbm9ybWFsX3ZlYyA9IG1hdGh1dGlscy5WZWN0b3Io"
"cHJvcHMuZ2VvX3BsYW5lX25vcm1hbCkKICAgICAgICAgICAgaWYgbm9ybWFsX3ZlYy5sZW5ndGggPiAw"
"OgogICAgICAgICAgICAgICAgcm90X3F1YXRfY2lyID0gbWF0aHV0aWxzLlZlY3RvcigoMCwwLDEpKS5y"
"b3RhdGlvbl9kaWZmZXJlbmNlKG5vcm1hbF92ZWMpCiAgICAgICAgICAgICAgICBvYmpfY2lyLnJvdGF0"
"aW9uX21vZGUgPSAnUVVBVEVSTklPTicKICAgICAgICAgICAgICAgIG9ial9jaXIucm90YXRpb25fcXVh"
"dGVybmlvbiA9IHJvdF9xdWF0X2NpcgoKICAgICAgICAgICAgc29sID0gb2JqX2Npci5tb2RpZmllcnMu"
"bmV3KG5hbWU9IlNvbGlkaWZ5IiwgdHlwZT0nU09MSURJRlknKQogICAgICAgICAgICBzb2wudGhpY2tu"
"ZXNzID0gcHJvcHMuY2lyY2xlX3RoaWNrbmVzcwogICAgICAgICAgICBvYmpfY2lyLmFjdGl2ZV9tYXRl"
"cmlhbCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF9DaXJjbGUiLCBwcm9wcy5jaXJjbGVfY29s"
"b3IsIHByb3BzLmNpcmNsZV9hbHBoYSkKCiAgICAgICAgICAgICMgLS0tIOmAj+aYjueQg+S9kyAo5bmz"
"6Z2i44Gr5o6l44GZ44KL44K344Oj44Oc44Oz546JKSBORVcgLS0tCiAgICAgICAgICAgIG1lc2hfc3Bo"
"ID0gYnB5LmRhdGEubWVzaGVzLm5ldyhESVNUX1NQSEVSRV9OQU1FKQogICAgICAgICAgICBvYmpfc3Bo"
"ID0gYnB5LmRhdGEub2JqZWN0cy5uZXcoRElTVF9TUEhFUkVfTkFNRSwgbWVzaF9zcGgpCiAgICAgICAg"
"ICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9ial9zcGgpCiAgICAgICAgICAgIAogICAgICAgICAgICBi"
"bSA9IGJtZXNoLm5ldygpCiAgICAgICAgICAgICMg5Y2K5b6EID0g5Y6f54K544GL44KJ44Gu5pyA55+t"
"6Led6ZuiKGRpc3QpCiAgICAgICAgICAgIGJtZXNoLm9wcy5jcmVhdGVfdXZzcGhlcmUoYm0sIHVfc2Vn"
"bWVudHM9MzIsIHZfc2VnbWVudHM9MTYsIHJhZGl1cz1kaXN0KQogICAgICAgICAgICBibS50b19tZXNo"
"KG1lc2hfc3BoKQogICAgICAgICAgICBibS5mcmVlKCkKICAgICAgICAgICAgCiAgICAgICAgICAgICMg"
"5Lit5b+D44Gv5Y6f54K5KDAsMCwwKeOAgeOCueODoOODvOOCuuOCt+OCp+ODvOODiemBqeeUqAogICAg"
"ICAgICAgICBvYmpfc3BoLmxvY2F0aW9uID0gKDAsIDAsIDApCiAgICAgICAgICAgIGZvciBwb2x5IGlu"
"IG1lc2hfc3BoLnBvbHlnb25zOgogICAgICAgICAgICAgICAgcG9seS51c2Vfc21vb3RoID0gVHJ1ZQog"
"ICAgICAgICAgICAgICAgCiAgICAgICAgICAgIG9ial9zcGguYWN0aXZlX21hdGVyaWFsID0gY3JlYXRl"
"X21hdGVyaWFsKFBSRUZJWCsiTWF0X0Rpc3RTcGhlcmUiLCBwcm9wcy5kaXN0X3NwaGVyZV9jb2xvciwg"
"cHJvcHMuZGlzdF9zcGhlcmVfYWxwaGEpCgogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNz"
"IFRDVEFfT1RfRGV0YWNoT2JqZWN0cyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0g"
"InRjdGEuZGV0YWNoX29iamVjdHMiCiAgICBibF9sYWJlbCA9ICLjgqLjg4njgqrjg7PjgYvjgonliIfj"
"gorpm6LjgZciCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBwYXJlbnRfY29s"
"ID0gYnB5LmRhdGEuY29sbGVjdGlvbnMuZ2V0KFBBUkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAg"
"aWYgcGFyZW50X2NvbDoKICAgICAgICAgICAgcGFyZW50X2NvbC5uYW1lID0gUEFSRU5UX0NPTExFQ1RJ"
"T05fTkFNRSArICJfRGV0YWNoZWQiCiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsnSU5GTyd9LCAi5YiH"
"44KK6Zui44GX44G+44GX44GfIikKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBUQ1RB"
"X09UX1Jlc2V0UHJvcHMoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLnJl"
"c2V0X3Byb3BzIgogICAgYmxfbGFiZWwgPSAi5Yid5pyf5YCk44Gr5oi744GZIgogICAgZGVmIGV4ZWN1"
"dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMK"
"ICAgICAgICByZXNldF9saXN0ID0gWwogICAgICAgICAgICAidG9ydXNfY29sb3IiLCAidG9ydXNfYWxw"
"aGEiLCAidHJpX3RoaWNrbmVzcyIsICJ0cmlfYWxwaGEiLCAidHJpQV9jb2xvciIsICJ0cmlCX2NvbG9y"
"IiwgCiAgICAgICAgICAgICJhcnJvd190aGlja25lc3MiLCAiYXJyb3dfY29sb3IiLCAiY2lyY2xlX3Jh"
"ZGl1cyIsICJjaXJjbGVfdGhpY2tuZXNzIiwgImNpcmNsZV9jb2xvciIsICJjaXJjbGVfYWxwaGEiLAog"
"ICAgICAgICAgICAiZGlzdF9zcGhlcmVfY29sb3IiLCAiZGlzdF9zcGhlcmVfYWxwaGEiCiAgICAgICAg"
"XQogICAgICAgIGZvciBwIGluIHJlc2V0X2xpc3Q6CiAgICAgICAgICAgIHByb3BzLnByb3BlcnR5X3Vu"
"c2V0KHApCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9SYW5kb21SZXNl"
"dChicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEucmFuZG9tX3Jlc2V0Igog"
"ICAgYmxfbGFiZWwgPSAi44Op44Oz44OA44Og5YaN6KiI566X77yG5pu05pawIgogICAgZGVmIGV4ZWN1"
"dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgYnB5Lm9wcy50Y3RhLmNyZWF0ZV9vYmplY3RzKCkKICAg"
"ICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBUQ1RBX09UX0NvcHlHZW9JbmZvKGJweS50eXBl"
"cy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5jb3B5X2dlb19pbmZvIgogICAgYmxfbGFi"
"ZWwgPSAi5bm+5L2V5oOF5aCx44KS44Kz44OU44O8IgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4"
"dCk6CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAgICAgICBsaW5lcyA9"
"IFsKICAgICAgICAgICAgZiJTcDEgRGlzdDoge3Byb3BzLmdlb19zcDFfZGlzdDouMWZ9IiwKICAgICAg"
"ICAgICAgZiJTcDEgQW5nOiBYPXtwcm9wcy5nZW9fc3AxX2FuZ1swXTouMWZ9LCBZPXtwcm9wcy5nZW9f"
"c3AxX2FuZ1sxXTouMWZ9LCBaPXtwcm9wcy5nZW9fc3AxX2FuZ1syXTouMWZ9IiwKICAgICAgICAgICAg"
"ZiJTcDIgRGlzdDoge3Byb3BzLmdlb19zcDJfZGlzdDouMWZ9IiwKICAgICAgICAgICAgZiJTcDIgQW5n"
"OiBYPXtwcm9wcy5nZW9fc3AyX2FuZ1swXTouMWZ9LCBZPXtwcm9wcy5nZW9fc3AyX2FuZ1sxXTouMWZ9"
"LCBaPXtwcm9wcy5nZW9fc3AyX2FuZ1syXTouMWZ9IiwKICAgICAgICAgICAgZiJQbGFuZSBDcm9zcyBB"
"bmdsZToge3Byb3BzLmdlb19wbGFuZV9hbmdsZTouMWZ9IiwKICAgICAgICAgICAgZiJTaG9ydGVzdCBE"
"aXN0IHRvIFBsYW5lIEI6IHtwcm9wcy5nZW9fcGxhbmVfZGlzdDouMWZ9IiwKICAgICAgICAgICAgZiJT"
"aG9ydGVzdCBGb290IFBvczogWD17cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMF06LjFmfSwgWT17cHJvcHMu"
"Z2VvX3BsYW5lX2Zvb3RbMV06LjFmfSwgWj17cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMl06LjFmfSIKICAg"
"ICAgICBdCiAgICAgICAgY29udGV4dC53aW5kb3dfbWFuYWdlci5jbGlwYm9hcmQgPSAiXG4iLmpvaW4o"
"bGluZXMpCiAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLjgrPjg5Tjg7zjgZfjgb7jgZfjgZ8i"
"KQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfT3BlbkxpbmsoYnB5LnR5"
"cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLm9wZW5fbGluayIKICAgIGJsX2xhYmVs"
"ID0gIuODquODs+OCr+OCkumWi+OBjyIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAg"
"ICAgIGJweS5vcHMud20udXJsX29wZW4odXJsPSJodHRwczovL3d3dy5ibGVuZGVyLm9yZy8iKQogICAg"
"ICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfRGVsZXRlQWxsKGJweS50eXBlcy5P"
"cGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5kZWxldGVfYWxsIgogICAgYmxfbGFiZWwgPSAi"
"6Zai6YCj5YWo5YmK6ZmkIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcGFy"
"ZW50X2NvbCA9IGJweS5kYXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQog"
"ICAgICAgIGlmIHBhcmVudF9jb2w6CiAgICAgICAgICAgIGZvciBvYmogaW4gcGFyZW50X2NvbC5hbGxf"
"b2JqZWN0czoKICAgICAgICAgICAgICAgIGJweS5kYXRhLm9iamVjdHMucmVtb3ZlKG9iaiwgZG9fdW5s"
"aW5rPVRydWUpCiAgICAgICAgICAgIGJweS5kYXRhLmNvbGxlY3Rpb25zLnJlbW92ZShwYXJlbnRfY29s"
"KQogICAgICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuWFqOWJiumZpOOBl+OBvuOBl+OBnyIp"
"CiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDUuIFVJIOODkeOD"
"jeODq+Wumue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT0KY2xhc3MgVENUQV9QVF9QYW5lbEJhc2U6CiAgICBibF9z"
"cGFjZV90eXBlID0gJ1ZJRVdfM0QnCiAgICBibF9yZWdpb25fdHlwZSA9ICdVSScKICAgIGJsX2NhdGVn"
"b3J5ID0gIlRDVEEiCgpjbGFzcyBUQ1RBX1BUX1ZpZXdJbmZvKFRDVEFfUFRfUGFuZWxCYXNlLCBicHku"
"dHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfdmlld19pbmZvIgogICAgYmxfbGFi"
"ZWwgPSAiMS4g44OT44Ol44O844Od44O844OI5oOF5aCxIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4"
"dCk6CiAgICAgICAgbGF5b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2Nl"
"bmUudGN0YV9wcm9wcwogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS52aWV3X3NlbGVjdGVkIiwg"
"aWNvbj0nVklFV1pPT00nKQogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS51cGRhdGVfdmlld19p"
"bmZvIiwgaWNvbj0nRklMRV9SRUZSRVNIJykKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAg"
"ICBib3gubGFiZWwodGV4dD1mIkNlbnRlcjogKHtwcm9wcy52aWV3X2NlbnRlci54Oi4xZn0sIHtwcm9w"
"cy52aWV3X2NlbnRlci55Oi4xZn0sIHtwcm9wcy52aWV3X2NlbnRlci56Oi4xZn0pIikKICAgICAgICBi"
"b3gubGFiZWwodGV4dD1mIlNpemUgKHB4KTogVz17cHJvcHMudmlld19zaXplWzBdfSwgSD17cHJvcHMu"
"dmlld19zaXplWzFdfSIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiJDYW1lcmEgRGlzdDoge3Byb3Bz"
"LnZpZXdfZGlzdGFuY2U6LjFmfSIgaWYgcHJvcHMudmlld19kaXN0YW5jZSA+IDAgZWxzZSAiQ2FtZXJh"
"IERpc3Q6IE4vQSIpCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNvcHlfdmlld19pbmZvIiwg"
"aWNvbj0nQ09QWURPV04nKQoKY2xhc3MgVENUQV9QVF9NYWluKFRDVEFfUFRfUGFuZWxCYXNlLCBicHku"
"dHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfbWFpbiIKICAgIGJsX2xhYmVsID0g"
"IjIuIOODoeOCpOODs+Wun+ihjCIKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxh"
"eW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNyZWF0ZV9vYmpl"
"Y3RzIiwgaWNvbj0nUExBWScsIHRleHQ9IuS9nOaIkCAo55Sf5oiQ44O75pu05pawKSIpCiAgICAgICAg"
"bGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmRldGFjaF9vYmplY3RzIiwgaWNvbj0nVU5MSU5LRUQnKQoKY2xh"
"c3MgVENUQV9QVF9TZXR0aW5ncyhUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBhbmVsKToKICAg"
"IGJsX2lkbmFtZSA9ICJUQ1RBX1BUX3NldHRpbmdzIgogICAgYmxfbGFiZWwgPSAiMy4g44OR44Op44Oh"
"44O844K/6Kit5a6aIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4dCk6CiAgICAgICAgbGF5b3V0ID0g"
"c2VsZi5sYXlvdXQKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAg"
"IGxheW91dC5vcGVyYXRvcigidGN0YS5yZXNldF9wcm9wcyIsIGljb249J0xPT1BfQkFDSycpCiAgICAg"
"ICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlRvcnVzIEZyYW1lOiIp"
"CiAgICAgICAgYm94LnByb3AocHJvcHMsICJ0b3J1c19jb2xvciIsIHRleHQ9IkNvbG9yIikKICAgICAg"
"ICBib3gucHJvcChwcm9wcywgInRvcnVzX2FscGhhIiwgdGV4dD0iQWxwaGEiKQogICAgICAgIGJveCA9"
"IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJTcGhlcmVzOiIpCiAgICAgICAgZm9y"
"IGkgaW4gcmFuZ2UoMSwgNCk6CiAgICAgICAgICAgIHJvdyA9IGJveC5yb3coKQogICAgICAgICAgICBy"
"b3cucHJvcChwcm9wcywgZiJzcHtpfV9tb2RlIiwgdGV4dD1mIlNwe2l9IikKICAgICAgICAgICAgaWYg"
"Z2V0YXR0cihwcm9wcywgZiJzcHtpfV9tb2RlIikgPT0gJ01BTlVBTCc6CiAgICAgICAgICAgICAgICBi"
"b3gucHJvcChwcm9wcywgZiJzcHtpfV9wb3MiLCB0ZXh0PSJYWVoiKQogICAgICAgIGJveCA9IGxheW91"
"dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJUcmlhbmdsZXM6IikKICAgICAgICBib3gucHJv"
"cChwcm9wcywgInRyaV90aGlja25lc3MiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidHJpX2FscGhh"
"IikKICAgICAgICBib3gucHJvcChwcm9wcywgInRyaUFfY29sb3IiKQogICAgICAgIGJveC5wcm9wKHBy"
"b3BzLCAidHJpQl9jb2xvciIpCiAgICAgICAgCiAgICAgICAgIyDmnIDnn63ot53pm6LoppbopprljJbj"
"ga7oqK3lrpoKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0i"
"U2hvcnRlc3QgRGlzdGFuY2UgVmlzdWFsczoiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAiYXJyb3df"
"dGhpY2tuZXNzIikKICAgICAgICBib3gucHJvcChwcm9wcywgImFycm93X2NvbG9yIikKICAgICAgICBi"
"b3gucHJvcChwcm9wcywgImNpcmNsZV9yYWRpdXMiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAiY2ly"
"Y2xlX3RoaWNrbmVzcyIpCiAgICAgICAgYm94LnByb3AocHJvcHMsICJjaXJjbGVfY29sb3IiKQogICAg"
"ICAgIGJveC5wcm9wKHByb3BzLCAiY2lyY2xlX2FscGhhIikKICAgICAgICBib3gucHJvcChwcm9wcywg"
"ImRpc3Rfc3BoZXJlX2NvbG9yIikKICAgICAgICBib3gucHJvcChwcm9wcywgImRpc3Rfc3BoZXJlX2Fs"
"cGhhIikKCmNsYXNzIFRDVEFfUFRfR2VvSW5mbyhUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBh"
"bmVsKToKICAgIGJsX2lkbmFtZSA9ICJUQ1RBX1BUX2dlb19pbmZvIgogICAgYmxfbGFiZWwgPSAiNC4g"
"5bm+5L2V5oOF5aCxIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4dCk6CiAgICAgICAgbGF5b3V0ID0g"
"c2VsZi5sYXlvdXQKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAg"
"IGxheW91dC5vcGVyYXRvcigidGN0YS5yYW5kb21fcmVzZXQiLCBpY29uPSdGSUxFX1JFRlJFU0gnKQog"
"ICAgICAgIAogICAgICAgIGJveCA9IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJT"
"cGhlcmUgMSAoZnJvbSAwLDAsMCk6IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIiAgRGlzdDoge3By"
"b3BzLmdlb19zcDFfZGlzdDouMWZ9IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIiAgQW5nOiB7cHJv"
"cHMuZ2VvX3NwMV9hbmdbMF06LjFmfcKwLCB7cHJvcHMuZ2VvX3NwMV9hbmdbMV06LjFmfcKwLCB7cHJv"
"cHMuZ2VvX3NwMV9hbmdbMl06LjFmfcKwIikKICAgICAgICBib3gubGFiZWwodGV4dD0iU3BoZXJlIDIg"
"KGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIERpc3Q6IHtwcm9wcy5nZW9f"
"c3AyX2Rpc3Q6LjFmfSIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIEFuZzoge3Byb3BzLmdlb19z"
"cDJfYW5nWzBdOi4xZn3CsCwge3Byb3BzLmdlb19zcDJfYW5nWzFdOi4xZn3CsCwge3Byb3BzLmdlb19z"
"cDJfYW5nWzJdOi4xZn3CsCIpCiAgICAgICAgCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAg"
"ICAgYm94LmxhYmVsKHRleHQ9IlBsYW5lIENyb3NzIEFuZ2xlIChBICYgQik6IikKICAgICAgICBib3gu"
"bGFiZWwodGV4dD1mIiAgQW5nbGU6IHtwcm9wcy5nZW9fcGxhbmVfYW5nbGU6LjFmfcKwIikKICAgICAg"
"ICAKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iUGxhbmUg"
"QiBmcm9tIDAsMCwwOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIFNob3J0ZXN0IERpc3QgKFJh"
"ZGl1cyk6IHtwcm9wcy5nZW9fcGxhbmVfZGlzdDouMWZ9IikKICAgICAgICBib3gubGFiZWwodGV4dD1m"
"IiAgRm9vdCAoVG91Y2ggUG9pbnQpOiAoe3Byb3BzLmdlb19wbGFuZV9mb290WzBdOi4xZn0sIHtwcm9w"
"cy5nZW9fcGxhbmVfZm9vdFsxXTouMWZ9LCB7cHJvcHMuZ2VvX3BsYW5lX2Zvb3RbMl06LjFmfSkiKQoK"
"ICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEuY29weV9nZW9faW5mbyIsIGljb249J0NPUFlET1dO"
"JykKCmNsYXNzIFRDVEFfUFRfU3lzdGVtKFRDVEFfUFRfUGFuZWxCYXNlLCBicHkudHlwZXMuUGFuZWwp"
"OgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfc3lzdGVtIgogICAgYmxfbGFiZWwgPSAiNS4g44K344K5"
"44OG44OgIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4dCk6CiAgICAgICAgbGF5b3V0ID0gc2VsZi5s"
"YXlvdXQKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEub3Blbl9saW5rIiwgaWNvbj0nVVJMJykK"
"ICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEuZGVsZXRlX2FsbCIsIGljb249J1RSQVNIJywgdGV4"
"dD0i44Ki44OJ44Kq44Oz5YmK6ZmkICjlhajjgq/jg6rjgqIpIikKCgojID09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyA2"
"LiDnmbvpjLLlh6bnkIYKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNzZXMgPSAoCiAgICBUQ1RBX1Byb3BlcnRp"
"ZXMsCiAgICBUQ1RBX09UX1ZpZXdTZWxlY3RlZCwKICAgIFRDVEFfT1RfVXBkYXRlVmlld0luZm8sCiAg"
"ICBUQ1RBX09UX0NvcHlWaWV3SW5mbywKICAgIFRDVEFfT1RfQ3JlYXRlT2JqZWN0cywKICAgIFRDVEFf"
"T1RfRGV0YWNoT2JqZWN0cywKICAgIFRDVEFfT1RfUmVzZXRQcm9wcywKICAgIFRDVEFfT1RfUmFuZG9t"
"UmVzZXQsCiAgICBUQ1RBX09UX0NvcHlHZW9JbmZvLAogICAgVENUQV9PVF9PcGVuTGluaywKICAgIFRD"
"VEFfT1RfRGVsZXRlQWxsLAogICAgVENUQV9QVF9WaWV3SW5mbywKICAgIFRDVEFfUFRfTWFpbiwKICAg"
"IFRDVEFfUFRfU2V0dGluZ3MsCiAgICBUQ1RBX1BUX0dlb0luZm8sCiAgICBUQ1RBX1BUX1N5c3RlbSwK"
"KQoKZGVmIHJlZ2lzdGVyKCk6CiAgICBmb3IgY2xzIGluIGNsYXNzZXM6CiAgICAgICAgYnB5LnV0aWxz"
"LnJlZ2lzdGVyX2NsYXNzKGNscykKICAgIGJweS50eXBlcy5TY2VuZS50Y3RhX3Byb3BzID0gYnB5LnBy"
"b3BzLlBvaW50ZXJQcm9wZXJ0eSh0eXBlPVRDVEFfUHJvcGVydGllcykKCmRlZiB1bnJlZ2lzdGVyKCk6"
"CiAgICBmb3IgY2xzIGluIHJldmVyc2VkKGNsYXNzZXMpOgogICAgICAgIGJweS51dGlscy51bnJlZ2lz"
"dGVyX2NsYXNzKGNscykKICAgIGRlbCBicHkudHlwZXMuU2NlbmUudGN0YV9wcm9wcwoKaWYgX19uYW1l"
"X18gPT0gIl9fbWFpbl9fIjoKICAgIHJlZ2lzdGVyKCkKCgoK"
)
},
{
"name": "平面2つなす角度 20260713_001",
"code_b64": (
"YmxfaW5mbyA9IHsKICAgICJuYW1lIjogIlRvcnVzIEN1YmUgJiBUcmlhbmdsZSBBbmFseXplciIsCiAg"
"ICAiYXV0aG9yIjogIkFJIEFzc2lzdGFudCIsCiAgICAidmVyc2lvbiI6ICgxLCAwLCAxKSwKICAgICJi"
"bGVuZGVyIjogKDQsIDIsIDApLAogICAgImxvY2F0aW9uIjogIlZpZXczRCA+IFNpZGViYXIgPiBUQ1RB"
"IiwKICAgICJkZXNjcmlwdGlvbiI6ICLjg4jjg7zjg6njgrnpqqjmoLzjgajnkIPkvZPjgpLnlKjjgYTj"
"gZ/nqbrplpPluqfmqJnjg7vlub7kvZXmg4XloLHjga7oqIjnrpfjgajooajnpLoiLAogICAgImNhdGVn"
"b3J5IjogIjNEIFZpZXciLAp9CgppbXBvcnQgYnB5CmltcG9ydCBibWVzaAppbXBvcnQgbWF0aAppbXBv"
"cnQgbWF0aHV0aWxzCmltcG9ydCByYW5kb20KCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDEuIOWIneacn+WApOWu"
"mue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT0KUFJFRklYID0gIlRDVEFfIgpQQVJFTlRfQ09MTEVDVElPTl9OQU1F"
"ID0gIlRvcnVzQ3ViZVNwYWNlIgpTVUJfQ09MTEVDVElPTl9OQU1FID0gIkFuYWx5emVyT2JqZWN0cyIK"
"VE9SVVNfU0tFTEVUT05fTkFNRSA9ICJUb3J1c1NrZWxldG9uIgpTUEhFUkVfMV9OQU1FID0gIlNwaGVy"
"ZV8xIgpTUEhFUkVfMl9OQU1FID0gIlNwaGVyZV8yIgpTUEhFUkVfM19OQU1FID0gIlNwaGVyZV8zIgpU"
"UklBTkdMRV9BX05BTUUgPSAiVHJpYW5nbGVfQSIKVFJJQU5HTEVfQl9OQU1FID0gIlRyaWFuZ2xlX0Ii"
"CgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09CiMgMi4g44OX44Ot44OR44OG44Kj5a6a576pCiMgPT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PQpjbGFzcyBUQ1RBX1Byb3BlcnRpZXMoYnB5LnR5cGVzLlByb3BlcnR5R3JvdXApOgogICAgdG9ydXNf"
"Y29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IlRvcnVzIENvbG9yIiwgc3Vi"
"dHlwZT0nQ09MT1JfR0FNTUEnLCBzaXplPTQsIGRlZmF1bHQ9KDAuMSwgMC41LCAwLjgsIDEuMCksIG1p"
"bj0wLjAsIG1heD0xLjApCiAgICB0b3J1c19hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFt"
"ZT0iVG9ydXMgQWxwaGEiLCBkZWZhdWx0PTAuNSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIAogICAgbW9k"
"ZV9vcHRpb25zID0gWygnUkFORE9NJywgIuODqeODs+ODgOODoCIsICIiKSwgKCdNQU5VQUwnLCAi5oyH"
"5a6a5L2N572uIiwgIiIpXQogICAgc3AxX21vZGU6IGJweS5wcm9wcy5FbnVtUHJvcGVydHkobmFtZT0i"
"TW9kZSIsIGl0ZW1zPW1vZGVfb3B0aW9ucywgZGVmYXVsdD0nUkFORE9NJykKICAgIHNwMl9tb2RlOiBi"
"cHkucHJvcHMuRW51bVByb3BlcnR5KG5hbWU9Ik1vZGUiLCBpdGVtcz1tb2RlX29wdGlvbnMsIGRlZmF1"
"bHQ9J1JBTkRPTScpCiAgICBzcDNfbW9kZTogYnB5LnByb3BzLkVudW1Qcm9wZXJ0eShuYW1lPSJNb2Rl"
"IiwgaXRlbXM9bW9kZV9vcHRpb25zLCBkZWZhdWx0PSdSQU5ET00nKQogICAgCiAgICBzcDFfcG9zOiBi"
"cHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1lPSJQb3NpdGlvbiAxIiwgZGVmYXVsdD0oMi4w"
"LCAyLjAsIDIuMCkpCiAgICBzcDJfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9wZXJ0eShuYW1l"
"PSJQb3NpdGlvbiAyIiwgZGVmYXVsdD0oLTIuMCwgLTIuMCwgMi4wKSkKICAgIHNwM19wb3M6IGJweS5w"
"cm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IlBvc2l0aW9uIDMiLCBkZWZhdWx0PSgwLjAsIDMu"
"MCwgLTIuMCkpCiAgICAKICAgIHNwMV9hY3R1YWxfcG9zOiBicHkucHJvcHMuRmxvYXRWZWN0b3JQcm9w"
"ZXJ0eShkZWZhdWx0PSgwLDAsMCkpCiAgICBzcDJfYWN0dWFsX3BvczogYnB5LnByb3BzLkZsb2F0VmVj"
"dG9yUHJvcGVydHkoZGVmYXVsdD0oMCwwLDApKQogICAgc3AzX2FjdHVhbF9wb3M6IGJweS5wcm9wcy5G"
"bG9hdFZlY3RvclByb3BlcnR5KGRlZmF1bHQ9KDAsMCwwKSkKCiAgICB0cmlfdGhpY2tuZXNzOiBicHku"
"cHJvcHMuRmxvYXRQcm9wZXJ0eShuYW1lPSJUaGlja25lc3MiLCBkZWZhdWx0PTAuMSwgbWluPTAuMCkK"
"ICAgIHRyaV9hbHBoYTogYnB5LnByb3BzLkZsb2F0UHJvcGVydHkobmFtZT0iQWxwaGEiLCBkZWZhdWx0"
"PTAuMSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHRyaUFfY29sb3I6IGJweS5wcm9wcy5GbG9hdFZlY3Rv"
"clByb3BlcnR5KG5hbWU9IkNvbG9yIEEiLCBzdWJ0eXBlPSdDT0xPUl9HQU1NQScsIHNpemU9NCwgZGVm"
"YXVsdD0oMC44LCAwLjIsIDAuMiwgMS4wKSwgbWluPTAuMCwgbWF4PTEuMCkKICAgIHRyaUJfY29sb3I6"
"IGJweS5wcm9wcy5GbG9hdFZlY3RvclByb3BlcnR5KG5hbWU9IkNvbG9yIEIiLCBzdWJ0eXBlPSdDT0xP"
"Ul9HQU1NQScsIHNpemU9NCwgZGVmYXVsdD0oMC4yLCAwLjgsIDAuMiwgMS4wKSwgbWluPTAuMCwgbWF4"
"PTEuMCkKCiAgICB2aWV3X2NlbnRlcjogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkobmFtZT0i"
"VmlldyBDZW50ZXIiKQogICAgdmlld19zaXplOiBicHkucHJvcHMuSW50VmVjdG9yUHJvcGVydHkobmFt"
"ZT0iVmlldyBTaXplIChQeCkiLCBzaXplPTIpCiAgICB2aWV3X2Rpc3RhbmNlOiBicHkucHJvcHMuRmxv"
"YXRQcm9wZXJ0eShuYW1lPSJWaWV3IERpc3RhbmNlIikKICAgIAogICAgZ2VvX3NwMV9kaXN0OiBicHku"
"cHJvcHMuRmxvYXRQcm9wZXJ0eSgpCiAgICBnZW9fc3AxX2FuZzogYnB5LnByb3BzLkZsb2F0VmVjdG9y"
"UHJvcGVydHkoc2l6ZT0zKQogICAgZ2VvX3NwMl9kaXN0OiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgp"
"CiAgICBnZW9fc3AyX2FuZzogYnB5LnByb3BzLkZsb2F0VmVjdG9yUHJvcGVydHkoc2l6ZT0zKQogICAg"
"Z2VvX3BsYW5lX2FuZ2xlOiBicHkucHJvcHMuRmxvYXRQcm9wZXJ0eSgpCgoKIyA9PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"CiMgMy4g44Om44O844OG44Kj44Oq44OG44Kj6Zai5pWwCiMgPT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkZWYgZ2V0XzNk"
"X3ZpZXdfY29udGV4dCgpOgogICAgZm9yIHdpbmRvdyBpbiBicHkuY29udGV4dC53aW5kb3dfbWFuYWdl"
"ci53aW5kb3dzOgogICAgICAgIGZvciBhcmVhIGluIHdpbmRvdy5zY3JlZW4uYXJlYXM6CiAgICAgICAg"
"ICAgIGlmIGFyZWEudHlwZSA9PSAnVklFV18zRCc6CiAgICAgICAgICAgICAgICBmb3IgcmVnaW9uIGlu"
"IGFyZWEucmVnaW9uczoKICAgICAgICAgICAgICAgICAgICBpZiByZWdpb24udHlwZSA9PSAnV0lORE9X"
"JzoKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFyZWEsIHJlZ2lvbiwgYXJlYS5zcGFjZXMu"
"YWN0aXZlCiAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9uZQoKZGVmIGNyZWF0ZV9tYXRlcmlhbChuYW1l"
"LCBjb2xvciwgYWxwaGEpOgogICAgIiIiQmxlbmRlciA0LjIgKEVFVkVFLU5leHQpIOWvvuW/nOODnuOD"
"huODquOCouODq+S9nOaIkCIiIgogICAgbWF0ID0gYnB5LmRhdGEubWF0ZXJpYWxzLmdldChuYW1lKQog"
"ICAgaWYgbm90IG1hdDoKICAgICAgICBtYXQgPSBicHkuZGF0YS5tYXRlcmlhbHMubmV3KG5hbWUpCiAg"
"ICBtYXQudXNlX25vZGVzID0gVHJ1ZQogICAgCiAgICAjIEJsZW5kZXIgNC4y5Lul6ZmN44Gn5YmK6Zmk"
"44GV44KM44GfQVBJ44Gr44Ki44Kv44K744K544GX44Gq44GE44KI44GG44Gr5Zue6YG/ICjml6dWZXLn"
"lKjlvozmlrnkupLmj5spCiAgICBpZiBoYXNhdHRyKG1hdCwgImJsZW5kX21ldGhvZCIpOgogICAgICAg"
"IG1hdC5ibGVuZF9tZXRob2QgPSAnQkxFTkQnCiAgICBpZiBoYXNhdHRyKG1hdCwgInNoYWRvd19tZXRo"
"b2QiKToKICAgICAgICBtYXQuc2hhZG93X21ldGhvZCA9ICdOT05FJwogICAgCiAgICBic2RmID0gbWF0"
"Lm5vZGVfdHJlZS5ub2Rlcy5nZXQoIlByaW5jaXBsZWQgQlNERiIpCiAgICBpZiBic2RmOgogICAgICAg"
"IGJzZGYuaW5wdXRzWyJCYXNlIENvbG9yIl0uZGVmYXVsdF92YWx1ZSA9IGNvbG9yCiAgICAgICAgYnNk"
"Zi5pbnB1dHNbIkFscGhhIl0uZGVmYXVsdF92YWx1ZSA9IGFscGhhCiAgICByZXR1cm4gbWF0CgpkZWYg"
"Y2FsY19nZW9fZGF0YShwcm9wcyk6CiAgICBkZWYgY2FsY19kaXN0X2FuZ2xlKHZlYyk6CiAgICAgICAg"
"ZGlzdCA9IHZlYy5sZW5ndGgKICAgICAgICBpZiBkaXN0ID09IDA6IHJldHVybiAwLCAwLCAwLCAwCiAg"
"ICAgICAgbiA9IHZlYy5ub3JtYWxpemVkKCkKICAgICAgICBheCA9IG1hdGguZGVncmVlcyhtYXRoLmFj"
"b3Mobi54KSkKICAgICAgICBheSA9IG1hdGguZGVncmVlcyhtYXRoLmFjb3Mobi55KSkKICAgICAgICBh"
"eiA9IG1hdGguZGVncmVlcyhtYXRoLmFjb3Mobi56KSkKICAgICAgICByZXR1cm4gZGlzdCwgYXgsIGF5"
"LCBhegoKICAgIHAwID0gbWF0aHV0aWxzLlZlY3RvcigoMCwgMCwgMCkpCiAgICBwMSA9IG1hdGh1dGls"
"cy5WZWN0b3IocHJvcHMuc3AxX2FjdHVhbF9wb3MpCiAgICBwMiA9IG1hdGh1dGlscy5WZWN0b3IocHJv"
"cHMuc3AyX2FjdHVhbF9wb3MpCiAgICBwMyA9IG1hdGh1dGlscy5WZWN0b3IocHJvcHMuc3AzX2FjdHVh"
"bF9wb3MpCgogICAgZDEsIGF4MSwgYXkxLCBhejEgPSBjYWxjX2Rpc3RfYW5nbGUocDEpCiAgICBwcm9w"
"cy5nZW9fc3AxX2Rpc3QgPSBkMQogICAgcHJvcHMuZ2VvX3NwMV9hbmcgPSAoYXgxLCBheTEsIGF6MSkK"
"CiAgICBkMiwgYXgyLCBheTIsIGF6MiA9IGNhbGNfZGlzdF9hbmdsZShwMikKICAgIHByb3BzLmdlb19z"
"cDJfZGlzdCA9IGQyCiAgICBwcm9wcy5nZW9fc3AyX2FuZyA9IChheDIsIGF5MiwgYXoyKQoKICAgIG4x"
"ID0gKHAxIC0gcDApLmNyb3NzKHAyIC0gcDApCiAgICBuMiA9IChwMiAtIHAxKS5jcm9zcyhwMyAtIHAx"
"KQogICAgCiAgICBpZiBuMS5sZW5ndGggPiAwLjAwMDEgYW5kIG4yLmxlbmd0aCA+IDAuMDAwMToKICAg"
"ICAgICBuMS5ub3JtYWxpemUoKQogICAgICAgIG4yLm5vcm1hbGl6ZSgpCiAgICAgICAgZG90ID0gbWF4"
"KC0xLjAsIG1pbigxLjAsIG4xLmRvdChuMikpKQogICAgICAgIHByb3BzLmdlb19wbGFuZV9hbmdsZSA9"
"IG1hdGguZGVncmVlcyhtYXRoLmFjb3MoZG90KSkKICAgIGVsc2U6CiAgICAgICAgcHJvcHMuZ2VvX3Bs"
"YW5lX2FuZ2xlID0gMC4wCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyA0LiDjgqrjg5rjg6zjg7zjgr/jg7wgKOWH"
"pueQhuODreOCuOODg+OCrykKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNzIFRDVEFfT1RfVmlld1NlbGVjdGVk"
"KGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS52aWV3X3NlbGVjdGVkIgog"
"ICAgYmxfbGFiZWwgPSAi6YG45oqe44KS55S76Z2i5Lit5aSu44GrIgogICAgZGVmIGV4ZWN1dGUoc2Vs"
"ZiwgY29udGV4dCk6CiAgICAgICAgYnB5Lm9wcy52aWV3M2Qudmlld19zZWxlY3RlZCgpCiAgICAgICAg"
"cmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENUQV9PVF9VcGRhdGVWaWV3SW5mbyhicHkudHlwZXMu"
"T3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRjdGEudXBkYXRlX3ZpZXdfaW5mbyIKICAgIGJsX2xh"
"YmVsID0gIueUu+mdouaDheWgseabtOaWsCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgog"
"ICAgICAgIGFyZWEsIHJlZ2lvbiwgc3BhY2UgPSBnZXRfM2Rfdmlld19jb250ZXh0KCkKICAgICAgICBp"
"ZiBub3Qgc3BhY2U6CiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsnV0FSTklORyd9LCAiM0Tjg5Pjg6Xj"
"g7zjgYzopovjgaTjgYvjgorjgb7jgZvjgpMiKQogICAgICAgICAgICByZXR1cm4geydDQU5DRUxMRUQn"
"fQogICAgICAgIHJ2M2QgPSBzcGFjZS5yZWdpb25fM2QKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2Nl"
"bmUudGN0YV9wcm9wcwogICAgICAgIHByb3BzLnZpZXdfY2VudGVyID0gcnYzZC52aWV3X2xvY2F0aW9u"
"CiAgICAgICAgcHJvcHMudmlld19zaXplID0gKHJlZ2lvbi53aWR0aCwgcmVnaW9uLmhlaWdodCkKICAg"
"ICAgICBpZiBydjNkLnZpZXdfcGVyc3BlY3RpdmUgPT0gJ1BFUlNQJzoKICAgICAgICAgICAgcHJvcHMu"
"dmlld19kaXN0YW5jZSA9IHJ2M2Qudmlld19kaXN0YW5jZQogICAgICAgIGVsc2U6CiAgICAgICAgICAg"
"IHByb3BzLnZpZXdfZGlzdGFuY2UgPSAwLjAgCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xh"
"c3MgVENUQV9PVF9Db3B5Vmlld0luZm8oYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9"
"ICJ0Y3RhLmNvcHlfdmlld19pbmZvIgogICAgYmxfbGFiZWwgPSAi44OT44Ol44O85oOF5aCx44KS44Kz"
"44OU44O8IgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcHJvcHMgPSBjb250"
"ZXh0LnNjZW5lLnRjdGFfcHJvcHMKICAgICAgICBsaW5lcyA9IFsKICAgICAgICAgICAgZiJDZW50ZXI6"
"IFg9e3Byb3BzLnZpZXdfY2VudGVyLng6LjFmfSwgWT17cHJvcHMudmlld19jZW50ZXIueTouMWZ9LCBa"
"PXtwcm9wcy52aWV3X2NlbnRlci56Oi4xZn0iLAogICAgICAgICAgICBmIlNpemU6IFc9e3Byb3BzLnZp"
"ZXdfc2l6ZVswXX0sIEg9e3Byb3BzLnZpZXdfc2l6ZVsxXX0iLAogICAgICAgICAgICBmIkRpc3RhbmNl"
"OiB7cHJvcHMudmlld19kaXN0YW5jZTouMWZ9IiBpZiBwcm9wcy52aWV3X2Rpc3RhbmNlID4gMCBlbHNl"
"ICJEaXN0YW5jZTogTi9BIgogICAgICAgIF0KICAgICAgICBjb250ZXh0LndpbmRvd19tYW5hZ2VyLmNs"
"aXBib2FyZCA9ICJcbiIuam9pbihsaW5lcykKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuOC"
"s+ODlOODvOOBl+OBvuOBl+OBnyIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgVENU"
"QV9PVF9DcmVhdGVPYmplY3RzKGJweS50eXBlcy5PcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0"
"YS5jcmVhdGVfb2JqZWN0cyIKICAgIGJsX2xhYmVsID0gIuS9nOaIkCIKICAgIGRlZiBleGVjdXRlKHNl"
"bGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2VuZS50Y3RhX3Byb3BzCiAgICAg"
"ICAgCiAgICAgICAgcGFyZW50X2NvbCA9IGJweS5kYXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09M"
"TEVDVElPTl9OQU1FKQogICAgICAgIGlmIG5vdCBwYXJlbnRfY29sOgogICAgICAgICAgICBwYXJlbnRf"
"Y29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMubmV3KFBBUkVOVF9DT0xMRUNUSU9OX05BTUUpCiAgICAg"
"ICAgICAgIGNvbnRleHQuc2NlbmUuY29sbGVjdGlvbi5jaGlsZHJlbi5saW5rKHBhcmVudF9jb2wpCiAg"
"ICAgICAgICAgIAogICAgICAgIHN1Yl9jb2wgPSBicHkuZGF0YS5jb2xsZWN0aW9ucy5nZXQoU1VCX0NP"
"TExFQ1RJT05fTkFNRSkKICAgICAgICBpZiBub3Qgc3ViX2NvbDoKICAgICAgICAgICAgc3ViX2NvbCA9"
"IGJweS5kYXRhLmNvbGxlY3Rpb25zLm5ldyhTVUJfQ09MTEVDVElPTl9OQU1FKQogICAgICAgICAgICBw"
"YXJlbnRfY29sLmNoaWxkcmVuLmxpbmsoc3ViX2NvbCkKCiAgICAgICAgZm9yIG9ial9uYW1lIGluIFtU"
"T1JVU19TS0VMRVRPTl9OQU1FLCBTUEhFUkVfMV9OQU1FLCBTUEhFUkVfMl9OQU1FLCBTUEhFUkVfM19O"
"QU1FLCBUUklBTkdMRV9BX05BTUUsIFRSSUFOR0xFX0JfTkFNRV06CiAgICAgICAgICAgIGlmIG9ial9u"
"YW1lIGluIGJweS5kYXRhLm9iamVjdHM6CiAgICAgICAgICAgICAgICBicHkuZGF0YS5vYmplY3RzLnJl"
"bW92ZShicHkuZGF0YS5vYmplY3RzW29ial9uYW1lXSwgZG9fdW5saW5rPVRydWUpCgogICAgICAgICMg"
"6aqo5qC85L2c5oiQCiAgICAgICAgbWVzaCA9IGJweS5kYXRhLm1lc2hlcy5uZXcoVE9SVVNfU0tFTEVU"
"T05fTkFNRSkKICAgICAgICBvYmogPSBicHkuZGF0YS5vYmplY3RzLm5ldyhUT1JVU19TS0VMRVRPTl9O"
"QU1FLCBtZXNoKQogICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9iaikKICAgICAgICAKICAgICAg"
"ICBibSA9IGJtZXNoLm5ldygpCiAgICAgICAgYm1lc2gub3BzLmNyZWF0ZV9jdWJlKGJtLCBzaXplPTEw"
"LjApCiAgICAgICAgYm1lc2gub3BzLmRlbGV0ZShibSwgZ2VvbT1ibS5mYWNlcywgY29udGV4dD0nRkFD"
"RVMnKQogICAgICAgIGJtLnRvX21lc2gobWVzaCkKICAgICAgICBibS5mcmVlKCkKICAgICAgICAKICAg"
"ICAgICBza2luX21vZCA9IG9iai5tb2RpZmllcnMubmV3KG5hbWU9IlNraW4iLCB0eXBlPSdTS0lOJykK"
"ICAgICAgICBzdWJfbW9kID0gb2JqLm1vZGlmaWVycy5uZXcobmFtZT0iU3ViZGl2aXNpb24iLCB0eXBl"
"PSdTVUJTVVJGJykKICAgICAgICBzdWJfbW9kLmxldmVscyA9IDIKICAgICAgICBmb3IgdiBpbiBvYmou"
"ZGF0YS5za2luX3ZlcnRpY2VzWzBdLmRhdGE6CiAgICAgICAgICAgIHYucmFkaXVzID0gKDAuMiwgMC4y"
"KQogICAgICAgIAogICAgICAgIG9iai5hY3RpdmVfbWF0ZXJpYWwgPSBjcmVhdGVfbWF0ZXJpYWwoUFJF"
"RklYKyJNYXRfVG9ydXMiLCBwcm9wcy50b3J1c19jb2xvciwgcHJvcHMudG9ydXNfYWxwaGEpCgogICAg"
"ICAgICMg55CD5L2T5L2c5oiQCiAgICAgICAgZGVmIGdldF9wb3MobW9kZSwgcHJvcF9wb3MpOgogICAg"
"ICAgICAgICBpZiBtb2RlID09ICdSQU5ET00nOgogICAgICAgICAgICAgICAgcmV0dXJuIChyYW5kb20u"
"dW5pZm9ybSgtNSwgNSksIHJhbmRvbS51bmlmb3JtKC01LCA1KSwgcmFuZG9tLnVuaWZvcm0oLTUsIDUp"
"KQogICAgICAgICAgICByZXR1cm4gcHJvcF9wb3MKCiAgICAgICAgcHJvcHMuc3AxX2FjdHVhbF9wb3Mg"
"PSBnZXRfcG9zKHByb3BzLnNwMV9tb2RlLCBwcm9wcy5zcDFfcG9zKQogICAgICAgIHByb3BzLnNwMl9h"
"Y3R1YWxfcG9zID0gZ2V0X3Bvcyhwcm9wcy5zcDJfbW9kZSwgcHJvcHMuc3AyX3BvcykKICAgICAgICBw"
"cm9wcy5zcDNfYWN0dWFsX3BvcyA9IGdldF9wb3MocHJvcHMuc3AzX21vZGUsIHByb3BzLnNwM19wb3Mp"
"CgogICAgICAgIGRlZiBjcmVhdGVfc3BoZXJlKG5hbWUsIGxvYyk6CiAgICAgICAgICAgIG1lc2ggPSBi"
"cHkuZGF0YS5tZXNoZXMubmV3KG5hbWUpCiAgICAgICAgICAgIG9iaiA9IGJweS5kYXRhLm9iamVjdHMu"
"bmV3KG5hbWUsIG1lc2gpCiAgICAgICAgICAgIHN1Yl9jb2wub2JqZWN0cy5saW5rKG9iaikKICAgICAg"
"ICAgICAgYm0gPSBibWVzaC5uZXcoKQogICAgICAgICAgICBibWVzaC5vcHMuY3JlYXRlX3V2c3BoZXJl"
"KGJtLCB1X3NlZ21lbnRzPTE2LCB2X3NlZ21lbnRzPTgsIHJhZGl1cz0wLjUpCiAgICAgICAgICAgIGJt"
"LnRvX21lc2gobWVzaCkKICAgICAgICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAgIG9iai5sb2NhdGlv"
"biA9IGxvYwogICAgICAgICAgICByZXR1cm4gb2JqCgogICAgICAgIGNyZWF0ZV9zcGhlcmUoU1BIRVJF"
"XzFfTkFNRSwgcHJvcHMuc3AxX2FjdHVhbF9wb3MpCiAgICAgICAgY3JlYXRlX3NwaGVyZShTUEhFUkVf"
"Ml9OQU1FLCBwcm9wcy5zcDJfYWN0dWFsX3BvcykKICAgICAgICBjcmVhdGVfc3BoZXJlKFNQSEVSRV8z"
"X05BTUUsIHByb3BzLnNwM19hY3R1YWxfcG9zKQoKICAgICAgICAjIOS4ieinkuW9ouS9nOaIkAogICAg"
"ICAgIGRlZiBjcmVhdGVfdHJpYW5nbGUobmFtZSwgcDEsIHAyLCBwMywgY29sb3IsIGFscGhhLCB0aGlj"
"a25lc3MpOgogICAgICAgICAgICBtZXNoID0gYnB5LmRhdGEubWVzaGVzLm5ldyhuYW1lKQogICAgICAg"
"ICAgICBvYmogPSBicHkuZGF0YS5vYmplY3RzLm5ldyhuYW1lLCBtZXNoKQogICAgICAgICAgICBzdWJf"
"Y29sLm9iamVjdHMubGluayhvYmopCiAgICAgICAgICAgIAogICAgICAgICAgICBibSA9IGJtZXNoLm5l"
"dygpCiAgICAgICAgICAgIHYxID0gYm0udmVydHMubmV3KHAxKQogICAgICAgICAgICB2MiA9IGJtLnZl"
"cnRzLm5ldyhwMikKICAgICAgICAgICAgdjMgPSBibS52ZXJ0cy5uZXcocDMpCiAgICAgICAgICAgIGJt"
"LmZhY2VzLm5ldygodjEsIHYyLCB2MykpCiAgICAgICAgICAgIGJtLnRvX21lc2gobWVzaCkKICAgICAg"
"ICAgICAgYm0uZnJlZSgpCiAgICAgICAgICAgIAogICAgICAgICAgICBzb2wgPSBvYmoubW9kaWZpZXJz"
"Lm5ldyhuYW1lPSJTb2xpZGlmeSIsIHR5cGU9J1NPTElESUZZJykKICAgICAgICAgICAgc29sLnRoaWNr"
"bmVzcyA9IHRoaWNrbmVzcwogICAgICAgICAgICAKICAgICAgICAgICAgb2JqLmFjdGl2ZV9tYXRlcmlh"
"bCA9IGNyZWF0ZV9tYXRlcmlhbChQUkVGSVgrIk1hdF8iK25hbWUsIGNvbG9yLCBhbHBoYSkKCiAgICAg"
"ICAgY3JlYXRlX3RyaWFuZ2xlKFRSSUFOR0xFX0FfTkFNRSwgKDAsMCwwKSwgcHJvcHMuc3AxX2FjdHVh"
"bF9wb3MsIHByb3BzLnNwMl9hY3R1YWxfcG9zLCBwcm9wcy50cmlBX2NvbG9yLCBwcm9wcy50cmlfYWxw"
"aGEsIHByb3BzLnRyaV90aGlja25lc3MpCiAgICAgICAgY3JlYXRlX3RyaWFuZ2xlKFRSSUFOR0xFX0Jf"
"TkFNRSwgcHJvcHMuc3AxX2FjdHVhbF9wb3MsIHByb3BzLnNwMl9hY3R1YWxfcG9zLCBwcm9wcy5zcDNf"
"YWN0dWFsX3BvcywgcHJvcHMudHJpQl9jb2xvciwgcHJvcHMudHJpX2FscGhhLCBwcm9wcy50cmlfdGhp"
"Y2tuZXNzKQoKICAgICAgICBjYWxjX2dlb19kYXRhKHByb3BzKQogICAgICAgIHJldHVybiB7J0ZJTklT"
"SEVEJ30KCmNsYXNzIFRDVEFfT1RfRGV0YWNoT2JqZWN0cyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAg"
"YmxfaWRuYW1lID0gInRjdGEuZGV0YWNoX29iamVjdHMiCiAgICBibF9sYWJlbCA9ICLjgqLjg4njgqrj"
"g7PjgYvjgonliIfjgorpm6LjgZciCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAg"
"ICBwYXJlbnRfY29sID0gYnB5LmRhdGEuY29sbGVjdGlvbnMuZ2V0KFBBUkVOVF9DT0xMRUNUSU9OX05B"
"TUUpCiAgICAgICAgaWYgcGFyZW50X2NvbDoKICAgICAgICAgICAgcGFyZW50X2NvbC5uYW1lID0gUEFS"
"RU5UX0NPTExFQ1RJT05fTkFNRSArICJfRGV0YWNoZWQiCiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsn"
"SU5GTyd9LCAi5YiH44KK6Zui44GX44G+44GX44GfIikKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9"
"CgpjbGFzcyBUQ1RBX09UX1Jlc2V0UHJvcHMoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFt"
"ZSA9ICJ0Y3RhLnJlc2V0X3Byb3BzIgogICAgYmxfbGFiZWwgPSAi5Yid5pyf5YCk44Gr5oi744GZIgog"
"ICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5l"
"LnRjdGFfcHJvcHMKICAgICAgICBmb3IgcCBpbiBbInRvcnVzX2NvbG9yIiwgInRvcnVzX2FscGhhIiwg"
"InRyaV90aGlja25lc3MiLCAidHJpX2FscGhhIiwgInRyaUFfY29sb3IiLCAidHJpQl9jb2xvciJdOgog"
"ICAgICAgICAgICBwcm9wcy5wcm9wZXJ0eV91bnNldChwKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVE"
"J30KCmNsYXNzIFRDVEFfT1RfUmFuZG9tUmVzZXQoYnB5LnR5cGVzLk9wZXJhdG9yKToKICAgIGJsX2lk"
"bmFtZSA9ICJ0Y3RhLnJhbmRvbV9yZXNldCIKICAgIGJsX2xhYmVsID0gIuODqeODs+ODgOODoOWGjeio"
"iOeul++8huabtOaWsCIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIGJweS5v"
"cHMudGN0YS5jcmVhdGVfb2JqZWN0cygpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3Mg"
"VENUQV9PVF9Db3B5R2VvSW5mbyhicHkudHlwZXMuT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInRj"
"dGEuY29weV9nZW9faW5mbyIKICAgIGJsX2xhYmVsID0gIuW5vuS9leaDheWgseOCkuOCs+ODlOODvCIK"
"ICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29udGV4dC5zY2Vu"
"ZS50Y3RhX3Byb3BzCiAgICAgICAgbGluZXMgPSBbCiAgICAgICAgICAgIGYiU3AxIERpc3Q6IHtwcm9w"
"cy5nZW9fc3AxX2Rpc3Q6LjFmfSIsCiAgICAgICAgICAgIGYiU3AxIEFuZzogWD17cHJvcHMuZ2VvX3Nw"
"MV9hbmdbMF06LjFmfSwgWT17cHJvcHMuZ2VvX3NwMV9hbmdbMV06LjFmfSwgWj17cHJvcHMuZ2VvX3Nw"
"MV9hbmdbMl06LjFmfSIsCiAgICAgICAgICAgIGYiU3AyIERpc3Q6IHtwcm9wcy5nZW9fc3AyX2Rpc3Q6"
"LjFmfSIsCiAgICAgICAgICAgIGYiU3AyIEFuZzogWD17cHJvcHMuZ2VvX3NwMl9hbmdbMF06LjFmfSwg"
"WT17cHJvcHMuZ2VvX3NwMl9hbmdbMV06LjFmfSwgWj17cHJvcHMuZ2VvX3NwMl9hbmdbMl06LjFmfSIs"
"CiAgICAgICAgICAgIGYiUGxhbmUgQW5nbGU6IHtwcm9wcy5nZW9fcGxhbmVfYW5nbGU6LjFmfSIKICAg"
"ICAgICBdCiAgICAgICAgY29udGV4dC53aW5kb3dfbWFuYWdlci5jbGlwYm9hcmQgPSAiXG4iLmpvaW4o"
"bGluZXMpCiAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLjgrPjg5Tjg7zjgZfjgb7jgZfjgZ8i"
"KQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfT3BlbkxpbmsoYnB5LnR5"
"cGVzLk9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJ0Y3RhLm9wZW5fbGluayIKICAgIGJsX2xhYmVs"
"ID0gIuODquODs+OCr+OCkumWi+OBjyIKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAg"
"ICAgIGJweS5vcHMud20udXJsX29wZW4odXJsPSJodHRwczovL3d3dy5ibGVuZGVyLm9yZy8iKQogICAg"
"ICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFRDVEFfT1RfRGVsZXRlQWxsKGJweS50eXBlcy5P"
"cGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSAidGN0YS5kZWxldGVfYWxsIgogICAgYmxfbGFiZWwgPSAi"
"6Zai6YCj5YWo5YmK6ZmkIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgcGFy"
"ZW50X2NvbCA9IGJweS5kYXRhLmNvbGxlY3Rpb25zLmdldChQQVJFTlRfQ09MTEVDVElPTl9OQU1FKQog"
"ICAgICAgIGlmIHBhcmVudF9jb2w6CiAgICAgICAgICAgIGZvciBvYmogaW4gcGFyZW50X2NvbC5hbGxf"
"b2JqZWN0czoKICAgICAgICAgICAgICAgIGJweS5kYXRhLm9iamVjdHMucmVtb3ZlKG9iaiwgZG9fdW5s"
"aW5rPVRydWUpCiAgICAgICAgICAgIGJweS5kYXRhLmNvbGxlY3Rpb25zLnJlbW92ZShwYXJlbnRfY29s"
"KQogICAgICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgIuWFqOWJiumZpOOBl+OBvuOBl+OBnyIp"
"CiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIDUuIFVJIOODkeOD"
"jeODq+Wumue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT0KY2xhc3MgVENUQV9QVF9QYW5lbEJhc2U6CiAgICBibF9z"
"cGFjZV90eXBlID0gJ1ZJRVdfM0QnCiAgICBibF9yZWdpb25fdHlwZSA9ICdVSScKICAgIGJsX2NhdGVn"
"b3J5ID0gIlRDVEEiCgpjbGFzcyBUQ1RBX1BUX1ZpZXdJbmZvKFRDVEFfUFRfUGFuZWxCYXNlLCBicHku"
"dHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfdmlld19pbmZvIgogICAgYmxfbGFi"
"ZWwgPSAiMS4g44OT44Ol44O844Od44O844OI5oOF5aCxIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4"
"dCk6CiAgICAgICAgbGF5b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2Nl"
"bmUudGN0YV9wcm9wcwogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS52aWV3X3NlbGVjdGVkIiwg"
"aWNvbj0nVklFV1pPT00nKQogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS51cGRhdGVfdmlld19p"
"bmZvIiwgaWNvbj0nRklMRV9SRUZSRVNIJykKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAg"
"ICBib3gubGFiZWwodGV4dD1mIkNlbnRlcjogKHtwcm9wcy52aWV3X2NlbnRlci54Oi4xZn0sIHtwcm9w"
"cy52aWV3X2NlbnRlci55Oi4xZn0sIHtwcm9wcy52aWV3X2NlbnRlci56Oi4xZn0pIikKICAgICAgICBi"
"b3gubGFiZWwodGV4dD1mIlNpemUgKHB4KTogVz17cHJvcHMudmlld19zaXplWzBdfSwgSD17cHJvcHMu"
"dmlld19zaXplWzFdfSIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiJDYW1lcmEgRGlzdDoge3Byb3Bz"
"LnZpZXdfZGlzdGFuY2U6LjFmfSIgaWYgcHJvcHMudmlld19kaXN0YW5jZSA+IDAgZWxzZSAiQ2FtZXJh"
"IERpc3Q6IE4vQSIpCiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNvcHlfdmlld19pbmZvIiwg"
"aWNvbj0nQ09QWURPV04nKQoKY2xhc3MgVENUQV9QVF9NYWluKFRDVEFfUFRfUGFuZWxCYXNlLCBicHku"
"dHlwZXMuUGFuZWwpOgogICAgYmxfaWRuYW1lID0gIlRDVEFfUFRfbWFpbiIKICAgIGJsX2xhYmVsID0g"
"IjIuIOODoeOCpOODs+Wun+ihjCIKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxh"
"eW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgbGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmNyZWF0ZV9vYmpl"
"Y3RzIiwgaWNvbj0nUExBWScsIHRleHQ9IuS9nOaIkCAo55Sf5oiQ44O75pu05pawKSIpCiAgICAgICAg"
"bGF5b3V0Lm9wZXJhdG9yKCJ0Y3RhLmRldGFjaF9vYmplY3RzIiwgaWNvbj0nVU5MSU5LRUQnKQoKY2xh"
"c3MgVENUQV9QVF9TZXR0aW5ncyhUQ1RBX1BUX1BhbmVsQmFzZSwgYnB5LnR5cGVzLlBhbmVsKToKICAg"
"IGJsX2lkbmFtZSA9ICJUQ1RBX1BUX3NldHRpbmdzIgogICAgYmxfbGFiZWwgPSAiMy4g44OR44Op44Oh"
"44O844K/6Kit5a6aIgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4dCk6CiAgICAgICAgbGF5b3V0ID0g"
"c2VsZi5sYXlvdXQKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUudGN0YV9wcm9wcwogICAgICAg"
"IGxheW91dC5vcGVyYXRvcigidGN0YS5yZXNldF9wcm9wcyIsIGljb249J0xPT1BfQkFDSycpCiAgICAg"
"ICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlRvcnVzIEZyYW1lOiIp"
"CiAgICAgICAgYm94LnByb3AocHJvcHMsICJ0b3J1c19jb2xvciIsIHRleHQ9IkNvbG9yIikKICAgICAg"
"ICBib3gucHJvcChwcm9wcywgInRvcnVzX2FscGhhIiwgdGV4dD0iQWxwaGEiKQogICAgICAgIGJveCA9"
"IGxheW91dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJTcGhlcmVzOiIpCiAgICAgICAgZm9y"
"IGkgaW4gcmFuZ2UoMSwgNCk6CiAgICAgICAgICAgIHJvdyA9IGJveC5yb3coKQogICAgICAgICAgICBy"
"b3cucHJvcChwcm9wcywgZiJzcHtpfV9tb2RlIiwgdGV4dD1mIlNwe2l9IikKICAgICAgICAgICAgaWYg"
"Z2V0YXR0cihwcm9wcywgZiJzcHtpfV9tb2RlIikgPT0gJ01BTlVBTCc6CiAgICAgICAgICAgICAgICBi"
"b3gucHJvcChwcm9wcywgZiJzcHtpfV9wb3MiLCB0ZXh0PSJYWVoiKQogICAgICAgIGJveCA9IGxheW91"
"dC5ib3goKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJUcmlhbmdsZXM6IikKICAgICAgICBib3gucHJv"
"cChwcm9wcywgInRyaV90aGlja25lc3MiKQogICAgICAgIGJveC5wcm9wKHByb3BzLCAidHJpX2FscGhh"
"IikKICAgICAgICBib3gucHJvcChwcm9wcywgInRyaUFfY29sb3IiKQogICAgICAgIGJveC5wcm9wKHBy"
"b3BzLCAidHJpQl9jb2xvciIpCgpjbGFzcyBUQ1RBX1BUX0dlb0luZm8oVENUQV9QVF9QYW5lbEJhc2Us"
"IGJweS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9QVF9nZW9faW5mbyIKICAgIGJs"
"X2xhYmVsID0gIjQuIOW5vuS9leaDheWgsSIKICAgIGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAg"
"ICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgcHJvcHMgPSBjb250ZXh0LnNjZW5lLnRjdGFf"
"cHJvcHMKICAgICAgICBsYXlvdXQub3BlcmF0b3IoInRjdGEucmFuZG9tX3Jlc2V0IiwgaWNvbj0nRklM"
"RV9SRUZSRVNIJykKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4"
"dD0iU3BoZXJlIDEgKGZyb20gMCwwLDApOiIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIERpc3Q6"
"IHtwcm9wcy5nZW9fc3AxX2Rpc3Q6LjFmfSIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiIgIEFuZzog"
"e3Byb3BzLmdlb19zcDFfYW5nWzBdOi4xZn3CsCwge3Byb3BzLmdlb19zcDFfYW5nWzFdOi4xZn3CsCwg"
"e3Byb3BzLmdlb19zcDFfYW5nWzJdOi4xZn3CsCIpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlNwaGVy"
"ZSAyIChmcm9tIDAsMCwwKToiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBEaXN0OiB7cHJvcHMu"
"Z2VvX3NwMl9kaXN0Oi4xZn0iKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBBbmc6IHtwcm9wcy5n"
"ZW9fc3AyX2FuZ1swXTouMWZ9wrAsIHtwcm9wcy5nZW9fc3AyX2FuZ1sxXTouMWZ9wrAsIHtwcm9wcy5n"
"ZW9fc3AyX2FuZ1syXTouMWZ9wrAiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJQbGFuZSBDcm9zcyBB"
"bmdsZToiKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiICBBbmdsZToge3Byb3BzLmdlb19wbGFuZV9h"
"bmdsZTouMWZ9wrAiKQogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS5jb3B5X2dlb19pbmZvIiwg"
"aWNvbj0nQ09QWURPV04nKQoKY2xhc3MgVENUQV9QVF9TeXN0ZW0oVENUQV9QVF9QYW5lbEJhc2UsIGJw"
"eS50eXBlcy5QYW5lbCk6CiAgICBibF9pZG5hbWUgPSAiVENUQV9QVF9zeXN0ZW0iCiAgICBibF9sYWJl"
"bCA9ICI1LiDjgrfjgrnjg4bjg6AiCiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBs"
"YXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS5vcGVuX2xpbmsi"
"LCBpY29uPSdVUkwnKQogICAgICAgIGxheW91dC5vcGVyYXRvcigidGN0YS5kZWxldGVfYWxsIiwgaWNv"
"bj0nVFJBU0gnLCB0ZXh0PSLjgqLjg4njgqrjg7PliYrpmaQgKOWFqOOCr+ODquOCoikiKQoKCiMgPT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PQojIDYuIOeZu+mMsuWHpueQhgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY2xhc3NlcyA9ICgKICAg"
"IFRDVEFfUHJvcGVydGllcywKICAgIFRDVEFfT1RfVmlld1NlbGVjdGVkLAogICAgVENUQV9PVF9VcGRh"
"dGVWaWV3SW5mbywKICAgIFRDVEFfT1RfQ29weVZpZXdJbmZvLAogICAgVENUQV9PVF9DcmVhdGVPYmpl"
"Y3RzLAogICAgVENUQV9PVF9EZXRhY2hPYmplY3RzLAogICAgVENUQV9PVF9SZXNldFByb3BzLAogICAg"
"VENUQV9PVF9SYW5kb21SZXNldCwKICAgIFRDVEFfT1RfQ29weUdlb0luZm8sCiAgICBUQ1RBX09UX09w"
"ZW5MaW5rLAogICAgVENUQV9PVF9EZWxldGVBbGwsCiAgICBUQ1RBX1BUX1ZpZXdJbmZvLAogICAgVENU"
"QV9QVF9NYWluLAogICAgVENUQV9QVF9TZXR0aW5ncywKICAgIFRDVEFfUFRfR2VvSW5mbywKICAgIFRD"
"VEFfUFRfU3lzdGVtLAopCgpkZWYgcmVnaXN0ZXIoKToKICAgIGZvciBjbHMgaW4gY2xhc3NlczoKICAg"
"ICAgICBicHkudXRpbHMucmVnaXN0ZXJfY2xhc3MoY2xzKQogICAgYnB5LnR5cGVzLlNjZW5lLnRjdGFf"
"cHJvcHMgPSBicHkucHJvcHMuUG9pbnRlclByb3BlcnR5KHR5cGU9VENUQV9Qcm9wZXJ0aWVzKQoKZGVm"
"IHVucmVnaXN0ZXIoKToKICAgIGZvciBjbHMgaW4gcmV2ZXJzZWQoY2xhc3Nlcyk6CiAgICAgICAgYnB5"
"LnV0aWxzLnVucmVnaXN0ZXJfY2xhc3MoY2xzKQogICAgZGVsIGJweS50eXBlcy5TY2VuZS50Y3RhX3By"
"b3BzCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgcmVnaXN0ZXIoKQ=="
)
},
{
"name": "時計時刻 20260713_001",
"code_b64": (
"IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K"
"IyBibF9pbmZvIOOCkuWFiOmgreiomOi/sCDjgqLjg4njgqrjg7PjgafjgYLjgovjgpLnpLrjgZkKIyA9"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KYmxf"
"aW5mbyA9IHsKICAgICJuYW1lIjogInppb25hZF/mmYLoqIjjgrjjgqfjg43jg6zjg7zjgr/jg7wgJiDp"
"hY3nva7jg4Tjg7zjg6siLAogICAgImF1dGhvciI6ICJBSSBBc3Npc3RhbnQiLAogICAgInZlcnNpb24i"
"OiAoNSwgMSwgMCksCiAgICAiYmxlbmRlciI6ICg1LCAwLCAwKSwgICMgQmxlbmRlciA1LjAg5Lul6ZmN"
"5bCC55SoCiAgICAibG9jYXRpb24iOiAiVmlldzNEID4gU2lkZWJhciA+IHppb25hZF/mmYLoqIgiLAog"
"ICAgImRlc2NyaXB0aW9uIjogIlJlYWx0aW1lIENsb2NrIEdlbmVyYXRvciwgVmlld3BvcnQgSW5mbywg"
"YW5kIFRyYW5zZm9ybSBFZGl0b3IuIiwKICAgICJjYXRlZ29yeSI6ICIzRCBWaWV3IiwKfQoKIyA9PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBpbXBv"
"cnQg44Gq44Gp44Gu5a6a576pCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09CmltcG9ydCBicHkKaW1wb3J0IG1hdGgKaW1wb3J0IHdlYmJyb3dzZXIK"
"ZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKZnJvbSBicHkudHlwZXMgaW1wb3J0IE9wZXJhdG9y"
"LCBQYW5lbCwgUHJvcGVydHlHcm91cApmcm9tIGJweS5wcm9wcyBpbXBvcnQgU3RyaW5nUHJvcGVydHks"
"IEZsb2F0UHJvcGVydHksIEZsb2F0VmVjdG9yUHJvcGVydHksIFBvaW50ZXJQcm9wZXJ0eSwgQm9vbFBy"
"b3BlcnR5CgojIOOAkOS9nOaIkOaXpeOAkSAyMDI25bm0N+aciDEz5pelIDIwOjAwCgojID09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIOOAkOWIneac"
"n+ioreWumuODu+WumuaVsOWumue+qeOAkSAo44K/44Kk44OI44Or44O75o6l6aCt6L6e44Gq44GpKQoj"
"ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpB"
"RERPTl9USVRMRSA9ICJ6aW9uYWRf5pmC6KiIIgpQUkVGSVhfVkFMID0gIlpJT05BRF9DTE9DS19UT09M"
"UyIKQURET05fQ0FURUdPUlkgPSBBRERPTl9USVRMRQoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyDjgJDliJ3mnJ/oqK3lrprjg7vjg6rjg7Pj"
"gq/lrprnvqnjgJEgCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09CkxJTktfTkFNRV8xID0gIuWfuuacrOOCouODieOCquODs+ioreWumiAyMDI2MDcx"
"Me+9giIKTElOS19VUkxfMSA9ICJodHRwczovL2FwcC5ub3Rpb24uY29tL3AvMjAyNjA3MTEtMzlhZjVk"
"YWNhZjQzODAyNzgxMWRjZDg3N2RiN2M2MzAiCkxJTktfTkFNRV8yID0gInBvc2ZpZSIKTElOS19VUkxf"
"MiA9ICJodHRwczovL3Bvc2ZpZS5jb20vQHRpbWVrYWd1cmEvdC96aW9uYWQyMDIyP3NvcnQ9MCIKTElO"
"S19OQU1FXzMgPSAiemlvbmFkY2hhdCIKTElOS19VUkxfMyA9ICJodHRwczovL3guY29tL3ppb25hZGNo"
"YXQiCkxJTktfTkFNRV80ID0gImJsZW5kZXIg44Kz44Oz44OG44OKIDIwMjYwNzEzIgpMSU5LX1VSTF80"
"ID0gImh0dHBzOi8vbm90ZS5jb20vemlvbmFkbWlsbGlvbi9uL245YTQ3ZDg4ZmU3YjQiCkxJTktfTkFN"
"RV81ID0gIiIKTElOS19VUkxfNSA9ICIiCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PQojIOOAkOWIneacn+ioreWumuODu+eUn+aIkOWumue+qeOA"
"kQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PQpERUZBVUxUX0NPTExFQ1RJT05fTkFNRSA9ICJaSU9OQURfQ2xvY2tfUHJldmlldyIKUFJFVklFV19U"
"RVhUX05BTUUgPSAiUHJldmlld19DbG9ja19UZXh0IgoKREVGQVVMVF9WQUwgPSAwLjAKREVGQVVMVF9T"
"Q0FMRV9WQUwgPSAxLjAKCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PQojIOKYhSDjg6rjgqLjg6vjgr/jgqTjg6DmmYLoqIjmm7TmlrDnlKgg44OQ44OD44Kv44Kw44Op44Km"
"44Oz44OJ44K/44Kk44Oe44O8CiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09CmRlZiB1cGRhdGVfcmVhbHRpbWVfY2xvY2tzKCk6CiAgICAjIDHnp5LjgZTjgajjgavlkbzjgbDj"
"gozjgIHnibnlrprjga7jgqvjgrnjgr/jg6Djg5fjg63jg5Hjg4bjgqPjgpLmjIHjgaTjg4bjgq3jgrnj"
"g4jjgpLnj77lnKjmmYLliLvjgavmm7jjgY3mj5vjgYjjgosKICAgIGN1cnJlbnRfdGltZSA9IGRhdGV0"
"aW1lLm5vdygpLnN0cmZ0aW1lKCIlSDolTTolUyIpCiAgICBmb3Igb2JqIGluIGJweS5kYXRhLm9iamVj"
"dHM6CiAgICAgICAgIyBGT05U44K/44Kk44OX44GL44Gk44Kr44K544K/44Og44OX44Ot44OR44OG44Kj"
"ICd6aW9uYWRfcmVhbHRpbWVfY2xvY2snIOOCkuaMgeOBpOOCguOBruOCkuWvvuixoQogICAgICAgIGlm"
"IG9iai50eXBlID09ICdGT05UJyBhbmQgb2JqLmdldCgiemlvbmFkX3JlYWx0aW1lX2Nsb2NrIik6CiAg"
"ICAgICAgICAgIGlmIG9iai5kYXRhIGFuZCBvYmouZGF0YS5ib2R5ICE9IGN1cnJlbnRfdGltZToKICAg"
"ICAgICAgICAgICAgIG9iai5kYXRhLmJvZHkgPSBjdXJyZW50X3RpbWUKICAgIHJldHVybiAxLjAgICMg"
"MS4w56eS5b6M44Gr5YaN5bqm5a6f6KGMCgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT0KIyAxLiDnlLvpnaLmg4XloLHvvIbpgbjmip7jgqrjg5bjgrjjgqfjgq/jg4jkuK3l"
"pK7np7vli5UKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY2xhc3Mg"
"WklPTkFEX1ZpZXdTZXR0aW5ncyhQcm9wZXJ0eUdyb3VwKToKICAgIHZpZXdfbW9kZTogU3RyaW5nUHJv"
"cGVydHkobmFtZT0iVmlldyBNb2RlIiwgZGVmYXVsdD0iVW5rbm93biIpCiAgICBsb2NfeDogRmxvYXRQ"
"cm9wZXJ0eShuYW1lPSJDZW50ZXIgWCIpCiAgICBsb2NfeTogRmxvYXRQcm9wZXJ0eShuYW1lPSJDZW50"
"ZXIgWSIpCiAgICBsb2NfejogRmxvYXRQcm9wZXJ0eShuYW1lPSJDZW50ZXIgWiIpCiAgICB2aWV3X3dp"
"ZHRoOiBGbG9hdFByb3BlcnR5KG5hbWU9IldpZHRoIikKICAgIHZpZXdfaGVpZ2h0OiBGbG9hdFByb3Bl"
"cnR5KG5hbWU9IkhlaWdodCIpCiAgICB2aWV3X2Rpc3RhbmNlOiBGbG9hdFByb3BlcnR5KG5hbWU9IkRp"
"c3RhbmNlIikKCmNsYXNzIFpJT05BRF9PVF9Nb3ZlVG9DZW50ZXIoT3BlcmF0b3IpOgogICAgYmxfaWRu"
"YW1lID0gZiJ7UFJFRklYX1ZBTC5sb3dlcigpfS5tb3ZlX3RvX2NlbnRlciIKICAgIGJsX2xhYmVsID0g"
"IumBuOaKnuOCquODluOCuOOCp+OCr+ODiOOCkueUu+mdouS4reWkruOBuOenu+WLlSIKICAgIGJsX29w"
"dGlvbnMgPSB7J1JFR0lTVEVSJywgJ1VORE8nfQogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6"
"CiAgICAgICAgb2JqID0gY29udGV4dC5hY3RpdmVfb2JqZWN0CiAgICAgICAgaWYgbm90IG9iajogCiAg"
"ICAgICAgICAgIHNlbGYucmVwb3J0KHsnV0FSTklORyd9LCAi44Kq44OW44K444Kn44Kv44OI44KS6YG4"
"5oqe44GX44Gm44GP44Gg44GV44GE44CCIikKICAgICAgICAgICAgcmV0dXJuIHsnQ0FOQ0VMTEVEJ30K"
"ICAgICAgICBydjNkID0gY29udGV4dC5zcGFjZV9kYXRhLnJlZ2lvbl8zZAogICAgICAgIGlmIHJ2M2Q6"
"IAogICAgICAgICAgICBvYmoubG9jYXRpb24gPSBydjNkLnZpZXdfbG9jYXRpb24KICAgICAgICAgICAg"
"c2VsZi5yZXBvcnQoeydJTkZPJ30sICLnlLvpnaLkuK3lpK7jgbjnp7vli5XjgZfjgb7jgZfjgZ/jgIIi"
"KQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFpJT05BRF9PVF9VcGRhdGVWaWV3SW5m"
"byhPcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSBmIntQUkVGSVhfVkFMLmxvd2VyKCl9LnVwZGF0ZV92"
"aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICLnlLvpnaLmg4XloLHjgpLlj5blvpfjg7vmm7TmlrAiCiAg"
"ICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBydjNkID0gY29udGV4dC5zcGFjZV9k"
"YXRhLnJlZ2lvbl8zZAogICAgICAgIHJlZ2lvbiA9IGNvbnRleHQucmVnaW9uCiAgICAgICAgc3QgPSBj"
"b250ZXh0LnNjZW5lLnppb25hZF92aWV3X3NldHRpbmdzCiAgICAgICAgaWYgbm90IHJ2M2Qgb3Igbm90"
"IHJlZ2lvbjogcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICBpc19vcnRobyA9IChydjNkLnZpZXdf"
"cGVyc3BlY3RpdmUgPT0gJ09SVEhPJykKICAgICAgICBzdC52aWV3X21vZGUgPSAi5bmz6KGM5oqV5b2x"
"IChPcnRobykiIGlmIGlzX29ydGhvIGVsc2UgIumAj+imluaKleW9sSAoUGVyc3ApIgogICAgICAgIHN0"
"LmxvY194ID0gcm91bmQocnYzZC52aWV3X2xvY2F0aW9uLngsIDEpCiAgICAgICAgc3QubG9jX3kgPSBy"
"b3VuZChydjNkLnZpZXdfbG9jYXRpb24ueSwgMSkKICAgICAgICBzdC5sb2NfeiA9IHJvdW5kKHJ2M2Qu"
"dmlld19sb2NhdGlvbi56LCAxKQogICAgICAgIHN0LnZpZXdfZGlzdGFuY2UgPSByb3VuZChydjNkLnZp"
"ZXdfZGlzdGFuY2UsIDEpCiAgICAgICAgd19weCwgaF9weCA9IHJlZ2lvbi53aWR0aCwgcmVnaW9uLmhl"
"aWdodAogICAgICAgIGlmIGlzX29ydGhvOgogICAgICAgICAgICBoXzNkID0gcnYzZC52aWV3X2Rpc3Rh"
"bmNlCiAgICAgICAgICAgIHdfM2QgPSBydjNkLnZpZXdfZGlzdGFuY2UgKiAod19weCAvIGhfcHgpIGlm"
"IGhfcHggPiAwIGVsc2UgcnYzZC52aWV3X2Rpc3RhbmNlCiAgICAgICAgZWxzZToKICAgICAgICAgICAg"
"bGVucyA9IGNvbnRleHQuc3BhY2VfZGF0YS5sZW5zCiAgICAgICAgICAgIGZvdiA9IDIgKiBtYXRoLmF0"
"YW4oMzIuMCAvICgyICogbGVucykpCiAgICAgICAgICAgIGhfM2QgPSAyICogcnYzZC52aWV3X2Rpc3Rh"
"bmNlICogbWF0aC50YW4oZm92IC8gMikKICAgICAgICAgICAgd18zZCA9IGhfM2QgKiAod19weCAvIGhf"
"cHgpIGlmIGhfcHggPiAwIGVsc2UgaF8zZAogICAgICAgIHN0LnZpZXdfd2lkdGggPSByb3VuZCh3XzNk"
"LCAxKQogICAgICAgIHN0LnZpZXdfaGVpZ2h0ID0gcm91bmQoaF8zZCwgMSkKICAgICAgICByZXR1cm4g"
"eydGSU5JU0hFRCd9CgpjbGFzcyBaSU9OQURfT1RfQ29weVZpZXdJbmZvKE9wZXJhdG9yKToKICAgIGJs"
"X2lkbmFtZSA9IGYie1BSRUZJWF9WQUwubG93ZXIoKX0uY29weV92aWV3X2luZm8iCiAgICBibF9sYWJl"
"bCA9ICLnlLvpnaLmg4XloLHjgpLjgrPjg5Tjg7wgKDHooYzjgZrjgaQpIgogICAgZGVmIGV4ZWN1dGUo"
"c2VsZiwgY29udGV4dCk6CiAgICAgICAgc3QgPSBjb250ZXh0LnNjZW5lLnppb25hZF92aWV3X3NldHRp"
"bmdzCiAgICAgICAgdGV4dCA9IChmIk1vZGU6IHtzdC52aWV3X21vZGV9XG5DZW50ZXIgWDoge3N0Lmxv"
"Y194Oi4xZn1cbkNlbnRlciBZOiB7c3QubG9jX3k6LjFmfVxuIgogICAgICAgICAgICAgICAgZiJDZW50"
"ZXIgWjoge3N0LmxvY196Oi4xZn1cbldpZHRoOiB7c3Qudmlld193aWR0aDouMWZ9XG5IZWlnaHQ6IHtz"
"dC52aWV3X2hlaWdodDouMWZ9XG4iCiAgICAgICAgICAgICAgICBmIkRpc3RhbmNlOiB7c3Qudmlld19k"
"aXN0YW5jZTouMWZ9IikKICAgICAgICBjb250ZXh0LndpbmRvd19tYW5hZ2VyLmNsaXBib2FyZCA9IHRl"
"eHQKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT0KIyAyLiBUcmFuc2Zvcm0gQ29waWVyICYgRWRpdG9yICjjg6rjgqLjg6vj"
"gr/jgqTjg6Dlj43mmKApCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"CmRlZiB1cGRhdGVfdHJhbnNmb3JtKHNlbGYsIGNvbnRleHQpOgogICAgaWYgc2VsZi5pc19mZXRjaGlu"
"ZzogcmV0dXJuCiAgICBvYmogPSBjb250ZXh0LmFjdGl2ZV9vYmplY3QKICAgIGlmIG9iajoKICAgICAg"
"ICBvYmoubG9jYXRpb24ueCA9IHNlbGYubG9jX3gKICAgICAgICBvYmoubG9jYXRpb24ueSA9IHNlbGYu"
"bG9jX3kKICAgICAgICBvYmoubG9jYXRpb24ueiA9IHNlbGYubG9jX3oKICAgICAgICBvYmoucm90YXRp"
"b25fZXVsZXIueCA9IG1hdGgucmFkaWFucyhzZWxmLnJvdF94KQogICAgICAgIG9iai5yb3RhdGlvbl9l"
"dWxlci55ID0gbWF0aC5yYWRpYW5zKHNlbGYucm90X3kpCiAgICAgICAgb2JqLnJvdGF0aW9uX2V1bGVy"
"LnogPSBtYXRoLnJhZGlhbnMoc2VsZi5yb3RfeikKICAgICAgICBvYmouc2NhbGUueCA9IHNlbGYuc2Nh"
"bGVfeAogICAgICAgIG9iai5zY2FsZS55ID0gc2VsZi5zY2FsZV95CiAgICAgICAgb2JqLnNjYWxlLnog"
"PSBzZWxmLnNjYWxlX3oKCmNsYXNzIFpJT05BRF9UcmFuc2Zvcm1TZXR0aW5ncyhQcm9wZXJ0eUdyb3Vw"
"KToKICAgIGlzX2ZldGNoaW5nOiBCb29sUHJvcGVydHkoZGVmYXVsdD1GYWxzZSkKICAgIGxvY194OiBG"
"bG9hdFByb3BlcnR5KG5hbWU9IlgiLCBkZWZhdWx0PURFRkFVTFRfVkFMLCB1cGRhdGU9dXBkYXRlX3Ry"
"YW5zZm9ybSkKICAgIGxvY195OiBGbG9hdFByb3BlcnR5KG5hbWU9IlkiLCBkZWZhdWx0PURFRkFVTFRf"
"VkFMLCB1cGRhdGU9dXBkYXRlX3RyYW5zZm9ybSkKICAgIGxvY196OiBGbG9hdFByb3BlcnR5KG5hbWU9"
"IloiLCBkZWZhdWx0PURFRkFVTFRfVkFMLCB1cGRhdGU9dXBkYXRlX3RyYW5zZm9ybSkKICAgIHJvdF94"
"OiBGbG9hdFByb3BlcnR5KG5hbWU9IlggKGRlZykiLCBkZWZhdWx0PURFRkFVTFRfVkFMLCB1cGRhdGU9"
"dXBkYXRlX3RyYW5zZm9ybSkKICAgIHJvdF95OiBGbG9hdFByb3BlcnR5KG5hbWU9IlkgKGRlZykiLCBk"
"ZWZhdWx0PURFRkFVTFRfVkFMLCB1cGRhdGU9dXBkYXRlX3RyYW5zZm9ybSkKICAgIHJvdF96OiBGbG9h"
"dFByb3BlcnR5KG5hbWU9IlogKGRlZykiLCBkZWZhdWx0PURFRkFVTFRfVkFMLCB1cGRhdGU9dXBkYXRl"
"X3RyYW5zZm9ybSkKICAgIHNjYWxlX3g6IEZsb2F0UHJvcGVydHkobmFtZT0iWCIsIGRlZmF1bHQ9REVG"
"QVVMVF9TQ0FMRV9WQUwsIHVwZGF0ZT11cGRhdGVfdHJhbnNmb3JtKQogICAgc2NhbGVfeTogRmxvYXRQ"
"cm9wZXJ0eShuYW1lPSJZIiwgZGVmYXVsdD1ERUZBVUxUX1NDQUxFX1ZBTCwgdXBkYXRlPXVwZGF0ZV90"
"cmFuc2Zvcm0pCiAgICBzY2FsZV96OiBGbG9hdFByb3BlcnR5KG5hbWU9IloiLCBkZWZhdWx0PURFRkFV"
"TFRfU0NBTEVfVkFMLCB1cGRhdGU9dXBkYXRlX3RyYW5zZm9ybSkKCmNsYXNzIFpJT05BRF9PVF9VcGRh"
"dGVUcmFuc2Zvcm0oT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gZiJ7UFJFRklYX1ZBTC5sb3dlcigp"
"fS51cGRhdGVfdHJhbnNmb3JtIgogICAgYmxfbGFiZWwgPSAiVUnjgavooajnpLogLyDmm7TmlrAiCiAg"
"ICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBzdCA9IGNvbnRleHQuc2NlbmUuemlv"
"bmFkX3RyYW5zX3NldHRpbmdzCiAgICAgICAgb2JqID0gY29udGV4dC5hY3RpdmVfb2JqZWN0CiAgICAg"
"ICAgaWYgbm90IG9iajogcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICBzdC5pc19mZXRjaGluZyA9"
"IFRydWUKICAgICAgICBzdC5sb2NfeCA9IG9iai5sb2NhdGlvbi54CiAgICAgICAgc3QubG9jX3kgPSBv"
"YmoubG9jYXRpb24ueQogICAgICAgIHN0LmxvY196ID0gb2JqLmxvY2F0aW9uLnoKICAgICAgICBzdC5y"
"b3RfeCA9IG1hdGguZGVncmVlcyhvYmoucm90YXRpb25fZXVsZXIueCkKICAgICAgICBzdC5yb3RfeSA9"
"IG1hdGguZGVncmVlcyhvYmoucm90YXRpb25fZXVsZXIueSkKICAgICAgICBzdC5yb3RfeiA9IG1hdGgu"
"ZGVncmVlcyhvYmoucm90YXRpb25fZXVsZXIueikKICAgICAgICBzdC5zY2FsZV94ID0gb2JqLnNjYWxl"
"LngKICAgICAgICBzdC5zY2FsZV95ID0gb2JqLnNjYWxlLnkKICAgICAgICBzdC5zY2FsZV96ID0gb2Jq"
"LnNjYWxlLnoKICAgICAgICBzdC5pc19mZXRjaGluZyA9IEZhbHNlCiAgICAgICAgcmV0dXJuIHsnRklO"
"SVNIRUQnfQoKY2xhc3MgWklPTkFEX09UX0NvcHlUcmFuc2Zvcm1JbmZvKE9wZXJhdG9yKToKICAgIGJs"
"X2lkbmFtZSA9IGYie1BSRUZJWF9WQUwubG93ZXIoKX0uY29weV90cmFuc2Zvcm0iCiAgICBibF9sYWJl"
"bCA9ICLjgZnjgbnjgabjga7mg4XloLHjgpLjgrPjg5Tjg7wgKDHooYzjgZrjgaQpIgogICAgZGVmIGV4"
"ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgc3QgPSBjb250ZXh0LnNjZW5lLnppb25hZF90cmFu"
"c19zZXR0aW5ncwogICAgICAgIHRleHQgPSAoZiJMb2MgWDoge3N0LmxvY194Oi4xZn1cbkxvYyBZOiB7"
"c3QubG9jX3k6LjFmfVxuTG9jIFo6IHtzdC5sb2NfejouMWZ9XG4iCiAgICAgICAgICAgICAgICBmIlJv"
"dCBYOiB7c3Qucm90X3g6LjFmfVxuUm90IFk6IHtzdC5yb3RfeTouMWZ9XG5Sb3QgWjoge3N0LnJvdF96"
"Oi4xZn1cbiIKICAgICAgICAgICAgICAgIGYiU2NhbGUgWDoge3N0LnNjYWxlX3g6LjFmfVxuU2NhbGUg"
"WToge3N0LnNjYWxlX3k6LjFmfVxuU2NhbGUgWjoge3N0LnNjYWxlX3o6LjFmfSIpCiAgICAgICAgY29u"
"dGV4dC53aW5kb3dfbWFuYWdlci5jbGlwYm9hcmQgPSB0ZXh0CiAgICAgICAgcmV0dXJuIHsnRklOSVNI"
"RUQnfQoKCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgMy4g5pmC"
"6KiI44K444Kn44ON44Os44O844K/44O8ICjjg5fjg6zjg5Pjg6Xjg7znlJ/miJDvvIbliIfjgorpm6Lj"
"gZcpCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNzIFpJT05B"
"RF9DbG9ja1NldHRpbmdzKFByb3BlcnR5R3JvdXApOgogICAgdGV4dF9jb2xvcjogRmxvYXRWZWN0b3JQ"
"cm9wZXJ0eShuYW1lPSLmloflrZfoibIiLCBzdWJ0eXBlPSdDT0xPUicsIGRlZmF1bHQ9KDAuMSwgMC45"
"LCAwLjIpLCBtaW49MCwgbWF4PTEpCiAgICBpc19yZWFsdGltZTogQm9vbFByb3BlcnR5KG5hbWU9IuOD"
"quOCouODq+OCv+OCpOODoOabtOaWsCAo56eS5Y2Y5L2NKSIsIGRlZmF1bHQ9VHJ1ZSwgZGVzY3JpcHRp"
"b249IuODgeOCp+ODg+OCr+OCkuWFpeOCjOOCi+OBqOOAgeWIh+OCiumbouOBl+OBn+W+jOOCguWun+ma"
"m+OBruaZguWIu+OBq+WQiOOCj+OBm+OBpuenkuOBjOabtOaWsOOBleOCjOe2muOBkeOBvuOBmSIpCgpj"
"bGFzcyBaSU9OQURfT1RfR2VuZXJhdGVDbG9jayhPcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSBmIntQ"
"UkVGSVhfVkFMLmxvd2VyKCl9LmdlbmVyYXRlX2Nsb2NrIgogICAgYmxfbGFiZWwgPSAi5pmC6KiI44KS"
"44OX44Os44OT44Ol44O855Sf5oiQIgogICAgYmxfb3B0aW9ucyA9IHsnUkVHSVNURVInLCAnVU5ETyd9"
"CgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgc2V0dGluZ3MgPSBjb250ZXh0"
"LnNjZW5lLnppb25hZF9jbG9ja19zZXR0aW5ncwogICAgICAgIGN1cnJlbnRfdGltZSA9IGRhdGV0aW1l"
"Lm5vdygpLnN0cmZ0aW1lKCIlSDolTTolUyIpCiAgICAgICAgCiAgICAgICAgIyDjg5fjg6zjg5Pjg6Xj"
"g7znlKjjgrPjg6zjgq/jgrfjg6fjg7Pjga7mupblgpkKICAgICAgICBwcmV2aWV3X2NvbGwgPSBicHku"
"ZGF0YS5jb2xsZWN0aW9ucy5nZXQoREVGQVVMVF9DT0xMRUNUSU9OX05BTUUpCiAgICAgICAgaWYgbm90"
"IHByZXZpZXdfY29sbDoKICAgICAgICAgICAgcHJldmlld19jb2xsID0gYnB5LmRhdGEuY29sbGVjdGlv"
"bnMubmV3KERFRkFVTFRfQ09MTEVDVElPTl9OQU1FKQogICAgICAgICAgICBjb250ZXh0LnNjZW5lLmNv"
"bGxlY3Rpb24uY2hpbGRyZW4ubGluayhwcmV2aWV3X2NvbGwpCiAgICAgICAgCiAgICAgICAgIyDlj6Tj"
"gYTjg5fjg6zjg5Pjg6Xjg7zjg4bjgq3jgrnjg4jjgpLliYrpmaQKICAgICAgICBvbGRfb2JqID0gYnB5"
"LmRhdGEub2JqZWN0cy5nZXQoUFJFVklFV19URVhUX05BTUUpCiAgICAgICAgaWYgb2xkX29iajoKICAg"
"ICAgICAgICAgYnB5LmRhdGEub2JqZWN0cy5yZW1vdmUob2xkX29iaiwgZG9fdW5saW5rPVRydWUpCiAg"
"ICAgICAgCiAgICAgICAgIyDmmYLliLvjg4bjgq3jgrnjg4jjga7kvZzmiJAgKOenkuOBvuOBpykKICAg"
"ICAgICB0ZXh0X2RhdGEgPSBicHkuZGF0YS5jdXJ2ZXMubmV3KG5hbWU9ZiJ7UFJFVklFV19URVhUX05B"
"TUV9X0RhdGEiLCB0eXBlPSdGT05UJykKICAgICAgICB0ZXh0X2RhdGEuYm9keSA9IGN1cnJlbnRfdGlt"
"ZQogICAgICAgIHRleHRfZGF0YS5hbGlnbl94ID0gJ0NFTlRFUicKICAgICAgICB0ZXh0X2RhdGEuYWxp"
"Z25feSA9ICdDRU5URVInCiAgICAgICAgCiAgICAgICAgdGV4dF9vYmogPSBicHkuZGF0YS5vYmplY3Rz"
"Lm5ldyhQUkVWSUVXX1RFWFRfTkFNRSwgdGV4dF9kYXRhKQogICAgICAgIHByZXZpZXdfY29sbC5vYmpl"
"Y3RzLmxpbmsodGV4dF9vYmopCiAgICAgICAgCiAgICAgICAgIyDjg6rjgqLjg6vjgr/jgqTjg6Dmm7Tm"
"lrDjga7jg5Xjg6njgrAgKOOCq+OCueOCv+ODoOODl+ODreODkeODhuOCoykg44KS5LuY5LiOCiAgICAg"
"ICAgaWYgc2V0dGluZ3MuaXNfcmVhbHRpbWU6CiAgICAgICAgICAgIHRleHRfb2JqWyJ6aW9uYWRfcmVh"
"bHRpbWVfY2xvY2siXSA9IDEKICAgICAgICBlbHNlOgogICAgICAgICAgICBpZiAiemlvbmFkX3JlYWx0"
"aW1lX2Nsb2NrIiBpbiB0ZXh0X29iajoKICAgICAgICAgICAgICAgIGRlbCB0ZXh0X29ialsiemlvbmFk"
"X3JlYWx0aW1lX2Nsb2NrIl0KICAgICAgICAKICAgICAgICAjIOODnuODhuODquOCouODq+ioreWumiAo"
"55m65YWJ44GV44Gb44KLKQogICAgICAgIHRleHRfbWF0ID0gYnB5LmRhdGEubWF0ZXJpYWxzLm5ldyhu"
"YW1lPSJQcmV2aWV3X01hdF9DbG9ja19UZXh0IikKICAgICAgICB0ZXh0X21hdC51c2Vfbm9kZXMgPSBU"
"cnVlCiAgICAgICAgYnNkZiA9IHRleHRfbWF0Lm5vZGVfdHJlZS5ub2Rlc1siUHJpbmNpcGxlZCBCU0RG"
"Il0KICAgICAgICBic2RmLmlucHV0c1siQmFzZSBDb2xvciJdLmRlZmF1bHRfdmFsdWUgPSAoKnNldHRp"
"bmdzLnRleHRfY29sb3IsIDEuMCkKICAgICAgICBic2RmLmlucHV0c1siRW1pc3Npb24gQ29sb3IiXS5k"
"ZWZhdWx0X3ZhbHVlID0gKCpzZXR0aW5ncy50ZXh0X2NvbG9yLCAxLjApCiAgICAgICAgYnNkZi5pbnB1"
"dHNbIkVtaXNzaW9uIFN0cmVuZ3RoIl0uZGVmYXVsdF92YWx1ZSA9IDIuMAogICAgICAgIHRleHRfb2Jq"
"LmRhdGEubWF0ZXJpYWxzLmFwcGVuZCh0ZXh0X21hdCkKCiAgICAgICAgIyDjgqLjgq/jg4bjgqPjg5bl"
"jJYKICAgICAgICBjb250ZXh0LnZpZXdfbGF5ZXIub2JqZWN0cy5hY3RpdmUgPSB0ZXh0X29iagogICAg"
"ICAgIHRleHRfb2JqLnNlbGVjdF9zZXQoVHJ1ZSkKICAgICAgICAKICAgICAgICBzZWxmLnJlcG9ydCh7"
"J0lORk8nfSwgZiLmmYLoqIjjg5fjg6zjg5Pjg6Xjg7zjgpLnlJ/miJDjgZfjgb7jgZfjgZ/jgIIiKQog"
"ICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFpJT05BRF9PVF9GaW5hbGl6ZUNsb2NrKE9w"
"ZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9IGYie1BSRUZJWF9WQUwubG93ZXIoKX0uZmluYWxpemVfY2xv"
"Y2siCiAgICBibF9sYWJlbCA9ICLliIfjgorpm6LjgZfjg7vlrozlhajni6znq4vljJYiCiAgICBibF9k"
"ZXNjcmlwdGlvbiA9ICLmmYLoqIjjgpLjgqLjg4njgqrjg7Pjg5fjg6zjg5Pjg6Xjg7zjgYvjgonliIfj"
"gorpm6LjgZfjgIHni6znq4vjgZfjgZ/jg4fjg7zjgr/jgajjgZfjgabkv53lrZjjgZfjgb7jgZkiCiAg"
"ICBibF9vcHRpb25zID0geydSRUdJU1RFUicsICdVTkRPJ30KCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBj"
"b250ZXh0KToKICAgICAgICB0ZXh0X29iaiA9IGJweS5kYXRhLm9iamVjdHMuZ2V0KFBSRVZJRVdfVEVY"
"VF9OQU1FKQogICAgICAgIAogICAgICAgIGlmIG5vdCB0ZXh0X29iajoKICAgICAgICAgICAgc2VsZi5y"
"ZXBvcnQoeydXQVJOSU5HJ30sICLjg5fjg6zjg5Pjg6Xjg7zmmYLoqIjjgYzopovjgaTjgYvjgorjgb7j"
"gZvjgpPjgIIiKQogICAgICAgICAgICByZXR1cm4geydDQU5DRUxMRUQnfQoKICAgICAgICAjIOOCv+OC"
"pOODoOOCueOCv+ODs+ODl+OBp+S4gOaEj+OBruWQjeWJjeOBq+ODquODjeODvOODoAogICAgICAgIHRp"
"bWVzdGFtcCA9IGRhdGV0aW1lLm5vdygpLnN0cmZ0aW1lKCIlSCVNJVMiKQogICAgICAgIHRleHRfb2Jq"
"Lm5hbWUgPSBmIkNsb2NrX0ZpbmFsX3t0aW1lc3RhbXB9IgogICAgICAgIHRleHRfb2JqLmRhdGEubmFt"
"ZSA9IGYiQ2xvY2tfRGF0YV97dGltZXN0YW1wfSIKCiAgICAgICAgIyDjg57jg4bjg6rjgqLjg6vjgpLj"
"grfjg7PjgrDjg6vjg6bjg7zjgrbjg7zljJbvvIjni6znq4vljJbvvIkKICAgICAgICBmb3Igc2xvdCBp"
"biB0ZXh0X29iai5tYXRlcmlhbF9zbG90czoKICAgICAgICAgICAgaWYgc2xvdC5tYXRlcmlhbDoKICAg"
"ICAgICAgICAgICAgIG5ld19tYXQgPSBzbG90Lm1hdGVyaWFsLmNvcHkoKQogICAgICAgICAgICAgICAg"
"bmV3X21hdC5uYW1lID0gZiJNYXRfe3RleHRfb2JqLm5hbWV9IgogICAgICAgICAgICAgICAgc2xvdC5t"
"YXRlcmlhbCA9IG5ld19tYXQKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAjIOODl+ODrOODk+OD"
"peODvOOCs+ODrOOCr+OCt+ODp+ODs+OCkuWJiumZpCAo44Kq44OW44K444Kn44Kv44OI44Gv44K344O8"
"44Oz44Kz44Os44Kv44K344On44Oz44Gr56e75YuVKQogICAgICAgIHByZXZpZXdfY29sbCA9IGJweS5k"
"YXRhLmNvbGxlY3Rpb25zLmdldChERUZBVUxUX0NPTExFQ1RJT05fTkFNRSkKICAgICAgICBpZiBwcmV2"
"aWV3X2NvbGw6CiAgICAgICAgICAgIGZvciBvYmogaW4gbGlzdChwcmV2aWV3X2NvbGwub2JqZWN0cyk6"
"CiAgICAgICAgICAgICAgICBjb250ZXh0LnNjZW5lLmNvbGxlY3Rpb24ub2JqZWN0cy5saW5rKG9iaikK"
"ICAgICAgICAgICAgICAgIHByZXZpZXdfY29sbC5vYmplY3RzLnVubGluayhvYmopCiAgICAgICAgICAg"
"IGJweS5kYXRhLmNvbGxlY3Rpb25zLnJlbW92ZShwcmV2aWV3X2NvbGwpCgogICAgICAgIHNlbGYucmVw"
"b3J0KHsnSU5GTyd9LCBmIuaZguioiOOCkueLrOeri+WMluOBl+OBvuOBl+OBnzoge3RleHRfb2JqLm5h"
"bWV9IikKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgoKIyA9PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT0KIyA0LiDjg6bjg7zjg4bjgqPjg6rjg4bjgqPjg7vjg6rjg7Pjgq/j"
"g7vliYrpmaTmqZ/og70KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K"
"Y2xhc3MgWklPTkFEX09UX09wZW5VUkwoT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gZiJ7UFJFRklY"
"X1ZBTC5sb3dlcigpfS5vcGVuX3VybCI7IGJsX2xhYmVsID0gIlVSTOOCkumWi+OBjyIKICAgIHVybDog"
"U3RyaW5nUHJvcGVydHkoZGVmYXVsdD0iIikKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOiAK"
"ICAgICAgICB3ZWJicm93c2VyLm9wZW4oc2VsZi51cmwpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQn"
"fQoKY2xhc3MgWklPTkFEX09UX1JlbW92ZUFkZG9uKE9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9IGYi"
"e1BSRUZJWF9WQUwubG93ZXIoKX0ucmVtb3ZlX2FkZG9uIjsgYmxfbGFiZWwgPSAi44Ki44OJ44Kq44Oz"
"44KS5YmK6Zmk44O76Kej6Zmk44GZ44KLIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6IAog"
"ICAgICAgIHVucmVnaXN0ZXIoKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCgojID09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIOODkeODjeODqyBVSeWumue+qQojID09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBaSU9OQURfUFRfVmll"
"d1BhbmVsKFBhbmVsKToKICAgIGJsX2xhYmVsID0gIjEuIOeUu+mdouaDheWgsSAmIOOCquODluOCuOOC"
"p+OCr+ODiOmFjee9riIKICAgIGJsX2lkbmFtZSA9ICJaSU9OQURfUFRfdmlld19wYW5lbCIKICAgIGJs"
"X3NwYWNlX3R5cGUgPSAnVklFV18zRCc7IGJsX3JlZ2lvbl90eXBlID0gJ1VJJzsgYmxfY2F0ZWdvcnkg"
"PSBBRERPTl9DQVRFR09SWTsgYmxfb3JkZXIgPSAwCiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToK"
"ICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIHN0ID0gY29udGV4dC5zY2VuZS56aW9u"
"YWRfdmlld19zZXR0aW5ncwogICAgICAgIAogICAgICAgIGNvbCA9IGxheW91dC5jb2x1bW4oYWxpZ249"
"VHJ1ZSkKICAgICAgICBjb2wuc2NhbGVfeSA9IDEuMgogICAgICAgIGNvbC5vcGVyYXRvcihaSU9OQURf"
"T1RfTW92ZVRvQ2VudGVyLmJsX2lkbmFtZSwgaWNvbj0nVklFVzNEJykKICAgICAgICAKICAgICAgICBs"
"YXlvdXQuc2VwYXJhdG9yKCkKICAgICAgICBjb2wgPSBsYXlvdXQuY29sdW1uKGFsaWduPVRydWUpCiAg"
"ICAgICAgY29sLm9wZXJhdG9yKFpJT05BRF9PVF9VcGRhdGVWaWV3SW5mby5ibF9pZG5hbWUsIGljb249"
"J0ZJTEVfUkVGUkVTSCcpCiAgICAgICAgY29sLm9wZXJhdG9yKFpJT05BRF9PVF9Db3B5Vmlld0luZm8u"
"YmxfaWRuYW1lLCBpY29uPSdDT1BZRE9XTicpCiAgICAgICAgCiAgICAgICAgYm94ID0gbGF5b3V0LmJv"
"eCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiJNb2RlOiB7c3Qudmlld19tb2RlfSIsIGljb249J0NB"
"TUVSQV9EQVRBJykKICAgICAgICBib3gubGFiZWwodGV4dD1mIkNlbnRlcjogKHtzdC5sb2NfeDouMWZ9"
"LCB7c3QubG9jX3k6LjFmfSwge3N0LmxvY196Oi4xZn0pIikKICAgICAgICBib3gubGFiZWwodGV4dD1m"
"IldpZHRoOiB7c3Qudmlld193aWR0aDouMWZ9IC8gSGVpZ2h0OiB7c3Qudmlld19oZWlnaHQ6LjFmfSIp"
"CiAgICAgICAgYm94LmxhYmVsKHRleHQ9ZiJEaXN0YW5jZToge3N0LnZpZXdfZGlzdGFuY2U6LjFmfSIp"
"CgpjbGFzcyBaSU9OQURfUFRfVHJhbnNmb3JtUGFuZWwoUGFuZWwpOgogICAgYmxfbGFiZWwgPSAiMi4g"
"44Kq44OW44K444Kn44Kv44OIIFRyYW5zZm9ybSIKICAgIGJsX2lkbmFtZSA9ICJaSU9OQURfUFRfdHJh"
"bnNmb3JtX3BhbmVsIgogICAgYmxfc3BhY2VfdHlwZSA9ICdWSUVXXzNEJzsgYmxfcmVnaW9uX3R5cGUg"
"PSAnVUknOyBibF9jYXRlZ29yeSA9IEFERE9OX0NBVEVHT1JZOyBibF9vcmRlciA9IDEKICAgIGRlZiBk"
"cmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgc3Qg"
"PSBjb250ZXh0LnNjZW5lLnppb25hZF90cmFuc19zZXR0aW5ncwogICAgICAgIAogICAgICAgIGNvbCA9"
"IGxheW91dC5jb2x1bW4oYWxpZ249VHJ1ZSkKICAgICAgICBjb2wub3BlcmF0b3IoWklPTkFEX09UX1Vw"
"ZGF0ZVRyYW5zZm9ybS5ibF9pZG5hbWUsIGljb249J0ZJTEVfUkVGUkVTSCcpCiAgICAgICAgY29sLm9w"
"ZXJhdG9yKFpJT05BRF9PVF9Db3B5VHJhbnNmb3JtSW5mby5ibF9pZG5hbWUsIGljb249J0NPUFlET1dO"
"JykKICAgICAgICAKICAgICAgICBsYXlvdXQuc2VwYXJhdG9yKCkKICAgICAgICBib3ggPSBsYXlvdXQu"
"Ym94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iTG9jYXRpb246IiwgaWNvbj0nQ09OX0xPQ0xJS0Un"
"KQogICAgICAgIGNvbCA9IGJveC5jb2x1bW4oYWxpZ249VHJ1ZSkKICAgICAgICBjb2wucHJvcChzdCwg"
"ImxvY194Iik7IGNvbC5wcm9wKHN0LCAibG9jX3kiKTsgY29sLnByb3Aoc3QsICJsb2NfeiIpCiAgICAg"
"ICAgCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IlJvdGF0"
"aW9uIChEZWdyZWVzKToiLCBpY29uPSdDT05fUk9UTElLRScpCiAgICAgICAgY29sID0gYm94LmNvbHVt"
"bihhbGlnbj1UcnVlKQogICAgICAgIGNvbC5wcm9wKHN0LCAicm90X3giKTsgY29sLnByb3Aoc3QsICJy"
"b3RfeSIpOyBjb2wucHJvcChzdCwgInJvdF96IikKICAgICAgICAKICAgICAgICBib3ggPSBsYXlvdXQu"
"Ym94KCkKICAgICAgICBib3gubGFiZWwodGV4dD0iU2NhbGU6IiwgaWNvbj0nQ09OX1NJWkVMSUtFJykK"
"ICAgICAgICBjb2wgPSBib3guY29sdW1uKGFsaWduPVRydWUpCiAgICAgICAgY29sLnByb3Aoc3QsICJz"
"Y2FsZV94Iik7IGNvbC5wcm9wKHN0LCAic2NhbGVfeSIpOyBjb2wucHJvcChzdCwgInNjYWxlX3oiKQoK"
"Y2xhc3MgWklPTkFEX1BUX0Nsb2NrUGFuZWwoUGFuZWwpOgogICAgYmxfbGFiZWwgPSAiMy4g5pmC6KiI"
"IOOCuOOCp+ODjeODrOODvOOCv+ODvCIKICAgIGJsX2lkbmFtZSA9ICJaSU9OQURfUFRfY2xvY2tfcGFu"
"ZWwiCiAgICBibF9zcGFjZV90eXBlID0gJ1ZJRVdfM0QnOyBibF9yZWdpb25fdHlwZSA9ICdVSSc7IGJs"
"X2NhdGVnb3J5ID0gQURET05fQ0FURUdPUlk7IGJsX29yZGVyID0gMgogICAgZGVmIGRyYXcoc2VsZiwg"
"Y29udGV4dCk6CiAgICAgICAgbGF5b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBzdCA9IGNvbnRleHQu"
"c2NlbmUuemlvbmFkX2Nsb2NrX3NldHRpbmdzCiAgICAgICAgCiAgICAgICAgbGF5b3V0LnByb3Aoc3Qs"
"ICJ0ZXh0X2NvbG9yIikKICAgICAgICBsYXlvdXQucHJvcChzdCwgImlzX3JlYWx0aW1lIikKICAgICAg"
"ICAKICAgICAgICBjb2wgPSBsYXlvdXQuY29sdW1uKGFsaWduPVRydWUpCiAgICAgICAgY29sLnNjYWxl"
"X3kgPSAxLjIKICAgICAgICBjb2wub3BlcmF0b3IoWklPTkFEX09UX0dlbmVyYXRlQ2xvY2suYmxfaWRu"
"YW1lLCBpY29uPSdUSU1FJykKICAgICAgICBjb2wub3BlcmF0b3IoWklPTkFEX09UX0ZpbmFsaXplQ2xv"
"Y2suYmxfaWRuYW1lLCBpY29uPSdVTkxJTktFRCcpCgpjbGFzcyBaSU9OQURfUFRfTGlua3NQYW5lbChQ"
"YW5lbCk6CiAgICBibF9sYWJlbCA9ICI0LiDjg6rjg7Pjgq/pm4YiCiAgICBibF9pZG5hbWUgPSAiWklP"
"TkFEX1BUX2xpbmtzX3BhbmVsIgogICAgYmxfc3BhY2VfdHlwZSA9ICdWSUVXXzNEJzsgYmxfcmVnaW9u"
"X3R5cGUgPSAnVUknOyBibF9jYXRlZ29yeSA9IEFERE9OX0NBVEVHT1JZOyBibF9vcmRlciA9IDMKICAg"
"IGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAg"
"ICAgbGlua3MgPSBbKExJTktfTkFNRV8xLCBMSU5LX1VSTF8xKSwgKExJTktfTkFNRV8yLCBMSU5LX1VS"
"TF8yKSwgKExJTktfTkFNRV8zLCBMSU5LX1VSTF8zKSwgKExJTktfTkFNRV80LCBMSU5LX1VSTF80KSwg"
"KExJTktfTkFNRV81LCBMSU5LX1VSTF81KV0KICAgICAgICBmb3IgbmFtZSwgdXJsIGluIGxpbmtzOgog"
"ICAgICAgICAgICBpZiBuYW1lIGFuZCB1cmw6CiAgICAgICAgICAgICAgICBvcCA9IGxheW91dC5vcGVy"
"YXRvcihaSU9OQURfT1RfT3BlblVSTC5ibF9pZG5hbWUsIHRleHQ9bmFtZSwgaWNvbj0nVVJMJykKICAg"
"ICAgICAgICAgICAgIG9wLnVybCA9IHVybAoKY2xhc3MgWklPTkFEX1BUX1JlbW92ZVBhbmVsKFBhbmVs"
"KToKICAgIGJsX2xhYmVsID0gIjUuIOOCouODieOCquODs+WJiumZpOWun+ihjCIKICAgIGJsX2lkbmFt"
"ZSA9ICJaSU9OQURfUFRfcmVtb3ZlX3BhbmVsIgogICAgYmxfc3BhY2VfdHlwZSA9ICdWSUVXXzNEJzsg"
"YmxfcmVnaW9uX3R5cGUgPSAnVUknOyBibF9jYXRlZ29yeSA9IEFERE9OX0NBVEVHT1JZOyBibF9vcmRl"
"ciA9IDQKICAgIGJsX29wdGlvbnMgPSB7J0RFRkFVTFRfQ0xPU0VEJ30KICAgIGRlZiBkcmF3KHNlbGYs"
"IGNvbnRleHQpOiAKICAgICAgICBzZWxmLmxheW91dC5sYWJlbCh0ZXh0PSLigLvmirzjgZnjgajjgqLj"
"g4njgqrjg7PjgYzop6PpmaTjgZXjgozjgb7jgZkiLCBpY29uPSdFUlJPUicpCiAgICAgICAgc2VsZi5s"
"YXlvdXQub3BlcmF0b3IoWklPTkFEX09UX1JlbW92ZUFkZG9uLmJsX2lkbmFtZSwgaWNvbj0nQ0FOQ0VM"
"JykKCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIOeZu+mMsuOD"
"u+ino+mZpOWHpueQhgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpj"
"bGFzc2VzID0gKAogICAgWklPTkFEX1ZpZXdTZXR0aW5ncywgCiAgICBaSU9OQURfVHJhbnNmb3JtU2V0"
"dGluZ3MsCiAgICBaSU9OQURfQ2xvY2tTZXR0aW5ncywKICAgIFpJT05BRF9PVF9Nb3ZlVG9DZW50ZXIs"
"IAogICAgWklPTkFEX09UX1VwZGF0ZVZpZXdJbmZvLCAKICAgIFpJT05BRF9PVF9Db3B5Vmlld0luZm8s"
"CiAgICBaSU9OQURfT1RfVXBkYXRlVHJhbnNmb3JtLCAKICAgIFpJT05BRF9PVF9Db3B5VHJhbnNmb3Jt"
"SW5mbywgCiAgICBaSU9OQURfT1RfR2VuZXJhdGVDbG9jaywKICAgIFpJT05BRF9PVF9GaW5hbGl6ZUNs"
"b2NrLAogICAgWklPTkFEX09UX09wZW5VUkwsIAogICAgWklPTkFEX09UX1JlbW92ZUFkZG9uLAogICAg"
"WklPTkFEX1BUX1ZpZXdQYW5lbCwgCiAgICBaSU9OQURfUFRfVHJhbnNmb3JtUGFuZWwsIAogICAgWklP"
"TkFEX1BUX0Nsb2NrUGFuZWwsCiAgICBaSU9OQURfUFRfTGlua3NQYW5lbCwgCiAgICBaSU9OQURfUFRf"
"UmVtb3ZlUGFuZWwsCikKCmRlZiByZWdpc3RlcigpOgogICAgZm9yIGNscyBpbiBjbGFzc2VzOiAKICAg"
"ICAgICBicHkudXRpbHMucmVnaXN0ZXJfY2xhc3MoY2xzKQogICAgYnB5LnR5cGVzLlNjZW5lLnppb25h"
"ZF92aWV3X3NldHRpbmdzID0gUG9pbnRlclByb3BlcnR5KHR5cGU9WklPTkFEX1ZpZXdTZXR0aW5ncykK"
"ICAgIGJweS50eXBlcy5TY2VuZS56aW9uYWRfdHJhbnNfc2V0dGluZ3MgPSBQb2ludGVyUHJvcGVydHko"
"dHlwZT1aSU9OQURfVHJhbnNmb3JtU2V0dGluZ3MpCiAgICBicHkudHlwZXMuU2NlbmUuemlvbmFkX2Ns"
"b2NrX3NldHRpbmdzID0gUG9pbnRlclByb3BlcnR5KHR5cGU9WklPTkFEX0Nsb2NrU2V0dGluZ3MpCiAg"
"ICAKICAgICMg44K/44Kk44Oe44O844OP44Oz44OJ44Op44Gu55m76YyyICjjgqLjg4njgqrjg7Potbfl"
"i5XkuK3jgIEx56eS5q+O44Gr5pu05paw5Yem55CG44KS5Zue44GZKQogICAgaWYgbm90IGJweS5hcHAu"
"dGltZXJzLmlzX3JlZ2lzdGVyZWQodXBkYXRlX3JlYWx0aW1lX2Nsb2Nrcyk6CiAgICAgICAgYnB5LmFw"
"cC50aW1lcnMucmVnaXN0ZXIodXBkYXRlX3JlYWx0aW1lX2Nsb2NrcykKCmRlZiB1bnJlZ2lzdGVyKCk6"
"CiAgICBpZiBoYXNhdHRyKGJweS50eXBlcy5TY2VuZSwgJ3ppb25hZF92aWV3X3NldHRpbmdzJyk6IGRl"
"bCBicHkudHlwZXMuU2NlbmUuemlvbmFkX3ZpZXdfc2V0dGluZ3MKICAgIGlmIGhhc2F0dHIoYnB5LnR5"
"cGVzLlNjZW5lLCAnemlvbmFkX3RyYW5zX3NldHRpbmdzJyk6IGRlbCBicHkudHlwZXMuU2NlbmUuemlv"
"bmFkX3RyYW5zX3NldHRpbmdzCiAgICBpZiBoYXNhdHRyKGJweS50eXBlcy5TY2VuZSwgJ3ppb25hZF9j"
"bG9ja19zZXR0aW5ncycpOiBkZWwgYnB5LnR5cGVzLlNjZW5lLnppb25hZF9jbG9ja19zZXR0aW5ncwog"
"ICAgCiAgICAjIOOCv+OCpOODnuODvOODj+ODs+ODieODqeOBruino+mZpAogICAgaWYgYnB5LmFwcC50"
"aW1lcnMuaXNfcmVnaXN0ZXJlZCh1cGRhdGVfcmVhbHRpbWVfY2xvY2tzKToKICAgICAgICBicHkuYXBw"
"LnRpbWVycy51bnJlZ2lzdGVyKHVwZGF0ZV9yZWFsdGltZV9jbG9ja3MpCiAgICAgICAgCiAgICBmb3Ig"
"Y2xzIGluIHJldmVyc2VkKGNsYXNzZXMpOgogICAgICAgIHRyeTogYnB5LnV0aWxzLnVucmVnaXN0ZXJf"
"Y2xhc3MoY2xzKQogICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6IHBhc3MKCmlmIF9fbmFtZV9fID09"
"ICJfX21haW5fXyI6IAogICAgcmVnaXN0ZXIoKQ=="
)
},
{
"name": "選択オブジェクト移動_20260713_002",
"code_b64": (
"IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K"
"IyBibF9pbmZvIOOCkuWFiOmgreiomOi/sCDjgqLjg4njgqrjg7PjgafjgYLjgovjgpLnpLrjgZkKIyA9"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KYmxf"
"aW5mbyA9IHsKICAgICJuYW1lIjogInppb25hZF/jgqrjg5bjgrjjgqfjgq/jg4jphY3nva7jg4Tjg7zj"
"g6siLAogICAgImF1dGhvciI6ICJBSSBBc3Npc3RhbnQiLAogICAgInZlcnNpb24iOiAoNCwgMSwgMCks"
"CiAgICAiYmxlbmRlciI6ICg1LCAwLCAwKSwgICMgQmxlbmRlciA1LjAg5Lul6ZmN5bCC55SoCiAgICAi"
"bG9jYXRpb24iOiAiVmlldzNEID4gU2lkZWJhciA+IHppb25hZF/phY3nva4iLAogICAgImRlc2NyaXB0"
"aW9uIjogIlZpZXdwb3J0IEluZm8gYW5kIFJlYWwtdGltZSBUcmFuc2Zvcm0gRWRpdG9yLiIsCiAgICAi"
"Y2F0ZWdvcnkiOiAiM0QgVmlldyIsCn0KCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09CiMgaW1wb3J0IOOBquOBqeOBruWumue+qQojID09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQppbXBvcnQgYnB5"
"CmltcG9ydCBtYXRoCmltcG9ydCB3ZWJicm93c2VyCmZyb20gYnB5LnR5cGVzIGltcG9ydCBPcGVyYXRv"
"ciwgUGFuZWwsIFByb3BlcnR5R3JvdXAKZnJvbSBicHkucHJvcHMgaW1wb3J0IFN0cmluZ1Byb3BlcnR5"
"LCBGbG9hdFByb3BlcnR5LCBQb2ludGVyUHJvcGVydHksIEJvb2xQcm9wZXJ0eQoKIyDjgJDkvZzmiJDm"
"l6XjgJEgMjAyNuW5tDfmnIgxM+aXpSAxOTowMAoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyDjgJDliJ3mnJ/oqK3lrprjg7vlrprmlbDlrprn"
"vqnjgJEgKOOCv+OCpOODiOODq+ODu+aOpemgrei+nuOBquOBqSkKIyA9PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQURET05fVElUTEUgPSAiemlvbmFk"
"X+mFjee9riIKUFJFRklYX1ZBTCA9ICJaSU9OQURfVFJBTlNGT1JNX1RPT0xTIgpBRERPTl9DQVRFR09S"
"WSA9IEFERE9OX1RJVExFCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PQojIOOAkOWIneacn+ioreWumuODu+ODquODs+OCr+Wumue+qeOAkSAKIyDj"
"gZPjgZPjgafjg6rjg7Pjgq/jga7jgIzjgr/jgqTjg4jjg6vjgI3jgajjgIxVUkzjgI3jgpIx6KGM44Ga"
"44Gk5pu444GN5o+b44GI44O76L+95Yqg44GM44Gn44GN44G+44GZ44CCCiMgPT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkxJTktfTkFNRV8xID0gIuWf"
"uuacrOOCouODieOCquODs+ioreWumiAyMDI2MDcxMe+9giIKTElOS19VUkxfMSA9ICJodHRwczovL2Fw"
"cC5ub3Rpb24uY29tL3AvMjAyNjA3MTEtMzlhZjVkYWNhZjQzODAyNzgxMWRjZDg3N2RiN2M2MzAiCkxJ"
"TktfTkFNRV8yID0gInBvc2ZpZSIKTElOS19VUkxfMiA9ICJodHRwczovL3Bvc2ZpZS5jb20vQHRpbWVr"
"YWd1cmEvdC96aW9uYWQyMDIyP3NvcnQ9MCIKTElOS19OQU1FXzMgPSAiemlvbmFkY2hhdCIKTElOS19V"
"UkxfMyA9ICJodHRwczovL3guY29tL3ppb25hZGNoYXQiCkxJTktfTkFNRV80ID0gImJsZW5kZXIg44Kz"
"44Oz44OG44OKIDIwMjYwNzEzIgpMSU5LX1VSTF80ID0gImh0dHBzOi8vbm90ZS5jb20vemlvbmFkbWls"
"bGlvbi9uL245YTQ3ZDg4ZmU3YjQiCkxJTktfTkFNRV81ID0gIiIKTElOS19VUkxfNSA9ICIiCgojIOax"
"jueUqOWIneacn+WApApERUZBVUxUX1ZBTCA9IDAuMApERUZBVUxUX1NDQUxFX1ZBTCA9IDEuMAoKCiMg"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgMS4g55S76Z2i5oOF5aCx"
"77yG6YG45oqe44Kq44OW44K444Kn44Kv44OI5Lit5aSu56e75YuVCiMgPT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNzIFpJT05BRF9WaWV3U2V0dGluZ3MoUHJvcGVydHlH"
"cm91cCk6CiAgICB2aWV3X21vZGU6IFN0cmluZ1Byb3BlcnR5KG5hbWU9IlZpZXcgTW9kZSIsIGRlZmF1"
"bHQ9IlVua25vd24iKQogICAgbG9jX3g6IEZsb2F0UHJvcGVydHkobmFtZT0iQ2VudGVyIFgiKQogICAg"
"bG9jX3k6IEZsb2F0UHJvcGVydHkobmFtZT0iQ2VudGVyIFkiKQogICAgbG9jX3o6IEZsb2F0UHJvcGVy"
"dHkobmFtZT0iQ2VudGVyIFoiKQogICAgdmlld193aWR0aDogRmxvYXRQcm9wZXJ0eShuYW1lPSJXaWR0"
"aCIpCiAgICB2aWV3X2hlaWdodDogRmxvYXRQcm9wZXJ0eShuYW1lPSJIZWlnaHQiKQogICAgdmlld19k"
"aXN0YW5jZTogRmxvYXRQcm9wZXJ0eShuYW1lPSJEaXN0YW5jZSIpCgpjbGFzcyBaSU9OQURfT1RfTW92"
"ZVRvQ2VudGVyKE9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9IGYie1BSRUZJWF9WQUwubG93ZXIoKX0u"
"bW92ZV90b19jZW50ZXIiCiAgICBibF9sYWJlbCA9ICLpgbjmip7jgqrjg5bjgrjjgqfjgq/jg4jjgpLn"
"lLvpnaLkuK3lpK7jgbjnp7vli5UiCiAgICBibF9kZXNjcmlwdGlvbiA9ICLpgbjmip7jgZfjgabjgYTj"
"govjgqrjg5bjgrjjgqfjgq/jg4jjgpLnj77lnKjjga7jg5Pjg6Xjg7zjga7ms6joppbngrko5Lit5aSu"
"KeOBq+enu+WLleOBl+OBvuOBmSIKICAgIGJsX29wdGlvbnMgPSB7J1JFR0lTVEVSJywgJ1VORE8nfQog"
"ICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgb2JqID0gY29udGV4dC5hY3RpdmVf"
"b2JqZWN0CiAgICAgICAgaWYgbm90IG9iajogCiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsnV0FSTklO"
"Ryd9LCAi44Kq44OW44K444Kn44Kv44OI44KS6YG45oqe44GX44Gm44GP44Gg44GV44GE44CCIikKICAg"
"ICAgICAgICAgcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICBydjNkID0gY29udGV4dC5zcGFjZV9k"
"YXRhLnJlZ2lvbl8zZAogICAgICAgIGlmIHJ2M2Q6IAogICAgICAgICAgICBvYmoubG9jYXRpb24gPSBy"
"djNkLnZpZXdfbG9jYXRpb24KICAgICAgICAgICAgc2VsZi5yZXBvcnQoeydJTkZPJ30sICLnlLvpnaLk"
"uK3lpK7jgbjnp7vli5XjgZfjgb7jgZfjgZ/jgIIiKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30K"
"CmNsYXNzIFpJT05BRF9PVF9VcGRhdGVWaWV3SW5mbyhPcGVyYXRvcik6CiAgICBibF9pZG5hbWUgPSBm"
"IntQUkVGSVhfVkFMLmxvd2VyKCl9LnVwZGF0ZV92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICLnlLvp"
"naLmg4XloLHjgpLlj5blvpfjg7vmm7TmlrAiCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToK"
"ICAgICAgICBydjNkID0gY29udGV4dC5zcGFjZV9kYXRhLnJlZ2lvbl8zZAogICAgICAgIHJlZ2lvbiA9"
"IGNvbnRleHQucmVnaW9uCiAgICAgICAgc3QgPSBjb250ZXh0LnNjZW5lLnppb25hZF92aWV3X3NldHRp"
"bmdzCiAgICAgICAgaWYgbm90IHJ2M2Qgb3Igbm90IHJlZ2lvbjogcmV0dXJuIHsnQ0FOQ0VMTEVEJ30K"
"ICAgICAgICBpc19vcnRobyA9IChydjNkLnZpZXdfcGVyc3BlY3RpdmUgPT0gJ09SVEhPJykKICAgICAg"
"ICBzdC52aWV3X21vZGUgPSAi5bmz6KGM5oqV5b2xIChPcnRobykiIGlmIGlzX29ydGhvIGVsc2UgIumA"
"j+imluaKleW9sSAoUGVyc3ApIgogICAgICAgIHN0LmxvY194ID0gcm91bmQocnYzZC52aWV3X2xvY2F0"
"aW9uLngsIDEpCiAgICAgICAgc3QubG9jX3kgPSByb3VuZChydjNkLnZpZXdfbG9jYXRpb24ueSwgMSkK"
"ICAgICAgICBzdC5sb2NfeiA9IHJvdW5kKHJ2M2Qudmlld19sb2NhdGlvbi56LCAxKQogICAgICAgIHN0"
"LnZpZXdfZGlzdGFuY2UgPSByb3VuZChydjNkLnZpZXdfZGlzdGFuY2UsIDEpCiAgICAgICAgd19weCwg"
"aF9weCA9IHJlZ2lvbi53aWR0aCwgcmVnaW9uLmhlaWdodAogICAgICAgIGlmIGlzX29ydGhvOgogICAg"
"ICAgICAgICBoXzNkID0gcnYzZC52aWV3X2Rpc3RhbmNlCiAgICAgICAgICAgIHdfM2QgPSBydjNkLnZp"
"ZXdfZGlzdGFuY2UgKiAod19weCAvIGhfcHgpIGlmIGhfcHggPiAwIGVsc2UgcnYzZC52aWV3X2Rpc3Rh"
"bmNlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbGVucyA9IGNvbnRleHQuc3BhY2VfZGF0YS5sZW5z"
"CiAgICAgICAgICAgIGZvdiA9IDIgKiBtYXRoLmF0YW4oMzIuMCAvICgyICogbGVucykpCiAgICAgICAg"
"ICAgIGhfM2QgPSAyICogcnYzZC52aWV3X2Rpc3RhbmNlICogbWF0aC50YW4oZm92IC8gMikKICAgICAg"
"ICAgICAgd18zZCA9IGhfM2QgKiAod19weCAvIGhfcHgpIGlmIGhfcHggPiAwIGVsc2UgaF8zZAogICAg"
"ICAgIHN0LnZpZXdfd2lkdGggPSByb3VuZCh3XzNkLCAxKQogICAgICAgIHN0LnZpZXdfaGVpZ2h0ID0g"
"cm91bmQoaF8zZCwgMSkKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFzcyBaSU9OQURfT1Rf"
"Q29weVZpZXdJbmZvKE9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9IGYie1BSRUZJWF9WQUwubG93ZXIo"
"KX0uY29weV92aWV3X2luZm8iCiAgICBibF9sYWJlbCA9ICLnlLvpnaLmg4XloLHjgpLjgrPjg5Tjg7wg"
"KDHooYzjgZrjgaQpIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgc3QgPSBj"
"b250ZXh0LnNjZW5lLnppb25hZF92aWV3X3NldHRpbmdzCiAgICAgICAgdGV4dCA9IChmIk1vZGU6IHtz"
"dC52aWV3X21vZGV9XG5DZW50ZXIgWDoge3N0LmxvY194Oi4xZn1cbkNlbnRlciBZOiB7c3QubG9jX3k6"
"LjFmfVxuIgogICAgICAgICAgICAgICAgZiJDZW50ZXIgWjoge3N0LmxvY196Oi4xZn1cbldpZHRoOiB7"
"c3Qudmlld193aWR0aDouMWZ9XG5IZWlnaHQ6IHtzdC52aWV3X2hlaWdodDouMWZ9XG4iCiAgICAgICAg"
"ICAgICAgICBmIkRpc3RhbmNlOiB7c3Qudmlld19kaXN0YW5jZTouMWZ9IikKICAgICAgICBjb250ZXh0"
"LndpbmRvd19tYW5hZ2VyLmNsaXBib2FyZCA9IHRleHQKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8n"
"fSwgIueUu+mdouaDheWgseOCkuOCr+ODquODg+ODl+ODnOODvOODieOBq+OCs+ODlOODvOOBl+OBvuOB"
"l+OBn+OAgiIpCiAgICAgICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKCiMgPT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09CiMgMi4gVHJhbnNmb3JtIENvcGllciAmIEVkaXRvciAo44Oq"
"44Ki44Or44K/44Kk44Og5Y+N5pigKQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PQpkZWYgdXBkYXRlX3RyYW5zZm9ybShzZWxmLCBjb250ZXh0KToKICAgIGlmIHNlbGYuaXNf"
"ZmV0Y2hpbmc6IHJldHVybgogICAgb2JqID0gY29udGV4dC5hY3RpdmVfb2JqZWN0CiAgICBpZiBvYmo6"
"CiAgICAgICAgIyDjgrnjg6njgqTjg4Djg7zjgoTmlbDlgKTlhaXlipvjga7lpInmm7TjgpLljbPluqfj"
"gavjgqrjg5bjgrjjgqfjgq/jg4jjgavlj43mmKAKICAgICAgICBvYmoubG9jYXRpb24ueCA9IHNlbGYu"
"bG9jX3gKICAgICAgICBvYmoubG9jYXRpb24ueSA9IHNlbGYubG9jX3kKICAgICAgICBvYmoubG9jYXRp"
"b24ueiA9IHNlbGYubG9jX3oKICAgICAgICAjIOWbnui7ouOBr1VJKOW6puaVsOazlSnjgYvjgonlhoXp"
"g6go44Op44K444Ki44OzKeOBq+WkieaPmwogICAgICAgIG9iai5yb3RhdGlvbl9ldWxlci54ID0gbWF0"
"aC5yYWRpYW5zKHNlbGYucm90X3gpCiAgICAgICAgb2JqLnJvdGF0aW9uX2V1bGVyLnkgPSBtYXRoLnJh"
"ZGlhbnMoc2VsZi5yb3RfeSkKICAgICAgICBvYmoucm90YXRpb25fZXVsZXIueiA9IG1hdGgucmFkaWFu"
"cyhzZWxmLnJvdF96KQogICAgICAgIG9iai5zY2FsZS54ID0gc2VsZi5zY2FsZV94CiAgICAgICAgb2Jq"
"LnNjYWxlLnkgPSBzZWxmLnNjYWxlX3kKICAgICAgICBvYmouc2NhbGUueiA9IHNlbGYuc2NhbGVfegoK"
"Y2xhc3MgWklPTkFEX1RyYW5zZm9ybVNldHRpbmdzKFByb3BlcnR5R3JvdXApOgogICAgaXNfZmV0Y2hp"
"bmc6IEJvb2xQcm9wZXJ0eShkZWZhdWx0PUZhbHNlKQogICAgbG9jX3g6IEZsb2F0UHJvcGVydHkobmFt"
"ZT0iWCIsIGRlZmF1bHQ9REVGQVVMVF9WQUwsIHVwZGF0ZT11cGRhdGVfdHJhbnNmb3JtKQogICAgbG9j"
"X3k6IEZsb2F0UHJvcGVydHkobmFtZT0iWSIsIGRlZmF1bHQ9REVGQVVMVF9WQUwsIHVwZGF0ZT11cGRh"
"dGVfdHJhbnNmb3JtKQogICAgbG9jX3o6IEZsb2F0UHJvcGVydHkobmFtZT0iWiIsIGRlZmF1bHQ9REVG"
"QVVMVF9WQUwsIHVwZGF0ZT11cGRhdGVfdHJhbnNmb3JtKQogICAgcm90X3g6IEZsb2F0UHJvcGVydHko"
"bmFtZT0iWCAoZGVnKSIsIGRlZmF1bHQ9REVGQVVMVF9WQUwsIHVwZGF0ZT11cGRhdGVfdHJhbnNmb3Jt"
"KQogICAgcm90X3k6IEZsb2F0UHJvcGVydHkobmFtZT0iWSAoZGVnKSIsIGRlZmF1bHQ9REVGQVVMVF9W"
"QUwsIHVwZGF0ZT11cGRhdGVfdHJhbnNmb3JtKQogICAgcm90X3o6IEZsb2F0UHJvcGVydHkobmFtZT0i"
"WiAoZGVnKSIsIGRlZmF1bHQ9REVGQVVMVF9WQUwsIHVwZGF0ZT11cGRhdGVfdHJhbnNmb3JtKQogICAg"
"c2NhbGVfeDogRmxvYXRQcm9wZXJ0eShuYW1lPSJYIiwgZGVmYXVsdD1ERUZBVUxUX1NDQUxFX1ZBTCwg"
"dXBkYXRlPXVwZGF0ZV90cmFuc2Zvcm0pCiAgICBzY2FsZV95OiBGbG9hdFByb3BlcnR5KG5hbWU9Ilki"
"LCBkZWZhdWx0PURFRkFVTFRfU0NBTEVfVkFMLCB1cGRhdGU9dXBkYXRlX3RyYW5zZm9ybSkKICAgIHNj"
"YWxlX3o6IEZsb2F0UHJvcGVydHkobmFtZT0iWiIsIGRlZmF1bHQ9REVGQVVMVF9TQ0FMRV9WQUwsIHVw"
"ZGF0ZT11cGRhdGVfdHJhbnNmb3JtKQoKY2xhc3MgWklPTkFEX09UX1VwZGF0ZVRyYW5zZm9ybShPcGVy"
"YXRvcik6CiAgICBibF9pZG5hbWUgPSBmIntQUkVGSVhfVkFMLmxvd2VyKCl9LnVwZGF0ZV90cmFuc2Zv"
"cm0iCiAgICBibF9sYWJlbCA9ICJVSeOBq+ihqOekuiAvIOabtOaWsCIKICAgIGJsX2Rlc2NyaXB0aW9u"
"ID0gIumBuOaKnuOBl+OBpuOBhOOCi+OCquODluOCuOOCp+OCr+ODiOOBruePvuWcqOOBruS9jee9ruOD"
"u+Wbnui7ouODu+OCueOCseODvOODq+OCklVJ44Gr5Y+W5b6X44GX44G+44GZIgogICAgZGVmIGV4ZWN1"
"dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgc3QgPSBjb250ZXh0LnNjZW5lLnppb25hZF90cmFuc19z"
"ZXR0aW5ncwogICAgICAgIG9iaiA9IGNvbnRleHQuYWN0aXZlX29iamVjdAogICAgICAgIGlmIG5vdCBv"
"Ymo6IAogICAgICAgICAgICBzZWxmLnJlcG9ydCh7J1dBUk5JTkcnfSwgIuOCquODluOCuOOCp+OCr+OD"
"iOOCkumBuOaKnuOBl+OBpuOBj+OBoOOBleOBhOOAgiIpCiAgICAgICAgICAgIHJldHVybiB7J0NBTkNF"
"TExFRCd9CiAgICAgICAgCiAgICAgICAgIyBVSeOBq+WPjeaYoOOBleOBm+OCi+mWk+OBr+ODq+ODvOOD"
"l+abtOaWsOOCkuS4gOaZguWBnOatogogICAgICAgIHN0LmlzX2ZldGNoaW5nID0gVHJ1ZQogICAgICAg"
"IHN0LmxvY194ID0gb2JqLmxvY2F0aW9uLngKICAgICAgICBzdC5sb2NfeSA9IG9iai5sb2NhdGlvbi55"
"CiAgICAgICAgc3QubG9jX3ogPSBvYmoubG9jYXRpb24uegogICAgICAgIHN0LnJvdF94ID0gbWF0aC5k"
"ZWdyZWVzKG9iai5yb3RhdGlvbl9ldWxlci54KQogICAgICAgIHN0LnJvdF95ID0gbWF0aC5kZWdyZWVz"
"KG9iai5yb3RhdGlvbl9ldWxlci55KQogICAgICAgIHN0LnJvdF96ID0gbWF0aC5kZWdyZWVzKG9iai5y"
"b3RhdGlvbl9ldWxlci56KQogICAgICAgIHN0LnNjYWxlX3ggPSBvYmouc2NhbGUueAogICAgICAgIHN0"
"LnNjYWxlX3kgPSBvYmouc2NhbGUueQogICAgICAgIHN0LnNjYWxlX3ogPSBvYmouc2NhbGUuegogICAg"
"ICAgIHN0LmlzX2ZldGNoaW5nID0gRmFsc2UKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgpjbGFz"
"cyBaSU9OQURfT1RfQ29weVRyYW5zZm9ybUluZm8oT3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gZiJ7"
"UFJFRklYX1ZBTC5sb3dlcigpfS5jb3B5X3RyYW5zZm9ybSIKICAgIGJsX2xhYmVsID0gIuOBmeOBueOB"
"puOBruaDheWgseOCkuOCs+ODlOODvCAoMeihjOOBmuOBpCkiCiAgICBibF9kZXNjcmlwdGlvbiA9ICJV"
"SeOBq+ihqOekuuOBleOCjOOBpuOBhOOCi+ODiOODqeODs+OCueODleOCqeODvOODoOOBruaVsOWApOOC"
"kuOCr+ODquODg+ODl+ODnOODvOODieOBq+OCs+ODlOODvOOBl+OBvuOBmSIKICAgIGRlZiBleGVjdXRl"
"KHNlbGYsIGNvbnRleHQpOgogICAgICAgIHN0ID0gY29udGV4dC5zY2VuZS56aW9uYWRfdHJhbnNfc2V0"
"dGluZ3MKICAgICAgICAjIOWwj+aVsOeCuTHmoYHjgavmj4PjgYjjgabjg4bjgq3jgrnjg4jljJYKICAg"
"ICAgICB0ZXh0ID0gKGYiTG9jIFg6IHtzdC5sb2NfeDouMWZ9XG5Mb2MgWToge3N0LmxvY195Oi4xZn1c"
"bkxvYyBaOiB7c3QubG9jX3o6LjFmfVxuIgogICAgICAgICAgICAgICAgZiJSb3QgWDoge3N0LnJvdF94"
"Oi4xZn1cblJvdCBZOiB7c3Qucm90X3k6LjFmfVxuUm90IFo6IHtzdC5yb3RfejouMWZ9XG4iCiAgICAg"
"ICAgICAgICAgICBmIlNjYWxlIFg6IHtzdC5zY2FsZV94Oi4xZn1cblNjYWxlIFk6IHtzdC5zY2FsZV95"
"Oi4xZn1cblNjYWxlIFo6IHtzdC5zY2FsZV96Oi4xZn0iKQogICAgICAgIGNvbnRleHQud2luZG93X21h"
"bmFnZXIuY2xpcGJvYXJkID0gdGV4dAogICAgICAgIHNlbGYucmVwb3J0KHsnSU5GTyd9LCAi44OI44Op"
"44Oz44K544OV44Kp44O844Og5oOF5aCx44KS44Kv44Oq44OD44OX44Oc44O844OJ44Gr44Kz44OU44O8"
"44GX44G+44GX44Gf44CCIikKICAgICAgICByZXR1cm4geydGSU5JU0hFRCd9CgoKIyA9PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyAzLiDjg6bjg7zjg4bjgqPjg6rjg4bjgqPj"
"g7vjg6rjg7Pjgq/jg7vliYrpmaTmqZ/og70KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT0KY2xhc3MgWklPTkFEX09UX09wZW5VUkwoT3BlcmF0b3IpOgogICAgYmxfaWRuYW1l"
"ID0gZiJ7UFJFRklYX1ZBTC5sb3dlcigpfS5vcGVuX3VybCI7IGJsX2xhYmVsID0gIlVSTOOCkumWi+OB"
"jyIKICAgIHVybDogU3RyaW5nUHJvcGVydHkoZGVmYXVsdD0iIikKICAgIGRlZiBleGVjdXRlKHNlbGYs"
"IGNvbnRleHQpOiAKICAgICAgICB3ZWJicm93c2VyLm9wZW4oc2VsZi51cmwpCiAgICAgICAgcmV0dXJu"
"IHsnRklOSVNIRUQnfQoKY2xhc3MgWklPTkFEX09UX1JlbW92ZUFkZG9uKE9wZXJhdG9yKToKICAgIGJs"
"X2lkbmFtZSA9IGYie1BSRUZJWF9WQUwubG93ZXIoKX0ucmVtb3ZlX2FkZG9uIjsgYmxfbGFiZWwgPSAi"
"44Ki44OJ44Kq44Oz44KS5YmK6Zmk44O76Kej6Zmk44GZ44KLIgogICAgZGVmIGV4ZWN1dGUoc2VsZiwg"
"Y29udGV4dCk6IAogICAgICAgIHVucmVnaXN0ZXIoKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30K"
"CgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIOODkeODjeODqyBV"
"SeWumue+qQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBa"
"SU9OQURfUFRfVmlld1BhbmVsKFBhbmVsKToKICAgIGJsX2xhYmVsID0gIjEuIOeUu+mdouaDheWgsSAm"
"IOOCquODluOCuOOCp+OCr+ODiOmFjee9riIKICAgIGJsX2lkbmFtZSA9ICJaSU9OQURfUFRfdmlld19w"
"YW5lbCIKICAgIGJsX3NwYWNlX3R5cGUgPSAnVklFV18zRCc7IGJsX3JlZ2lvbl90eXBlID0gJ1VJJzsg"
"YmxfY2F0ZWdvcnkgPSBBRERPTl9DQVRFR09SWTsgYmxfb3JkZXIgPSAwCiAgICAKICAgIGRlZiBkcmF3"
"KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgc3QgPSBj"
"b250ZXh0LnNjZW5lLnppb25hZF92aWV3X3NldHRpbmdzCiAgICAgICAgCiAgICAgICAgY29sID0gbGF5"
"b3V0LmNvbHVtbihhbGlnbj1UcnVlKQogICAgICAgIGNvbC5zY2FsZV95ID0gMS4yCiAgICAgICAgY29s"
"Lm9wZXJhdG9yKFpJT05BRF9PVF9Nb3ZlVG9DZW50ZXIuYmxfaWRuYW1lLCBpY29uPSdWSUVXM0QnKQog"
"ICAgICAgIAogICAgICAgIGxheW91dC5zZXBhcmF0b3IoKQogICAgICAgIGNvbCA9IGxheW91dC5jb2x1"
"bW4oYWxpZ249VHJ1ZSkKICAgICAgICBjb2wub3BlcmF0b3IoWklPTkFEX09UX1VwZGF0ZVZpZXdJbmZv"
"LmJsX2lkbmFtZSwgaWNvbj0nRklMRV9SRUZSRVNIJykKICAgICAgICBjb2wub3BlcmF0b3IoWklPTkFE"
"X09UX0NvcHlWaWV3SW5mby5ibF9pZG5hbWUsIGljb249J0NPUFlET1dOJykKICAgICAgICAKICAgICAg"
"ICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gubGFiZWwodGV4dD1mIk1vZGU6IHtzdC52aWV3"
"X21vZGV9IiwgaWNvbj0nQ0FNRVJBX0RBVEEnKQogICAgICAgIGJveC5sYWJlbCh0ZXh0PWYiQ2VudGVy"
"OiAoe3N0LmxvY194Oi4xZn0sIHtzdC5sb2NfeTouMWZ9LCB7c3QubG9jX3o6LjFmfSkiKQogICAgICAg"
"IGJveC5sYWJlbCh0ZXh0PWYiV2lkdGg6IHtzdC52aWV3X3dpZHRoOi4xZn0gLyBIZWlnaHQ6IHtzdC52"
"aWV3X2hlaWdodDouMWZ9IikKICAgICAgICBib3gubGFiZWwodGV4dD1mIkRpc3RhbmNlOiB7c3Qudmll"
"d19kaXN0YW5jZTouMWZ9IikKCmNsYXNzIFpJT05BRF9QVF9UcmFuc2Zvcm1QYW5lbChQYW5lbCk6CiAg"
"ICBibF9sYWJlbCA9ICIyLiDjgqrjg5bjgrjjgqfjgq/jg4ggVHJhbnNmb3JtIgogICAgYmxfaWRuYW1l"
"ID0gIlpJT05BRF9QVF90cmFuc2Zvcm1fcGFuZWwiCiAgICBibF9zcGFjZV90eXBlID0gJ1ZJRVdfM0Qn"
"OyBibF9yZWdpb25fdHlwZSA9ICdVSSc7IGJsX2NhdGVnb3J5ID0gQURET05fQ0FURUdPUlk7IGJsX29y"
"ZGVyID0gMQogICAgCiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBz"
"ZWxmLmxheW91dAogICAgICAgIHN0ID0gY29udGV4dC5zY2VuZS56aW9uYWRfdHJhbnNfc2V0dGluZ3MK"
"ICAgICAgICAKICAgICAgICBjb2wgPSBsYXlvdXQuY29sdW1uKGFsaWduPVRydWUpCiAgICAgICAgY29s"
"Lm9wZXJhdG9yKFpJT05BRF9PVF9VcGRhdGVUcmFuc2Zvcm0uYmxfaWRuYW1lLCBpY29uPSdGSUxFX1JF"
"RlJFU0gnKQogICAgICAgIGNvbC5vcGVyYXRvcihaSU9OQURfT1RfQ29weVRyYW5zZm9ybUluZm8uYmxf"
"aWRuYW1lLCBpY29uPSdDT1BZRE9XTicpCiAgICAgICAgCiAgICAgICAgbGF5b3V0LnNlcGFyYXRvcigp"
"CiAgICAgICAgCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9"
"IkxvY2F0aW9uOiIsIGljb249J0NPTl9MT0NMSUtFJykKICAgICAgICBjb2wgPSBib3guY29sdW1uKGFs"
"aWduPVRydWUpCiAgICAgICAgY29sLnByb3Aoc3QsICJsb2NfeCIpOyBjb2wucHJvcChzdCwgImxvY195"
"Iik7IGNvbC5wcm9wKHN0LCAibG9jX3oiKQogICAgICAgIAogICAgICAgIGJveCA9IGxheW91dC5ib3go"
"KQogICAgICAgIGJveC5sYWJlbCh0ZXh0PSJSb3RhdGlvbiAoRGVncmVlcyk6IiwgaWNvbj0nQ09OX1JP"
"VExJS0UnKQogICAgICAgIGNvbCA9IGJveC5jb2x1bW4oYWxpZ249VHJ1ZSkKICAgICAgICBjb2wucHJv"
"cChzdCwgInJvdF94Iik7IGNvbC5wcm9wKHN0LCAicm90X3kiKTsgY29sLnByb3Aoc3QsICJyb3RfeiIp"
"CiAgICAgICAgCiAgICAgICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9"
"IlNjYWxlOiIsIGljb249J0NPTl9TSVpFTElLRScpCiAgICAgICAgY29sID0gYm94LmNvbHVtbihhbGln"
"bj1UcnVlKQogICAgICAgIGNvbC5wcm9wKHN0LCAic2NhbGVfeCIpOyBjb2wucHJvcChzdCwgInNjYWxl"
"X3kiKTsgY29sLnByb3Aoc3QsICJzY2FsZV96IikKCmNsYXNzIFpJT05BRF9QVF9MaW5rc1BhbmVsKFBh"
"bmVsKToKICAgIGJsX2xhYmVsID0gIjMuIOODquODs+OCr+mbhiIKICAgIGJsX2lkbmFtZSA9ICJaSU9O"
"QURfUFRfbGlua3NfcGFuZWwiCiAgICBibF9zcGFjZV90eXBlID0gJ1ZJRVdfM0QnOyBibF9yZWdpb25f"
"dHlwZSA9ICdVSSc7IGJsX2NhdGVnb3J5ID0gQURET05fQ0FURUdPUlk7IGJsX29yZGVyID0gMgogICAg"
"CiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAog"
"ICAgICAgIGxpbmtzID0gWwogICAgICAgICAgICAoTElOS19OQU1FXzEsIExJTktfVVJMXzEpLAogICAg"
"ICAgICAgICAoTElOS19OQU1FXzIsIExJTktfVVJMXzIpLAogICAgICAgICAgICAoTElOS19OQU1FXzMs"
"IExJTktfVVJMXzMpLAogICAgICAgICAgICAoTElOS19OQU1FXzQsIExJTktfVVJMXzQpLAogICAgICAg"
"ICAgICAoTElOS19OQU1FXzUsIExJTktfVVJMXzUpCiAgICAgICAgXQogICAgICAgIGZvciBuYW1lLCB1"
"cmwgaW4gbGlua3M6CiAgICAgICAgICAgIGlmIG5hbWUgYW5kIHVybDoKICAgICAgICAgICAgICAgIG9w"
"ID0gbGF5b3V0Lm9wZXJhdG9yKFpJT05BRF9PVF9PcGVuVVJMLmJsX2lkbmFtZSwgdGV4dD1uYW1lLCBp"
"Y29uPSdVUkwnKQogICAgICAgICAgICAgICAgb3AudXJsID0gdXJsCgpjbGFzcyBaSU9OQURfUFRfUmVt"
"b3ZlUGFuZWwoUGFuZWwpOgogICAgYmxfbGFiZWwgPSAiNC4g44Ki44OJ44Kq44Oz5YmK6Zmk5a6f6KGM"
"IgogICAgYmxfaWRuYW1lID0gIlpJT05BRF9QVF9yZW1vdmVfcGFuZWwiCiAgICBibF9zcGFjZV90eXBl"
"ID0gJ1ZJRVdfM0QnOyBibF9yZWdpb25fdHlwZSA9ICdVSSc7IGJsX2NhdGVnb3J5ID0gQURET05fQ0FU"
"RUdPUlk7IGJsX29yZGVyID0gMwogICAgYmxfb3B0aW9ucyA9IHsnREVGQVVMVF9DTE9TRUQnfQogICAg"
"CiAgICBkZWYgZHJhdyhzZWxmLCBjb250ZXh0KTogCiAgICAgICAgc2VsZi5sYXlvdXQubGFiZWwodGV4"
"dD0i4oC75oq844GZ44Go44Ki44OJ44Kq44Oz44GM6Kej6Zmk44GV44KM44G+44GZIiwgaWNvbj0nRVJS"
"T1InKQogICAgICAgIHNlbGYubGF5b3V0Lm9wZXJhdG9yKFpJT05BRF9PVF9SZW1vdmVBZGRvbi5ibF9p"
"ZG5hbWUsIGljb249J0NBTkNFTCcpCgoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT0KIyDnmbvpjLLjg7vop6PpmaTlh6bnkIYKIyA9PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT0KY2xhc3NlcyA9ICgKICAgIFpJT05BRF9WaWV3U2V0dGluZ3MsIAogICAg"
"WklPTkFEX1RyYW5zZm9ybVNldHRpbmdzLAogICAgWklPTkFEX09UX01vdmVUb0NlbnRlciwgCiAgICBa"
"SU9OQURfT1RfVXBkYXRlVmlld0luZm8sIAogICAgWklPTkFEX09UX0NvcHlWaWV3SW5mbywKICAgIFpJ"
"T05BRF9PVF9VcGRhdGVUcmFuc2Zvcm0sIAogICAgWklPTkFEX09UX0NvcHlUcmFuc2Zvcm1JbmZvLCAg"
"IyDov73liqDjgZfjgZ/jgq/jg6njgrkKICAgIFpJT05BRF9PVF9PcGVuVVJMLCAKICAgIFpJT05BRF9P"
"VF9SZW1vdmVBZGRvbiwKICAgIFpJT05BRF9QVF9WaWV3UGFuZWwsIAogICAgWklPTkFEX1BUX1RyYW5z"
"Zm9ybVBhbmVsLCAKICAgIFpJT05BRF9QVF9MaW5rc1BhbmVsLCAKICAgIFpJT05BRF9QVF9SZW1vdmVQ"
"YW5lbCwKKQoKZGVmIHJlZ2lzdGVyKCk6CiAgICBmb3IgY2xzIGluIGNsYXNzZXM6IAogICAgICAgIGJw"
"eS51dGlscy5yZWdpc3Rlcl9jbGFzcyhjbHMpCiAgICBicHkudHlwZXMuU2NlbmUuemlvbmFkX3ZpZXdf"
"c2V0dGluZ3MgPSBQb2ludGVyUHJvcGVydHkodHlwZT1aSU9OQURfVmlld1NldHRpbmdzKQogICAgYnB5"
"LnR5cGVzLlNjZW5lLnppb25hZF90cmFuc19zZXR0aW5ncyA9IFBvaW50ZXJQcm9wZXJ0eSh0eXBlPVpJ"
"T05BRF9UcmFuc2Zvcm1TZXR0aW5ncykKCmRlZiB1bnJlZ2lzdGVyKCk6CiAgICBpZiBoYXNhdHRyKGJw"
"eS50eXBlcy5TY2VuZSwgJ3ppb25hZF92aWV3X3NldHRpbmdzJyk6IGRlbCBicHkudHlwZXMuU2NlbmUu"
"emlvbmFkX3ZpZXdfc2V0dGluZ3MKICAgIGlmIGhhc2F0dHIoYnB5LnR5cGVzLlNjZW5lLCAnemlvbmFk"
"X3RyYW5zX3NldHRpbmdzJyk6IGRlbCBicHkudHlwZXMuU2NlbmUuemlvbmFkX3RyYW5zX3NldHRpbmdz"
"CiAgICBmb3IgY2xzIGluIHJldmVyc2VkKGNsYXNzZXMpOgogICAgICAgIHRyeTogYnB5LnV0aWxzLnVu"
"cmVnaXN0ZXJfY2xhc3MoY2xzKQogICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6IHBhc3MKCmlmIF9f"
"bmFtZV9fID09ICJfX21haW5fXyI6IAogICAgcmVnaXN0ZXIoKQ=="
)
},
{
"name": "コンテナ作成 一括読み込み 20260714_003",
"code_b64": (
"aW1wb3J0IGJweQppbXBvcnQgcmUKaW1wb3J0IG9zCmltcG9ydCBiYXNlNjQKaW1wb3J0IHdlYmJyb3dz"
"ZXIKZnJvbSBicHkudHlwZXMgaW1wb3J0IE9wZXJhdG9yLCBQYW5lbCwgUHJvcGVydHlHcm91cCwgVUlM"
"aXN0CmZyb20gYnB5LnByb3BzIGltcG9ydCBTdHJpbmdQcm9wZXJ0eSwgUG9pbnRlclByb3BlcnR5LCBD"
"b2xsZWN0aW9uUHJvcGVydHksIEludFByb3BlcnR5CmZyb20gYnB5X2V4dHJhcy5pb191dGlscyBpbXBv"
"cnQgSW1wb3J0SGVscGVyCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PQojIOOCs+ODs+ODhuODiueUn+aIkOODk+ODq+ODgOODvCDjgqLjg4njgqrj"
"g7MgKEJhc2U2NCDjg5bjg63jg4Pjgq/lh7rlipsg77yGIOODquODs+OCr+ODu+WJiumZpOODkeODjeOD"
"q+i/veWKoOeJiCkKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT0KYmxfaW5mbyA9IHsKICAgICJuYW1lIjogIkNvbnRhaW5lciBCdWlsZGVyIChHZW5l"
"cmF0b3IpIC0gU2FmZSBNb2RlIiwKICAgICJhdXRob3IiOiAiQUkiLAogICAgInZlcnNpb24iOiAoMiwg"
"MywgMCksCiAgICAiYmxlbmRlciI6ICg0LCAwLCAwKSwKICAgICJsb2NhdGlvbiI6ICJWaWV3M0QgPiBT"
"aWRlYmFyID4gQnVpbGRlciIsCiAgICAiZGVzY3JpcHRpb24iOiAi44Ko44Op44O844GM57W25a++44Gr"
"6LW344GN44Gq44GE44KI44GG44GrQmFzZTY05aSJ5o+b44GX44Gm44Kz44Oz44OG44OK44Ki44OJ44Kq"
"44Oz44KS55Sf5oiQ44GX44G+44GZIiwKICAgICJjYXRlZ29yeSI6ICJEZXZlbG9wbWVudCIsCn0KCiMg"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMg"
"44OH44O844K/5qeL6YCgCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09CmNsYXNzIFpJT05BRF9CdWlsZGVySXRlbShQcm9wZXJ0eUdyb3VwKToKICAg"
"IG5hbWU6IFN0cmluZ1Byb3BlcnR5KCkKICAgIHRleHRfcHRyOiBQb2ludGVyUHJvcGVydHkobmFtZT0i"
"VGV4dCBEYXRhIiwgdHlwZT1icHkudHlwZXMuVGV4dCkKCmNsYXNzIFpJT05BRF9CdWlsZGVyUHJvcHMo"
"UHJvcGVydHlHcm91cCk6CiAgICBpdGVtczogQ29sbGVjdGlvblByb3BlcnR5KHR5cGU9WklPTkFEX0J1"
"aWxkZXJJdGVtKQogICAgYWN0aXZlX2luZGV4OiBJbnRQcm9wZXJ0eShkZWZhdWx0PTApCgoKIyA9PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyDjgqrj"
"g5rjg6zjg7zjgr/jg7w6IOi/veWKoOODu+WJiumZpOODu+ODquODs+OCr+ODu+OCouODs+OCpOODs+OC"
"ueODiOODvOODqwojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PQpjbGFzcyBaSU9OQURfT1RfQnVpbGRlckFkZENsaXBib2FyZChPcGVyYXRvcik6CiAg"
"ICBibF9pZG5hbWUgPSAiemlvbmFkLmJ1aWxkZXJfYWRkX2NsaXBib2FyZCIKICAgIGJsX2xhYmVsID0g"
"IuOCr+ODquODg+ODl+ODnOODvOODieOBi+OCieWPluOCiui+vOOCgCIKICAgIAogICAgZGVmIGV4ZWN1"
"dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgdGV4dCA9IGNvbnRleHQud2luZG93X21hbmFnZXIuY2xp"
"cGJvYXJkCiAgICAgICAgaWYgbm90IHRleHQgb3IgbGVuKHRleHQuc3RyaXAoKSkgPT0gMDoKICAgICAg"
"ICAgICAgc2VsZi5yZXBvcnQoeydXQVJOSU5HJ30sICLjgq/jg6rjg4Pjg5fjg5zjg7zjg4njgYznqbrj"
"gafjgZnjgIIiKQogICAgICAgICAgICByZXR1cm4geydDQU5DRUxMRUQnfQogICAgICAgICAgICAKICAg"
"ICAgICBtYXRjaCA9IHJlLnNlYXJjaChyJ1siXCddbmFtZVsiXCddXHMqOlxzKlsiXCddKFteIlwnXSsp"
"WyJcJ10nLCB0ZXh0KQogICAgICAgIGJhc2VfbmFtZSA9IG1hdGNoLmdyb3VwKDEpIGlmIG1hdGNoIGVs"
"c2UgZiJDbGlwYm9hcmRfQWRkb25fe2xlbihjb250ZXh0LnNjZW5lLnppb25hZF9idWlsZGVyX3Byb3Bz"
"Lml0ZW1zKSsxfSIKICAgICAgICAKICAgICAgICB0ID0gYnB5LmRhdGEudGV4dHMubmV3KG5hbWU9ZiJ7"
"YmFzZV9uYW1lfS5weSIpCiAgICAgICAgdC53cml0ZSh0ZXh0KQogICAgICAgIAogICAgICAgIHByb3Bz"
"ID0gY29udGV4dC5zY2VuZS56aW9uYWRfYnVpbGRlcl9wcm9wcwogICAgICAgIGl0ZW0gPSBwcm9wcy5p"
"dGVtcy5hZGQoKQogICAgICAgIGl0ZW0ubmFtZSA9IGJhc2VfbmFtZQogICAgICAgIGl0ZW0udGV4dF9w"
"dHIgPSB0CiAgICAgICAgcHJvcHMuYWN0aXZlX2luZGV4ID0gbGVuKHByb3BzLml0ZW1zKSAtIDEKICAg"
"ICAgICAKICAgICAgICBzZWxmLnJlcG9ydCh7J0lORk8nfSwgZiJ7YmFzZV9uYW1lfSDjgpLov73liqDj"
"gZfjgb7jgZfjgZ8iKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFpJT05BRF9PVF9C"
"dWlsZGVyQWRkRmlsZShPcGVyYXRvciwgSW1wb3J0SGVscGVyKToKICAgIGJsX2lkbmFtZSA9ICJ6aW9u"
"YWQuYnVpbGRlcl9hZGRfZmlsZSIKICAgIGJsX2xhYmVsID0gIuODleOCqeODq+ODgOOBi+OCiS5weeOC"
"kumBuOOBtijopIfmlbDlj68pIgogICAgYmxfZGVzY3JpcHRpb24gPSAi6KSH5pWw44GuLnB544OV44Kh"
"44Kk44Or44KS6YG45oqe44GX44Gm5LiA5bqm44Gr5Y+W44KK6L6844G/44G+44GZIChTaGlmdC9DdHJs"
"44Kt44O844Gn6KSH5pWw6YG45oqeKSIKICAgIAogICAgZmlsZW5hbWVfZXh0ID0gIi5weSIKICAgIGZp"
"bHRlcl9nbG9iOiBTdHJpbmdQcm9wZXJ0eShkZWZhdWx0PSIqLnB5Iiwgb3B0aW9ucz17J0hJRERFTid9"
"KQogICAgCiAgICAjIOikh+aVsOODleOCoeOCpOODq+mBuOaKnueUqOOBruODl+ODreODkeODhuOCo+OC"
"kui/veWKoAogICAgZmlsZXM6IENvbGxlY3Rpb25Qcm9wZXJ0eSgKICAgICAgICBuYW1lPSJGaWxlIFBh"
"dGgiLAogICAgICAgIHR5cGU9YnB5LnR5cGVzLk9wZXJhdG9yRmlsZUxpc3RFbGVtZW50LAogICAgKQog"
"ICAgZGlyZWN0b3J5OiBTdHJpbmdQcm9wZXJ0eSgKICAgICAgICBzdWJ0eXBlPSdESVJfUEFUSCcsCiAg"
"ICApCiAgICAKICAgIGRlZiBleGVjdXRlKHNlbGYsIGNvbnRleHQpOgogICAgICAgIHByb3BzID0gY29u"
"dGV4dC5zY2VuZS56aW9uYWRfYnVpbGRlcl9wcm9wcwogICAgICAgIGFkZGVkX2NvdW50ID0gMAogICAg"
"ICAgIAogICAgICAgICMg6KSH5pWw6YG45oqe44GV44KM44Gf44OV44Kh44Kk44Or44KS6aCG55Wq44Gr"
"5Yem55CG44GZ44KLCiAgICAgICAgaWYgc2VsZi5maWxlczoKICAgICAgICAgICAgZm9yIGZpbGVfZWxl"
"bSBpbiBzZWxmLmZpbGVzOgogICAgICAgICAgICAgICAgbmFtZSA9IGZpbGVfZWxlbS5uYW1lCiAgICAg"
"ICAgICAgICAgICBpZiBub3QgbmFtZToKICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAg"
"ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgZmlsZXBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5k"
"aXJlY3RvcnksIG5hbWUpCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIHRyeToKICAgICAg"
"ICAgICAgICAgICAgICB3aXRoIG9wZW4oZmlsZXBhdGgsICdyJywgZW5jb2Rpbmc9J3V0Zi04JykgYXMg"
"ZjoKICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9IGYucmVhZCgpCiAgICAgICAgICAgICAgICBl"
"eGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXBvcnQoeydFUlJP"
"Uid9LCBmIuODleOCoeOCpOODq+OBruiqreOBv+i+vOOBv+WkseaVlzoge25hbWV9IC0ge2V9IikKICAg"
"ICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg"
"ICAgdCA9IGJweS5kYXRhLnRleHRzLm5ldyhuYW1lPW5hbWUpCiAgICAgICAgICAgICAgICB0LndyaXRl"
"KHRleHQpCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGl0ZW0gPSBwcm9wcy5pdGVtcy5h"
"ZGQoKQogICAgICAgICAgICAgICAgaXRlbS5uYW1lID0gbmFtZS5yZXBsYWNlKCcucHknLCAnJykKICAg"
"ICAgICAgICAgICAgIGl0ZW0udGV4dF9wdHIgPSB0CiAgICAgICAgICAgICAgICBhZGRlZF9jb3VudCAr"
"PSAxCiAgICAgICAgICAgICAgICAKICAgICAgICBpZiBhZGRlZF9jb3VudCA+IDA6CiAgICAgICAgICAg"
"IHByb3BzLmFjdGl2ZV9pbmRleCA9IGxlbihwcm9wcy5pdGVtcykgLSAxCiAgICAgICAgICAgIHNlbGYu"
"cmVwb3J0KHsnSU5GTyd9LCBmInthZGRlZF9jb3VudH3lgIvjga7jg5XjgqHjgqTjg6vjgpLov73liqDj"
"gZfjgb7jgZfjgZ8iKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHNlbGYucmVwb3J0KHsnV0FSTklO"
"Ryd9LCAi44OV44Kh44Kk44Or44GM6L+95Yqg44GV44KM44G+44Gb44KT44Gn44GX44GfIikKICAgICAg"
"ICAgICAgcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAgICAgICAgICAgCiAgICAgICAgcmV0dXJuIHsnRklO"
"SVNIRUQnfQoKY2xhc3MgWklPTkFEX09UX0J1aWxkZXJSZW1vdmUoT3BlcmF0b3IpOgogICAgYmxfaWRu"
"YW1lID0gInppb25hZC5idWlsZGVyX3JlbW92ZV9pdGVtIgogICAgYmxfbGFiZWwgPSAi6YG45oqe44GX"
"44Gf6aCF55uu44KS5YmK6ZmkIgogICAgCiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAg"
"ICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUuemlvbmFkX2J1aWxkZXJfcHJvcHMKICAgICAgICBpZiBu"
"b3QgcHJvcHMuaXRlbXM6IHJldHVybiB7J0NBTkNFTExFRCd9CiAgICAgICAgCiAgICAgICAgaWR4ID0g"
"cHJvcHMuYWN0aXZlX2luZGV4CiAgICAgICAgaXRlbSA9IHByb3BzLml0ZW1zW2lkeF0KICAgICAgICBp"
"ZiBpdGVtLnRleHRfcHRyOgogICAgICAgICAgICBicHkuZGF0YS50ZXh0cy5yZW1vdmUoaXRlbS50ZXh0"
"X3B0cikKICAgICAgICAgICAgCiAgICAgICAgcHJvcHMuaXRlbXMucmVtb3ZlKGlkeCkKICAgICAgICBw"
"cm9wcy5hY3RpdmVfaW5kZXggPSBtYXgoMCwgbWluKGlkeCwgbGVuKHByb3BzLml0ZW1zKSAtIDEpKQog"
"ICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCmNsYXNzIFpJT05BRF9PVF9PcGVuVXJsKE9wZXJhdG9y"
"KToKICAgIGJsX2lkbmFtZSA9ICJ6aW9uYWQub3Blbl91cmwiCiAgICBibF9sYWJlbCA9ICLjg6rjg7Pj"
"gq/jgpLplovjgY8iCiAgICAKICAgIHVybDogU3RyaW5nUHJvcGVydHkoKQogICAgCiAgICBkZWYgZXhl"
"Y3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICB3ZWJicm93c2VyLm9wZW4oc2VsZi51cmwpCiAgICAg"
"ICAgcmV0dXJuIHsnRklOSVNIRUQnfQoKY2xhc3MgWklPTkFEX09UX1JlbW92ZUJ1aWxkZXIoT3BlcmF0"
"b3IpOgogICAgYmxfaWRuYW1lID0gInppb25hZC5yZW1vdmVfYnVpbGRlciIKICAgIGJsX2xhYmVsID0g"
"IlVucmVnaXN0ZXIgQnVpbGRlciIKICAgIGJsX2Rlc2NyaXB0aW9uID0gIuOBk+OBruODk+ODq+ODgOOD"
"vOOCouODieOCquODs+OCkueEoeWKueWMluOBl+OAgVVJ44GL44KJ5raI5Y6744GX44G+44GZIgogICAg"
"CiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBicHkuYXBwLnRpbWVycy5yZWdp"
"c3Rlcih1bnJlZ2lzdGVyLCBmaXJzdF9pbnRlcnZhbD0wLjAxKQogICAgICAgIHJldHVybiB7J0ZJTklT"
"SEVEJ30KCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PQojIOOCquODmuODrOODvOOCv+ODvDog44Kz44Oz44OG44OK44Kz44O844OJ44Gu55Sf5oiQ"
"44Go5Ye65YqbICjjg6HjgqTjg7Plh6bnkIYpCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNsYXNzIFpJT05BRF9PVF9CdWlsZGVyR2VuZXJhdGUo"
"T3BlcmF0b3IpOgogICAgYmxfaWRuYW1lID0gInppb25hZC5idWlsZGVyX2dlbmVyYXRlIgogICAgYmxf"
"bGFiZWwgPSAi5pu05paw44GV44KM44Gf44Kz44Oz44OG44OK44Kz44O844OJ44KS5Ye65YqbIgogICAg"
"CiAgICBkZWYgZXhlY3V0ZShzZWxmLCBjb250ZXh0KToKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2Nl"
"bmUuemlvbmFkX2J1aWxkZXJfcHJvcHMKICAgICAgICBpZiBub3QgcHJvcHMuaXRlbXM6CiAgICAgICAg"
"ICAgIHNlbGYucmVwb3J0KHsnV0FSTklORyd9LCAi44Kz44O844OJ44GM5LiA44Gk44KC6L+95Yqg44GV"
"44KM44Gm44GE44G+44Gb44KT44CCIikKICAgICAgICAgICAgcmV0dXJuIHsnQ0FOQ0VMTEVEJ30KICAg"
"ICAgICAgICAgCiAgICAgICAgIyAxLiDntYTjgb/ovrzjgoDjgrPjg7zjg4njga7jg6rjgrnjg4jmlofl"
"rZfliJfjgpLmp4vnr4kgKEJhc2U2NOOBp+WuieWFqOOBq+WkieaPmykKICAgICAgICBzdG9yZWRfY29k"
"ZXNfc3RyID0gIlNUT1JFRF9DT0RFUyA9IFtcbiIKICAgICAgICBmb3IgaXRlbSBpbiBwcm9wcy5pdGVt"
"czoKICAgICAgICAgICAgaWYgbm90IGl0ZW0udGV4dF9wdHI6IGNvbnRpbnVlCiAgICAgICAgICAgIHJh"
"d19jb2RlID0gaXRlbS50ZXh0X3B0ci5hc19zdHJpbmcoKQogICAgICAgICAgICBzYWZlX25hbWUgPSBp"
"dGVtLm5hbWUKICAgICAgICAgICAgCiAgICAgICAgICAgICMg5YWD44Kz44O844OJ44KSQmFzZTY05paH"
"5a2X5YiX44Gr5aSJ5o+bCiAgICAgICAgICAgIGVuY29kZWRfYnl0ZXMgPSBiYXNlNjQuYjY0ZW5jb2Rl"
"KHJhd19jb2RlLmVuY29kZSgndXRmLTgnKSkKICAgICAgICAgICAgZW5jb2RlZF9zdHIgPSBlbmNvZGVk"
"X2J5dGVzLmRlY29kZSgndXRmLTgnKQogICAgICAgICAgICAKICAgICAgICAgICAgIyA4MOaWh+Wtl+OB"
"lOOBqOOBq+WMuuWIh+OBo+OBpuimi+OChOOBmeOBhOODluODreODg+OCr+eKtuOBq+OBmeOCiwogICAg"
"ICAgICAgICBjaHVua3MgPSBbZW5jb2RlZF9zdHJbaTppKzgwXSBmb3IgaSBpbiByYW5nZSgwLCBsZW4o"
"ZW5jb2RlZF9zdHIpLCA4MCldCiAgICAgICAgICAgIGZvcm1hdHRlZF9iNjQgPSAnIlxuICAgICAgICAi"
"Jy5qb2luKGNodW5rcykKICAgICAgICAgICAgCiAgICAgICAgICAgIHN0b3JlZF9jb2Rlc19zdHIgKz0g"
"ZicgICAge3tcbicKICAgICAgICAgICAgc3RvcmVkX2NvZGVzX3N0ciArPSBmJyAgICAgICAgIm5hbWUi"
"OiAie3NhZmVfbmFtZX0iLFxuJwogICAgICAgICAgICBzdG9yZWRfY29kZXNfc3RyICs9IGYnICAgICAg"
"ICAiY29kZV9iNjQiOiAoXG4gICAgICAgICJ7Zm9ybWF0dGVkX2I2NH0iXG4gICAgICAgIClcbicKICAg"
"ICAgICAgICAgc3RvcmVkX2NvZGVzX3N0ciArPSBmJyAgICB9fSxcbicKICAgICAgICBzdG9yZWRfY29k"
"ZXNfc3RyICs9ICJdXG4iCiAgICAgICAgCiAgICAgICAgIyAyLiDlh7rlipvjgZnjgovjgrPjg7Pjg4bj"
"g4rjgqLjg4njgqrjg7Pjga7jg4bjg7Pjg5fjg6zjg7zjg4gKICAgICAgICB0ZW1wbGF0ZSA9IGYiIiJp"
"bXBvcnQgYnB5CmltcG9ydCBiYXNlNjQKaW1wb3J0IHdlYmJyb3dzZXIKZnJvbSBicHkudHlwZXMgaW1w"
"b3J0IE9wZXJhdG9yLCBQYW5lbAoKYmxfaW5mbyA9IHt7CiAgICAibmFtZSI6ICJNeSBDdXN0b20gQWRk"
"b24gQ29udGFpbmVyIiwKICAgICJhdXRob3IiOiAiR2VuZXJhdGVkIGJ5IEJ1aWxkZXIiLAogICAgInZl"
"cnNpb24iOiAoMSwgMCwgMCksCiAgICAiYmxlbmRlciI6ICg0LCAwLCAwKSwKICAgICJsb2NhdGlvbiI6"
"ICJWaWV3M0QgPiBTaWRlYmFyID4gQ29udGFpbmVyIiwKICAgICJkZXNjcmlwdGlvbiI6ICLopIfmlbDj"
"ga7jgqLjg4njgqrjg7PjgrPjg7zjg4njgpLmoLzntI3jg7vlsZXplovjgZnjgovjgrPjg7Pjg4bjg4oi"
"LAogICAgImNhdGVnb3J5IjogIkRldmVsb3BtZW50IiwKfX0KCntzdG9yZWRfY29kZXNfc3RyfQoKY2xh"
"c3MgR0VORVJBVEVEX09UX09wZW5Db2RlKE9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJnZW5lcmF0"
"ZWQub3Blbl9zdG9yZWRfY29kZSIKICAgIGJsX2xhYmVsID0gIuODhuOCreOCueODiOOCqOODh+OCo+OC"
"v+OBp+mWi+OBjyIKICAgIAogICAgY29kZV9pbmRleDogYnB5LnByb3BzLkludFByb3BlcnR5KCkKICAg"
"IAogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAgICAgICAgaXRlbSA9IFNUT1JFRF9DT0RF"
"U1tzZWxmLmNvZGVfaW5kZXhdCiAgICAgICAgdGV4dF9uYW1lID0gaXRlbVsibmFtZSJdICsgIi5weSIK"
"ICAgICAgICAKICAgICAgICAjIEJhc2U2NOaWh+Wtl+WIl+OCkuWFg+OBrlB5dGhvbuOCs+ODvOODieOB"
"q+W+qeWFg+OBmeOCiwogICAgICAgIGNvZGVfdGV4dCA9IGJhc2U2NC5iNjRkZWNvZGUoaXRlbVsiY29k"
"ZV9iNjQiXSkuZGVjb2RlKCd1dGYtOCcpCiAgICAgICAgCiAgICAgICAgaWYgdGV4dF9uYW1lIGluIGJw"
"eS5kYXRhLnRleHRzOgogICAgICAgICAgICB0ID0gYnB5LmRhdGEudGV4dHNbdGV4dF9uYW1lXQogICAg"
"ICAgICAgICB0LmNsZWFyKCkKICAgICAgICAgICAgdC53cml0ZShjb2RlX3RleHQpCiAgICAgICAgZWxz"
"ZToKICAgICAgICAgICAgdCA9IGJweS5kYXRhLnRleHRzLm5ldyh0ZXh0X25hbWUpCiAgICAgICAgICAg"
"IHQudXNlX2Zha2VfdXNlciA9IFRydWUKICAgICAgICAgICAgdC53cml0ZShjb2RlX3RleHQpCiAgICAg"
"ICAgICAgIAogICAgICAgIGVkaXRvcl9mb3VuZCA9IEZhbHNlCiAgICAgICAgZm9yIHdpbiBpbiBjb250"
"ZXh0LndpbmRvd19tYW5hZ2VyLndpbmRvd3M6CiAgICAgICAgICAgIGZvciBhcmVhIGluIHdpbi5zY3Jl"
"ZW4uYXJlYXM6CiAgICAgICAgICAgICAgICBpZiBhcmVhLnR5cGUgPT0gJ1RFWFRfRURJVE9SJzoKICAg"
"ICAgICAgICAgICAgICAgICBhcmVhLnNwYWNlcy5hY3RpdmUudGV4dCA9IHQKICAgICAgICAgICAgICAg"
"ICAgICBlZGl0b3JfZm91bmQgPSBUcnVlCiAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAg"
"ICAgaWYgZWRpdG9yX2ZvdW5kOgogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgIAog"
"ICAgICAgIGlmIG5vdCBlZGl0b3JfZm91bmQ6CiAgICAgICAgICAgIHNlbGYucmVwb3J0KHt7J0lORk8n"
"fX0sIGYiJ3t7dGV4dF9uYW1lfX0nIOOCkueUn+aIkOOBl+OBvuOBl+OBn+OAglRleHQgRWRpdG9y44KS"
"6ZaL44GE44Gm44GP44Gg44GV44GE44CCIikKICAgICAgICByZXR1cm4ge3snRklOSVNIRUQnfX0KCmNs"
"YXNzIEdFTkVSQVRFRF9PVF9PcGVuVXJsKE9wZXJhdG9yKToKICAgIGJsX2lkbmFtZSA9ICJnZW5lcmF0"
"ZWQub3Blbl91cmwiCiAgICBibF9sYWJlbCA9ICLjg6rjg7Pjgq/jgpLplovjgY8iCiAgICAKICAgIHVy"
"bDogYnB5LnByb3BzLlN0cmluZ1Byb3BlcnR5KCkKICAgIAogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29u"
"dGV4dCk6CiAgICAgICAgd2ViYnJvd3Nlci5vcGVuKHNlbGYudXJsKQogICAgICAgIHJldHVybiB7eydG"
"SU5JU0hFRCd9fQoKY2xhc3MgR0VORVJBVEVEX09UX1JlbW92ZUNvbnRhaW5lcihPcGVyYXRvcik6CiAg"
"ICBibF9pZG5hbWUgPSAiZ2VuZXJhdGVkLnJlbW92ZV9jb250YWluZXIiCiAgICBibF9sYWJlbCA9ICJV"
"bnJlZ2lzdGVyIENvbnRhaW5lciIKICAgIAogICAgZGVmIGV4ZWN1dGUoc2VsZiwgY29udGV4dCk6CiAg"
"ICAgICAgYnB5LmFwcC50aW1lcnMucmVnaXN0ZXIodW5yZWdpc3RlciwgZmlyc3RfaW50ZXJ2YWw9MC4w"
"MSkKICAgICAgICByZXR1cm4ge3snRklOSVNIRUQnfX0KCgpjbGFzcyBHRU5FUkFURURfUFRfQ29udGFp"
"bmVyUGFuZWwoUGFuZWwpOgogICAgYmxfbGFiZWwgPSAi44Oe44Kk44O744Ki44OJ44Kq44Oz44O744Kz"
"44Oz44OG44OKIgogICAgYmxfaWRuYW1lID0gIkdFTkVSQVRFRF9QVF9jb250YWluZXJfcGFuZWwiCiAg"
"ICBibF9zcGFjZV90eXBlID0gJ1ZJRVdfM0QnCiAgICBibF9yZWdpb25fdHlwZSA9ICdVSScKICAgIGJs"
"X2NhdGVnb3J5ID0gIkNvbnRhaW5lciIKICAgIGJsX29yZGVyID0gMQoKICAgIGRlZiBkcmF3KHNlbGYs"
"IGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgYm94ID0gbGF5b3V0"
"LmJveCgpCiAgICAgICAgaWYgbm90IFNUT1JFRF9DT0RFUzoKICAgICAgICAgICAgYm94LmxhYmVsKHRl"
"eHQ9IuOCs+ODvOODieOBjOOBguOCiuOBvuOBm+OCkyIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAg"
"Zm9yIGksIGl0ZW0gaW4gZW51bWVyYXRlKFNUT1JFRF9DT0RFUyk6CiAgICAgICAgICAgICAgICByb3cg"
"PSBib3gucm93KGFsaWduPVRydWUpCiAgICAgICAgICAgICAgICByb3cubGFiZWwodGV4dD1pdGVtWyJu"
"YW1lIl0sIGljb249J0ZJTEVfU0NSSVBUJykKICAgICAgICAgICAgICAgIG9wID0gcm93Lm9wZXJhdG9y"
"KEdFTkVSQVRFRF9PVF9PcGVuQ29kZS5ibF9pZG5hbWUsIHRleHQ9IuWxlemWi+OBl+OBpumWi+OBjyIs"
"IGljb249J1RFWFQnKQogICAgICAgICAgICAgICAgb3AuY29kZV9pbmRleCA9IGkKCmNsYXNzIEdFTkVS"
"QVRFRF9QVF9Db250YWluZXJMaW5rc1BhbmVsKFBhbmVsKToKICAgIGJsX2xhYmVsID0gIuODquODs+OC"
"ryIKICAgIGJsX2lkbmFtZSA9ICJHRU5FUkFURURfUFRfY29udGFpbmVyX2xpbmtzX3BhbmVsIgogICAg"
"Ymxfc3BhY2VfdHlwZSA9ICdWSUVXXzNEJwogICAgYmxfcmVnaW9uX3R5cGUgPSAnVUknCiAgICBibF9j"
"YXRlZ29yeSA9ICJDb250YWluZXIiCiAgICBibF9vcmRlciA9IDIKCiAgICBkZWYgZHJhdyhzZWxmLCBj"
"b250ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLmxheW91dAogICAgICAgIGJveCA9IGxheW91dC5i"
"b3goKQogICAgICAgIG9wID0gYm94Lm9wZXJhdG9yKEdFTkVSQVRFRF9PVF9PcGVuVXJsLmJsX2lkbmFt"
"ZSwgdGV4dD0iYmxlbmRlciDjgrPjg7Pjg4bjg4rjgIDjgIAyMDI2MDcxMyIsIGljb249J1VSTCcpCiAg"
"ICAgICAgb3AudXJsID0gImh0dHBzOi8vbm90ZS5jb20vemlvbmFkbWlsbGlvbi9uL245YTQ3ZDg4ZmU3"
"YjQiCgpjbGFzcyBHRU5FUkFURURfUFRfQ29udGFpbmVyUmVtb3ZlUGFuZWwoUGFuZWwpOgogICAgYmxf"
"bGFiZWwgPSAi44Ki44OJ44Kq44Oz5YmK6ZmkIgogICAgYmxfaWRuYW1lID0gIkdFTkVSQVRFRF9QVF9j"
"b250YWluZXJfcmVtb3ZlX3BhbmVsIgogICAgYmxfc3BhY2VfdHlwZSA9ICdWSUVXXzNEJwogICAgYmxf"
"cmVnaW9uX3R5cGUgPSAnVUknCiAgICBibF9jYXRlZ29yeSA9ICJDb250YWluZXIiCiAgICBibF9vcHRp"
"b25zID0ge3snREVGQVVMVF9DTE9TRUQnfX0KICAgIGJsX29yZGVyID0gMwoKICAgIGRlZiBkcmF3KHNl"
"bGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgYm94ID0gbGF5"
"b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IuOBk+OBruOCs+ODs+ODhuODiuOCouODieOC"
"quODs+OCkua2iOWOu+OBl+OBvuOBmSIsIGljb249J0VSUk9SJykKICAgICAgICBib3gub3BlcmF0b3Io"
"R0VORVJBVEVEX09UX1JlbW92ZUNvbnRhaW5lci5ibF9pZG5hbWUsIGljb249J0NBTkNFTCcpCgoKY2xh"
"c3NlcyA9ICgKICAgIEdFTkVSQVRFRF9PVF9PcGVuQ29kZSwKICAgIEdFTkVSQVRFRF9PVF9PcGVuVXJs"
"LAogICAgR0VORVJBVEVEX09UX1JlbW92ZUNvbnRhaW5lciwKICAgIEdFTkVSQVRFRF9QVF9Db250YWlu"
"ZXJQYW5lbCwKICAgIEdFTkVSQVRFRF9QVF9Db250YWluZXJMaW5rc1BhbmVsLAogICAgR0VORVJBVEVE"
"X1BUX0NvbnRhaW5lclJlbW92ZVBhbmVsCikKCmRlZiByZWdpc3RlcigpOgogICAgZm9yIGNscyBpbiBj"
"bGFzc2VzOgogICAgICAgIGJweS51dGlscy5yZWdpc3Rlcl9jbGFzcyhjbHMpCgpkZWYgdW5yZWdpc3Rl"
"cigpOgogICAgZm9yIGNscyBpbiByZXZlcnNlZChjbGFzc2VzKToKICAgICAgICBicHkudXRpbHMudW5y"
"ZWdpc3Rlcl9jbGFzcyhjbHMpCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgcmVnaXN0ZXIo"
"KQoiIiIKICAgICAgICAKICAgICAgICAjIDMuIOODhuOCreOCueODiOOCqOODh+OCo+OCv+OBq+aWsOOB"
"l+OBhOODleOCoeOCpOODq+OBqOOBl+OBpuWHuuWKmwogICAgICAgIG91dF9uYW1lID0gIk15X0dlbmVy"
"YXRlZF9Db250YWluZXIucHkiCiAgICAgICAgaWYgb3V0X25hbWUgaW4gYnB5LmRhdGEudGV4dHM6CiAg"
"ICAgICAgICAgIG91dF90ZXh0ID0gYnB5LmRhdGEudGV4dHNbb3V0X25hbWVdCiAgICAgICAgICAgIG91"
"dF90ZXh0LmNsZWFyKCkKICAgICAgICBlbHNlOgogICAgICAgICAgICBvdXRfdGV4dCA9IGJweS5kYXRh"
"LnRleHRzLm5ldyhvdXRfbmFtZSkKICAgICAgICAgICAgCiAgICAgICAgb3V0X3RleHQud3JpdGUodGVt"
"cGxhdGUpCiAgICAgICAgCiAgICAgICAgZm9yIHdpbiBpbiBjb250ZXh0LndpbmRvd19tYW5hZ2VyLndp"
"bmRvd3M6CiAgICAgICAgICAgIGZvciBhcmVhIGluIHdpbi5zY3JlZW4uYXJlYXM6CiAgICAgICAgICAg"
"ICAgICBpZiBhcmVhLnR5cGUgPT0gJ1RFWFRfRURJVE9SJzoKICAgICAgICAgICAgICAgICAgICBhcmVh"
"LnNwYWNlcy5hY3RpdmUudGV4dCA9IG91dF90ZXh0CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg"
"c2VsZi5yZXBvcnQoeydJTkZPJ30sIGYi44Kz44Oz44OG44OK44Kz44O844OJICd7b3V0X25hbWV9JyDj"
"gpLnlJ/miJDjgZfjgb7jgZfjgZ/vvIEiKQogICAgICAgIHJldHVybiB7J0ZJTklTSEVEJ30KCgojID09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIFVJ"
"IOODkeODjeODqyAoVUlMaXN044KS5ZCr44KAKQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjbGFzcyBaSU9OQURfVUxfQnVpbGRlckxpc3QoVUlM"
"aXN0KToKICAgIGRlZiBkcmF3X2l0ZW0oc2VsZiwgY29udGV4dCwgbGF5b3V0LCBkYXRhLCBpdGVtLCBp"
"Y29uLCBhY3RpdmVfZGF0YSwgYWN0aXZlX3Byb3BuYW1lKToKICAgICAgICBsYXlvdXQubGFiZWwodGV4"
"dD1pdGVtLm5hbWUsIGljb249J0ZJTEVfU0NSSVBUJykKCmNsYXNzIFpJT05BRF9QVF9CdWlsZGVyUGFu"
"ZWwoUGFuZWwpOgogICAgYmxfbGFiZWwgPSAi44Kz44Oz44OG44OK55Sf5oiQ44OT44Or44OA44O8Igog"
"ICAgYmxfaWRuYW1lID0gIlpJT05BRF9QVF9idWlsZGVyX3BhbmVsIgogICAgYmxfc3BhY2VfdHlwZSA9"
"ICdWSUVXXzNEJwogICAgYmxfcmVnaW9uX3R5cGUgPSAnVUknCiAgICBibF9jYXRlZ29yeSA9ICJCdWls"
"ZGVyIgogICAgYmxfb3JkZXIgPSAxCgogICAgZGVmIGRyYXcoc2VsZiwgY29udGV4dCk6CiAgICAgICAg"
"bGF5b3V0ID0gc2VsZi5sYXlvdXQKICAgICAgICBwcm9wcyA9IGNvbnRleHQuc2NlbmUuemlvbmFkX2J1"
"aWxkZXJfcHJvcHMKICAgICAgICAKICAgICAgICBib3ggPSBsYXlvdXQuYm94KCkKICAgICAgICBib3gu"
"bGFiZWwodGV4dD0iMS4g5Y+W44KK6L6844G/5pON5L2cOiIpCiAgICAgICAgYm94Lm9wZXJhdG9yKFpJ"
"T05BRF9PVF9CdWlsZGVyQWRkRmlsZS5ibF9pZG5hbWUsIGljb249J0ZJTEVCUk9XU0VSJykKICAgICAg"
"ICBib3gub3BlcmF0b3IoWklPTkFEX09UX0J1aWxkZXJBZGRDbGlwYm9hcmQuYmxfaWRuYW1lLCBpY29u"
"PSdQQVNURURPV04nKQogICAgICAgIAogICAgICAgIGxheW91dC5zZXBhcmF0b3IoKQogICAgICAgIGxh"
"eW91dC5sYWJlbCh0ZXh0PSIyLiDlj5bjgorovrzjgb/muIjjgb/jga7jgrPjg7zjg4nkuIDopqc6IikK"
"ICAgICAgICAKICAgICAgICByb3cgPSBsYXlvdXQucm93KCkKICAgICAgICByb3cudGVtcGxhdGVfbGlz"
"dCgiWklPTkFEX1VMX0J1aWxkZXJMaXN0IiwgIiIsIHByb3BzLCAiaXRlbXMiLCBwcm9wcywgImFjdGl2"
"ZV9pbmRleCIsIHJvd3M9NSkKICAgICAgICAKICAgICAgICBjb2wgPSByb3cuY29sdW1uKGFsaWduPVRy"
"dWUpCiAgICAgICAgY29sLm9wZXJhdG9yKFpJT05BRF9PVF9CdWlsZGVyUmVtb3ZlLmJsX2lkbmFtZSwg"
"dGV4dD0iIiwgaWNvbj0nUkVNT1ZFJykKICAgICAgICAKICAgICAgICBsYXlvdXQuc2VwYXJhdG9yKCkK"
"ICAgICAgICBsYXlvdXQubGFiZWwodGV4dD0iMy4g44Ki44OJ44Kq44Oz44Gu5L2c5oiQOiIpCiAgICAg"
"ICAgY29sID0gbGF5b3V0LmNvbHVtbihhbGlnbj1UcnVlKQogICAgICAgIGNvbC5zY2FsZV95ID0gMS41"
"CiAgICAgICAgY29sLm9wZXJhdG9yKFpJT05BRF9PVF9CdWlsZGVyR2VuZXJhdGUuYmxfaWRuYW1lLCBp"
"Y29uPSdGSUxFX1RJQ0snKQoKY2xhc3MgWklPTkFEX1BUX0J1aWxkZXJMaW5rc1BhbmVsKFBhbmVsKToK"
"ICAgIGJsX2xhYmVsID0gIuODquODs+OCryIKICAgIGJsX2lkbmFtZSA9ICJaSU9OQURfUFRfYnVpbGRl"
"cl9saW5rc19wYW5lbCIKICAgIGJsX3NwYWNlX3R5cGUgPSAnVklFV18zRCcKICAgIGJsX3JlZ2lvbl90"
"eXBlID0gJ1VJJwogICAgYmxfY2F0ZWdvcnkgPSAiQnVpbGRlciIKICAgIGJsX29yZGVyID0gMgoKICAg"
"IGRlZiBkcmF3KHNlbGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAg"
"ICAgYm94ID0gbGF5b3V0LmJveCgpCiAgICAgICAgb3AgPSBib3gub3BlcmF0b3IoWklPTkFEX09UX09w"
"ZW5VcmwuYmxfaWRuYW1lLCB0ZXh0PSJibGVuZGVyIOOCs+ODs+ODhuODiuOAgOOAgDIwMjYwNzEzIiwg"
"aWNvbj0nVVJMJykKICAgICAgICBvcC51cmwgPSAiaHR0cHM6Ly9ub3RlLmNvbS96aW9uYWRtaWxsaW9u"
"L24vbjlhNDdkODhmZTdiNCIKCmNsYXNzIFpJT05BRF9QVF9CdWlsZGVyUmVtb3ZlUGFuZWwoUGFuZWwp"
"OgogICAgYmxfbGFiZWwgPSAi44Ki44OJ44Kq44Oz5YmK6ZmkIgogICAgYmxfaWRuYW1lID0gIlpJT05B"
"RF9QVF9idWlsZGVyX3JlbW92ZV9wYW5lbCIKICAgIGJsX3NwYWNlX3R5cGUgPSAnVklFV18zRCcKICAg"
"IGJsX3JlZ2lvbl90eXBlID0gJ1VJJwogICAgYmxfY2F0ZWdvcnkgPSAiQnVpbGRlciIKICAgIGJsX29w"
"dGlvbnMgPSB7J0RFRkFVTFRfQ0xPU0VEJ30KICAgIGJsX29yZGVyID0gMwoKICAgIGRlZiBkcmF3KHNl"
"bGYsIGNvbnRleHQpOgogICAgICAgIGxheW91dCA9IHNlbGYubGF5b3V0CiAgICAgICAgYm94ID0gbGF5"
"b3V0LmJveCgpCiAgICAgICAgYm94LmxhYmVsKHRleHQ9IuOBk+OBruODk+ODq+ODgOODvOOCouODieOC"
"quODs+OCkua2iOWOu+OBl+OBvuOBmSIsIGljb249J0VSUk9SJykKICAgICAgICBib3gub3BlcmF0b3Io"
"WklPTkFEX09UX1JlbW92ZUJ1aWxkZXIuYmxfaWRuYW1lLCBpY29uPSdDQU5DRUwnKQoKCiMgPT09PT09"
"PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMg55m76Yyy"
"44O76Kej6ZmkCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09"
"PT09PT09PT09CmNsYXNzZXMgPSAoCiAgICBaSU9OQURfQnVpbGRlckl0ZW0sCiAgICBaSU9OQURfQnVp"
"bGRlclByb3BzLAogICAgWklPTkFEX09UX0J1aWxkZXJBZGRDbGlwYm9hcmQsCiAgICBaSU9OQURfT1Rf"
"QnVpbGRlckFkZEZpbGUsCiAgICBaSU9OQURfT1RfQnVpbGRlclJlbW92ZSwKICAgIFpJT05BRF9PVF9P"
"cGVuVXJsLAogICAgWklPTkFEX09UX1JlbW92ZUJ1aWxkZXIsCiAgICBaSU9OQURfT1RfQnVpbGRlckdl"
"bmVyYXRlLAogICAgWklPTkFEX1VMX0J1aWxkZXJMaXN0LAogICAgWklPTkFEX1BUX0J1aWxkZXJQYW5l"
"bCwKICAgIFpJT05BRF9QVF9CdWlsZGVyTGlua3NQYW5lbCwKICAgIFpJT05BRF9QVF9CdWlsZGVyUmVt"
"b3ZlUGFuZWwsCikKCmRlZiByZWdpc3RlcigpOgogICAgZm9yIGNscyBpbiBjbGFzc2VzOgogICAgICAg"
"IGJweS51dGlscy5yZWdpc3Rlcl9jbGFzcyhjbHMpCiAgICBicHkudHlwZXMuU2NlbmUuemlvbmFkX2J1"
"aWxkZXJfcHJvcHMgPSBQb2ludGVyUHJvcGVydHkodHlwZT1aSU9OQURfQnVpbGRlclByb3BzKQoKZGVm"
"IHVucmVnaXN0ZXIoKToKICAgIGlmIGhhc2F0dHIoYnB5LnR5cGVzLlNjZW5lLCAnemlvbmFkX2J1aWxk"
"ZXJfcHJvcHMnKToKICAgICAgICBkZWwgYnB5LnR5cGVzLlNjZW5lLnppb25hZF9idWlsZGVyX3Byb3Bz"
"CiAgICBmb3IgY2xzIGluIHJldmVyc2VkKGNsYXNzZXMpOgogICAgICAgIGJweS51dGlscy51bnJlZ2lz"
"dGVyX2NsYXNzKGNscykKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICByZWdpc3Rlcigp"
)
},
]
class GENERATED_OT_OpenCode(Operator):
bl_idname = "generated.open_stored_code"
bl_label = "テキストエディタで開く"
code_index: bpy.props.IntProperty()
def execute(self, context):
item = STORED_CODES[self.code_index]
text_name = item["name"] + ".py"
# Base64文字列を元のPythonコードに復元する
code_text = base64.b64decode(item["code_b64"]).decode('utf-8')
if text_name in bpy.data.texts:
t = bpy.data.texts[text_name]
t.clear()
t.write(code_text)
else:
t = bpy.data.texts.new(text_name)
t.use_fake_user = True
t.write(code_text)
editor_found = False
for win in context.window_manager.windows:
for area in win.screen.areas:
if area.type == 'TEXT_EDITOR':
area.spaces.active.text = t
editor_found = True
break
if editor_found:
break
if not editor_found:
self.report({'INFO'}, f"'{text_name}' を生成しました。Text Editorを開いてください。")
return {'FINISHED'}
class GENERATED_OT_OpenUrl(Operator):
bl_idname = "generated.open_url"
bl_label = "リンクを開く"
url: bpy.props.StringProperty()
def execute(self, context):
webbrowser.open(self.url)
return {'FINISHED'}
class GENERATED_OT_RemoveContainer(Operator):
bl_idname = "generated.remove_container"
bl_label = "Unregister Container"
def execute(self, context):
bpy.app.timers.register(unregister, first_interval=0.01)
return {'FINISHED'}
class GENERATED_PT_ContainerPanel(Panel):
bl_label = "マイ・アドオン・コンテナ"
bl_idname = "GENERATED_PT_container_panel"
bl_space_type = 'VIEW_3D'
bl_region_type = 'UI'
bl_category = "Container"
bl_order = 1
def draw(self, context):
layout = self.layout
box = layout.box()
if not STORED_CODES:
box.label(text="コードがありません")
else:
for i, item in enumerate(STORED_CODES):
row = box.row(align=True)
row.label(text=item["name"], icon='FILE_SCRIPT')
op = row.operator(GENERATED_OT_OpenCode.bl_idname, text="展開して開く", icon='TEXT')
op.code_index = i
class GENERATED_PT_ContainerLinksPanel(Panel):
bl_label = "リンク"
bl_idname = "GENERATED_PT_container_links_panel"
bl_space_type = 'VIEW_3D'
bl_region_type = 'UI'
bl_category = "Container"
bl_order = 2
def draw(self, context):
layout = self.layout
box = layout.box()
op = box.operator(GENERATED_OT_OpenUrl.bl_idname, text="blender コンテナ 20260713", icon='URL')
op.url = "<https://note.com/zionadmillion/n/n9a47d88fe7b4>"
class GENERATED_PT_ContainerRemovePanel(Panel):
bl_label = "アドオン削除"
bl_idname = "GENERATED_PT_container_remove_panel"
bl_space_type = 'VIEW_3D'
bl_region_type = 'UI'
bl_category = "Container"
bl_options = {'DEFAULT_CLOSED'}
bl_order = 3
def draw(self, context):
layout = self.layout
box = layout.box()
box.label(text="このコンテナアドオンを消去します", icon='ERROR')
box.operator(GENERATED_OT_RemoveContainer.bl_idname, icon='CANCEL')
classes = (
GENERATED_OT_OpenCode,
GENERATED_OT_OpenUrl,
GENERATED_OT_RemoveContainer,
GENERATED_PT_ContainerPanel,
GENERATED_PT_ContainerLinksPanel,
GENERATED_PT_ContainerRemovePanel
)
def register():
for cls in classes:
bpy.utils.register_class(cls)
def unregister():
for cls in reversed(classes):
bpy.utils.unregister_class(cls)
if __name__ == "__main__":
register()