1778692586
441d63ebbc39eba359c9061ece8482bd-phpdoc%3A3e1f753867e924fb2d9906eee0cf2532-e5a8734326c26bcaf48be47e0e1ff3a1
s:17116:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjI3OiJDb21tb25NYXJrQ29yZUV4dGVuc2lvbi5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjM5OiJcTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXENvbW1vbk1hcmsiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozOToiXExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxDb21tb25NYXJrIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6IkNvbW1vbk1hcmsiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo2MzoiXExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxDb21tb25NYXJrXENvbW1vbk1hcmtDb3JlRXh0ZW5zaW9uIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTU6e3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjE6e3M6NTk6IlxMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cQ29uZmlndXJhYmxlRXh0ZW5zaW9uSW50ZXJmYWNlIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTk6IlxMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cQ29uZmlndXJhYmxlRXh0ZW5zaW9uSW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzA6IkNvbmZpZ3VyYWJsZUV4dGVuc2lvbkludGVyZmFjZSI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6Mjp7czo4MjoiXExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxDb21tb25NYXJrXENvbW1vbk1hcmtDb3JlRXh0ZW5zaW9uOjpjb25maWd1cmVTY2hlbWEoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDQ6IlxMZWFndWVcQ29uZmlnXENvbmZpZ3VyYXRpb25CdWlsZGVySW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6Mjk6IkNvbmZpZ3VyYXRpb25CdWlsZGVySW50ZXJmYWNlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NzoiYnVpbGRlciI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6OTU2O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjE0NDE7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4MjoiXExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxDb21tb25NYXJrXENvbW1vbk1hcmtDb3JlRXh0ZW5zaW9uOjpjb25maWd1cmVTY2hlbWEoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJjb25maWd1cmVTY2hlbWEiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo3NToiXExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxDb21tb25NYXJrXENvbW1vbk1hcmtDb3JlRXh0ZW5zaW9uOjpyZWdpc3RlcigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1ODoiXExlYWd1ZVxDb21tb25NYXJrXEVudmlyb25tZW50XEVudmlyb25tZW50QnVpbGRlckludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI3OiJFbnZpcm9ubWVudEJ1aWxkZXJJbnRlcmZhY2UiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxMToiZW52aXJvbm1lbnQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjE1ODI7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6NTIwMTt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc1OiJcTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXENvbW1vbk1hcmtcQ29tbW9uTWFya0NvcmVFeHRlbnNpb246OnJlZ2lzdGVyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJyZWdpc3RlciI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MzoiXExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxDb21tb25NYXJrXENvbW1vbk1hcmtDb3JlRXh0ZW5zaW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjM6IkNvbW1vbk1hcmtDb3JlRXh0ZW5zaW9uIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtOO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHJlYWRPbmx5IjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6ImU1YTg3MzQzMjZjMjZiY2FmNDhiZTQ3ZTBlMWZmM2ExIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6Nzc6InZlbmRvci9sZWFndWUvY29tbW9ubWFyay9zcmMvRXh0ZW5zaW9uL0NvbW1vbk1hcmsvQ29tbW9uTWFya0NvcmVFeHRlbnNpb24ucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czo1MjA1OiI8P3BocAoKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CgovKgogKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbGVhZ3VlL2NvbW1vbm1hcmsgcGFja2FnZS4KICoKICogKGMpIENvbGluIE8nRGVsbCA8Y29saW5vZGVsbEBnbWFpbC5jb20+CiAqCiAqIE9yaWdpbmFsIGNvZGUgYmFzZWQgb24gdGhlIENvbW1vbk1hcmsgSlMgcmVmZXJlbmNlIHBhcnNlciAoaHR0cHM6Ly9iaXRseS5jb20vY29tbW9ubWFyay1qcykKICogIC0gKGMpIEpvaG4gTWFjRmFybGFuZQogKgogKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRQogKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS4KICovCgpuYW1lc3BhY2UgTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXENvbW1vbk1hcms7Cgp1c2UgTGVhZ3VlXENvbW1vbk1hcmtcRW52aXJvbm1lbnRcRW52aXJvbm1lbnRCdWlsZGVySW50ZXJmYWNlOwp1c2UgTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXENvbW1vbk1hcmtcRGVsaW1pdGVyXFByb2Nlc3NvclxFbXBoYXNpc0RlbGltaXRlclByb2Nlc3NvcjsKdXNlIExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxDb25maWd1cmFibGVFeHRlbnNpb25JbnRlcmZhY2U7CnVzZSBMZWFndWVcQ29tbW9uTWFya1xOb2RlIGFzIENvcmVOb2RlOwp1c2UgTGVhZ3VlXENvbW1vbk1hcmtcUGFyc2VyIGFzIENvcmVQYXJzZXI7CnVzZSBMZWFndWVcQ29tbW9uTWFya1xSZW5kZXJlciBhcyBDb3JlUmVuZGVyZXI7CnVzZSBMZWFndWVcQ29uZmlnXENvbmZpZ3VyYXRpb25CdWlsZGVySW50ZXJmYWNlOwp1c2UgTmV0dGVcU2NoZW1hXEV4cGVjdDsKCmZpbmFsIGNsYXNzIENvbW1vbk1hcmtDb3JlRXh0ZW5zaW9uIGltcGxlbWVudHMgQ29uZmlndXJhYmxlRXh0ZW5zaW9uSW50ZXJmYWNlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBjb25maWd1cmVTY2hlbWEoQ29uZmlndXJhdGlvbkJ1aWxkZXJJbnRlcmZhY2UgJGJ1aWxkZXIpOiB2b2lkCiAgICB7CiAgICAgICAgJGJ1aWxkZXItPmFkZFNjaGVtYSgnY29tbW9ubWFyaycsIEV4cGVjdDo6c3RydWN0dXJlKFsKICAgICAgICAgICAgJ3VzZV9hc3RlcmlzaycgPT4gRXhwZWN0Ojpib29sKHRydWUpLAogICAgICAgICAgICAndXNlX3VuZGVyc2NvcmUnID0+IEV4cGVjdDo6Ym9vbCh0cnVlKSwKICAgICAgICAgICAgJ2VuYWJsZV9zdHJvbmcnID0+IEV4cGVjdDo6Ym9vbCh0cnVlKSwKICAgICAgICAgICAgJ2VuYWJsZV9lbScgPT4gRXhwZWN0Ojpib29sKHRydWUpLAogICAgICAgICAgICAndW5vcmRlcmVkX2xpc3RfbWFya2VycycgPT4gRXhwZWN0OjpsaXN0T2YoJ3N0cmluZycpLT5taW4oMSktPmRlZmF1bHQoWycqJywgJysnLCAnLSddKS0+bWVyZ2VEZWZhdWx0cyhmYWxzZSksCiAgICAgICAgXSkpOwogICAgfQoKICAgIC8vIHBocGNzOmRpc2FibGUgR2VuZXJpYy5GdW5jdGlvbnMuRnVuY3Rpb25DYWxsQXJndW1lbnRTcGFjaW5nLlRvb011Y2hTcGFjZUFmdGVyQ29tbWEsU3F1aXouV2hpdGVTcGFjZS5TZW1pY29sb25TcGFjaW5nLkluY29ycmVjdAogICAgcHVibGljIGZ1bmN0aW9uIHJlZ2lzdGVyKEVudmlyb25tZW50QnVpbGRlckludGVyZmFjZSAkZW52aXJvbm1lbnQpOiB2b2lkCiAgICB7CiAgICAgICAgJGVudmlyb25tZW50CiAgICAgICAgICAgIC0+YWRkQmxvY2tTdGFydFBhcnNlcihuZXcgUGFyc2VyXEJsb2NrXEJsb2NrUXVvdGVTdGFydFBhcnNlcigpLCAgICAgNzApCiAgICAgICAgICAgIC0+YWRkQmxvY2tTdGFydFBhcnNlcihuZXcgUGFyc2VyXEJsb2NrXEhlYWRpbmdTdGFydFBhcnNlcigpLCAgICAgICAgNjApCiAgICAgICAgICAgIC0+YWRkQmxvY2tTdGFydFBhcnNlcihuZXcgUGFyc2VyXEJsb2NrXEZlbmNlZENvZGVTdGFydFBhcnNlcigpLCAgICAgNTApCiAgICAgICAgICAgIC0+YWRkQmxvY2tTdGFydFBhcnNlcihuZXcgUGFyc2VyXEJsb2NrXEh0bWxCbG9ja1N0YXJ0UGFyc2VyKCksICAgICAgNDApCiAgICAgICAgICAgIC0+YWRkQmxvY2tTdGFydFBhcnNlcihuZXcgUGFyc2VyXEJsb2NrXFRoZW1hdGljQnJlYWtTdGFydFBhcnNlcigpLCAgMjApCiAgICAgICAgICAgIC0+YWRkQmxvY2tTdGFydFBhcnNlcihuZXcgUGFyc2VyXEJsb2NrXExpc3RCbG9ja1N0YXJ0UGFyc2VyKCksICAgICAgMTApCiAgICAgICAgICAgIC0+YWRkQmxvY2tTdGFydFBhcnNlcihuZXcgUGFyc2VyXEJsb2NrXEluZGVudGVkQ29kZVN0YXJ0UGFyc2VyKCksIC0xMDApCgogICAgICAgICAgICAtPmFkZElubGluZVBhcnNlcihuZXcgQ29yZVBhcnNlclxJbmxpbmVcTmV3bGluZVBhcnNlcigpLCAyMDApCiAgICAgICAgICAgIC0+YWRkSW5saW5lUGFyc2VyKG5ldyBQYXJzZXJcSW5saW5lXEJhY2t0aWNrUGFyc2VyKCksICAgIDE1MCkKICAgICAgICAgICAgLT5hZGRJbmxpbmVQYXJzZXIobmV3IFBhcnNlclxJbmxpbmVcRXNjYXBhYmxlUGFyc2VyKCksICAgIDgwKQogICAgICAgICAgICAtPmFkZElubGluZVBhcnNlcihuZXcgUGFyc2VyXElubGluZVxFbnRpdHlQYXJzZXIoKSwgICAgICAgNzApCiAgICAgICAgICAgIC0+YWRkSW5saW5lUGFyc2VyKG5ldyBQYXJzZXJcSW5saW5lXEF1dG9saW5rUGFyc2VyKCksICAgICA1MCkKICAgICAgICAgICAgLT5hZGRJbmxpbmVQYXJzZXIobmV3IFBhcnNlclxJbmxpbmVcSHRtbElubGluZVBhcnNlcigpLCAgIDQwKQogICAgICAgICAgICAtPmFkZElubGluZVBhcnNlcihuZXcgUGFyc2VyXElubGluZVxDbG9zZUJyYWNrZXRQYXJzZXIoKSwgMzApCiAgICAgICAgICAgIC0+YWRkSW5saW5lUGFyc2VyKG5ldyBQYXJzZXJcSW5saW5lXE9wZW5CcmFja2V0UGFyc2VyKCksICAyMCkKICAgICAgICAgICAgLT5hZGRJbmxpbmVQYXJzZXIobmV3IFBhcnNlclxJbmxpbmVcQmFuZ1BhcnNlcigpLCAgICAgICAgIDEwKQoKICAgICAgICAgICAgLT5hZGRSZW5kZXJlcihOb2RlXEJsb2NrXEJsb2NrUXVvdGU6OmNsYXNzLCAgICBuZXcgUmVuZGVyZXJcQmxvY2tcQmxvY2tRdW90ZVJlbmRlcmVyKCksICAgIDApCiAgICAgICAgICAgIC0+YWRkUmVuZGVyZXIoQ29yZU5vZGVcQmxvY2tcRG9jdW1lbnQ6OmNsYXNzLCAgbmV3IENvcmVSZW5kZXJlclxCbG9ja1xEb2N1bWVudFJlbmRlcmVyKCksICAwKQogICAgICAgICAgICAtPmFkZFJlbmRlcmVyKE5vZGVcQmxvY2tcRmVuY2VkQ29kZTo6Y2xhc3MsICAgIG5ldyBSZW5kZXJlclxCbG9ja1xGZW5jZWRDb2RlUmVuZGVyZXIoKSwgICAgMCkKICAgICAgICAgICAgLT5hZGRSZW5kZXJlcihOb2RlXEJsb2NrXEhlYWRpbmc6OmNsYXNzLCAgICAgICBuZXcgUmVuZGVyZXJcQmxvY2tcSGVhZGluZ1JlbmRlcmVyKCksICAgICAgIDApCiAgICAgICAgICAgIC0+YWRkUmVuZGVyZXIoTm9kZVxCbG9ja1xIdG1sQmxvY2s6OmNsYXNzLCAgICAgbmV3IFJlbmRlcmVyXEJsb2NrXEh0bWxCbG9ja1JlbmRlcmVyKCksICAgICAwKQogICAgICAgICAgICAtPmFkZFJlbmRlcmVyKE5vZGVcQmxvY2tcSW5kZW50ZWRDb2RlOjpjbGFzcywgIG5ldyBSZW5kZXJlclxCbG9ja1xJbmRlbnRlZENvZGVSZW5kZXJlcigpLCAgMCkKICAgICAgICAgICAgLT5hZGRSZW5kZXJlcihOb2RlXEJsb2NrXExpc3RCbG9jazo6Y2xhc3MsICAgICBuZXcgUmVuZGVyZXJcQmxvY2tcTGlzdEJsb2NrUmVuZGVyZXIoKSwgICAgIDApCiAgICAgICAgICAgIC0+YWRkUmVuZGVyZXIoTm9kZVxCbG9ja1xMaXN0SXRlbTo6Y2xhc3MsICAgICAgbmV3IFJlbmRlcmVyXEJsb2NrXExpc3RJdGVtUmVuZGVyZXIoKSwgICAgICAwKQogICAgICAgICAgICAtPmFkZFJlbmRlcmVyKENvcmVOb2RlXEJsb2NrXFBhcmFncmFwaDo6Y2xhc3MsIG5ldyBDb3JlUmVuZGVyZXJcQmxvY2tcUGFyYWdyYXBoUmVuZGVyZXIoKSwgMCkKICAgICAgICAgICAgLT5hZGRSZW5kZXJlcihOb2RlXEJsb2NrXFRoZW1hdGljQnJlYWs6OmNsYXNzLCBuZXcgUmVuZGVyZXJcQmxvY2tcVGhlbWF0aWNCcmVha1JlbmRlcmVyKCksIDApCgogICAgICAgICAgICAtPmFkZFJlbmRlcmVyKE5vZGVcSW5saW5lXENvZGU6OmNsYXNzLCAgICAgICAgbmV3IFJlbmRlcmVyXElubGluZVxDb2RlUmVuZGVyZXIoKSwgICAgICAgIDApCiAgICAgICAgICAgIC0+YWRkUmVuZGVyZXIoTm9kZVxJbmxpbmVcRW1waGFzaXM6OmNsYXNzLCAgICBuZXcgUmVuZGVyZXJcSW5saW5lXEVtcGhhc2lzUmVuZGVyZXIoKSwgICAgMCkKICAgICAgICAgICAgLT5hZGRSZW5kZXJlcihOb2RlXElubGluZVxIdG1sSW5saW5lOjpjbGFzcywgIG5ldyBSZW5kZXJlclxJbmxpbmVcSHRtbElubGluZVJlbmRlcmVyKCksICAwKQogICAgICAgICAgICAtPmFkZFJlbmRlcmVyKE5vZGVcSW5saW5lXEltYWdlOjpjbGFzcywgICAgICAgbmV3IFJlbmRlcmVyXElubGluZVxJbWFnZVJlbmRlcmVyKCksICAgICAgIDApCiAgICAgICAgICAgIC0+YWRkUmVuZGVyZXIoTm9kZVxJbmxpbmVcTGluazo6Y2xhc3MsICAgICAgICBuZXcgUmVuZGVyZXJcSW5saW5lXExpbmtSZW5kZXJlcigpLCAgICAgICAgMCkKICAgICAgICAgICAgLT5hZGRSZW5kZXJlcihDb3JlTm9kZVxJbmxpbmVcTmV3bGluZTo6Y2xhc3MsIG5ldyBDb3JlUmVuZGVyZXJcSW5saW5lXE5ld2xpbmVSZW5kZXJlcigpLCAwKQogICAgICAgICAgICAtPmFkZFJlbmRlcmVyKE5vZGVcSW5saW5lXFN0cm9uZzo6Y2xhc3MsICAgICAgbmV3IFJlbmRlcmVyXElubGluZVxTdHJvbmdSZW5kZXJlcigpLCAgICAgIDApCiAgICAgICAgICAgIC0+YWRkUmVuZGVyZXIoQ29yZU5vZGVcSW5saW5lXFRleHQ6OmNsYXNzLCAgICBuZXcgQ29yZVJlbmRlcmVyXElubGluZVxUZXh0UmVuZGVyZXIoKSwgICAgMCkKICAgICAgICA7CgogICAgICAgIGlmICgkZW52aXJvbm1lbnQtPmdldENvbmZpZ3VyYXRpb24oKS0+Z2V0KCdjb21tb25tYXJrL3VzZV9hc3RlcmlzaycpKSB7CiAgICAgICAgICAgICRlbnZpcm9ubWVudC0+YWRkRGVsaW1pdGVyUHJvY2Vzc29yKG5ldyBFbXBoYXNpc0RlbGltaXRlclByb2Nlc3NvcignKicpKTsKICAgICAgICB9CgogICAgICAgIGlmICgkZW52aXJvbm1lbnQtPmdldENvbmZpZ3VyYXRpb24oKS0+Z2V0KCdjb21tb25tYXJrL3VzZV91bmRlcnNjb3JlJykpIHsKICAgICAgICAgICAgJGVudmlyb25tZW50LT5hZGREZWxpbWl0ZXJQcm9jZXNzb3IobmV3IEVtcGhhc2lzRGVsaW1pdGVyUHJvY2Vzc29yKCdfJykpOwogICAgICAgIH0KICAgIH0KfQoiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZG9jQmxvY2siO047czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";