1778692651
441d63ebbc39eba359c9061ece8482bd-phpdoc%3A06704cecd06c3a106b880c27a971d1d1-b075627bf61144c6e95d9871fd60d652
s:155612:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE3OiJYbWxGaWxlTG9hZGVyLnBocCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6NDU6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlciI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJMb2FkZXIiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo1OToiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXIiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxNTp7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MTp7czo2MzoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6Ok5TIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo5OntzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjM6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxYbWxGaWxlTG9hZGVyOjpOUyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI6Ik5TIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO047czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjQwOiInaHR0cDovL3N5bWZvbnkuY29tL3NjaGVtYS9kaWMvc2VydmljZXMnIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAHBhcnRzIjthOjA6e319czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZmluYWwiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABtZXRhZGF0YSI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YToxOntzOjExMToiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OiRhdXRvUmVnaXN0ZXJBbGlhc2VzRm9yU2luZ2x5SW1wbGVtZW50ZWRJbnRlcmZhY2VzIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxNDp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMTE6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxYbWxGaWxlTG9hZGVyOjokYXV0b1JlZ2lzdGVyQWxpYXNlc0ZvclNpbmdseUltcGxlbWVudGVkSW50ZXJmYWNlcyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ5OiJhdXRvUmVnaXN0ZXJBbGlhc2VzRm9yU2luZ2x5SW1wbGVtZW50ZWRJbnRlcmZhY2VzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO047czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uIjoyOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAGV4cHJlc3Npb24iO3M6NToiZmFsc2UiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AcGFydHMiO2E6MDp7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAaG9va3MiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpcnR1YWwiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBtZXRhZGF0YSI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YToxOTp7czo2NzoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OmxvYWQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJyZXNvdXJjZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZSI6MTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZQByZWFsVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJ0eXBlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24iOjI6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AZXhwcmVzc2lvbiI7czo0NDoie3sgUEhQRE9DMzdhNjI1OWNjMGMxZGFlMjk5YTc4NjY0ODlkZmYwYmQgfX0iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AcGFydHMiO2E6MTp7czo0NDoie3sgUEhQRE9DMzdhNjI1OWNjMGMxZGFlMjk5YTc4NjY0ODlkZmYwYmQgfX0iO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX19czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjE3NDY7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MjUyMDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2NzoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OmxvYWQoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6ImxvYWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo3MDoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OmxvYWRYbWwoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTI6IlxET01Eb2N1bWVudCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJET01Eb2N1bWVudCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjM6InhtbCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJwYXRoIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlIjoxOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlAHJlYWxUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODoiXERPTU5vZGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJET01Ob2RlIjt9fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6InJvb3QiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjQ0OiJ7eyBQSFBET0MzN2E2MjU5Y2MwYzFkYWUyOTlhNzg2NjQ4OWRmZjBiZCB9fSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YToxOntzOjQ0OiJ7eyBQSFBET0MzN2E2MjU5Y2MwYzFkYWUyOTlhNzg2NjQ4OWRmZjBiZCB9fSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxfIjowOnt9fX1zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MjUyNzt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozMjM2O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzA6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxYbWxGaWxlTG9hZGVyOjpsb2FkWG1sKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJsb2FkWG1sIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjcxOiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlcjo6c3VwcG9ydHMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJyZXNvdXJjZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZSI6MTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZQByZWFsVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJ0eXBlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24iOjI6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AZXhwcmVzc2lvbiI7czo0NDoie3sgUEhQRE9DMzdhNjI1OWNjMGMxZGFlMjk5YTc4NjY0ODlkZmYwYmQgfX0iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AcGFydHMiO2E6MTp7czo0NDoie3sgUEhQRE9DMzdhNjI1OWNjMGMxZGFlMjk5YTc4NjY0ODlkZmYwYmQgfX0iO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX19czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjk2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjMyNDM7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTA3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjM1NTA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjcxOiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlcjo6c3VwcG9ydHMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6InN1cHBvcnRzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6Nzg6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxYbWxGaWxlTG9hZGVyOjpwYXJzZVBhcmFtZXRlcnMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTI6IlxET01Eb2N1bWVudCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJET01Eb2N1bWVudCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjM6InhtbCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJmaWxlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlIjoxOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlAHJlYWxUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODoiXERPTU5vZGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJET01Ob2RlIjt9fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6InJvb3QiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjQ0OiJ7eyBQSFBET0MzN2E2MjU5Y2MwYzFkYWUyOTlhNzg2NjQ4OWRmZjBiZCB9fSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YToxOntzOjQ0OiJ7eyBQSFBET0MzN2E2MjU5Y2MwYzFkYWUyOTlhNzg2NjQ4OWRmZjBiZCB9fSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxfIjowOnt9fX1zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTA5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjM1NTc7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTE0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjM4ODM7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3ODoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OnBhcnNlUGFyYW1ldGVycygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6InBhcnNlUGFyYW1ldGVycyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo3NToiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OnBhcnNlSW1wb3J0cygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mzp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMjoiXERPTURvY3VtZW50IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6IkRPTURvY3VtZW50Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MzoieG1sIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUiOjE6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUAcmVhbFR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4OiJcRE9NTm9kZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IkRPTU5vZGUiO319fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoicm9vdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uIjoyOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAGV4cHJlc3Npb24iO3M6NDQ6Int7IFBIUERPQzM3YTYyNTljYzBjMWRhZTI5OWE3ODY2NDg5ZGZmMGJkIH19IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAHBhcnRzIjthOjE6e3M6NDQ6Int7IFBIUERPQzM3YTYyNTljYzBjMWRhZTI5OWE3ODY2NDg5ZGZmMGJkIH19IjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbF8iOjA6e319fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6Mzg5MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMzA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6NDU1OTt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc1OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlcjo6cGFyc2VJbXBvcnRzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoicGFyc2VJbXBvcnRzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjc5OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlcjo6cGFyc2VEZWZpbml0aW9ucygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6NDp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMjoiXERPTURvY3VtZW50IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6IkRPTURvY3VtZW50Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MzoieG1sIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXERlZmluaXRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiRGVmaW5pdGlvbiI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjg6ImRlZmF1bHRzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjM7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlIjoxOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlAHJlYWxUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODoiXERPTU5vZGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJET01Ob2RlIjt9fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6InJvb3QiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjQ0OiJ7eyBQSFBET0MzN2E2MjU5Y2MwYzFkYWUyOTlhNzg2NjQ4OWRmZjBiZCB9fSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YToxOntzOjQ0OiJ7eyBQSFBET0MzN2E2MjU5Y2MwYzFkYWUyOTlhNzg2NjQ4OWRmZjBiZCB9fSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxfIjowOnt9fX1zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTMyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjQ1NjY7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTg4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjc1Njk7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3OToiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OnBhcnNlRGVmaW5pdGlvbnMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJwYXJzZURlZmluaXRpb25zIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjgxOiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlcjo6Z2V0U2VydmljZURlZmF1bHRzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTozOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjEyOiJcRE9NRG9jdW1lbnQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiRE9NRG9jdW1lbnQiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czozOiJ4bWwiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZmlsZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZSI6MTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZQByZWFsVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjg6IlxET01Ob2RlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiRE9NTm9kZSI7fX19czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJyb290IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24iOjI6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AZXhwcmVzc2lvbiI7czo0NDoie3sgUEhQRE9DMzdhNjI1OWNjMGMxZGFlMjk5YTc4NjY0ODlkZmYwYmQgfX0iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AcGFydHMiO2E6MTp7czo0NDoie3sgUEhQRE9DMzdhNjI1OWNjMGMxZGFlMjk5YTc4NjY0ODlkZmYwYmQgfX0iO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX19czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE5MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo3NTc2O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIwMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo4MDg2O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ5OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxEZWZpbml0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6IkRlZmluaXRpb24iO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODE6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxYbWxGaWxlTG9hZGVyOjpnZXRTZXJ2aWNlRGVmYXVsdHMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJnZXRTZXJ2aWNlRGVmYXVsdHMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6Nzg6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxYbWxGaWxlTG9hZGVyOjpwYXJzZURlZmluaXRpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTE6IlxET01FbGVtZW50IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6IkRPTUVsZW1lbnQiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJzZXJ2aWNlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXERlZmluaXRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiRGVmaW5pdGlvbiI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjg6ImRlZmF1bHRzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMDc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6ODE0OTt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MjAyNDc7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUiOjE6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUAcmVhbFR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cRGVmaW5pdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJEZWZpbml0aW9uIjt9fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3ODoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OnBhcnNlRGVmaW5pdGlvbigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6InBhcnNlRGVmaW5pdGlvbiI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozMjoiUGFyc2VzIGFuIGluZGl2aWR1YWwgRGVmaW5pdGlvbi4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6NDQ6IlN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YToxODp7czo4OiJYbWxVdGlscyI7czozODoiU3ltZm9ueVxDb21wb25lbnRcQ29uZmlnXFV0aWxcWG1sVXRpbHMiO3M6NToiQWxpYXMiO3M6NDM6IlN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQWxpYXMiO3M6MTY6IkFic3RyYWN0QXJndW1lbnQiO3M6NjM6IlN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQXJndW1lbnRcQWJzdHJhY3RBcmd1bWVudCI7czoxMzoiQm91bmRBcmd1bWVudCI7czo2MDoiU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxBcmd1bWVudFxCb3VuZEFyZ3VtZW50IjtzOjE2OiJJdGVyYXRvckFyZ3VtZW50IjtzOjYzOiJTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEFyZ3VtZW50XEl0ZXJhdG9yQXJndW1lbnQiO3M6MjI6IlNlcnZpY2VDbG9zdXJlQXJndW1lbnQiO3M6Njk6IlN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQXJndW1lbnRcU2VydmljZUNsb3N1cmVBcmd1bWVudCI7czoyMjoiU2VydmljZUxvY2F0b3JBcmd1bWVudCI7czo2OToiU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxBcmd1bWVudFxTZXJ2aWNlTG9jYXRvckFyZ3VtZW50IjtzOjIyOiJUYWdnZWRJdGVyYXRvckFyZ3VtZW50IjtzOjY5OiJTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEFyZ3VtZW50XFRhZ2dlZEl0ZXJhdG9yQXJndW1lbnQiO3M6MTU6IkNoaWxkRGVmaW5pdGlvbiI7czo1MzoiU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxDaGlsZERlZmluaXRpb24iO3M6MTY6IkNvbnRhaW5lckJ1aWxkZXIiO3M6NTQ6IlN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQ29udGFpbmVyQnVpbGRlciI7czoxODoiQ29udGFpbmVySW50ZXJmYWNlIjtzOjU2OiJTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXENvbnRhaW5lckludGVyZmFjZSI7czoxMDoiRGVmaW5pdGlvbiI7czo0ODoiU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxEZWZpbml0aW9uIjtzOjI0OiJJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24iO3M6NzI6IlN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cRXhjZXB0aW9uXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiI7czoxNDoiTG9naWNFeGNlcHRpb24iO3M6NjI6IlN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cRXhjZXB0aW9uXExvZ2ljRXhjZXB0aW9uIjtzOjE2OiJSdW50aW1lRXhjZXB0aW9uIjtzOjY0OiJTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEV4Y2VwdGlvblxSdW50aW1lRXhjZXB0aW9uIjtzOjE4OiJFeHRlbnNpb25JbnRlcmZhY2UiO3M6NjY6IlN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cRXh0ZW5zaW9uXEV4dGVuc2lvbkludGVyZmFjZSI7czo5OiJSZWZlcmVuY2UiO3M6NDc6IlN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cUmVmZXJlbmNlIjtzOjEwOiJFeHByZXNzaW9uIjtzOjQ3OiJTeW1mb255XENvbXBvbmVudFxFeHByZXNzaW9uTGFuZ3VhZ2VcRXhwcmVzc2lvbiI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo3NzoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OnBhcnNlRmlsZVRvRE9NKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ2MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToyMDQwMTt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0OTc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MjIwNzQ7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTI6IlxET01Eb2N1bWVudCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJET01Eb2N1bWVudCI7fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3NzoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OnBhcnNlRmlsZVRvRE9NKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoicGFyc2VGaWxlVG9ET00iO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mzc6IlBhcnNlcyBhbiBYTUwgZmlsZSB0byBhIFxET01Eb2N1bWVudC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mzg6IldoZW4gbG9hZGluZyBvZiBYTUwgZmlsZSByZXR1cm5zIGVycm9yIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3MzoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cRXhjZXB0aW9uXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI0OiJJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24iO319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NDM4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjg3OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlcjo6cHJvY2Vzc0Fub255bW91c1NlcnZpY2VzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTozOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjEyOiJcRE9NRG9jdW1lbnQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiRE9NRG9jdW1lbnQiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czozOiJ4bWwiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZmlsZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZSI6MTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsYWJsZQByZWFsVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjg6IlxET01Ob2RlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiRE9NTm9kZSI7fX19czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJyb290IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24iOjI6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AZXhwcmVzc2lvbiI7czo0NDoie3sgUEhQRE9DMzdhNjI1OWNjMGMxZGFlMjk5YTc4NjY0ODlkZmYwYmQgfX0iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AcGFydHMiO2E6MTp7czo0NDoie3sgUEhQRE9DMzdhNjI1OWNjMGMxZGFlMjk5YTc4NjY0ODlkZmYwYmQgfX0iO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX19czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjUwMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToyMjEzNDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NDQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MjQyNjQ7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4NzoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OnByb2Nlc3NBbm9ueW1vdXNTZXJ2aWNlcygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjQ6InByb2Nlc3NBbm9ueW1vdXNTZXJ2aWNlcyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyOToiUHJvY2Vzc2VzIGFub255bW91cyBzZXJ2aWNlcy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo0Mzg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6ODA6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxYbWxGaWxlTG9hZGVyOjpnZXRBcmd1bWVudHNBc1BocCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6NDp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMToiXERPTUVsZW1lbnQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiRE9NRWxlbWVudCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6Im5vZGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoibmFtZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJmaWxlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjM7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjE3OiJpc0NoaWxkRGVmaW5pdGlvbiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uIjoyOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAGV4cHJlc3Npb24iO3M6NDQ6Int7IFBIUERPQzY4OTM0YTNlOTQ1NWZhNzI0MjAyMzdlYjA1OTAyMzI3IH19IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAHBhcnRzIjthOjE6e3M6NDQ6Int7IFBIUERPQzY4OTM0YTNlOTQ1NWZhNzI0MjAyMzdlYjA1OTAyMzI3IH19IjtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUHNldWRvVHlwZXNcRmFsc2VfIjowOnt9fX1zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTQ2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjI0MjcxO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY2NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozMDcyMjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjgwOiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlcjo6Z2V0QXJndW1lbnRzQXNQaHAoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJnZXRBcmd1bWVudHNBc1BocCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo3NDoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OmdldENoaWxkcmVuKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjg6IlxET01Ob2RlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiRE9NTm9kZSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6Im5vZGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoibmFtZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njc0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjMwODE2O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY4NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozMTE3MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc0OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlcjo6Z2V0Q2hpbGRyZW4oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJnZXRDaGlsZHJlbiI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyNzoiR2V0IGNoaWxkIGVsZW1lbnRzIGJ5IG5hbWUuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTE6IlxET01FbGVtZW50IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6IkRPTUVsZW1lbnQiO319czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NDM4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjc5OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlcjo6Z2V0VGFnQXR0cmlidXRlcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4OiJcRE9NTm9kZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IkRPTU5vZGUiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJub2RlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjExOiJtaXNzaW5nTmFtZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njg2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjMxMTc3O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjcwODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozMjE2MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc5OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlcjo6Z2V0VGFnQXR0cmlidXRlcygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6ImdldFRhZ0F0dHJpYnV0ZXMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6Nzc6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxYbWxGaWxlTG9hZGVyOjp2YWxpZGF0ZVNjaGVtYSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMjoiXERPTURvY3VtZW50IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6IkRPTURvY3VtZW50Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MzoiZG9tIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3MTU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MzIzMTM7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Nzg4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjM1NDU2O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3NzoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OnZhbGlkYXRlU2NoZW1hKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoidmFsaWRhdGVTY2hlbWEiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozMzoiVmFsaWRhdGVzIGEgZG9jdW1lbnRzIFhNTCBzY2hlbWEuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ5OiJXaGVuIGV4dGVuc2lvbiByZWZlcmVuY2VzIGEgbm9uLWV4aXN0ZW50IFhTRCBmaWxlIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2NToiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cRXhjZXB0aW9uXFJ1bnRpbWVFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiUnVudGltZUV4Y2VwdGlvbiI7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo0Mzg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6ODc6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxYbWxGaWxlTG9hZGVyOjpzaG91bGRFbmFibGVFbnRpdHlMb2FkZXIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc5MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozNTQ2Mzt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4MTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MzY0MDM7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjg3OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlcjo6c2hvdWxkRW5hYmxlRW50aXR5TG9hZGVyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNDoic2hvdWxkRW5hYmxlRW50aXR5TG9hZGVyIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjc2OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlcjo6dmFsaWRhdGVBbGlhcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMToiXERPTUVsZW1lbnQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiRE9NRWxlbWVudCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6ImFsaWFzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjgxNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozNjQxMDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4MzE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MzcyMzE7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3NjoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OnZhbGlkYXRlQWxpYXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJ2YWxpZGF0ZUFsaWFzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjgxOiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlcjo6dmFsaWRhdGVFeHRlbnNpb25zKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjEyOiJcRE9NRG9jdW1lbnQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiRE9NRG9jdW1lbnQiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czozOiJkb20iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZmlsZSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODM4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjM3MzgyO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjg1MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozODI3OTt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjgxOiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlcjo6dmFsaWRhdGVFeHRlbnNpb25zKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxODoidmFsaWRhdGVFeHRlbnNpb25zIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIzOiJWYWxpZGF0ZXMgYW4gZXh0ZW5zaW9uLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0OToiV2hlbiBubyBleHRlbnNpb24gaXMgZm91bmQgY29ycmVzcG9uZGluZyB0byBhIHRhZyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzM6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEV4Y2VwdGlvblxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNDoiSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIjt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjQzODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo4MToiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OmxvYWRGcm9tRXh0ZW5zaW9ucygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMjoiXERPTURvY3VtZW50IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6IkRPTURvY3VtZW50Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MzoieG1sIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NTY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MzgzMzQ7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODcwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjM4ODMwO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODE6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxYbWxGaWxlTG9hZGVyOjpsb2FkRnJvbUV4dGVuc2lvbnMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJsb2FkRnJvbUV4dGVuc2lvbnMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjQ6IkxvYWRzIGZyb20gYW4gZXh0ZW5zaW9uLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjQzODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo4NzoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXFhtbEZpbGVMb2FkZXI6OmNvbnZlcnREb21FbGVtZW50VG9BcnJheSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMToiXERPTUVsZW1lbnQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiRE9NRWxlbWVudCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6ImVsZW1lbnQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjg4OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozOTQzMTt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4OTI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6Mzk1ODY7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODc6IlxTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXExvYWRlclxYbWxGaWxlTG9hZGVyOjpjb252ZXJ0RG9tRWxlbWVudFRvQXJyYXkoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI0OiJjb252ZXJ0RG9tRWxlbWVudFRvQXJyYXkiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0NToiQ29udmVydHMgYSBcRE9NRWxlbWVudCBvYmplY3QgdG8gYSBQSFAgYXJyYXkuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM3MzoiVGhlIGZvbGxvd2luZyBydWxlcyBhcHBsaWVzIGR1cmluZyB0aGUgY29udmVyc2lvbjoKCiogRWFjaCB0YWcgaXMgY29udmVydGVkIHRvIGEga2V5IHZhbHVlIG9yIGFuIGFycmF5CiAgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSAidmFsdWUiCgoqIFRoZSBjb250ZW50IG9mIGEgdGFnIGlzIHNldCB1bmRlciBhICJ2YWx1ZSIga2V5ICg8Zm9vPmJhcjwvZm9vPikKICBpZiB0aGUgdGFnIGFsc28gaGFzIHNvbWUgbmVzdGVkIHRhZ3MKCiogVGhlIGF0dHJpYnV0ZXMgYXJlIGNvbnZlcnRlZCB0byBrZXlzICg8Zm9vIGZvbz0iYmFyIi8+KQoKKiBUaGUgbmVzdGVkLXRhZ3MgYXJlIGNvbnZlcnRlZCB0byBrZXlzICg8Zm9vPjxmb28+YmFyPC9mb28+PC9mb28+KSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyMjoiQSBcRE9NRWxlbWVudCBpbnN0YW5jZSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTE6IlxET01FbGVtZW50IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6IkRPTUVsZW1lbnQiO319czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo3OiJlbGVtZW50IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjQzODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MTtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODkzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU5OiJcU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxMb2FkZXJcWG1sRmlsZUxvYWRlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJYbWxGaWxlTG9hZGVyIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1MDoiWG1sRmlsZUxvYWRlciBsb2FkcyBYTUwgZmlsZXMgc2VydmljZSBkZWZpbml0aW9ucy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czoxNDoiACoAZGVzY3JpcHRpb24iO047czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjE2OiJGYWJpZW4gUG90ZW5jaWVyIjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjE4OiJmYWJpZW5Ac3ltZm9ueS5jb20iO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjQzODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NjoiXFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyXEZpbGVMb2FkZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiRmlsZUxvYWRlciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwByZWFkT25seSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGF0dHJpYnV0ZXMiO2E6MDp7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9czo0MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBlbnVtcyI7YTowOnt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiJiMDc1NjI3YmY2MTE0NGM2ZTk1ZDk4NzFmZDYwZDY1MiI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjYwOiJ2ZW5kb3Ivc3ltZm9ueS9kZXBlbmRlbmN5LWluamVjdGlvbi9Mb2FkZXIvWG1sRmlsZUxvYWRlci5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjM5NTkwOiI8P3BocAoKLyoKICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFN5bWZvbnkgcGFja2FnZS4KICoKICogKGMpIEZhYmllbiBQb3RlbmNpZXIgPGZhYmllbkBzeW1mb255LmNvbT4KICoKICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0UKICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuCiAqLwoKbmFtZXNwYWNlIFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cTG9hZGVyOwoKdXNlIFN5bWZvbnlcQ29tcG9uZW50XENvbmZpZ1xVdGlsXFhtbFV0aWxzOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxBbGlhczsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQXJndW1lbnRcQWJzdHJhY3RBcmd1bWVudDsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQXJndW1lbnRcQm91bmRBcmd1bWVudDsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQXJndW1lbnRcSXRlcmF0b3JBcmd1bWVudDsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQXJndW1lbnRcU2VydmljZUNsb3N1cmVBcmd1bWVudDsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQXJndW1lbnRcU2VydmljZUxvY2F0b3JBcmd1bWVudDsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQXJndW1lbnRcVGFnZ2VkSXRlcmF0b3JBcmd1bWVudDsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cQ2hpbGREZWZpbml0aW9uOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxDb250YWluZXJCdWlsZGVyOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcRGVwZW5kZW5jeUluamVjdGlvblxDb250YWluZXJJbnRlcmZhY2U7CnVzZSBTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXERlZmluaXRpb247CnVzZSBTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEV4Y2VwdGlvblxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb247CnVzZSBTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEV4Y2VwdGlvblxMb2dpY0V4Y2VwdGlvbjsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XERlcGVuZGVuY3lJbmplY3Rpb25cRXhjZXB0aW9uXFJ1bnRpbWVFeGNlcHRpb247CnVzZSBTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXEV4dGVuc2lvblxFeHRlbnNpb25JbnRlcmZhY2U7CnVzZSBTeW1mb255XENvbXBvbmVudFxEZXBlbmRlbmN5SW5qZWN0aW9uXFJlZmVyZW5jZTsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XEV4cHJlc3Npb25MYW5ndWFnZVxFeHByZXNzaW9uOwoKLyoqCiAqIFhtbEZpbGVMb2FkZXIgbG9hZHMgWE1MIGZpbGVzIHNlcnZpY2UgZGVmaW5pdGlvbnMuCiAqCiAqIEBhdXRob3IgRmFiaWVuIFBvdGVuY2llciA8ZmFiaWVuQHN5bWZvbnkuY29tPgogKi8KY2xhc3MgWG1sRmlsZUxvYWRlciBleHRlbmRzIEZpbGVMb2FkZXIKewogICAgcHVibGljIGNvbnN0IE5TID0gJ2h0dHA6Ly9zeW1mb255LmNvbS9zY2hlbWEvZGljL3NlcnZpY2VzJzsKCiAgICBwcm90ZWN0ZWQgJGF1dG9SZWdpc3RlckFsaWFzZXNGb3JTaW5nbHlJbXBsZW1lbnRlZEludGVyZmFjZXMgPSBmYWxzZTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZChtaXhlZCAkcmVzb3VyY2UsID9zdHJpbmcgJHR5cGUgPSBudWxsKTogbWl4ZWQKICAgIHsKICAgICAgICAkcGF0aCA9ICR0aGlzLT5sb2NhdG9yLT5sb2NhdGUoJHJlc291cmNlKTsKCiAgICAgICAgJHhtbCA9ICR0aGlzLT5wYXJzZUZpbGVUb0RPTSgkcGF0aCk7CgogICAgICAgICR0aGlzLT5jb250YWluZXItPmZpbGVFeGlzdHMoJHBhdGgpOwoKICAgICAgICAkdGhpcy0+bG9hZFhtbCgkeG1sLCAkcGF0aCk7CgogICAgICAgIGlmICgkdGhpcy0+ZW52KSB7CiAgICAgICAgICAgICR4cGF0aCA9IG5ldyBcRE9NWFBhdGgoJHhtbCk7CiAgICAgICAgICAgICR4cGF0aC0+cmVnaXN0ZXJOYW1lc3BhY2UoJ2NvbnRhaW5lcicsIHNlbGY6Ok5TKTsKICAgICAgICAgICAgZm9yZWFjaCAoJHhwYXRoLT5xdWVyeShcc3ByaW50ZignLy9jb250YWluZXI6d2hlbltAZW52PSIlcyJdJywgJHRoaXMtPmVudikpID86IFtdIGFzICRyb290KSB7CiAgICAgICAgICAgICAgICAkZW52ID0gJHRoaXMtPmVudjsKICAgICAgICAgICAgICAgICR0aGlzLT5lbnYgPSBudWxsOwogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bG9hZFhtbCgkeG1sLCAkcGF0aCwgJHJvb3QpOwogICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZW52ID0gJGVudjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBsb2FkWG1sKFxET01Eb2N1bWVudCAkeG1sLCBzdHJpbmcgJHBhdGgsID9cRE9NTm9kZSAkcm9vdCA9IG51bGwpOiB2b2lkCiAgICB7CiAgICAgICAgJGRlZmF1bHRzID0gJHRoaXMtPmdldFNlcnZpY2VEZWZhdWx0cygkeG1sLCAkcGF0aCwgJHJvb3QpOwoKICAgICAgICAvLyBhbm9ueW1vdXMgc2VydmljZXMKICAgICAgICAkdGhpcy0+cHJvY2Vzc0Fub255bW91c1NlcnZpY2VzKCR4bWwsICRwYXRoLCAkcm9vdCk7CgogICAgICAgIC8vIGltcG9ydHMKICAgICAgICAkdGhpcy0+cGFyc2VJbXBvcnRzKCR4bWwsICRwYXRoLCAkcm9vdCk7CgogICAgICAgIC8vIHBhcmFtZXRlcnMKICAgICAgICAkdGhpcy0+cGFyc2VQYXJhbWV0ZXJzKCR4bWwsICRwYXRoLCAkcm9vdCk7CgogICAgICAgIC8vIGV4dGVuc2lvbnMKICAgICAgICAkdGhpcy0+bG9hZEZyb21FeHRlbnNpb25zKCR4bWwsICRyb290KTsKCiAgICAgICAgLy8gc2VydmljZXMKICAgICAgICB0cnkgewogICAgICAgICAgICAkdGhpcy0+cGFyc2VEZWZpbml0aW9ucygkeG1sLCAkcGF0aCwgJGRlZmF1bHRzLCAkcm9vdCk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgJHRoaXMtPmluc3RhbmNlb2YgPSBbXTsKICAgICAgICAgICAgJHRoaXMtPnJlZ2lzdGVyQWxpYXNlc0ZvclNpbmdseUltcGxlbWVudGVkSW50ZXJmYWNlcygpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc3VwcG9ydHMobWl4ZWQgJHJlc291cmNlLCA/c3RyaW5nICR0eXBlID0gbnVsbCk6IGJvb2wKICAgIHsKICAgICAgICBpZiAoIVxpc19zdHJpbmcoJHJlc291cmNlKSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBpZiAobnVsbCA9PT0gJHR5cGUgJiYgJ3htbCcgPT09IHBhdGhpbmZvKCRyZXNvdXJjZSwgXFBBVEhJTkZPX0VYVEVOU0lPTikpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJ3htbCcgPT09ICR0eXBlOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gcGFyc2VQYXJhbWV0ZXJzKFxET01Eb2N1bWVudCAkeG1sLCBzdHJpbmcgJGZpbGUsID9cRE9NTm9kZSAkcm9vdCA9IG51bGwpOiB2b2lkCiAgICB7CiAgICAgICAgaWYgKCRwYXJhbWV0ZXJzID0gJHRoaXMtPmdldENoaWxkcmVuKCRyb290ID8/ICR4bWwtPmRvY3VtZW50RWxlbWVudCwgJ3BhcmFtZXRlcnMnKSkgewogICAgICAgICAgICAkdGhpcy0+Y29udGFpbmVyLT5nZXRQYXJhbWV0ZXJCYWcoKS0+YWRkKCR0aGlzLT5nZXRBcmd1bWVudHNBc1BocCgkcGFyYW1ldGVyc1swXSwgJ3BhcmFtZXRlcicsICRmaWxlKSk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gcGFyc2VJbXBvcnRzKFxET01Eb2N1bWVudCAkeG1sLCBzdHJpbmcgJGZpbGUsID9cRE9NTm9kZSAkcm9vdCA9IG51bGwpOiB2b2lkCiAgICB7CiAgICAgICAgJHhwYXRoID0gbmV3IFxET01YUGF0aCgkeG1sKTsKICAgICAgICAkeHBhdGgtPnJlZ2lzdGVyTmFtZXNwYWNlKCdjb250YWluZXInLCBzZWxmOjpOUyk7CgogICAgICAgIGlmIChmYWxzZSA9PT0gJGltcG9ydHMgPSAkeHBhdGgtPnF1ZXJ5KCcuL2NvbnRhaW5lcjppbXBvcnRzL2NvbnRhaW5lcjppbXBvcnQnLCAkcm9vdCkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgJGRlZmF1bHREaXJlY3RvcnkgPSBcZGlybmFtZSgkZmlsZSk7CiAgICAgICAgZm9yZWFjaCAoJGltcG9ydHMgYXMgJGltcG9ydCkgewogICAgICAgICAgICAkdGhpcy0+c2V0Q3VycmVudERpcigkZGVmYXVsdERpcmVjdG9yeSk7CiAgICAgICAgICAgICR0aGlzLT5pbXBvcnQoJGltcG9ydC0+Z2V0QXR0cmlidXRlKCdyZXNvdXJjZScpLCBYbWxVdGlsczo6cGhwaXplKCRpbXBvcnQtPmdldEF0dHJpYnV0ZSgndHlwZScpKSA/OiBudWxsLCBYbWxVdGlsczo6cGhwaXplKCRpbXBvcnQtPmdldEF0dHJpYnV0ZSgnaWdub3JlLWVycm9ycycpKSA/OiBmYWxzZSwgJGZpbGUpOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIHBhcnNlRGVmaW5pdGlvbnMoXERPTURvY3VtZW50ICR4bWwsIHN0cmluZyAkZmlsZSwgRGVmaW5pdGlvbiAkZGVmYXVsdHMsID9cRE9NTm9kZSAkcm9vdCA9IG51bGwpOiB2b2lkCiAgICB7CiAgICAgICAgJHhwYXRoID0gbmV3IFxET01YUGF0aCgkeG1sKTsKICAgICAgICAkeHBhdGgtPnJlZ2lzdGVyTmFtZXNwYWNlKCdjb250YWluZXInLCBzZWxmOjpOUyk7CgogICAgICAgIGlmIChmYWxzZSA9PT0gJHNlcnZpY2VzID0gJHhwYXRoLT5xdWVyeSgnLi9jb250YWluZXI6c2VydmljZXMvY29udGFpbmVyOnNlcnZpY2V8Li9jb250YWluZXI6c2VydmljZXMvY29udGFpbmVyOnByb3RvdHlwZXwuL2NvbnRhaW5lcjpzZXJ2aWNlcy9jb250YWluZXI6c3RhY2snLCAkcm9vdCkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+c2V0Q3VycmVudERpcihcZGlybmFtZSgkZmlsZSkpOwoKICAgICAgICAkdGhpcy0+aW5zdGFuY2VvZiA9IFtdOwogICAgICAgICR0aGlzLT5pc0xvYWRpbmdJbnN0YW5jZW9mID0gdHJ1ZTsKICAgICAgICAkaW5zdGFuY2VvZiA9ICR4cGF0aC0+cXVlcnkoJy4vY29udGFpbmVyOnNlcnZpY2VzL2NvbnRhaW5lcjppbnN0YW5jZW9mJywgJHJvb3QpOwogICAgICAgIGZvcmVhY2ggKCRpbnN0YW5jZW9mIGFzICRzZXJ2aWNlKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXREZWZpbml0aW9uKChzdHJpbmcpICRzZXJ2aWNlLT5nZXRBdHRyaWJ1dGUoJ2lkJyksICR0aGlzLT5wYXJzZURlZmluaXRpb24oJHNlcnZpY2UsICRmaWxlLCBuZXcgRGVmaW5pdGlvbigpKSk7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+aXNMb2FkaW5nSW5zdGFuY2VvZiA9IGZhbHNlOwogICAgICAgIGZvcmVhY2ggKCRzZXJ2aWNlcyBhcyAkc2VydmljZSkgewogICAgICAgICAgICBpZiAoJ3N0YWNrJyA9PT0gJHNlcnZpY2UtPnRhZ05hbWUpIHsKICAgICAgICAgICAgICAgICRzZXJ2aWNlLT5zZXRBdHRyaWJ1dGUoJ3BhcmVudCcsICctJyk7CiAgICAgICAgICAgICAgICAkZGVmaW5pdGlvbiA9ICR0aGlzLT5wYXJzZURlZmluaXRpb24oJHNlcnZpY2UsICRmaWxlLCAkZGVmYXVsdHMpCiAgICAgICAgICAgICAgICAgICAgLT5zZXRUYWdzKGFycmF5X21lcmdlX3JlY3Vyc2l2ZShbJ2NvbnRhaW5lci5zdGFjaycgPT4gW1tdXV0sICRkZWZhdWx0cy0+Z2V0VGFncygpKSkKICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAgICAgICR0aGlzLT5zZXREZWZpbml0aW9uKCRpZCA9IChzdHJpbmcpICRzZXJ2aWNlLT5nZXRBdHRyaWJ1dGUoJ2lkJyksICRkZWZpbml0aW9uKTsKICAgICAgICAgICAgICAgICRzdGFjayA9IFtdOwoKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5nZXRDaGlsZHJlbigkc2VydmljZSwgJ3NlcnZpY2UnKSBhcyAkayA9PiAkZnJhbWUpIHsKICAgICAgICAgICAgICAgICAgICAkayA9ICRmcmFtZS0+Z2V0QXR0cmlidXRlKCdpZCcpID86ICRrOwogICAgICAgICAgICAgICAgICAgICRmcmFtZS0+c2V0QXR0cmlidXRlKCdpZCcsICRpZC4nIiBhdCBpbmRleCAiJy4kayk7CgogICAgICAgICAgICAgICAgICAgIGlmICgkYWxpYXMgPSAkZnJhbWUtPmdldEF0dHJpYnV0ZSgnYWxpYXMnKSkgewogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVBbGlhcygkZnJhbWUsICRmaWxlKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHN0YWNrWyRrXSA9IG5ldyBSZWZlcmVuY2UoJGFsaWFzKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkc3RhY2tbJGtdID0gJHRoaXMtPnBhcnNlRGVmaW5pdGlvbigkZnJhbWUsICRmaWxlLCAkZGVmYXVsdHMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPnNldEluc3RhbmNlb2ZDb25kaXRpb25hbHMoJHRoaXMtPmluc3RhbmNlb2YpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkZGVmaW5pdGlvbi0+c2V0QXJndW1lbnRzKCRzdGFjayk7CiAgICAgICAgICAgIH0gZWxzZWlmIChudWxsICE9PSAkZGVmaW5pdGlvbiA9ICR0aGlzLT5wYXJzZURlZmluaXRpb24oJHNlcnZpY2UsICRmaWxlLCAkZGVmYXVsdHMpKSB7CiAgICAgICAgICAgICAgICBpZiAoJ3Byb3RvdHlwZScgPT09ICRzZXJ2aWNlLT50YWdOYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgJGV4Y2x1ZGVzID0gYXJyYXlfY29sdW1uKCR0aGlzLT5nZXRDaGlsZHJlbigkc2VydmljZSwgJ2V4Y2x1ZGUnKSwgJ25vZGVWYWx1ZScpOwogICAgICAgICAgICAgICAgICAgIGlmICgkc2VydmljZS0+aGFzQXR0cmlidXRlKCdleGNsdWRlJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxjb3VudCgkZXhjbHVkZXMpID4gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignWW91IGNhbm5vdCB1c2UgYm90aCB0aGUgYXR0cmlidXRlICJleGNsdWRlIiBhbmQgPGV4Y2x1ZGU+IHRhZ3MgYXQgdGhlIHNhbWUgdGltZS4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAkZXhjbHVkZXMgPSBbJHNlcnZpY2UtPmdldEF0dHJpYnV0ZSgnZXhjbHVkZScpXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnJlZ2lzdGVyQ2xhc3NlcygkZGVmaW5pdGlvbiwgKHN0cmluZykgJHNlcnZpY2UtPmdldEF0dHJpYnV0ZSgnbmFtZXNwYWNlJyksIChzdHJpbmcpICRzZXJ2aWNlLT5nZXRBdHRyaWJ1dGUoJ3Jlc291cmNlJyksICRleGNsdWRlcywgJGZpbGUpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c2V0RGVmaW5pdGlvbigoc3RyaW5nKSAkc2VydmljZS0+Z2V0QXR0cmlidXRlKCdpZCcpLCAkZGVmaW5pdGlvbik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRTZXJ2aWNlRGVmYXVsdHMoXERPTURvY3VtZW50ICR4bWwsIHN0cmluZyAkZmlsZSwgP1xET01Ob2RlICRyb290ID0gbnVsbCk6IERlZmluaXRpb24KICAgIHsKICAgICAgICAkeHBhdGggPSBuZXcgXERPTVhQYXRoKCR4bWwpOwogICAgICAgICR4cGF0aC0+cmVnaXN0ZXJOYW1lc3BhY2UoJ2NvbnRhaW5lcicsIHNlbGY6Ok5TKTsKCiAgICAgICAgaWYgKG51bGwgPT09ICRkZWZhdWx0c05vZGUgPSAkeHBhdGgtPnF1ZXJ5KCcuL2NvbnRhaW5lcjpzZXJ2aWNlcy9jb250YWluZXI6ZGVmYXVsdHMnLCAkcm9vdCktPml0ZW0oMCkpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBEZWZpbml0aW9uKCk7CiAgICAgICAgfQoKICAgICAgICAkZGVmYXVsdHNOb2RlLT5zZXRBdHRyaWJ1dGUoJ2lkJywgJzxkZWZhdWx0cz4nKTsKCiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJzZURlZmluaXRpb24oJGRlZmF1bHRzTm9kZSwgJGZpbGUsIG5ldyBEZWZpbml0aW9uKCkpOwogICAgfQoKICAgIC8qKgogICAgICogUGFyc2VzIGFuIGluZGl2aWR1YWwgRGVmaW5pdGlvbi4KICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZURlZmluaXRpb24oXERPTUVsZW1lbnQgJHNlcnZpY2UsIHN0cmluZyAkZmlsZSwgRGVmaW5pdGlvbiAkZGVmYXVsdHMpOiA/RGVmaW5pdGlvbgogICAgewogICAgICAgIGlmICgkYWxpYXMgPSAkc2VydmljZS0+Z2V0QXR0cmlidXRlKCdhbGlhcycpKSB7CiAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZUFsaWFzKCRzZXJ2aWNlLCAkZmlsZSk7CgogICAgICAgICAgICAkdGhpcy0+Y29udGFpbmVyLT5zZXRBbGlhcygkc2VydmljZS0+Z2V0QXR0cmlidXRlKCdpZCcpLCAkYWxpYXMgPSBuZXcgQWxpYXMoJGFsaWFzKSk7CiAgICAgICAgICAgIGlmICgkcHVibGljQXR0ciA9ICRzZXJ2aWNlLT5nZXRBdHRyaWJ1dGUoJ3B1YmxpYycpKSB7CiAgICAgICAgICAgICAgICAkYWxpYXMtPnNldFB1YmxpYyhYbWxVdGlsczo6cGhwaXplKCRwdWJsaWNBdHRyKSk7CiAgICAgICAgICAgIH0gZWxzZWlmICgkZGVmYXVsdHMtPmdldENoYW5nZXMoKVsncHVibGljJ10gPz8gZmFsc2UpIHsKICAgICAgICAgICAgICAgICRhbGlhcy0+c2V0UHVibGljKCRkZWZhdWx0cy0+aXNQdWJsaWMoKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkZGVwcmVjYXRlZCA9ICR0aGlzLT5nZXRDaGlsZHJlbigkc2VydmljZSwgJ2RlcHJlY2F0ZWQnKSkgewogICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSAkZGVwcmVjYXRlZFswXS0+bm9kZVZhbHVlID86ICcnOwogICAgICAgICAgICAgICAgJHBhY2thZ2UgPSAkZGVwcmVjYXRlZFswXS0+Z2V0QXR0cmlidXRlKCdwYWNrYWdlJykgPzogJyc7CiAgICAgICAgICAgICAgICAkdmVyc2lvbiA9ICRkZXByZWNhdGVkWzBdLT5nZXRBdHRyaWJ1dGUoJ3ZlcnNpb24nKSA/OiAnJzsKCiAgICAgICAgICAgICAgICBpZiAoISRkZXByZWNhdGVkWzBdLT5oYXNBdHRyaWJ1dGUoJ3BhY2thZ2UnKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ01pc3NpbmcgYXR0cmlidXRlICJwYWNrYWdlIiBhdCBub2RlICJkZXByZWNhdGVkIiBpbiAiJXMiLicsICRmaWxlKSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCEkZGVwcmVjYXRlZFswXS0+aGFzQXR0cmlidXRlKCd2ZXJzaW9uJykpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdNaXNzaW5nIGF0dHJpYnV0ZSAidmVyc2lvbiIgYXQgbm9kZSAiZGVwcmVjYXRlZCIgaW4gIiVzIi4nLCAkZmlsZSkpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRhbGlhcy0+c2V0RGVwcmVjYXRlZCgkcGFja2FnZSwgJHZlcnNpb24sICRtZXNzYWdlKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRoaXMtPmlzTG9hZGluZ0luc3RhbmNlb2YpIHsKICAgICAgICAgICAgJGRlZmluaXRpb24gPSBuZXcgQ2hpbGREZWZpbml0aW9uKCcnKTsKICAgICAgICB9IGVsc2VpZiAoJHBhcmVudCA9ICRzZXJ2aWNlLT5nZXRBdHRyaWJ1dGUoJ3BhcmVudCcpKSB7CiAgICAgICAgICAgICRkZWZpbml0aW9uID0gbmV3IENoaWxkRGVmaW5pdGlvbigkcGFyZW50KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkZGVmaW5pdGlvbiA9IG5ldyBEZWZpbml0aW9uKCk7CiAgICAgICAgfQoKICAgICAgICBpZiAoJGRlZmF1bHRzLT5nZXRDaGFuZ2VzKClbJ3B1YmxpYyddID8/IGZhbHNlKSB7CiAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRQdWJsaWMoJGRlZmF1bHRzLT5pc1B1YmxpYygpKTsKICAgICAgICB9CiAgICAgICAgJGRlZmluaXRpb24tPnNldEF1dG93aXJlZCgkZGVmYXVsdHMtPmlzQXV0b3dpcmVkKCkpOwogICAgICAgICRkZWZpbml0aW9uLT5zZXRBdXRvY29uZmlndXJlZCgkZGVmYXVsdHMtPmlzQXV0b2NvbmZpZ3VyZWQoKSk7CiAgICAgICAgJGRlZmluaXRpb24tPnNldENoYW5nZXMoW10pOwoKICAgICAgICBmb3JlYWNoIChbJ2NsYXNzJywgJ3B1YmxpYycsICdzaGFyZWQnLCAnc3ludGhldGljJywgJ2Fic3RyYWN0J10gYXMgJGtleSkgewogICAgICAgICAgICBpZiAoJHZhbHVlID0gJHNlcnZpY2UtPmdldEF0dHJpYnV0ZSgka2V5KSkgewogICAgICAgICAgICAgICAgJG1ldGhvZCA9ICdzZXQnLiRrZXk7CiAgICAgICAgICAgICAgICAkZGVmaW5pdGlvbi0+JG1ldGhvZChYbWxVdGlsczo6cGhwaXplKCR2YWx1ZSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJHZhbHVlID0gJHNlcnZpY2UtPmdldEF0dHJpYnV0ZSgnbGF6eScpKSB7CiAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRMYXp5KChib29sKSAkdmFsdWUgPSBYbWxVdGlsczo6cGhwaXplKCR2YWx1ZSkpOwogICAgICAgICAgICBpZiAoXGlzX3N0cmluZygkdmFsdWUpKSB7CiAgICAgICAgICAgICAgICAkZGVmaW5pdGlvbi0+YWRkVGFnKCdwcm94eScsIFsnaW50ZXJmYWNlJyA9PiAkdmFsdWVdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCR2YWx1ZSA9ICRzZXJ2aWNlLT5nZXRBdHRyaWJ1dGUoJ2F1dG93aXJlJykpIHsKICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldEF1dG93aXJlZChYbWxVdGlsczo6cGhwaXplKCR2YWx1ZSkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCR2YWx1ZSA9ICRzZXJ2aWNlLT5nZXRBdHRyaWJ1dGUoJ2F1dG9jb25maWd1cmUnKSkgewogICAgICAgICAgICAkZGVmaW5pdGlvbi0+c2V0QXV0b2NvbmZpZ3VyZWQoWG1sVXRpbHM6OnBocGl6ZSgkdmFsdWUpKTsKICAgICAgICB9CgogICAgICAgIGlmICgkZmlsZXMgPSAkdGhpcy0+Z2V0Q2hpbGRyZW4oJHNlcnZpY2UsICdmaWxlJykpIHsKICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldEZpbGUoJGZpbGVzWzBdLT5ub2RlVmFsdWUpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRkZXByZWNhdGVkID0gJHRoaXMtPmdldENoaWxkcmVuKCRzZXJ2aWNlLCAnZGVwcmVjYXRlZCcpKSB7CiAgICAgICAgICAgICRtZXNzYWdlID0gJGRlcHJlY2F0ZWRbMF0tPm5vZGVWYWx1ZSA/OiAnJzsKICAgICAgICAgICAgJHBhY2thZ2UgPSAkZGVwcmVjYXRlZFswXS0+Z2V0QXR0cmlidXRlKCdwYWNrYWdlJykgPzogJyc7CiAgICAgICAgICAgICR2ZXJzaW9uID0gJGRlcHJlY2F0ZWRbMF0tPmdldEF0dHJpYnV0ZSgndmVyc2lvbicpID86ICcnOwoKICAgICAgICAgICAgaWYgKCEkZGVwcmVjYXRlZFswXS0+aGFzQXR0cmlidXRlKCdwYWNrYWdlJykpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ01pc3NpbmcgYXR0cmlidXRlICJwYWNrYWdlIiBhdCBub2RlICJkZXByZWNhdGVkIiBpbiAiJXMiLicsICRmaWxlKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICghJGRlcHJlY2F0ZWRbMF0tPmhhc0F0dHJpYnV0ZSgndmVyc2lvbicpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdNaXNzaW5nIGF0dHJpYnV0ZSAidmVyc2lvbiIgYXQgbm9kZSAiZGVwcmVjYXRlZCIgaW4gIiVzIi4nLCAkZmlsZSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkZGVmaW5pdGlvbi0+c2V0RGVwcmVjYXRlZCgkcGFja2FnZSwgJHZlcnNpb24sICRtZXNzYWdlKTsKICAgICAgICB9CgogICAgICAgICRkZWZpbml0aW9uLT5zZXRBcmd1bWVudHMoJHRoaXMtPmdldEFyZ3VtZW50c0FzUGhwKCRzZXJ2aWNlLCAnYXJndW1lbnQnLCAkZmlsZSwgJGRlZmluaXRpb24gaW5zdGFuY2VvZiBDaGlsZERlZmluaXRpb24pKTsKICAgICAgICAkZGVmaW5pdGlvbi0+c2V0UHJvcGVydGllcygkdGhpcy0+Z2V0QXJndW1lbnRzQXNQaHAoJHNlcnZpY2UsICdwcm9wZXJ0eScsICRmaWxlKSk7CgogICAgICAgIGlmICgkZmFjdG9yaWVzID0gJHRoaXMtPmdldENoaWxkcmVuKCRzZXJ2aWNlLCAnZmFjdG9yeScpKSB7CiAgICAgICAgICAgICRmYWN0b3J5ID0gJGZhY3Rvcmllc1swXTsKICAgICAgICAgICAgaWYgKCRmdW5jdGlvbiA9ICRmYWN0b3J5LT5nZXRBdHRyaWJ1dGUoJ2Z1bmN0aW9uJykpIHsKICAgICAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRGYWN0b3J5KCRmdW5jdGlvbik7CiAgICAgICAgICAgIH0gZWxzZWlmICgkZXhwcmVzc2lvbiA9ICRmYWN0b3J5LT5nZXRBdHRyaWJ1dGUoJ2V4cHJlc3Npb24nKSkgewogICAgICAgICAgICAgICAgaWYgKCFjbGFzc19leGlzdHMoRXhwcmVzc2lvbjo6Y2xhc3MpKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignVGhlICJleHByZXNzaW9uIiBhdHRyaWJ1dGUgY2Fubm90IGJlIHVzZWQgb24gZmFjdG9yaWVzIHdpdGhvdXQgdGhlIEV4cHJlc3Npb25MYW5ndWFnZSBjb21wb25lbnQuIFRyeSBydW5uaW5nICJjb21wb3NlciByZXF1aXJlIHN5bWZvbnkvZXhwcmVzc2lvbi1sYW5ndWFnZSIuJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkZGVmaW5pdGlvbi0+c2V0RmFjdG9yeSgnQD0nLiRleHByZXNzaW9uKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmICgkY2hpbGRTZXJ2aWNlID0gJGZhY3RvcnktPmdldEF0dHJpYnV0ZSgnc2VydmljZScpKSB7CiAgICAgICAgICAgICAgICAgICAgJGNsYXNzID0gbmV3IFJlZmVyZW5jZSgkY2hpbGRTZXJ2aWNlLCBDb250YWluZXJJbnRlcmZhY2U6OkVYQ0VQVElPTl9PTl9JTlZBTElEX1JFRkVSRU5DRSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRjbGFzcyA9ICRmYWN0b3J5LT5oYXNBdHRyaWJ1dGUoJ2NsYXNzJykgPyAkZmFjdG9yeS0+Z2V0QXR0cmlidXRlKCdjbGFzcycpIDogbnVsbDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkZGVmaW5pdGlvbi0+c2V0RmFjdG9yeShbJGNsYXNzLCAkZmFjdG9yeS0+Z2V0QXR0cmlidXRlKCdtZXRob2QnKSA/OiAnX19pbnZva2UnXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICgkY29uc3RydWN0b3IgPSAkc2VydmljZS0+Z2V0QXR0cmlidXRlKCdjb25zdHJ1Y3RvcicpKSB7CiAgICAgICAgICAgIGlmIChudWxsICE9PSAkZGVmaW5pdGlvbi0+Z2V0RmFjdG9yeSgpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTG9naWNFeGNlcHRpb24oXHNwcmludGYoJ1RoZSAiJXMiIHNlcnZpY2UgY2Fubm90IGRlY2xhcmUgYSBmYWN0b3J5IGFzIHdlbGwgYXMgYSBjb25zdHJ1Y3Rvci4nLCAkc2VydmljZS0+Z2V0QXR0cmlidXRlKCdpZCcpKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRGYWN0b3J5KFtudWxsLCAkY29uc3RydWN0b3JdKTsKICAgICAgICB9CgogICAgICAgIGlmICgkY29uZmlndXJhdG9ycyA9ICR0aGlzLT5nZXRDaGlsZHJlbigkc2VydmljZSwgJ2NvbmZpZ3VyYXRvcicpKSB7CiAgICAgICAgICAgICRjb25maWd1cmF0b3IgPSAkY29uZmlndXJhdG9yc1swXTsKICAgICAgICAgICAgaWYgKCRmdW5jdGlvbiA9ICRjb25maWd1cmF0b3ItPmdldEF0dHJpYnV0ZSgnZnVuY3Rpb24nKSkgewogICAgICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldENvbmZpZ3VyYXRvcigkZnVuY3Rpb24pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKCRjaGlsZFNlcnZpY2UgPSAkY29uZmlndXJhdG9yLT5nZXRBdHRyaWJ1dGUoJ3NlcnZpY2UnKSkgewogICAgICAgICAgICAgICAgICAgICRjbGFzcyA9IG5ldyBSZWZlcmVuY2UoJGNoaWxkU2VydmljZSwgQ29udGFpbmVySW50ZXJmYWNlOjpFWENFUFRJT05fT05fSU5WQUxJRF9SRUZFUkVOQ0UpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkY2xhc3MgPSAkY29uZmlndXJhdG9yLT5nZXRBdHRyaWJ1dGUoJ2NsYXNzJyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldENvbmZpZ3VyYXRvcihbJGNsYXNzLCAkY29uZmlndXJhdG9yLT5nZXRBdHRyaWJ1dGUoJ21ldGhvZCcpID86ICdfX2ludm9rZSddKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmdldENoaWxkcmVuKCRzZXJ2aWNlLCAnY2FsbCcpIGFzICRjYWxsKSB7CiAgICAgICAgICAgICRkZWZpbml0aW9uLT5hZGRNZXRob2RDYWxsKAogICAgICAgICAgICAgICAgJGNhbGwtPmdldEF0dHJpYnV0ZSgnbWV0aG9kJyksCiAgICAgICAgICAgICAgICAkdGhpcy0+Z2V0QXJndW1lbnRzQXNQaHAoJGNhbGwsICdhcmd1bWVudCcsICRmaWxlKSwKICAgICAgICAgICAgICAgIFhtbFV0aWxzOjpwaHBpemUoJGNhbGwtPmdldEF0dHJpYnV0ZSgncmV0dXJucy1jbG9uZScpKSA/OiBmYWxzZQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJHRhZ3MgPSAkdGhpcy0+Z2V0Q2hpbGRyZW4oJHNlcnZpY2UsICd0YWcnKTsKCiAgICAgICAgZm9yZWFjaCAoJHRhZ3MgYXMgJHRhZykgewogICAgICAgICAgICAkdGFnTmFtZUNvbWVzRnJvbUF0dHJpYnV0ZSA9ICR0YWctPmNoaWxkRWxlbWVudENvdW50IHx8ICcnID09PSAkdGFnLT5ub2RlVmFsdWU7CiAgICAgICAgICAgIGlmICgnJyA9PT0gJHRhZ05hbWUgPSAkdGFnTmFtZUNvbWVzRnJvbUF0dHJpYnV0ZSA/ICR0YWctPmdldEF0dHJpYnV0ZSgnbmFtZScpIDogJHRhZy0+bm9kZVZhbHVlKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdUaGUgdGFnIG5hbWUgZm9yIHNlcnZpY2UgIiVzIiBpbiAiJXMiIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nLicsIChzdHJpbmcpICRzZXJ2aWNlLT5nZXRBdHRyaWJ1dGUoJ2lkJyksICRmaWxlKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRwYXJhbWV0ZXJzID0gJHRoaXMtPmdldFRhZ0F0dHJpYnV0ZXMoJHRhZywgXHNwcmludGYoJ1RoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0YWcgIiVzIiBmb3Igc2VydmljZSAiJXMiIGluICVzIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nLicsICR0YWdOYW1lLCAoc3RyaW5nKSAkc2VydmljZS0+Z2V0QXR0cmlidXRlKCdpZCcpLCAkZmlsZSkpOwogICAgICAgICAgICBmb3JlYWNoICgkdGFnLT5hdHRyaWJ1dGVzIGFzICRuYW1lID0+ICRub2RlKSB7CiAgICAgICAgICAgICAgICBpZiAoJHRhZ05hbWVDb21lc0Zyb21BdHRyaWJ1dGUgJiYgJ25hbWUnID09PSAkbmFtZSkgewogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChzdHJfY29udGFpbnMoJG5hbWUsICctJykgJiYgIXN0cl9jb250YWlucygkbmFtZSwgJ18nKSAmJiAhXGFycmF5X2tleV9leGlzdHMoJG5vcm1hbGl6ZWROYW1lID0gc3RyX3JlcGxhY2UoJy0nLCAnXycsICRuYW1lKSwgJHBhcmFtZXRlcnMpKSB7CiAgICAgICAgICAgICAgICAgICAgJHBhcmFtZXRlcnNbJG5vcm1hbGl6ZWROYW1lXSA9IFhtbFV0aWxzOjpwaHBpemUoJG5vZGUtPm5vZGVWYWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLyBrZWVwIG5vdCBub3JtYWxpemVkIGtleQogICAgICAgICAgICAgICAgJHBhcmFtZXRlcnNbJG5hbWVdID0gWG1sVXRpbHM6OnBocGl6ZSgkbm9kZS0+bm9kZVZhbHVlKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGRlZmluaXRpb24tPmFkZFRhZygkdGFnTmFtZSwgJHBhcmFtZXRlcnMpOwogICAgICAgIH0KCiAgICAgICAgJGRlZmluaXRpb24tPnNldFRhZ3MoYXJyYXlfbWVyZ2VfcmVjdXJzaXZlKCRkZWZpbml0aW9uLT5nZXRUYWdzKCksICRkZWZhdWx0cy0+Z2V0VGFncygpKSk7CgogICAgICAgICRiaW5kaW5ncyA9ICR0aGlzLT5nZXRBcmd1bWVudHNBc1BocCgkc2VydmljZSwgJ2JpbmQnLCAkZmlsZSk7CiAgICAgICAgJGJpbmRpbmdUeXBlID0gJHRoaXMtPmlzTG9hZGluZ0luc3RhbmNlb2YgPyBCb3VuZEFyZ3VtZW50OjpJTlNUQU5DRU9GX0JJTkRJTkcgOiBCb3VuZEFyZ3VtZW50OjpTRVJWSUNFX0JJTkRJTkc7CiAgICAgICAgZm9yZWFjaCAoJGJpbmRpbmdzIGFzICRhcmd1bWVudCA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgJGJpbmRpbmdzWyRhcmd1bWVudF0gPSBuZXcgQm91bmRBcmd1bWVudCgkdmFsdWUsIHRydWUsICRiaW5kaW5nVHlwZSwgJGZpbGUpOwogICAgICAgIH0KCiAgICAgICAgLy8gZGVlcCBjbG9uZSwgdG8gYXZvaWQgbXVsdGlwbGUgcHJvY2VzcyBvZiB0aGUgc2FtZSBpbnN0YW5jZSBpbiB0aGUgcGFzc2VzCiAgICAgICAgJGJpbmRpbmdzID0gYXJyYXlfbWVyZ2UodW5zZXJpYWxpemUoc2VyaWFsaXplKCRkZWZhdWx0cy0+Z2V0QmluZGluZ3MoKSkpLCAkYmluZGluZ3MpOwoKICAgICAgICBpZiAoJGJpbmRpbmdzKSB7CiAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRCaW5kaW5ncygkYmluZGluZ3MpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRkZWNvcmF0ZXMgPSAkc2VydmljZS0+Z2V0QXR0cmlidXRlKCdkZWNvcmF0ZXMnKSkgewogICAgICAgICAgICAkZGVjb3JhdGlvbk9uSW52YWxpZCA9ICRzZXJ2aWNlLT5nZXRBdHRyaWJ1dGUoJ2RlY29yYXRpb24tb24taW52YWxpZCcpID86ICdleGNlcHRpb24nOwogICAgICAgICAgICBpZiAoJ2V4Y2VwdGlvbicgPT09ICRkZWNvcmF0aW9uT25JbnZhbGlkKSB7CiAgICAgICAgICAgICAgICAkaW52YWxpZEJlaGF2aW9yID0gQ29udGFpbmVySW50ZXJmYWNlOjpFWENFUFRJT05fT05fSU5WQUxJRF9SRUZFUkVOQ0U7CiAgICAgICAgICAgIH0gZWxzZWlmICgnaWdub3JlJyA9PT0gJGRlY29yYXRpb25PbkludmFsaWQpIHsKICAgICAgICAgICAgICAgICRpbnZhbGlkQmVoYXZpb3IgPSBDb250YWluZXJJbnRlcmZhY2U6OklHTk9SRV9PTl9JTlZBTElEX1JFRkVSRU5DRTsKICAgICAgICAgICAgfSBlbHNlaWYgKCdudWxsJyA9PT0gJGRlY29yYXRpb25PbkludmFsaWQpIHsKICAgICAgICAgICAgICAgICRpbnZhbGlkQmVoYXZpb3IgPSBDb250YWluZXJJbnRlcmZhY2U6Ok5VTExfT05fSU5WQUxJRF9SRUZFUkVOQ0U7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdJbnZhbGlkIHZhbHVlICIlcyIgZm9yIGF0dHJpYnV0ZSAiZGVjb3JhdGlvbi1vbi1pbnZhbGlkIiBvbiBzZXJ2aWNlICIlcyIuIERpZCB5b3UgbWVhbiAiZXhjZXB0aW9uIiwgImlnbm9yZSIgb3IgIm51bGwiIGluICIlcyI/JywgJGRlY29yYXRpb25PbkludmFsaWQsICRzZXJ2aWNlLT5nZXRBdHRyaWJ1dGUoJ2lkJyksICRmaWxlKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRyZW5hbWVJZCA9ICRzZXJ2aWNlLT5oYXNBdHRyaWJ1dGUoJ2RlY29yYXRpb24taW5uZXItbmFtZScpID8gJHNlcnZpY2UtPmdldEF0dHJpYnV0ZSgnZGVjb3JhdGlvbi1pbm5lci1uYW1lJykgOiBudWxsOwogICAgICAgICAgICAkcHJpb3JpdHkgPSAkc2VydmljZS0+aGFzQXR0cmlidXRlKCdkZWNvcmF0aW9uLXByaW9yaXR5JykgPyAkc2VydmljZS0+Z2V0QXR0cmlidXRlKCdkZWNvcmF0aW9uLXByaW9yaXR5JykgOiAwOwoKICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldERlY29yYXRlZFNlcnZpY2UoJGRlY29yYXRlcywgJHJlbmFtZUlkLCAkcHJpb3JpdHksICRpbnZhbGlkQmVoYXZpb3IpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRjYWxsYWJsZSA9ICR0aGlzLT5nZXRDaGlsZHJlbigkc2VydmljZSwgJ2Zyb20tY2FsbGFibGUnKSkgewogICAgICAgICAgICBpZiAoJGRlZmluaXRpb24gaW5zdGFuY2VvZiBDaGlsZERlZmluaXRpb24pIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ0F0dHJpYnV0ZSAicGFyZW50IiBpcyB1bnN1cHBvcnRlZCB3aGVuIHVzaW5nICI8ZnJvbS1jYWxsYWJsZT4iIG9uIHNlcnZpY2UgIiVzIi4nLCAoc3RyaW5nKSAkc2VydmljZS0+Z2V0QXR0cmlidXRlKCdpZCcpKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZvcmVhY2ggKFsKICAgICAgICAgICAgICAgICdBdHRyaWJ1dGUgInN5bnRoZXRpYyInID0+ICdpc1N5bnRoZXRpYycsCiAgICAgICAgICAgICAgICAnQXR0cmlidXRlICJmaWxlIicgPT4gJ2dldEZpbGUnLAogICAgICAgICAgICAgICAgJ1RhZyAiPGZhY3Rvcnk+IicgPT4gJ2dldEZhY3RvcnknLAogICAgICAgICAgICAgICAgJ1RhZyAiPGFyZ3VtZW50PiInID0+ICdnZXRBcmd1bWVudHMnLAogICAgICAgICAgICAgICAgJ1RhZyAiPHByb3BlcnR5PiInID0+ICdnZXRQcm9wZXJ0aWVzJywKICAgICAgICAgICAgICAgICdUYWcgIjxjb25maWd1cmF0b3I+IicgPT4gJ2dldENvbmZpZ3VyYXRvcicsCiAgICAgICAgICAgICAgICAnVGFnICI8Y2FsbD4iJyA9PiAnZ2V0TWV0aG9kQ2FsbHMnLAogICAgICAgICAgICBdIGFzICRrZXkgPT4gJG1ldGhvZCkgewogICAgICAgICAgICAgICAgaWYgKCRkZWZpbml0aW9uLT4kbWV0aG9kKCkpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCRrZXkuXHNwcmludGYoJyBpcyB1bnN1cHBvcnRlZCB3aGVuIHVzaW5nICI8ZnJvbS1jYWxsYWJsZT4iIG9uIHNlcnZpY2UgIiVzIi4nLCAoc3RyaW5nKSAkc2VydmljZS0+Z2V0QXR0cmlidXRlKCdpZCcpKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRGYWN0b3J5KFsnQ2xvc3VyZScsICdmcm9tQ2FsbGFibGUnXSk7CgogICAgICAgICAgICBpZiAoJ0Nsb3N1cmUnICE9PSAoJGRlZmluaXRpb24tPmdldENsYXNzKCkgPz8gJ0Nsb3N1cmUnKSkgewogICAgICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldExhenkodHJ1ZSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkZGVmaW5pdGlvbi0+c2V0Q2xhc3MoJ0Nsb3N1cmUnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGNhbGxhYmxlID0gJGNhbGxhYmxlWzBdOwogICAgICAgICAgICBpZiAoJGZ1bmN0aW9uID0gJGNhbGxhYmxlLT5nZXRBdHRyaWJ1dGUoJ2Z1bmN0aW9uJykpIHsKICAgICAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRBcmd1bWVudHMoWyRmdW5jdGlvbl0pOwogICAgICAgICAgICB9IGVsc2VpZiAoJGV4cHJlc3Npb24gPSAkY2FsbGFibGUtPmdldEF0dHJpYnV0ZSgnZXhwcmVzc2lvbicpKSB7CiAgICAgICAgICAgICAgICBpZiAoIWNsYXNzX2V4aXN0cyhFeHByZXNzaW9uOjpjbGFzcykpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdUaGUgImV4cHJlc3Npb24iIGF0dHJpYnV0ZSBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IHRoZSBFeHByZXNzaW9uTGFuZ3VhZ2UgY29tcG9uZW50LiBUcnkgcnVubmluZyAiY29tcG9zZXIgcmVxdWlyZSBzeW1mb255L2V4cHJlc3Npb24tbGFuZ3VhZ2UiLicpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGRlZmluaXRpb24tPnNldEFyZ3VtZW50cyhbJ0A9Jy4kZXhwcmVzc2lvbl0pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKCRjaGlsZFNlcnZpY2UgPSAkY2FsbGFibGUtPmdldEF0dHJpYnV0ZSgnc2VydmljZScpKSB7CiAgICAgICAgICAgICAgICAgICAgJGNsYXNzID0gbmV3IFJlZmVyZW5jZSgkY2hpbGRTZXJ2aWNlLCBDb250YWluZXJJbnRlcmZhY2U6OkVYQ0VQVElPTl9PTl9JTlZBTElEX1JFRkVSRU5DRSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRjbGFzcyA9ICRjYWxsYWJsZS0+aGFzQXR0cmlidXRlKCdjbGFzcycpID8gJGNhbGxhYmxlLT5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgOiBudWxsOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRkZWZpbml0aW9uLT5zZXRBcmd1bWVudHMoW1skY2xhc3MsICRjYWxsYWJsZS0+Z2V0QXR0cmlidXRlKCdtZXRob2QnKSA/OiAnX19pbnZva2UnXV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGRlZmluaXRpb247CiAgICB9CgogICAgLyoqCiAgICAgKiBQYXJzZXMgYW4gWE1MIGZpbGUgdG8gYSBcRE9NRG9jdW1lbnQuCiAgICAgKgogICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gV2hlbiBsb2FkaW5nIG9mIFhNTCBmaWxlIHJldHVybnMgZXJyb3IKICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZUZpbGVUb0RPTShzdHJpbmcgJGZpbGUpOiBcRE9NRG9jdW1lbnQKICAgIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAkZG9tID0gWG1sVXRpbHM6OmxvYWRGaWxlKCRmaWxlLCAkdGhpcy0+dmFsaWRhdGVTY2hlbWEoLi4uKSk7CiAgICAgICAgfSBjYXRjaCAoXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAkaW52YWxpZFNlY3VyaXR5RWxlbWVudHMgPSBbXTsKICAgICAgICAgICAgJGVycm9ycyA9IGV4cGxvZGUoIlxuIiwgJGUtPmdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgIGZvcmVhY2ggKCRlcnJvcnMgYXMgJGkgPT4gJGVycm9yKSB7CiAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgiI15cW0VSUk9SIDE4NzFdIEVsZW1lbnQgJ1x7aHR0cDovL3N5bWZvbnlcLmNvbS9zY2hlbWEvZGljL3NlY3VyaXR5fShbXiddKyknIyIsICRlcnJvciwgJG1hdGNoZXMpKSB7CiAgICAgICAgICAgICAgICAgICAgJGludmFsaWRTZWN1cml0eUVsZW1lbnRzWyRpXSA9ICRtYXRjaGVzWzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgkaW52YWxpZFNlY3VyaXR5RWxlbWVudHMpIHsKICAgICAgICAgICAgICAgICRkb20gPSBYbWxVdGlsczo6bG9hZEZpbGUoJGZpbGUpOwoKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRpbnZhbGlkU2VjdXJpdHlFbGVtZW50cyBhcyAkZXJyb3JJbmRleCA9PiAkdGFnTmFtZSkgewogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRkb20tPmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoJ2h0dHA6Ly9zeW1mb255LmNvbS9zY2hlbWEvZGljL3NlY3VyaXR5JywgJHRhZ05hbWUpIGFzICRlbGVtZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJHBhcmVudCA9ICRlbGVtZW50LT5wYXJlbnROb2RlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJ2h0dHA6Ly9zeW1mb255LmNvbS9zY2hlbWEvZGljL3NlY3VyaXR5JyAhPT0gJHBhcmVudC0+bmFtZXNwYWNlVVJJKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJ3Byb3ZpZGVyJyA9PT0gJHBhcmVudC0+bG9jYWxOYW1lIHx8ICdmaXJld2FsbCcgPT09ICRwYXJlbnQtPmxvY2FsTmFtZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXQoJGVycm9yc1skZXJyb3JJbmRleF0pOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgkZXJyb3JzKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdVbmFibGUgdG8gcGFyc2UgZmlsZSAiJXMiOiAnLCAkZmlsZSkuaW1wbG9kZSgiXG4iLCAkZXJyb3JzKSwgJGUtPmdldENvZGUoKSwgJGUpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+dmFsaWRhdGVFeHRlbnNpb25zKCRkb20sICRmaWxlKTsKCiAgICAgICAgcmV0dXJuICRkb207CiAgICB9CgogICAgLyoqCiAgICAgKiBQcm9jZXNzZXMgYW5vbnltb3VzIHNlcnZpY2VzLgogICAgICovCiAgICBwcml2YXRlIGZ1bmN0aW9uIHByb2Nlc3NBbm9ueW1vdXNTZXJ2aWNlcyhcRE9NRG9jdW1lbnQgJHhtbCwgc3RyaW5nICRmaWxlLCA/XERPTU5vZGUgJHJvb3QgPSBudWxsKTogdm9pZAogICAgewogICAgICAgICRkZWZpbml0aW9ucyA9IFtdOwogICAgICAgICRjb3VudCA9IDA7CiAgICAgICAgJHN1ZmZpeCA9ICd+Jy5Db250YWluZXJCdWlsZGVyOjpoYXNoKCRmaWxlKTsKCiAgICAgICAgJHhwYXRoID0gbmV3IFxET01YUGF0aCgkeG1sKTsKICAgICAgICAkeHBhdGgtPnJlZ2lzdGVyTmFtZXNwYWNlKCdjb250YWluZXInLCBzZWxmOjpOUyk7CgogICAgICAgIC8vIGFub255bW91cyBzZXJ2aWNlcyBhcyBhcmd1bWVudHMvcHJvcGVydGllcwogICAgICAgIGlmIChmYWxzZSAhPT0gJG5vZGVzID0gJHhwYXRoLT5xdWVyeSgnLi8vY29udGFpbmVyOmFyZ3VtZW50W0B0eXBlPSJzZXJ2aWNlIl1bbm90KEBpZCldfC4vL2NvbnRhaW5lcjpwcm9wZXJ0eVtAdHlwZT0ic2VydmljZSJdW25vdChAaWQpXXwuLy9jb250YWluZXI6YmluZFtub3QoQGlkKV18Li8vY29udGFpbmVyOmZhY3Rvcnlbbm90KEBzZXJ2aWNlKV18Li8vY29udGFpbmVyOmNvbmZpZ3VyYXRvcltub3QoQHNlcnZpY2UpXScsICRyb290KSkgewogICAgICAgICAgICBmb3JlYWNoICgkbm9kZXMgYXMgJG5vZGUpIHsKICAgICAgICAgICAgICAgIGlmICgkc2VydmljZXMgPSAkdGhpcy0+Z2V0Q2hpbGRyZW4oJG5vZGUsICdzZXJ2aWNlJykpIHsKICAgICAgICAgICAgICAgICAgICAvLyBnaXZlIGl0IGEgdW5pcXVlIG5hbWUKICAgICAgICAgICAgICAgICAgICAkaWQgPSBcc3ByaW50ZignLiVkXyVzJywgKyskY291bnQsIHByZWdfcmVwbGFjZSgnL14uKlxcXFwvJywgJycsICRzZXJ2aWNlc1swXS0+Z2V0QXR0cmlidXRlKCdjbGFzcycpKS4kc3VmZml4KTsKICAgICAgICAgICAgICAgICAgICAkbm9kZS0+c2V0QXR0cmlidXRlKCdpZCcsICRpZCk7CiAgICAgICAgICAgICAgICAgICAgJG5vZGUtPnNldEF0dHJpYnV0ZSgnc2VydmljZScsICRpZCk7CgogICAgICAgICAgICAgICAgICAgICRkZWZpbml0aW9uc1skaWRdID0gWyRzZXJ2aWNlc1swXSwgJGZpbGVdOwogICAgICAgICAgICAgICAgICAgICRzZXJ2aWNlc1swXS0+c2V0QXR0cmlidXRlKCdpZCcsICRpZCk7CgogICAgICAgICAgICAgICAgICAgIC8vIGFub255bW91cyBzZXJ2aWNlcyBhcmUgYWx3YXlzIHByaXZhdGUKICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjb3VsZCBub3QgdXNlIHRoZSBjb25zdGFudCBmYWxzZSBoZXJlLCBiZWNhdXNlIG9mIFhNTCBwYXJzaW5nCiAgICAgICAgICAgICAgICAgICAgJHNlcnZpY2VzWzBdLT5zZXRBdHRyaWJ1dGUoJ3B1YmxpYycsICdmYWxzZScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBhbm9ueW1vdXMgc2VydmljZXMgImluIHRoZSB3aWxkIgogICAgICAgIGlmIChmYWxzZSAhPT0gJG5vZGVzID0gJHhwYXRoLT5xdWVyeSgnLi8vY29udGFpbmVyOnNlcnZpY2VzL2NvbnRhaW5lcjpzZXJ2aWNlW25vdChAaWQpXScsICRyb290KSkgewogICAgICAgICAgICBmb3JlYWNoICgkbm9kZXMgYXMgJG5vZGUpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1RvcC1sZXZlbCBzZXJ2aWNlcyBtdXN0IGhhdmUgImlkIiBhdHRyaWJ1dGUsIG5vbmUgZm91bmQgaW4gIiVzIiBhdCBsaW5lICVkLicsICRmaWxlLCAkbm9kZS0+Z2V0TGluZU5vKCkpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gcmVzb2x2ZSBkZWZpbml0aW9ucwogICAgICAgIHVrc29ydCgkZGVmaW5pdGlvbnMsICdzdHJuYXRjbXAnKTsKICAgICAgICBmb3JlYWNoIChhcnJheV9yZXZlcnNlKCRkZWZpbml0aW9ucykgYXMgJGlkID0+IFskZG9tRWxlbWVudCwgJGZpbGVdKSB7CiAgICAgICAgICAgIGlmIChudWxsICE9PSAkZGVmaW5pdGlvbiA9ICR0aGlzLT5wYXJzZURlZmluaXRpb24oJGRvbUVsZW1lbnQsICRmaWxlLCBuZXcgRGVmaW5pdGlvbigpKSkgewogICAgICAgICAgICAgICAgJHRoaXMtPnNldERlZmluaXRpb24oJGlkLCAkZGVmaW5pdGlvbik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRBcmd1bWVudHNBc1BocChcRE9NRWxlbWVudCAkbm9kZSwgc3RyaW5nICRuYW1lLCBzdHJpbmcgJGZpbGUsIGJvb2wgJGlzQ2hpbGREZWZpbml0aW9uID0gZmFsc2UpOiBhcnJheQogICAgewogICAgICAgICRhcmd1bWVudHMgPSBbXTsKICAgICAgICBmb3JlYWNoICgkdGhpcy0+Z2V0Q2hpbGRyZW4oJG5vZGUsICRuYW1lKSBhcyAkYXJnKSB7CiAgICAgICAgICAgIGlmICgkYXJnLT5oYXNBdHRyaWJ1dGUoJ25hbWUnKSkgewogICAgICAgICAgICAgICAgJGFyZy0+c2V0QXR0cmlidXRlKCdrZXknLCAkYXJnLT5nZXRBdHRyaWJ1dGUoJ25hbWUnKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHRoaXMgaXMgdXNlZCBieSBDaGlsZERlZmluaXRpb24gdG8gb3ZlcndyaXRlIGEgc3BlY2lmaWMKICAgICAgICAgICAgLy8gYXJndW1lbnQgb2YgdGhlIHBhcmVudCBkZWZpbml0aW9uCiAgICAgICAgICAgIGlmICgkYXJnLT5oYXNBdHRyaWJ1dGUoJ2luZGV4JykpIHsKICAgICAgICAgICAgICAgICRrZXkgPSAoJGlzQ2hpbGREZWZpbml0aW9uID8gJ2luZGV4XycgOiAnJykuJGFyZy0+Z2V0QXR0cmlidXRlKCdpbmRleCcpOwogICAgICAgICAgICB9IGVsc2VpZiAoISRhcmctPmhhc0F0dHJpYnV0ZSgna2V5JykpIHsKICAgICAgICAgICAgICAgIC8vIEFwcGVuZCBhbiBlbXB0eSBhcmd1bWVudCwgdGhlbiBmZXRjaCBpdHMga2V5IHRvIG92ZXJ3cml0ZSBpdCBsYXRlcgogICAgICAgICAgICAgICAgJGFyZ3VtZW50c1tdID0gbnVsbDsKICAgICAgICAgICAgICAgICRrZXlzID0gYXJyYXlfa2V5cygkYXJndW1lbnRzKTsKICAgICAgICAgICAgICAgICRrZXkgPSBhcnJheV9wb3AoJGtleXMpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGtleSA9ICRhcmctPmdldEF0dHJpYnV0ZSgna2V5Jyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICR0cmltID0gJGFyZy0+aGFzQXR0cmlidXRlKCd0cmltJykgJiYgWG1sVXRpbHM6OnBocGl6ZSgkYXJnLT5nZXRBdHRyaWJ1dGUoJ3RyaW0nKSk7CiAgICAgICAgICAgICRvbkludmFsaWQgPSAkYXJnLT5nZXRBdHRyaWJ1dGUoJ29uLWludmFsaWQnKTsKICAgICAgICAgICAgJGludmFsaWRCZWhhdmlvciA9IENvbnRhaW5lckludGVyZmFjZTo6RVhDRVBUSU9OX09OX0lOVkFMSURfUkVGRVJFTkNFOwogICAgICAgICAgICBpZiAoJ2lnbm9yZScgPT0gJG9uSW52YWxpZCkgewogICAgICAgICAgICAgICAgJGludmFsaWRCZWhhdmlvciA9IENvbnRhaW5lckludGVyZmFjZTo6SUdOT1JFX09OX0lOVkFMSURfUkVGRVJFTkNFOwogICAgICAgICAgICB9IGVsc2VpZiAoJ2lnbm9yZV91bmluaXRpYWxpemVkJyA9PSAkb25JbnZhbGlkKSB7CiAgICAgICAgICAgICAgICAkaW52YWxpZEJlaGF2aW9yID0gQ29udGFpbmVySW50ZXJmYWNlOjpJR05PUkVfT05fVU5JTklUSUFMSVpFRF9SRUZFUkVOQ0U7CiAgICAgICAgICAgIH0gZWxzZWlmICgnbnVsbCcgPT0gJG9uSW52YWxpZCkgewogICAgICAgICAgICAgICAgJGludmFsaWRCZWhhdmlvciA9IENvbnRhaW5lckludGVyZmFjZTo6TlVMTF9PTl9JTlZBTElEX1JFRkVSRU5DRTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgc3dpdGNoICgkdHlwZSA9ICRhcmctPmdldEF0dHJpYnV0ZSgndHlwZScpKSB7CiAgICAgICAgICAgICAgICBjYXNlICdzZXJ2aWNlJzoKICAgICAgICAgICAgICAgICAgICBpZiAoJycgPT09ICRhcmctPmdldEF0dHJpYnV0ZSgnaWQnKSkgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdUYWcgIjwlcz4iIHdpdGggdHlwZT0ic2VydmljZSIgaGFzIG5vIG9yIGVtcHR5ICJpZCIgYXR0cmlidXRlIGluICIlcyIuJywgJG5hbWUsICRmaWxlKSk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWyRrZXldID0gbmV3IFJlZmVyZW5jZSgkYXJnLT5nZXRBdHRyaWJ1dGUoJ2lkJyksICRpbnZhbGlkQmVoYXZpb3IpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnZXhwcmVzc2lvbic6CiAgICAgICAgICAgICAgICAgICAgaWYgKCFjbGFzc19leGlzdHMoRXhwcmVzc2lvbjo6Y2xhc3MpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ1RoZSB0eXBlPSJleHByZXNzaW9uIiBhdHRyaWJ1dGUgY2Fubm90IGJlIHVzZWQgd2l0aG91dCB0aGUgRXhwcmVzc2lvbkxhbmd1YWdlIGNvbXBvbmVudC4gVHJ5IHJ1bm5pbmcgImNvbXBvc2VyIHJlcXVpcmUgc3ltZm9ueS9leHByZXNzaW9uLWxhbmd1YWdlIi4nKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJGtleV0gPSBuZXcgRXhwcmVzc2lvbigkYXJnLT5ub2RlVmFsdWUpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnY29sbGVjdGlvbic6CiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1ska2V5XSA9ICR0aGlzLT5nZXRBcmd1bWVudHNBc1BocCgkYXJnLCAkbmFtZSwgJGZpbGUpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnaXRlcmF0b3InOgogICAgICAgICAgICAgICAgICAgICRhcmcgPSAkdGhpcy0+Z2V0QXJndW1lbnRzQXNQaHAoJGFyZywgJG5hbWUsICRmaWxlKTsKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWyRrZXldID0gbmV3IEl0ZXJhdG9yQXJndW1lbnQoJGFyZyk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICdjbG9zdXJlJzoKICAgICAgICAgICAgICAgIGNhc2UgJ3NlcnZpY2VfY2xvc3VyZSc6CiAgICAgICAgICAgICAgICAgICAgaWYgKCcnICE9PSAkYXJnLT5nZXRBdHRyaWJ1dGUoJ2lkJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGFyZyA9IG5ldyBSZWZlcmVuY2UoJGFyZy0+Z2V0QXR0cmlidXRlKCdpZCcpLCAkaW52YWxpZEJlaGF2aW9yKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkYXJnID0gJHRoaXMtPmdldEFyZ3VtZW50c0FzUGhwKCRhcmcsICRuYW1lLCAkZmlsZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJGtleV0gPSBtYXRjaCAoJHR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJ3NlcnZpY2VfY2xvc3VyZScgPT4gbmV3IFNlcnZpY2VDbG9zdXJlQXJndW1lbnQoJGFyZyksCiAgICAgICAgICAgICAgICAgICAgICAgICdjbG9zdXJlJyA9PiAobmV3IERlZmluaXRpb24oJ0Nsb3N1cmUnKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+c2V0RmFjdG9yeShbJ0Nsb3N1cmUnLCAnZnJvbUNhbGxhYmxlJ10pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPmFkZEFyZ3VtZW50KCRhcmcpLAogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICdzZXJ2aWNlX2xvY2F0b3InOgogICAgICAgICAgICAgICAgICAgICRhcmcgPSAkdGhpcy0+Z2V0QXJndW1lbnRzQXNQaHAoJGFyZywgJG5hbWUsICRmaWxlKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhcmdbMF0pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJfZGVwcmVjYXRpb24oJ3N5bWZvbnkvZGVwZW5kZW5jeS1pbmplY3Rpb24nLCAnNi4zJywgJ1NraXBwaW5nICJrZXkiIGFyZ3VtZW50IG9yIHVzaW5nIGludGVnZXJzIGFzIHZhbHVlcyBpbiBhICJzZXJ2aWNlX2xvY2F0b3IiIHRhZyBpcyBkZXByZWNhdGVkLiBUaGUga2V5cyB3aWxsIGRlZmF1bHQgdG8gdGhlIElEcyBvZiB0aGUgb3JpZ2luYWwgc2VydmljZXMgaW4gNy4wLicpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1ska2V5XSA9IG5ldyBTZXJ2aWNlTG9jYXRvckFyZ3VtZW50KCRhcmcpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAndGFnZ2VkJzoKICAgICAgICAgICAgICAgIGNhc2UgJ3RhZ2dlZF9pdGVyYXRvcic6CiAgICAgICAgICAgICAgICBjYXNlICd0YWdnZWRfbG9jYXRvcic6CiAgICAgICAgICAgICAgICAgICAgJGZvckxvY2F0b3IgPSAndGFnZ2VkX2xvY2F0b3InID09PSAkdHlwZTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCEkYXJnLT5nZXRBdHRyaWJ1dGUoJ3RhZycpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oXHNwcmludGYoJ1RhZyAiPCVzPiIgd2l0aCB0eXBlPSIlcyIgaGFzIG5vIG9yIGVtcHR5ICJ0YWciIGF0dHJpYnV0ZSBpbiAiJXMiLicsICRuYW1lLCAkdHlwZSwgJGZpbGUpKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRleGNsdWRlcyA9IGFycmF5X2NvbHVtbigkdGhpcy0+Z2V0Q2hpbGRyZW4oJGFyZywgJ2V4Y2x1ZGUnKSwgJ25vZGVWYWx1ZScpOwogICAgICAgICAgICAgICAgICAgIGlmICgkYXJnLT5oYXNBdHRyaWJ1dGUoJ2V4Y2x1ZGUnKSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoXGNvdW50KCRleGNsdWRlcykgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdZb3UgY2Fubm90IHVzZSBib3RoIHRoZSBhdHRyaWJ1dGUgImV4Y2x1ZGUiIGFuZCA8ZXhjbHVkZT4gdGFncyBhdCB0aGUgc2FtZSB0aW1lLicpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICRleGNsdWRlcyA9IFskYXJnLT5nZXRBdHRyaWJ1dGUoJ2V4Y2x1ZGUnKV07CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWyRrZXldID0gbmV3IFRhZ2dlZEl0ZXJhdG9yQXJndW1lbnQoJGFyZy0+Z2V0QXR0cmlidXRlKCd0YWcnKSwgJGFyZy0+Z2V0QXR0cmlidXRlKCdpbmRleC1ieScpID86IG51bGwsICRhcmctPmdldEF0dHJpYnV0ZSgnZGVmYXVsdC1pbmRleC1tZXRob2QnKSA/OiBudWxsLCAkZm9yTG9jYXRvciwgJGFyZy0+Z2V0QXR0cmlidXRlKCdkZWZhdWx0LXByaW9yaXR5LW1ldGhvZCcpID86IG51bGwsICRleGNsdWRlcywgISRhcmctPmhhc0F0dHJpYnV0ZSgnZXhjbHVkZS1zZWxmJykgfHwgWG1sVXRpbHM6OnBocGl6ZSgkYXJnLT5nZXRBdHRyaWJ1dGUoJ2V4Y2x1ZGUtc2VsZicpKSk7CgogICAgICAgICAgICAgICAgICAgIGlmICgkZm9yTG9jYXRvcikgewogICAgICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWyRrZXldID0gbmV3IFNlcnZpY2VMb2NhdG9yQXJndW1lbnQoJGFyZ3VtZW50c1ska2V5XSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnYmluYXJ5JzoKICAgICAgICAgICAgICAgICAgICBpZiAoZmFsc2UgPT09ICR2YWx1ZSA9IGJhc2U2NF9kZWNvZGUoJGFyZy0+bm9kZVZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdUYWcgIjwlcz4iIHdpdGggdHlwZT0iYmluYXJ5IiBpcyBub3QgYSB2YWxpZCBiYXNlNjQgZW5jb2RlZCBzdHJpbmcuJywgJG5hbWUpKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1ska2V5XSA9ICR2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJ2Fic3RyYWN0JzoKICAgICAgICAgICAgICAgICAgICAkYXJndW1lbnRzWyRrZXldID0gbmV3IEFic3RyYWN0QXJndW1lbnQoJGFyZy0+bm9kZVZhbHVlKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6CiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1ska2V5XSA9ICR0cmltID8gdHJpbSgkYXJnLT5ub2RlVmFsdWUpIDogJGFyZy0+bm9kZVZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnY29uc3RhbnQnOgogICAgICAgICAgICAgICAgICAgICRhcmd1bWVudHNbJGtleV0gPSBcY29uc3RhbnQodHJpbSgkYXJnLT5ub2RlVmFsdWUpKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgJGFyZ3VtZW50c1ska2V5XSA9IFhtbFV0aWxzOjpwaHBpemUoJHRyaW0gPyB0cmltKCRhcmctPm5vZGVWYWx1ZSkgOiAkYXJnLT5ub2RlVmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGFyZ3VtZW50czsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBjaGlsZCBlbGVtZW50cyBieSBuYW1lLgogICAgICoKICAgICAqIEByZXR1cm4gXERPTUVsZW1lbnRbXQogICAgICovCiAgICBwcml2YXRlIGZ1bmN0aW9uIGdldENoaWxkcmVuKFxET01Ob2RlICRub2RlLCBzdHJpbmcgJG5hbWUpOiBhcnJheQogICAgewogICAgICAgICRjaGlsZHJlbiA9IFtdOwogICAgICAgIGZvcmVhY2ggKCRub2RlLT5jaGlsZE5vZGVzIGFzICRjaGlsZCkgewogICAgICAgICAgICBpZiAoJGNoaWxkIGluc3RhbmNlb2YgXERPTUVsZW1lbnQgJiYgJGNoaWxkLT5sb2NhbE5hbWUgPT09ICRuYW1lICYmIHNlbGY6Ok5TID09PSAkY2hpbGQtPm5hbWVzcGFjZVVSSSkgewogICAgICAgICAgICAgICAgJGNoaWxkcmVuW10gPSAkY2hpbGQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkY2hpbGRyZW47CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRUYWdBdHRyaWJ1dGVzKFxET01Ob2RlICRub2RlLCBzdHJpbmcgJG1pc3NpbmdOYW1lKTogYXJyYXkKICAgIHsKICAgICAgICAkcGFyYW1ldGVycyA9IFtdOwogICAgICAgICRjaGlsZHJlbiA9ICR0aGlzLT5nZXRDaGlsZHJlbigkbm9kZSwgJ2F0dHJpYnV0ZScpOwoKICAgICAgICBmb3JlYWNoICgkY2hpbGRyZW4gYXMgJGNoaWxkTm9kZSkgewogICAgICAgICAgICBpZiAoJycgPT09ICRuYW1lID0gJGNoaWxkTm9kZS0+Z2V0QXR0cmlidXRlKCduYW1lJykpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJG1pc3NpbmdOYW1lKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCR0aGlzLT5nZXRDaGlsZHJlbigkY2hpbGROb2RlLCAnYXR0cmlidXRlJykpIHsKICAgICAgICAgICAgICAgICRwYXJhbWV0ZXJzWyRuYW1lXSA9ICR0aGlzLT5nZXRUYWdBdHRyaWJ1dGVzKCRjaGlsZE5vZGUsICRtaXNzaW5nTmFtZSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoc3RyX2NvbnRhaW5zKCRuYW1lLCAnLScpICYmICFzdHJfY29udGFpbnMoJG5hbWUsICdfJykgJiYgIVxhcnJheV9rZXlfZXhpc3RzKCRub3JtYWxpemVkTmFtZSA9IHN0cl9yZXBsYWNlKCctJywgJ18nLCAkbmFtZSksICRwYXJhbWV0ZXJzKSkgewogICAgICAgICAgICAgICAgICAgICRwYXJhbWV0ZXJzWyRub3JtYWxpemVkTmFtZV0gPSBYbWxVdGlsczo6cGhwaXplKCRjaGlsZE5vZGUtPm5vZGVWYWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLyBrZWVwIG5vdCBub3JtYWxpemVkIGtleQogICAgICAgICAgICAgICAgJHBhcmFtZXRlcnNbJG5hbWVdID0gWG1sVXRpbHM6OnBocGl6ZSgkY2hpbGROb2RlLT5ub2RlVmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHBhcmFtZXRlcnM7CiAgICB9CgogICAgLyoqCiAgICAgKiBWYWxpZGF0ZXMgYSBkb2N1bWVudHMgWE1MIHNjaGVtYS4KICAgICAqCiAgICAgKiBAdGhyb3dzIFJ1bnRpbWVFeGNlcHRpb24gV2hlbiBleHRlbnNpb24gcmVmZXJlbmNlcyBhIG5vbi1leGlzdGVudCBYU0QgZmlsZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVTY2hlbWEoXERPTURvY3VtZW50ICRkb20pOiBib29sCiAgICB7CiAgICAgICAgJHNjaGVtYUxvY2F0aW9ucyA9IFsnaHR0cDovL3N5bWZvbnkuY29tL3NjaGVtYS9kaWMvc2VydmljZXMnID0+IHN0cl9yZXBsYWNlKCdcXCcsICcvJywgX19ESVJfXy4nL3NjaGVtYS9kaWMvc2VydmljZXMvc2VydmljZXMtMS4wLnhzZCcpXTsKCiAgICAgICAgaWYgKCRlbGVtZW50ID0gJGRvbS0+ZG9jdW1lbnRFbGVtZW50LT5nZXRBdHRyaWJ1dGVOUygnaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UnLCAnc2NoZW1hTG9jYXRpb24nKSkgewogICAgICAgICAgICAkaXRlbXMgPSBwcmVnX3NwbGl0KCcvXHMrLycsICRlbGVtZW50KTsKICAgICAgICAgICAgZm9yICgkaSA9IDAsICRuYiA9IFxjb3VudCgkaXRlbXMpOyAkaSA8ICRuYjsgJGkgKz0gMikgewogICAgICAgICAgICAgICAgaWYgKCEkdGhpcy0+Y29udGFpbmVyLT5oYXNFeHRlbnNpb24oJGl0ZW1zWyRpXSkpIHsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoKCRleHRlbnNpb24gPSAkdGhpcy0+Y29udGFpbmVyLT5nZXRFeHRlbnNpb24oJGl0ZW1zWyRpXSkpICYmIGZhbHNlICE9PSAkZXh0ZW5zaW9uLT5nZXRYc2RWYWxpZGF0aW9uQmFzZVBhdGgoKSkgewogICAgICAgICAgICAgICAgICAgICRucyA9ICRleHRlbnNpb24tPmdldE5hbWVzcGFjZSgpOwogICAgICAgICAgICAgICAgICAgICRwYXRoID0gc3RyX3JlcGxhY2UoWyRucywgc3RyX3JlcGxhY2UoJ2h0dHA6Ly8nLCAnaHR0cHM6Ly8nLCAkbnMpXSwgc3RyX3JlcGxhY2UoJ1xcJywgJy8nLCAkZXh0ZW5zaW9uLT5nZXRYc2RWYWxpZGF0aW9uQmFzZVBhdGgoKSkuJy8nLCAkaXRlbXNbJGkgKyAxXSk7CgogICAgICAgICAgICAgICAgICAgIGlmICghaXNfZmlsZSgkcGF0aCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oXHNwcmludGYoJ0V4dGVuc2lvbiAiJXMiIHJlZmVyZW5jZXMgYSBub24tZXhpc3RlbnQgWFNEIGZpbGUgIiVzIi4nLCBnZXRfZGVidWdfdHlwZSgkZXh0ZW5zaW9uKSwgJHBhdGgpKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRzY2hlbWFMb2NhdGlvbnNbJGl0ZW1zWyRpXV0gPSAkcGF0aDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJHRtcGZpbGVzID0gW107CiAgICAgICAgJGltcG9ydHMgPSAnJzsKICAgICAgICBmb3JlYWNoICgkc2NoZW1hTG9jYXRpb25zIGFzICRuYW1lc3BhY2UgPT4gJGxvY2F0aW9uKSB7CiAgICAgICAgICAgICRwYXJ0cyA9IGV4cGxvZGUoJy8nLCAkbG9jYXRpb24pOwogICAgICAgICAgICAkbG9jYXRpb25zdGFydCA9ICdmaWxlOi8vLyc7CiAgICAgICAgICAgIGlmICgwID09PSBzdHJpcG9zKCRsb2NhdGlvbiwgJ3BoYXI6Ly8nKSkgewogICAgICAgICAgICAgICAgJHRtcGZpbGUgPSB0ZW1wbmFtKHN5c19nZXRfdGVtcF9kaXIoKSwgJ3N5bWZvbnknKTsKICAgICAgICAgICAgICAgIGlmICgkdG1wZmlsZSkgewogICAgICAgICAgICAgICAgICAgIGNvcHkoJGxvY2F0aW9uLCAkdG1wZmlsZSk7CiAgICAgICAgICAgICAgICAgICAgJHRtcGZpbGVzW10gPSAkdG1wZmlsZTsKICAgICAgICAgICAgICAgICAgICAkcGFydHMgPSBleHBsb2RlKCcvJywgc3RyX3JlcGxhY2UoJ1xcJywgJy8nLCAkdG1wZmlsZSkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBhcnJheV9zaGlmdCgkcGFydHMpOwogICAgICAgICAgICAgICAgICAgICRsb2NhdGlvbnN0YXJ0ID0gJ3BoYXI6Ly8vJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlaWYgKCdcXCcgPT09IFxESVJFQ1RPUllfU0VQQVJBVE9SICYmIHN0cl9zdGFydHNfd2l0aCgkbG9jYXRpb24sICdcXFxcJykpIHsKICAgICAgICAgICAgICAgICRsb2NhdGlvbnN0YXJ0ID0gJyc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGRyaXZlID0gJ1xcJyA9PT0gXERJUkVDVE9SWV9TRVBBUkFUT1IgPyBhcnJheV9zaGlmdCgkcGFydHMpLicvJyA6ICcnOwogICAgICAgICAgICAkbG9jYXRpb24gPSAkbG9jYXRpb25zdGFydC4kZHJpdmUuaW1wbG9kZSgnLycsIGFycmF5X21hcCgncmF3dXJsZW5jb2RlJywgJHBhcnRzKSk7CgogICAgICAgICAgICAkaW1wb3J0cyAuPSBcc3ByaW50ZignICA8eHNkOmltcG9ydCBuYW1lc3BhY2U9IiVzIiBzY2hlbWFMb2NhdGlvbj0iJXMiIC8+Jy4iXG4iLCAkbmFtZXNwYWNlLCAkbG9jYXRpb24pOwogICAgICAgIH0KCiAgICAgICAgJHNvdXJjZSA9IDw8PEVPRgo8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4KPHhzZDpzY2hlbWEgeG1sbnM9Imh0dHA6Ly9zeW1mb255LmNvbS9zY2hlbWEiCiAgICB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIgogICAgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vc3ltZm9ueS5jb20vc2NoZW1hIgogICAgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiPgoKICAgIDx4c2Q6aW1wb3J0IG5hbWVzcGFjZT0iaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIi8+CiRpbXBvcnRzCjwveHNkOnNjaGVtYT4KRU9GCiAgICAgICAgOwoKICAgICAgICBpZiAoJHRoaXMtPnNob3VsZEVuYWJsZUVudGl0eUxvYWRlcigpKSB7CiAgICAgICAgICAgICRkaXNhYmxlRW50aXRpZXMgPSBsaWJ4bWxfZGlzYWJsZV9lbnRpdHlfbG9hZGVyKGZhbHNlKTsKICAgICAgICAgICAgJHZhbGlkID0gQCRkb20tPnNjaGVtYVZhbGlkYXRlU291cmNlKCRzb3VyY2UpOwogICAgICAgICAgICBsaWJ4bWxfZGlzYWJsZV9lbnRpdHlfbG9hZGVyKCRkaXNhYmxlRW50aXRpZXMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR2YWxpZCA9IEAkZG9tLT5zY2hlbWFWYWxpZGF0ZVNvdXJjZSgkc291cmNlKTsKICAgICAgICB9CiAgICAgICAgZm9yZWFjaCAoJHRtcGZpbGVzIGFzICR0bXBmaWxlKSB7CiAgICAgICAgICAgIEB1bmxpbmsoJHRtcGZpbGUpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICR2YWxpZDsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIHNob3VsZEVuYWJsZUVudGl0eUxvYWRlcigpOiBib29sCiAgICB7CiAgICAgICAgc3RhdGljICRkb20sICRzY2hlbWE7CiAgICAgICAgaWYgKG51bGwgPT09ICRkb20pIHsKICAgICAgICAgICAgJGRvbSA9IG5ldyBcRE9NRG9jdW1lbnQoKTsKICAgICAgICAgICAgJGRvbS0+bG9hZFhNTCgnPD94bWwgdmVyc2lvbj0iMS4wIj8+PHRlc3QvPicpOwoKICAgICAgICAgICAgJHRtcGZpbGUgPSB0ZW1wbmFtKHN5c19nZXRfdGVtcF9kaXIoKSwgJ3N5bWZvbnknKTsKICAgICAgICAgICAgcmVnaXN0ZXJfc2h1dGRvd25fZnVuY3Rpb24oc3RhdGljIGZ1bmN0aW9uICgpIHVzZSAoJHRtcGZpbGUpIHsKICAgICAgICAgICAgICAgIEB1bmxpbmsoJHRtcGZpbGUpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgJHNjaGVtYSA9ICc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pgo8eHNkOnNjaGVtYSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KICA8eHNkOmluY2x1ZGUgc2NoZW1hTG9jYXRpb249ImZpbGU6Ly8vJy5yYXd1cmxlbmNvZGUoc3RyX3JlcGxhY2UoJ1xcJywgJy8nLCAkdG1wZmlsZSkpLiciIC8+CjwveHNkOnNjaGVtYT4nOwogICAgICAgICAgICBmaWxlX3B1dF9jb250ZW50cygkdG1wZmlsZSwgJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cjx4c2Q6c2NoZW1hIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPgogIDx4c2Q6ZWxlbWVudCBuYW1lPSJ0ZXN0IiB0eXBlPSJ0ZXN0VHlwZSIgLz4KICA8eHNkOmNvbXBsZXhUeXBlIG5hbWU9InRlc3RUeXBlIi8+CjwveHNkOnNjaGVtYT4nKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAhQCRkb20tPnNjaGVtYVZhbGlkYXRlU291cmNlKCRzY2hlbWEpOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gdmFsaWRhdGVBbGlhcyhcRE9NRWxlbWVudCAkYWxpYXMsIHN0cmluZyAkZmlsZSk6IHZvaWQKICAgIHsKICAgICAgICBmb3JlYWNoICgkYWxpYXMtPmF0dHJpYnV0ZXMgYXMgJG5hbWUgPT4gJG5vZGUpIHsKICAgICAgICAgICAgaWYgKCFcaW5fYXJyYXkoJG5hbWUsIFsnYWxpYXMnLCAnaWQnLCAncHVibGljJ10pKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdJbnZhbGlkIGF0dHJpYnV0ZSAiJXMiIGRlZmluZWQgZm9yIGFsaWFzICIlcyIgaW4gIiVzIi4nLCAkbmFtZSwgJGFsaWFzLT5nZXRBdHRyaWJ1dGUoJ2lkJyksICRmaWxlKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZvcmVhY2ggKCRhbGlhcy0+Y2hpbGROb2RlcyBhcyAkY2hpbGQpIHsKICAgICAgICAgICAgaWYgKCEkY2hpbGQgaW5zdGFuY2VvZiBcRE9NRWxlbWVudCB8fCBzZWxmOjpOUyAhPT0gJGNoaWxkLT5uYW1lc3BhY2VVUkkpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgnZGVwcmVjYXRlZCcgIT09ICRjaGlsZC0+bG9jYWxOYW1lKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFxzcHJpbnRmKCdJbnZhbGlkIGNoaWxkIGVsZW1lbnQgIiVzIiBkZWZpbmVkIGZvciBhbGlhcyAiJXMiIGluICIlcyIuJywgJGNoaWxkLT5sb2NhbE5hbWUsICRhbGlhcy0+Z2V0QXR0cmlidXRlKCdpZCcpLCAkZmlsZSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogVmFsaWRhdGVzIGFuIGV4dGVuc2lvbi4KICAgICAqCiAgICAgKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBXaGVuIG5vIGV4dGVuc2lvbiBpcyBmb3VuZCBjb3JyZXNwb25kaW5nIHRvIGEgdGFnCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gdmFsaWRhdGVFeHRlbnNpb25zKFxET01Eb2N1bWVudCAkZG9tLCBzdHJpbmcgJGZpbGUpOiB2b2lkCiAgICB7CiAgICAgICAgZm9yZWFjaCAoJGRvbS0+ZG9jdW1lbnRFbGVtZW50LT5jaGlsZE5vZGVzIGFzICRub2RlKSB7CiAgICAgICAgICAgIGlmICghJG5vZGUgaW5zdGFuY2VvZiBcRE9NRWxlbWVudCB8fCAnaHR0cDovL3N5bWZvbnkuY29tL3NjaGVtYS9kaWMvc2VydmljZXMnID09PSAkbm9kZS0+bmFtZXNwYWNlVVJJKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gY2FuIGl0IGJlIGhhbmRsZWQgYnkgYW4gZXh0ZW5zaW9uPwogICAgICAgICAgICBpZiAoISR0aGlzLT5jb250YWluZXItPmhhc0V4dGVuc2lvbigkbm9kZS0+bmFtZXNwYWNlVVJJKSkgewogICAgICAgICAgICAgICAgJGV4dGVuc2lvbk5hbWVzcGFjZXMgPSBhcnJheV9maWx0ZXIoYXJyYXlfbWFwKGZuIChFeHRlbnNpb25JbnRlcmZhY2UgJGV4dCkgPT4gJGV4dC0+Z2V0TmFtZXNwYWNlKCksICR0aGlzLT5jb250YWluZXItPmdldEV4dGVuc2lvbnMoKSkpOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihcc3ByaW50ZignVGhlcmUgaXMgbm8gZXh0ZW5zaW9uIGFibGUgdG8gbG9hZCB0aGUgY29uZmlndXJhdGlvbiBmb3IgIiVzIiAoaW4gIiVzIikuIExvb2tlZCBmb3IgbmFtZXNwYWNlICIlcyIsIGZvdW5kICIlcyIuJywgJG5vZGUtPnRhZ05hbWUsICRmaWxlLCAkbm9kZS0+bmFtZXNwYWNlVVJJLCAkZXh0ZW5zaW9uTmFtZXNwYWNlcyA/IGltcGxvZGUoJyIsICInLCAkZXh0ZW5zaW9uTmFtZXNwYWNlcykgOiAnbm9uZScpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIExvYWRzIGZyb20gYW4gZXh0ZW5zaW9uLgogICAgICovCiAgICBwcml2YXRlIGZ1bmN0aW9uIGxvYWRGcm9tRXh0ZW5zaW9ucyhcRE9NRG9jdW1lbnQgJHhtbCk6IHZvaWQKICAgIHsKICAgICAgICBmb3JlYWNoICgkeG1sLT5kb2N1bWVudEVsZW1lbnQtPmNoaWxkTm9kZXMgYXMgJG5vZGUpIHsKICAgICAgICAgICAgaWYgKCEkbm9kZSBpbnN0YW5jZW9mIFxET01FbGVtZW50IHx8IHNlbGY6Ok5TID09PSAkbm9kZS0+bmFtZXNwYWNlVVJJKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHZhbHVlcyA9IHN0YXRpYzo6Y29udmVydERvbUVsZW1lbnRUb0FycmF5KCRub2RlKTsKICAgICAgICAgICAgaWYgKCFcaXNfYXJyYXkoJHZhbHVlcykpIHsKICAgICAgICAgICAgICAgICR2YWx1ZXMgPSBbXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHRoaXMtPmNvbnRhaW5lci0+bG9hZEZyb21FeHRlbnNpb24oJG5vZGUtPm5hbWVzcGFjZVVSSSwgJHZhbHVlcyk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQ29udmVydHMgYSBcRE9NRWxlbWVudCBvYmplY3QgdG8gYSBQSFAgYXJyYXkuCiAgICAgKgogICAgICogVGhlIGZvbGxvd2luZyBydWxlcyBhcHBsaWVzIGR1cmluZyB0aGUgY29udmVyc2lvbjoKICAgICAqCiAgICAgKiAgKiBFYWNoIHRhZyBpcyBjb252ZXJ0ZWQgdG8gYSBrZXkgdmFsdWUgb3IgYW4gYXJyYXkKICAgICAqICAgIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgInZhbHVlIgogICAgICoKICAgICAqICAqIFRoZSBjb250ZW50IG9mIGEgdGFnIGlzIHNldCB1bmRlciBhICJ2YWx1ZSIga2V5ICg8Zm9vPmJhcjwvZm9vPikKICAgICAqICAgIGlmIHRoZSB0YWcgYWxzbyBoYXMgc29tZSBuZXN0ZWQgdGFncwogICAgICoKICAgICAqICAqIFRoZSBhdHRyaWJ1dGVzIGFyZSBjb252ZXJ0ZWQgdG8ga2V5cyAoPGZvbyBmb289ImJhciIvPikKICAgICAqCiAgICAgKiAgKiBUaGUgbmVzdGVkLXRhZ3MgYXJlIGNvbnZlcnRlZCB0byBrZXlzICg8Zm9vPjxmb28+YmFyPC9mb28+PC9mb28+KQogICAgICoKICAgICAqIEBwYXJhbSBcRE9NRWxlbWVudCAkZWxlbWVudCBBIFxET01FbGVtZW50IGluc3RhbmNlCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY29udmVydERvbUVsZW1lbnRUb0FycmF5KFxET01FbGVtZW50ICRlbGVtZW50KTogbWl4ZWQKICAgIHsKICAgICAgICByZXR1cm4gWG1sVXRpbHM6OmNvbnZlcnREb21FbGVtZW50VG9BcnJheSgkZWxlbWVudCwgZmFsc2UpOwogICAgfQp9CiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";