# Koder CLI installer for Windows 10 / 11. ASCII-only wrapper around the UTF-8 script. # PowerShell: irm https://github.com/KarmenLoop/koder-cli/releases/download/cli-0.4.1/koder-cli.ps1 | iex # CMD: powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://github.com/KarmenLoop/koder-cli/releases/download/cli-0.4.1/koder-cli.ps1 | iex" # Versioned release path. Keep the installer and manifest pinned to the same release. Current install commands are on https://karmenloop.com. $KoderInstaller = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String(( 'IyBLb2RlciBDTEkgaW5zdGFsbGVyIChXaW5kb3dzIDEwIC8gMTE7IFdpbmRvd3MgUG93ZXJTaGVsbCA1LjEgb3IgUG93ZXJTaGVs' + 'bCA3KToKIyAgIFBvd2VyU2hlbGw6ICBpcm0gaHR0cHM6Ly9naXRodWIuY29tL0thcm1lbkxvb3Ava29kZXItY2xpL3JlbGVhc2Vz' + 'L2Rvd25sb2FkL2NsaS0wLjQuMS9rb2Rlci1jbGkucHMxIHwgaWV4CiMgICBDTUQ6ICAgICAgICAgcG93ZXJzaGVsbCAtTm9Qcm9m' + 'aWxlIC1FeGVjdXRpb25Qb2xpY3kgQnlwYXNzIC1Db21tYW5kICJpcm0gaHR0cHM6Ly9naXRodWIuY29tL0thcm1lbkxvb3Ava29k' + 'ZXItY2xpL3JlbGVhc2VzL2Rvd25sb2FkL2NsaS0wLjQuMS9rb2Rlci1jbGkucHMxIHwgaWV4IgojIEEgbm9ybWFsIHRlcm1pbmFs' + 'IGFza3MgZm9yIGFjY2VwdC4gVW5hdHRlbmRlZCB1c2UgYWZ0ZXIgcmVhZGluZyB0aGUgbGljZW5zZSBzZXRzIEtPREVSX0VVTEFf' + 'QUNDRVBUPTEgZmlyc3QuCiMgVmVyc2lvbmVkIHJlbGVhc2UgcGF0aC4gS2VlcCB0aGUgaW5zdGFsbGVyIGFuZCBtYW5pZmVzdCBw' + 'aW5uZWQgdG8gdGhlIHNhbWUgcmVsZWFzZS4KIyBDdXJyZW50IGluc3RhbGwgY29tbWFuZHMgYXJlIG9uIGh0dHBzOi8va2FybWVu' + 'bG9vcC5jb20uCiMgSW5zdGFsbHMgaW50byAlTE9DQUxBUFBEQVRBJVxrb2Rlci1jbGkgd2l0aG91dCBhZG1pbmlzdHJhdG9yIHJp' + 'Z2h0cy4KIyBzY3JpcHRzL3BhY2subWpzIHNoaXBzIHRoaXMgZmlsZSB3cmFwcGVkIGluIGFuIEFTQ0lJLW9ubHkgYm9vdHN0cmFw' + 'LCBzbyB0aGUKIyBDaGluZXNlIG1lc3NhZ2VzIHN1cnZpdmUgYGlybSB8IGlleGAgd2hhdGV2ZXIgY2hhcnNldCB0aGUgc2VydmVy' + 'IHNlbmRzLgokRXJyb3JBY3Rpb25QcmVmZXJlbmNlID0gJ1N0b3AnCiMgV2luZG93cyBQb3dlclNoZWxsIDUuMSByZWRyYXdzIGEg' + 'cHJvZ3Jlc3MgYmFyIHBlciBjaHVuaywgd2hpY2ggbWFrZXMgZG93bmxvYWRzIGNyYXdsLgokUHJvZ3Jlc3NQcmVmZXJlbmNlID0g' + 'J1NpbGVudGx5Q29udGludWUnCiMgT2xkZXIgV2luZG93cyAxMCBidWlsZHMgc3RpbGwgZGVmYXVsdCAuTkVUIHRvIFRMUyAxLjA7' + 'IG5vZGVqcy5vcmcgbmVlZHMgVExTIDEuMi4KdHJ5IHsgW05ldC5TZXJ2aWNlUG9pbnRNYW5hZ2VyXTo6U2VjdXJpdHlQcm90b2Nv' + 'bCA9IFtOZXQuU2VydmljZVBvaW50TWFuYWdlcl06OlNlY3VyaXR5UHJvdG9jb2wgLWJvciBbTmV0LlNlY3VyaXR5UHJvdG9jb2xU' + 'eXBlXTo6VGxzMTIgfSBjYXRjaCB7fQoKJEJhc2UgPSBpZiAoJGVudjpLT0RFUl9JTlNUQUxMX0JBU0UpIHsgJGVudjpLT0RFUl9J' + 'TlNUQUxMX0JBU0UuVHJpbUVuZCgnLycpIH0gZWxzZSB7ICdodHRwczovL2dpdGh1Yi5jb20vS2FybWVuTG9vcC9rb2Rlci1jbGkv' + 'cmVsZWFzZXMvZG93bmxvYWQvY2xpLTAuNC4xJyB9CiRLb2RlckhvbWUgPSBpZiAoJGVudjpLT0RFUl9JTlNUQUxMX0hPTUUpIHsg' + 'JGVudjpLT0RFUl9JTlNUQUxMX0hPTUUgfSBlbHNlIHsgSm9pbi1QYXRoICRlbnY6TE9DQUxBUFBEQVRBICdrb2Rlci1jbGknIH0K' + 'JEJpbkRpciA9IEpvaW4tUGF0aCAkS29kZXJIb21lICdiaW4nCiROb2RlRGlzdCA9IGlmICgkZW52OktPREVSX05PREVfRElTVCkg' + 'eyAkZW52OktPREVSX05PREVfRElTVCB9IGVsc2UgeyAnaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QnIH0KJE5vZGVWZXJzaW9uID0g' + 'aWYgKCRlbnY6S09ERVJfTk9ERV9WRVJTSU9OKSB7ICRlbnY6S09ERVJfTk9ERV9WRVJTSU9OIH0gZWxzZSB7ICcyMi4yMy4zJyB9' + 'CiRaaCA9IChHZXQtQ3VsdHVyZSkuTmFtZSAtbGlrZSAnemgqJwpmdW5jdGlvbiBTYXkoJHpoLCAkZW4pIHsgaWYgKCRaaCkgeyBX' + 'cml0ZS1Ib3N0ICR6aCB9IGVsc2UgeyBXcml0ZS1Ib3N0ICRlbiB9IH0KZnVuY3Rpb24gRmFpbCgkemgsICRlbikgeyBpZiAoJFpo' + 'KSB7IHRocm93ICJLb2RlciBDTEkg5a6J6KOF5aSx6LSl77yaJHpoIiB9IGVsc2UgeyB0aHJvdyAiS29kZXIgQ0xJIGluc3RhbGwg' + 'ZmFpbGVkOiAkZW4iIH0gfQpmdW5jdGlvbiBTaGEyNTYoJHBhdGgpIHsKICAkc3RyZWFtID0gW0lPLkZpbGVdOjpPcGVuUmVhZCgk' + 'cGF0aCkKICAkYWxnb3JpdGhtID0gJG51bGwKICB0cnkgewogICAgJGFsZ29yaXRobSA9IFtTZWN1cml0eS5DcnlwdG9ncmFwaHku' + 'U0hBMjU2XTo6Q3JlYXRlKCkKICAgIHJldHVybiAoW0JpdENvbnZlcnRlcl06OlRvU3RyaW5nKCRhbGdvcml0aG0uQ29tcHV0ZUhh' + 'c2goJHN0cmVhbSkpKS5SZXBsYWNlKCctJywgJycpLlRvTG93ZXJJbnZhcmlhbnQoKQogIH0gZmluYWxseSB7CiAgICBpZiAoJGFs' + 'Z29yaXRobSkgeyAkYWxnb3JpdGhtLkRpc3Bvc2UoKSB9CiAgICAkc3RyZWFtLkRpc3Bvc2UoKQogIH0KfQpmdW5jdGlvbiBBc2Np' + 'aSgkdGV4dCkgeyAkdGV4dCAtbm90bWF0Y2ggJ1teXHgyMC1ceDdlXScgfQpmdW5jdGlvbiBDYW5jZWwoJHpoLCAkZW4pIHsgaWYg' + 'KCRaaCkgeyB0aHJvdyAiS29kZXIgQ0xJIOW3suWPlua2iO+8miR6aCIgfSBlbHNlIHsgdGhyb3cgIktvZGVyIENMSSBjYW5jZWxs' + 'ZWQ6ICRlbiIgfSB9CiMgRXZlcnkgbmV0d29yayBzdGVwIHNob3dzIGl0cyBwaGFzZSwgdGhlbiByZXBvcnRzIHByb2dyZXNzIGF0' + 'IGxlYXN0IGV2ZXJ5IGZpdmUKIyBzZWNvbmRzLiBBIGJsb2NrZWQgZW5kcG9pbnQgaGFzIGEgZmluaXRlIGRlYWRsaW5lIHJhdGhl' + 'ciB0aGFuIHdhaXRpbmcgZm9yZXZlci4KJERvd25sb2FkVGltZW91dCA9IDEwMDAwMDAwMAppZiAoJGVudjpLT0RFUl9ET1dOTE9B' + 'RF9USU1FT1VUX1NFQ09ORFMpIHsKICAkdmFsdWUgPSAwCiAgaWYgKFtpbnRdOjpUcnlQYXJzZSgkZW52OktPREVSX0RPV05MT0FE' + 'X1RJTUVPVVRfU0VDT05EUywgW3JlZl0kdmFsdWUpIC1hbmQgJHZhbHVlIC1nZSAxIC1hbmQgJHZhbHVlIC1sZSAxMDAwMDAwMDAp' + 'IHsgJERvd25sb2FkVGltZW91dCA9ICR2YWx1ZSB9IGVsc2UgeyBGYWlsICfkuIvovb3otoXml7blv4XpobvmmK8gMeKAkzEwMDAw' + 'MDAwMCDnp5LjgIInICdLT0RFUl9ET1dOTE9BRF9USU1FT1VUX1NFQ09ORFMgbXVzdCBiZSAxLi4xMDAwMDAwMDAuJyB9Cn0KZnVu' + 'Y3Rpb24gUHJvZ3Jlc3NTZWNvbmRzKCRuYW1lLCAkZmFsbGJhY2ssICRtYXhpbXVtKSB7CiAgJHJhdyA9IFtFbnZpcm9ubWVudF06' + 'OkdldEVudmlyb25tZW50VmFyaWFibGUoJG5hbWUpCiAgaWYgKC1ub3QgJHJhdykgeyByZXR1cm4gJGZhbGxiYWNrIH0KICAkdmFs' + 'dWUgPSAwCiAgaWYgKFtpbnRdOjpUcnlQYXJzZSgkcmF3LCBbcmVmXSR2YWx1ZSkgLWFuZCAkdmFsdWUgLWdlIDEgLWFuZCAkdmFs' + 'dWUgLWxlICRtYXhpbXVtKSB7IHJldHVybiAkdmFsdWUgfQogIEZhaWwgIiR7bmFtZX0g5b+F6aG75pivIDHigJMke21heGltdW19' + 'IOenkuOAgiIgIiR7bmFtZX0gbXVzdCBiZSAxLi4ke21heGltdW19LiIKfQokQ29ubmVjdFRpbWVvdXQgPSBQcm9ncmVzc1NlY29u' + 'ZHMgJ0tPREVSX0RPV05MT0FEX0NPTk5FQ1RfVElNRU9VVF9TRUNPTkRTJyAzMCAzNjAwCiRJZGxlVGltZW91dCA9IFByb2dyZXNz' + 'U2Vjb25kcyAnS09ERVJfRE9XTkxPQURfSURMRV9USU1FT1VUX1NFQ09ORFMnIDYwIDg2NDAwCmZ1bmN0aW9uIEZldGNoT25lKCR1' + 'cmwsICRmaWxlLCAkemgsICRlbiwgJGJ1ZGdldCA9ICREb3dubG9hZFRpbWVvdXQpIHsKICBTYXkgJHpoICRlbgogICRjbGllbnQg' + 'PSBOZXctT2JqZWN0IE5ldC5XZWJDbGllbnQKICAkd2FpdCA9ICRudWxsCiAgJGNsb2NrID0gW0RpYWdub3N0aWNzLlN0b3B3YXRj' + 'aF06OlN0YXJ0TmV3KCkKICAkbmV4dFByb2dyZXNzID0gNQogICRsYXN0Qnl0ZXMgPSAwCiAgJGxhc3RQcm9ncmVzcyA9IDAKICB0' + 'cnkgewogICAgJGRvd25sb2FkID0gJGNsaWVudC5Eb3dubG9hZEZpbGVUYXNrQXN5bmMoW1VyaV0kdXJsLCBbc3RyaW5nXSRmaWxl' + 'KQogICAgJHdhaXQgPSAoW0lBc3luY1Jlc3VsdF0kZG93bmxvYWQpLkFzeW5jV2FpdEhhbmRsZQogICAgd2hpbGUgKC1ub3QgJHdh' + 'aXQuV2FpdE9uZSgyMDApKSB7CiAgICAgICRieXRlcyA9IDAKICAgICAgaWYgKFtJTy5GaWxlXTo6RXhpc3RzKCRmaWxlKSkgeyAk' + 'Ynl0ZXMgPSAoTmV3LU9iamVjdCBJTy5GaWxlSW5mbygkZmlsZSkpLkxlbmd0aCB9CiAgICAgIGlmICgkYnl0ZXMgLWd0ICRsYXN0' + 'Qnl0ZXMpIHsgJGxhc3RCeXRlcyA9ICRieXRlczsgJGxhc3RQcm9ncmVzcyA9ICRjbG9jay5FbGFwc2VkLlRvdGFsU2Vjb25kcyB9' + 'CiAgICAgICRwcm9ncmVzc0J1ZGdldCA9IGlmICgkbGFzdEJ5dGVzIC1ndCAwKSB7ICRJZGxlVGltZW91dCB9IGVsc2UgeyAkQ29u' + 'bmVjdFRpbWVvdXQgfQogICAgICBpZiAoKCRjbG9jay5FbGFwc2VkLlRvdGFsU2Vjb25kcyAtICRsYXN0UHJvZ3Jlc3MpIC1nZSAk' + 'cHJvZ3Jlc3NCdWRnZXQpIHsKICAgICAgICAkY2xpZW50LkNhbmNlbEFzeW5jKCkKICAgICAgICBbdm9pZF0kd2FpdC5XYWl0T25l' + 'KDMwMDApCiAgICAgICAgRmFpbCAi5LiL6L295YGc5rue77yaJHtwcm9ncmVzc0J1ZGdldH0g56eS5rKh5pyJ5pS25Yiw5paw5pWw' + '5o2u77yMJCgoW1VyaV0kdXJsKS5Ib3N0KeOAguivt+ajgOafpee9kee7nOaIluS9v+eUqOWPr+eUqOeahOWumOaWueS4i+i9vea6' + 'kO+8m+ayoeaciea/gOa0u+aWsOeJiOacrOOAgiIgIkRvd25sb2FkIHN0YWxsZWQ6IG5vIG5ldyBkYXRhIGZvciAke3Byb2dyZXNz' + 'QnVkZ2V0fXMgZnJvbSAkKChbVXJpXSR1cmwpLkhvc3QpLiBDaGVjayB0aGUgbmV0d29yayBvciBhdmFpbGFibGUgb2ZmaWNpYWwg' + 'c291cmNlczsgbm8gbmV3IHZlcnNpb24gd2FzIGFjdGl2YXRlZC4iCiAgICAgIH0KICAgICAgaWYgKCRjbG9jay5FbGFwc2VkLlRv' + 'dGFsU2Vjb25kcyAtZ2UgJGJ1ZGdldCkgewogICAgICAgICRjbGllbnQuQ2FuY2VsQXN5bmMoKQogICAgICAgIFt2b2lkXSR3YWl0' + 'LldhaXRPbmUoMzAwMCkKICAgICAgICBGYWlsICLkuIvovb3otoXml7bvvIgke0Rvd25sb2FkVGltZW91dH0g56eS77yJ77yaJCgo' + 'W1VyaV0kdXJsKS5Ib3N0KeOAguivt+ajgOafpee9kee7nC/ku6PnkIblkI7ph43or5XvvJvmsqHmnInmv4DmtLvmlrDniYjmnKzj' + 'gIIiICJEb3dubG9hZCB0aW1lZCBvdXQgYWZ0ZXIgJHtEb3dubG9hZFRpbWVvdXR9cyBmcm9tICQoKFtVcmldJHVybCkuSG9zdCku' + 'IENoZWNrIHRoZSBuZXR3b3JrL3Byb3h5IGFuZCByZXRyeTsgbm8gbmV3IHZlcnNpb24gd2FzIGFjdGl2YXRlZC4iCiAgICAgIH0K' + 'ICAgICAgaWYgKCRjbG9jay5FbGFwc2VkLlRvdGFsU2Vjb25kcyAtZ2UgJG5leHRQcm9ncmVzcykgewogICAgICAgICRtYiA9ICd7' + 'MDpOMX0nIC1mICgkYnl0ZXMgLyAxTUIpCiAgICAgICAgJHNlY29uZHMgPSBbaW50XSRjbG9jay5FbGFwc2VkLlRvdGFsU2Vjb25k' + 'cwogICAgICAgIFNheSAi5LuN5Zyo5LiL6L2977yaJHttYn0gTULvvIzlt7LnrYnlvoUgJHtzZWNvbmRzfSDnp5LvvIjmnKzmrKHk' + 'uIrpmZAgJHtEb3dubG9hZFRpbWVvdXR9IOenku+8ieOAgiIgIkRvd25sb2FkaW5nOiAke21ifSBNQiByZWNlaXZlZCwgJHtzZWNv' + 'bmRzfXMgZWxhcHNlZCAoJHtEb3dubG9hZFRpbWVvdXR9cyBsaW1pdCkuIgogICAgICAgICRuZXh0UHJvZ3Jlc3MgKz0gNQogICAg' + 'ICB9CiAgICB9CiAgICAkZG93bmxvYWQuR2V0QXdhaXRlcigpLkdldFJlc3VsdCgpCiAgfSBjYXRjaCB7CiAgICBpZiAoJF8uRXhj' + 'ZXB0aW9uLk1lc3NhZ2UgLWxpa2UgJ0tvZGVyIENMSSAqJykgeyB0aHJvdyB9CiAgICBGYWlsICLkuIvovb3lpLHotKXvvJokKChb' + 'VXJpXSR1cmwpLkhvc3Qp44CC6K+35qOA5p+l572R57ucL+S7o+eQhuWQjumHjeivleOAgiIgIkRvd25sb2FkIGZhaWxlZCBmcm9t' + 'ICQoKFtVcmldJHVybCkuSG9zdCkuIENoZWNrIHRoZSBuZXR3b3JrL3Byb3h5IGFuZCByZXRyeS4iCiAgfSBmaW5hbGx5IHsKICAg' + 'ICRjbGllbnQuRGlzcG9zZSgpCiAgICBpZiAoJGRvd25sb2FkIC1hbmQgJGRvd25sb2FkLklzQ29tcGxldGVkKSB7ICRkb3dubG9h' + 'ZC5EaXNwb3NlKCkgfQogIH0KfQojIFRoZSBvZmZpY2lhbCB3ZWJzaXRlIG1pcnJvcnMgdGhlc2UgZXhhY3QgcmVsZWFzZS9ydW50' + 'aW1lIGJ5dGVzLiBLZWVwIGV4cGxpY2l0CiMgY3VzdG9tIGJhc2VzIHVuY2hhbmdlZCBhbmQgbmV2ZXIgcmV0cnkgYSBjaGVja3N1' + 'bSBmYWlsdXJlIGFnYWluc3QgYW5vdGhlciBob3N0LgpmdW5jdGlvbiBGZXRjaCgkdXJsLCAkZmlsZSwgJHpoLCAkZW4pIHsKICAk' + 'c291cmNlcyA9IEAoJHVybCkKICBpZiAoLW5vdCAkZW52OktPREVSX0lOU1RBTExfQkFTRSAtYW5kICR1cmwuU3RhcnRzV2l0aCgi' + 'JEJhc2UvIikpIHsKICAgICRtaXJyb3IgPSAiaHR0cHM6Ly9rYXJtZW5sb29wLmNvbS9pbnN0YWxsL2NsaS0wLjQuMSIgKyAkdXJs' + 'LlN1YnN0cmluZygkQmFzZS5MZW5ndGgpCiAgICAkc291cmNlcyA9IEAoJG1pcnJvciwgJHVybCkKICB9IGVsc2VpZiAoLW5vdCAk' + 'ZW52OktPREVSX05PREVfRElTVCAtYW5kICR1cmwuU3RhcnRzV2l0aCgnaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QvJykpIHsKICAg' + 'ICRtaXJyb3IgPSAnaHR0cHM6Ly9rYXJtZW5sb29wLmNvbS9pbnN0YWxsL25vZGUnICsgJHVybC5TdWJzdHJpbmcoJ2h0dHBzOi8v' + 'bm9kZWpzLm9yZy9kaXN0Jy5MZW5ndGgpCiAgICAkc291cmNlcyA9IEAoJG1pcnJvciwgJHVybCkKICB9CiAgJHRyYW5zZmVyQ2xv' + 'Y2sgPSBbRGlhZ25vc3RpY3MuU3RvcHdhdGNoXTo6U3RhcnROZXcoKQogIGZvciAoJGkgPSAwOyAkaSAtbHQgJHNvdXJjZXMuQ291' + 'bnQ7ICRpKyspIHsKICAgIGlmICgkaSAtZ3QgMCkgeyBTYXkgJ+W9k+WJjeS4i+i9vea6kOS4jeWPr+eUqO+8jOato+WcqOWIh+aN' + 'ouWumOaWueWkh+eUqOS4i+i9vea6kOKApuKApicgJ1RoZSBkb3dubG9hZCBzb3VyY2UgaXMgdW5hdmFpbGFibGU7IHRyeWluZyB0' + 'aGUgb2ZmaWNpYWwgZmFsbGJhY2suLi4nIH0KICAgIHRyeSB7CiAgICAgICRyZW1haW5pbmcgPSAkRG93bmxvYWRUaW1lb3V0IC0g' + 'JHRyYW5zZmVyQ2xvY2suRWxhcHNlZC5Ub3RhbFNlY29uZHMKICAgICAgaWYgKCRyZW1haW5pbmcgLWxlIDApIHsgRmFpbCAi5LiL' + '6L296LaF5pe277yIJHtEb3dubG9hZFRpbWVvdXR9IOenku+8ieOAgiIgIkRvd25sb2FkIHRpbWVkIG91dCBhZnRlciAke0Rvd25s' + 'b2FkVGltZW91dH1zLiIgfQogICAgICBGZXRjaE9uZSAkc291cmNlc1skaV0gJGZpbGUgJHpoICRlbiAkcmVtYWluaW5nCiAgICAg' + 'IHJldHVybgogICAgfSBjYXRjaCB7IGlmICgkaSAtZXEgJHNvdXJjZXMuQ291bnQgLSAxKSB7IHRocm93IH0gfQogIH0KfQoKZnVu' + 'Y3Rpb24gTm9kZU1ham9yKCRmaWxlKSB7CiAgJHByb2JlID0gTmV3LU9iamVjdCBEaWFnbm9zdGljcy5Qcm9jZXNzCiAgdHJ5IHsK' + 'ICAgICRwcm9iZS5TdGFydEluZm8uRmlsZU5hbWUgPSAkZmlsZQogICAgJHByb2JlLlN0YXJ0SW5mby5Bcmd1bWVudHMgPSAnLWUg' + 'InRyeXtjb25zdCBbYSxiXT1wcm9jZXNzLnZlcnNpb25zLm5vZGUuc3BsaXQoJycuJycpLm1hcChOdW1iZXIpO2lmKChhPT09MjIm' + 'JmI+PTIxfHxhPj0yNCkmJnByb2Nlc3MuYWxsb3dlZE5vZGVFbnZpcm9ubWVudEZsYWdzLmhhcygnJy0tdXNlLWVudi1wcm94eScn' + 'KSl7cmVxdWlyZSgnJ25vZGU6c3FsaXRlJycpO3Byb2Nlc3Muc3Rkb3V0LndyaXRlKHByb2Nlc3MudmVyc2lvbnMubm9kZSl9ZWxz' + 'ZSBwcm9jZXNzLmV4aXQoMSl9Y2F0Y2h7cHJvY2Vzcy5leGl0KDEpfSInCiAgICAkcHJvYmUuU3RhcnRJbmZvLlVzZVNoZWxsRXhl' + 'Y3V0ZSA9ICRmYWxzZQogICAgJHByb2JlLlN0YXJ0SW5mby5DcmVhdGVOb1dpbmRvdyA9ICR0cnVlCiAgICAkcHJvYmUuU3RhcnRJ' + 'bmZvLlJlZGlyZWN0U3RhbmRhcmRPdXRwdXQgPSAkdHJ1ZQogICAgJHByb2JlLlN0YXJ0SW5mby5SZWRpcmVjdFN0YW5kYXJkRXJy' + 'b3IgPSAkdHJ1ZQogICAgW3ZvaWRdJHByb2JlLlN0YXJ0KCkKICAgIGlmICgtbm90ICRwcm9iZS5XYWl0Rm9yRXhpdCg1MDAwKSkg' + 'ewogICAgICAkcHJvYmUuS2lsbCgpCiAgICAgIFt2b2lkXSRwcm9iZS5XYWl0Rm9yRXhpdCgxMDAwKQogICAgICBTYXkgJ+eOsOac' + 'iSBOb2RlLmpzIDUg56eS5YaF5pyq5ZON5bqU77yM5pS555So5a6J6KOF5Zmo6L+Q6KGM5pe244CCJyAnRXhpc3RpbmcgTm9kZS5q' + 'cyBkaWQgbm90IHJlc3BvbmQgd2l0aGluIDVzOyB1c2luZyB0aGUgaW5zdGFsbGVyIHJ1bnRpbWUuJwogICAgICByZXR1cm4gMAog' + 'ICAgfQogICAgJHZlcnNpb24gPSAkcHJvYmUuU3RhbmRhcmRPdXRwdXQuUmVhZFRvRW5kKCkuVHJpbSgpCiAgICBpZiAoJHByb2Jl' + 'LkV4aXRDb2RlIC1lcSAwIC1hbmQgJHZlcnNpb24gLW1hdGNoICdeKFxkKylcLihcZCspXC4nKSB7IGlmIChbaW50XSRNYXRjaGVz' + 'WzFdIC1nZSAyNCAtb3IgKFtpbnRdJE1hdGNoZXNbMV0gLWVxIDIyIC1hbmQgW2ludF0kTWF0Y2hlc1syXSAtZ2UgMjEpKSB7IHJl' + 'dHVybiBbaW50XSRNYXRjaGVzWzFdIH0gfQogICAgcmV0dXJuIDAKICB9IGNhdGNoIHsgcmV0dXJuIDAgfSBmaW5hbGx5IHsgJHBy' + 'b2JlLkRpc3Bvc2UoKSB9Cn0KCiRjb25zZW50ID0gQCIKS29kZXIgQ0xJICRCYXNlCuWumOaWueWboumYnyAvIE9mZmljaWFsIHRl' + 'YW06IEtBUk1FTkxPT1Ag5a6Y5pa55Zui6ZifIC8gS0FSTUVOTE9PUCBPZmZpY2lhbCBUZWFtCktvZGVy77ya5Liq5Lq66Z2e5ZWG' + '5Lia5pys5Zyw5L2/55So5YWN6LS577yM6Ieq5o6l5qih5Z6LIEFQSe+8m+aKiuaDs+azleS6pOe7meS7u+WKoe+8jOaKiuadg+mZ' + 'kOeVmeWcqOS9oOaJi+mHjOOAggpLb2RlcjogZnJlZSBwZXJzb25hbCwgbm9uY29tbWVyY2lhbCBsb2NhbCB1c2UsIHlvdXIgb3du' + 'IG1vZGVsIEFQSSwgYW5kIHBlcm1pc3Npb25zIHlvdSBjb250cm9sLgpLQVJNRU4gTE9PUCDmnKzlnLDku7vliqHlhoXmoLjvvJro' + 'rqHliJLjgIHmnYPpmZDmoLjlr7njgIHlt6XlhbfmiafooYzkuI7nu5PmnpzorrDlvZXvvIzorqnlt6XkvZznqLPnqLPlvoDliY3o' + 'tbDjgIIKVGhlIGxvY2FsIEtBUk1FTiBMT09QIHRhc2sga2VybmVsIGNvbm5lY3RzIHBsYW5zLCBwZXJtaXNzaW9uIGNoZWNrcywg' + 'dG9vbHMsIGFuZCBzYXZlZCByZXN1bHRzLgrkuKrkurrorrjlj6/kuI3ljIXlkKvkuozmrKHlvIDlj5HjgIHkv67mlLnoh6rmnInl' + 'rp7njrDku6PnoIHmiJbllYbnlKjjgILllYbnlKjkuI7nu4Tnu4fpg6jnvbLpobvljZXni6zkuabpnaLmjojmnYPjgILnrKzkuInm' + 'lrnlkozml6fniYjmnKzljp/orrjlj6/kuI3lj5jjgIIKTm8gc2Vjb25kYXJ5IGRldmVsb3BtZW50LCBwcm9wcmlldGFyeSBjb2Rl' + 'IGNoYW5nZXMgb3IgY29tbWVyY2lhbCB1c2UgdW5kZXIgdGhlIHBlcnNvbmFsIGxpY2Vuc2UuIENvbW1lcmNpYWwgdXNlIGFuZCBv' + 'cmdhbml6YXRpb25hbCBkZXBsb3ltZW50IHJlcXVpcmUgc2VwYXJhdGUgd3JpdHRlbiBhdXRob3JpemF0aW9uLiBUaGlyZC1wYXJ0' + 'eSBhbmQgZWFybGllciBsaWNlbnNlcyByZW1haW4gaW50YWN0Lgrlhazlj7jmjojmnYPmnI3liqHvvIvkuJPnlKjnp4HmnInku5Pl' + 'upPvvJppbmZvQGthcm1lbmxvb3AuY29t77yb5a6J6KOF5ZCO6L+Q6KGMIGtvZGVyIGJ1c2luZXNzIOafpeeci+a0veivouivtOaY' + 'juOAggpDb21wYW55IGxpY2Vuc2luZyArIGRlZGljYXRlZCBwcml2YXRlIHJlcG9zaXRvcmllczogaW5mb0BrYXJtZW5sb29wLmNv' + 'bS4gUnVuIGtvZGVyIGJ1c2luZXNzIGZvciBpbnF1aXJ5IGRldGFpbHMuCuWWnOasoiBLb2Rlcu+8n+asoui/juiHquaEv+eCuSBT' + 'dGFy77yaaHR0cHM6Ly9naXRodWIuY29tL0thcm1lbkxvb3Ava29kZXItY2xp77yb5Y+v55u05o6l6Lez6L+H77yM5LiN5b2x5ZON' + '5L2/55So44CCCkZpbmQgS29kZXIgdXNlZnVsPyBBbiBvcHRpb25hbCBzdGFyIGhlbHBzOiBodHRwczovL2dpdGh1Yi5jb20vS2Fy' + 'bWVuTG9vcC9rb2Rlci1jbGkuIFNraXAgZnJlZWx5OyBpdCBuZXZlciBhZmZlY3RzIGFjY2Vzcy4K6ZqQ56eB5YWo5paHIC8gRnVs' + 'bCBwcml2YWN5IG5vdGljZXM6IGh0dHBzOi8va2FybWVubG9vcC5jb20vY2xpLmh0bWwjY2xpLXByaXZhY3kK5a6J6KOF5ZCO56a7' + '57q/5p+l55yLIC8gUmVhZCBvZmZsaW5lIGFmdGVyIGluc3RhbGw6IGtvZGVyIHByaXZhY3kgY29uc3VtZXIgLyBrb2RlciBwcml2' + 'YWN5IHN0YXRlbWVudArmiYDlnKjlnLAgLyBMb2NhdGlvbjog5Lit5Zu95LiK5rW3IC8gU2hhbmdoYWksIENoaW5hCuWumOe9kSAv' + 'IFdlYnNpdGU6IGh0dHBzOi8va2FybWVubG9vcC5jb20K6YKu566xIC8gRW1haWw6IGluZm9Aa2FybWVubG9vcC5jb20K5L2/55So' + '6K645Y+vIC8gTGljZW5zZTogJEJhc2UvRVVMQS5tZArmjojmnYPor7TmmI4gLyBDb25zZW50IGd1aWRlOiAkQmFzZS9BQ0NFUFRB' + 'TkNFLm1kCueJiOadg+S4juWbvemZheeUqOaIt+ivtOaYjiAvIENvcHlyaWdodCBhbmQgaW50ZXJuYXRpb25hbC11c2Ugbm90aWNl' + 'OiAkQmFzZS9MRUdBTC1OT1RJQ0UubWQK5a6J6KOF5ZCO5p+l55yL5YWo5paHIC8gUmVhZCB0aGUgaW5zdGFsbGVkIHRleHQ6IGtv' + 'ZGVyIGV1bGEK5Liq5Lq66Z2e5ZWG5Lia5pys5Zyw5L2/55So5YWN6LS544CC5o6l5Y+X5Y+q6KGo56S65ZCM5oSPIEtvZGVyLUVV' + 'TEEtMS4x77yM5LiN5Lya5byA5ZCv5Zac5aW95a2m5Lmg44CB5ZCM5q2l44CB5bqU55So44CB55S16ISR5oiW5Y+R5raI5oGv5p2D' + '6ZmQ44CCClBlcnNvbmFsLCBub25jb21tZXJjaWFsIGxvY2FsIHVzZSBpcyBmcmVlLiBBY2NlcHRhbmNlIGFncmVlcyB0byBLb2Rl' + 'ci1FVUxBLTEuMSBvbmx5LiBJdCBkb2VzIG5vdCBlbmFibGUgcHJlZmVyZW5jZSBsZWFybmluZywgc3luYywgYXBwcywgY29tcHV0' + 'ZXIgYWNjZXNzLCBvciBtZXNzYWdpbmcuCui+k+WFpSBhY2NlcHQg5bm25Zue6L2m77ya5ZCM5oSP5bm257un57ut44CC6L6T5YWl' + 'IGRlY2xpbmUg5oiW5oyJIEN0cmwrQ++8muWPlua2iOOAguepuuWbnui9puS8mumHjeaWsOivoumXru+8jOS4jeS8muinhuS4uuWQ' + 'jOaEj+aIlueri+WNs+mAgOWHuuOAguWPlua2iOWQjuS4jeS8muS4i+i9veeoi+W6j+OAgeWIm+W7uuWuieijheebruW9leOAgeS/' + 'ruaUuSBQQVRIIOaIluWGmeWFpeaOpeWPl+iusOW9leOAggpUeXBlIGFjY2VwdCBhbmQgcHJlc3MgRW50ZXIgdG8gYWdyZWUgYW5k' + 'IGNvbnRpbnVlLiBUeXBlIGRlY2xpbmUgb3IgcHJlc3MgQ3RybCtDIHRvIGNhbmNlbC4gQW4gZW1wdHkgRW50ZXIgYXNrcyBhZ2Fp' + 'bjsgaXQgbmV2ZXIgYWNjZXB0cyBvciBpbW1lZGlhdGVseSBleGl0cy4gQ2FuY2VsbGF0aW9uIGRvZXMgbm90IGRvd25sb2FkIHRo' + 'ZSBwcm9ncmFtLCBjcmVhdGUgYW4gaW5zdGFsbCBkaXJlY3RvcnksIGNoYW5nZSBQQVRILCBvciB3cml0ZSBhbiBhY2NlcHRhbmNl' + 'IHJlY29yZC4K5Y+q5pyJ5bey57uP6ZiF6K+75bm25ZCM5oSP55qE5Lq677yM5omN5Y+v5Zyo6Ieq5Yqo6YOo572y5Lit5pi+5byP' + '6K6+572uIEtPREVSX0VVTEFfQUNDRVBUPTHjgILlhbbku5blgLzjgIEtLXllcyDmiJbku7vmhI/mloflrZfpg73kuI3mmK/lkIzm' + 'hI/jgIIKT25seSBhIHBlcnNvbiB3aG8gaGFzIHJlYWQgYW5kIGFncmVlZCBtYXkgc2V0IEtPREVSX0VVTEFfQUNDRVBUPTEgZm9y' + 'IHVuYXR0ZW5kZWQgZGVwbG95bWVudC4gQW55IG90aGVyIHZhbHVlLCAtLXllcywgb3Igb3RoZXIgdGV4dCBpcyBub3QgYWNjZXB0' + 'YW5jZS4K5peg5Lqk5LqS57uI56uv5pe2IC8gV2l0aG91dCBhbiBpbnRlcmFjdGl2ZSB0ZXJtaW5hbDoKICBQb3dlclNoZWxsOiBg' + 'JGVudjpLT0RFUl9FVUxBX0FDQ0VQVCA9ICcxJzsgaXJtICRCYXNlL2tvZGVyLWNsaS5wczEgfCBpZXgKICBDTUQ6IHNldCAiS09E' + 'RVJfRVVMQV9BQ0NFUFQ9MSIgJiBwb3dlcnNoZWxsIC1Ob1Byb2ZpbGUgLUV4ZWN1dGlvblBvbGljeSBCeXBhc3MgLUNvbW1hbmQg' + 'ImlybSAkQmFzZS9rb2Rlci1jbGkucHMxIHwgaWV4IgoiQAppZiAoJGVudjpLT0RFUl9FVUxBX0FDQ0VQVCAtZXEgJzEnKSB7Cn0g' + 'ZWxzZWlmICgkbnVsbCAtbmUgJGVudjpLT0RFUl9FVUxBX0FDQ0VQVCAtYW5kICRlbnY6S09ERVJfRVVMQV9BQ0NFUFQgLW5lICcn' + 'KSB7CiAgQ2FuY2VsICdLT0RFUl9FVUxBX0FDQ0VQVCDlj6rmnInnsr7noa7lgLwgMSDooajnpLrlt7Lnu4/pmIXor7vlubblkIzm' + 'hI/jgILmsqHmnInkuIvovb3miJblronoo4XjgILov5nkuI3mmK/nvZHnu5zlpLHotKXjgIInICdPbmx5IEtPREVSX0VVTEFfQUND' + 'RVBUPTEgbWVhbnMgdGhlIHRlcm1zIHdlcmUgcmVhZCBhbmQgYWNjZXB0ZWQuIE5vdGhpbmcgd2FzIGRvd25sb2FkZWQgb3IgaW5z' + 'dGFsbGVkLiBUaGlzIGlzIG5vdCBhIG5ldHdvcmsgZmFpbHVyZS4nCn0gZWxzZSB7CiAgJGludGVyYWN0aXZlID0gJGZhbHNlCiAg' + 'dHJ5IHsKICAgICRub25JbnRlcmFjdGl2ZSA9ICRmYWxzZQogICAgZm9yZWFjaCAoJGFyZyBpbiBbRW52aXJvbm1lbnRdOjpHZXRD' + 'b21tYW5kTGluZUFyZ3MoKSkgeyBpZiAoJGFyZyAtZXEgJy1Ob25JbnRlcmFjdGl2ZScpIHsgJG5vbkludGVyYWN0aXZlID0gJHRy' + 'dWUgfSB9CiAgICBpZiAoW0Vudmlyb25tZW50XTo6VXNlckludGVyYWN0aXZlIC1hbmQgJEhvc3QuTmFtZSAtZXEgJ0NvbnNvbGVI' + 'b3N0JyAtYW5kIC1ub3QgJG5vbkludGVyYWN0aXZlIC1hbmQgLW5vdCBbQ29uc29sZV06OklzSW5wdXRSZWRpcmVjdGVkKSB7ICRp' + 'bnRlcmFjdGl2ZSA9ICR0cnVlIH0KICB9IGNhdGNoIHsgJGludGVyYWN0aXZlID0gJGZhbHNlIH0KICBpZiAoLW5vdCAkaW50ZXJh' + 'Y3RpdmUpIHsKICAgIFdyaXRlLUhvc3QgJGNvbnNlbnQKICAgIENhbmNlbCAn5rKh5pyJ5Y+v5Lqk5LqS55qE5o6n5Yi25Y+w77yM' + '5oiW5qCH5YeG6L6T5YWl5bey6KKr6YeN5a6a5ZCR44CC6YeN5a6a5ZCR55qE5paH5a2X5LiN5piv5ZCM5oSP44CC5rKh5pyJ5LiL' + '6L295oiW5a6J6KOF44CC6L+Z5LiN5piv572R57uc5aSx6LSl44CCJyAnTm8gaW50ZXJhY3RpdmUgY29uc29sZSBpcyBhdmFpbGFi' + 'bGUsIG9yIHN0YW5kYXJkIGlucHV0IGlzIHJlZGlyZWN0ZWQuIFJlZGlyZWN0ZWQgdGV4dCBpcyBub3QgYWNjZXB0YW5jZS4gTm90' + 'aGluZyB3YXMgZG93bmxvYWRlZCBvciBpbnN0YWxsZWQuIFRoaXMgaXMgbm90IGEgbmV0d29yayBmYWlsdXJlLicKICB9CiAgV3Jp' + 'dGUtSG9zdCAkY29uc2VudAogIHdoaWxlICgkdHJ1ZSkgewogICAgdHJ5IHsgJGFuc3dlciA9IFJlYWQtSG9zdCAnYWNjZXB0IC8g' + 'ZGVjbGluZScgfSBjYXRjaCB7ICRhbnN3ZXIgPSAkbnVsbCB9CiAgICBpZiAoJG51bGwgLWVxICRhbnN3ZXIpIHsgQ2FuY2VsICfm' + 'jqfliLbnu4jnq6/lt7Lnu5PmnZ/vvIzmsqHmnInkuIvovb3miJblronoo4XjgILov5nkuI3mmK/nvZHnu5zlpLHotKXjgIInICdU' + 'aGUgdGVybWluYWwgY2xvc2VkLiBOb3RoaW5nIHdhcyBkb3dubG9hZGVkIG9yIGluc3RhbGxlZC4gVGhpcyBpcyBub3QgYSBuZXR3' + 'b3JrIGZhaWx1cmUuJyB9CiAgICAkYW5zd2VyID0gJGFuc3dlci5UcmltKCkKICAgIGlmICgkYW5zd2VyIC1lcSAnYWNjZXB0Jykg' + 'eyBicmVhayB9CiAgICBpZiAoJGFuc3dlciAtZXEgJ2RlY2xpbmUnKSB7CiAgICAgIENhbmNlbCAn5pyq5ZCM5oSP77yM5rKh5pyJ' + '5LiL6L295oiW5a6J6KOF44CC6L+Z5LiN5piv572R57uc5aSx6LSl44CCJyAnTm90IGFjY2VwdGVkLiBOb3RoaW5nIHdhcyBkb3du' + 'bG9hZGVkIG9yIGluc3RhbGxlZC4gVGhpcyBpcyBub3QgYSBuZXR3b3JrIGZhaWx1cmUuJwogICAgfQogICAgU2F5ICflsJrmnKrl' + 'kIzmhI/vvIzmnKrkuIvovb3miJblronoo4XjgILor7flrozmlbTovpPlhaUgYWNjZXB0IOW5tuWbnui9pue7p+e7re+8m+i+k+WF' + 'pSBkZWNsaW5lIOaIluaMiSBDdHJsK0Mg5Y+W5raI44CCJyAnTm90IGFjY2VwdGVkOyBub3RoaW5nIGhhcyBiZWVuIGRvd25sb2Fk' + 'ZWQgb3IgaW5zdGFsbGVkLiBUeXBlIGFjY2VwdCBhbmQgcHJlc3MgRW50ZXIgdG8gY29udGludWUsIG9yIGRlY2xpbmUgLyBDdHJs' + 'K0MgdG8gY2FuY2VsLicKICB9Cn0KClNheSAn5bey5ZCM5oSP5L2/55So6K645Y+v44CC5q2j5Zyo5qOA5p+lIFdpbmRvd3Mg5ZKM' + 'IE5vZGUuanPigKbigKYnICdMaWNlbnNlIGFjY2VwdGVkLiBDaGVja2luZyBXaW5kb3dzIGFuZCBOb2RlLmpzLi4uJwokb3MgPSBb' + 'RW52aXJvbm1lbnRdOjpPU1ZlcnNpb24uVmVyc2lvbgppZiAoJG9zLk1ham9yIC1sdCAxMCkgeyBGYWlsICfpnIDopoEgV2luZG93' + 'cyAxMCDmiJYgV2luZG93cyAxMe+8iE5vZGUuanMgMjIg55qE5pyA5L2O6KaB5rGC77yJ44CCV2luZG93cyBYUOOAgTfjgIE4IOS4' + 'jeiDvei/kOihjOOAgicgJ1dpbmRvd3MgMTAgb3IgMTEgaXMgcmVxdWlyZWQgKHRoZSBOb2RlLmpzIDIyIG1pbmltdW0pLiBXaW5k' + 'b3dzIFhQLCA3IGFuZCA4IGNhbm5vdCBydW4gaXQuJyB9CiRBcmNoID0gc3dpdGNoICgkZW52OlBST0NFU1NPUl9BUkNISVRFQ1RV' + 'UkUpIHsgJ0FNRDY0JyB7ICd4NjQnIH0gJ0FSTTY0JyB7ICdhcm02NCcgfSBkZWZhdWx0IHsgRmFpbCAi5LiN5pSv5oyB55qE5p62' + '5p6EICRlbnY6UFJPQ0VTU09SX0FSQ0hJVEVDVFVSRSIgInVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZSAkZW52OlBST0NFU1NPUl9B' + 'UkNISVRFQ1RVUkUiIH0gfQoKIyBVc2UgdGhlIHZlcmlmaWVkIE5vZGUgcnVudGltZSBmb3IgVW5pY29kZS1zYWZlIGV4dHJhY3Rp' + 'b24gb24gZXZlcnkgV2luZG93cwojIHZlcnNpb24uIE5hdGl2ZSB0YXIgbWF5IGNvcnJ1cHQgYSBDaGluZXNlIHVzZXItZGlyZWN0' + 'b3J5IGFyZ3VtZW50IGluIFBvd2VyU2hlbGwgNS4xLgokRXh0cmFjdEpzID0gQCcKY29uc3QgZnMgPSByZXF1aXJlKCJmcyIpLCBw' + 'YXRoID0gcmVxdWlyZSgicGF0aCIpLCB6bGliID0gcmVxdWlyZSgiemxpYiIpOwpjb25zdCBbZmlsZSwgZGVzdF0gPSBwcm9jZXNz' + 'LmFyZ3Yuc2xpY2UoMik7CmNvbnN0IGRhdGEgPSB6bGliLmd1bnppcFN5bmMoZnMucmVhZEZpbGVTeW5jKGZpbGUpKTsKY29uc3Qg' + 'dGV4dCA9IChiLCBzLCBsKSA9PiBiLnRvU3RyaW5nKCJ1dGY4IiwgcywgcyArIGwpLnJlcGxhY2UoL1wwW1xzXFNdKiQvLCAiIik7' + 'CmxldCBvZmZzZXQgPSAwLCBsb25nTmFtZSA9IG51bGw7CndoaWxlIChvZmZzZXQgKyA1MTIgPD0gZGF0YS5sZW5ndGgpIHsKICBj' + 'b25zdCBoZWFkID0gZGF0YS5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIDUxMik7CiAgaWYgKGhlYWQuZXZlcnkoKGIpID0+IGIg' + 'PT09IDApKSBicmVhazsKICBsZXQgbmFtZSA9IHRleHQoaGVhZCwgMCwgMTAwKTsKICBjb25zdCBwcmVmaXggPSB0ZXh0KGhlYWQs' + 'IDM0NSwgMTU1KTsKICBpZiAocHJlZml4KSBuYW1lID0gcHJlZml4ICsgIi8iICsgbmFtZTsKICBjb25zdCBzaXplID0gcGFyc2VJ' + 'bnQodGV4dChoZWFkLCAxMjQsIDEyKS50cmltKCkgfHwgIjAiLCA4KTsKICBjb25zdCB0eXBlID0gU3RyaW5nLmZyb21DaGFyQ29k' + 'ZShoZWFkWzE1Nl0gfHwgNDgpOwogIG9mZnNldCArPSA1MTI7CiAgY29uc3QgYm9keSA9IGRhdGEuc3ViYXJyYXkob2Zmc2V0LCBv' + 'ZmZzZXQgKyBzaXplKTsKICBvZmZzZXQgKz0gTWF0aC5jZWlsKHNpemUgLyA1MTIpICogNTEyOwogIGlmICh0eXBlID09PSAiTCIp' + 'IHsgbG9uZ05hbWUgPSBib2R5LnRvU3RyaW5nKCJ1dGY4IikucmVwbGFjZSgvXDBbXHNcU10qJC8sICIiKTsgY29udGludWU7IH0K' + 'ICBpZiAodHlwZSA9PT0gIngiIHx8IHR5cGUgPT09ICJnIikgeyBjb25zdCBtID0gL1xkKyBwYXRoPShbXlxuXSspXG4vLmV4ZWMo' + 'Ym9keS50b1N0cmluZygidXRmOCIpKTsgaWYgKG0pIGxvbmdOYW1lID0gbVsxXTsgY29udGludWU7IH0KICBpZiAobG9uZ05hbWUp' + 'IHsgbmFtZSA9IGxvbmdOYW1lOyBsb25nTmFtZSA9IG51bGw7IH0KICBjb25zdCBwYXJ0cyA9IG5hbWUuc3BsaXQoIi8iKS5maWx0' + 'ZXIoQm9vbGVhbikuc2xpY2UoMSk7CiAgaWYgKCFwYXJ0cy5sZW5ndGggfHwgcGFydHMuaW5jbHVkZXMoIi4uIikpIGNvbnRpbnVl' + 'OwogIGNvbnN0IG91dCA9IHBhdGguam9pbihkZXN0LCAuLi5wYXJ0cyk7CiAgaWYgKHR5cGUgPT09ICI1IikgZnMubWtkaXJTeW5j' + 'KG91dCwgeyByZWN1cnNpdmU6IHRydWUgfSk7CiAgZWxzZSBpZiAodHlwZSA9PT0gIjAiIHx8IHR5cGUgPT09ICJcMCIgfHwgdHlw' + 'ZSA9PT0gIjciKSB7IGZzLm1rZGlyU3luYyhwYXRoLmRpcm5hbWUob3V0KSwgeyByZWN1cnNpdmU6IHRydWUgfSk7IGZzLndyaXRl' + 'RmlsZVN5bmMob3V0LCBib2R5KTsgfQp9CidACgokVG1wID0gSm9pbi1QYXRoIChbSU8uUGF0aF06OkdldFRlbXBQYXRoKCkpICgi' + 'a29kZXItIiArIFtHdWlkXTo6TmV3R3VpZCgpKQpOZXctSXRlbSAtSXRlbVR5cGUgRGlyZWN0b3J5IC1Gb3JjZSAtUGF0aCAkVG1w' + 'LCAkQmluRGlyIHwgT3V0LU51bGwKdHJ5IHsKICAkTm9kZSA9ICRudWxsCiAgJGV4aXN0aW5nID0gR2V0LUNvbW1hbmQgbm9kZS5l' + 'eGUgLUNvbW1hbmRUeXBlIEFwcGxpY2F0aW9uIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIHwgU2VsZWN0LU9iamVjdCAt' + 'Rmlyc3QgMQogIGlmICgkZXhpc3RpbmcpIHsKICAgICRtYWpvciA9IE5vZGVNYWpvciAkZXhpc3RpbmcuU291cmNlCiAgICBpZiAo' + 'JG1ham9yIC1nZSAyMikgeyAkTm9kZSA9ICRleGlzdGluZy5Tb3VyY2UgfQogIH0KICAkTm9kZU5hbWUgPSAibm9kZS12JE5vZGVW' + 'ZXJzaW9uLXdpbi0kQXJjaCIKICBpZiAoLW5vdCAkTm9kZSkgewogICAgJGRpciA9IEpvaW4tUGF0aCAkS29kZXJIb21lICJydW50' + 'aW1lXCROb2RlTmFtZSIKICAgIGlmICgtbm90IChUZXN0LVBhdGggKEpvaW4tUGF0aCAkZGlyICdub2RlLmV4ZScpKSkgewogICAg' + 'ICBTYXkgIuato+WcqOS4i+i9vSBOb2RlLmpzICROb2RlVmVyc2lvbuKApuKApiIgIkRvd25sb2FkaW5nIE5vZGUuanMgJE5vZGVW' + 'ZXJzaW9uLi4uIgogICAgICAkemlwID0gSm9pbi1QYXRoICRUbXAgIiROb2RlTmFtZS56aXAiCiAgICAgIEZldGNoICIkTm9kZURp' + 'c3QvdiROb2RlVmVyc2lvbi8kTm9kZU5hbWUuemlwIiAkemlwICLmraPlnKjov57mjqUgTm9kZS5qcyDkuIvovb3nq5nigKbigKYi' + 'ICJDb25uZWN0aW5nIHRvIHRoZSBOb2RlLmpzIGRvd25sb2FkIHNlcnZlci4uLiIKICAgICAgJHN1bXNGaWxlID0gSm9pbi1QYXRo' + 'ICRUbXAgJ25vZGUtU0hBU1VNUzI1Ni50eHQnCiAgICAgIEZldGNoICIkTm9kZURpc3QvdiROb2RlVmVyc2lvbi9TSEFTVU1TMjU2' + 'LnR4dCIgJHN1bXNGaWxlICfmraPlnKjor7vlj5YgTm9kZS5qcyDmoKHpqozmuIXljZXigKbigKYnICdSZWFkaW5nIE5vZGUuanMg' + 'Y2hlY2tzdW1zLi4uJwogICAgICAkc3VtcyA9IFtJTy5GaWxlXTo6UmVhZEFsbFRleHQoJHN1bXNGaWxlKQogICAgICAkZXhwZWN0' + 'ZWQgPSAoJHN1bXMgLXNwbGl0ICJgbiIgfCBXaGVyZS1PYmplY3QgeyAkXyAtbWF0Y2ggIlxzJE5vZGVOYW1lXC56aXAkIiB9IHwg' + 'Rm9yRWFjaC1PYmplY3QgeyAoJF8gLXNwbGl0ICdccysnKVswXSB9KSB8IFNlbGVjdC1PYmplY3QgLUZpcnN0IDEKICAgICAgaWYg' + 'KC1ub3QgJGV4cGVjdGVkIC1vciAoU2hhMjU2ICR6aXApIC1uZSAkZXhwZWN0ZWQpIHsgRmFpbCAnTm9kZS5qcyDkuIvovb3moKHp' + 'qozlpLHotKUnICdOb2RlLmpzIGNoZWNrc3VtIG1pc21hdGNoJyB9CiAgICAgIFNheSAnTm9kZS5qcyDmoKHpqozpgJrov4fjgILm' + 'raPlnKjop6Pljovov5DooYzml7bigKbigKYnICdOb2RlLmpzIGNoZWNrc3VtIHZlcmlmaWVkLiBFeHRyYWN0aW5nIHRoZSBydW50' + 'aW1lLi4uJwogICAgICBFeHBhbmQtQXJjaGl2ZSAtUGF0aCAkemlwIC1EZXN0aW5hdGlvblBhdGggKEpvaW4tUGF0aCAkS29kZXJI' + 'b21lICdydW50aW1lJykgLUZvcmNlCiAgICB9CiAgICAkTm9kZSA9IEpvaW4tUGF0aCAkZGlyICdub2RlLmV4ZScKICAgIGlmICgo' + 'Tm9kZU1ham9yICROb2RlKSAtbHQgMjIpIHsgRmFpbCAnTm9kZS5qcyDov5DooYzml7bkuI3mlK/mjIHmiYDpnIDlip/og73vvIzo' + 'r7fkvb/nlKggMjIuMjErIOaIliAyNCsg55qE5a6M5pW054mI5pys44CCJyAnTm9kZS5qcyBydW50aW1lIGxhY2tzIHJlcXVpcmVk' + 'IGZlYXR1cmVzOyB1c2UgYSBmdWxsIE5vZGUuanMgMjIuMjErIG9yIDI0KyBydW50aW1lLicgfQogIH0KCiAgJG1hbmlmZXN0Rmls' + 'ZSA9IEpvaW4tUGF0aCAkVG1wICdyZWxlYXNlLmpzb24nCiAgRmV0Y2ggIiRCYXNlL2tvZGVyLWNsaS1sYXRlc3QuanNvbiIgJG1h' + 'bmlmZXN0RmlsZSAn5q2j5Zyo6K+75Y+W5Y+R6KGM5riF5Y2V4oCm4oCmJyAnUmVhZGluZyByZWxlYXNlIG1hbmlmZXN0Li4uJwog' + 'ICRtYW5pZmVzdCA9IFtJTy5GaWxlXTo6UmVhZEFsbFRleHQoJG1hbmlmZXN0RmlsZSkgfCBDb252ZXJ0RnJvbS1Kc29uCiAgaWYg' + 'KCRtYW5pZmVzdC5maWxlIC1ub3RtYXRjaCAnXltcdy4rLV0rXC50Z3okJyAtb3IgJG1hbmlmZXN0LnNoYTI1NiAtbm90bWF0Y2gg' + 'J15bMC05YS1mXXs2NH0kJyAtb3IgJG1hbmlmZXN0LnZlcnNpb24gLW5vdG1hdGNoICdeWzAtOUEtWmEtei4rLV0rJCcpIHsgRmFp' + 'bCAn5a6J6KOF5riF5Y2V5peg5pWIJyAnaW52YWxpZCBtYW5pZmVzdCcgfQogIGlmICgkbWFuaWZlc3QuYWdyZWVtZW50LmlkIC1u' + 'ZSAnS29kZXItRVVMQS0xLjEnIC1vciAkbWFuaWZlc3QuYWdyZWVtZW50LnZlcnNpb24gLW5lICcxLjEnIC1vciAkbWFuaWZlc3Qu' + 'YWdyZWVtZW50LnNoYTI1NiAtbm90bWF0Y2ggJ15bMC05YS1mXXs2NH0kJykgeyBGYWlsICflronoo4XmuIXljZXnmoTorrjlj6/n' + 'iYjmnKzkuI3ljLnphY3vvIzor7fph43mlrDpmIXor7vlvZPliY3lj5HooYzniYjorrjlj68nICdyZWxlYXNlIGFncmVlbWVudCBk' + 'b2VzIG5vdCBtYXRjaDsgcmVhZCB0aGUgYWdyZWVtZW50IGZvciB0aGlzIGRpc3RyaWJ1dGlvbicgfQogIGlmICgkZW52OktPREVS' + 'X0VYUEVDVEVEX1ZFUlNJT04gLWFuZCAkZW52OktPREVSX0VYUEVDVEVEX1ZFUlNJT04gLW5lICRtYW5pZmVzdC52ZXJzaW9uKSB7' + 'IEZhaWwgJ+abtOaWsOeJiOacrOS4juW3suajgOafpeeahOeJiOacrOS4jeWQjO+8jOW3suWBnOatoicgJ3JlbGVhc2UgdmVyc2lv' + 'biBjaGFuZ2VkIGFmdGVyIHVwZGF0ZSBjaGVjazsgYWJvcnRlZCcgfQogIGlmICgkZW52OktPREVSX0VYUEVDVEVEX1BBQ0tBR0Vf' + 'U0hBMjU2IC1hbmQgJGVudjpLT0RFUl9FWFBFQ1RFRF9QQUNLQUdFX1NIQTI1NiAtbmUgJG1hbmlmZXN0LnNoYTI1NikgeyBGYWls' + 'ICfmm7TmlrDmuIXljZUgU0hBLTI1NiDkuI7lt7Lmo4Dmn6XnmoTlgLzkuI3lkIzvvIzlt7LlgZzmraInICdyZWxlYXNlIFNIQS0y' + 'NTYgY2hhbmdlZCBhZnRlciB1cGRhdGUgY2hlY2s7IGFib3J0ZWQnIH0KICBTYXkgIuato+WcqOS4i+i9vSBLb2RlciBDTEkgJCgk' + 'bWFuaWZlc3QudmVyc2lvbinigKbigKYiICJEb3dubG9hZGluZyBLb2RlciBDTEkgJCgkbWFuaWZlc3QudmVyc2lvbikuLi4iCiAg' + 'JHBrZyA9IEpvaW4tUGF0aCAkVG1wICRtYW5pZmVzdC5maWxlCiAgRmV0Y2ggIiRCYXNlLyQoJG1hbmlmZXN0LmZpbGUpIiAkcGtn' + 'ICfmraPlnKjov57mjqUgS29kZXIgQ0xJIOS4i+i9veermeKApuKApicgJ0Nvbm5lY3RpbmcgdG8gdGhlIEtvZGVyIENMSSBkb3du' + 'bG9hZCBzZXJ2ZXIuLi4nCiAgaWYgKChTaGEyNTYgJHBrZykgLW5lICRtYW5pZmVzdC5zaGEyNTYpIHsgRmFpbCAn5a6J6KOF5YyF' + '5qCh6aqM5aSx6LSl77yIU0hBLTI1NiDkuI3kuIDoh7TvvInvvIzlt7LlgZzmraInICdwYWNrYWdlIGNoZWNrc3VtIG1pc21hdGNo' + 'OyBhYm9ydGVkJyB9CiAgU2F5ICflronoo4XljIXmoKHpqozpgJrov4fjgILmraPlnKjop6PljosgS29kZXIgQ0xJ4oCm4oCmJyAn' + 'UGFja2FnZSBjaGVja3N1bSB2ZXJpZmllZC4gRXh0cmFjdGluZyBLb2RlciBDTEkuLi4nCiAgJHRhcmdldCA9IEpvaW4tUGF0aCAk' + 'S29kZXJIb21lICJ2ZXJzaW9uc1wkKCRtYW5pZmVzdC52ZXJzaW9uKSIKICBpZiAoVGVzdC1QYXRoICR0YXJnZXQpIHsgUmVtb3Zl' + 'LUl0ZW0gLVJlY3Vyc2UgLUZvcmNlICR0YXJnZXQgfQogIE5ldy1JdGVtIC1JdGVtVHlwZSBEaXJlY3RvcnkgLUZvcmNlIC1QYXRo' + 'ICR0YXJnZXQgfCBPdXQtTnVsbAogICRleHRyYWN0ID0gSm9pbi1QYXRoICRUbXAgJ2V4dHJhY3QuY2pzJwogIFtJTy5GaWxlXTo6' + 'V3JpdGVBbGxUZXh0KCRleHRyYWN0LCAkRXh0cmFjdEpzKQogICYgJE5vZGUgJGV4dHJhY3QgJHBrZyAkdGFyZ2V0CiAgaWYgKCRM' + 'QVNURVhJVENPREUgLW5lIDApIHsgRmFpbCAn5a6J6KOF5YyF6Kej5Y6L5aSx6LSlJyAncGFja2FnZSBleHRyYWN0aW9uIGZhaWxl' + 'ZCcgfQogIGlmICgtbm90IChUZXN0LVBhdGggKEpvaW4tUGF0aCAkdGFyZ2V0ICdiaW5ca29kZXIubWpzJykpKSB7IEZhaWwgJ+Wu' + 'ieijheWMheWGheWuueS4jeWujOaVtCcgJ3BhY2thZ2UgaXMgaW5jb21wbGV0ZScgfQogIGlmICgoU2hhMjU2IChKb2luLVBhdGgg' + 'JHRhcmdldCAnRVVMQS5tZCcpKSAtbmUgJG1hbmlmZXN0LmFncmVlbWVudC5zaGEyNTYpIHsgRmFpbCAn5a6J6KOF5YyF6K645Y+v' + '5LiO5Y+R6KGM5riF5Y2V5LiN5LiA6Ie077yM5pyq5r+A5rS75q2k54mI5pysJyAncGFja2FnZSBhZ3JlZW1lbnQgZGlmZmVycyBm' + 'cm9tIHRoZSByZWxlYXNlIG1hbmlmZXN0OyB0aGlzIHZlcnNpb24gd2FzIG5vdCBhY3RpdmF0ZWQnIH0KCiAgIyBUaGUgbGF1bmNo' + 'ZXIgdXNlcyBwYXRocyByZWxhdGl2ZSB0byBpdHNlbGYgKCV+ZHAwKTogYSBDaGluZXNlIHVzZXIgbmFtZSBpbgogICMgJUxPQ0FM' + 'QVBQREFUQSUgd291bGQgb3RoZXJ3aXNlIHR1cm4gaW50byAiPyIgaW4gYW4gQVNDSUkgLmNtZCBmaWxlLgogICRsYXVuY2hlciA9' + 'IEpvaW4tUGF0aCAkQmluRGlyICdrb2Rlci5jbWQnCiAgaWYgKCROb2RlLlN0YXJ0c1dpdGgoJEtvZGVySG9tZSkpIHsgJG5vZGVS' + 'ZWYgPSAnJX5kcDAuLlxydW50aW1lXCcgKyAkTm9kZU5hbWUgKyAnXG5vZGUuZXhlJyB9CiAgZWxzZWlmIChBc2NpaSAkTm9kZSkg' + 'eyAkbm9kZVJlZiA9ICROb2RlIH0KICBlbHNlIHsgJG5vZGVSZWYgPSAnbm9kZScgfQogICRjbWQgPSAiQGVjaG8gb2ZmYHJgbnNl' + 'dGxvY2FsYHJgbnNldCBgIktPREVSX05PREU9JG5vZGVSZWZgImByYG5pZiBub3QgZXhpc3QgYCIlS09ERVJfTk9ERSVgIiBzZXQg' + 'YCJLT0RFUl9OT0RFPW5vZGVgImByYG5gIiVLT0RFUl9OT0RFJWAiIGAiJX5kcDAuLlx2ZXJzaW9uc1wkKCRtYW5pZmVzdC52ZXJz' + 'aW9uKVxiaW5ca29kZXIubWpzYCIgJSpgcmBuZXhpdCAvYiAlRVJST1JMRVZFTCVgcmBuIgogIFtJTy5GaWxlXTo6V3JpdGVBbGxU' + 'ZXh0KCRsYXVuY2hlciwgJGNtZCwgW1RleHQuRW5jb2RpbmddOjpBU0NJSSkKICAkZXVsYVBhdGggPSBKb2luLVBhdGggJHRhcmdl' + 'dCAnRVVMQS5tZCcKICAkYWdyZWVtZW50U2hhID0gU2hhMjU2ICRldWxhUGF0aAogICRhY2NlcHRlZEF0ID0gKEdldC1EYXRlKS5U' + 'b1N0cmluZygnbycpCiAgJHByZXZpZXcgPSAoW3N0cmluZ10kbWFuaWZlc3QudmVyc2lvbikuQ29udGFpbnMoJy0nKQogICRhY2Nl' + 'cHQgPSBAeyBpZCA9ICdLb2Rlci1FVUxBLTEuMSc7IHZlcnNpb24gPSAnMS4xJzsgc2hhMjU2ID0gJGFncmVlbWVudFNoYTsgYWNj' + 'ZXB0ZWRBdCA9ICRhY2NlcHRlZEF0OyBwcmV2aWV3ID0gJHByZXZpZXcgfSB8IENvbnZlcnRUby1Kc29uCiAgW0lPLkZpbGVdOjpX' + 'cml0ZUFsbFRleHQoKEpvaW4tUGF0aCAkS29kZXJIb21lICdldWxhLWFjY2VwdGFuY2UuanNvbicpLCAkYWNjZXB0LCAoTmV3LU9i' + 'amVjdCBUZXh0LlVURjhFbmNvZGluZyAkZmFsc2UpKQogICRpbmZvID0gQHsgdmVyc2lvbiA9ICRtYW5pZmVzdC52ZXJzaW9uOyBi' + 'YXNlID0gJEJhc2U7IGxhdW5jaGVyID0gJGxhdW5jaGVyOyBub2RlID0gJE5vZGU7IGJpbiA9ICRCaW5EaXI7IHNpdGUgPSAnaHR0' + 'cHM6Ly9rYXJtZW5sb29wLmNvbSc7IHVwZGF0ZXMgPSAnaHR0cHM6Ly9rYXJtZW5sb29wLmNvbS91cGRhdGVzLmh0bWwnOyBkb3du' + 'bG9hZCA9ICdodHRwczovL2thcm1lbmxvb3AuY29tL2Rvd25sb2FkLmh0bWwnOyBpbnN0YWxsZWRBdCA9ICRhY2NlcHRlZEF0OyBw' + 'cmV2aWV3ID0gJHByZXZpZXc7IGFncmVlbWVudElkID0gJ0tvZGVyLUVVTEEtMS4xJzsgYWdyZWVtZW50VmVyc2lvbiA9ICcxLjEn' + 'OyBhZ3JlZW1lbnRTaGEyNTYgPSAkYWdyZWVtZW50U2hhIH0gfCBDb252ZXJ0VG8tSnNvbgogIFtJTy5GaWxlXTo6V3JpdGVBbGxU' + 'ZXh0KChKb2luLVBhdGggJEtvZGVySG9tZSAnaW5zdGFsbC5qc29uJyksICRpbmZvLCAoTmV3LU9iamVjdCBUZXh0LlVURjhFbmNv' + 'ZGluZyAkZmFsc2UpKQoKICAkdXNlclBhdGggPSBbRW52aXJvbm1lbnRdOjpHZXRFbnZpcm9ubWVudFZhcmlhYmxlKCdQYXRoJywg' + 'J1VzZXInKQogIGlmICgtbm90ICR1c2VyUGF0aCkgeyAkdXNlclBhdGggPSAnJyB9CiAgaWYgKCgkdXNlclBhdGggLXNwbGl0ICc7' + 'JykgLW5vdGNvbnRhaW5zICRCaW5EaXIpIHsKICAgIFtFbnZpcm9ubWVudF06OlNldEVudmlyb25tZW50VmFyaWFibGUoJ1BhdGgn' + 'LCAoQCgkQmluRGlyKSArICgkdXNlclBhdGggLXNwbGl0ICc7JyB8IFdoZXJlLU9iamVjdCB7ICRfIH0pKSAtam9pbiAnOycsICdV' + 'c2VyJykKICAgIFNheSAi5bey5oqKICRCaW5EaXIg5Yqg5YWl55So5oi3IFBBVEjvvJvmlrDlvIDnmoQgUG93ZXJTaGVsbCDmiJbl' + 'kb3ku6Tmj5DnpLrnrKbpg73og73nm7TmjqXovpPlhaUga29kZXLjgIIiICJBZGRlZCAkQmluRGlyIHRvIHRoZSB1c2VyIFBBVEg7' + 'IG5ldyBQb3dlclNoZWxsIGFuZCBDb21tYW5kIFByb21wdCB3aW5kb3dzIGNhbiBydW4ga29kZXIuIgogIH0KICBpZiAoKCRlbnY6' + 'UGF0aCAtc3BsaXQgJzsnKSAtbm90Y29udGFpbnMgJEJpbkRpcikgeyAkZW52OlBhdGggPSAiJEJpbkRpcjskZW52OlBhdGgiIH0K' + 'ICBTYXkgIktvZGVyIENMSSAkKCRtYW5pZmVzdC52ZXJzaW9uKSDlronoo4XlrozmiJDvvJokbGF1bmNoZXIiICJLb2RlciBDTEkg' + 'JCgkbWFuaWZlc3QudmVyc2lvbikgaW5zdGFsbGVkOiAkbGF1bmNoZXIiCiAgU2F5ICfkuqTkupLlr7nor53kvJrlnKjnqbrpl7Lm' + 'l7boh6rliqjmm7TmlrDlubbmgaLlpI3kvJror53jgILlhbPpl63vvJprb2RlciB1cGRhdGUgYXV0byBvZmbjgIInICdJbnRlcmFj' + 'dGl2ZSBjaGF0cyB1cGRhdGUgd2hpbGUgaWRsZSBhbmQgcmVzdW1lIHRoZSBjb252ZXJzYXRpb24uIERpc2FibGUgd2l0aDoga29k' + 'ZXIgdXBkYXRlIGF1dG8gb2ZmLicKICBTYXkgJ0tBUk1FTiBMT09Q77ya5pys5Zyw5Lu75Yqh5YaF5qC477yM6K6h5YiS44CB5qC4' + '5a+55p2D6ZmQ44CB5omn6KGM5LiO6K6w5b2V44CC5Liq5Lq66Z2e5ZWG5Lia5L2/55So5YWN6LS577yb5ZWG55So77yP5YWs5Y+4' + '5o6I5p2D77yL56eB5pyJ5LuT5bqT77yaaW5mb0BrYXJtZW5sb29wLmNvbeOAgicgJ0tBUk1FTiBMT09QOiB0aGUgbG9jYWwgdGFz' + 'ayBrZXJuZWwgZm9yIHBsYW5zLCBwZXJtaXNzaW9ucywgZXhlY3V0aW9uIGFuZCByZXN1bHRzLiBQZXJzb25hbCwgbm9uY29tbWVy' + 'Y2lhbCB1c2UgaXMgZnJlZTsgY29tcGFueSBsaWNlbnNpbmcgKyBwcml2YXRlIHJlcG9zaXRvcmllczogaW5mb0BrYXJtZW5sb29w' + 'LmNvbS4nCiAgU2F5ICfmrKLov47oh6rmhL/ngrkgU3Rhcu+8mmh0dHBzOi8vZ2l0aHViLmNvbS9LYXJtZW5Mb29wL2tvZGVyLWNs' + 'ae+8m+ebtOaOpei3s+i/h++8jOS4jeW9seWTjeS9v+eUqOOAgicgJ0FuIG9wdGlvbmFsIHN0YXIgaGVscHMgb3RoZXJzIGZpbmQg' + 'S29kZXI6IGh0dHBzOi8vZ2l0aHViLmNvbS9LYXJtZW5Mb29wL2tvZGVyLWNsaS4gU2tpcCBmcmVlbHk7IGl0IG5ldmVyIGFmZmVj' + 'dHMgYWNjZXNzLicKICBTYXkgJ+WumOe9keWSjOabtOaWsOivtOaYju+8mmh0dHBzOi8va2FybWVubG9vcC5jb20vdXBkYXRlcy5o' + 'dG1sIO+8iOi9r+S7tumHjOS5n+WPr+i/kOihjCBrb2RlciB2ZXJzaW9uIOaIliBrb2RlciBhYm91dO+8iScgJ09mZmljaWFsIHNp' + 'dGUgYW5kIHVwZGF0ZXM6IGh0dHBzOi8va2FybWVubG9vcC5jb20vdXBkYXRlcy5odG1sIChvciBydW4ga29kZXIgdmVyc2lvbiAv' + 'IGtvZGVyIGFib3V0KScKICBTYXkgJ+eUteiEkeiDveWKm++8mui/kOihjCBrb2RlciBwZXJtaXNzaW9ucyBzdGF0dXMg5qOA5p+l' + '77yM6L+Q6KGMIGtvZGVyIHBlcm1pc3Npb25zIHJlcXVlc3QgLS1ob21lIOato+W8j+aOiOadg+S4u+ebruW9leOAgicgJ0NvbXB1' + 'dGVyIGFjY2VzczogcnVuIGtvZGVyIHBlcm1pc3Npb25zIHN0YXR1cywgdGhlbiBrb2RlciBwZXJtaXNzaW9ucyByZXF1ZXN0IC0t' + 'aG9tZSB0byBncmFudCBob21lIGFjY2Vzcy4nCiAgU2F5ICflronoo4XkuI3kvJroh6rliqjlj5blvpfns7vnu5/mnYPpmZDvvJvm' + 'oYzpnaLkuI7lvZXlsY/nlLHlrp7pmYXlrr/kuLvmo4Dmn6XvvIzpmZDlrprnrqHnkIblkZjliqjkvZzpobvnlLEgV2luZG93cyDm' + 'raPlvI/noa7orqTjgIInICdJbnN0YWxsYXRpb24gZG9lcyBub3QgYXV0b21hdGljYWxseSBncmFudCBPUyBwZXJtaXNzaW9uczsg' + 'dGhlIHJlc3BvbnNpYmxlIGhvc3QgY2hlY2tzIGRlc2t0b3AgYWNjZXNzIGFuZCBXaW5kb3dzIGNvbmZpcm1zIHNwZWNpZmljIGFk' + 'bWluaXN0cmF0b3IgYWN0aW9ucy4nCiAgaWYgKC1ub3QgJGVudjpLT0RFUl9OT19PTkJPQVJEIC1hbmQgW0Vudmlyb25tZW50XTo6' + 'VXNlckludGVyYWN0aXZlIC1hbmQgLW5vdCBbQ29uc29sZV06OklzSW5wdXRSZWRpcmVjdGVkKSB7CiAgICAmICRsYXVuY2hlciBv' + 'bmJvYXJkCiAgfSBlbHNlIHsKICAgIFNheSAn6L+Q6KGMIGtvZGVyIHNldHVwIOWujOaIkOiuvue9ru+8iOaWueWQkemUruaIlum8' + 'oOagh+WwseiDvemAie+8ie+8jOaIluebtOaOpei+k+WFpSBrb2RlciDlvIDlp4vjgIInICdSdW4ga29kZXIgc2V0dXAgdG8gZmlu' + 'aXNoIChhcnJvdyBrZXlzIG9yIG1vdXNlKSwgb3IganVzdCB0eXBlIGtvZGVyLicKICB9Cn0gZmluYWxseSB7CiAgUmVtb3ZlLUl0' + 'ZW0gLVJlY3Vyc2UgLUZvcmNlICRUbXAgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKfQo=' ))) Invoke-Expression $KoderInstaller