1778692665
441d63ebbc39eba359c9061ece8482bd-phpdoc%3Aabb9af2beae3900e6f66f9bd65d58dac-7d7206f58cc79fe6d014b42e9487864e
s:36452:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE5OiJGcmVuY2hJbmZsZWN0b3IucGhwIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czozNToiXFN5bWZvbnlcQ29tcG9uZW50XFN0cmluZ1xJbmZsZWN0b3IiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNToiXFN5bWZvbnlcQ29tcG9uZW50XFN0cmluZ1xJbmZsZWN0b3IiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJJbmZsZWN0b3IiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo1MToiXFN5bWZvbnlcQ29tcG9uZW50XFN0cmluZ1xJbmZsZWN0b3JcRnJlbmNoSW5mbGVjdG9yIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTU6e3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjE6e3M6NTQ6IlxTeW1mb255XENvbXBvbmVudFxTdHJpbmdcSW5mbGVjdG9yXEluZmxlY3RvckludGVyZmFjZSI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU0OiJcU3ltZm9ueVxDb21wb25lbnRcU3RyaW5nXEluZmxlY3RvclxJbmZsZWN0b3JJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxODoiSW5mbGVjdG9ySW50ZXJmYWNlIjt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6Mzp7czo2OToiXFN5bWZvbnlcQ29tcG9uZW50XFN0cmluZ1xJbmZsZWN0b3JcRnJlbmNoSW5mbGVjdG9yOjpQTFVSQUxJWkVfUkVHRVhQIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo5OntzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY5OiJcU3ltZm9ueVxDb21wb25lbnRcU3RyaW5nXEluZmxlY3RvclxGcmVuY2hJbmZsZWN0b3I6OlBMVVJBTElaRV9SRUdFWFAiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiUExVUkFMSVpFX1JFR0VYUCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozNDoiQSBsaXN0IG9mIGFsbCBydWxlcyBmb3IgcGx1cmFsaXNlLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7TjtzOjk6IgAqAHJlZmVycyI7Tzo1MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXFVybCI6MTp7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxVcmwAdXJpIjtzOjgxOiJodHRwczovL2xhLWNvbmp1Z2Fpc29uLm5vdXZlbG9icy5jb20vcmVnbGVzL2dyYW1tYWlyZS9sZS1wbHVyaWVsLWRlcy1ub21zLTEyMS5waHAiO319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MzQ6IlN5bWZvbnlcQ29tcG9uZW50XFN0cmluZ1xJbmZsZWN0b3IiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uIjoyOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAGV4cHJlc3Npb24iO3M6MTYxNToiWwogICAgLy8gRmlyc3QgZW50cnk6IHJlZ2V4cAogICAgLy8gU2Vjb25kIGVudHJ5OiByZXBsYWNlbWVudAogICAgLy8gV29yZHMgZmluaXNoaW5nIHdpdGggInMiLCAieCIgb3IgInoiIGFyZSBpbnZhcmlhYmxlcwogICAgLy8gTGVzIG1vdHMgZmluaXNzYW50IHBhciAicyIsICJ4IiBvdSAieiIgc29udCBpbnZhcmlhYmxlcwogICAgWycvKHN8eHx6KSQvaScsICdcMSddLAogICAgLy8gV29yZHMgZmluaXNoaW5nIHdpdGggImVhdSIgYXJlIHBsdXJhbGl6ZWQgd2l0aCBhICJ4IgogICAgLy8gTGVzIG1vdHMgZmluaXNzYW50IHBhciAiZWF1IiBwcmVubmVudCB0b3VzIHVuICJ4IiBhdSBwbHVyaWVsCiAgICBbJy8oZWF1KSQvaScsICdcMXgnXSwKICAgIC8vIFdvcmRzIGZpbmlzaGluZyB3aXRoICJhdSIgYXJlIHBsdXJhbGl6ZWQgd2l0aCBhICJ4IiBleGNlcHRlZCAibGFuZGF1IgogICAgLy8gTGVzIG1vdHMgZmluaXNzYW50IHBhciAiYXUiIHByZW5uZW50IHVuICJ4IiBhdSBwbHVyaWVsIHNhdWYgImxhbmRhdSIKICAgIFsnL14obGFuZGF1KSQvaScsICdcMXMnXSwKICAgIFsnLyhhdSkkL2knLCAnXDF4J10sCiAgICAvLyBXb3JkcyBmaW5pc2hpbmcgd2l0aCAiZXUiIGFyZSBwbHVyYWxpemVkIHdpdGggYSAieCIgZXhjZXB0ZWQgInBuZXUiLCAiYmxldSIsICLDqW1ldSIKICAgIC8vIExlcyBtb3RzIGZpbmlzc2FudCBlbiAiZXUiIHByZW5uZW50IHVuICJ4IiBhdSBwbHVyaWVsIHNhdWYgInBuZXUiLCAiYmxldSIsICLDqW1ldSIKICAgIFsnL14ocG5ldXxibGV1fMOpbWV1KSQvaScsICdcMXMnXSwKICAgIFsnLyhldSkkL2knLCAnXDF4J10sCiAgICAvLyBXb3JkcyBmaW5pc2hpbmcgd2l0aCAiYWwiIGFyZSBwbHVyYWxpemVkIHdpdGggYSAiYXV4IiBleGNlcHRlZAogICAgLy8gTGVzIG1vdHMgZmluaXNzYW50IGVuICJhbCIgc2UgdGVybWluZW50IGVuICJhdXgiIHNhdWYKICAgIFsnL14oYmFsfGNhcm5hdmFsfGNhcmFjYWx8Y2hhY2FsfGNob3JhbHxjb3JyYWx8w6l0YWx8ZmVzdGl2YWx8csOpY2l0YWx8dmFsKSQvaScsICdcMXMnXSwKICAgIFsnL2FsJC9pJywgJ1wxYXV4J10sCiAgICAvLyBBc3BpcmFpbCwgYmFpbCwgY29yYWlsLCDDqW1haWwsIGZlcm1haWwsIHNvdXBpcmFpbCwgdHJhdmFpbCwgdmFudGFpbCBldCB2aXRyYWlsIGZvbnQgbGV1ciBwbHVyaWVsIGVuIC1hdXgKICAgIFsnL14oYXNwaXJ8Ynxjb3J8w6ltfGZlcm18c291cGlyfHRyYXZ8dmFudHx2aXRyKWFpbCQvaScsICdcMWF1eCddLAogICAgLy8gQmlqb3UsIGNhaWxsb3UsIGNob3UsIGdlbm91LCBoaWJvdSwgam91am91IGV0IHBvdSBxdWkgcHJlbm5lbnQgdW4geCBhdSBwbHVyaWVsCiAgICBbJy9eKGJpanxjYWlsbHxjaHxnZW58aGlifGpvdWp8cClvdSQvaScsICdcMW91eCddLAogICAgLy8gSW52YXJpYWJsZSB3b3JkcwogICAgWycvXihjaW5xdWFudGV8c29peGFudGV8bWlsbGUpJC9pJywgJ1wxJ10sCiAgICAvLyBGcmVuY2ggdGl0bGVzCiAgICBbJy9eKG1vbnxtYSkoc2lldXJ8ZGFtZXxkZW1vaXNlbGxlfHNlaWduZXVyKSQvJywgJ21lc1wycyddLAogICAgWycvXihNb258TWEpKHNpZXVyfGRhbWV8ZGVtb2lzZWxsZXxzZWlnbmV1cikkLycsICdNZXNcMnMnXSwKXSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YTowOnt9fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZpbmFsIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbWV0YWRhdGEiO2E6MDp7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjcxOiJcU3ltZm9ueVxDb21wb25lbnRcU3RyaW5nXEluZmxlY3RvclxGcmVuY2hJbmZsZWN0b3I6OlNJTkdVTEFSSVpFX1JFR0VYUCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6OTp7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjcwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzE6IlxTeW1mb255XENvbXBvbmVudFxTdHJpbmdcSW5mbGVjdG9yXEZyZW5jaEluZmxlY3Rvcjo6U0lOR1VMQVJJWkVfUkVHRVhQIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTg6IlNJTkdVTEFSSVpFX1JFR0VYUCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozNjoiQSBsaXN0IG9mIGFsbCBydWxlcyBmb3Igc2luZ3VsYXJpemUuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NDA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudAB2YWx1ZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uIjoyOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAGV4cHJlc3Npb24iO3M6MTU3NjoiWwogICAgLy8gRmlyc3QgZW50cnk6IHJlZ2V4cAogICAgLy8gU2Vjb25kIGVudHJ5OiByZXBsYWNlbWVudAogICAgLy8gQXNwaXJhaWwsIGJhaWwsIGNvcmFpbCwgw6ltYWlsLCBmZXJtYWlsLCBzb3VwaXJhaWwsIHRyYXZhaWwsIHZhbnRhaWwgZXQgdml0cmFpbCBmb250IGxldXIgcGx1cmllbCBlbiAtYXV4CiAgICBbJy8oKGFzcGlyfGJ8Y29yfMOpbXxmZXJtfHNvdXBpcnx0cmF2fHZhbnR8dml0cikpYXV4JC9pJywgJ1wxYWlsJ10sCiAgICAvLyBXb3JkcyBmaW5pc2hpbmcgd2l0aCAiZWF1IiBhcmUgcGx1cmFsaXplZCB3aXRoIGEgIngiCiAgICAvLyBMZXMgbW90cyBmaW5pc3NhbnQgcGFyICJlYXUiIHByZW5uZW50IHRvdXMgdW4gIngiIGF1IHBsdXJpZWwKICAgIFsnLyhlYXUpeCQvaScsICdcMSddLAogICAgLy8gV29yZHMgZmluaXNoaW5nIHdpdGggImFsIiBhcmUgcGx1cmFsaXplZCB3aXRoIGEgImF1eCIgZXhwZWN0ZWQKICAgIC8vIExlcyBtb3RzIGZpbmlzc2FudCBlbiAiYWwiIHNlIHRlcm1pbmVudCBlbiAiYXV4IiBzYXVmCiAgICBbJy8oYW1pcnxhbmltfGFyc2VufGJvY3xjYW58Y2FwaXR8Y2Fwb3J8Y2hldnxjcmlzdHxnw6luw6lyfGhvcGl0fGjDtHBpdHxpZMOpfGpvdXJufGxpdHRvcnxsb2N8bXxtw6l0fG1pbsOpcnxwcmluY2lwfHJhZGljfHRlcm1pbilhdXgkL2knLCAnXDFhbCddLAogICAgLy8gV29yZHMgZmluaXNoaW5nIHdpdGggImF1IiBhcmUgcGx1cmFsaXplZCB3aXRoIGEgIngiIGV4Y2VwdGVkICJsYW5kYXUiCiAgICAvLyBMZXMgbW90cyBmaW5pc3NhbnQgcGFyICJhdSIgcHJlbm5lbnQgdW4gIngiIGF1IHBsdXJpZWwgc2F1ZiAibGFuZGF1IgogICAgWycvKGF1KXgkL2knLCAnXDEnXSwKICAgIC8vIFdvcmRzIGZpbmlzaGluZyB3aXRoICJldSIgYXJlIHBsdXJhbGl6ZWQgd2l0aCBhICJ4IiBleGNlcHRlZCAicG5ldSIsICJibGV1IiwgIsOpbWV1IgogICAgLy8gTGVzIG1vdHMgZmluaXNzYW50IGVuICJldSIgcHJlbm5lbnQgdW4gIngiIGF1IHBsdXJpZWwgc2F1ZiAicG5ldSIsICJibGV1IiwgIsOpbWV1IgogICAgWycvKGV1KXgkL2knLCAnXDEnXSwKICAgIC8vICBXb3JkcyBmaW5pc2hpbmcgd2l0aCAib3UiIGFyZSBwbHVyYWxpemVkIHdpdGggYSAicyIgZXhjZXB0ZWQgYmlqb3UsIGNhaWxsb3UsIGNob3UsIGdlbm91LCBoaWJvdSwgam91am91LCBwb3UKICAgIC8vIExlcyBtb3RzIGZpbmlzc2FudCBwYXIgIm91IiBwcmVubmVudCB1biAicyIgc2F1ZiBiaWpvdSwgY2FpbGxvdSwgY2hvdSwgZ2Vub3UsIGhpYm91LCBqb3Vqb3UsIHBvdQogICAgWycvKGJpanxjYWlsbHxjaHxnZW58aGlifGpvdWp8cClvdXgkL2knLCAnXDFvdSddLAogICAgLy8gRnJlbmNoIHRpdGxlcwogICAgWycvXm1lcyhkYW1lfGRlbW9pc2VsbGUpcyQvJywgJ21hXDEnXSwKICAgIFsnL15NZXMoZGFtZXxkZW1vaXNlbGxlKXMkLycsICdNYVwxJ10sCiAgICBbJy9ebWVzKHNpZXVyfHNlaWduZXVyKXMkLycsICdtb25cMSddLAogICAgWycvXk1lcyhzaWV1cnxzZWlnbmV1cilzJC8nLCAnTW9uXDEnXSwKICAgIC8vIERlZmF1bHQgcnVsZQogICAgWycvcyQvaScsICcnXSwKXSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YTowOnt9fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZpbmFsIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbWV0YWRhdGEiO2E6MDp7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjY0OiJcU3ltZm9ueVxDb21wb25lbnRcU3RyaW5nXEluZmxlY3RvclxGcmVuY2hJbmZsZWN0b3I6OlVOSU5GTEVDVEVEIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo5OntzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTExO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjQ6IlxTeW1mb255XENvbXBvbmVudFxTdHJpbmdcSW5mbGVjdG9yXEZyZW5jaEluZmxlY3Rvcjo6VU5JTkZMRUNURUQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiVU5JTkZMRUNURUQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDY6IkEgbGlzdCBvZiB3b3JkcyB3aGljaCBzaG91bGQgbm90IGJlIGluZmxlY3RlZC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mzg6IlRoaXMgbGlzdCBpcyBvbmx5IHVzZWQgYnkgc2luZ3VsYXJpemUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo0MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24iOjI6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AZXhwcmVzc2lvbiI7czo2MTQ6IicvXihhYmPDqHN8YWNjw6hzfGFidXN8YWxiYXRyb3N8YW5jaG9pc3xhbmdsYWlzfGF1dG9idXN8Ym9pc3xicmViaXN8Y2FycXVvaXN8Y2FzfGNoYXN8Y29saXN8Y29uY291cnN8Y29ycHN8Y291cnN8Y3lwcsOoc3xkw6ljw6hzfGRldmlzfGRpc2NvdXJzfGRvc3xlbWJhcnJhc3xlbmdyYWlzfGVudHJlbGFjc3xleGPDqHN8Zmlsc3xmb2lzfGfDomNoaXN8Z2Fyc3xnbGFzfGjDqXJvc3xpbnRydXN8amFyc3xqdXN8a2VybcOoc3xsYWNpc3xsZWdzfGxpbGFzfG1hcmFpc3xtYXJzfG1hdGVsYXN8bcOpcHJpc3xtZXRzfG1vaXN8bW9yc3xvYnVzfG9zfHBhbGFpc3xwYXJhZGlzfHBhcmNvdXJzfHBhcmRlc3N1c3xwYXlzfHBsdXNpZXVyc3xwb2lkc3xwb2lzfHBvdWxzfHByaW50ZW1wc3xwcm9jZXNzdXN8cHJvZ3LDqHN8cHVpdHN8cHVzfHJhYmFpc3xyYWRpc3xyZWNvcnN8cmVjb3Vyc3xyZWZ1c3xyZWxhaXN8cmVtb3Jkc3xyZW1vdXN8cmljdHVzfHJoaW5vY8Opcm9zfHJlcGFzfHJ1YmlzfHNhbnN8c2FzfHNlY291cnN8c2Vuc3xzb3VyaXN8c3VjY8Ooc3x0YWx1c3x0YXBpc3x0YXN8dGF1ZGlzfHRlbXBzfHRpZXJzfHVuaXZlcnN8dmVsb3Vyc3x2ZXJnbGFzfHZlcm5pc3x2aXJ1cykkL2knIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAHBhcnRzIjthOjA6e319czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZmluYWwiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABtZXRhZGF0YSI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6Mzp7czo2NjoiXFN5bWZvbnlcQ29tcG9uZW50XFN0cmluZ1xJbmZsZWN0b3JcRnJlbmNoSW5mbGVjdG9yOjpzaW5ndWxhcml6ZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo2OiJwbHVyYWwiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo0OTc3O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo1Mzk0O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjY6IlxTeW1mb255XENvbXBvbmVudFxTdHJpbmdcSW5mbGVjdG9yXEZyZW5jaEluZmxlY3Rvcjo6c2luZ3VsYXJpemUoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJzaW5ndWxhcml6ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjY0OiJcU3ltZm9ueVxDb21wb25lbnRcU3RyaW5nXEluZmxlY3RvclxGcmVuY2hJbmZsZWN0b3I6OnBsdXJhbGl6ZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJzaW5ndWxhciI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTMwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjU0MDE7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTQ1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjU4MzA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2NDoiXFN5bWZvbnlcQ29tcG9uZW50XFN0cmluZ1xJbmZsZWN0b3JcRnJlbmNoSW5mbGVjdG9yOjpwbHVyYWxpemUoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6InBsdXJhbGl6ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjcwOiJcU3ltZm9ueVxDb21wb25lbnRcU3RyaW5nXEluZmxlY3RvclxGcmVuY2hJbmZsZWN0b3I6OmlzSW5mbGVjdGVkV29yZCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJ3b3JkIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNDc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6NTgzNzt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNTA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6NTk1OTt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzA6IlxTeW1mb255XENvbXBvbmVudFxTdHJpbmdcSW5mbGVjdG9yXEZyZW5jaEluZmxlY3Rvcjo6aXNJbmZsZWN0ZWRXb3JkKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiaXNJbmZsZWN0ZWRXb3JkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTE6IlxTeW1mb255XENvbXBvbmVudFxTdHJpbmdcSW5mbGVjdG9yXEZyZW5jaEluZmxlY3RvciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJGcmVuY2hJbmZsZWN0b3IiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjE3OiJGcmVuY2ggaW5mbGVjdG9yLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo5MDoiVGhpcyBjbGFzcyBkb2VzIG9ubHkgaW5mbGVjdCBub3Vuczsgbm90IGFkamVjdGl2ZXMgbm9yIGNvbXBvc2VkIHdvcmRzIGxpa2UgInNvaXhhbnRlLWRpeCIuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo0MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHJlYWRPbmx5IjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjdkNzIwNmY1OGNjNzlmZTZkMDE0YjQyZTk0ODc4NjRlIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NTE6InZlbmRvci9zeW1mb255L3N0cmluZy9JbmZsZWN0b3IvRnJlbmNoSW5mbGVjdG9yLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6NTk2MzoiPD9waHAKCi8qCiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBTeW1mb255IHBhY2thZ2UuCiAqCiAqIChjKSBGYWJpZW4gUG90ZW5jaWVyIDxmYWJpZW5Ac3ltZm9ueS5jb20+CiAqCiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFCiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLgogKi8KCm5hbWVzcGFjZSBTeW1mb255XENvbXBvbmVudFxTdHJpbmdcSW5mbGVjdG9yOwoKLyoqCiAqIEZyZW5jaCBpbmZsZWN0b3IuCiAqCiAqIFRoaXMgY2xhc3MgZG9lcyBvbmx5IGluZmxlY3Qgbm91bnM7IG5vdCBhZGplY3RpdmVzIG5vciBjb21wb3NlZCB3b3JkcyBsaWtlICJzb2l4YW50ZS1kaXgiLgogKi8KZmluYWwgY2xhc3MgRnJlbmNoSW5mbGVjdG9yIGltcGxlbWVudHMgSW5mbGVjdG9ySW50ZXJmYWNlCnsKICAgIC8qKgogICAgICogQSBsaXN0IG9mIGFsbCBydWxlcyBmb3IgcGx1cmFsaXNlLgogICAgICoKICAgICAqIEBzZWUgaHR0cHM6Ly9sYS1jb25qdWdhaXNvbi5ub3V2ZWxvYnMuY29tL3JlZ2xlcy9ncmFtbWFpcmUvbGUtcGx1cmllbC1kZXMtbm9tcy0xMjEucGhwCiAgICAgKi8KICAgIHByaXZhdGUgY29uc3QgUExVUkFMSVpFX1JFR0VYUCA9IFsKICAgICAgICAvLyBGaXJzdCBlbnRyeTogcmVnZXhwCiAgICAgICAgLy8gU2Vjb25kIGVudHJ5OiByZXBsYWNlbWVudAoKICAgICAgICAvLyBXb3JkcyBmaW5pc2hpbmcgd2l0aCAicyIsICJ4IiBvciAieiIgYXJlIGludmFyaWFibGVzCiAgICAgICAgLy8gTGVzIG1vdHMgZmluaXNzYW50IHBhciAicyIsICJ4IiBvdSAieiIgc29udCBpbnZhcmlhYmxlcwogICAgICAgIFsnLyhzfHh8eikkL2knLCAnXDEnXSwKCiAgICAgICAgLy8gV29yZHMgZmluaXNoaW5nIHdpdGggImVhdSIgYXJlIHBsdXJhbGl6ZWQgd2l0aCBhICJ4IgogICAgICAgIC8vIExlcyBtb3RzIGZpbmlzc2FudCBwYXIgImVhdSIgcHJlbm5lbnQgdG91cyB1biAieCIgYXUgcGx1cmllbAogICAgICAgIFsnLyhlYXUpJC9pJywgJ1wxeCddLAoKICAgICAgICAvLyBXb3JkcyBmaW5pc2hpbmcgd2l0aCAiYXUiIGFyZSBwbHVyYWxpemVkIHdpdGggYSAieCIgZXhjZXB0ZWQgImxhbmRhdSIKICAgICAgICAvLyBMZXMgbW90cyBmaW5pc3NhbnQgcGFyICJhdSIgcHJlbm5lbnQgdW4gIngiIGF1IHBsdXJpZWwgc2F1ZiAibGFuZGF1IgogICAgICAgIFsnL14obGFuZGF1KSQvaScsICdcMXMnXSwKICAgICAgICBbJy8oYXUpJC9pJywgJ1wxeCddLAoKICAgICAgICAvLyBXb3JkcyBmaW5pc2hpbmcgd2l0aCAiZXUiIGFyZSBwbHVyYWxpemVkIHdpdGggYSAieCIgZXhjZXB0ZWQgInBuZXUiLCAiYmxldSIsICLDqW1ldSIKICAgICAgICAvLyBMZXMgbW90cyBmaW5pc3NhbnQgZW4gImV1IiBwcmVubmVudCB1biAieCIgYXUgcGx1cmllbCBzYXVmICJwbmV1IiwgImJsZXUiLCAiw6ltZXUiCiAgICAgICAgWycvXihwbmV1fGJsZXV8w6ltZXUpJC9pJywgJ1wxcyddLAogICAgICAgIFsnLyhldSkkL2knLCAnXDF4J10sCgogICAgICAgIC8vIFdvcmRzIGZpbmlzaGluZyB3aXRoICJhbCIgYXJlIHBsdXJhbGl6ZWQgd2l0aCBhICJhdXgiIGV4Y2VwdGVkCiAgICAgICAgLy8gTGVzIG1vdHMgZmluaXNzYW50IGVuICJhbCIgc2UgdGVybWluZW50IGVuICJhdXgiIHNhdWYKICAgICAgICBbJy9eKGJhbHxjYXJuYXZhbHxjYXJhY2FsfGNoYWNhbHxjaG9yYWx8Y29ycmFsfMOpdGFsfGZlc3RpdmFsfHLDqWNpdGFsfHZhbCkkL2knLCAnXDFzJ10sCiAgICAgICAgWycvYWwkL2knLCAnXDFhdXgnXSwKCiAgICAgICAgLy8gQXNwaXJhaWwsIGJhaWwsIGNvcmFpbCwgw6ltYWlsLCBmZXJtYWlsLCBzb3VwaXJhaWwsIHRyYXZhaWwsIHZhbnRhaWwgZXQgdml0cmFpbCBmb250IGxldXIgcGx1cmllbCBlbiAtYXV4CiAgICAgICAgWycvXihhc3BpcnxifGNvcnzDqW18ZmVybXxzb3VwaXJ8dHJhdnx2YW50fHZpdHIpYWlsJC9pJywgJ1wxYXV4J10sCgogICAgICAgIC8vIEJpam91LCBjYWlsbG91LCBjaG91LCBnZW5vdSwgaGlib3UsIGpvdWpvdSBldCBwb3UgcXVpIHByZW5uZW50IHVuIHggYXUgcGx1cmllbAogICAgICAgIFsnL14oYmlqfGNhaWxsfGNofGdlbnxoaWJ8am91anxwKW91JC9pJywgJ1wxb3V4J10sCgogICAgICAgIC8vIEludmFyaWFibGUgd29yZHMKICAgICAgICBbJy9eKGNpbnF1YW50ZXxzb2l4YW50ZXxtaWxsZSkkL2knLCAnXDEnXSwKCiAgICAgICAgLy8gRnJlbmNoIHRpdGxlcwogICAgICAgIFsnL14obW9ufG1hKShzaWV1cnxkYW1lfGRlbW9pc2VsbGV8c2VpZ25ldXIpJC8nLCAnbWVzXDJzJ10sCiAgICAgICAgWycvXihNb258TWEpKHNpZXVyfGRhbWV8ZGVtb2lzZWxsZXxzZWlnbmV1cikkLycsICdNZXNcMnMnXSwKICAgIF07CgogICAgLyoqCiAgICAgKiBBIGxpc3Qgb2YgYWxsIHJ1bGVzIGZvciBzaW5ndWxhcml6ZS4KICAgICAqLwogICAgcHJpdmF0ZSBjb25zdCBTSU5HVUxBUklaRV9SRUdFWFAgPSBbCiAgICAgICAgLy8gRmlyc3QgZW50cnk6IHJlZ2V4cAogICAgICAgIC8vIFNlY29uZCBlbnRyeTogcmVwbGFjZW1lbnQKCiAgICAgICAgLy8gQXNwaXJhaWwsIGJhaWwsIGNvcmFpbCwgw6ltYWlsLCBmZXJtYWlsLCBzb3VwaXJhaWwsIHRyYXZhaWwsIHZhbnRhaWwgZXQgdml0cmFpbCBmb250IGxldXIgcGx1cmllbCBlbiAtYXV4CiAgICAgICAgWycvKChhc3BpcnxifGNvcnzDqW18ZmVybXxzb3VwaXJ8dHJhdnx2YW50fHZpdHIpKWF1eCQvaScsICdcMWFpbCddLAoKICAgICAgICAvLyBXb3JkcyBmaW5pc2hpbmcgd2l0aCAiZWF1IiBhcmUgcGx1cmFsaXplZCB3aXRoIGEgIngiCiAgICAgICAgLy8gTGVzIG1vdHMgZmluaXNzYW50IHBhciAiZWF1IiBwcmVubmVudCB0b3VzIHVuICJ4IiBhdSBwbHVyaWVsCiAgICAgICAgWycvKGVhdSl4JC9pJywgJ1wxJ10sCgogICAgICAgIC8vIFdvcmRzIGZpbmlzaGluZyB3aXRoICJhbCIgYXJlIHBsdXJhbGl6ZWQgd2l0aCBhICJhdXgiIGV4cGVjdGVkCiAgICAgICAgLy8gTGVzIG1vdHMgZmluaXNzYW50IGVuICJhbCIgc2UgdGVybWluZW50IGVuICJhdXgiIHNhdWYKICAgICAgICBbJy8oYW1pcnxhbmltfGFyc2VufGJvY3xjYW58Y2FwaXR8Y2Fwb3J8Y2hldnxjcmlzdHxnw6luw6lyfGhvcGl0fGjDtHBpdHxpZMOpfGpvdXJufGxpdHRvcnxsb2N8bXxtw6l0fG1pbsOpcnxwcmluY2lwfHJhZGljfHRlcm1pbilhdXgkL2knLCAnXDFhbCddLAoKICAgICAgICAvLyBXb3JkcyBmaW5pc2hpbmcgd2l0aCAiYXUiIGFyZSBwbHVyYWxpemVkIHdpdGggYSAieCIgZXhjZXB0ZWQgImxhbmRhdSIKICAgICAgICAvLyBMZXMgbW90cyBmaW5pc3NhbnQgcGFyICJhdSIgcHJlbm5lbnQgdW4gIngiIGF1IHBsdXJpZWwgc2F1ZiAibGFuZGF1IgogICAgICAgIFsnLyhhdSl4JC9pJywgJ1wxJ10sCgogICAgICAgIC8vIFdvcmRzIGZpbmlzaGluZyB3aXRoICJldSIgYXJlIHBsdXJhbGl6ZWQgd2l0aCBhICJ4IiBleGNlcHRlZCAicG5ldSIsICJibGV1IiwgIsOpbWV1IgogICAgICAgIC8vIExlcyBtb3RzIGZpbmlzc2FudCBlbiAiZXUiIHByZW5uZW50IHVuICJ4IiBhdSBwbHVyaWVsIHNhdWYgInBuZXUiLCAiYmxldSIsICLDqW1ldSIKICAgICAgICBbJy8oZXUpeCQvaScsICdcMSddLAoKICAgICAgICAvLyAgV29yZHMgZmluaXNoaW5nIHdpdGggIm91IiBhcmUgcGx1cmFsaXplZCB3aXRoIGEgInMiIGV4Y2VwdGVkIGJpam91LCBjYWlsbG91LCBjaG91LCBnZW5vdSwgaGlib3UsIGpvdWpvdSwgcG91CiAgICAgICAgLy8gTGVzIG1vdHMgZmluaXNzYW50IHBhciAib3UiIHByZW5uZW50IHVuICJzIiBzYXVmIGJpam91LCBjYWlsbG91LCBjaG91LCBnZW5vdSwgaGlib3UsIGpvdWpvdSwgcG91CiAgICAgICAgWycvKGJpanxjYWlsbHxjaHxnZW58aGlifGpvdWp8cClvdXgkL2knLCAnXDFvdSddLAoKICAgICAgICAvLyBGcmVuY2ggdGl0bGVzCiAgICAgICAgWycvXm1lcyhkYW1lfGRlbW9pc2VsbGUpcyQvJywgJ21hXDEnXSwKICAgICAgICBbJy9eTWVzKGRhbWV8ZGVtb2lzZWxsZSlzJC8nLCAnTWFcMSddLAogICAgICAgIFsnL15tZXMoc2lldXJ8c2VpZ25ldXIpcyQvJywgJ21vblwxJ10sCiAgICAgICAgWycvXk1lcyhzaWV1cnxzZWlnbmV1cilzJC8nLCAnTW9uXDEnXSwKCiAgICAgICAgLy8gRGVmYXVsdCBydWxlCiAgICAgICAgWycvcyQvaScsICcnXSwKICAgIF07CgogICAgLyoqCiAgICAgKiBBIGxpc3Qgb2Ygd29yZHMgd2hpY2ggc2hvdWxkIG5vdCBiZSBpbmZsZWN0ZWQuCiAgICAgKiBUaGlzIGxpc3QgaXMgb25seSB1c2VkIGJ5IHNpbmd1bGFyaXplLgogICAgICovCiAgICBwcml2YXRlIGNvbnN0IFVOSU5GTEVDVEVEID0gJy9eKGFiY8Ooc3xhY2PDqHN8YWJ1c3xhbGJhdHJvc3xhbmNob2lzfGFuZ2xhaXN8YXV0b2J1c3xib2lzfGJyZWJpc3xjYXJxdW9pc3xjYXN8Y2hhc3xjb2xpc3xjb25jb3Vyc3xjb3Jwc3xjb3Vyc3xjeXByw6hzfGTDqWPDqHN8ZGV2aXN8ZGlzY291cnN8ZG9zfGVtYmFycmFzfGVuZ3JhaXN8ZW50cmVsYWNzfGV4Y8Ooc3xmaWxzfGZvaXN8Z8OiY2hpc3xnYXJzfGdsYXN8aMOpcm9zfGludHJ1c3xqYXJzfGp1c3xrZXJtw6hzfGxhY2lzfGxlZ3N8bGlsYXN8bWFyYWlzfG1hcnN8bWF0ZWxhc3xtw6lwcmlzfG1ldHN8bW9pc3xtb3JzfG9idXN8b3N8cGFsYWlzfHBhcmFkaXN8cGFyY291cnN8cGFyZGVzc3VzfHBheXN8cGx1c2lldXJzfHBvaWRzfHBvaXN8cG91bHN8cHJpbnRlbXBzfHByb2Nlc3N1c3xwcm9ncsOoc3xwdWl0c3xwdXN8cmFiYWlzfHJhZGlzfHJlY29yc3xyZWNvdXJzfHJlZnVzfHJlbGFpc3xyZW1vcmRzfHJlbW91c3xyaWN0dXN8cmhpbm9jw6lyb3N8cmVwYXN8cnViaXN8c2Fuc3xzYXN8c2Vjb3Vyc3xzZW5zfHNvdXJpc3xzdWNjw6hzfHRhbHVzfHRhcGlzfHRhc3x0YXVkaXN8dGVtcHN8dGllcnN8dW5pdmVyc3x2ZWxvdXJzfHZlcmdsYXN8dmVybmlzfHZpcnVzKSQvaSc7CgogICAgcHVibGljIGZ1bmN0aW9uIHNpbmd1bGFyaXplKHN0cmluZyAkcGx1cmFsKTogYXJyYXkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPmlzSW5mbGVjdGVkV29yZCgkcGx1cmFsKSkgewogICAgICAgICAgICByZXR1cm4gWyRwbHVyYWxdOwogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCAoc2VsZjo6U0lOR1VMQVJJWkVfUkVHRVhQIGFzICRydWxlKSB7CiAgICAgICAgICAgIFskcmVnZXhwLCAkcmVwbGFjZV0gPSAkcnVsZTsKCiAgICAgICAgICAgIGlmICgxID09PSBwcmVnX21hdGNoKCRyZWdleHAsICRwbHVyYWwpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gW3ByZWdfcmVwbGFjZSgkcmVnZXhwLCAkcmVwbGFjZSwgJHBsdXJhbCldOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gWyRwbHVyYWxdOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBwbHVyYWxpemUoc3RyaW5nICRzaW5ndWxhcik6IGFycmF5CiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT5pc0luZmxlY3RlZFdvcmQoJHNpbmd1bGFyKSkgewogICAgICAgICAgICByZXR1cm4gWyRzaW5ndWxhcl07CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoIChzZWxmOjpQTFVSQUxJWkVfUkVHRVhQIGFzICRydWxlKSB7CiAgICAgICAgICAgIFskcmVnZXhwLCAkcmVwbGFjZV0gPSAkcnVsZTsKCiAgICAgICAgICAgIGlmICgxID09PSBwcmVnX21hdGNoKCRyZWdleHAsICRzaW5ndWxhcikpIHsKICAgICAgICAgICAgICAgIHJldHVybiBbcHJlZ19yZXBsYWNlKCRyZWdleHAsICRyZXBsYWNlLCAkc2luZ3VsYXIpXTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIFskc2luZ3VsYXIuJ3MnXTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIGlzSW5mbGVjdGVkV29yZChzdHJpbmcgJHdvcmQpOiBib29sCiAgICB7CiAgICAgICAgcmV0dXJuIDEgPT09IHByZWdfbWF0Y2goc2VsZjo6VU5JTkZMRUNURUQsICR3b3JkKTsKICAgIH0KfQoiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZG9jQmxvY2siO047czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";