1778692588
441d63ebbc39eba359c9061ece8482bd-phpdoc%3A30416396bc2234b5aedf2598b35051d4-e3d16e1fe7fc0c166890f6735c36aeda
s:13564:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE4OiJUYWJsZUV4dGVuc2lvbi5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjM0OiJcTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXFRhYmxlIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzQ6IlxMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cVGFibGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJUYWJsZSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjQ5OiJcTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXFRhYmxlXFRhYmxlRXh0ZW5zaW9uIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTU6e3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjE6e3M6NTk6IlxMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cQ29uZmlndXJhYmxlRXh0ZW5zaW9uSW50ZXJmYWNlIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTk6IlxMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cQ29uZmlndXJhYmxlRXh0ZW5zaW9uSW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzA6IkNvbmZpZ3VyYWJsZUV4dGVuc2lvbkludGVyZmFjZSI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6Mjp7czo2ODoiXExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxUYWJsZVxUYWJsZUV4dGVuc2lvbjo6Y29uZmlndXJlU2NoZW1hKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ0OiJcTGVhZ3VlXENvbmZpZ1xDb25maWd1cmF0aW9uQnVpbGRlckludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI5OiJDb25maWd1cmF0aW9uQnVpbGRlckludGVyZmFjZSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6ImJ1aWxkZXIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjcyMDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToxNzc3O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Njg6IlxMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cVGFibGVcVGFibGVFeHRlbnNpb246OmNvbmZpZ3VyZVNjaGVtYSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6ImNvbmZpZ3VyZVNjaGVtYSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjYxOiJcTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXFRhYmxlXFRhYmxlRXh0ZW5zaW9uOjpyZWdpc3RlcigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1ODoiXExlYWd1ZVxDb21tb25NYXJrXEVudmlyb25tZW50XEVudmlyb25tZW50QnVpbGRlckludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI3OiJFbnZpcm9ubWVudEJ1aWxkZXJJbnRlcmZhY2UiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxMToiZW52aXJvbm1lbnQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjE3ODQ7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MjY2OTt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjYxOiJcTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXFRhYmxlXFRhYmxlRXh0ZW5zaW9uOjpyZWdpc3RlcigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoicmVnaXN0ZXIiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cVGFibGVcVGFibGVFeHRlbnNpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoiVGFibGVFeHRlbnNpb24iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO047czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MTtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcmVhZE9ubHkiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhdHRyaWJ1dGVzIjthOjA6e319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiZTNkMTZlMWZlN2ZjMGMxNjY4OTBmNjczNWMzNmFlZGEiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czo2MzoidmVuZG9yL2xlYWd1ZS9jb21tb25tYXJrL3NyYy9FeHRlbnNpb24vVGFibGUvVGFibGVFeHRlbnNpb24ucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czoyNjczOiI8P3BocAoKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CgovKgogKiBUaGlzIGlzIHBhcnQgb2YgdGhlIGxlYWd1ZS9jb21tb25tYXJrIHBhY2thZ2UuCiAqCiAqIChjKSBNYXJ0aW4gSGFzb8WIIDxtYXJ0aW4uaGFzb25AZ21haWwuY29tPgogKiAoYykgV2VidW5pIHMuci5vLiA8aW5mb0B3ZWJ1bmkuY3o+CiAqIChjKSBDb2xpbiBPJ0RlbGwgPGNvbGlub2RlbGxAZ21haWwuY29tPgogKgogKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRQogKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS4KICovCgpuYW1lc3BhY2UgTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXFRhYmxlOwoKdXNlIExlYWd1ZVxDb21tb25NYXJrXEVudmlyb25tZW50XEVudmlyb25tZW50QnVpbGRlckludGVyZmFjZTsKdXNlIExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxDb25maWd1cmFibGVFeHRlbnNpb25JbnRlcmZhY2U7CnVzZSBMZWFndWVcQ29tbW9uTWFya1xSZW5kZXJlclxIdG1sRGVjb3JhdG9yOwp1c2UgTGVhZ3VlXENvbmZpZ1xDb25maWd1cmF0aW9uQnVpbGRlckludGVyZmFjZTsKdXNlIE5ldHRlXFNjaGVtYVxFeHBlY3Q7CgpmaW5hbCBjbGFzcyBUYWJsZUV4dGVuc2lvbiBpbXBsZW1lbnRzIENvbmZpZ3VyYWJsZUV4dGVuc2lvbkludGVyZmFjZQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gY29uZmlndXJlU2NoZW1hKENvbmZpZ3VyYXRpb25CdWlsZGVySW50ZXJmYWNlICRidWlsZGVyKTogdm9pZAogICAgewogICAgICAgICRhdHRyaWJ1dGVBcnJheVNjaGVtYSA9IEV4cGVjdDo6YXJyYXlPZigKICAgICAgICAgICAgRXhwZWN0Ojp0eXBlKCdzdHJpbmd8c3RyaW5nW118Ym9vbCcpLCAvLyBhdHRyaWJ1dGUgdmFsdWUocykKICAgICAgICAgICAgJ3N0cmluZycgLy8gYXR0cmlidXRlIG5hbWUKICAgICAgICApLT5tZXJnZURlZmF1bHRzKGZhbHNlKTsKCiAgICAgICAgJGJ1aWxkZXItPmFkZFNjaGVtYSgndGFibGUnLCBFeHBlY3Q6OnN0cnVjdHVyZShbCiAgICAgICAgICAgICd3cmFwJyA9PiBFeHBlY3Q6OnN0cnVjdHVyZShbCiAgICAgICAgICAgICAgICAnZW5hYmxlZCcgPT4gRXhwZWN0Ojpib29sKCktPmRlZmF1bHQoZmFsc2UpLAogICAgICAgICAgICAgICAgJ3RhZycgPT4gRXhwZWN0OjpzdHJpbmcoKS0+ZGVmYXVsdCgnZGl2JyksCiAgICAgICAgICAgICAgICAnYXR0cmlidXRlcycgPT4gRXhwZWN0OjphcnJheU9mKEV4cGVjdDo6c3RyaW5nKCkpLAogICAgICAgICAgICBdKSwKICAgICAgICAgICAgJ2FsaWdubWVudF9hdHRyaWJ1dGVzJyA9PiBFeHBlY3Q6OnN0cnVjdHVyZShbCiAgICAgICAgICAgICAgICAnbGVmdCcgPT4gKGNsb25lICRhdHRyaWJ1dGVBcnJheVNjaGVtYSktPmRlZmF1bHQoWydhbGlnbicgPT4gJ2xlZnQnXSksCiAgICAgICAgICAgICAgICAnY2VudGVyJyA9PiAoY2xvbmUgJGF0dHJpYnV0ZUFycmF5U2NoZW1hKS0+ZGVmYXVsdChbJ2FsaWduJyA9PiAnY2VudGVyJ10pLAogICAgICAgICAgICAgICAgJ3JpZ2h0JyA9PiAoY2xvbmUgJGF0dHJpYnV0ZUFycmF5U2NoZW1hKS0+ZGVmYXVsdChbJ2FsaWduJyA9PiAncmlnaHQnXSksCiAgICAgICAgICAgIF0pLAogICAgICAgICAgICAnbWF4X2F1dG9jb21wbGV0ZWRfY2VsbHMnID0+IEV4cGVjdDo6aW50KCktPm1pbigwKS0+ZGVmYXVsdChUYWJsZVBhcnNlcjo6REVGQVVMVF9NQVhfQVVUT0NPTVBMRVRFRF9DRUxMUyksCiAgICAgICAgXSkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZWdpc3RlcihFbnZpcm9ubWVudEJ1aWxkZXJJbnRlcmZhY2UgJGVudmlyb25tZW50KTogdm9pZAogICAgewogICAgICAgICR0YWJsZVJlbmRlcmVyID0gbmV3IFRhYmxlUmVuZGVyZXIoKTsKICAgICAgICBpZiAoJGVudmlyb25tZW50LT5nZXRDb25maWd1cmF0aW9uKCktPmdldCgndGFibGUvd3JhcC9lbmFibGVkJykpIHsKICAgICAgICAgICAgJHRhYmxlUmVuZGVyZXIgPSBuZXcgSHRtbERlY29yYXRvcigkdGFibGVSZW5kZXJlciwgJGVudmlyb25tZW50LT5nZXRDb25maWd1cmF0aW9uKCktPmdldCgndGFibGUvd3JhcC90YWcnKSwgJGVudmlyb25tZW50LT5nZXRDb25maWd1cmF0aW9uKCktPmdldCgndGFibGUvd3JhcC9hdHRyaWJ1dGVzJykpOwogICAgICAgIH0KCiAgICAgICAgJGVudmlyb25tZW50CiAgICAgICAgICAgIC0+YWRkQmxvY2tTdGFydFBhcnNlcihuZXcgVGFibGVTdGFydFBhcnNlcigkZW52aXJvbm1lbnQtPmdldENvbmZpZ3VyYXRpb24oKS0+Z2V0KCd0YWJsZS9tYXhfYXV0b2NvbXBsZXRlZF9jZWxscycpKSkKCiAgICAgICAgICAgIC0+YWRkUmVuZGVyZXIoVGFibGU6OmNsYXNzLCAkdGFibGVSZW5kZXJlcikKICAgICAgICAgICAgLT5hZGRSZW5kZXJlcihUYWJsZVNlY3Rpb246OmNsYXNzLCBuZXcgVGFibGVTZWN0aW9uUmVuZGVyZXIoKSkKICAgICAgICAgICAgLT5hZGRSZW5kZXJlcihUYWJsZVJvdzo6Y2xhc3MsIG5ldyBUYWJsZVJvd1JlbmRlcmVyKCkpCiAgICAgICAgICAgIC0+YWRkUmVuZGVyZXIoVGFibGVDZWxsOjpjbGFzcywgbmV3IFRhYmxlQ2VsbFJlbmRlcmVyKCRlbnZpcm9ubWVudC0+Z2V0Q29uZmlndXJhdGlvbigpLT5nZXQoJ3RhYmxlL2FsaWdubWVudF9hdHRyaWJ1dGVzJykpKTsKICAgIH0KfQoiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZG9jQmxvY2siO047czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";