1781727473
c05b9b66eacc8e11cfd97f370d355f8b-phpdoc%3Ab81536a26af964fd5d6b8c83eb36b58e-0dfeff7a795a265fd407f66a576d9ebb
s:30812:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE0OiJhdXRoX2d1YXJkLnBocCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTo0OntzOjE4OiJccmVxdWlyZUF1dGhQYWdlKCkiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fIjo5OntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoicnV0YSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTg6IlxyZXF1aXJlQXV0aFBhZ2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJyZXF1aXJlQXV0aFBhZ2UiO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjE0OToiQ29tcHJ1ZWJhIHNlc2nDs24gKyBwZXJtaXNvIHNvYnJlIGxhIHJ1dGEuIFJlZGlyaWdlIGFsIGxvZ2luIG8gYWwgZGFzaGJvYXJkCmVuIGNhc28gZGUgZmFsbG8uIFBlbnNhZGEgcGFyYSBsbGFtYXJzZSBhbCBpbmljaW8gZGUgY2FkYSAucGhwIHByb3RlZ2lkby4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjU4OiJydXRhIGNhbsOzbmljYSBkZSBsYSBww6FnaW5hIChlai4gJy9wYWdlcy9wYW5lbEFkbWluLnBocCcpIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJydXRhIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjYwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AbWV0YWRhdGEiO2E6MDp7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBhdHRyaWJ1dGVzIjthOjA6e319czoyMToiXHB1ZWRlQWNjZWRlclBhZ2luYSgpIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXyI6OTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6InJ1dGEiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTExO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIxOiJccHVlZGVBY2NlZGVyUGFnaW5hKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxODoicHVlZGVBY2NlZGVyUGFnaW5hIjt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo3MjoiRGV2dWVsdmUgdHJ1ZSBzaSBlbCB1c3VhcmlvIGVuIHNlc2nDs24gcHVlZGUgYWNjZWRlciBhIGxhIHJ1dGEgaW5kaWNhZGEuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI0NDoiTm8gcmVkaXJpZ2UuIMOadGlsIHBhcmEgY29uc3RydWlyIGVsIHNpZGViYXIgZGluw6FtaWNhbWVudGUgbyBwYXJhIG1vc3RyYXIKdSBvY3VsdGFyIGVubGFjZXMgZW4gb3RyYXMgcMOhZ2luYXMuCgpMb3MgcGVybWlzb3Mgc2UgY2FjaGVhbiBlbiAkX1NFU1NJT05bJ19fcGVybWlzb3NfY2FjaGUnXVsncGFnaW5hcyddIGxhCnByaW1lcmEgdmV6LCBldml0YW5kbyBxdWVyaWVzIGEgQkQgZW4gY2FkYSBww6FnaW5hIHZpc2l0YWRhLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Mzk7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjYwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AbWV0YWRhdGEiO2E6MDp7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBhdHRyaWJ1dGVzIjthOjA6e319czoyNjoiXF9jb25zdHJ1aXJDYWNoZVBlcm1pc29zKCkiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fIjo5OntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NjoidXNlcklkIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjM6InJvbCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTI2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTgzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNjoiXF9jb25zdHJ1aXJDYWNoZVBlcm1pc29zKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMzoiX2NvbnN0cnVpckNhY2hlUGVybWlzb3MiO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjEwMzoiQ29uc3RydXllIGxhIGNhY2jDqSBjb21wbGV0YSBkZSBwZXJtaXNvcyBkZWwgdXN1YXJpbyBlbiAyIHF1ZXJpZXM6CiAgMS4gVG9kYXMgbGFzIHDDoWdpbmFzIGhhYmlsaXRhZGFzLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxOTU6IjIuIFRvZGFzIGxhcyB0cmlwbGV0YXMgKHBhZ2luYV9pZCwgY29uZXhpb25faWQpIGRlbCB1c3VhcmlvLgoKRGV2dWVsdmU6CiAgWwogICAgJ3BhZ2luYXMnICAgID0+IFsgJy9wYWdlcy9yZW5kaW1pZW50bycgPT4gdHJ1ZSwgLi4uIF0sCiAgICAnY29uZXhpb25lcycgPT4gWyAncmVuZGltaWVudG8nID0+IFsxLCAzLCA1XSwgLi4uIF0sCiAgXSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXEFycmF5U2hhcGUiOjE6e3M6NTQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUHNldWRvVHlwZXNcQXJyYXlTaGFwZQBpdGVtcyI7YToyOntpOjA7Tzo1MToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXEFycmF5U2hhcGVJdGVtIjozOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXFNoYXBlSXRlbQBrZXkiO3M6NzoicGFnaW5hcyI7czo1MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQc2V1ZG9UeXBlc1xTaGFwZUl0ZW0AdmFsdWUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXFNoYXBlSXRlbQBvcHRpb25hbCI7YjowO31pOjE7Tzo1MToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXEFycmF5U2hhcGVJdGVtIjozOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXFNoYXBlSXRlbQBrZXkiO3M6MTA6ImNvbmV4aW9uZXMiO3M6NTM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUHNldWRvVHlwZXNcU2hhcGVJdGVtAHZhbHVlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjEwOiIAKgBrZXlUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXFNoYXBlSXRlbQBvcHRpb25hbCI7YjowO319fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjM5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo2MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAG1ldGFkYXRhIjthOjA6e31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AYXR0cmlidXRlcyI7YTowOnt9fXM6MTY6Ilx2YXJpYW50ZXNSdXRhKCkiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fIjo5OntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoicnV0YSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTk2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjA4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxNjoiXHZhcmlhbnRlc1J1dGEoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJ2YXJpYW50ZXNSdXRhIjt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo2NToiR2VuZXJhIGxhcyB2YXJpYW50ZXMgZGUgdW5hIHJ1dGEgcXVlIGFjZXB0YW1vcyBjb21vIGVxdWl2YWxlbnRlcy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjE1OiJQYXJhIGAvcGFnZXMvcGFuZWxBZG1pbi5waHBgIGRldnVlbHZlOgogIFsnL3BhZ2VzL3BhbmVsQWRtaW4ucGhwJywgJy9wYWdlcy9wYW5lbEFkbWluJywgJ3BhbmVsQWRtaW4ucGhwJywgJ3BhbmVsQWRtaW4nXQoKUGVybWl0ZSBxdWUgYHBhZ2luYXMucnV0YWAgZXN0w6kgZ3VhcmRhZG8gZW4gY3VhbHF1aWVyYSBkZSBlc2FzIGZvcm1hcwpzaW4gcXVlIGVsIGd1YXJkIGZhbGxlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjM5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo2MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAG1ldGFkYXRhIjthOjA6e31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjBkZmVmZjdhNzk1YTI2NWZkNDA3ZjY2YTU3NmQ5ZWJiIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6Mjg6ImJhY2tlbmQvdXRpbHMvYXV0aF9ndWFyZC5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjcwODk6Ijw/cGhwCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKLy8gVXNhciByZWFscGF0aCgpIHBhcmEgZ2FyYW50aXphciBxdWUgcmVxdWlyZV9vbmNlIGRldGVjdGUgZWwgYXJjaGl2byBlbiBXaW5kb3dzCiRfYWdfYm9vdHN0cmFwID0gcmVhbHBhdGgoX19ESVJfXyAuICcvLi4vYm9vdHN0cmFwLnBocCcpOwppZiAoIWNsYXNzX2V4aXN0cygnQ29uZXhpb24nLCBmYWxzZSkgJiYgJF9hZ19ib290c3RyYXApIHsKICAgIHJlcXVpcmVfb25jZSAkX2FnX2Jvb3RzdHJhcDsKfQoKLyoqCiAqIGF1dGhfZ3VhcmQucGhwIOKAlCBQcm90ZWNjacOzbiBkZSBww6FnaW5hcyAobm8gZGUgZW5kcG9pbnRzIEFQSSkuCiAqCiAqIERvcyBmdW5jaW9uZXMgcMO6YmxpY2FzOgogKgogKiAgIC0gcmVxdWlyZUF1dGhQYWdlKCRydXRhKSAgICBBYm9ydGEgbGEgcMOhZ2luYSB5IHJlZGlyaWdlIHNpIGxhIHNlc2nDs24KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBubyBlcyB2w6FsaWRhIG8gc2kgZWwgdXN1YXJpbyBubyB0aWVuZQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc28gc29icmUgbGEgcnV0YS4KICoKICogICAtIHB1ZWRlQWNjZWRlclBhZ2luYSgkcnV0YSkgVmVyc2nDs24gYm9vbGVhbmEgdXNhZGEgcG9yIGVsIHNpZGViYXIuCiAqCiAqIFJlZ2xhOgogKiAgIC0gcm9sIDIgKHN1cGVyKSAg4oaSIHNpZW1wcmUgYWNjZWRlLgogKiAgIC0gcm9sIDEgKGFkbWluKSAg4oaSIGFjY2VkZSBhIGNhdGVnb3LDrWFzICdnZW5lcmFsJyB5ICdkYXRvcycgc2luIHBlcm1pc28KICogICAgICAgICAgICAgICAgICAgICAgIGV4cGzDrWNpdG87IHBhcmEgJ2NvbnRyb2wnIG5lY2VzaXRhIGZpbGEgZW4gYHBlcm1pc29zYAogKiAgICAgICAgICAgICAgICAgICAgICAgc29icmUgYWxndW5hIGNvbmV4acOzbi4KICogICAtIHJvbCAwICh1c2VyKSAgIOKGkiBuZWNlc2l0YSBmaWxhIGVuIGBwZXJtaXNvc2Agc29icmUgYWxndW5hIGNvbmV4acOzbgogKiAgICAgICAgICAgICAgICAgICAgICAgcGFyYSB2ZXIgbGEgcMOhZ2luYSwgeSBubyBwdWVkZSBhY2NlZGVyIGEgJ2NvbnRyb2wnLgogKgogKiBAcGFja2FnZSB0cmFja2luZ3dlYlxiYWNrZW5kXHV0aWxzCiAqLwoKLy8g4pSA4pSAIEFQSSBww7pibGljYSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKCi8qKgogKiBDb21wcnVlYmEgc2VzacOzbiArIHBlcm1pc28gc29icmUgbGEgcnV0YS4gUmVkaXJpZ2UgYWwgbG9naW4gbyBhbCBkYXNoYm9hcmQKICogZW4gY2FzbyBkZSBmYWxsby4gUGVuc2FkYSBwYXJhIGxsYW1hcnNlIGFsIGluaWNpbyBkZSBjYWRhIC5waHAgcHJvdGVnaWRvLgogKgogKiBAcGFyYW0gc3RyaW5nICRydXRhIHJ1dGEgY2Fuw7NuaWNhIGRlIGxhIHDDoWdpbmEgKGVqLiAnL3BhZ2VzL3BhbmVsQWRtaW4ucGhwJykKICovCmZ1bmN0aW9uIHJlcXVpcmVBdXRoUGFnZShzdHJpbmcgJHJ1dGEpOiB2b2lkCnsKICAgIGlmIChzZXNzaW9uX3N0YXR1cygpID09PSBQSFBfU0VTU0lPTl9OT05FKSB7CiAgICAgICAgc2Vzc2lvbl9zdGFydCgpOwogICAgfQoKICAgIC8vIDEuIFNpbiBzZXNpw7NuIOKGkiBsb2dpbgogICAgaWYgKGVtcHR5KCRfU0VTU0lPTlsndXNlcl9pZCddKSkgewogICAgICAgIGhlYWRlcignTG9jYXRpb246IGxvZ2luLnBocCcpOwogICAgICAgIGV4aXQ7CiAgICB9CgogICAgLy8gMi4gQmluZGluZyBJUC9VQSAoY29uc2lzdGVudGUgY29uIHJlcXVpcmVBdXRoQXBpKCkgZGUgYXBpLnBocCkKICAgIGlmICgoJF9TRVNTSU9OWydfX2lwJ10gPz8gbnVsbCkgIT09ICRfU0VSVkVSWydSRU1PVEVfQUREUiddCiAgICAgICAgfHwgKCRfU0VTU0lPTlsnX191YSddID8/IG51bGwpICE9PSAoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddID8/ICcnKQogICAgKSB7CiAgICAgICAgc2Vzc2lvbl9kZXN0cm95KCk7CiAgICAgICAgaGVhZGVyKCdMb2NhdGlvbjogbG9naW4ucGhwJyk7CiAgICAgICAgZXhpdDsKICAgIH0KCiAgICAvLyAzLiBQZXJtaXNvIHNvYnJlIGxhIHJ1dGEKICAgIGlmICghcHVlZGVBY2NlZGVyUGFnaW5hKCRydXRhKSkgewogICAgICAgIGh0dHBfcmVzcG9uc2VfY29kZSg0MDMpOwogICAgICAgIGhlYWRlcignTG9jYXRpb246IGRhc2hib2FyZC5waHAnKTsKICAgICAgICBleGl0OwogICAgfQp9CgovKioKICogRGV2dWVsdmUgdHJ1ZSBzaSBlbCB1c3VhcmlvIGVuIHNlc2nDs24gcHVlZGUgYWNjZWRlciBhIGxhIHJ1dGEgaW5kaWNhZGEuCiAqCiAqIE5vIHJlZGlyaWdlLiDDmnRpbCBwYXJhIGNvbnN0cnVpciBlbCBzaWRlYmFyIGRpbsOhbWljYW1lbnRlIG8gcGFyYSBtb3N0cmFyCiAqIHUgb2N1bHRhciBlbmxhY2VzIGVuIG90cmFzIHDDoWdpbmFzLgogKgogKiBMb3MgcGVybWlzb3Mgc2UgY2FjaGVhbiBlbiAkX1NFU1NJT05bJ19fcGVybWlzb3NfY2FjaGUnXVsncGFnaW5hcyddIGxhCiAqIHByaW1lcmEgdmV6LCBldml0YW5kbyBxdWVyaWVzIGEgQkQgZW4gY2FkYSBww6FnaW5hIHZpc2l0YWRhLgogKi8KZnVuY3Rpb24gcHVlZGVBY2NlZGVyUGFnaW5hKHN0cmluZyAkcnV0YSk6IGJvb2wKewogICAgaWYgKHNlc3Npb25fc3RhdHVzKCkgPT09IFBIUF9TRVNTSU9OX05PTkUpIHsKICAgICAgICBzZXNzaW9uX3N0YXJ0KCk7CiAgICB9CgogICAgaWYgKGVtcHR5KCRfU0VTU0lPTlsndXNlcl9pZCddKSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAkcm9sICAgID0gKGludCkoJF9TRVNTSU9OWydyb2wnXSA/PyAwKTsKICAgICR1c2VySWQgPSAoaW50KSRfU0VTU0lPTlsndXNlcl9pZCddOwoKICAgIC8vIFN1cGVyOiBzaWVtcHJlLCBzaW4gdG9jYXIgY2FjaMOpICh1c2VyX2lkID0gLTEsIG5vIGV4aXN0ZSBlbiBCRCkKICAgIGlmICgkcm9sID09PSAyKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgLy8gQ29uc3RydXllIGxhIGNhY2jDqSBzaSB0b2RhdsOtYSBubyBleGlzdGUgcGFyYSBlc3RhIHNlc2nDs24KICAgIGlmICghaXNzZXQoJF9TRVNTSU9OWydfX3Blcm1pc29zX2NhY2hlJ11bJ3BhZ2luYXMnXSkpIHsKICAgICAgICAkY2FjaGUgPSBfY29uc3RydWlyQ2FjaGVQZXJtaXNvcygkdXNlcklkLCAkcm9sKTsKICAgICAgICAkX1NFU1NJT05bJ19fcGVybWlzb3NfY2FjaGUnXVsncGFnaW5hcyddICAgID0gJGNhY2hlWydwYWdpbmFzJ107CiAgICAgICAgJF9TRVNTSU9OWydfX3Blcm1pc29zX2NhY2hlJ11bJ2NvbmV4aW9uZXMnXSA9ICRjYWNoZVsnY29uZXhpb25lcyddOwogICAgfQoKICAgIC8vIEJ1c2NhIGN1YWxxdWllciB2YXJpYW50ZSBkZSBsYSBydXRhIGVuIGxhIGNhY2jDqQogICAgZm9yZWFjaCAodmFyaWFudGVzUnV0YSgkcnV0YSkgYXMgJHYpIHsKICAgICAgICBpZiAoaXNzZXQoJF9TRVNTSU9OWydfX3Blcm1pc29zX2NhY2hlJ11bJ3BhZ2luYXMnXVskdl0pKSB7CiAgICAgICAgICAgIHJldHVybiAkX1NFU1NJT05bJ19fcGVybWlzb3NfY2FjaGUnXVsncGFnaW5hcyddWyR2XTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGZhbHNlOwp9CgovKioKICogQ29uc3RydXllIGxhIGNhY2jDqSBjb21wbGV0YSBkZSBwZXJtaXNvcyBkZWwgdXN1YXJpbyBlbiAyIHF1ZXJpZXM6CiAqICAgMS4gVG9kYXMgbGFzIHDDoWdpbmFzIGhhYmlsaXRhZGFzLgogKiAgIDIuIFRvZGFzIGxhcyB0cmlwbGV0YXMgKHBhZ2luYV9pZCwgY29uZXhpb25faWQpIGRlbCB1c3VhcmlvLgogKgogKiBEZXZ1ZWx2ZToKICogICBbCiAqICAgICAncGFnaW5hcycgICAgPT4gWyAnL3BhZ2VzL3JlbmRpbWllbnRvJyA9PiB0cnVlLCAuLi4gXSwKICogICAgICdjb25leGlvbmVzJyA9PiBbICdyZW5kaW1pZW50bycgPT4gWzEsIDMsIDVdLCAuLi4gXSwKICogICBdCiAqCiAqIEByZXR1cm4gYXJyYXl7cGFnaW5hczogYXJyYXk8c3RyaW5nLGJvb2w+LCBjb25leGlvbmVzOiBhcnJheTxzdHJpbmcsaW50W10+fQogKi8KZnVuY3Rpb24gX2NvbnN0cnVpckNhY2hlUGVybWlzb3MoaW50ICR1c2VySWQsIGludCAkcm9sKTogYXJyYXkKewogICAgJGNhY2hlUGFnaW5hcyAgICA9IFtdOwogICAgJGNhY2hlQ29uZXhpb25lcyA9IFtdOwoKICAgIHRyeSB7CiAgICAgICAgJHBkbyA9IENvbmV4aW9uOjpnZXRUcmFja2luZ1dlYlBkbygpOwoKICAgICAgICAvLyBUb2RhcyBsYXMgcMOhZ2luYXMgaGFiaWxpdGFkYXMKICAgICAgICAkc3RtdCAgID0gJHBkby0+cXVlcnkoJ1NFTEVDVCBpZCwgcnV0YSwgbm9tYnJlLCBjYXRlZ29yaWEgRlJPTSBwYWdpbmFzIFdIRVJFIGhhYmlsaXRhZG8gPSAxJyk7CiAgICAgICAgJHBhZ2luYXMgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7CgogICAgICAgIC8vIFRyaXBsZXRhcyBkZWwgdXN1YXJpbzogcXXDqSBjb25leGlvbmVzIHRpZW5lIHBvciBww6FnaW5hCiAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKAogICAgICAgICAgICAnU0VMRUNUIHAucGFnaW5hX2lkLCBwLmNvbmV4aW9uX2lkLCBwZy5ub21icmUgQVMgcGFnaW5hX25vbWJyZQogICAgICAgICAgICAgICBGUk9NIHBlcm1pc29zIHAKICAgICAgICAgICAgICAgSk9JTiBwYWdpbmFzIHBnIE9OIHBnLmlkID0gcC5wYWdpbmFfaWQKICAgICAgICAgICAgICBXSEVSRSBwLnVzZXJfaWQgPSA/JwogICAgICAgICk7CiAgICAgICAgJHN0bXQtPmV4ZWN1dGUoWyR1c2VySWRdKTsKICAgICAgICAkZmlsYXMgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7CgogICAgICAgIC8vIEFncnVwYSBjb25leGlvbmVzIHBvciBwYWdpbmFfaWQgeSBwb3Igbm9tYnJlIGRlIHDDoWdpbmEKICAgICAgICAkY29uZXhpb25lc1BvcklkID0gW107IC8vIFtwYWdpbmFfaWQgPT4gW2NvbmV4aW9uX2lkLCAuLi5dXQogICAgICAgIGZvcmVhY2ggKCRmaWxhcyBhcyAkZmlsYSkgewogICAgICAgICAgICAkcGlkID0gKGludCkkZmlsYVsncGFnaW5hX2lkJ107CiAgICAgICAgICAgICRjaWQgPSAoaW50KSRmaWxhWydjb25leGlvbl9pZCddOwoKICAgICAgICAgICAgJGNvbmV4aW9uZXNQb3JJZFskcGlkXVtdICAgICAgICAgICAgICAgICAgICAgICAgPSAkY2lkOwogICAgICAgICAgICAkY2FjaGVDb25leGlvbmVzWyRmaWxhWydwYWdpbmFfbm9tYnJlJ11dICAgICAgICA9ICRjb25leGlvbmVzUG9ySWRbJHBpZF07CiAgICAgICAgfQoKICAgICAgICAvLyBSZXN1ZWx2ZSBlbCBib29sZWFubyBkZSBhY2Nlc28gcGFyYSBjYWRhIHDDoWdpbmEKICAgICAgICBmb3JlYWNoICgkcGFnaW5hcyBhcyAkcGFnaW5hKSB7CiAgICAgICAgICAgICRwYWdpbmFJZCAgPSAoaW50KSRwYWdpbmFbJ2lkJ107CiAgICAgICAgICAgICRjYXRlZ29yaWEgPSAoc3RyaW5nKSRwYWdpbmFbJ2NhdGVnb3JpYSddOwoKICAgICAgICAgICAgJHRpZW5lID0gbWF0Y2ggKHRydWUpIHsKICAgICAgICAgICAgICAgICRyb2wgPT09IDAgJiYgJGNhdGVnb3JpYSA9PT0gJ2NvbnRyb2wnID0+IGZhbHNlLAogICAgICAgICAgICAgICAgJHJvbCA9PT0gMSAmJiAkY2F0ZWdvcmlhICE9PSAnY29udHJvbCcgPT4gdHJ1ZSwgIC8vIGFkbWluIHBhc2Egc2luIGZpbGEKICAgICAgICAgICAgICAgIGRlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IGlzc2V0KCRjb25leGlvbmVzUG9ySWRbJHBhZ2luYUlkXSksCiAgICAgICAgICAgIH07CgogICAgICAgICAgICAvLyBSZWdpc3RyYSB0b2RhcyBsYXMgdmFyaWFudGVzIHBhcmEgcXVlIHZhcmlhbnRlc1J1dGEoKSBzaWVtcHJlIGVuY3VlbnRyZQogICAgICAgICAgICBmb3JlYWNoICh2YXJpYW50ZXNSdXRhKCRwYWdpbmFbJ3J1dGEnXSkgYXMgJHYpIHsKICAgICAgICAgICAgICAgICRjYWNoZVBhZ2luYXNbJHZdID0gJHRpZW5lOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgIH0gY2F0Y2ggKFRocm93YWJsZSAkZSkgewogICAgICAgIGVycm9yX2xvZygnW2F1dGhfZ3VhcmQ6X2NvbnN0cnVpckNhY2hlUGVybWlzb3NdICcgLiAkZS0+Z2V0TWVzc2FnZSgpKTsKICAgIH0KCiAgICByZXR1cm4gWwogICAgICAgICdwYWdpbmFzJyAgICA9PiAkY2FjaGVQYWdpbmFzLAogICAgICAgICdjb25leGlvbmVzJyA9PiAkY2FjaGVDb25leGlvbmVzLAogICAgXTsKfQoKLyoqCiAqIEdlbmVyYSBsYXMgdmFyaWFudGVzIGRlIHVuYSBydXRhIHF1ZSBhY2VwdGFtb3MgY29tbyBlcXVpdmFsZW50ZXMuCiAqCiAqIFBhcmEgYC9wYWdlcy9wYW5lbEFkbWluLnBocGAgZGV2dWVsdmU6CiAqICAgWycvcGFnZXMvcGFuZWxBZG1pbi5waHAnLCAnL3BhZ2VzL3BhbmVsQWRtaW4nLCAncGFuZWxBZG1pbi5waHAnLCAncGFuZWxBZG1pbiddCiAqCiAqIFBlcm1pdGUgcXVlIGBwYWdpbmFzLnJ1dGFgIGVzdMOpIGd1YXJkYWRvIGVuIGN1YWxxdWllcmEgZGUgZXNhcyBmb3JtYXMKICogc2luIHF1ZSBlbCBndWFyZCBmYWxsZS4KICoKICogQHJldHVybiBzdHJpbmdbXQogKi8KZnVuY3Rpb24gdmFyaWFudGVzUnV0YShzdHJpbmcgJHJ1dGEpOiBhcnJheQp7CiAgICAkYmFzZSAgICAgID0gYmFzZW5hbWUoJHJ1dGEpOyAgICAgICAgICAgICAgICAgICAgICAgLy8gcGFuZWxBZG1pbi5waHAKICAgICRiYXNlTm9QaHAgPSBwcmVnX3JlcGxhY2UoJy9cLnBocCQvaScsICcnLCAkYmFzZSk7ICAvLyBwYW5lbEFkbWluCiAgICAkY29uUGFnZXMgID0gJy9wYWdlcy8nIC4gJGJhc2VOb1BocDsgICAgICAgICAgICAgICAgLy8gL3BhZ2VzL3BhbmVsQWRtaW4KCiAgICByZXR1cm4gYXJyYXlfdmFsdWVzKGFycmF5X3VuaXF1ZShbCiAgICAgICAgJGNvblBhZ2VzIC4gJy5waHAnLCAgLy8gL3BhZ2VzL3BhbmVsQWRtaW4ucGhwICDihpAgY2Fuw7NuaWNhCiAgICAgICAgJGNvblBhZ2VzLCAgICAgICAgICAgLy8gL3BhZ2VzL3BhbmVsQWRtaW4KICAgICAgICAkYmFzZSwgICAgICAgICAgICAgICAvLyBwYW5lbEFkbWluLnBocAogICAgICAgICRiYXNlTm9QaHAsICAgICAgICAgIC8vIHBhbmVsQWRtaW4KICAgIF0pKTsKfSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";