<?xml version="1.0" encoding="utf-8" ?>
<otrs_package version="1.1">
    <Name>Dashboard-MyTicketSearchProfile</Name>
    <Version>11.0.2</Version>
    <Vendor>Rother OSS GmbH</Vendor>
    <URL>https://otobo.io/</URL>
    <License>GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007</License>
    <ChangeLog Date="2026-07-10 09:40:18" Version="11.0.2">Do not log errors when nothing is selected (#1).</ChangeLog>
    <ChangeLog Date="2025-09-18 15:03:51" Version="11.0.1">Initial Release.</ChangeLog>
    <Description Lang="en">Provides a widget in the Dashboard with the tickets returned by one of the user ticket search templates.</Description>
    <Framework>11.0.x</Framework>
    <BuildCommitID>304fd8b30f89e2462a57bff3cf7e496d60c46cc9</BuildCommitID>
    <BuildDate>2026-07-10 09:40:22</BuildDate>
    <BuildHost>opms.rother-oss.com</BuildHost>
    <Filelist>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentDashboardTicketProfileSearch.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRmlsdGVyIikgJV0KPGRpdiBjbGFzcz0iRGFzaGJvYXJkQWN0aW9ucyI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlNlbGVjdGVkVGVtcGxhdGVBbmRUaWNrZXRzQ291bnQiKSAlXQogICAgPHVsIGNsYXNzPSJUYWIgQWN0aW9ucyI+CiAgICAgICAgPGxpIGNsYXNzPSJMYXN0Ij48YSBocmVmPSIjIiBpZD0iRGFzaGJvYXJkWyUgRGF0YS5OYW1lIHwgaHRtbCAlXUFsbCIgZGF0YS1maWx0ZXI9IkFsbCI+WyUgVHJhbnNsYXRlKERhdGEuUHJvZmlsZVRlbXBsYXRlTmFtZSkgfCBodG1sICVdIChbJSBEYXRhLkNvdW50IHwgaHRtbCAlXSk8L2E+PC9saT4KICAgIDwvdWw+ClslIFJlbmRlckJsb2NrRW5kKCJTZWxlY3RlZFRlbXBsYXRlQW5kVGlja2V0c0NvdW50IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9UZW1wbGF0ZVNlbGVjdGVkIikgJV0KICAgIDx1bCBjbGFzcz0iVGFiIEFjdGlvbnMiPgogICAgICAgIDxsaSBjbGFzcz0iTGFzdCI+WyUgVHJhbnNsYXRlKCJObyBzZWFyY2ggdGVtcGxhdGUgc2VsZWN0ZWQiKSB8IGh0bWwgJV08L2xpPgogICAgPC91bD4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vVGVtcGxhdGVTZWxlY3RlZCIpICVdCjwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0ZpbHRlck5hdkJhciIpICVdCjxzcGFuIGNsYXNzPSJQYWdpbmF0aW9uIj4KICAgIFslIERhdGEuU2l0ZU5hdkJhciAlXQo8L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRmlsdGVyTmF2QmFyIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNGaWx0ZXIiKSAlXQoKIzwhLS0gVGhpcyBmb3JtIHdpbGwgbm90IGJlIHN1Ym1pdHRlZCwgd2UgbmVlZCBpdCBmb3IgdGhlIEFKQVggY2FsbHMuIC0tPgo8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDdXN0b21lcklEIiB2YWx1ZT0iWyUgRGF0YS5DdXN0b21lcklEIHwgaHRtbCAlXSIvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ3VzdG9tZXJVc2VySUQiIHZhbHVlPSJbJSBEYXRhLkN1c3RvbWVyVXNlcklEIHwgaHRtbCAlXSIvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRmlsdGVyWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgaWQ9IkZpbHRlclslIERhdGEuTmFtZSB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLkZpbHRlclZhbHVlIHwgaHRtbCAlXSIgLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFkZGl0aW9uYWxGaWx0ZXJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBpZD0iQWRkaXRpb25hbEZpbHRlclslIERhdGEuTmFtZSB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLkFkZGl0aW9uYWxGaWx0ZXJWYWx1ZSB8IGh0bWwgJV0iIC8+CiAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSI+CiAgICAgICAgPHRoZWFkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyIikgJV0KICAgICAgICAgICAgPHRyPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiR2VuZXJhbE92ZXJ2aWV3SGVhZGVyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJNZXRhIikgJV0KICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iRGFzaGJvYXJkSGVhZGVyIFslIERhdGEuQ1NTIHwgaHRtbCAlXSIgZGF0YS1jb2x1bW49IlslIERhdGEuSGVhZGVyQ29sdW1uTmFtZSB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5UaXRsZSkgfCBodG1sICVdIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlck1ldGFMaW5rIikgJV0KICAgICAgICAgICAgICAgICAgICA8YSBpZD0iWyUgRGF0YS5IZWFkZXJDb2x1bW5OYW1lIHwgaHRtbCAlXUZsYWdPdmVydmlld0NvbnRyb2xbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBuYW1lPSJbJSBEYXRhLkhlYWRlckNvbHVtbk5hbWUgfCBodG1sICVdT3ZlcnZpZXdDb250cm9sWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLlRpdGxlKSB8IGh0bWwgJV0iPjwvYT4KClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YUxpbmsiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YUVtcHR5IikgJV0KICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT0iWyUgVHJhbnNsYXRlKERhdGEuSGVhZGVyQ29sdW1uTmFtZSkgfCBodG1sICVdIj48L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YUVtcHR5IikgJV0KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyVGlja2V0SGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlclRpY2tldE51bWJlckNvbHVtbiIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkRhc2hib2FyZEhlYWRlciBUaWNrZXROdW1iZXIgWyUgRGF0YS5DU1MgfCBodG1sICVdIiBkYXRhLWNvbHVtbj0iVGlja2V0TnVtYmVyIj4KICAgICAgICAgICAgICAgICAgICA8YSBpZD0iVGlja2V0TnVtYmVyT3ZlcnZpZXdDb250cm9sWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgbmFtZT0iVGlja2V0TnVtYmVyT3ZlcnZpZXdDb250cm9sWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgaHJlZj0iIyIgdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIiA+WyUgQ29uZmlnKCJUaWNrZXQ6Okhvb2siKSAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyVGlja2V0TnVtYmVyQ29sdW1uIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW4iKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJEYXNoYm9hcmRIZWFkZXIgWyUgRGF0YS5IZWFkZXJDb2x1bW5OYW1lIHwgaHRtbCAlXSBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iIGRhdGEtY29sdW1uPSJbJSBEYXRhLkhlYWRlckNvbHVtbk5hbWUgfCBodG1sICVdIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXJMaW5rIikgJV0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iQ29sdW1uU2V0dGluZ3NUcmlnZ2VyIiB0aXRsZT0iWyUgRGF0YS5GaWx0ZXJUaXRsZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtZmlsdGVyIj48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbHVtblNldHRpbmdzQ29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29sdW1uU2V0dGluZ3NCb3giPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Db2x1bW5GaWx0ZXJTdHJnICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXJMaW5rQ3VzdG9tZXJJRFNlYXJjaCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9IkN1c3RvbWVySURBdXRvQ29tcGxldGUiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtDdXN0b21lcklEU2VhcmNoIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXJMaW5rVXNlclNlYXJjaCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9IlVzZXJBdXRvQ29tcGxldGUiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtVc2VyU2VhcmNoIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJEZWxldGVGaWx0ZXIgSGlkZGVuIj48aSBjbGFzcz0iZmEgZmEtdHJhc2gtbyI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxhIGlkPSJbJSBEYXRhLkhlYWRlckNvbHVtbk5hbWUgfCBodG1sICVdT3ZlcnZpZXdDb250cm9sWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgbmFtZT0iWyUgRGF0YS5IZWFkZXJDb2x1bW5OYW1lIHwgaHRtbCAlXU92ZXJ2aWV3Q29udHJvbFslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGhyZWY9IiMiIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSIgPlslIERhdGEuSGVhZGVyTmFtZVRyYW5zbGF0ZWQgfCBodG1sICVdPC9hPgoKWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXJMaW5rIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5MaW5rIikgJV0KICAgICAgICAgICAgICAgICAgICA8YSBpZD0iWyUgRGF0YS5IZWFkZXJDb2x1bW5OYW1lIHwgaHRtbCAlXU92ZXJ2aWV3Q29udHJvbFslIERhdGEuTmFtZSB8IGh0bWwgJV0iIG5hbWU9IlslIERhdGEuSGVhZGVyQ29sdW1uTmFtZSB8IGh0bWwgJV1PdmVydmlld0NvbnRyb2xbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBocmVmPSIjIiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iID5bJSBEYXRhLkhlYWRlck5hbWVUcmFuc2xhdGVkIHwgaHRtbCAlXTwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5MaW5rIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJDb2x1bW5TZXR0aW5nc1RyaWdnZXIiIHRpdGxlPSJbJSBEYXRhLkZpbHRlclRpdGxlIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1maWx0ZXIiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29sdW1uU2V0dGluZ3NDb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb2x1bW5TZXR0aW5nc0JveCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNvbHVtbkZpbHRlclN0cmcgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtDdXN0b21lclVzZXJTZWFyY2giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJDdXN0b21lclVzZXJBdXRvQ29tcGxldGUiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtDdXN0b21lclVzZXJTZWFyY2giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9IkRlbGV0ZUZpbHRlciBIaWRkZW4iPjxpIGNsYXNzPSJmYSBmYS10cmFzaC1vIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iR3JheSIgdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIiA+WyUgRGF0YS5IZWFkZXJOYW1lVHJhbnNsYXRlZCB8IGh0bWwgJV08L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRmlsdGVyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5FbXB0eSIpICVdCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IkdyYXkiIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSIgPlslIERhdGEuSGVhZGVyTmFtZVRyYW5zbGF0ZWQgJV08L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRW1wdHkiKSAlXQogICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW4iKSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlclRpY2tldEhlYWRlciIpICVdCgpbJSBSZW5kZXJCbG9ja0VuZCgiR2VuZXJhbE92ZXJ2aWV3SGVhZGVyIikgJV0KCiAgICAgICAgICAgIDwvdHI+CgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlciIpICVdCiAgICAgICAgPC90aGVhZD4KCiAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljUm93IikgJV0KICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiR2VuZXJhbE92ZXJ2aWV3Um93IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNSb3dNZXRhIikgJV0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iWyUgRGF0YS5DbGFzc1RhYmxlIHwgaHRtbCAlXSBGbGFncyIgdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLlRpdGxlKSB8IGh0bWwgJV0iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljUm93TWV0YUltYWdlIikgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJbJSBEYXRhLkNsYXNzIHwgaHRtbCAlXSBTbWFsbCIgdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLlRpdGxlKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iWyUgRGF0YS5DbGFzc1NwYW4gfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1zdGFyIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtc3RhciI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVtPlslIFRyYW5zbGF0ZShEYXRhLlRpdGxlKSB8IGh0bWwgJV08L2VtPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljUm93TWV0YUltYWdlIikgJV0KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljUm93TWV0YSIpICVdCgojICAgICAgICAgICAgPHRkIGNsYXNzPSJXMTBwYyI+CiMgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGlja2V0Wm9vbTtUaWNrZXRJRD1bJSBEYXRhLlRpY2tldElEICVdIiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iIGNsYXNzPSJBc0Jsb2NrIE1hc3RlckFjdGlvbkxpbmsiPlslIERhdGEuVGlja2V0TnVtYmVyIHwgaHRtbCAlXTwvYT4KIyAgICAgICAgICAgIDwvdGQ+CiMgICAgICAgICAgICA8dGQgY2xhc3M9Ilc1MHBjIj4KIyAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSI+WyUgRGF0YS5UaXRsZSB8IHRydW5jYXRlKDcwKSB8IGh0bWwgJV08L2Rpdj4KIyAgICAgICAgICAgIDwvdGQ+CiMgICAgICAgICAgICA8dGQ+WyUgRGF0YS5UaW1lIHwgaHRtbCAlXTwvdGQ+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljVGlja2V0Q29sdW1uIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY1RpY2tldE51bWJlciIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGlja2V0Wm9vbTtUaWNrZXRJRD1bJSBEYXRhLlRpY2tldElEICVdIiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iIGNsYXNzPSJBc0Jsb2NrIE1hc3RlckFjdGlvbkxpbmsiPlslIERhdGEuVGlja2V0TnVtYmVyIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljVGlja2V0TnVtYmVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0VzY2FsYXRpb25UaW1lIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNlcnZpY2UgVGltZSIpIHwgaHRtbCAlXTogWyUgRGF0YS5Fc2NhbGF0aW9uVGltZVdvcmtpbmdUaW1lIHwgaHRtbCAlXSAtIFslIERhdGEuRXNjYWxhdGlvbkRlc3RpbmF0aW9uRGF0ZSB8IExvY2FsaXplKCJUaW1lU2hvcnQiKSAlXSIgY2xhc3M9IlslIERhdGEuRXNjYWxhdGlvbkNsYXNzIHwgaHRtbCAlXSI+WyUgRGF0YS5Fc2NhbGF0aW9uVGltZUh1bWFuIHwgaHRtbCAlXTxici8+WyUgRGF0YS5VcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlIHwgTG9jYWxpemUoIlRpbWVTaG9ydCIpICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0VzY2FsYXRpb25UaW1lIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0NvbHVtbiIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgRGF0YS5HZW5lcmljVmFsdWUgfCBodG1sICVdIj5bJSBEYXRhLkdlbmVyaWNWYWx1ZSB8IHRydW5jYXRlKDQwKSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljQ29sdW1uIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0VGl0bGUiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IlslIERhdGEuV2hvbGVUaXRsZSB8IGh0bWwgJV0iPlslIERhdGEuVGl0bGUgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0VGl0bGUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljQ29sdW1uVHJhbnNsYXRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5HZW5lcmljVmFsdWUpIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuR2VuZXJpY1ZhbHVlKSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljQ29sdW1uVHJhbnNsYXRhYmxlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0NvbHVtblRpbWUiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IlslIERhdGEuR2VuZXJpY1ZhbHVlIHwgTG9jYWxpemUoIlRpbWVTaG9ydCIpIHwgaHRtbCAlXSI+WyUgRGF0YS5HZW5lcmljVmFsdWUgfCBMb2NhbGl6ZSgiVGltZVNob3J0IikgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0NvbHVtblRpbWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljQ29sdW1uRXNjYWxhdGlvbiIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgRGF0YS5HZW5lcmljVmFsdWUgfCBodG1sICVdIiBjbGFzcz0iWyUgRGF0YS5DbGFzcyB8IGh0bWwgJV0iPlslIERhdGEuR2VuZXJpY1ZhbHVlIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNDb2x1bW5Fc2NhbGF0aW9uIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNUaWNrZXRDb2x1bW4iKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0R5bmFtaWNGaWVsZCIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0ZpZWxkTGluayIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIERhdGEuTGluayB8IEludGVycG9sYXRlICVdIiAgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJEeW5hbWljRmllbGRMaW5rIj5bJSBEYXRhLlZhbHVlICVdPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0R5bmFtaWNGaWVsZExpbmsiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0ZpZWxkUGxhaW4iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlZhbHVlICVdClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0ZpZWxkUGxhaW4iKSAlXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNEeW5hbWljRmllbGQiKSAlXQoKWyUgUmVuZGVyQmxvY2tFbmQoIkdlbmVyYWxPdmVydmlld1JvdyIpICVdCiAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljUm93IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY05vbmUiKSAlXQogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkF1dG9Db2xzcGFuIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm5vbmUiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljTm9uZSIpICVdCiAgICAgICAgPC90Ym9keT4KICAgIDwvdGFibGU+CjwvZm9ybT4K</File>
        <File Location="Kernel/Output/HTML/Dashboard/TicketProfileSearch.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpEYXNoYm9hcmQ6OlRpY2tldFByb2ZpbGVTZWFyY2g7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgcGFyYW1ldGVycwogICAgZm9yIG15ICROZWVkZWQgKHF3KENvbmZpZyBOYW1lIFVzZXJJRCkpIHsKICAgICAgICBkaWUgIkdvdCBubyAkTmVlZGVkISIgaWYgKCAhJFNlbGYtPnskTmVlZGVkfSApOwogICAgfQoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgIG15ICRSZW1vdmVGaWx0ZXJzID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1JlbW92ZUZpbHRlcnMnICkgfHwgJFBhcmFte1JlbW92ZUZpbHRlcnN9IHx8IDA7CgogICAgIyBnZXQgc29ydGluZyBwYXJhbXMKICAgIGZvciBteSAkSXRlbSAocXcoU29ydEJ5IE9yZGVyQnkpKSB7CiAgICAgICAgJFNlbGYtPnskSXRlbX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkSXRlbSApIHx8ICRQYXJhbXskSXRlbX07CiAgICB9CgogICAgIyBHZXQgYWRkIGZpbHRlcnMgcGFyYW0uCiAgICAkU2VsZi0+e0FkZEZpbHRlcnN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FkZEZpbHRlcnMnICkgfHwgJFBhcmFte0FkZEZpbHRlcnN9IHx8IDA7CiAgICAkU2VsZi0+e1RhYkFjdGlvbn0gID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1RhYkFjdGlvbicgKSAgfHwgJFBhcmFte1RhYkFjdGlvbn0gIHx8IDA7CgogICAgIyBHZXQgcHJldmlvdXMgc29ydGluZyBjb2x1bW4uCiAgICAkU2VsZi0+e1NvcnRpbmdDb2x1bW59ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NvcnRpbmdDb2x1bW4nICkgfHwgJFBhcmFte1NvcnRpbmdDb2x1bW59OwoKICAgICMgc2V0IGZpbHRlciBzZXR0aW5ncwogICAgZm9yIG15ICRJdGVtIChxdyhDb2x1bW5GaWx0ZXIgR2V0Q29sdW1uRmlsdGVyIEdldENvbHVtbkZpbHRlclNlbGVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRJdGVtfSA9ICRQYXJhbXskSXRlbX07CiAgICB9CgogICAgIyBzYXZlIGNvbHVtbiBmaWx0ZXJzCiAgICAkU2VsZi0+e1ByZWZLZXlDb2x1bW5GaWx0ZXJzfSAgICAgICAgID0gJ1VzZXJEYXNoYm9hcmRUaWNrZXRHZW5lcmljQ29sdW1uRmlsdGVycycgLiAkU2VsZi0+e05hbWV9OwogICAgJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc1JlYWxLZXlzfSA9ICdVc2VyRGFzaGJvYXJkVGlja2V0R2VuZXJpY0NvbHVtbkZpbHRlcnNSZWFsS2V5cycgLiAkU2VsZi0+e05hbWV9OwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkSlNPTk9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkpTT04nKTsKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFVzZXJPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgaWYgKCRSZW1vdmVGaWx0ZXJzKSB7CiAgICAgICAgJFVzZXJPYmplY3QtPlNldFByZWZlcmVuY2VzKAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBLZXkgICAgPT4gJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc30sCiAgICAgICAgICAgIFZhbHVlICA9PiAnJywKICAgICAgICApOwogICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgS2V5ICAgID0+ICRTZWxmLT57UHJlZktleUNvbHVtbkZpbHRlcnNSZWFsS2V5c30sCiAgICAgICAgICAgIFZhbHVlICA9PiAnJywKICAgICAgICApOwogICAgfQoKICAgICMganVzdCBpbiBjYXNlIG5ldyBmaWx0ZXIgdmFsdWVzIGFycml2ZQogICAgZWxzaWYgKAogICAgICAgIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0dldENvbHVtbkZpbHRlcn0gKQogICAgICAgICYmIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0dldENvbHVtbkZpbHRlclNlbGVjdH0gKQogICAgICAgICYmIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0NvbHVtbkZpbHRlcn0gKQogICAgICAgICkKICAgIHsKCiAgICAgICAgaWYgKCAhJENvbmZpZ09iamVjdC0+R2V0KCdEZW1vU3lzdGVtJykgKSB7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHRoZSB1c2VyIGhhcyBmaWx0ZXIgcHJlZmVyZW5jZXMgZm9yIHRoaXMgd2lkZ2V0CiAgICAgICAgICAgIG15ICVQcmVmZXJlbmNlcyA9ICRVc2VyT2JqZWN0LT5HZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRDb2x1bW5QcmVmVmFsdWVzOwogICAgICAgICAgICBpZiAoICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc30gfSApIHsKICAgICAgICAgICAgICAgICRDb2x1bW5QcmVmVmFsdWVzID0gJEpTT05PYmplY3QtPkRlY29kZSgKICAgICAgICAgICAgICAgICAgICBEYXRhID0+ICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc30gfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFBSRUZWQUxVRVM6CiAgICAgICAgICAgIGZvciBteSAkQ29sdW1uICggc29ydCBrZXlzICV7ICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyU2VsZWN0fSB9ICkgewogICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0dldENvbHVtbkZpbHRlclNlbGVjdH0tPnskQ29sdW1ufSBlcSAnRGVsZXRlRmlsdGVyJyApIHsKICAgICAgICAgICAgICAgICAgICBkZWxldGUgJENvbHVtblByZWZWYWx1ZXMtPnskQ29sdW1ufTsKICAgICAgICAgICAgICAgICAgICBuZXh0IFBSRUZWQUxVRVM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkQ29sdW1uUHJlZlZhbHVlcy0+eyRDb2x1bW59ID0gJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9LT57JENvbHVtbn07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBLZXkgICAgPT4gJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc30sCiAgICAgICAgICAgICAgICBWYWx1ZSAgPT4gJEpTT05PYmplY3QtPkVuY29kZSggRGF0YSA9PiAkQ29sdW1uUHJlZlZhbHVlcyApLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzYXZlIHJlYWwga2V5J3MgbmFtZQogICAgICAgICAgICBteSAkQ29sdW1uUHJlZlJlYWxLZXlzVmFsdWVzOwogICAgICAgICAgICBpZiAoICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc1JlYWxLZXlzfSB9ICkgewogICAgICAgICAgICAgICAgJENvbHVtblByZWZSZWFsS2V5c1ZhbHVlcyA9ICRKU09OT2JqZWN0LT5EZWNvZGUoCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiAkUHJlZmVyZW5jZXN7ICRTZWxmLT57UHJlZktleUNvbHVtbkZpbHRlcnNSZWFsS2V5c30gfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgUkVBTEtFWVZBTFVFUzoKICAgICAgICAgICAgZm9yIG15ICRDb2x1bW4gKCBzb3J0IGtleXMgJXsgJFNlbGYtPntDb2x1bW5GaWx0ZXJ9IH0gKSB7CiAgICAgICAgICAgICAgICBuZXh0IFJFQUxLRVlWQUxVRVMgaWYgISRDb2x1bW47CgogICAgICAgICAgICAgICAgbXkgJERlbGV0ZUZpbHRlciA9IDA7CiAgICAgICAgICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJFNlbGYtPntDb2x1bW5GaWx0ZXJ9LT57JENvbHVtbn0gKSApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIGdyZXAgeyAkXyBlcSAnRGVsZXRlRmlsdGVyJyB9IEB7ICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICREZWxldGVGaWx0ZXIgPSAxOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59ICkgKSB7CgogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgZ3JlcCB7ICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59LT57JF99IGVxICdEZWxldGVGaWx0ZXInIH0KICAgICAgICAgICAgICAgICAgICAgICAga2V5cyAleyAkU2VsZi0+e0NvbHVtbkZpbHRlcn0tPnskQ29sdW1ufSB9CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICREZWxldGVGaWx0ZXIgPSAxOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoJERlbGV0ZUZpbHRlcikgewogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSAkQ29sdW1uUHJlZlJlYWxLZXlzVmFsdWVzLT57JENvbHVtbn07CiAgICAgICAgICAgICAgICAgICAgZGVsZXRlICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59OwogICAgICAgICAgICAgICAgICAgIG5leHQgUkVBTEtFWVZBTFVFUzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRDb2x1bW5QcmVmUmVhbEtleXNWYWx1ZXMtPnskQ29sdW1ufSA9ICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59OwogICAgICAgICAgICB9CiAgICAgICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBLZXkgICAgPT4gJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc1JlYWxLZXlzfSwKICAgICAgICAgICAgICAgIFZhbHVlICA9PiAkSlNPTk9iamVjdC0+RW5jb2RlKCBEYXRhID0+ICRDb2x1bW5QcmVmUmVhbEtleXNWYWx1ZXMgKSwKICAgICAgICAgICAgKTsKCiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgaWYgdGhlIHVzZXIgaGFzIGZpbHRlciBwcmVmZXJlbmNlcyBmb3IgdGhpcyB3aWRnZXQKICAgIG15ICVQcmVmZXJlbmNlcyA9ICRVc2VyT2JqZWN0LT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBjb2x1bW4gbmFtZXMgZnJvbSBQcmVmZXJlbmNlcwogICAgbXkgJFByZWZlcmVuY2VzQ29sdW1uRmlsdGVyczsKICAgIGlmICggJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5GaWx0ZXJzfSB9ICkgewogICAgICAgICRQcmVmZXJlbmNlc0NvbHVtbkZpbHRlcnMgPSAkSlNPTk9iamVjdC0+RGVjb2RlKAogICAgICAgICAgICBEYXRhID0+ICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc30gfSwKICAgICAgICApOwogICAgfQoKICAgIGlmICgkUHJlZmVyZW5jZXNDb2x1bW5GaWx0ZXJzKSB7CiAgICAgICAgJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9ID0gJFByZWZlcmVuY2VzQ29sdW1uRmlsdGVyczsKICAgICAgICBteSBAQ29sdW1uRmlsdGVycyA9IGtleXMgJXskUHJlZmVyZW5jZXNDb2x1bW5GaWx0ZXJzfTsKICAgICAgICBmb3IgbXkgJEZpZWxkIChAQ29sdW1uRmlsdGVycykgewogICAgICAgICAgICAkU2VsZi0+e0dldENvbHVtbkZpbHRlcn0tPnsgJEZpZWxkIC4gJFNlbGYtPntOYW1lfSB9ID0gJFByZWZlcmVuY2VzQ29sdW1uRmlsdGVycy0+eyRGaWVsZH07CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGNvbHVtbiByZWFsIG5hbWVzIGZyb20gUHJlZmVyZW5jZXMKICAgIG15ICRQcmVmZXJlbmNlc0NvbHVtbkZpbHRlcnNSZWFsS2V5czsKICAgIGlmICggJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5GaWx0ZXJzUmVhbEtleXN9IH0gKSB7CiAgICAgICAgJFByZWZlcmVuY2VzQ29sdW1uRmlsdGVyc1JlYWxLZXlzID0gJEpTT05PYmplY3QtPkRlY29kZSgKICAgICAgICAgICAgRGF0YSA9PiAkUHJlZmVyZW5jZXN7ICRTZWxmLT57UHJlZktleUNvbHVtbkZpbHRlcnNSZWFsS2V5c30gfSwKICAgICAgICApOwogICAgfQoKICAgIGlmICgkUHJlZmVyZW5jZXNDb2x1bW5GaWx0ZXJzUmVhbEtleXMpIHsKICAgICAgICBteSBAQ29sdW1uRmlsdGVyc1JlYWwgPSBrZXlzICV7JFByZWZlcmVuY2VzQ29sdW1uRmlsdGVyc1JlYWxLZXlzfTsKICAgICAgICBmb3IgbXkgJEZpZWxkIChAQ29sdW1uRmlsdGVyc1JlYWwpIHsKICAgICAgICAgICAgJFNlbGYtPntDb2x1bW5GaWx0ZXJ9LT57JEZpZWxkfSA9ICRQcmVmZXJlbmNlc0NvbHVtbkZpbHRlcnNSZWFsS2V5cy0+eyRGaWVsZH07CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGN1cnJlbnQgZmlsdGVyCiAgICBteSAkTmFtZSAgICAgICAgICAgICAgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ05hbWUnICkgfHwgJyc7CiAgICBteSAkUHJlZmVyZW5jZXNLZXkgICAgICAgICAgID0gJ1VzZXJEYXNoYm9hcmRUaWNrZXRHZW5lcmljRmlsdGVyJyAuICRTZWxmLT57TmFtZX07CiAgICBteSAkQWRkaXRpb25hbFByZWZlcmVuY2VzS2V5ID0gJ1VzZXJEYXNoYm9hcmRUaWNrZXRHZW5lcmljQWRkaXRpb25hbEZpbHRlcicgLiAkU2VsZi0+e05hbWV9OwogICAgaWYgKCAkU2VsZi0+e05hbWV9IGVxICROYW1lICkgewogICAgICAgICRTZWxmLT57RmlsdGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdGaWx0ZXInICkgfHwgJyc7CiAgICB9CgogICAgIyBSZW1lbWJlciB0aGUgc2VsZWN0ZWQgZmlsdGVyIGluIHRoZSBzZXNzaW9uLgogICAgaWYgKCAkU2VsZi0+e0ZpbHRlcn0gKSB7CgogICAgICAgICMgdXBkYXRlIHNlc3Npb24KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgICAgICBLZXkgICAgICAgPT4gJFByZWZlcmVuY2VzS2V5LAogICAgICAgICAgICBWYWx1ZSAgICAgPT4gJFNlbGYtPntGaWx0ZXJ9LAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlIHByZWZlcmVuY2VzCiAgICAgICAgaWYgKCAhJENvbmZpZ09iamVjdC0+R2V0KCdEZW1vU3lzdGVtJykgKSB7CiAgICAgICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBLZXkgICAgPT4gJFByZWZlcmVuY2VzS2V5LAogICAgICAgICAgICAgICAgVmFsdWUgID0+ICRTZWxmLT57RmlsdGVyfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+e0ZpbHRlcn0gPSAkU2VsZi0+e1Nlc3Npb259eyRQcmVmZXJlbmNlc0tleX0gfHwgJFNlbGYtPntDb25maWd9LT57RmlsdGVyfSB8fCAnQWxsJzsKICAgIH0KCiAgICAkU2VsZi0+e1ByZWZTZWFyY2hUZW1wbGF0ZX0gPSAnVXNlckRhc2hib2FyZFByZWYnIC4gJFNlbGYtPntOYW1lfSAuICctU2VhcmNoVGVtcGxhdGUnOwogICAgJFNlbGYtPntQcmVmS2V5U2hvd259ICAgICAgID0gJ1VzZXJEYXNoYm9hcmRQcmVmJyAuICRTZWxmLT57TmFtZX0gLiAnLVNob3duJzsKICAgICRTZWxmLT57UHJlZktleUNvbHVtbnN9ICAgICA9ICdVc2VyRGFzaGJvYXJkUHJlZicgLiAkU2VsZi0+e05hbWV9IC4gJy1Db2x1bW5zJzsKICAgICRTZWxmLT57UGFnZVNob3dufSAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+eyAkU2VsZi0+e1ByZWZLZXlTaG93bn0gfQogICAgICAgIHx8ICRTZWxmLT57Q29uZmlnfS0+e0xpbWl0fTsKICAgICRTZWxmLT57U3RhcnRIaXR9ID0gaW50KCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU3RhcnRIaXQnICkgfHwgMSApOwoKICAgICMgZGVmaW5lIGZpbHRlcmFibGUgY29sdW1ucwogICAgJFNlbGYtPntWYWxpZEZpbHRlcmFibGVDb2x1bW5zfSA9IHsKICAgICAgICAnT3duZXInICAgICAgICAgID0+IDEsCiAgICAgICAgJ1Jlc3BvbnNpYmxlJyAgICA9PiAxLAogICAgICAgICdDdXN0b21lcklEJyAgICAgPT4gMSwKICAgICAgICAnQ3VzdG9tZXJVc2VySUQnID0+IDEsCiAgICAgICAgJ1N0YXRlJyAgICAgICAgICA9PiAxLAogICAgICAgICdRdWV1ZScgICAgICAgICAgPT4gMSwKICAgICAgICAnUHJpb3JpdHknICAgICAgID0+IDEsCiAgICAgICAgJ1R5cGUnICAgICAgICAgICA9PiAxLAogICAgICAgICdMb2NrJyAgICAgICAgICAgPT4gMSwKICAgICAgICAnU2VydmljZScgICAgICAgID0+IDEsCiAgICAgICAgJ1NMQScgICAgICAgICAgICA9PiAxLAogICAgfTsKCiAgICAjIGhhc2ggd2l0aCBhbGwgdmFsaWQgc29ydGFibGUgY29sdW1ucyAodGFrZW4gZnJvbSBUaWNrZXRTZWFyY2gpCiAgICAjIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBDcmVhdGVkfE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlCiAgICAjIHxQcmlvcml0eXxUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8Q2hhbmdlZHxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgIyB8IEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgJFNlbGYtPntWYWxpZFNvcnRhYmxlQ29sdW1uc30gPSB7CiAgICAgICAgJ0FnZScgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ0NyZWF0ZWQnICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ093bmVyJyAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1Jlc3BvbnNpYmxlJyAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ0N1c3RvbWVySUQnICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1N0YXRlJyAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1RpY2tldE51bWJlcicgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1F1ZXVlJyAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1ByaW9yaXR5JyAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1R5cGUnICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ0xvY2snICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1RpdGxlJyAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1NlcnZpY2UnICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ0NoYW5nZWQnICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1NMQScgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1BlbmRpbmdUaW1lJyAgICAgICAgICAgID0+IDEsCiAgICAgICAgJ0VzY2FsYXRpb25UaW1lJyAgICAgICAgID0+IDEsCiAgICAgICAgJ0VzY2FsYXRpb25VcGRhdGVUaW1lJyAgID0+IDEsCiAgICAgICAgJ0VzY2FsYXRpb25SZXNwb25zZVRpbWUnID0+IDEsCiAgICAgICAgJ0VzY2FsYXRpb25Tb2x1dGlvblRpbWUnID0+IDEsCiAgICB9OwoKICAgICRTZWxmLT57VXNlVGlja2V0U2VydmljZX0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6U2VydmljZScpIHx8IDA7CgogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntJc1Byb2Nlc3NXaWRnZXR9ICkgewoKICAgICAgICAjIGdldCBwcm9jZXNzIG1hbmFnZW1lbnQgY29uZmlndXJhdGlvbgogICAgICAgICRTZWxmLT57UHJvY2Vzc01hbmFnZW1lbnRQcm9jZXNzSUR9ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnUHJvY2Vzczo6RHluYW1pY0ZpZWxkUHJvY2Vzc01hbmFnZW1lbnRQcm9jZXNzSUQnKTsKICAgICAgICAkU2VsZi0+e1Byb2Nlc3NNYW5hZ2VtZW50QWN0aXZpdHlJRH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1Byb2Nlc3M6OkR5bmFtaWNGaWVsZFByb2Nlc3NNYW5hZ2VtZW50QWN0aXZpdHlJRCcpOwoKICAgICAgICAjIGdldCB0aGUgbGlzdCBvZiBwcm9jZXNzZXMgaW4gdGhlIHN5c3RlbQogICAgICAgIG15ICRQcm9jZXNzTGlzdEhhc2ggPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UHJvY2Vzc01hbmFnZW1lbnQ6OlByb2Nlc3MnKS0+UHJvY2Vzc0xpc3QoCiAgICAgICAgICAgIFByb2Nlc3NTdGF0ZSA9PiBbICdBY3RpdmUnLCAnRmFkZUF3YXknLCAnSW5hY3RpdmUnIF0sCiAgICAgICAgICAgIEludGVyZmFjZSAgICA9PiAnYWxsJywKICAgICAgICAgICAgU2lsZW50ICAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyB1c2Ugb25seSB0aGUgcHJvY2VzcyBFbnRpdHlJRHMKICAgICAgICBAeyAkU2VsZi0+e1Byb2Nlc3NMaXN0fSB9ID0gc29ydCBrZXlzICV7JFByb2Nlc3NMaXN0SGFzaH07CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUHJlZmVyZW5jZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNvbmZpZ3VyZSBjb2x1bW5zCiAgICBteSBAQ29sdW1uc0VuYWJsZWQ7CiAgICBteSBAQ29sdW1uc0F2YWlsYWJsZTsKICAgIG15IEBDb2x1bW5zQXZhaWxhYmxlTm90RW5hYmxlZDsKCiAgICAjIGNoZWNrIGZvciBkZWZhdWx0IHNldHRpbmdzCiAgICBpZiAoCiAgICAgICAgJFNlbGYtPntDb25maWd9LT57RGVmYXVsdENvbHVtbnN9CiAgICAgICAgJiYgSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57Q29uZmlnfS0+e0RlZmF1bHRDb2x1bW5zfSApCiAgICAgICAgKQogICAgewogICAgICAgIEBDb2x1bW5zQXZhaWxhYmxlID0gZ3JlcCB7ICRTZWxmLT57Q29uZmlnfS0+e0RlZmF1bHRDb2x1bW5zfS0+eyRffSB9CiAgICAgICAgICAgIGtleXMgJXsgJFNlbGYtPntDb25maWd9LT57RGVmYXVsdENvbHVtbnN9IH07CiAgICAgICAgQENvbHVtbnNFbmFibGVkID0gZ3JlcCB7ICRTZWxmLT57Q29uZmlnfS0+e0RlZmF1bHRDb2x1bW5zfS0+eyRffSBlcSAnMicgfQogICAgICAgICAgICBzb3J0IHsgJFNlbGYtPl9EZWZhdWx0Q29sdW1uU29ydCgpIH0ga2V5cyAleyAkU2VsZi0+e0NvbmZpZ30tPntEZWZhdWx0Q29sdW1uc30gfTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIHRoZSB1c2VyIGhhcyBmaWx0ZXIgcHJlZmVyZW5jZXMgZm9yIHRoaXMgd2lkZ2V0CiAgICBteSAlUHJlZmVyZW5jZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBKU09OIG9iamVjdAogICAgbXkgJEpTT05PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SlNPTicpOwoKICAgICMgaWYgcHJlZmVyZW5jZSBzZXR0aW5ncyBhcmUgYXZhaWxhYmxlLCB0YWtlIHRoZW0KICAgIGlmICggJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5zfSB9ICkgewoKICAgICAgICBteSAkQ29sdW1uc0VuYWJsZWQgPSAkSlNPTk9iamVjdC0+RGVjb2RlKAogICAgICAgICAgICBEYXRhID0+ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+eyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5zfSB9LAogICAgICAgICk7CgogICAgICAgIEBDb2x1bW5zRW5hYmxlZCA9IGdyZXAgeyAkQ29sdW1uc0VuYWJsZWQtPntDb2x1bW5zfS0+eyRffSA9PSAxIH0KICAgICAgICAgICAga2V5cyAleyAkQ29sdW1uc0VuYWJsZWQtPntDb2x1bW5zfSB9OwoKICAgICAgICBpZiAoICRDb2x1bW5zRW5hYmxlZC0+e09yZGVyfSAmJiBAeyAkQ29sdW1uc0VuYWJsZWQtPntPcmRlcn0gfSApIHsKICAgICAgICAgICAgQENvbHVtbnNFbmFibGVkID0gQHsgJENvbHVtbnNFbmFibGVkLT57T3JkZXJ9IH07CiAgICAgICAgfQoKICAgICAgICAjIHJlbW92ZSBkdXBsaWNhdGUgY29sdW1ucwogICAgICAgIG15ICVVbmlxdWVDb2x1bW5zOwogICAgICAgIG15IEBDb2x1bW5zRW5hYmxlZEF1eDsKCiAgICAgICAgZm9yIG15ICRDb2x1bW4gKEBDb2x1bW5zRW5hYmxlZCkgewogICAgICAgICAgICBpZiAoICEkVW5pcXVlQ29sdW1uc3skQ29sdW1ufSApIHsKICAgICAgICAgICAgICAgIHB1c2ggQENvbHVtbnNFbmFibGVkQXV4LCAkQ29sdW1uOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRVbmlxdWVDb2x1bW5zeyRDb2x1bW59ID0gMTsKICAgICAgICB9CgogICAgICAgICMgc2V0IGZpbHRlcmVkIGNvbHVtbiBsaXN0CiAgICAgICAgQENvbHVtbnNFbmFibGVkID0gQENvbHVtbnNFbmFibGVkQXV4OwogICAgfQoKICAgIG15ICVDb2x1bW5zOwogICAgZm9yIG15ICRDb2x1bW5OYW1lICggc29ydCB7ICRhIGNtcCAkYiB9IEBDb2x1bW5zQXZhaWxhYmxlICkgewogICAgICAgICRDb2x1bW5ze0NvbHVtbnN9LT57JENvbHVtbk5hbWV9ID0gKCBncmVwIHsgJENvbHVtbk5hbWUgZXEgJF8gfSBAQ29sdW1uc0VuYWJsZWQgKSA/IDEgOiAwOwogICAgICAgIGlmICggIWdyZXAgeyAkXyBlcSAkQ29sdW1uTmFtZSB9IEBDb2x1bW5zRW5hYmxlZCApIHsKICAgICAgICAgICAgcHVzaCBAQ29sdW1uc0F2YWlsYWJsZU5vdEVuYWJsZWQsICRDb2x1bW5OYW1lOwogICAgICAgIH0KICAgIH0KCiAgICAjIHJlbW92ZSBDdXN0b21lcklEIGlmIEN1c3RvbWVyIEluZm9ybWF0aW9uIENlbnRlcgogICAgaWYgKCAkU2VsZi0+e0FjdGlvbn0gZXEgJ0FnZW50Q3VzdG9tZXJJbmZvcm1hdGlvbkNlbnRlcicgKSB7CiAgICAgICAgZGVsZXRlICRDb2x1bW5ze0NvbHVtbnN9LT57Q3VzdG9tZXJJRH07CiAgICAgICAgQENvbHVtbnNFbmFibGVkICAgICAgICAgICAgID0gZ3JlcCB7ICRfIG5lICdDdXN0b21lcklEJyB9IEBDb2x1bW5zRW5hYmxlZDsKICAgICAgICBAQ29sdW1uc0F2YWlsYWJsZU5vdEVuYWJsZWQgPSBncmVwIHsgJF8gbmUgJ0N1c3RvbWVySUQnIH0gQENvbHVtbnNBdmFpbGFibGVOb3RFbmFibGVkOwogICAgfQoKICAgIG15ICRTZWFyY2hQcm9maWxlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNlYXJjaFByb2ZpbGUnKTsKICAgIG15ICVQcm9maWxlcyAgICAgICAgICAgID0gJFNlYXJjaFByb2ZpbGVPYmplY3QtPlNlYXJjaFByb2ZpbGVMaXN0KAogICAgICAgIEJhc2UgICAgICA9PiAnVGlja2V0U2VhcmNoJywKICAgICAgICBVc2VyTG9naW4gPT4gJFNlbGYtPntVc2VyTG9naW59LAogICAgKTsKCiAgICBteSBAUGFyYW1zID0gKAogICAgICAgIHsKICAgICAgICAgICAgRGVzYyAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdTdG9yZWQgU2VhcmNoIFByb2ZpbGVzJyksCiAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICRTZWxmLT57UHJlZlNlYXJjaFRlbXBsYXRlfSwKICAgICAgICAgICAgQmxvY2sgICAgICAgPT4gJ09wdGlvbicsCiAgICAgICAgICAgIERhdGEgICAgICAgID0+IFwlUHJvZmlsZXMsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgID0+ICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmU2VhcmNoVGVtcGxhdGV9IH0sCiAgICAgICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIERlc2MgID0+IFRyYW5zbGF0YWJsZSgnU2hvd24gVGlja2V0cycpLAogICAgICAgICAgICBOYW1lICA9PiAkU2VsZi0+e1ByZWZLZXlTaG93bn0sCiAgICAgICAgICAgIEJsb2NrID0+ICdPcHRpb24nLAogICAgICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgICAgICA1ICA9PiAnIDUnLAogICAgICAgICAgICAgICAgMTAgPT4gJzEwJywKICAgICAgICAgICAgICAgIDE1ID0+ICcxNScsCiAgICAgICAgICAgICAgICAyMCA9PiAnMjAnLAogICAgICAgICAgICAgICAgMjUgPT4gJzI1JywKICAgICAgICAgICAgICAgIDUwID0+ICc1MCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFNlbGVjdGVkSUQgID0+ICRTZWxmLT57UGFnZVNob3dufSwKICAgICAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgRGVzYyAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1Nob3duIENvbHVtbnMnKSwKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiAkU2VsZi0+e1ByZWZLZXlDb2x1bW5zfSwKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnQWxsb2NhdGlvbkxpc3QnLAogICAgICAgICAgICBDb2x1bW5zICAgICAgICAgID0+ICRKU09OT2JqZWN0LT5FbmNvZGUoIERhdGEgPT4gXCVDb2x1bW5zICksCiAgICAgICAgICAgIENvbHVtbnNFbmFibGVkICAgPT4gJEpTT05PYmplY3QtPkVuY29kZSggRGF0YSA9PiBcQENvbHVtbnNFbmFibGVkICksCiAgICAgICAgICAgIENvbHVtbnNBdmFpbGFibGUgPT4gJEpTT05PYmplY3QtPkVuY29kZSggRGF0YSA9PiBcQENvbHVtbnNBdmFpbGFibGVOb3RFbmFibGVkICksCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgICAgPT4gMSwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gQFBhcmFtczsKfQoKc3ViIENvbmZpZyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgaWYgZnJvbnRlbmQgbW9kdWxlIG9mIGxpbmsgaXMgdXNlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntMaW5rfSAmJiAkU2VsZi0+e0NvbmZpZ30tPntMaW5rfSA9fiAvQWN0aW9uPSguKz8pKFsmO10uKz98KSQvICkgewogICAgICAgIG15ICRBY3Rpb24gPSAkMTsKICAgICAgICBpZiAoICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+eyRBY3Rpb259ICkgewogICAgICAgICAgICAkU2VsZi0+e0NvbmZpZ30tPntMaW5rfSA9ICcnOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gKAogICAgICAgICV7ICRTZWxmLT57Q29uZmlnfSB9LAoKICAgICAgICAjIERvbid0IGNhY2hlIHRoaXMgZ2xvYmFsbHkgYXMgaXQgY29udGFpbnMgSlMgdGhhdCBpcyBub3QgaW5zaWRlIG9mIHRoZSBIVE1MLgogICAgICAgIENhY2hlVFRMID0+IHVuZGVmLAogICAgICAgIENhY2hlS2V5ID0+IHVuZGVmLAogICAgKTsKfQoKc3ViIEZpbHRlckNvbnRlbnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgISRQYXJhbXtGaWx0ZXJDb2x1bW59OwoKICAgIG15ICRUaWNrZXRJRHM7CiAgICBteSAkSGVhZGVyQ29sdW1uID0gJFBhcmFte0ZpbHRlckNvbHVtbn07CiAgICBteSBAT3JpZ2luYWxWaWV3YWJsZVRpY2tldHM7CgogICAgaWYgKAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnT25seVZhbHVlc09uVGlja2V0JykKICAgICAgICB8fCAkSGVhZGVyQ29sdW1uIGVxICdDdXN0b21lcklEJwogICAgICAgIHx8ICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVyVXNlcklEJwogICAgICAgICkKICAgIHsKICAgICAgICBteSAlU2VhcmNoUGFyYW1zID0gJFNlbGYtPl9TZWFyY2hQYXJhbXNHZXQoJVBhcmFtKTsKICAgICAgICBteSAlVGlja2V0U2VhcmNoID0gJXsgJFNlYXJjaFBhcmFtc3tUaWNrZXRTZWFyY2h9IH07CiAgICAgICAgbXkgJVRpY2tldFNlYXJjaFN1bW1hcnk7CgogICAgICAgICMgYWRkIHByb2Nlc3MgbWFuYWdlbWVudCBzZWFyY2ggdGVybXMKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e0lzUHJvY2Vzc1dpZGdldH0gKSB7CiAgICAgICAgICAgICRUaWNrZXRTZWFyY2h7ICdEeW5hbWljRmllbGRfJyAuICRTZWxmLT57UHJvY2Vzc01hbmFnZW1lbnRQcm9jZXNzSUR9IH0gPSB7CiAgICAgICAgICAgICAgICBMaWtlID0+ICRTZWxmLT57UHJvY2Vzc0xpc3R9LAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFNlbGYtPntDb25maWd9LT57SXNQcm9jZXNzV2lkZ2V0fSB8fCBJc0FycmF5UmVmV2l0aERhdGEoICRTZWxmLT57UHJvY2Vzc0xpc3R9ICkgKSB7CiAgICAgICAgICAgIEBPcmlnaW5hbFZpZXdhYmxlVGlja2V0cyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJVRpY2tldFNlYXJjaCwKICAgICAgICAgICAgICAgICV7ICRUaWNrZXRTZWFyY2hTdW1tYXJ5eyAkU2VsZi0+e0ZpbHRlcn0gfSB9LAogICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJEhlYWRlckNvbHVtbiA9fiBtL15EeW5hbWljRmllbGRfLyAmJiAhZGVmaW5lZCAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gKSB7CgogICAgICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgICAgIFZhbGlkICAgICAgPT4gMCwKICAgICAgICAgICAgT2JqZWN0VHlwZSA9PiBbJ1RpY2tldCddLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY29sdW1uIHZhbHVlcyBmb3IgdG8gYnVpbGQgdGhlIGZpbHRlcnMgbGF0ZXIKICAgIG15ICRDb2x1bW5WYWx1ZXMgPSAkU2VsZi0+X0dldENvbHVtblZhbHVlcygKICAgICAgICBPcmlnaW5hbFRpY2tldElEcyA9PiBcQE9yaWdpbmFsVmlld2FibGVUaWNrZXRzLAogICAgICAgIEhlYWRlckNvbHVtbiAgICAgID0+ICRIZWFkZXJDb2x1bW4sCiAgICApOwoKICAgICMgbWFrZSBzdXJlIHRoYXQgZXZlbiBhIHZhbHVlIG9mIDAgaXMgcGFzc2VkIGFzIGEgU2VsZWN0ZWQgdmFsdWUsIGUuZy4gVW5jaGVja2VkIHZhbHVlIG9mIGEKICAgICMgY2hlY2stYm94IGR5bmFtaWMgZmllbGQuCiAgICBteSAkU2VsZWN0ZWRWYWx1ZSA9IGRlZmluZWQgJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJ9LT57ICRIZWFkZXJDb2x1bW4gLiAkU2VsZi0+e05hbWV9IH0KICAgICAgICA/ICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyfS0+eyAkSGVhZGVyQ29sdW1uIC4gJFNlbGYtPntOYW1lfSB9CiAgICAgICAgOiAnJzsKCiAgICBteSAkTGFiZWxDb2x1bW4gPSAkSGVhZGVyQ29sdW1uOwogICAgaWYgKCAkTGFiZWxDb2x1bW4gPX4gbXsgXEEgRHluYW1pY0ZpZWxkXyB9eG1zICkgewoKICAgICAgICBteSAkRHluYW1pY0ZpZWxkQ29uZmlnOwogICAgICAgICRMYWJlbENvbHVtbiA9fiBze1xBIER5bmFtaWNGaWVsZF8gfXt9eG1zOwoKICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICRERkNvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJERGQ29uZmlnKTsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgJERGQ29uZmlnLT57TmFtZX0gbmUgJExhYmVsQ29sdW1uOwoKICAgICAgICAgICAgJER5bmFtaWNGaWVsZENvbmZpZyA9ICRERkNvbmZpZzsKICAgICAgICAgICAgbGFzdCBEWU5BTUlDRklFTEQ7CiAgICAgICAgfQogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZykgKSB7CiAgICAgICAgICAgICRMYWJlbENvbHVtbiA9ICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH07CiAgICAgICAgfQogICAgfQoKICAgICMgdmFyaWFibGUgdG8gc2F2ZSB0aGUgZmlsdGVyJ3MgSFRNTCBjb2RlCiAgICBteSAkQ29sdW1uRmlsdGVySlNPTiA9ICRTZWxmLT5fQ29sdW1uRmlsdGVySlNPTigKICAgICAgICBDb2x1bW5OYW1lICAgID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAkTGFiZWxDb2x1bW4sCiAgICAgICAgQ29sdW1uVmFsdWVzICA9PiAkQ29sdW1uVmFsdWVzLT57JEhlYWRlckNvbHVtbn0sCiAgICAgICAgU2VsZWN0ZWRWYWx1ZSA9PiAkU2VsZWN0ZWRWYWx1ZSwKICAgICAgICBEYXNoYm9hcmROYW1lID0+ICRTZWxmLT57TmFtZX0sCiAgICApOwoKICAgIHJldHVybiAkQ29sdW1uRmlsdGVySlNPTjsKCn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlU2VhcmNoUGFyYW1zID0gJFNlbGYtPl9TZWFyY2hQYXJhbXNHZXQoJVBhcmFtKTsKICAgIG15IEBDb2x1bW5zICAgICAgPSBAeyAkU2VhcmNoUGFyYW1ze0NvbHVtbnN9IH07CiAgICBteSAlVGlja2V0U2VhcmNoID0gJXsgJFNlYXJjaFBhcmFtc3tUaWNrZXRTZWFyY2h9IH07CiAgICBteSAlVGlja2V0U2VhcmNoU3VtbWFyeTsKCiAgICBteSAkVXNlck9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwogICAgbXkgJVByZWZlcmVuY2VzID0gJFVzZXJPYmplY3QtPkdldFByZWZlcmVuY2VzKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgaWYgbm8gc2VhcmNoIHRlbXBsYXRlIGlzIHNldCBub3RoaW5nIHdpbGwgYmUgZm91bmQKICAgIG15ICRQcmVmU2VhcmNoVGVtcGxhdGUgPSAkUHJlZmVyZW5jZXN7ICRTZWxmLT57UHJlZlNlYXJjaFRlbXBsYXRlfX0gPyAkUHJlZmVyZW5jZXN7ICRTZWxmLT57UHJlZlNlYXJjaFRlbXBsYXRlfX0gOiAnJzsKICAgIG15ICRDYWNoZUtleSA9IGpvaW4gJy0nLCAkU2VsZi0+e05hbWV9LCAkU2VsZi0+e0FjdGlvbn0sICRTZWxmLT57UGFnZVNob3dufSwgJFNlbGYtPntTdGFydEhpdH0sICRTZWxmLT57VXNlcklEfSwgJFByZWZTZWFyY2hUZW1wbGF0ZTsKICAgIG15ICRDYWNoZUNvbHVtbnMgPSBqb2luKAogICAgICAgICcsJywKICAgICAgICBtYXAgeyAkXyAuICc9PicgLiAkU2VsZi0+e0dldENvbHVtbkZpbHRlclNlbGVjdH0tPnskX30gfSBzb3J0IGtleXMgJXsgJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9IH0KICAgICk7CiAgICAkQ2FjaGVLZXkgLj0gJy0nIC4gJENhY2hlQ29sdW1ucyBpZiAkQ2FjaGVDb2x1bW5zOwoKICAgICMgSWYgU29ydEJ5IHBhcmFtZXRlciBpcyBub3QgZGVmaW5lZCwgc2V0IHRvIHZhbHVlIGZyb20gJVRpY2tldFNlYXJjaCwgb3RoZXJ3aXNlIHNldCB0byBkZWZhdWx0IHZhbHVlICdBZ2UnLgogICAgaWYgKCAhZGVmaW5lZCAkU2VsZi0+e1NvcnRCeX0gKSB7CiAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXRTZWFyY2h7U29ydEJ5fSAmJiAkU2VsZi0+e1ZhbGlkU29ydGFibGVDb2x1bW5zfS0+eyAkVGlja2V0U2VhcmNoe1NvcnRCeX0gfSApIHsKICAgICAgICAgICAgJFNlbGYtPntTb3J0Qnl9ID0gJFRpY2tldFNlYXJjaHtTb3J0Qnl9OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlbGYtPntTb3J0Qnl9ID0gJ0FnZSc7CiAgICAgICAgfQogICAgfQoKICAgICRDYWNoZUtleSAuPSAnLScgLiAkU2VsZi0+e1NvcnRCeX0gaWYgZGVmaW5lZCAkU2VsZi0+e1NvcnRCeX07CgogICAgIyBTZXQgT3JkZXJCeSBwYXJhbWV0ZXIgdG8gdGhlIHNlYXJjaC4KICAgIG15ICRJc0NhY2hlRm9yVXNlID0gMDsKICAgIGlmICggJFNlbGYtPntPcmRlckJ5fSApIHsKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57QWRkRmlsdGVyc30KICAgICAgICAgICAgfHwgJFNlbGYtPntUYWJBY3Rpb259CiAgICAgICAgICAgIHx8ICFkZWZpbmVkICRTZWxmLT57U29ydGluZ0NvbHVtbn0KICAgICAgICAgICAgfHwgJFNlbGYtPntTb3J0aW5nQ29sdW1ufSBuZSAkU2VsZi0+e1NvcnRCeX0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFRpY2tldFNlYXJjaHtPcmRlckJ5fSA9ICRTZWxmLT57T3JkZXJCeX07CiAgICAgICAgICAgICRJc0NhY2hlRm9yVXNlID0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gPSAkU2VsZi0+e09yZGVyQnl9IGVxICdVcCcgPyAnRG93bicgOiAnVXAnOwogICAgICAgIH0KICAgIH0KCiAgICAjIFNldCBvcmRlciBmb3IgYmxvY2tzLgogICAgJFRpY2tldFNlYXJjaHtPcmRlckJ5fSA9ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gfHwgJ0Rvd24nOwoKICAgICMgU2V0IHByZXZpb3VzIHNvcnRpbmcgY29sdW1uIHBhcmFtZXRlciBmb3IgYWxsIGNvbHVtbnMuCiAgICAkUGFyYW17U29ydGluZ0NvbHVtbn0gPSAkU2VsZi0+e1NvcnRCeX07CgogICAgJENhY2hlS2V5IC49ICctJyAuICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gaWYgZGVmaW5lZCAkVGlja2V0U2VhcmNoe09yZGVyQnl9OwoKICAgICMgQ3VzdG9tZXJJbmZvcm1hdGlvbkNlbnRlciBzaG93cyBkYXRhIHBlciBDdXN0b21lcklECiAgICBpZiAoICRQYXJhbXtDdXN0b21lcklEfSApIHsKICAgICAgICAkQ2FjaGVLZXkgLj0gJy0nIC4gJFBhcmFte0N1c3RvbWVySUR9OwogICAgfQoKICAgICMgQ3VzdG9tZXJVc2VySW5mb3JtYXRpb25DZW50ZXIgc2hvd3MgZGF0YSBwZXIgQ3VzdG9tZXJVc2VySUQKICAgIGlmICggJFBhcmFte0N1c3RvbWVyVXNlcklEfSApIHsKICAgICAgICAkQ2FjaGVLZXkgLj0gJy0nIC4gJFBhcmFte0N1c3RvbWVyVXNlcklEfTsKICAgIH0KCiAgICAjIGdldCBjYWNoZSBvYmplY3QKICAgIG15ICRDYWNoZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwoKICAgICMgY2hlY2sgY2FjaGUKICAgIG15ICRUaWNrZXRJRHMgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICBUeXBlID0+ICdEYXNoYm9hcmQnLAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5IC4gJy0nIC4gJFNlbGYtPntGaWx0ZXJ9IC4gJy1MaXN0JywKICAgICk7CgogICAgIyBmaW5kIGFuZCBzaG93IHRpY2tldCBsaXN0CiAgICBteSAkQ2FjaGVVc2VkID0gMTsKCiAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgIGlmICggISRUaWNrZXRJRHMgKSB7CgogICAgICAgICMgcXVvdGUgYWxsIEN1c3RvbWVySURzCiAgICAgICAgaWYgKCAkVGlja2V0U2VhcmNoe0N1c3RvbWVySUR9ICkgewogICAgICAgICAgICAkVGlja2V0U2VhcmNoe0N1c3RvbWVySUR9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlF1ZXJ5U3RyaW5nRXNjYXBlKAogICAgICAgICAgICAgICAgUXVlcnlTdHJpbmcgPT4gJFRpY2tldFNlYXJjaHtDdXN0b21lcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgYWRkIHNvcnQgYnkgcGFyYW1ldGVyIHRvIHRoZSBzZWFyY2gKICAgICAgICBpZiAoICFkZWZpbmVkICRUaWNrZXRTZWFyY2h7U29ydEJ5fSB8fCAhJFNlbGYtPntWYWxpZFNvcnRhYmxlQ29sdW1uc30tPnsgJFRpY2tldFNlYXJjaHtTb3J0Qnl9IH0gKSB7CiAgICAgICAgICAgIGlmICggJFNlbGYtPntTb3J0Qnl9ICYmICRTZWxmLT57VmFsaWRTb3J0YWJsZUNvbHVtbnN9LT57ICRTZWxmLT57U29ydEJ5fSB9ICkgewogICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaHtTb3J0Qnl9ID0gJFNlbGYtPntTb3J0Qnl9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaHtTb3J0Qnl9ID0gJ0FnZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRDYWNoZVVzZWQgPSAkSXNDYWNoZUZvclVzZSA/IDEgOiAwOwoKICAgICAgICAjIGFkZCBwcm9jZXNzIG1hbmFnZW1lbnQgc2VhcmNoIHRlcm1zCiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntJc1Byb2Nlc3NXaWRnZXR9ICkgewogICAgICAgICAgICAkVGlja2V0U2VhcmNoeyAnRHluYW1pY0ZpZWxkXycgLiAkU2VsZi0+e1Byb2Nlc3NNYW5hZ2VtZW50UHJvY2Vzc0lEfSB9ID0gewogICAgICAgICAgICAgICAgTGlrZSA9PiAkU2VsZi0+e1Byb2Nlc3NMaXN0fSwKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIG15IEBUaWNrZXRJRHNBcnJheTsKICAgICAgICBpZiAoICEkU2VsZi0+e0NvbmZpZ30tPntJc1Byb2Nlc3NXaWRnZXR9IHx8IElzQXJyYXlSZWZXaXRoRGF0YSggJFNlbGYtPntQcm9jZXNzTGlzdH0gKSApIHsKCiAgICAgICAgICAgICMgQ29weSBvcmlnaW5hbCBjb2x1bW4gZmlsdGVyLgogICAgICAgICAgICBteSAlQ29sdW1uRmlsdGVyID0gJXsgJFNlbGYtPntDb2x1bW5GaWx0ZXJ9IHx8IHt9IH07CiAgICAgICAgICAgIEBUaWNrZXRJRHNBcnJheSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgIFJlc3VsdCA9PiAnQVJSQVknLAogICAgICAgICAgICAgICAgJVRpY2tldFNlYXJjaCwKICAgICAgICAgICAgICAgICV7ICRUaWNrZXRTZWFyY2hTdW1tYXJ5eyAkU2VsZi0+e0ZpbHRlcn0gfSB9LAogICAgICAgICAgICAgICAgJUNvbHVtbkZpbHRlciwKICAgICAgICAgICAgICAgIExpbWl0ID0+ICRTZWxmLT57UGFnZVNob3dufSArICRTZWxmLT57U3RhcnRIaXR9IC0gMSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgJFRpY2tldElEcyA9IFxAVGlja2V0SURzQXJyYXk7CiAgICB9CgogICAgIyBjaGVjayBjYWNoZQogICAgbXkgJFN1bW1hcnkgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICBUeXBlID0+ICdEYXNoYm9hcmQnLAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5IC4gJy1TdW1tYXJ5JywKICAgICk7CgogICAgIyBJZiBubyBjYWNoZSBvciBuZXcgbGlzdCByZXN1bHQsIGRvIGNvdW50IGxvb2t1cC4KICAgIGlmICggISRTdW1tYXJ5IHx8ICEkQ2FjaGVVc2VkICkgewoKICAgICAgICAjIERlZmluZSB0aGUgc3VtbWFyeSB0eXBlcyBmb3Igd2hpY2ggbm8gY291bnQgaXMgbmVlZGVkLCBiZWNhdXNlIHdlIGhhdmUgbm8gb3V0cHV0LgogICAgICAgIG15ICVMb29rdXBOb0NvdW50U3VtbWFyeVR5cGUgPSAoCiAgICAgICAgICAgIEFzc2lnbmVkVG9DdXN0b21lclVzZXIgICAgPT4gMSwKICAgICAgICAgICAgQWNjZXNzaWJsZUZvckN1c3RvbWVyVXNlciA9PiAxLAogICAgICAgICk7CgogICAgICAgIFRZUEU6CiAgICAgICAgZm9yIG15ICRUeXBlICggc29ydCBrZXlzICVUaWNrZXRTZWFyY2hTdW1tYXJ5ICkgewogICAgICAgICAgICBuZXh0IFRZUEUgaWYgJExvb2t1cE5vQ291bnRTdW1tYXJ5VHlwZXskVHlwZX07CiAgICAgICAgICAgIG5leHQgVFlQRSBpZiAhJFRpY2tldFNlYXJjaFN1bW1hcnl7JFR5cGV9OwoKICAgICAgICAgICAgIyBDb3B5IG9yaWdpbmFsIGNvbHVtbiBmaWx0ZXIuCiAgICAgICAgICAgIG15ICVDb2x1bW5GaWx0ZXIgPSAleyAkU2VsZi0+e0NvbHVtbkZpbHRlcn0gfHwge30gfTsKCiAgICAgICAgICAgICMgYWRkIHByb2Nlc3MgbWFuYWdlbWVudCBzZWFyY2ggdGVybXMKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntJc1Byb2Nlc3NXaWRnZXR9ICkgewogICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaHsgJ0R5bmFtaWNGaWVsZF8nIC4gJFNlbGYtPntQcm9jZXNzTWFuYWdlbWVudFByb2Nlc3NJRH0gfSA9IHsKICAgICAgICAgICAgICAgICAgICBMaWtlID0+ICRTZWxmLT57UHJvY2Vzc0xpc3R9LAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFN1bW1hcnktPnskVHlwZX0gPSAwOwoKICAgICAgICAgICAgaWYgKCAhJFNlbGYtPntDb25maWd9LT57SXNQcm9jZXNzV2lkZ2V0fSB8fCBJc0FycmF5UmVmV2l0aERhdGEoICRTZWxmLT57UHJvY2Vzc0xpc3R9ICkgKSB7CgogICAgICAgICAgICAgICAgIyBDaGFuZ2UgZmlsdGVyIG5hbWUgYWNjb3JkaW5nbHkuCiAgICAgICAgICAgICAgICAkU3VtbWFyeS0+eyRUeXBlfSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0NPVU5UJywKICAgICAgICAgICAgICAgICAgICAlVGlja2V0U2VhcmNoLAogICAgICAgICAgICAgICAgICAgICV7ICRUaWNrZXRTZWFyY2hTdW1tYXJ5eyRUeXBlfSB9LAogICAgICAgICAgICAgICAgICAgICVDb2x1bW5GaWx0ZXIsCiAgICAgICAgICAgICAgICApIHx8IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgY2FjaGUKICAgIGlmICggISRDYWNoZVVzZWQgJiYgJFNlbGYtPntDb25maWd9LT57Q2FjaGVUVExMb2NhbH0gKSB7CiAgICAgICAgJENhY2hlT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIFR5cGUgID0+ICdEYXNoYm9hcmQnLAogICAgICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXkgLiAnLVN1bW1hcnknLAogICAgICAgICAgICBWYWx1ZSA9PiAkU3VtbWFyeSwKICAgICAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDb25maWd9LT57Q2FjaGVUVExMb2NhbH0gKiA2MCwKICAgICAgICApOwogICAgICAgICRDYWNoZU9iamVjdC0+U2V0KAogICAgICAgICAgICBUeXBlICA9PiAnRGFzaGJvYXJkJywKICAgICAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5IC4gJy0nIC4gJFNlbGYtPntGaWx0ZXJ9IC4gJy1MaXN0JywKICAgICAgICAgICAgVmFsdWUgPT4gJFRpY2tldElEcywKICAgICAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDb25maWd9LT57Q2FjaGVUVExMb2NhbH0gKiA2MCwKICAgICAgICApOwogICAgfQoKICAgICMgU2V0IHRoZSBjc3MgY2xhc3MgZm9yIHRoZSBzZWxlY3RlZCBmaWx0ZXIgYW5kIGFkZGl0aW9uYWwgZmlsdGVyLgogICAgJFN1bW1hcnktPnsgJFNlbGYtPntGaWx0ZXJ9IC4gJzo6U2VsZWN0ZWQnIH0gPSAnU2VsZWN0ZWQnOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBnZXQgdGlja2V0IGNvdW50cwogICAgIyBpZiB0aGUgc2VhcmNoIHRlbXBsYXRlIGlzIGludmFsaWQgKG51bGwgb3IgZGVsZXRlZCkgY291bnQgbm8gdGlja2V0cwogICAgaWYgKCAkVGlja2V0U2VhcmNoe0ludmFsaWRTZWFyY2hUZW1wbGF0ZX0gKSB7CiAgICAgICAgJFN1bW1hcnktPntBbGx9ID0gMDsKICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRmlsdGVyJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyAkU2VsZi0+e0NvbmZpZ30gfSwKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICBQcm9maWxlVGVtcGxhdGVOYW1lID0+ICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmU2VhcmNoVGVtcGxhdGV9IH0sCiAgICAgICAgICAgICV7JFN1bW1hcnl9LAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZTZWFyY2hUZW1wbGF0ZX0gfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU2VsZWN0ZWRUZW1wbGF0ZUFuZFRpY2tldHNDb3VudCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgUHJvZmlsZVRlbXBsYXRlTmFtZSA9PiAkUHJlZmVyZW5jZXN7ICRTZWxmLT57UHJlZlNlYXJjaFRlbXBsYXRlfSB9LAogICAgICAgICAgICAgICAgQ291bnQgICAgICAgICAgICAgICA9PiAkU3VtbWFyeS0+e0FsbH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb1RlbXBsYXRlU2VsZWN0ZWQnLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBhZGQgcGFnZSBuYXYgYmFyCiAgICBteSAkVG90YWwgPSAkU3VtbWFyeS0+eyAkU2VsZi0+e0ZpbHRlcn0gfSB8fCAwOwoKICAgIG15ICVHZXRDb2x1bW5GaWx0ZXIgPSAkU2VsZi0+e0dldENvbHVtbkZpbHRlcn0gPyAleyAkU2VsZi0+e0dldENvbHVtbkZpbHRlcn0gfSA6ICgpOwoKICAgIG15ICRDb2x1bW5GaWx0ZXJMaW5rID0gJyc7CiAgICBDT0xVTU5OQU1FOgogICAgZm9yIG15ICRDb2x1bW5OYW1lICggc29ydCBrZXlzICVHZXRDb2x1bW5GaWx0ZXIgKSB7CiAgICAgICAgbmV4dCBDT0xVTU5OQU1FIGlmICEkQ29sdW1uTmFtZTsKICAgICAgICBuZXh0IENPTFVNTk5BTUUgaWYgISRHZXRDb2x1bW5GaWx0ZXJ7JENvbHVtbk5hbWV9OwogICAgICAgICRDb2x1bW5GaWx0ZXJMaW5rCiAgICAgICAgICAgIC49ICc7JyAuICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJ0NvbHVtbkZpbHRlcicgLiAkQ29sdW1uTmFtZSApCiAgICAgICAgICAgIC4gJz0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSggJEdldENvbHVtbkZpbHRlcnskQ29sdW1uTmFtZX0gKTsKICAgIH0KCiAgICBteSAkTGlua1BhZ2UgPQogICAgICAgICdTdWJhY3Rpb249RWxlbWVudDtOYW1lPScgLiAkU2VsZi0+e05hbWV9CiAgICAgICAgLiAnO0ZpbHRlcj0nIC4gJFNlbGYtPntGaWx0ZXJ9CiAgICAgICAgLiAnO1NvcnRCeT0nIC4gKCAkU2VsZi0+e1NvcnRCeX0gfHwgJycgKQogICAgICAgIC4gJztPcmRlckJ5PScgLiAoICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gfHwgJycgKQogICAgICAgIC4gJENvbHVtbkZpbHRlckxpbmsKICAgICAgICAuICc7JzsKCiAgICBpZiAoICRQYXJhbXtDdXN0b21lcklEfSApIHsKICAgICAgICAkTGlua1BhZ2UgLj0gIkN1c3RvbWVySUQ9JFBhcmFte0N1c3RvbWVySUR9OyI7CiAgICB9CiAgICBpZiAoICRQYXJhbXtDdXN0b21lclVzZXJJRH0gKSB7CiAgICAgICAgJExpbmtQYWdlIC49ICJDdXN0b21lclVzZXJJRD0kUGFyYW17Q3VzdG9tZXJVc2VySUR9OyI7CiAgICB9CgogICAgbXkgJVBhZ2VOYXYgPSAkTGF5b3V0T2JqZWN0LT5QYWdlTmF2QmFyKAogICAgICAgIFN0YXJ0SGl0ICAgID0+ICRTZWxmLT57U3RhcnRIaXR9LAogICAgICAgIFBhZ2VTaG93biAgID0+ICRTZWxmLT57UGFnZVNob3dufSwKICAgICAgICBBbGxIaXRzICAgICA9PiAkVG90YWwgfHwgMSwKICAgICAgICBBY3Rpb24gICAgICA9PiAnQWN0aW9uPScgLiAkTGF5b3V0T2JqZWN0LT57QWN0aW9ufSwKICAgICAgICBMaW5rICAgICAgICA9PiAkTGlua1BhZ2UsCiAgICAgICAgQUpBWFJlcGxhY2UgPT4gJ0Rhc2hib2FyZCcgLiAkU2VsZi0+e05hbWV9LAogICAgICAgIElEUHJlZml4ICAgID0+ICdEYXNoYm9hcmQnIC4gJFNlbGYtPntOYW1lfSwKICAgICAgICBBSkFYICAgICAgICA9PiAkUGFyYW17QUpBWH0sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0ZpbHRlck5hdkJhcicsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICV7ICRTZWxmLT57Q29uZmlnfSB9LAogICAgICAgICAgICBOYW1lID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICVQYWdlTmF2LAogICAgICAgIH0sCiAgICApOwoKICAgICMgc2hvdyB0YWJsZSBoZWFkZXIKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXInLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICMgZGVmaW5lIHdoaWNoIG1ldGEgaXRlbXMgd2lsbCBiZSBzaG93bgogICAgbXkgQE1ldGFJdGVtcyA9ICRMYXlvdXRPYmplY3QtPlRpY2tldE1ldGFJdGVtc0NvdW50KCk7CgogICAgIyByZW1vdmUgKC0pIGZyb20gbmFtZSBmb3IgSlMgY29uZmlnCiAgICBteSAkV2lkZ2V0TmFtZSA9ICRTZWxmLT57TmFtZX07CiAgICAkV2lkZ2V0TmFtZSA9fiBzey19e31nOwoKICAgICMgc2hvdyBub24tbGFiZWxlZCB0YWJsZSBoZWFkZXJzCiAgICBteSAkQ1NTID0gJyc7CgogICAgIyBTZW5kIGRhdGEgdG8gSlMgZm9yIGluaXQgY29udGFpbmVyLgogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdJbml0Q29udGFpbmVyRGFzaGJvYXJkJyAuICRTZWxmLT57TmFtZX0sCiAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICBTb3J0QnkgID0+ICRTZWxmLT57U29ydEJ5fSB8fCAnQWdlJywKICAgICAgICAgICAgT3JkZXJCeSA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgIH0sCiAgICApOwoKICAgIGZvciBteSAkSXRlbSAoQE1ldGFJdGVtcykgewogICAgICAgICRDU1MgPSAnJzsKICAgICAgICBteSAkVGl0bGUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJEl0ZW0pOwoKICAgICAgICAjIHNldCB0aXRsZSBkZXNjcmlwdGlvbgogICAgICAgIGlmICggJFNlbGYtPntTb3J0Qnl9ICYmICRTZWxmLT57U29ydEJ5fSBlcSAkSXRlbSApIHsKICAgICAgICAgICAgbXkgJFRpdGxlRGVzYyA9ICcnOwogICAgICAgICAgICBpZiAoICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gZXEgJ0Rvd24nICkgewogICAgICAgICAgICAgICAgJENTUyAuPSAnIFNvcnREZXNjZW5kaW5nTGFyZ2UnOwogICAgICAgICAgICAgICAgJFRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnc29ydGVkIGRlc2NlbmRpbmcnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRDU1MgLj0gJyBTb3J0QXNjZW5kaW5nTGFyZ2UnOwogICAgICAgICAgICAgICAgJFRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnc29ydGVkIGFzY2VuZGluZycpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkVGl0bGVEZXNjID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRUaXRsZURlc2MpOwogICAgICAgICAgICAkVGl0bGUgLj0gJywgJyAuICRUaXRsZURlc2M7CiAgICAgICAgfQoKICAgICAgICAjIGFkZCBzdXJyb3VuZGluZyBjb250YWluZXIKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnR2VuZXJhbE92ZXJ2aWV3SGVhZGVyJywKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YScsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgQ1NTICAgICAgICAgICAgICA9PiAkQ1NTLAogICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSA9PiAkSXRlbSwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgIGlmICggJEl0ZW0gZXEgJ05ldyBBcnRpY2xlJyApIHsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlck1ldGFFbXB0eScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICRJdGVtLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgICAgICBLZXkgICA9PiAnSGVhZGVyTWV0YScgLiAkV2lkZ2V0TmFtZSwKICAgICAgICAgICAgICAgIFZhbHVlID0+IHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJEl0ZW0sCiAgICAgICAgICAgICAgICAgICAgU29ydGluZ0NvbHVtbiAgICA9PiAkUGFyYW17U29ydGluZ0NvbHVtbn0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YUxpbmsnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSA9PiAkSXRlbSwKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgID0+ICRUaXRsZSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2VuZCBkYXRhIHRvIEpTCiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ0hlYWRlckNvbHVtbicgLiAkV2lkZ2V0TmFtZSwKICAgICAgICBWYWx1ZSA9PiBcQENvbHVtbnMKICAgICk7CgogICAgIyBzaG93IGFsbCBuZWVkZWQgaGVhZGVycwogICAgSEVBREVSQ09MVU1OOgogICAgZm9yIG15ICRIZWFkZXJDb2x1bW4gKEBDb2x1bW5zKSB7CgogICAgICAgICMgc2tpcCBDdXN0b21lcklEIGlmIEN1c3RvbWVyIEluZm9ybWF0aW9uIENlbnRlcgogICAgICAgIGlmICggJFNlbGYtPntBY3Rpb259IGVxICdBZ2VudEN1c3RvbWVySW5mb3JtYXRpb25DZW50ZXInICYmICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVySUQnICkgewogICAgICAgICAgICBuZXh0IEhFQURFUkNPTFVNTjsKICAgICAgICB9CgogICAgICAgIGlmICggJEhlYWRlckNvbHVtbiAhfiBte1xBIER5bmFtaWNGaWVsZF99eG1zICkgewoKICAgICAgICAgICAgJENTUyA9ICcnOwogICAgICAgICAgICBteSAkVGl0bGUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJEhlYWRlckNvbHVtbik7CgogICAgICAgICAgICAjIFNldCB0aXRsZSBkZXNjcmlwdGlvbi4KICAgICAgICAgICAgaWYgKCAkU2VsZi0+e1NvcnRCeX0gJiYgJFNlbGYtPntTb3J0Qnl9IGVxICRIZWFkZXJDb2x1bW4gKSB7CiAgICAgICAgICAgICAgICBteSAkVGl0bGVEZXNjID0gJyc7CiAgICAgICAgICAgICAgICBpZiAoICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gZXEgJ0Rvd24nICkgewogICAgICAgICAgICAgICAgICAgICRDU1MgLj0gJyBTb3J0RGVzY2VuZGluZ0xhcmdlJzsKICAgICAgICAgICAgICAgICAgICAkVGl0bGVEZXNjID0gVHJhbnNsYXRhYmxlKCdzb3J0ZWQgZGVzY2VuZGluZycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJENTUyAuPSAnIFNvcnRBc2NlbmRpbmdMYXJnZSc7CiAgICAgICAgICAgICAgICAgICAgJFRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnc29ydGVkIGFzY2VuZGluZycpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRUaXRsZURlc2MgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJFRpdGxlRGVzYyk7CiAgICAgICAgICAgICAgICAkVGl0bGUgLj0gJywgJyAuICRUaXRsZURlc2M7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdHJhbnNsYXRlIHRoZSBjb2x1bW4gbmFtZSB0byB3cml0ZSBpdCBpbiB0aGUgY3VycmVudCBsYW5ndWFnZQogICAgICAgICAgICBteSAkVHJhbnNsYXRlZFdvcmQ7CiAgICAgICAgICAgIGlmICggJEhlYWRlckNvbHVtbiBlcSAnRXNjYWxhdGlvblRpbWUnICkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdTZXJ2aWNlIFRpbWUnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0VzY2FsYXRpb25SZXNwb25zZVRpbWUnICkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdGaXJzdCBSZXNwb25zZSBUaW1lJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdFc2NhbGF0aW9uU29sdXRpb25UaW1lJyApIHsKICAgICAgICAgICAgICAgICRUcmFuc2xhdGVkV29yZCA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnU29sdXRpb24gVGltZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEhlYWRlckNvbHVtbiBlcSAnRXNjYWxhdGlvblVwZGF0ZVRpbWUnICkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdVcGRhdGUgVGltZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEhlYWRlckNvbHVtbiBlcSAnUGVuZGluZ1RpbWUnICkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdQZW5kaW5nIHRpbGwnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVyQ29tcGFueU5hbWUnICkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDdXN0b21lciBOYW1lJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdDdXN0b21lcklEJyApIHsKICAgICAgICAgICAgICAgICRUcmFuc2xhdGVkV29yZCA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnQ3VzdG9tZXIgSUQnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVyTmFtZScgKSB7CiAgICAgICAgICAgICAgICAkVHJhbnNsYXRlZFdvcmQgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0N1c3RvbWVyIFVzZXIgTmFtZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEhlYWRlckNvbHVtbiBlcSAnQ3VzdG9tZXJVc2VySUQnICkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDdXN0b21lciBVc2VyIElEJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkVHJhbnNsYXRlZFdvcmQgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJEhlYWRlckNvbHVtbik7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYWRkIHN1cnJvdW5kaW5nIGNvbnRhaW5lcgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0dlbmVyYWxPdmVydmlld0hlYWRlcicsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlclRpY2tldEhlYWRlcicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdUaWNrZXROdW1iZXInICkgewoKICAgICAgICAgICAgICAgICMgc2VuZCBkYXRhIHRvIEpTCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gJ1RpY2tldE51bWJlckNvbHVtbicgLiAkV2lkZ2V0TmFtZSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgICAgICAgICAgICAgICAgICBTb3J0aW5nQ29sdW1uID0+ICRQYXJhbXtTb3J0aW5nQ29sdW1ufSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyVGlja2V0TnVtYmVyQ29sdW1uJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBDU1MgICA9PiAkQ1NTIHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBuZXh0IEhFQURFUkNPTFVNTjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJEZpbHRlclRpdGxlICAgICA9ICRUcmFuc2xhdGVkV29yZDsKICAgICAgICAgICAgbXkgJEZpbHRlclRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnZmlsdGVyIG5vdCBhY3RpdmUnKTsKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0dldENvbHVtbkZpbHRlclNlbGVjdH0gJiYgJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9LT57JEhlYWRlckNvbHVtbn0gKSB7CiAgICAgICAgICAgICAgICAkQ1NTIC49ICcgRmlsdGVyQWN0aXZlJzsKICAgICAgICAgICAgICAgICRGaWx0ZXJUaXRsZURlc2MgPSBUcmFuc2xhdGFibGUoJ2ZpbHRlciBhY3RpdmUnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkRmlsdGVyVGl0bGVEZXNjID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRGaWx0ZXJUaXRsZURlc2MpOwogICAgICAgICAgICAkRmlsdGVyVGl0bGUgLj0gJywgJyAuICRGaWx0ZXJUaXRsZURlc2M7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW4nLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSAgICAgPT4gJEhlYWRlckNvbHVtbiAgIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIEhlYWRlck5hbWVUcmFuc2xhdGVkID0+ICRUcmFuc2xhdGVkV29yZCB8fCAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgICAgID0+ICRDU1MgICAgICAgICAgICB8fCAnJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHZlcmlmeSBpZiBjb2x1bW4gaXMgZmlsdGVyYWJsZSBhbmQgc29ydGFibGUKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFNlbGYtPntWYWxpZFNvcnRhYmxlQ29sdW1uc30tPnskSGVhZGVyQ29sdW1ufQogICAgICAgICAgICAgICAgJiYgJFNlbGYtPntWYWxpZEZpbHRlcmFibGVDb2x1bW5zfS0+eyRIZWFkZXJDb2x1bW59CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICBteSAkQ3NzOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVySUQnCiAgICAgICAgICAgICAgICAgICAgfHwgJEhlYWRlckNvbHVtbiBlcSAnUmVzcG9uc2libGUnCiAgICAgICAgICAgICAgICAgICAgfHwgJEhlYWRlckNvbHVtbiBlcSAnT3duZXInCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRDc3MgPSAnSGlkZGVuJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHZhcmlhYmxlIHRvIHNhdmUgdGhlIGZpbHRlcidzIEhUTUwgY29kZQogICAgICAgICAgICAgICAgbXkgJENvbHVtbkZpbHRlckhUTUwgPSAkU2VsZi0+X0luaXRpYWxDb2x1bW5GaWx0ZXIoCiAgICAgICAgICAgICAgICAgICAgQ29sdW1uTmFtZSA9PiAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgIENzcyAgICAgICAgPT4gJENzcywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAnQ29sdW1uRmlsdGVyU29ydCcgLiAkSGVhZGVyQ29sdW1uIC4gJFdpZGdldE5hbWUsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJ0FnZScsCiAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICAgICAgU29ydGluZ0NvbHVtbiAgICA9PiAkUGFyYW17U29ydGluZ0NvbHVtbn0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmsnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgICAgID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgICAgID0+ICRDU1MsCiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlck5hbWVUcmFuc2xhdGVkID0+ICRUcmFuc2xhdGVkV29yZCB8fCAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICBDb2x1bW5GaWx0ZXJTdHJnICAgICA9PiAkQ29sdW1uRmlsdGVySFRNTCwKICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICAgICAgPT4gJFNlbGYtPntTb3J0Qnl9IHx8ICdBZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlclRpdGxlICAgICAgICAgID0+ICRGaWx0ZXJUaXRsZSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVySUQnICkgewoKICAgICAgICAgICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gJ0N1c3RvbWVySURBdXRvY29tcGxldGUnLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBRdWVyeURlbGF5ICAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heFJlc3VsdHNEaXNwbGF5ZWQgPT4gMjAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5RdWVyeUxlbmd0aCAgICAgID0+IDIsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtDdXN0b21lcklEU2VhcmNoJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGVsc2lmICggJEhlYWRlckNvbHVtbiBlcSAnUmVzcG9uc2libGUnIHx8ICRIZWFkZXJDb2x1bW4gZXEgJ093bmVyJyApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdVc2VyQXV0b2NvbXBsZXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVlcnlEZWxheSAgICAgICAgICA9PiAxMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhSZXN1bHRzRGlzcGxheWVkID0+IDIwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWluUXVlcnlMZW5ndGggICAgICA9PiAyLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXJMaW5rVXNlclNlYXJjaCcsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyB2ZXJpZnkgaWYgY29sdW1uIGlzIGp1c3QgZmlsdGVyYWJsZQogICAgICAgICAgICBlbHNpZiAoICRTZWxmLT57VmFsaWRGaWx0ZXJhYmxlQ29sdW1uc30tPnskSGVhZGVyQ29sdW1ufSApIHsKCiAgICAgICAgICAgICAgICBteSAkQ3NzOwogICAgICAgICAgICAgICAgaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdDdXN0b21lclVzZXJJRCcgKSB7CiAgICAgICAgICAgICAgICAgICAgJENzcyA9ICdIaWRkZW4nOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgdmFyaWFibGUgdG8gc2F2ZSB0aGUgZmlsdGVyJ3MgSFRNTCBjb2RlCiAgICAgICAgICAgICAgICBteSAkQ29sdW1uRmlsdGVySFRNTCA9ICRTZWxmLT5fSW5pdGlhbENvbHVtbkZpbHRlcigKICAgICAgICAgICAgICAgICAgICBDb2x1bW5OYW1lID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgQ3NzICAgICAgICA9PiAkQ3NzLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDb2x1bW5GaWx0ZXInIC4gJEhlYWRlckNvbHVtbiAuICRXaWRnZXROYW1lLAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSA9PiAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFNlbGYtPntTb3J0Qnl9IHx8ICdBZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlcicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSAgICAgPT4gJEhlYWRlckNvbHVtbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ1NTICAgICAgICAgICAgICAgICAgPT4gJENTUywKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyTmFtZVRyYW5zbGF0ZWQgPT4gJFRyYW5zbGF0ZWRXb3JkIHx8ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbHVtbkZpbHRlclN0cmcgICAgID0+ICRDb2x1bW5GaWx0ZXJIVE1MLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlclRpdGxlICAgICAgICAgID0+ICRGaWx0ZXJUaXRsZSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVyVXNlcklEJyApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDdXN0b21lclVzZXJBdXRvY29tcGxldGUnLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBRdWVyeURlbGF5ICAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heFJlc3VsdHNEaXNwbGF5ZWQgPT4gMjAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5RdWVyeUxlbmd0aCAgICAgID0+IDIsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtDdXN0b21lclVzZXJTZWFyY2gnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdmVyaWZ5IGlmIGNvbHVtbiBpcyBqdXN0IHNvcnRhYmxlCiAgICAgICAgICAgIGVsc2lmICggJFNlbGYtPntWYWxpZFNvcnRhYmxlQ29sdW1uc30tPnskSGVhZGVyQ29sdW1ufSApIHsKCiAgICAgICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDb2x1bW5Tb3J0YWJsZScgLiAkSGVhZGVyQ29sdW1uIC4gJFdpZGdldE5hbWUsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJEhlYWRlckNvbHVtbiwKICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgICAgICAgICAgICAgICAgICBTb3J0aW5nQ29sdW1uICAgID0+ICRQYXJhbXtTb3J0aW5nQ29sdW1ufSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uTGluaycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSAgICAgPT4gJEhlYWRlckNvbHVtbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ1NTICAgICAgICAgICAgICAgICAgPT4gJENTUywKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyTmFtZVRyYW5zbGF0ZWQgPT4gJFRyYW5zbGF0ZWRXb3JkIHx8ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgID0+ICRTZWxmLT57U29ydEJ5fSB8fCAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRW1wdHknLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlck5hbWVUcmFuc2xhdGVkID0+ICRUcmFuc2xhdGVkV29yZCB8fCAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lICAgICA9PiAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICBDU1MgICAgICAgICAgICAgICAgICA9PiAkQ1NTLAogICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgRHluYW1pYyBmaWVsZHMKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJER5bmFtaWNGaWVsZENvbmZpZzsKICAgICAgICAgICAgbXkgJERGQ29sdW1uID0gJEhlYWRlckNvbHVtbjsKICAgICAgICAgICAgJERGQ29sdW1uID1+IHMvRHluYW1pY0ZpZWxkXy8vZzsKICAgICAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICBmb3IgbXkgJERGQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJERGQ29uZmlnKTsKICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICRERkNvbmZpZy0+e05hbWV9IG5lICRERkNvbHVtbjsKCiAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkQ29uZmlnID0gJERGQ29uZmlnOwogICAgICAgICAgICAgICAgbGFzdCBEWU5BTUlDRklFTEQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbmV4dCBIRUFERVJDT0xVTU4gaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgbXkgJExhYmVsID0gJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfTsKCiAgICAgICAgICAgIG15ICRUcmFuc2xhdGVkTGFiZWwgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJExhYmVsKTsKCiAgICAgICAgICAgIG15ICREeW5hbWljRmllbGROYW1lID0gJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwoKICAgICAgICAgICAgbXkgJENTUyAgICAgICAgICAgICA9ICcnOwogICAgICAgICAgICBteSAkRmlsdGVyVGl0bGUgICAgID0gJExhYmVsOwogICAgICAgICAgICBteSAkRmlsdGVyVGl0bGVEZXNjID0gVHJhbnNsYXRhYmxlKCdmaWx0ZXIgbm90IGFjdGl2ZScpOwogICAgICAgICAgICBpZiAoICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyU2VsZWN0fSAmJiBkZWZpbmVkICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyU2VsZWN0fS0+eyREeW5hbWljRmllbGROYW1lfSApIHsKICAgICAgICAgICAgICAgICRDU1MgLj0gJ0ZpbHRlckFjdGl2ZSAnOwogICAgICAgICAgICAgICAgJEZpbHRlclRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnZmlsdGVyIGFjdGl2ZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRGaWx0ZXJUaXRsZURlc2MgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJEZpbHRlclRpdGxlRGVzYyk7CiAgICAgICAgICAgICRGaWx0ZXJUaXRsZSAuPSAnLCAnIC4gJEZpbHRlclRpdGxlRGVzYzsKCiAgICAgICAgICAgICMgZ2V0IGZpZWxkIHNvcnRhYmxlIGNvbmRpdGlvbgogICAgICAgICAgICBteSAkSXNTb3J0YWJsZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNTb3J0YWJsZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNldCB0aXRsZQogICAgICAgICAgICBteSAkVGl0bGUgPSAkTGFiZWw7CgogICAgICAgICAgICAjIGFkZCBzdXJyb3VuZGluZyBjb250YWluZXIKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdHZW5lcmFsT3ZlcnZpZXdIZWFkZXInLAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJUaWNrZXRIZWFkZXInLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICgkSXNTb3J0YWJsZSkgewogICAgICAgICAgICAgICAgbXkgJFRpdGxlRGVzYyA9ICcnOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRTZWxmLT57U29ydEJ5fQogICAgICAgICAgICAgICAgICAgICYmICggJFNlbGYtPntTb3J0Qnl9IGVxICggJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9ICkgKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gZXEgJ0Rvd24nICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ1NTIC49ICcgU29ydERlc2NlbmRpbmdMYXJnZSc7CiAgICAgICAgICAgICAgICAgICAgICAgICRUaXRsZURlc2MgPSBUcmFuc2xhdGFibGUoJ3NvcnRlZCBkZXNjZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkQ1NTIC49ICcgU29ydEFzY2VuZGluZ0xhcmdlJzsKICAgICAgICAgICAgICAgICAgICAgICAgJFRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnc29ydGVkIGFzY2VuZGluZycpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJFRpdGxlRGVzYyA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgkVGl0bGVEZXNjKTsKICAgICAgICAgICAgICAgICAgICAkVGl0bGUgLj0gJywgJyAuICRUaXRsZURlc2M7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJER5bmFtaWNGaWVsZE5hbWUgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgPT4gJENTUyAgICAgICAgICAgICAgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBjaGVjayBpZiB0aGUgZHluYW1pYyBmaWVsZCBpcyBzb3J0YWJsZSBhbmQgZmlsdGVyYWJsZSAoc29ydGFibGUgY2hlY2sgd2FzIG1hZGUgYmVmb3JlKQogICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e1ZhbGlkRmlsdGVyYWJsZUNvbHVtbnN9LT57JER5bmFtaWNGaWVsZE5hbWV9ICkgewoKICAgICAgICAgICAgICAgICAgICAjIHZhcmlhYmxlIHRvIHNhdmUgdGhlIGZpbHRlcidzIEhUTUwgY29kZQogICAgICAgICAgICAgICAgICAgIG15ICRDb2x1bW5GaWx0ZXJIVE1MID0gJFNlbGYtPl9Jbml0aWFsQ29sdW1uRmlsdGVyKAogICAgICAgICAgICAgICAgICAgICAgICBDb2x1bW5OYW1lID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCAgICAgID0+ICRMYWJlbCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gJ0NvbHVtbkZpbHRlclNvcnQnIC4gJER5bmFtaWNGaWVsZE5hbWUgLiAkV2lkZ2V0TmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSA9PiAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFNlbGYtPntTb3J0Qnl9IHx8ICdBZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydGluZ0NvbHVtbiAgICA9PiAkUGFyYW17U29ydGluZ0NvbHVtbn0sCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBvdXRwdXQgc29ydGFibGUgYW5kIGZpbHRlcmFibGUgZHluYW1pYyBmaWVsZAogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRmlsdGVyTGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSAgICAgPT4gJER5bmFtaWNGaWVsZE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1MgICAgICAgICAgICAgICAgICA9PiAkQ1NTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyTmFtZVRyYW5zbGF0ZWQgPT4gJFRyYW5zbGF0ZWRMYWJlbCB8fCAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbHVtbkZpbHRlclN0cmcgICAgID0+ICRDb2x1bW5GaWx0ZXJIVE1MLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgID0+ICRTZWxmLT57U29ydEJ5fSB8fCAnQWdlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXJUaXRsZSAgICAgICAgICA9PiAkRmlsdGVyVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIG90aGVyd2lzZSB0aGUgZHluYW1pYyBmaWVsZCBpcyBvbmx5IHNvcnRhYmxlIChzb3J0YWJsZSBjaGVjayB3YXMgbWFkZSBiZWZvcmUpCiAgICAgICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDb2x1bW5Tb3J0YWJsZScgLiAkRHluYW1pY0ZpZWxkTmFtZSAuICRXaWRnZXROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJER5bmFtaWNGaWVsZE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3J0aW5nQ29sdW1uICAgID0+ICRQYXJhbXtTb3J0aW5nQ29sdW1ufSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIG91dHB1dCBzb3J0YWJsZSBkeW5hbWljIGZpZWxkCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5MaW5rJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lICAgICA9PiAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgICAgID0+ICRDU1MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJOYW1lVHJhbnNsYXRlZCA9PiAkVHJhbnNsYXRlZExhYmVsIHx8ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgID0+ICRTZWxmLT57U29ydEJ5fSB8fCAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXJUaXRsZSAgICAgICAgICA9PiAkRmlsdGVyVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpZiB0aGUgZHluYW1pYyBmaWVsZCB3YXMgbm90IHNvcnRhYmxlIChjaGVjayB3YXMgbWFkZSBhbmQgZmFpbCBiZWZvcmUpCiAgICAgICAgICAgICMgaXQgbWlnaHQgYmUgZmlsdGVyYWJsZQogICAgICAgICAgICBlbHNpZiAoICRTZWxmLT57VmFsaWRGaWx0ZXJhYmxlQ29sdW1uc30tPnskRHluYW1pY0ZpZWxkTmFtZX0gKSB7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJER5bmFtaWNGaWVsZE5hbWUgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgPT4gJENTUyAgICAgICAgICAgICAgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgdmFyaWFibGUgdG8gc2F2ZSB0aGUgZmlsdGVyJ3MgSFRNTCBjb2RlCiAgICAgICAgICAgICAgICBteSAkQ29sdW1uRmlsdGVySFRNTCA9ICRTZWxmLT5fSW5pdGlhbENvbHVtbkZpbHRlcigKICAgICAgICAgICAgICAgICAgICBDb2x1bW5OYW1lID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgIExhYmVsICAgICAgPT4gJExhYmVsLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDb2x1bW5GaWx0ZXInIC4gJER5bmFtaWNGaWVsZE5hbWUgLiAkV2lkZ2V0TmFtZSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJER5bmFtaWNGaWVsZE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJ0FnZScsCiAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIG91dHB1dCBmaWx0ZXJhYmxlIChub3Qgc29ydGFibGUpIGR5bmFtaWMgZmllbGQKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgICAgID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBDU1MgICAgICAgICAgICAgICAgICA9PiAkQ1NTLAogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJOYW1lVHJhbnNsYXRlZCA9PiAkVHJhbnNsYXRlZExhYmVsIHx8ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBDb2x1bW5GaWx0ZXJTdHJnICAgICA9PiAkQ29sdW1uRmlsdGVySFRNTCwKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXJUaXRsZSAgICAgICAgICA9PiAkRmlsdGVyVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgb3RoZXJ3aXNlIHRoZSBmaWVsZCBpcyBub3QgZmlsdGVyYWJsZSBhbmQgbm90IHNvcnRhYmxlCiAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW4nLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICREeW5hbWljRmllbGROYW1lIHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBDU1MgICAgICAgICAgICAgID0+ICRDU1MgICAgICAgICAgICAgIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgb3V0cHV0IHBsYWluIGR5bmFtaWMgZmllbGQgaGVhZGVyIChub3QgZmlsdGVyYWJsZSwgbm90IHNvcnRhYmxlKQogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkVtcHR5JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJOYW1lVHJhbnNsYXRlZCA9PiAkVHJhbnNsYXRlZExhYmVsIHx8ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lICAgICA9PiAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ1NTICAgICAgICAgICAgICAgICAgPT4gJENTUywKICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgc2hvdyB0aWNrZXRzCiAgICBteSAkQ291bnQgPSAwOwoKICAgICMgaWYgdGhlIHNlYXJjaCB0ZW1wbGF0ZSBpcyBpbnZhbGlkIChudWxsIG9yIGRlbGV0ZWQpIGxpc3Qgbm8gdGlja2V0cwogICAgaWYgKCAhJFRpY2tldFNlYXJjaHtJbnZhbGlkU2VhcmNoVGVtcGxhdGV9ICkgewoKICAgICAgICBUSUNLRVRJRDoKICAgICAgICBmb3IgbXkgJFRpY2tldElEICggQHskVGlja2V0SURzfSApIHsKICAgICAgICAgICAgJENvdW50Kys7CiAgICAgICAgICAgIG5leHQgVElDS0VUSUQgaWYgJENvdW50IDwgJFNlbGYtPntTdGFydEhpdH07CiAgICAgICAgICAgIG15ICVUaWNrZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAwLAogICAgICAgICAgICAgICAgU2lsZW50ICAgICAgICA9PiAxCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICElVGlja2V0OwoKICAgICAgICAgICAgIyBzZXQgYSBkZWZhdWx0IHRpdGxlIGlmIHRpY2tldCBoYXMgbm8gdGl0bGUKICAgICAgICAgICAgaWYgKCAhJFRpY2tldHtUaXRsZX0gKSB7CiAgICAgICAgICAgICAgICAkVGlja2V0e1RpdGxlfSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAnVGhpcyB0aWNrZXQgaGFzIG5vIHRpdGxlIG9yIHN1YmplY3QnCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkV2hvbGVUaXRsZSA9ICRUaWNrZXR7VGl0bGV9IHx8ICcnOwogICAgICAgICAgICAkVGlja2V0e1RpdGxlfSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFN1YmplY3RDbGVhbigKICAgICAgICAgICAgICAgIFRpY2tldE51bWJlciA9PiAkVGlja2V0e1RpY2tldE51bWJlcn0sCiAgICAgICAgICAgICAgICBTdWJqZWN0ICAgICAgPT4gJFRpY2tldHtUaXRsZX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNyZWF0ZSBodW1hbiBhZ2UKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntUaW1lfSBuZSAnQWdlJyApIHsKICAgICAgICAgICAgICAgICRUaWNrZXR7VGltZX0gPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckFnZSgKICAgICAgICAgICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgPT4gJFRpY2tldHsgJFNlbGYtPntDb25maWd9LT57VGltZX0gfSwKICAgICAgICAgICAgICAgICAgICBUaW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAgICAgICAgICAgICAgICAgICBTcGFjZSAgICAgICAgICAgICAgPT4gJyAnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRUaWNrZXR7VGltZX0gPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckFnZSgKICAgICAgICAgICAgICAgICAgICBBZ2UgICA9PiAkVGlja2V0eyAkU2VsZi0+e0NvbmZpZ30tPntUaW1lfSB9LAogICAgICAgICAgICAgICAgICAgIFNwYWNlID0+ICcgJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2hvdyB0aWNrZXQKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljUm93JywKICAgICAgICAgICAgICAgIERhdGEgPT4gXCVUaWNrZXQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNob3cgdGlja2V0IGZsYWdzCiAgICAgICAgICAgIG15IEBUaWNrZXRNZXRhSXRlbXMgPSAkTGF5b3V0T2JqZWN0LT5UaWNrZXRNZXRhSXRlbXMoCiAgICAgICAgICAgICAgICBUaWNrZXQgPT4gXCVUaWNrZXQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGZvciBteSAkSXRlbSAoQFRpY2tldE1ldGFJdGVtcykgewoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0dlbmVyYWxPdmVydmlld1JvdycsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY1Jvd01ldGEnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgaWYgKCRJdGVtKSB7CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNSb3dNZXRhSW1hZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+ICRJdGVtLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2F2ZSBjb2x1bW4gY29udGVudAogICAgICAgICAgICBteSAkRGF0YVZhbHVlOwoKICAgICAgICAgICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgICAgICAgICAgbXkgJEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgICAgICAgICAjIHNob3cgYWxsIG5lZWRlZCBjb2x1bW5zCiAgICAgICAgICAgIENPTFVNTjoKICAgICAgICAgICAgZm9yIG15ICRDb2x1bW4gKEBDb2x1bW5zKSB7CgogICAgICAgICAgICAgICAgIyBza2lwIEN1c3RvbWVySUQgaWYgQ3VzdG9tZXIgSW5mb3JtYXRpb24gQ2VudGVyCiAgICAgICAgICAgICAgICBpZiAoICRTZWxmLT57QWN0aW9ufSBlcSAnQWdlbnRDdXN0b21lckluZm9ybWF0aW9uQ2VudGVyJyAmJiAkQ29sdW1uIGVxICdDdXN0b21lcklEJyApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IENPTFVNTjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoICRDb2x1bW4gIX4gbXtcQSBEeW5hbWljRmllbGRffXhtcyApIHsKCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0dlbmVyYWxPdmVydmlld1JvdycsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY1RpY2tldENvbHVtbicsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgbXkgJEJsb2NrVHlwZSA9ICcnOwogICAgICAgICAgICAgICAgICAgIG15ICRDU1NDbGFzcyAgPSAnJzsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkQ29sdW1uIGVxICdUaWNrZXROdW1iZXInICkgewogICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNUaWNrZXROdW1iZXInLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJVRpY2tldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSA9PiAkVGlja2V0e1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgQ09MVU1OOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRDb2x1bW4gZXEgJ0VzY2FsYXRpb25UaW1lJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJUVzY2FsYXRpb25EYXRhOwogICAgICAgICAgICAgICAgICAgICAgICAkRXNjYWxhdGlvbkRhdGF7RXNjYWxhdGlvblRpbWV9ICAgICAgICAgICAgPSAkVGlja2V0e0VzY2FsYXRpb25UaW1lfTsKICAgICAgICAgICAgICAgICAgICAgICAgJEVzY2FsYXRpb25EYXRhe0VzY2FsYXRpb25EZXN0aW5hdGlvbkRhdGV9ID0gJFRpY2tldHtFc2NhbGF0aW9uRGVzdGluYXRpb25EYXRlfTsKCiAgICAgICAgICAgICAgICAgICAgICAgICRFc2NhbGF0aW9uRGF0YXtFc2NhbGF0aW9uVGltZUh1bWFufSA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyQWdlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgID0+ICRFc2NhbGF0aW9uRGF0YXtFc2NhbGF0aW9uVGltZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgICAgICAgICAgICAgICAgICkgfHwgJy0nOwogICAgICAgICAgICAgICAgICAgICAgICAkRXNjYWxhdGlvbkRhdGF7RXNjYWxhdGlvblRpbWVXb3JraW5nVGltZX0gPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckFnZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICA9PiAkRXNjYWxhdGlvbkRhdGF7RXNjYWxhdGlvblRpbWVXb3JraW5nVGltZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZGVmaW5lZCAkVGlja2V0e0VzY2FsYXRpb25UaW1lfSAmJiAkVGlja2V0e0VzY2FsYXRpb25UaW1lfSA8IDYwICogNjAgKiAxICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEVzY2FsYXRpb25EYXRhe0VzY2FsYXRpb25DbGFzc30gPSAnV2FybmluZyc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRXNjYWxhdGlvblRpbWUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JUVzY2FsYXRpb25EYXRhfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBDT0xVTU47CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJENvbHVtbiBlcSAnQWdlJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJERhdGFWYWx1ZSA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyQWdlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdlICAgPT4gJFRpY2tldHtBZ2V9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BhY2UgPT4gJyAnLAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRDb2x1bW4gZXEgJ0VzY2FsYXRpb25Tb2x1dGlvblRpbWUnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQmxvY2tUeXBlID0gJ0VzY2FsYXRpb24nOwogICAgICAgICAgICAgICAgICAgICAgICAkRGF0YVZhbHVlID0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJBZ2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgPT4gJFRpY2tldHtTb2x1dGlvblRpbWV9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZGVmaW5lZCAkVGlja2V0e1NvbHV0aW9uVGltZX0gJiYgJFRpY2tldHtTb2x1dGlvblRpbWV9IDwgNjAgKiA2MCAqIDEgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ1NTQ2xhc3MgPSAnV2FybmluZyc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkQ29sdW1uIGVxICdFc2NhbGF0aW9uUmVzcG9uc2VUaW1lJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEJsb2NrVHlwZSA9ICdFc2NhbGF0aW9uJzsKICAgICAgICAgICAgICAgICAgICAgICAgJERhdGFWYWx1ZSA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyQWdlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgID0+ICRUaWNrZXR7Rmlyc3RSZXNwb25zZVRpbWV9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZWQgJFRpY2tldHtGaXJzdFJlc3BvbnNlVGltZX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICRUaWNrZXR7Rmlyc3RSZXNwb25zZVRpbWV9IDwgNjAgKiA2MCAqIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENTU0NsYXNzID0gJ1dhcm5pbmcnOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJENvbHVtbiBlcSAnRXNjYWxhdGlvblVwZGF0ZVRpbWUnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQmxvY2tUeXBlID0gJ0VzY2FsYXRpb24nOwogICAgICAgICAgICAgICAgICAgICAgICAkRGF0YVZhbHVlID0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJBZ2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgPT4gJFRpY2tldHtVcGRhdGVUaW1lfSB8fCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGltZVNob3dBbHdheXNMb25nID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcGFjZSAgICAgICAgICAgICAgPT4gJyAnLAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGRlZmluZWQgJFRpY2tldHtVcGRhdGVUaW1lfSAmJiAkVGlja2V0e1VwZGF0ZVRpbWV9IDwgNjAgKiA2MCAqIDEgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ1NTQ2xhc3MgPSAnV2FybmluZyc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkQ29sdW1uIGVxICdQZW5kaW5nVGltZScgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRCbG9ja1R5cGUgPSAnRXNjYWxhdGlvbic7CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRhVmFsdWUgPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckFnZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnZSAgID0+ICRUaWNrZXR7J1VudGlsVGltZSd9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BhY2UgPT4gJyAnLAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGRlZmluZWQgJFRpY2tldHtVbnRpbFRpbWV9ICYmICRUaWNrZXR7VW50aWxUaW1lfSA8IC0xICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENTU0NsYXNzID0gJ1dhcm5pbmcnOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJENvbHVtbiBlcSAnT3duZXInICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBnZXQgb3duZXIgaW5mbwogICAgICAgICAgICAgICAgICAgICAgICBteSAlT3duZXJJbmZvID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRUaWNrZXR7T3duZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRhVmFsdWUgPSAkT3duZXJJbmZveydVc2VyRnVsbG5hbWUnfTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkQ29sdW1uIGVxICdSZXNwb25zaWJsZScgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGdldCByZXNwb25zaWJsZSBpbmZvCiAgICAgICAgICAgICAgICAgICAgICAgIG15ICVSZXNwb25zaWJsZUluZm8gPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFRpY2tldHtSZXNwb25zaWJsZUlEfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgJERhdGFWYWx1ZSA9ICRSZXNwb25zaWJsZUluZm97J1VzZXJGdWxsbmFtZSd9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICRDb2x1bW4gZXEgJ1N0YXRlJwogICAgICAgICAgICAgICAgICAgICAgICB8fCAkQ29sdW1uIGVxICdMb2NrJwogICAgICAgICAgICAgICAgICAgICAgICB8fCAkQ29sdW1uIGVxICdQcmlvcml0eScKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEJsb2NrVHlwZSA9ICdUcmFuc2xhdGFibGUnOwogICAgICAgICAgICAgICAgICAgICAgICAkRGF0YVZhbHVlID0gJFRpY2tldHskQ29sdW1ufTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkQ29sdW1uIGVxICdDcmVhdGVkJyB8fCAkQ29sdW1uIGVxICdDaGFuZ2VkJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEJsb2NrVHlwZSA9ICdUaW1lJzsKICAgICAgICAgICAgICAgICAgICAgICAgJERhdGFWYWx1ZSA9ICRUaWNrZXR7JENvbHVtbn07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJENvbHVtbiBlcSAnQ3VzdG9tZXJOYW1lJyApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgZ2V0IGN1c3RvbWVyIG5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJEN1c3RvbWVyTmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkVGlja2V0e0N1c3RvbWVyVXNlcklEfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDdXN0b21lck5hbWUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyktPkN1c3RvbWVyTmFtZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRpY2tldHtDdXN0b21lclVzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRhVmFsdWUgPSAkQ3VzdG9tZXJOYW1lOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRDb2x1bW4gZXEgJ0N1c3RvbWVyQ29tcGFueU5hbWUnICkgewogICAgICAgICAgICAgICAgICAgICAgICBteSAlQ3VzdG9tZXJDb21wYW55RGF0YTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkVGlja2V0e0N1c3RvbWVySUR9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJUN1c3RvbWVyQ29tcGFueURhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJDb21wYW55JyktPkN1c3RvbWVyQ29tcGFueUdldCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21lcklEID0+ICRUaWNrZXR7Q3VzdG9tZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRhVmFsdWUgPSAkQ3VzdG9tZXJDb21wYW55RGF0YXtDdXN0b21lckNvbXBhbnlOYW1lfTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRhVmFsdWUgPSAkVGlja2V0eyRDb2x1bW59OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkQ29sdW1uIGVxICdUaXRsZScgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAiQ29udGVudExhcmdlVGlja2V0VGl0bGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICA9PiAiJERhdGFWYWx1ZSAiIHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdob2xlVGl0bGUgPT4gJFdob2xlVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgICA9PiAkQ1NTQ2xhc3MgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0NvbHVtbiRCbG9ja1R5cGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJpY1ZhbHVlID0+ICREYXRhVmFsdWUgfHwgJy0nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAkQ1NTQ2xhc3MgIHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgRHluYW1pYyBmaWVsZHMKICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRDb25maWc7CiAgICAgICAgICAgICAgICAgICAgbXkgJERGQ29sdW1uID0gJENvbHVtbjsKICAgICAgICAgICAgICAgICAgICAkREZDb2x1bW4gPX4gcy9EeW5hbWljRmllbGRfLy9nOwogICAgICAgICAgICAgICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJERGQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkREZDb25maWcpOwogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAkREZDb25maWctPntOYW1lfSBuZSAkREZDb2x1bW47CgogICAgICAgICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkQ29uZmlnID0gJERGQ29uZmlnOwogICAgICAgICAgICAgICAgICAgICAgICBsYXN0IERZTkFNSUNGSUVMRDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgbmV4dCBDT0xVTU4gaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgICAgICAgICAjIGdldCBmaWVsZCB2YWx1ZQogICAgICAgICAgICAgICAgICAgIG15ICRWYWx1ZSA9ICRCYWNrZW5kT2JqZWN0LT5WYWx1ZUdldCgKICAgICAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgbXkgJFZhbHVlU3RyZyA9ICRCYWNrZW5kT2JqZWN0LT5EaXNwbGF5VmFsdWVSZW5kZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJFZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZU1heENoYXJzICAgICAgPT4gMjAsCiAgICAgICAgICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBpZiAoICRWYWx1ZVN0cmctPntMaW5rfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0ZpZWxkTGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICAgICAgICAgPT4gJFZhbHVlU3RyZy0+e1ZhbHVlfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICAgICAgICAgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5rICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFZhbHVlU3RyZy0+e0xpbmt9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSA9PiAkVmFsdWVTdHJnLT57VGl0bGV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0R5bmFtaWNGaWVsZFBsYWluJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRWYWx1ZVN0cmctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgc2hvdyAibm9uZSIgaWYgbm8gdGlja2V0IGlzIGF2YWlsYWJsZSBvciBpZiB0aGUgc2VhcmNoIHRlbXBsYXRlIGlzIGludmFsaWQgKG51bGwgb3IgZGVsZXRlZCkKICAgIGlmICggJFRpY2tldFNlYXJjaHtJbnZhbGlkU2VhcmNoVGVtcGxhdGV9IHx8ICEkVGlja2V0SURzIHx8ICFAeyRUaWNrZXRJRHN9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljTm9uZScsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIGZvciByZWZyZXNoIHRpbWUKICAgIG15ICRSZWZyZXNoID0gJyc7CiAgICBpZiAoICRTZWxmLT57VXNlclJlZnJlc2hUaW1lfSApIHsKICAgICAgICAkUmVmcmVzaCA9IDYwICogJFNlbGYtPntVc2VyUmVmcmVzaFRpbWV9OwoKICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1dpZGdldFJlZnJlc2gnIC4gJFdpZGdldE5hbWUsCiAgICAgICAgICAgIFZhbHVlID0+IHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICBOYW1lSFRNTCAgICAgICA9PiAkV2lkZ2V0TmFtZSwKICAgICAgICAgICAgICAgIFJlZnJlc2hUaW1lICAgID0+ICRSZWZyZXNoLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJJRCAgICAgPT4gJFBhcmFte0N1c3RvbWVySUR9LAogICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJFBhcmFte0N1c3RvbWVyVXNlcklEfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgZm9yIGFjdGl2ZSBmaWx0ZXJzIGFuZCBhZGQgYSAncmVtb3ZlIGZpbHRlcnMnIGJ1dHRvbiB0byB0aGUgd2lkZ2V0IGhlYWRlcgogICAgbXkgJEZpbHRlckFjdGl2ZSA9IDA7CiAgICBpZiAoICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyU2VsZWN0fSAmJiBJc0hhc2hSZWZXaXRoRGF0YSggJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9ICkgKSB7CiAgICAgICAgJEZpbHRlckFjdGl2ZSA9IDE7CiAgICB9CgogICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICBLZXkgICA9PiAnV2lkZ2V0Q29udGFpbmVyJyAuICRXaWRnZXROYW1lLAogICAgICAgIFZhbHVlID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgQ3VzdG9tZXJJRCAgICAgPT4gJFBhcmFte0N1c3RvbWVySUR9LAogICAgICAgICAgICBDdXN0b21lclVzZXJJRCA9PiAkUGFyYW17Q3VzdG9tZXJVc2VySUR9LAogICAgICAgICAgICBGaWx0ZXJBY3RpdmUgICA9PiAkRmlsdGVyQWN0aXZlLAogICAgICAgICAgICBTb3J0QnkgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJ0FnZScsCiAgICAgICAgICAgIE9yZGVyQnkgICAgICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgIFNvcnRpbmdDb2x1bW4gID0+ICRQYXJhbXtTb3J0aW5nQ29sdW1ufSwKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkQ29udGVudCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50RGFzaGJvYXJkVGlja2V0UHJvZmlsZVNlYXJjaCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJXsgJFNlbGYtPntDb25maWd9IH0sCiAgICAgICAgICAgIE5hbWUgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgJXskU3VtbWFyeX0sCiAgICAgICAgICAgIEZpbHRlclZhbHVlICAgID0+ICRTZWxmLT57RmlsdGVyfSwKICAgICAgICAgICAgQ3VzdG9tZXJJRCAgICAgPT4gJFNlbGYtPntDdXN0b21lcklEfSwKICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJFNlbGYtPntDdXN0b21lclVzZXJJRH0sCiAgICAgICAgfSwKICAgICAgICBBSkFYID0+ICRQYXJhbXtBSkFYfSwKICAgICk7CgogICAgcmV0dXJuICRDb250ZW50Owp9CgpzdWIgX0luaXRpYWxDb2x1bW5GaWx0ZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgISRQYXJhbXtDb2x1bW5OYW1lfTsKICAgIHJldHVybiBpZiAhJFNlbGYtPntWYWxpZEZpbHRlcmFibGVDb2x1bW5zfS0+eyAkUGFyYW17Q29sdW1uTmFtZX0gfTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIG15ICRMYWJlbCA9ICRQYXJhbXtMYWJlbH0gfHwgJFBhcmFte0NvbHVtbk5hbWV9OwogICAgJExhYmVsID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRMYWJlbCk7CgogICAgIyBzZXQgZml4ZWQgdmFsdWVzCiAgICBteSAkRGF0YSA9IFsKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICcnLAogICAgICAgICAgICBWYWx1ZSA9PiB1YyAkTGFiZWwsCiAgICAgICAgfSwKICAgIF07CgogICAgIyBkZWZpbmUgaWYgY29sdW1uIGZpbHRlciB2YWx1ZXMgc2hvdWxkIGJlIHRyYW5zbGF0YWJsZQogICAgbXkgJFRyYW5zbGF0aW9uT3B0aW9uID0gMDsKCiAgICBpZiAoCiAgICAgICAgJFBhcmFte0NvbHVtbk5hbWV9IGVxICdTdGF0ZScKICAgICAgICB8fCAkUGFyYW17Q29sdW1uTmFtZX0gZXEgJ0xvY2snCiAgICAgICAgfHwgJFBhcmFte0NvbHVtbk5hbWV9IGVxICdQcmlvcml0eScKICAgICAgICB8fCAkUGFyYW17Q29sdW1uTmFtZX0gZXEgJ1NMQScKICAgICAgICB8fCAkUGFyYW17Q29sdW1uTmFtZX0gZXEgJ1R5cGUnCiAgICAgICAgKQogICAgewogICAgICAgICRUcmFuc2xhdGlvbk9wdGlvbiA9IDE7CiAgICB9CgogICAgbXkgJENsYXNzID0gJ0NvbHVtbkZpbHRlcic7CiAgICBpZiAoICRQYXJhbXtDc3N9ICkgewogICAgICAgICRDbGFzcyAuPSAnICcgLiAkUGFyYW17Q3NzfTsKICAgIH0KCiAgICAjIGJ1aWxkIHNlbGVjdCBIVE1MCiAgICBteSAkQ29sdW1uRmlsdGVySFRNTCA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIE5hbWUgICAgICAgID0+ICdDb2x1bW5GaWx0ZXInIC4gJFBhcmFte0NvbHVtbk5hbWV9IC4gJFNlbGYtPntOYW1lfSwKICAgICAgICBEYXRhICAgICAgICA9PiAkRGF0YSwKICAgICAgICBDbGFzcyAgICAgICA9PiAkQ2xhc3MsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gJFRyYW5zbGF0aW9uT3B0aW9uLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICcnLAogICAgKTsKICAgIHJldHVybiAkQ29sdW1uRmlsdGVySFRNTDsKfQoKc3ViIF9HZXRDb2x1bW5WYWx1ZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgIUlzU3RyaW5nV2l0aERhdGEoICRQYXJhbXtIZWFkZXJDb2x1bW59ICk7CgogICAgbXkgJEhlYWRlckNvbHVtbiA9ICRQYXJhbXtIZWFkZXJDb2x1bW59OwogICAgbXkgJUNvbHVtbkZpbHRlclZhbHVlczsKICAgIG15ICRUaWNrZXRJRHM7CgogICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtPcmlnaW5hbFRpY2tldElEc30gKSApIHsKICAgICAgICAkVGlja2V0SURzID0gJFBhcmFte09yaWdpbmFsVGlja2V0SURzfTsKICAgIH0KCiAgICBpZiAoICRIZWFkZXJDb2x1bW4gIX4gbS9eRHluYW1pY0ZpZWxkXy8gKSB7CiAgICAgICAgbXkgJEZ1bmN0aW9uTmFtZSA9ICRIZWFkZXJDb2x1bW4gLiAnRmlsdGVyVmFsdWVzR2V0JzsKICAgICAgICBpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVySUQnICkgewogICAgICAgICAgICAkRnVuY3Rpb25OYW1lID0gJ0N1c3RvbWVyRmlsdGVyVmFsdWVzR2V0JzsKICAgICAgICB9CgogICAgICAgICRDb2x1bW5GaWx0ZXJWYWx1ZXN7JEhlYWRlckNvbHVtbn0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpDb2x1bW5GaWx0ZXInKS0+JEZ1bmN0aW9uTmFtZSgKICAgICAgICAgICAgVGlja2V0SURzICAgID0+ICRUaWNrZXRJRHMsCiAgICAgICAgICAgIEhlYWRlckNvbHVtbiA9PiAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKCiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgIG15ICRGaWVsZE5hbWUgPSAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CgogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAkRmllbGROYW1lIG5lICRIZWFkZXJDb2x1bW47CgogICAgICAgICAgICAjIGdldCBkeW5hbWljIGZpZWxkIGJhY2tlbmQgb2JqZWN0CiAgICAgICAgICAgIG15ICRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgICAgICAgICAgbXkgJElzRmlsdHJhYmxlID0gJEJhY2tlbmRPYmplY3QtPkhhc0JlaGF2aW9yKAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzRmlsdHJhYmxlJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkSXNGaWx0cmFibGU7CgogICAgICAgICAgICAkU2VsZi0+e1ZhbGlkRmlsdGVyYWJsZUNvbHVtbnN9LT57JEhlYWRlckNvbHVtbn0gPSAkSXNGaWx0cmFibGU7CiAgICAgICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCRUaWNrZXRJRHMpICkgewoKICAgICAgICAgICAgICAgICMgZ2V0IHRoZSBoaXN0b3JpY2FsIHZhbHVlcyBmb3IgdGhlIGZpZWxkCiAgICAgICAgICAgICAgICAkQ29sdW1uRmlsdGVyVmFsdWVzeyRIZWFkZXJDb2x1bW59ID0gJEJhY2tlbmRPYmplY3QtPkNvbHVtbkZpbHRlclZhbHVlc0dldCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEcyAgICAgICAgICA9PiAkVGlja2V0SURzLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIGdldCBQb3NzaWJsZVZhbHVlcwogICAgICAgICAgICAgICAgJENvbHVtbkZpbHRlclZhbHVlc3skSGVhZGVyQ29sdW1ufSA9ICRCYWNrZW5kT2JqZWN0LT5Qb3NzaWJsZVZhbHVlc0dldCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGFzdCBEWU5BTUlDRklFTEQ7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBcJUNvbHVtbkZpbHRlclZhbHVlczsKfQoKIyA9b3ZlcgoKIyA9aGVhZDIgX0NvbHVtbkZpbHRlckpTT04oKQoKIyAgICAgY3JlYXRlcyBhIEpTT04gc2VsZWN0IGZpbHRlciBmb3IgY29sdW1uIGhlYWRlcgoKIyAgICAgbXkgJENvbHVtbkZpbHRlckpTT04gPSAkVGlja2V0T3ZlcnZpZXdTbWFsbE9iamVjdC0+X0NvbHVtbkZpbHRlckpTT04oCiMgICAgICAgICBDb2x1bW5OYW1lID0+ICdRdWV1ZScsCiMgICAgICAgICBMYWJlbCAgICAgID0+ICdRdWV1ZScsCiMgICAgICAgICBDb2x1bW5WYWx1ZXMgPT4gewojICAgICAgICAgICAgIDEgPT4gJ1Bvc3RNYXN0ZXInLAojICAgICAgICAgICAgIDIgPT4gJ0p1bmsnLAojICAgICAgICAgfSwKIyAgICAgICAgIFNlbGVjdGVkVmFsdWUgJzEnLAojICAgICApOwoKIyA9Y3V0CgpzdWIgX0NvbHVtbkZpbHRlckpTT04gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgISRQYXJhbXtDb2x1bW5OYW1lfTsKICAgIHJldHVybiBpZiAhJFNlbGYtPntWYWxpZEZpbHRlcmFibGVDb2x1bW5zfS0+eyAkUGFyYW17Q29sdW1uTmFtZX0gfTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIG15ICRMYWJlbCA9ICRQYXJhbXtMYWJlbH07CiAgICAkTGFiZWwgPX4gc3sgXEEgRHluYW1pY0ZpZWxkXyB9e31neG1zOwogICAgJExhYmVsID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRMYWJlbCk7CgogICAgIyBzZXQgZml4ZWQgdmFsdWVzCiAgICBteSAkRGF0YSA9IFsKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdEZWxldGVGaWx0ZXInLAogICAgICAgICAgICBWYWx1ZSA9PiB1YyAkTGFiZWwsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgICAgID0+ICctJywKICAgICAgICAgICAgVmFsdWUgICAgPT4gJy0nLAogICAgICAgICAgICBEaXNhYmxlZCA9PiAxLAogICAgICAgIH0sCiAgICBdOwoKICAgIGlmICggJFBhcmFte0NvbHVtblZhbHVlc30gJiYgcmVmICRQYXJhbXtDb2x1bW5WYWx1ZXN9IGVxICdIQVNIJyApIHsKCiAgICAgICAgbXkgJVZhbHVlcyA9ICV7ICRQYXJhbXtDb2x1bW5WYWx1ZXN9IH07CgogICAgICAgICMgU2V0IHBvc3NpYmxlIHZhbHVlcy4KICAgICAgICBmb3IgbXkgJFZhbHVlS2V5ICggc29ydCB7IGxjICRWYWx1ZXN7JGF9IGNtcCBsYyAkVmFsdWVzeyRifSB9IGtleXMgJVZhbHVlcyApIHsKICAgICAgICAgICAgcHVzaCBAeyREYXRhfSwgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJFZhbHVlS2V5LAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlc3skVmFsdWVLZXl9CiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgZGVmaW5lIGlmIGNvbHVtbiBmaWx0ZXIgdmFsdWVzIHNob3VsZCBiZSB0cmFuc2xhdGFibGUKICAgIG15ICRUcmFuc2xhdGlvbk9wdGlvbiA9IDA7CgogICAgaWYgKAogICAgICAgICRQYXJhbXtDb2x1bW5OYW1lfSBlcSAnU3RhdGUnCiAgICAgICAgfHwgJFBhcmFte0NvbHVtbk5hbWV9IGVxICdMb2NrJwogICAgICAgIHx8ICRQYXJhbXtDb2x1bW5OYW1lfSBlcSAnUHJpb3JpdHknCiAgICAgICAgfHwgJFBhcmFte0NvbHVtbk5hbWV9IGVxICdTTEEnCiAgICAgICAgfHwgJFBhcmFte0NvbHVtbk5hbWV9IGVxICdUeXBlJwogICAgICAgICkKICAgIHsKICAgICAgICAkVHJhbnNsYXRpb25PcHRpb24gPSAxOwogICAgfQoKICAgICMgYnVpbGQgc2VsZWN0IEhUTUwKICAgIG15ICRKU09OID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb25KU09OKAogICAgICAgIFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdDb2x1bW5GaWx0ZXInIC4gJFBhcmFte0NvbHVtbk5hbWV9IC4gJFBhcmFte0Rhc2hib2FyZE5hbWV9LAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+ICREYXRhLAogICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdDb2x1bW5GaWx0ZXInLAogICAgICAgICAgICAgICAgU29ydCAgICAgICAgID0+ICdBbHBoYW51bWVyaWNLZXknLAogICAgICAgICAgICAgICAgVHJlZVZpZXcgICAgID0+IDEsCiAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJFBhcmFte1NlbGVjdGVkVmFsdWV9LAogICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+ICRUcmFuc2xhdGlvbk9wdGlvbiwKICAgICAgICAgICAgICAgIEF1dG9Db21wbGV0ZSA9PiAnb2ZmJywKICAgICAgICAgICAgfSwKICAgICAgICBdLAogICAgKTsKCiAgICByZXR1cm4gJEpTT047Cn0KCnN1YiBfU2VhcmNoUGFyYW1zR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgYWxsIHNlYXJjaCBiYXNlIGF0dHJpYnV0ZXMKICAgIG15ICVUaWNrZXRTZWFyY2g7CgogICAgIyByZWFkIHVzZXIgcHJlZmVyZW5jZXMgYW5kIGNvbmZpZyB0byBnZXQgY29sdW1ucyB0aGF0CiAgICAjIHNob3VsZCBiZSBzaG93biBpbiB0aGUgZGFzaGJvYXJkIHdpZGdldCAodGhlIHByZWZlcmVuY2VzCiAgICAjIGhhdmUgcHJlY2VkZW5jZSkKICAgIG15ICVQcmVmZXJlbmNlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFByZWZlcmVuY2VzKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIG15ICRTZWFyY2hQcm9maWxlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNlYXJjaFByb2ZpbGUnKTsKICAgIG15ICVQcm9maWxlOwogICAgaWYgKCRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmU2VhcmNoVGVtcGxhdGV9IH0pIHsKICAgICAgICAlUHJvZmlsZSA9ICRTZWFyY2hQcm9maWxlT2JqZWN0LT5TZWFyY2hQcm9maWxlR2V0KAogICAgICAgICAgICBCYXNlICAgICAgPT4gJ1RpY2tldFNlYXJjaCcsCiAgICAgICAgICAgIE5hbWUgICAgICA9PiAkUHJlZmVyZW5jZXN7ICRTZWxmLT57UHJlZlNlYXJjaFRlbXBsYXRlfSB9LAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFNlbGYtPntVc2VyTG9naW59LAogICAgICAgICk7CiAgICB9CiAgICBpZiAoICElUHJvZmlsZSApIHsKICAgICAgICAkUHJvZmlsZXtJbnZhbGlkU2VhcmNoVGVtcGxhdGV9ID0gMTsKICAgIH0KCiAgICAjIGdldCBjb2x1bW4gbmFtZXMgZnJvbSBQcmVmZXJlbmNlcwogICAgbXkgJFByZWZlcmVuY2VzQ29sdW1uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkpTT04nKS0+RGVjb2RlKAogICAgICAgIERhdGEgPT4gJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5zfSB9LAogICAgKTsKCiAgICAjIGNoZWNrIGZvciBkZWZhdWx0IHNldHRpbmdzCiAgICBteSBAQ29sdW1uczsKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57RGVmYXVsdENvbHVtbnN9ICYmIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0NvbmZpZ30tPntEZWZhdWx0Q29sdW1uc30gKSApIHsKICAgICAgICBAQ29sdW1ucyA9IGdyZXAgeyAkU2VsZi0+e0NvbmZpZ30tPntEZWZhdWx0Q29sdW1uc30tPnskX30gZXEgJzInIH0KICAgICAgICAgICAgc29ydCB7ICRTZWxmLT5fRGVmYXVsdENvbHVtblNvcnQoKSB9IGtleXMgJXsgJFNlbGYtPntDb25maWd9LT57RGVmYXVsdENvbHVtbnN9IH07CiAgICB9CiAgICBpZiAoJFByZWZlcmVuY2VzQ29sdW1uKSB7CiAgICAgICAgaWYgKCAkUHJlZmVyZW5jZXNDb2x1bW4tPntDb2x1bW5zfSAmJiAleyAkUHJlZmVyZW5jZXNDb2x1bW4tPntDb2x1bW5zfSB9ICkgewogICAgICAgICAgICBAQ29sdW1ucyA9IGdyZXAgewogICAgICAgICAgICAgICAgZGVmaW5lZCAkUHJlZmVyZW5jZXNDb2x1bW4tPntDb2x1bW5zfS0+eyRffQogICAgICAgICAgICAgICAgICAgICYmICRQcmVmZXJlbmNlc0NvbHVtbi0+e0NvbHVtbnN9LT57JF99IGVxICcxJwogICAgICAgICAgICB9IHNvcnQgeyAkU2VsZi0+X0RlZmF1bHRDb2x1bW5Tb3J0KCkgfSBrZXlzICV7ICRTZWxmLT57Q29uZmlnfS0+e0RlZmF1bHRDb2x1bW5zfSB9OwogICAgICAgIH0KICAgICAgICBpZiAoICRQcmVmZXJlbmNlc0NvbHVtbi0+e09yZGVyfSAmJiBAeyAkUHJlZmVyZW5jZXNDb2x1bW4tPntPcmRlcn0gfSApIHsKICAgICAgICAgICAgQENvbHVtbnMgPSBAeyAkUHJlZmVyZW5jZXNDb2x1bW4tPntPcmRlcn0gfTsKICAgICAgICB9CgogICAgICAgICMgcmVtb3ZlIGR1cGxpY2F0ZSBjb2x1bW5zCiAgICAgICAgbXkgJVVuaXF1ZUNvbHVtbnM7CiAgICAgICAgbXkgQENvbHVtbnNFbmFibGVkQXV4OwoKICAgICAgICBmb3IgbXkgJENvbHVtbiAoQENvbHVtbnMpIHsKICAgICAgICAgICAgaWYgKCAhJFVuaXF1ZUNvbHVtbnN7JENvbHVtbn0gKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBDb2x1bW5zRW5hYmxlZEF1eCwgJENvbHVtbjsKICAgICAgICAgICAgfQogICAgICAgICAgICAkVW5pcXVlQ29sdW1uc3skQ29sdW1ufSA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIHNldCBmaWx0ZXJlZCBjb2x1bW4gbGlzdAogICAgICAgIEBDb2x1bW5zID0gQENvbHVtbnNFbmFibGVkQXV4OwogICAgfQoKICAgICMgYWx3YXlzIHNldCBUaWNrZXROdW1iZXIKICAgIGlmICggIWdyZXAgeyAkXyBlcSAnVGlja2V0TnVtYmVyJyB9IEBDb2x1bW5zICkgewogICAgICAgIHVuc2hpZnQgQENvbHVtbnMsICdUaWNrZXROdW1iZXInOwogICAgfQoKICAgICMgYWxzbyBhbHdheXMgc2V0IFByb2Nlc3NJRCBhbmQgQWN0aXZpdHlJRCAoZm9yIHByb2Nlc3Mgd2lkZ2V0cykKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57SXNQcm9jZXNzV2lkZ2V0fSApIHsKCiAgICAgICAgbXkgQEFsd2F5c0NvbHVtbnMgPSAoCiAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRTZWxmLT57UHJvY2Vzc01hbmFnZW1lbnRQcm9jZXNzSUR9LAogICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkU2VsZi0+e1Byb2Nlc3NNYW5hZ2VtZW50QWN0aXZpdHlJRH0sCiAgICAgICAgKTsKICAgICAgICBteSAkUmVzb3J0OwogICAgICAgIGZvciBteSAkQWx3YXlzQ29sdW1uIChAQWx3YXlzQ29sdW1ucykgewogICAgICAgICAgICBpZiAoICFncmVwIHsgJF8gZXEgJEFsd2F5c0NvbHVtbiB9IEBDb2x1bW5zICkgewogICAgICAgICAgICAgICAgcHVzaCBAQ29sdW1ucywgJEFsd2F5c0NvbHVtbjsKICAgICAgICAgICAgICAgICRSZXNvcnQgPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgkUmVzb3J0KSB7CiAgICAgICAgICAgIEBDb2x1bW5zID0gc29ydCB7ICRTZWxmLT5fRGVmYXVsdENvbHVtblNvcnQoKSB9IEBDb2x1bW5zOwogICAgICAgIH0KICAgIH0KCiAgICB7CgogICAgICAgICMgbG9vcCB0aHJvdWdoIGFsbCB0aGUgZHluYW1pYyBmaWVsZHMgdG8gZ2V0IHRoZSBvbmVzIHRoYXQgc2hvdWxkIGJlIHNob3duCiAgICAgICAgRFlOQU1JQ0ZJRUxETkFNRToKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZE5hbWUgKEBDb2x1bW5zKSB7CgogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRE5BTUUgaWYgJER5bmFtaWNGaWVsZE5hbWUgIX4gbXsgRHluYW1pY0ZpZWxkXyB9eG1zOwoKICAgICAgICAgICAgIyByZW1vdmUgZHluYW1pYyBmaWVsZCBwcmVmaXgKICAgICAgICAgICAgbXkgJEZpZWxkTmFtZSA9ICREeW5hbWljRmllbGROYW1lOwogICAgICAgICAgICAkRmllbGROYW1lID1+IHMvRHluYW1pY0ZpZWxkXy8vZ2k7CiAgICAgICAgICAgICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfS0+eyRGaWVsZE5hbWV9ID0gMTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgJFNlbGYtPntEeW5hbWljRmllbGR9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gWydUaWNrZXQnXSwKICAgICAgICBGaWVsZEZpbHRlciA9PiAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0gfHwge30sCiAgICApOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgYmFja2VuZCBvYmplY3QKICAgIG15ICRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgICMgZ2V0IGZpbHRlcmFibGUgRHluYW1pYyBmaWVsZHMKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgbXkgJElzRmlsdHJhYmxlID0gJEJhY2tlbmRPYmplY3QtPkhhc0JlaGF2aW9yKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc0ZpbHRyYWJsZScsCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiB0aGUgZHluYW1pYyBmaWVsZCBpcyBmaWx0ZXJhYmxlIGFkZCBpdCB0byB0aGUgVmFsaWRGaWx0ZXJhYmxlQ29sdW1ucyBoYXNoCiAgICAgICAgaWYgKCRJc0ZpbHRyYWJsZSkgewogICAgICAgICAgICAkU2VsZi0+e1ZhbGlkRmlsdGVyYWJsZUNvbHVtbnN9LT57ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gMTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgc29ydGFibGUgRHluYW1pYyBmaWVsZHMKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgbXkgJElzU29ydGFibGUgPSAkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzU29ydGFibGUnLAogICAgICAgICk7CgogICAgICAgICMgaWYgdGhlIGR5bmFtaWMgZmllbGQgaXMgc29ydGFibGUgYWRkIGl0IHRvIHRoZSBWYWxpZFNvcnRhYmxlQ29sdW1ucyBoYXNoCiAgICAgICAgaWYgKCRJc1NvcnRhYmxlKSB7CiAgICAgICAgICAgICRTZWxmLT57VmFsaWRTb3J0YWJsZUNvbHVtbnN9LT57ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gMTsKICAgICAgICB9CiAgICB9CgogICAgJVRpY2tldFNlYXJjaCA9ICgKICAgICAgICAlUHJvZmlsZSwKICAgICAgICBDb250ZW50U2VhcmNoUHJlZml4ID0+ICcqJywKICAgICAgICBDb250ZW50U2VhcmNoU3VmZml4ID0+ICcqJywKICAgICAgICBGdWxsVGV4dEluZGV4ICAgICAgID0+IDEsCiAgICApOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFNlYXJjaCIpLT57RXh0ZW5kZWRTZWFyY2hDb25kaXRpb259ICkgewogICAgICAgICRUaWNrZXRTZWFyY2h7Q29uZGl0aW9uSW5saW5lfSA9ICRDb25maWdPYmplY3QtPkdldCgiVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRTZWFyY2giKS0+e0V4dGVuZGVkU2VhcmNoQ29uZGl0aW9ufTsKICAgIH0KCiAgICAjIHBhcmFtZXRlcnMgZnJvbSBkeW5hbWljIGZpZWxkcwogICAgbXkgJUF0dHJpYnV0ZUxvb2t1cDsKCiAgICAjIGNyZWF0ZSBhdHRyaWJ1dGUgbG9va3VwIHRhYmxlCiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIEB7ICRQcm9maWxle1Nob3duQXR0cmlidXRlc30gfHwgW10gfSApIHsKICAgICAgICAkQXR0cmlidXRlTG9va3VweyRBdHRyaWJ1dGV9ID0gMTsKICAgIH0KCiAgICAjIGR5bmFtaWMgZmllbGRzIHNlYXJjaCBwYXJhbWV0ZXJzIGZvciB0aWNrZXQgc2VhcmNoCiAgICBteSAlRHluYW1pY0ZpZWxkU2VhcmNoUGFyYW1ldGVyczsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGNvbmZpZyBmb3IgZnJvbnRlbmQgbW9kdWxlCiAgICBteSAkQ29uZmlnICAgICAgICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFNlYXJjaCIpOwogICAgbXkgJER5bmFtaWNGaWVsZEZpbHRlciA9ICRDb25maWctPntEeW5hbWljRmllbGR9OwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGlja2V0IG9iamVjdAogICAgbXkgJER5bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKICAgIG15ICREeW5hbWljRmllbGQgICAgICAgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gWyAnVGlja2V0JywgJ0FydGljbGUnIF0sCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJER5bmFtaWNGaWVsZEZpbHRlciB8fCB7fSwKICAgICk7CgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGR9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgIyBnZXQgc2VhcmNoIGZpZWxkIHByZWZlcmVuY2VzCiAgICAgICAgbXkgJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMgPSAkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQcmVmZXJlbmNlcygKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyk7CgogICAgICAgIFBSRUZFUkVOQ0U6CiAgICAgICAgZm9yIG15ICRQcmVmZXJlbmNlICggQHskU2VhcmNoRmllbGRQcmVmZXJlbmNlc30gKSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICEkQXR0cmlidXRlTG9va3VwewogICAgICAgICAgICAgICAgICAgICdMYWJlbFNlYXJjaF9EeW5hbWljRmllbGRfJwogICAgICAgICAgICAgICAgICAgICAgICAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfQogICAgICAgICAgICAgICAgICAgICAgICAuICRQcmVmZXJlbmNlLT57VHlwZX0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmV4dCBQUkVGRVJFTkNFOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGV4dHJhY3QgdGhlIGR5bmFtaWMgZmllbGQgdmFsdWUgZnJvbSB0aGUgcHJvZmlsZQogICAgICAgICAgICBteSAkTGF5b3V0T2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgICAgICAgICBteSAkU2VhcmNoUGFyYW1ldGVyID0gJEJhY2tlbmRPYmplY3QtPlNlYXJjaEZpZWxkUGFyYW1ldGVyQnVpbGQoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIFByb2ZpbGUgICAgICAgICAgICA9PiBcJVByb2ZpbGUsCiAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICA9PiAkUHJlZmVyZW5jZS0+e1R5cGV9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzZXQgc2VhcmNoIHBhcmFtZXRlcgogICAgICAgICAgICBpZiAoIGRlZmluZWQgJFNlYXJjaFBhcmFtZXRlciApIHsKICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRTZWFyY2hQYXJhbWV0ZXJzeyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9ICRTZWFyY2hQYXJhbWV0ZXItPntQYXJhbWV0ZXJ9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICVUaWNrZXRTZWFyY2ggPSAoCiAgICAgICAgJVRpY2tldFNlYXJjaCwKICAgICAgICAlRHluYW1pY0ZpZWxkU2VhcmNoUGFyYW1ldGVycywKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIHBhcmFtZXRlcnMgZnJvbSB0aGUgYXJjaGl2ZSBmbGFnCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpBcmNoaXZlU3lzdGVtJykgKSB7CgogICAgICAgICRQcm9maWxle1NlYXJjaEluQXJjaGl2ZX0gfHw9ICcnOwogICAgICAgIGlmICggJFByb2ZpbGV7U2VhcmNoSW5BcmNoaXZlfSBlcSAnQWxsVGlja2V0cycgKSB7CiAgICAgICAgICAgICRUaWNrZXRTZWFyY2h7QXJjaGl2ZUZsYWdzfSA9IFsgJ3knLCAnbicgXTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAkUHJvZmlsZXtTZWFyY2hJbkFyY2hpdmV9IGVxICdBcmNoaXZlZFRpY2tldHMnICkgewogICAgICAgICAgICAkVGlja2V0U2VhcmNoe0FyY2hpdmVGbGFnc30gPSBbJ3knXTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRUaWNrZXRTZWFyY2h7QXJjaGl2ZUZsYWdzfSA9IFsnbiddOwogICAgICAgIH0KICAgIH0KCiAgICAjIHBhcmFtZXRlcnMgZnJvbSBuYXRpdmUgdGltZSBmaWVsZHMKICAgIG15ICVUaW1lTWFwID0gKAogICAgICAgIEFydGljbGVDcmVhdGUgICAgPT4gJ0FydGljbGVUaW1lJywKICAgICAgICBUaWNrZXRDcmVhdGUgICAgID0+ICdUaW1lJywKICAgICAgICBUaWNrZXRDaGFuZ2UgICAgID0+ICdDaGFuZ2VUaW1lJywKICAgICAgICBUaWNrZXRMYXN0Q2hhbmdlID0+ICdMYXN0Q2hhbmdlVGltZScsCiAgICAgICAgVGlja2V0Q2xvc2UgICAgICA9PiAnQ2xvc2VUaW1lJywKICAgICAgICBUaWNrZXRQZW5kaW5nICAgID0+ICdQZW5kaW5nVGltZScsCiAgICAgICAgVGlja2V0RXNjYWxhdGlvbiA9PiAnRXNjYWxhdGlvblRpbWUnLAogICAgKTsKCiAgICBmb3IgbXkgJFRpbWVUeXBlICggc29ydCBrZXlzICVUaW1lTWFwICkgewoKICAgICAgICAjIGdldCBjcmVhdGUgdGltZSBzZXR0aW5ncwogICAgICAgIGlmICggISRQcm9maWxleyAkVGltZU1hcHskVGltZVR5cGV9IC4gJ1NlYXJjaFR5cGUnIH0gKSB7CgogICAgICAgICAgICAjIGRvIG5vdGhpbmcgd2l0aCB0aW1lIHN0dWZmCiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFByb2ZpbGV7ICRUaW1lTWFweyRUaW1lVHlwZX0gLiAnU2VhcmNoVHlwZScgfSBlcSAnVGltZVNsb3QnICkgewogICAgICAgICAgICBmb3IgbXkgJEtleSAocXcoTW9udGggRGF5KSkgewogICAgICAgICAgICAgICAgJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lU3RhcnQnIC4gJEtleSB9ID0gc3ByaW50ZiggIiUwMmQiLCAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydCcgLiAkS2V5IH0gKTsKICAgICAgICAgICAgICAgICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVN0b3AnIC4gJEtleSB9ICA9IHNwcmludGYoICIlMDJkIiwgJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lU3RvcCcgLiAkS2V5IH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydERheScgfQogICAgICAgICAgICAgICAgJiYgJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lU3RhcnRNb250aCcgfQogICAgICAgICAgICAgICAgJiYgJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lU3RhcnRZZWFyJyB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgWWVhciAgICAgPT4gJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lU3RhcnRZZWFyJyB9LAogICAgICAgICAgICAgICAgICAgICAgICBNb250aCAgICA9PiAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydE1vbnRoJyB9LAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydERheScgfSwKICAgICAgICAgICAgICAgICAgICAgICAgSG91ciAgICAgPT4gMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbWlkbmlnaHQKICAgICAgICAgICAgICAgICAgICAgICAgTWludXRlICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgU2Vjb25kICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgVGltZVpvbmUgPT4gJFNlbGYtPntVc2VyVGltZVpvbmV9IHx8IEtlcm5lbDo6U3lzdGVtOjpEYXRlVGltZS0+VXNlckRlZmF1bHRUaW1lWm9uZUdldCgpLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgQ29udmVydCBzdGFydCB0aW1lIHRvIGxvY2FsIHN5c3RlbSB0aW1lIHpvbmUuCiAgICAgICAgICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPlRvT1RPQk9UaW1lWm9uZSgpOwogICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaHsgJFRpbWVUeXBlIC4gJ1RpbWVOZXdlckRhdGUnIH0gPSAkRGF0ZVRpbWVPYmplY3QtPlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lU3RvcERheScgfQogICAgICAgICAgICAgICAgJiYgJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lU3RvcE1vbnRoJyB9CiAgICAgICAgICAgICAgICAmJiAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVTdG9wWWVhcicgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFllYXIgICAgID0+ICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVN0b3BZZWFyJyB9LAogICAgICAgICAgICAgICAgICAgICAgICBNb250aCAgICA9PiAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVTdG9wTW9udGgnIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgICAgID0+ICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVN0b3BEYXknIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIEhvdXIgICAgID0+IDIzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGp1c3QgYmVmb3JlIG1pZG5pZ2h0CiAgICAgICAgICAgICAgICAgICAgICAgIE1pbnV0ZSAgID0+IDU5LAogICAgICAgICAgICAgICAgICAgICAgICBTZWNvbmQgICA9PiA1OSwKICAgICAgICAgICAgICAgICAgICAgICAgVGltZVpvbmUgPT4gJFNlbGYtPntVc2VyVGltZVpvbmV9IHx8IEtlcm5lbDo6U3lzdGVtOjpEYXRlVGltZS0+VXNlckRlZmF1bHRUaW1lWm9uZUdldCgpLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgQ29udmVydCBzdG9wIHRpbWUgdG8gbG9jYWwgc3lzdGVtIHRpbWUgem9uZS4KICAgICAgICAgICAgICAgICREYXRlVGltZU9iamVjdC0+VG9PVE9CT1RpbWVab25lKCk7CiAgICAgICAgICAgICAgICAkVGlja2V0U2VhcmNoeyAkVGltZVR5cGUgLiAnVGltZU9sZGVyRGF0ZScgfSA9ICREYXRlVGltZU9iamVjdC0+VG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRQcm9maWxleyAkVGltZU1hcHskVGltZVR5cGV9IC4gJ1NlYXJjaFR5cGUnIH0gZXEgJ1RpbWVQb2ludCcgKSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVBvaW50JyB9CiAgICAgICAgICAgICAgICAmJiAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludFN0YXJ0JyB9CiAgICAgICAgICAgICAgICAmJiAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludEZvcm1hdCcgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBteSAkVGltZSA9IDA7CiAgICAgICAgICAgICAgICBpZiAoICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9IGVxICdtaW51dGUnICkgewogICAgICAgICAgICAgICAgICAgICRUaW1lID0gJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9IGVxICdob3VyJyApIHsKICAgICAgICAgICAgICAgICAgICAkVGltZSA9ICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVBvaW50JyB9ICogNjA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9IGVxICdkYXknICkgewogICAgICAgICAgICAgICAgICAgICRUaW1lID0gJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH0gKiA2MCAqIDI0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludEZvcm1hdCcgfSBlcSAnd2VlaycgKSB7CiAgICAgICAgICAgICAgICAgICAgJFRpbWUgPSAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfSAqIDYwICogMjQgKiA3OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludEZvcm1hdCcgfSBlcSAnbW9udGgnICkgewogICAgICAgICAgICAgICAgICAgICRUaW1lID0gJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH0gKiA2MCAqIDI0ICogMzA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9IGVxICd5ZWFyJyApIHsKICAgICAgICAgICAgICAgICAgICAkVGltZSA9ICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVBvaW50JyB9ICogNjAgKiAyNCAqIDM2NTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICggJFByb2ZpbGV7ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRTdGFydCcgfSBlcSAnQmVmb3JlJyApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBtb3JlIHRoYW4gLi4uIGFnbwogICAgICAgICAgICAgICAgICAgICRUaWNrZXRTZWFyY2h7ICRUaW1lVHlwZSAuICdUaW1lT2xkZXJNaW51dGVzJyB9ID0gJFRpbWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRQcm9maWxleyAkVGltZVR5cGUgLiAnVGltZVBvaW50U3RhcnQnIH0gZXEgJ05leHQnICkgewoKICAgICAgICAgICAgICAgICAgICAjIHdpdGhpbiBuZXh0CiAgICAgICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaHsgJFRpbWVUeXBlIC4gJ1RpbWVOZXdlck1pbnV0ZXMnIH0gPSAwOwogICAgICAgICAgICAgICAgICAgICRUaWNrZXRTZWFyY2h7ICRUaW1lVHlwZSAuICdUaW1lT2xkZXJNaW51dGVzJyB9ID0gLSRUaW1lOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkUHJvZmlsZXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludFN0YXJ0JyB9IGVxICdBZnRlcicgKSB7CgogICAgICAgICAgICAgICAgICAgICMgaW4gbW9yZSB0aGVuIC4uLgogICAgICAgICAgICAgICAgICAgICRUaWNrZXRTZWFyY2h7ICRUaW1lVHlwZSAuICdUaW1lTmV3ZXJNaW51dGVzJyB9ID0gLSRUaW1lOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICMgd2l0aGluIGxhc3QgLi4uCiAgICAgICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaHsgJFRpbWVUeXBlIC4gJ1RpbWVPbGRlck1pbnV0ZXMnIH0gPSAwOwogICAgICAgICAgICAgICAgICAgICRUaWNrZXRTZWFyY2h7ICRUaW1lVHlwZSAuICdUaW1lTmV3ZXJNaW51dGVzJyB9ID0gJFRpbWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBDdXN0b21lckluZm9ybWF0aW9uQ2VudGVyIHNob3dzIGRhdGEgcGVyIEN1c3RvbWVySUQKICAgIGlmICggJFBhcmFte0N1c3RvbWVySUR9ICkgewogICAgICAgICRUaWNrZXRTZWFyY2h7Q3VzdG9tZXJJRFJhd30gPSAkUGFyYW17Q3VzdG9tZXJJRH07CiAgICB9CgogICAgcmV0dXJuICgKICAgICAgICBDb2x1bW5zICAgICAgPT4gXEBDb2x1bW5zLAogICAgICAgIFRpY2tldFNlYXJjaCA9PiBcJVRpY2tldFNlYXJjaCwKICAgICk7Cn0KCnN1YiBfRGVmYXVsdENvbHVtblNvcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlRGVmYXVsdENvbHVtbnMgPSAoCiAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICA9PiAxMDAsCiAgICAgICAgQWdlICAgICAgICAgICAgICAgICAgICA9PiAxMTAsCiAgICAgICAgQ2hhbmdlZCAgICAgICAgICAgICAgICA9PiAxMTEsCiAgICAgICAgUGVuZGluZ1RpbWUgICAgICAgICAgICA9PiAxMTIsCiAgICAgICAgRXNjYWxhdGlvblRpbWUgICAgICAgICA9PiAxMTMsCiAgICAgICAgRXNjYWxhdGlvblNvbHV0aW9uVGltZSA9PiAxMTQsCiAgICAgICAgRXNjYWxhdGlvblJlc3BvbnNlVGltZSA9PiAxMTUsCiAgICAgICAgRXNjYWxhdGlvblVwZGF0ZVRpbWUgICA9PiAxMTYsCiAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICA9PiAxMjAsCiAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICA9PiAxMzAsCiAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICA9PiAxNDAsCiAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICA9PiAxNTAsCiAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICA9PiAxNjAsCiAgICAgICAgUmVzcG9uc2libGUgICAgICAgICAgICA9PiAxNjEsCiAgICAgICAgQ3VzdG9tZXJJRCAgICAgICAgICAgICA9PiAxNzAsCiAgICAgICAgQ3VzdG9tZXJOYW1lICAgICAgICAgICA9PiAxNzEsCiAgICAgICAgQ3VzdG9tZXJVc2VySUQgICAgICAgICA9PiAxNzIsCiAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICA9PiAxODAsCiAgICAgICAgU2VydmljZSAgICAgICAgICAgICAgICA9PiAxOTEsCiAgICAgICAgU0xBICAgICAgICAgICAgICAgICAgICA9PiAxOTIsCiAgICAgICAgUHJpb3JpdHkgICAgICAgICAgICAgICA9PiAxOTMsCiAgICApOwoKICAgICMgc2V0IGRlZmF1bHQgb3JkZXIgb2YgUHJvY2Vzc01hbmFnZW1lbnQgY29sdW1ucyAoZm9yIHByb2Nlc3Mgd2lkZ2V0cykKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57SXNQcm9jZXNzV2lkZ2V0fSApIHsKICAgICAgICAkRGVmYXVsdENvbHVtbnN7IkR5bmFtaWNGaWVsZF8kU2VsZi0+e1Byb2Nlc3NNYW5hZ2VtZW50UHJvY2Vzc0lEfSJ9ICA9IDEwMTsKICAgICAgICAkRGVmYXVsdENvbHVtbnN7IkR5bmFtaWNGaWVsZF8kU2VsZi0+e1Byb2Nlc3NNYW5hZ2VtZW50QWN0aXZpdHlJRH0ifSA9IDEwMjsKICAgIH0KCiAgICAjIGR5bmFtaWMgZmllbGRzIGNhbiBub3QgYmUgb24gdGhlIERlZmF1bHRDb2x1bW5zIHNvcnRpbmcgaGFzaAogICAgIyB3aGVuIGNvbXBhcmluZyAyIGR5bmFtaWMgZmllbGRzIHNvcnRpbmcgbXVzdCBiZSBhbHBoYWJldGljYWwKICAgIGlmICggISREZWZhdWx0Q29sdW1uc3skYX0gJiYgISREZWZhdWx0Q29sdW1uc3skYn0gKSB7CiAgICAgICAgcmV0dXJuICRhIGNtcCAkYjsKICAgIH0KCiAgICAjIHdoZW4gYSBkeW5hbWljIGZpZWxkIGlzIGNvbXBhcmVkIHRvIGEgdGlja2V0IGF0dHJpYnV0ZSBpdCBtdXN0IGJlIGhpZ2hlcgogICAgZWxzaWYgKCAhJERlZmF1bHRDb2x1bW5zeyRhfSApIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIHdoZW4gYSB0aWNrZXQgYXR0cmlidXRlIGlzIGNvbXBhcmVkIHRvIGEgZHluYW1pYyBmaWVsZCBpdCBtdXN0IGJlIGxvd2VyCiAgICBlbHNpZiAoICEkRGVmYXVsdENvbHVtbnN7JGJ9ICkgewogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICAjIG90aGVyd2lzZSBkbyBhIG51bWVyaWNhbCBjb21wYXJpc29uIHdpdGggdGhlIHRpY2tldCBhdHRyaWJ1dGVzCiAgICByZXR1cm4gJERlZmF1bHRDb2x1bW5zeyRhfSA8PT4gJERlZmF1bHRDb2x1bW5zeyRifTsKfQoKMTsK</File>
        <File Location="Kernel/Config/Files/XML/TicketSearchTemplate.xml" Permission="660" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPG90b2JvX2NvbmZpZyB2ZXJzaW9uPSIyLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxTZXR0aW5nIE5hbWU9IkRhc2hib2FyZEJhY2tlbmQjIyMwMTUwLVRpY2tldFNlYXJjaFRlbXBsYXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgdGlja2V0cyBvdmVydmlldyBieSBzZWFyY2ggdGVtcGxhdGUgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4gIk1hbmRhdG9yeSIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGFsd2F5cyBzaG93biBhbmQgY2FuIG5vdCBiZSByZW1vdmVkIGJ5IGFnZW50cy4gTm90ZTogT25seSBUaWNrZXQgYXR0cmlidXRlcyBhbmQgRHluYW1pYyBGaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpEYXNoYm9hcmQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6RGFzaGJvYXJkOjpUaWNrZXRQcm9maWxlU2VhcmNoPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5UaWNrZXQgUHJvZmlsZSBTZWFyY2g8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldHMgcmV0dXJuZWQgYnkgYSBzZWxlY3RlZCBzZWFyY2ggdGVtcGxhdGUuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJGaWx0ZXIiIFRyYW5zbGF0YWJsZT0iMSI+QWxsPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaW1lIj5BZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbWl0Ij4xMDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGVybWlzc2lvbiI+cnc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5Db250ZW50TGFyZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlZmF1bHQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhY2hlVFRMTG9jYWwiPjAuNTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVmYXVsdENvbHVtbnMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gQXZhaWxhYmxlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIyIiBUcmFuc2xhdGFibGU9IjEiPjIgLSBFbmFibGVkIGJ5IGRlZmF1bHQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWdlIiBTZWxlY3RlZElEPSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlZCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNyZWF0ZWQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lckNvbXBhbnlOYW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJJRCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyTmFtZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyVXNlcklEIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblJlc3BvbnNlVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25Tb2x1dGlvblRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25VcGRhdGVUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGlja2V0TnVtYmVyIiBTZWxlY3RlZElEPSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTG9jayIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik93bmVyIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGVuZGluZ1RpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJRdWV1ZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlc3BvbnNpYmxlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpb3JpdHkiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTZXJ2aWNlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU3RhdGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTTEEiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1hbmRhdG9yeSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJEYXNoYm9hcmRCYWNrZW5kIyMjMDE1MS1UaWNrZXRTZWFyY2hUZW1wbGF0ZTEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSB0aWNrZXRzIG92ZXJ2aWV3IGJ5IHNlYXJjaCB0ZW1wbGF0ZSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLiAiTWFuZGF0b3J5IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgYWx3YXlzIHNob3duIGFuZCBjYW4gbm90IGJlIHJlbW92ZWQgYnkgYWdlbnRzLiBOb3RlOiBPbmx5IFRpY2tldCBhdHRyaWJ1dGVzIGFuZCBEeW5hbWljIEZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkRhc2hib2FyZDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpEYXNoYm9hcmQ6OlRpY2tldFByb2ZpbGVTZWFyY2g8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBQcm9maWxlIFNlYXJjaCAxPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaWNrZXRzIHJldHVybmVkIGJ5IGEgc2VsZWN0ZWQgc2VhcmNoIHRlbXBsYXRlLjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRmlsdGVyIiBUcmFuc2xhdGFibGU9IjEiPkFsbDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGltZSI+QWdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW1pdCI+MTA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBlcm1pc3Npb24iPnJ3PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+Q29udGVudExhcmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDYWNoZVRUTExvY2FsIj4wLjU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlZmF1bHRDb2x1bW5zIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEF2YWlsYWJsZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMiIgVHJhbnNsYXRhYmxlPSIxIj4yIC0gRW5hYmxlZCBieSBkZWZhdWx0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZSIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZWQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDcmVhdGVkIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJDb21wYW55TmFtZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVySUQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lck5hbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lclVzZXJJRCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25SZXNwb25zZVRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uU29sdXRpb25UaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uVXBkYXRlVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpY2tldE51bWJlciIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxvY2siIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJPd25lciIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBlbmRpbmdUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUXVldWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJSZXNwb25zaWJsZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5IiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU2VydmljZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlN0YXRlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU0xBIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFNlbGVjdGVkSUQ9IjIiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNYW5kYXRvcnkiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRGFzaGJvYXJkQmFja2VuZCMjIzAxNTItVGlja2V0U2VhcmNoVGVtcGxhdGUyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgdGlja2V0cyBvdmVydmlldyBieSBzZWFyY2ggdGVtcGxhdGUgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4gIk1hbmRhdG9yeSIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGFsd2F5cyBzaG93biBhbmQgY2FuIG5vdCBiZSByZW1vdmVkIGJ5IGFnZW50cy4gTm90ZTogT25seSBUaWNrZXQgYXR0cmlidXRlcyBhbmQgRHluYW1pYyBGaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpEYXNoYm9hcmQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6RGFzaGJvYXJkOjpUaWNrZXRQcm9maWxlU2VhcmNoPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5UaWNrZXQgUHJvZmlsZSBTZWFyY2ggMjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+VGlja2V0cyByZXR1cm5lZCBieSBhIHNlbGVjdGVkIHNlYXJjaCB0ZW1wbGF0ZS48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkZpbHRlciIgVHJhbnNsYXRhYmxlPSIxIj5BbGw8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpbWUiPkFnZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGltaXQiPjEwPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQZXJtaXNzaW9uIj5ydzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPkNvbnRlbnRMYXJnZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVmYXVsdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2FjaGVUVExMb2NhbCI+MC41PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Q29sdW1ucyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBBdmFpbGFibGU8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjIiIFRyYW5zbGF0YWJsZT0iMSI+MiAtIEVuYWJsZWQgYnkgZGVmYXVsdDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2UiIFNlbGVjdGVkSUQ9IjIiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VkIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3JlYXRlZCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyQ29tcGFueU5hbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lcklEIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJOYW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJVc2VySUQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uUmVzcG9uc2VUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblNvbHV0aW9uVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25UaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblVwZGF0ZVRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaWNrZXROdW1iZXIiIFNlbGVjdGVkSUQ9IjIiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMb2NrIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iT3duZXIiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQZW5kaW5nVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlF1ZXVlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVzcG9uc2libGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNlcnZpY2UiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTdGF0ZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNMQSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBTZWxlY3RlZElEPSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTWFuZGF0b3J5Ij4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkRhc2hib2FyZEJhY2tlbmQjIyMwMTUzLVRpY2tldFNlYXJjaFRlbXBsYXRlMyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5QYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQgb2YgdGhlIHRpY2tldHMgb3ZlcnZpZXcgYnkgc2VhcmNoIHRlbXBsYXRlIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uICJNYW5kYXRvcnkiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBhbHdheXMgc2hvd24gYW5kIGNhbiBub3QgYmUgcmVtb3ZlZCBieSBhZ2VudHMuIE5vdGU6IE9ubHkgVGlja2V0IGF0dHJpYnV0ZXMgYW5kIER5bmFtaWMgRmllbGRzIChEeW5hbWljRmllbGRfTmFtZVgpIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RGFzaGJvYXJkPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkRhc2hib2FyZDo6VGlja2V0UHJvZmlsZVNlYXJjaDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+VGlja2V0IFByb2ZpbGUgU2VhcmNoIDM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldHMgcmV0dXJuZWQgYnkgYSBzZWxlY3RlZCBzZWFyY2ggdGVtcGxhdGUuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJGaWx0ZXIiIFRyYW5zbGF0YWJsZT0iMSI+QWxsPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaW1lIj5BZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbWl0Ij4xMDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGVybWlzc2lvbiI+cnc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5Db250ZW50TGFyZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlZmF1bHQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhY2hlVFRMTG9jYWwiPjAuNTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVmYXVsdENvbHVtbnMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gQXZhaWxhYmxlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIyIiBUcmFuc2xhdGFibGU9IjEiPjIgLSBFbmFibGVkIGJ5IGRlZmF1bHQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWdlIiBTZWxlY3RlZElEPSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlZCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNyZWF0ZWQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lckNvbXBhbnlOYW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJJRCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyTmFtZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyVXNlcklEIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblJlc3BvbnNlVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25Tb2x1dGlvblRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25VcGRhdGVUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGlja2V0TnVtYmVyIiBTZWxlY3RlZElEPSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTG9jayIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik93bmVyIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGVuZGluZ1RpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJRdWV1ZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlc3BvbnNpYmxlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpb3JpdHkiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTZXJ2aWNlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU3RhdGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTTEEiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1hbmRhdG9yeSI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJEYXNoYm9hcmRCYWNrZW5kIyMjMDE1NC1UaWNrZXRTZWFyY2hUZW1wbGF0ZTQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSB0aWNrZXRzIG92ZXJ2aWV3IGJ5IHNlYXJjaCB0ZW1wbGF0ZSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLiAiTWFuZGF0b3J5IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgYWx3YXlzIHNob3duIGFuZCBjYW4gbm90IGJlIHJlbW92ZWQgYnkgYWdlbnRzLiBOb3RlOiBPbmx5IFRpY2tldCBhdHRyaWJ1dGVzIGFuZCBEeW5hbWljIEZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkRhc2hib2FyZDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpEYXNoYm9hcmQ6OlRpY2tldFByb2ZpbGVTZWFyY2g8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBQcm9maWxlIFNlYXJjaCA0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaWNrZXRzIHJldHVybmVkIGJ5IGEgc2VsZWN0ZWQgc2VhcmNoIHRlbXBsYXRlLjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRmlsdGVyIiBUcmFuc2xhdGFibGU9IjEiPkFsbDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGltZSI+QWdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW1pdCI+MTA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBlcm1pc3Npb24iPnJ3PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+Q29udGVudExhcmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDYWNoZVRUTExvY2FsIj4wLjU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlZmF1bHRDb2x1bW5zIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEF2YWlsYWJsZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMiIgVHJhbnNsYXRhYmxlPSIxIj4yIC0gRW5hYmxlZCBieSBkZWZhdWx0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZSIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZWQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDcmVhdGVkIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJDb21wYW55TmFtZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVySUQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lck5hbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lclVzZXJJRCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25SZXNwb25zZVRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uU29sdXRpb25UaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uVXBkYXRlVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpY2tldE51bWJlciIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxvY2siIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJPd25lciIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBlbmRpbmdUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUXVldWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJSZXNwb25zaWJsZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5IiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU2VydmljZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlN0YXRlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU0xBIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFNlbGVjdGVkSUQ9IjIiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNYW5kYXRvcnkiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRGFzaGJvYXJkQmFja2VuZCMjIzAxNTUtVGlja2V0U2VhcmNoVGVtcGxhdGU1IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgdGlja2V0cyBvdmVydmlldyBieSBzZWFyY2ggdGVtcGxhdGUgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4gIk1hbmRhdG9yeSIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGFsd2F5cyBzaG93biBhbmQgY2FuIG5vdCBiZSByZW1vdmVkIGJ5IGFnZW50cy4gTm90ZTogT25seSBUaWNrZXQgYXR0cmlidXRlcyBhbmQgRHluYW1pYyBGaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpEYXNoYm9hcmQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6RGFzaGJvYXJkOjpUaWNrZXRQcm9maWxlU2VhcmNoPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5UaWNrZXQgUHJvZmlsZSBTZWFyY2ggNTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+VGlja2V0cyByZXR1cm5lZCBieSBhIHNlbGVjdGVkIHNlYXJjaCB0ZW1wbGF0ZS48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkZpbHRlciIgVHJhbnNsYXRhYmxlPSIxIj5BbGw8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpbWUiPkFnZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGltaXQiPjEwPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQZXJtaXNzaW9uIj5ydzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPkNvbnRlbnRMYXJnZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVmYXVsdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2FjaGVUVExMb2NhbCI+MC41PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Q29sdW1ucyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBBdmFpbGFibGU8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjIiIFRyYW5zbGF0YWJsZT0iMSI+MiAtIEVuYWJsZWQgYnkgZGVmYXVsdDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2UiIFNlbGVjdGVkSUQ9IjIiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VkIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3JlYXRlZCIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyQ29tcGFueU5hbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lcklEIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJOYW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJVc2VySUQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uUmVzcG9uc2VUaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblNvbHV0aW9uVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25UaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblVwZGF0ZVRpbWUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaWNrZXROdW1iZXIiIFNlbGVjdGVkSUQ9IjIiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMb2NrIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iT3duZXIiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQZW5kaW5nVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlF1ZXVlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVzcG9uc2libGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNlcnZpY2UiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTdGF0ZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNMQSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBTZWxlY3RlZElEPSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTWFuZGF0b3J5Ij4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudERhc2hib2FyZCMjIzEwMC1GcmFtZXdvcmsiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UZW1wbGF0ZVNlYXJjaFdpZGdldC5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+Cjwvb3RvYm9fY29uZmlnPgo=</File>
        <File Location="var/httpd/htdocs/skins/Agent/default/css/TemplateSearchWidget.css" Permission="660" Encode="Base64">LyogT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwoKVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCkFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKi8KCi8qKgogKiBAcGFja2FnZSAgICAgU2tpbiAiRGVmYXVsdCIKICogQHNlY3Rpb24gICAgIFdpZGdldHMKICovCgpAbWVkaWEgc2NyZWVuLHByb2plY3Rpb24sdHYsaGFuZGhlbGQgewoKLkRhc2hib2FyZEFjdGlvbnMgPiAuVGFiLkFjdGlvbnMgbGkgYTpob3ZlciB7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50Owp9Cgp9IC8qIGVuZCBAbWVkaWEgKi8K</File>
        <File Location="doc/en/Dashboard-MyTicketSearchProfile.pdf" Permission="644" Encode="Base64">JVBERi0xLjUKJeTw7fgKNCAwIG9iago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCA4MjgvSGVpZ2h0IDI1My9Db2xvclNwYWNlL0RldmljZUdyYXkvQml0c1BlckNvbXBvbmVudAo4L0RlY29kZVBhcm1zPDwvQml0c1BlckNvbXBvbmVudCA4L0NvbG9ycyAxL0NvbHVtbnMgODI4L1ByZWRpY3RvciAyPj4vRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aAoyNDQzPj4Kc3RyZWFtCnja7d2LddpYAgZgUkGYCqKtIGwFZisIqWCYCsJUsGwFw1QwuIJlKli5gpUrGKhgTQVZJ465AoORhB7X6PvOmXMSGzsaSf/VfWswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgF5LktEwSR7/kC3WNf3K8TSp/LOr5cN1nufZ5PxnsodsnTV5EE9XJh2s19mDW/+yUzke34S/bcf1XLflz5f89P34Gq/qMP1Y8JPb1WrV1FHkr8wmS9NMBKpdzcnk0+FlS+q4bef/vOzn70dXeLbTmxIf3i4WjZQfk38ffGGTLlNJKP/wPvZw+HVRw69+eH/hL/jH9V3P0X/LfX47XzRwFNmRZ99muVyLQwnT+YejX//XvIb201+X/oY6jiK2ouo/ZX/iblL/o+fr8S/fzqXn0uTEkp1fF7JTX+vzfHakp/BlnJ+uev+yrOEfWH+48Bf8PZOdRsKz+nTyW7/P9bud7SGYfzn9zc2ojhP4okVatrYyHshOI+F57Si205V0vH72lq88FDaTeq7V7LeLojN5kJ06y7J8bf2PV77559Sj5xWnuo/vBoOHbL2q69wlk+GJ7+z+/bv0VL3iKsccQnZuT7csRsPkoGS7ndZ8HMl08PhUTz40WnZeZX1t+bK+u02ztMUh5q919kq8yey83gGfjKd7rdGmuutHyXj8saH27lVG58XQdpND2LJTJTvfPrr42E7b78jg+OD3mZwcK2rSgzHLu2X7pYzsFHiS5GfONDtOnEynTdcSrzE6d/O0g6OQnSJhyIWn8Xv5cLBPeM5FZzNNOzkM2Sn0IMnNfnvXeFV+NnsvPMXbOp3dubJTKDtJtrudPzffIk2WN8Jz2t4swPtpZ32RslOsARNqba2cqNk8/+jR23aq9Tm4nXU3BiY7xbIT5l23M8titMq3eq5wInv19uAfMdTXZKfEfbmbFLhJ2q/U17OO6yrkas9dP5Blp2B2Qm/Bu3aOcLjKNXqucUphNfk1ix3XZWWnYHbC7Kl3bR1jfpb1FS4DqdYQ/C2eZmBfsxOuQbzZyVfbtqO14DyeknWosXU+5aKv2QlRiDc7e+H5cyI5e31s3VdjZSfi7OwNoOtr21sCHUH3iewUvCcXXzrITr5DVnfB3mMngqJEdsr2s22HbR5nrr/Agyf32IlhroXslB3fabf8zzWOPXjCYyeKAS/ZKZadUOS13L2Tq7X1/cGTK0eiuFtlp9gdGW7hzy2vTgwzH/s+JzRcg00ykJ03k50wnP1Ty7WF3K4kP/V7Zk4oReIYKZadQtkJN3D7rY5wy/R7PnWoNkcyvU92Sq59a//+DVWVfo+PhqkgkWziIDtFshM+3UWRF/bi73WlLXTXR7JP7dee1gfCXqkFLkSur6uLIiYMy/a60vY1rp6C3LDF39b9rDyfH+ocLsJodic17bDurs89baHJGcu+W8/lb+/2AXuuAZztstnb9bibDp5dAXeVbxEr3dyJZpzrqULQv62PfywtO1NmJJNpfmOJjob2w3h6jxs84SS8i+aYksd6QJr28GJMHgvxg1esTcf7VenR/hZ6tW/lXlBob/V4asGuq9PcpHgfRSc18PKqko2zPi8f/Rpbc4cX1df4ouO+2TsHlp/HfHWOR6fDVc/qK+U3mKCTq3PcZr7s6tB2w4KyIztvMTuPd+60o0fPbl5Duwvv4rw679yq8Xl4f+4TXb0DtJPNEuIS+hpl5+31FXzXzayYMC7Y2xtH8RG3vV3CYwqPCkuk2RmPs2zdw6sxHI8O3+w6PXin8bF36HbRVJWdKOtsT9O1ejhu8L0g287OPEaGo/F4f8S0i+mg6mwxFh/Pc3R7F57nOkCB7QeG01n++dPBCjSV/Vx2Ilm9kxt169kahOH/fvxhkxQq+PPvkmq/1qaPOsbxnb6ufQuXolihMVqG+dTtD1AaG41xTo411wWLsfy+6q2XfObkxDinT3aKBiG3r3rryzfNBY2x/JCdwg+R0NnVdqsjLLru8Rzi+Na+yU7xCthu6XPbe4Na+7ZXdH1eyc5by064ei2fLGuu9x6+sVRcZad4dsLyzZar3LtJqn3e6yOchU0iO28tO62/J/6HsJdcr5cbx7u3oeyUuXqtNldDlS2Wmn4nQqsvkh4T2SmRnY6mxoTNsHs9/X43FSSWcXzZqZSdVmcw7bLT83dd7x77kcwfk51K2Wm1r3j3z/b7HSK7eVSxFCHtZOfbuph0cVH/6nQ6yi78FW81O8/vCux1L9v3e2Dx7UREs4dtK9l5auxetL/Z0wucNuO6ntaVpuV2tRRgtPrWwXc/fuh5dgbD6fAhjWUJQivZee4gueDiP28lUNvASqXshA0NWm60D0fjQbYaEJU2srN76V/lOZShe7KuZmKl7OjwouXshP02KzZ2c1OY62poVMrO7n/EduK0nZ1q4UmysGizy+yE8f2+v62dtrIThuMrhSe/6qy2jTaqZCeM7/e8s5jWsrO3WW3p2y6/2rm+o6yQnTAVtG+bO9BZdnJ9u+XDk2vr1NnOqJCd0FPQ+4EWWsvOXq2tXGPhaTis7hpblezkNg31Bhhay06+yfJYbE+KVnnyr5iu9+VRpbOz7Phl1/Q0O3tdZY8337xYwb33iul6W+gls9NMowvZKdtseXz0zM7fscl8f2v1Wju3SmVn/0g8dmg1O4fhGdzNX79nh7PZ++aiUyI7yWRy0+CBIDulwzO4W5yeoTWaHb7Oo+Y7NmTn9rXGV5KMDl9o1fNFNHSQnf02w1PtZ7lKj5b00xefnNUbnQIvSDzBbGbaz85guLp58bVtmmb5l+CMRqPJy5fe1P969qrZER26yM7BIGkuGtngIRsMR0ffFfWtdjep/YatmB3RoaPsHPY6F9PEoVXLTjRLFokpOy2NlQ/nX0r+xP20iYWCVbJTdFiKfthtttjafnHjxccI7tewQ2thtzMPHY60QNqc3jidF624bReLpu7X7GOpj29X87W7hb061NNMs82k1R0UiqWnweQcGW56xSZd2SyAl2aTWjdvKlpzm/58rp2zWDV6UMP56OZceB8LlPU6yzxxiOuJN5l8Oh2c5coNC6fjMx4fKfvvszQVHDjf8BiOH/97+nM6yB5SpwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDL/B9n0iy4KZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqCjw8L0NvbG9yU3BhY2UvRGV2aWNlUkdCL1NNYXNrIDQgMCBSL1R5cGUvWE9iamVjdC9TdWJ0eXBlL0ltYWdlL1dpZHRoIDgyOC9IZWlnaHQgMjUzL0JpdHNQZXJDb21wb25lbnQKOC9EZWNvZGVQYXJtczw8L0JpdHNQZXJDb21wb25lbnQgOC9Db2xvcnMgMy9Db2x1bW5zIDgyOC9QcmVkaWN0b3IgMTU+Pi9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoCjE4NDg+PgpzdHJlYW0KeNrt3Gtu2zoQgNG48JK6/xVkT6qBAEZao7FEkeLM8Bz0133gOpRIfqJyfdu27QMAgNh+GQIAANEGAIBoAwAQbQAAiDYAAEQbAIBoAwBAtAEAINoAAEQbAACiDQBAtAEAINoAABBtAACiDQAA0QYAgGgDABBtAACINgAARBsAgGgDAEC0AQCINgAARBsAAKINAEC0AQAg2gAAEG0AAKINAADRBgAg2gAAEG0AAIg2AADRBgCAaAMAQLQBAIg2AABEGwAAog0AQLQBACDaAABEGwAAog0AANEGACDaAAAQbQAAiDYAANEGAIBoAwAQbQAAiDYAAEQbAIBoAwBAtAEAINoAAEQbAACiDQAA0QYAINoAABBtAACiDQAA0QYAgGgDABBtAACINgAARBsAgGgDAEC0AQCINgAARBsAAKINAEC0AQAg2gAAEG0AAKINAADRBgCAaAMAEG0AAIg2AADRBgCAaAMAQLQBABRzNwSF3W6/f/4Htu1zzR88rKpXBNPHzW8Zp8P9sG2bUVh5wa034fMWmyUYc8cUsJ7zAydtqy+1j3+30jzPXmzAcxYvniANq5mhK8/vtKWf1TLFSg0lbzxz4eTWYADrcdJmhTUmQOhJ7dzIAPLFSVvWRyjjAHgew64h2jDxUvI0CboNO4how2RDeoJuM4yINubNsWKJoHjAYmg1cwog2lBsum34JxedwDWrmW5LmQS+XHeFXJMC4y6EsWWRBWfQrd6w0Jl0HTcIg5mLr/yoOSHNQyCF52Ll4Kd5kff96qKNlMVm7gGpK2TP6qcz+oav8UzE77QVKTa/DgVU6g+aN4KGMXTMKdq4qNjkGqDbODmGuk20MXbOyDXAakmvDcKoijY8jAJY33Kkm24TbfSfKlY0AEZsGbpNtNFtknglCugMdJtoI0GxGS4AdLBow3wDoPI+snMrcdgm2mifGIoNgIDbE6LNlFBsAAxhTxFtmF0AlNpZHLaJNkwGAJwIINpMKgDotMU4XxBt7JoGig0AEG0A5H6y5TyHbaKNDhPAMRsAQboN0YYpBEACDttEGwC0JIIn276Mp2jD8woAINo88QB4suWqrcd1EW0AcKwMPNmyrLshyPWsA1ByaXKQA285aQv3EImdDFa7mfevjSadBU20ARYyuHoKPFrt64/JmIJzh+m8HhUH7Lo0/6xWLhZVl6DmW92ODqINJDWEvtWvyTVzELweBcBTE8ZZtAGAkgDRlotf+ACsbBZPEG0AVE5D6QaiLQrn/4C16226GXBEGwAkoNsQbQDQ6OIXBbqNZfmeNmjZKrzOZoX7fP+t/voF1KM/pDmIaAN2PdnbM3Crv3Zbl/+iboP/8XoUGjcV72hwq5/3CK/nH5cARFvu5RJXDRa5mY/WmwmIaAOAmXnk1A1E2/yHSIMA0HHBdNiGaAMAD7og2gBAt8Xj5FK0AcCobtMZiDY84gAAog0ASMXbatHmjgfAyjmftz2iDXMGABBtAMB4zjtFGwCc5R0Fog0PKwBAFHdDIOmgr9djj6Q3dpkfBOxNNThpc/fD2ND5yPn2qswPYlHFMIo2Os+Nx18xYShZbBlzR5xhb7I3BeT1qGca4ECxPf6uyYu9iSmctAEhYsiHBBBtgCRSbG4bEG0AJTZgZQCINoDoebT/I/mNH3cLiDYgvf1BE2onVmyL3HUg2gASd5uDnMhcHfjOV34Ak7fkWSclR4PAiY5ig7mctAGdHY2bKXuzYgueazsvkOvCUpy0AUO67VAVXXnk1tCIyiBsTINoA7i62y5It7YgUGxhW82lQbQBTOu2QenWfH4jC86P4bi7y0VBtAFM7rbviXBmbz7ZGbIAEG2AbmsMr7ch1etASLEFv6kMAqINYNQW2yWnrnlJpwkUGwTkKz8Ae+1fH1ITuItAtAF23E8fDz0NbbweBSaEkf8VERcIjnLSBjaSOUMXZ/Rcx8iD4IANnpy0AZNDYeKpmxoQkZDIbds2owDvp8pLWNhURo+wJih/FVwXEG2AaNAEQDVejwKBPKOqb71pNUC0AYytt7aGU2mAaAOY33AAC/KVHwAAog0AANEGACDaAAAQbQAAiDYAANEGAIBoAwBAtAEAiDYAAEQbAIBoAwBAtAEAINoAAEQbAACiDQAA0QYAINoAABBtAACINgAA0QYAgGgDABBtAACINgAARBsAgGgDAEC0AQAg2gAARBsAAKINAEC0AQAg2gAAEG0AAKINAADRBgCAaAMAEG0AAIg2AABEGwCAaAMAQLQBAIg2AABEGwAAog0AQLQBACDaAAAQbQAAog0AANEGACDaAAAQbQAAiDYAANEGAIBoAwBAtAEAiDYAAEQbAACiDQBAtAEAINoAAEQbAACiDQAA0QYAINoAABBtAACINgAA0QYAgGgDABBtAACINgAARBsAgGgDAEC0AQAg2gAARBsAAKINAADRBgAg2gAAEG0AAKINAIBI/gCkqoRBCmVuZHN0cmVhbQplbmRvYmoKOCAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDM0MT4+CnN0cmVhbQp42nVSyU7DQAy98xX+gUxtjz2LVOWAWAS3itwQh6RJuFChnvh9PNOhRSxKRo499luswBEI0B6CyPYi7A+W3dt5/TceweUcPHxY1mUnQeEAEtJX8gZPsPtjinJyRuFzZQxYEmLgkB3bcIwuaCgCNg8HhJt3A7keYHNHwOJiigTDWsZ8jNAReafMMMzPW0ROiKtHGgnJL0i4Ihl6reXcM22RKCKLIEZBmqUntLnJesV6CJE09cylz2rjbHdUvvvOb3/gYOXAMZxqZaY4WSzXqeKWuZfhsWqn6JhUinbOwQWv0HF0KWvTPuZeGu238TPt2GSYRbtZ9vUwm8FlanGuZJ2gI862GiGXQ77Aa1Norup2CpUpNxnZGhJXr3YaCYrdFadB6iZR8eLGoFW5uElqJsyLolOhxhZsCZNWJyf4k+KidDx7mGulxpUq9O3w63/ZXX0CVA2UoQplbmRzdHJlYW0KZW5kb2JqCjEyIDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMzQ+PgpzdHJlYW0KeNpTKFQwVDAAQkMFcyMgMlBIzgXy3IE4nSAdyAUAh+oMRwplbmRzdHJlYW0KZW5kb2JqCjI4IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggNzk3Pj4Kc3RyZWFtCnja7VlNc9MwEL3zK/QHLHa1+tqZjA/MQGe4FXJjOCRxzIUeyoW/z8qWv9SUhjQ5AJ7Usezau1rpvX1aRT0qVCAfVMHIH6jDg1zdyfHtyfndVr39gAqtJuuN2raK2GjDTlUh6ACsts2XDYBBgGgAggfYHwEIp/Ye66/bj+r9VoE2EOWbgpVvG736dHfi5o/RL2v2xie3oCoMrMnE3iMeD3WFSH6THADuHaC33QEtATIDNnZ0vAxnMitB6fjE9PE6HTaA2lg3WG3qir3tBwtl3NF7uSsHhTps+hCYazSbPoRdA2hpePSsUAyZ0m0LFwZDM9sy/2ytmEbSZowHjGnzRDjkPBEy6NLEHaYAaidNPKZpqSsTJLIUocF8l2MftaX+vhmfzmffGamwt3hyCJbdlH76ZT+lj3VlmXPLAaytv6X10nwnyDvCJS5ngB+S2RWAb5xG50voJ2yaKCCHna9t5q2kPnRxvBR2G8jAPgPDDNrHWHh8dqhWYK+keJYUC8zehhYUNCKWtDgKLYiSjon+Ix2nDN9l/gDGSoZnP0l10rpm1IhdFkjydUWbXgNs4tBBLA+8moTkD3Rh3t+VQP8DCRYIvQ0JLGvwT7ShTdrAaX0q6+J+QYc9ERAS0AXYcHCdJlRx0opurXMOpsFq40LhfsX0yoff82EB1tvwwaOWGqfgg7gSUQDK9c/ejTWCJPS+xhny/4UFUn45/Se9iGFgGdhOdPDQ1Dh/APpFWf9getXGGm1Pv6Q7o5PseKxbzljGGS+DxlyMxkrPS4DrXQmqFm+B22A0hzKPiyvBLbrXwnLHtc3wIZ/L33nJOwLy5czvonCZig6v0PrHAL9A46sBX25NsdWR7bThVXGIOVVC22O3S9HNWftO1EnLwmZrrrjvROB1tDx2d77z5H1BTeHfWIc/0/+5j0iaofSxsmltXcbdSFzidUaF66kVYdQRbEmJZiy9m2ZSl67Exhe3k0/SYu5npcXaeg0tFpg9QYt8flSaODr1M0mV904HsupB7MTp8rv6rO5PqZHTXphX+RB0jMNPOpZKX/dvfgFXjPYnCmVuZHN0cmVhbQplbmRvYmoKMzEgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxMTA+PgpzdHJlYW0KeNpTKFQwVDAAQkMFcyMgMlBIzgXy3IE4HSddqKBnbGlhqlAO5OmamZnqmRubKOQqmJhZILg5CsEKgQpOIQr6boYKlnqWZkZmCiFpYA3m5noWFhYKISnRNgaGJsYgbBcb4qXgGgK3IZALAFfEH9UKZW5kc3RyZWFtCmVuZG9iagozNCAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDI5OD4+CnN0cmVhbQp42mVRy07EMAy88xX+gWbHjpuHtMoB8RDcEL0hDu22y4UV2hO/j5tttwLURokdz0w8pjMxwT6mKPaDDieLHm19XPfbjnYPTNnlIIG6I4lXpwgkyWn21I1ve0AScPTgnsF+AuMINsKay7kI78EcIapAVPCohWG4wWrVahjgNhWRuc5y/Wh3PJ9L4/d/eFA10IdLbsaYFk8Wt0PlnTlE+tJIzIbuc9GFeCvYiPtFyJqwm+lQl4i1MA3LPpb37pnuOzqT8zm19G3miLqISCfSkNbgk17p5WqeGZyTs8f5XI0OmAMWYjMxKDU1Mdu+ezqB7r5+YTelJoTWRa+L1jW8qP0b0QyI0aWU1vGYZ8nGEUO1HJ6388C1Nw3qfFTDVohZsLa8Pujl5geSHHxHCmVuZHN0cmVhbQplbmRvYmoKMzcgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyNjM+PgpzdHJlYW0KeNptUctOxDAMvPMV/oGGsePmIVU5IAEStxW9IQ7ttuXCHvbE7+O+tghQEjl+zNiZ0JWYYIspim3Q+WLes52Pm31o6f6JKbscJFA7WVCS0+ypHd4aQBIweXDHYD+CMYGNaonlXIQbMEeIKhAVPGhhGK63WrUaBrhORWSus1g3WI7ne6l884sHSw90YY3NGOvFo/l1v/DOHCJdqSRmQ3e56EZ8FBzE3dbIHmGZ8bwcEXvC2G92KO/tCz22dCXnc6rpa1ZAXUSkC2lIu/NJr3T6I99PVBVC7aLXDXdzV+Q/QlchRpdSWqXeZ1GunUq0/PYDJksyxWNYVIXn497zPv4+0OnuG450cDkKZW5kc3RyZWFtCmVuZG9iago0MCAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDQxOT4+CnN0cmVhbQp42nVTy04rMQzd8xX+gQl24jiJVHWBBEjsELO7YtHHlA0sWPH72Hm001sxnWjiE/v42HXgGwhQfwTJ64tw+FLrWdfHzfcbXCkS4EetqTiWCF/AkofxCW/wCg8z3D8RFFfEC8wnYB8chwSTTy6XCPPx3wbRE2JEfRhxJ4j7BTEotivb9/mlUhC7wOKNQ7fFs1IEV4g6RfaISSyshjzO1wrFOy9pSOzWlcZVglCyi0FgIhQnPcFe9RxUZOK2qtay9ahnC3edYVXqdKaJyaXMg2dBCro4IO1oO3lOG6Si0k+KaBKKeRs2zQypJiBazFE6Sqmtc7iitsvqeejUdq7RVGq0+h47g+1YP8lfgKaoJTE6n1uiHbUTPJl/w4rWTEaahvaRsvEM9Ia1InypsbF0aVXnqh1lfYy0j4YhiTTsktykHfm6D4aH1JIdWrUWJDIOTYFRWn3ndqgDr1vyl9TuQa003vzXFqxNsHHQsSNyJfYpt+A4pHD9yynue6OHyjG8q2umYxT7EEt0KfB5irv511XTKTevpDct565hucnwevcLmcXhuAplbmRzdHJlYW0KZW5kb2JqCjQzIDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjgzPj4Kc3RyZWFtCnjabVG5TgQxDO35Cv/ABNtxLmmUAgmQ6FZMhyhmdmZo2GIrfh/n2F0EKLESH+85foEzEKAugsC6EY4n9Z7VPq7nwwT3TwTJJM8epl2DHI0kC9P6NiJyRNwt0kxIdkPCHUmpaiylzDQiUUAWQQyCtEomVNyitaI1hEguZuZSp7F51RyVex7s+IsHaw+cfYsVjPaiTX23VN7CwTzngUNS9JyydOJbwY147o10CM1sx2rMOsK29HPN79MLPE5wBmNTdPBVFBATMMAJxMeL8wmvcPgj30/U4L0zwUrHXd2G/EfowYdgYoxNatr2+hbrgxEWzfcfaMo3pXxRMLs+s4rUhOhz5cE7GZvAi0PyUq2LXD+nT3t5/+HuG0rhey4KZW5kc3RyZWFtCmVuZG9iago0NiAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDEzNTI+PgpzdHJlYW0KeNq1WMmO4zYQvecr9ANWSBZFioChQ4BkgNwm6VuQg23Jc8kcJpf8fmphcZFlZwJ0z3S3LYmq5dWrV5SGb4MdDP63Q3T4Y4bbVzz6hL9fHj6/DWNKAYZ/8OiURh+m4evgw6wHfw2/D5+Hn96GH3+xQxpTcGF4uw/eweghDicXxzlNw9v6x9kYZ42ZDP7zxlyCMdfNGMBzl7T8+fYrm7B+BB8c2bB2NAnQBIzJ2mziui0na/DLui0eP2bHt/781kca3OhC1FDzURdr4wgmN+Iqa8IYmkhnZ0zEKP2MUWPYPhlzmyhaymDx6SwZ0DVZq6EUEEeLcBh0DvgXgh1++3Rw8u8vB0FhEjbKdQ7Jbqtx7o6ftwc37+AOQQ5T3Pk0V2vs6hcC3F7w+2VdJvxqN2ODX7C4iIFNaXE2n02zsdfJWA9y3pXV+TOwkZMTi++XiR3TNClwzrgxpgfc3h+/6hV5bjz0rpE5SwbIIhDmDhWIG/5i6+E1Y6d5HxHbh6afKCl04X3MppH3Vgi4EJZMQPyh81gWgh3zrTlf5XOFd6YothXm/QD1+iEUDbjO73yijrAOELbYs4SlHkJkaBjuR6odQpym0aHksGXn/TuDBeBRDP0erO1DwJrGRGB1PkmuLGy79oyUKh4HgY0YeVm573ODU+cTVyEsJzhLA3tC9oZirGhXFfgepCHAaGH+KKQ9deED0PcPAXoep+R6l9yJBAoh55mZGUscIDi/RPtOcyUq9fJ3QucBHUXVARw+IqqszmJvutIveYxo1dy1luhPNCdUMabo6BNjyCuo9sQRjEbOfFeLZW8m+qxzYZ8bUyTHRCpIkVj0asNZZgaGnFpbyLdKK1otIycexmg8M5kta04eCi6swTZHTcd0jW0GskAhQOy9UUgpqEex+Rwj8t/mWgYdo1KqtBJ0GQxOsKCK55ClTAAa/TxZmilMtxSA5A5pw2kXjjcUbgpdveCgXnKr1knnElWETRg3Vw6TceIR4tI3u2gHVV33CawxvrouWwBip2TCKtLbMeyDNoVFl6gGW+CsbY05POHFEyBoLjLy1BPKi3oVN56lHkGMacvmrY7O6NVzeU4xgGwPi8WcZwa+iaAtpe4rFVCVVLoZjWRalmBszFP8P/qb1LjNjOKQs5XbUKNSNwd3CpO1Lnwm6rp2g0dxKFR1le5uNi9oBd932q2mRuUkYEWS3LnkHV1rKbDmNKsIKXW6hWM3fdK6F9Ww+1Uiwa/ggZxmhjtlVG99o8YxgevEGOmd3I6MkGDXUsftpPfecqx5q+jcBQnmoEgng3PT3TjdZY88FqElHC62vaJFVAJ00lRTKKU5yqlbImopJ6k4HkRTYRNQxa2WkcsXWn/KWt5lJDhy9qAthZVo36Y8VgXry04k9lKSDWZM/KEgHakx79w5htgr/mWVMgFpVNdF+DWb3GsGdn7Tq7Kuy5qvN/uDVjnzerV3aKVQWixp7KogvFbsBd0XdGBYgwcsfN6H16PIpfQQvT1X2j2BOEfW0C/IZpSC1PCV5uLjSP/Vyg47DrilaPNMKqUx/48FoTx2vKJXFpdEbrfQQ0aCmaZGfvODtZzt5TeFJ8QRC0XveF23KWFbmBfa441PKxZy0dnKkLwDrFwu0ZNMsXisHY54g7ACbPNYUYy/aJL9ijLMUj/A28zIiiJVmSF58YRI01H+ndi8HmLdRvio63V4vFQenhsONiV9O1b9rJK4xLzhrWQsz+zNuwq4lzlz9MhS389Bmqf81itMYwRfXnvlw2fv6Oi1GM6uU4hxnOf8MGbvZu/z8w//Av5+d9gKZW5kc3RyZWFtCmVuZG9iago0OSAwIG9iago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCAxMDE2L0hlaWdodCA0MjUvQ29sb3JTcGFjZS9EZXZpY2VHcmF5L0JpdHNQZXJDb21wb25lbnQKOC9EZWNvZGVQYXJtczw8L0JpdHNQZXJDb21wb25lbnQgOC9Db2xvcnMgMS9Db2x1bW5zIDEwMTYvUHJlZGljdG9yIDI+Pi9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoCjkyNj4+CnN0cmVhbQp42u3TAQ0AAAzCsPs3zXUQWglLlgPWRALwPeB7wPeA7wHfA74HfA/4HvA94HvA94DvAd8Dvgd8D/gefA/4HvA94HvA94DvAd8Dvgd8D/ge8D3ge8D3gO8B3wO+B98Dvgd8D/ge8D3ge8D3gO8B3wO+B3wP+B7wPeB7wPeA78H3gO8B3wO+B3wP+B7wPeB7wPeA7wHfA74HfA/4HvA94HvwPeB7wPeA7wHfA74HfA/4HvA94HvA94DvAd8Dvgd8D/gefA/4HvA94HvA94DvAd8Dvgd8D/ge8D3ge8D3gO8B3wO+B98Dvgd8D/ge8D3ge8D3gO8B3wO+B3wP+B7wPeB7wPeA78H3gO8B3wO+B3wP+B7wPeB7wPeA7wHfA74HfA/4HvA94HvwvQTge8D3gO8B3wO+B3wP+B7wPeB7wPeA7wHfA74HfA/4HvA9+B7wPeB7wPeA7wHfA74HfA/4HvA94HvA94DvAd8Dvgd8D74HfA/4HvA94HvA94DvAd8Dvgd8D/ge8D3ge8D3gO8B34PvAd8Dvgd8D/ge8D3ge8D3gO8B3wO+B3wP+B7wPeB7wPfge8D3gO8B3wO+B3wP+B7wPeB7wPeA7wHfA74HfA/4HvA9+B7wPeB7wPeA7wHfA74HfA/4HvA94HvA94DvAd8Dvgd8D74HfA/4HvA94HvA94DvAd8Dvgd8D/ge8D3ge8D3gO8B34PvAd8Dvgd8D/ge8D3ge8D3gO8B3wO+B3wP+B7wPeB7wPfgewnA94DvAd8Dvgd8D/ge8D3ge8D3gO8B3wO+B3wP+B7wPeB78D3ge8D3gO8B3wO+B3wP+B7wPeB7wPeA7wHfA74HfA/4HnwP+B7wPeB7wPeA7wHfA74HfA/4HvA94HvA94DvAd8DvgffA74HfA/4HvA94HvA94DvAd8Dvgd8D/ge8D3ge8D3gO/B94DvAd8Dvgd8D/ge8D3ge8D3gO8B3wO+B3wP+B7wPeB78D3ge8D3gO8B3wO+B3wP+B7wPeB7wPeA7wHfA74HfA/4HnwP+B7wPeB7wPeA7wHfA74HfA/4HvA94HvA94DvAd8DvgffA74HfA/4HvA94HvA94DvAd8Dvgd8D/ge8D3ge8D3gO/B9xKA7wHfA74HfA/4HvA94HvA94DvAd8Dvgd8D/ge8D3ge8D34HvA94DvAd8Dvgd8D/ge8D3ge8D3gO8B3wO+B3wP+B7wPfge8D3ge8D3QKUHNZynZwplbmRzdHJlYW0KZW5kb2JqCjUwIDAgb2JqCjw8L0NvbG9yU3BhY2UvRGV2aWNlUkdCL1NNYXNrIDQ5IDAgUi9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCAxMDE2L0hlaWdodAo0MjUvQml0c1BlckNvbXBvbmVudCA4L0RlY29kZVBhcm1zPDwvQml0c1BlckNvbXBvbmVudCA4L0NvbG9ycyAzL0NvbHVtbnMgMTAxNi9QcmVkaWN0b3IKMTU+Pi9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDQwMjY0Pj4Kc3RyZWFtCnja7N0HWBTX3gbwma2zld2l916lgwhKURSIqIm9K1FjEq/m5saaXE3siRqMMdGbGKOJJhoblqjYlWJAEQURQYpSlQ4LLGyb3f3OsoiASMqnieX/ewgZppw5c3YW3zOcmcWlUjkGAAAAAAAAeBGo1Rq1Wk2SKqUSfSm5XDafz+5xTRo0FgAAAAAAAC8KHEdfOJVK0WjRJJJWpZLU0+PQaFQI+gAAAAAAALy4QR+nUND/KVRq+48KhbKiop7FYrJYDCaT3pH4IegDAAAAAADwgqFQcPRNd3UffadQ1EqlUi6Xq9VY25V+DeoC/Img37bB78wBAAAAAAAAYG3X2n93zl8uGeXwh1kfp1AoKpVKN3YfxfO2iK5N6X8o6OsCva5n8LCLAAAAAAAAAOgtRHfk8raIr3mKcV9XCIWCIro29qPQrw35D4O67vvvB33d+rrN1A8LwOByPgAAAAAAAH8gjuuCPkV78V03R/MUL+3rSkPBnEKhdLsiT+s94mNtT/Bpi/galUpFp9PodO0AfyqVAq8cAAAAAAAAvVOpdI/CJNGXNkNT8Id30z7NS/udpvGOJE/73ZSvVqtR/VC453A4kO8BAAAAAAD441B+Rl9MJh0laqlUjkJ/W6KmoMSv0TzdS/vd5/QW3Nuu4mu7IEwmg8tlQcoHAAAAAADgLyd+lKhRrkbpWnvrrPqZD4Pv+Yq+bqxO27V8FUEwWCwGvDYAAAAAAAD8P7Xlao1Mpmi/mZby1B7F8zjKE4K+Nuu3jdihsVhMeEkAAAAAAAB4SlmfiTI2StrP+mGWTwr6urtv1Ww2pHwAAAAAAACeJpSxdaN3nmnSf2LQb3vGDjxdBwAAAAAAgKcMZWyUtFHefqZBv+cx+m0D9DUsFh1eBgAAAAAA8KoRX94aHrYvAzNdkLgzNpj7LHbBYNBbWmTP9JbcXm7GVdPpPS2VVewYM/Wt04pus00mzF9L+2WL5Scpa92J7tsoir5fNvig78ljE12J36mQrPzG4Uz90cOtf2dFsq0aJx5Wg+D6vDZ84ccxk73/0Cshu3Ni1oRNe4ut18S927A0Vvzxt1tMTgyLyZ51csNkm9/bmJRk7NsV+1NqamZJkYzrE+gXPmLYwreCTIin+cIU/bhs2E9Oe45N9+HCew0AAAAA4G/J9+mHFy69Ipg9e0ptfpF2Rl1udkVGZULsEWzK+phoiyc8n0allKmoBOPRQBi1QkFSGQxqb/tCSVs3duep1Pzxcp74HH3dnQE9j9shTGedvDBLm3fr9856dw33g5TNQYL2YkbN/H/XsiLh8JZLYeGvWZv87of20rg+C5dfXO8rwBTi7Os7Pts09x3M5OTccIM/sJf0KxnciSkls4MEGDbkgDb6p//RGqJOwsIlZwWLlp/c4WRLNOcmHF74/qpZtG/j3rUm4P0BAAAAAPCCkhRsXbBpx2UMO5+6sX2WIn7uzPi2qXgxLyWup2vWyuaiW/dKWpiWbvb2+trhMIq6+1k51a0cEw8PU+GTx8egpK17/s1Tifht3/E/+sm4f3qvZP1hlPsttFf0sfLUje9vjT1dgjn4Tnlv3po3rTvF5JId7yzdik3cs3W4q+TGxiVbdmRKMJLhOnZ27Edhwivb31qamCq+NVpWt3XzcOzErtiD2UUSjCUwDZ8Ws2Dsk5I0Q+AeNPejkvg3zqYWSvqXHx4Wc90nWHH4BDb32Oa5BtloL3uytdf+Tf2HL1050bdw+7zVqbnF12dNqF+2YtCN/+iu6HftzC05nFKrwGim0Yvmr5nYZb+y2ooGrvPk4b6uFugnrs/YuXGBo2UCU+06sor4zzYtO1osIzGB/+g16yeGm2hbJvXb7cu2J6QUKmwDg6Z8NH/pEJEsc3fXSl7v2mKOmK60JXPG/JxdIXAc/d68rf/xFdDgLQgAAAAA8GxwHSe/F7Hj8rmiHpaJxswI6yHla1QNxeUlzWoMk5blFtHcbU2x2uzcagma0VxZUMzxdeDTcOyp5e2eStD1FnTjcTqCvu477cl7/as7lpTsmLvppMX0i7f7E9m/zHr/s1iX2FntGbn+4ufrtkqG79gx3JVWsnXuyh0G805ejTCtTVw45ouFljZ73pq0ZmrqrPJJh3dEmBSfGLMpP3zP5j3uDFlx4prPz6YEzw43efJ+CQZBw6RtuR+rzM/gzj95M0K7lynrTrp8cHFXkIkke+2EpfNWm17cOnvLRyXagTFx031kN250K6f43MJZ+xrmrL3xrqMsYXv0O+s2Omxe6v/oLzUC97Boi5Vr527C5gS62di4upsKLEx1R5765ap5592/P7MhXID6M4vmLdW/uC2CuPzL3E3F0Vu/jfNnpGxaOmt5XLj/bJ/ulezWYl/NwhQNmSkpQ+efvBskTN8a/f6+uJG+sxzgLQgAAAAA8Ezknj8Rf6m4oW3aZPj0rSuH98fydyxft+yEBM2RludfTMdC/Uy7BHecyhHxuZUybbJXtRRl593HlApV2yIKS1/EouG/H9T/csTH2m6sffi0TBWdTqOj/2iPnqbz9B+qIytOPVyoP2ZOpI+NyPW12YcvxC4MbBtmTjZnfP/Fskzf2G0TfQRotevx2WZTZofZEhhhETR3mk3uketFsk4F0ZgEWXx4+4mLhRLCJmzN1l5Tvqwi/psTNwR+4Q5t++LahI8LcxW0VeaO/phJftqBQAL3yZOcZdn5RZLe6l95JfEiETR3rCPqswmCh8/zrzt5Or9zvTAD3zVxX63xrtj72aZov/FC46ljlpzIqMUwcfHJ4w9cZwzvj+pJWI+ZEyFIT7xYiQkGzr1x95s1r1kLDEz7R3iYiksqdBXoXMmeWozlMnDBu2GuBgwTB0dbWnOlWAHvQAAAAACAZ2TZlPULvy0QoynCfeHKmNHepibeYQtWTgrSXsiv37tg2eBhm2pk3bdi6Jt7uhlxdcPxVQ9TPpXVMZLnWehI+Wq1miRVFArO53PaPnaX3nns/dMfCyIX1zWQPAG37RI4jWFiI8IwBeobNaTvm5uuIIZ80DbGRTsApqI4e1m/wcs6tnS3QQmY1fGjTcSOY9wd35xcNmx7Ec00fNrsjf/pesMrKcmIfV8YqzsOrs9rkRu3xYQbYLJy7dV9k7bAL0OVwXgCQfv1eJaAS0jqG0jsyV0GRUNlXUV64mDjwx2zTKbWidEmnZtKYD15/YbJbevnHt21cMmmKRLexY8YlbX18e9MZb3zcDXCcVilAhNUHP5s65qfUzPKdcWFPVzaqZLdWwxrwBiEQF9IdLxKcoyENyAAAAAAwN9A/qfWZuibullL0+9pR/C0oQitrW31n+3jK3WfeaVSqQiC2fZpuz14+kGfieIpli3WXn5Gu1RUZuY3mNigvCp0iIzdFpry/rp53zrFLXQnDExNHXxnxX0+16VzzSSpnX4gHILmbkRfiqKj26e8vzU20CN2YKdn0Dy6GbeHWuiOjOhSGUxaK5EJTE17u2eWQZjo2wZP33Ny9pMed1OZnnhRbDN6iG7gPsN1ZExscfawIyUVuK+Jienkld/umSjqckRr1i3MDNpzfUOQASZO2BQ+t67XSupazAnu6wUAAAAA+DvFntw8JWHf3CWplbKCrZvORm8d7oqV7Pk8LrXtKr7P1NkLp4UZ9hTRFHUVOSUdKV8bwhtKSorYz+qKvm6sjlqtS/mMJ6V87FkM3SFsgka71MUdyRaTmPjyvilj1u240zbmxMDa1T1o2frh2PYvYhMkhI1ftEvFnu2oKbXX5lO3bFr4c4msLY7LZHKp9vGl24dFbb1YqQ3Ttt5OtgY8IfFXK3PweiWJYbXZew/mmQwMsu31gZW2gWH9JYlbj5ZoX1NxwY4lm7Ze6TLWR1p4btmsdWtOVMjaLrHLCq/vOV4s8Ha0NbYZNlQ/46e41Mq2/sDp3fOWJxZJFEW5dQIXR1cD7d0LcT+k5ooVMvKPtRgAAAAAAPi72Pq7+5i0h+ain9e76YXgelPf2lffNoNrGhQ2eoj142Pudc/Ykai6zlVJy3Lu3q1TPpugr/twWzWNRmOxmL2s+Qwe48K1nrX5A/GCL2yZJWKMG75y7cJgrrSwfaEgOCZ2TvaYJdv7x30wd+uHsiVbwvttJ7BmMddv6TZ9AmX6vs5E7Hq3frfjjs1eMGLXjvcXb6ytLSpXuM6YP9ef+1cqs/UD8ZLt4X6bGoorsMDpe+a4C7QDY57MJiJ2m3zZ0qW+m1A0byb8J2116LJf27Efxsl2xX69yC2mpEjCsPX3Gz1tedxU7SNxgv7zSSy5aW7UVIymEMv0R6+MMOWKomdH7Ji1yjfB1MTALHzcxCmZW5e9v9t8IeN3WqwY3m4AAAAAAH8jWUX8L7oLto+TpBxJLZpq7dotjWpULfVNEt3FfJwwdbaxxGqy8+paNRimltbVS61F9N+7H/cvBH3d3bdqHo/d+5q4VNrDICQ0U6FQGhuL4BUHAAAAAACvisrUZbO2F0XMniLbN2XpDTHGCF/5yQLuuYVfN8/av3ZBjxed25+jzzB3trc3YlAwtay6PCuvTvZ7z9FHqqrqGQx671flH0eSKqWSpFIpfD6n9zXhwewAAAAAAAC0MQlaczII044hv2GL3cjA9H2C/aIHhkX/58mb0Hm2Hs6GSjqXrXvyDoUwsvLlGpJ0FvFsbsdtG6CvYbF+v3QI+gAAAAAAAHQhCJ57QzX3j65NJ7hdUzeNzXp2IVv32Vh0ei97UBQd3bXwsxMUeCEBAAAAAAB4Ueg+/bbz8/K7pfzcb5f1n3WOGPchXNEHAAAAAADgBcv6T1xWnLjm67z+67/a8ZY1XNEHAAAAAADgxUr5Twz6lempqaTHlNe0n/gEQR8AAAAAAICXg0IqlmBcfUHbx09B0AcAAAAAAODlwGAZcDFxXaUMgj4AAAAAAAAvEYG7rw92K+50iQyCPgAAAAAAAC8Nwqb/3JG8+PcXzYpNhKAPAAAAAADAy4ImCl/71cmNfpVfL4PHawIAAAAAAPASIUTh7y5BX3BFHwAAAAAAgJcQBH0AAAAAAAAg6AMAAAAAAAAg6AMAAAAAAAAg6AMAAAAAAAAg6AMAAAAAAAAg6AMAAAAAAPDqgOfo/8MePKhNSr5ZWFhOkipojVfrvUejOjhYhIZ4mZkZQGsAAAAAAIL+y5byd/5wMioyYNTIUCaTDg3ySpHLlVlZhegEmDljGGR9AAAAADx1MHTnn5SUfBOl/L59XSHlv4LQi45eenQCoNMAWgMAAAAAEPRfKoWF5Z6eDtAOrzJ0AqDTANoBAAAAABD0XyokqYJr+a84dALA7RkAAAAAgKAPAAAAAAAAgKAPAAAAAADAq+qffOoOWV+cdCE7t7SuppUqNDFy9PAI9Tfl0lQN94prBTaOIur/s3zZvdRdF7DIKUG27I55Kklh9pnf7hY9EEswlqmFmWtf3/4uvKfTCpLiuJ9uCocND7eiwokFAAAAAABe1aCvbs45m5alchwyup8BC2u+n59wIeEEc/hEDywvNae2r8X/P+irSZVKhZHqzlm84sLp242OAaMHi9gUWVVu1tnjiVTB0AEmTyGaa9QqUq0mSQ2cVQAAAAAA4B8hkymeg6CvlNU2aYQe1vZWAiaOGYi8BYYOaiG9NPVi8r0aec05ChkWbSNNO5Wa+gBVl2rg5BU5yN5QVhy35yZmQi0qpoZOi/TFis+evFnQpMJoej5RIaF2LEytKLty+derdRibpS/C5Wq9zvskZY11So6li4WVGZOCafT1OIaOKr6Ior3Sn5957MK9WgVGE1lHjvBzFFAxhfjWpbS0wkYJSeVaOUVGuVuSXfdO3o0/fj2rUsGzcgqJCvBp+7uBOPe3bXF3K0ieY0DQG4MsuDA2CgAAAAAA/I0IgqGb+OdyKINrZc+pvnolOaO0pLxJRuHomxsacplmHu4uhvw+g0IG2lHyz19OUzuOmhw9dWQfIj/tTIZYialIWdMD0uaNSWGerLqko9crzfwmTY0a5UvLOp2eL8FkZbfOpMvdR0ROHetvLmts6fo4EyrHyMFQnnku/UbO/fvVcpzNNzYXcOg4WZ1/9HSZ3oDwN6eHD+DfP3n6bgOJNdy+ejqP5jE8auo4H+PqnMTbj+09/pbYxn/ym0OC9SqTzufVoH3JmkrqOIFjR747yqblVtbtOniaCgAAAAAA+Gf8c1f0ccKmf8hIRkby9etZtY0SjOfo7xseZm/KoKPOB5VJsFXVeWVqi0HW5iIORWDhZnXr/P1mqTOqMsvS1cbWiI1V5N2VCrw9LAwEVI2Lo3VGWs59qaC6slnPwtmCr8fkubkap1/ptk/9gGEhzMs3byYkn62Tklwj37CASF/91uKSGo5VmIOQz8KcvayvHy8tbXZydwt92w4juARDg1sIKWX1Mu2gnI69P9Du3c/L1lqfYi6KdFDTOeoyjMGx9XF2s+JSGwV8WkWjFE4wAAAAAADwqgV9DKex+LZ9A028VGq1sqHozsVLqcdw3pvBD5fLpc0kVZ/NpOLa4M9lUclaiULDwHAqi0WnUTBpa4ukvvzktl0n2zegWjW0NrcqMAbBouMYjrO4DFq3v1jgFEJg7D041JVUqxXS0qzMi+cTz/CG+jdKG8szd3ye2b4aRWjboqIym/MS0pJyqiVtI530++pKeLj3lhYZxuCyaVQqRuVwmBimadIu5bFZdCquoVFwXIXBeH0AAAAAAPDKBf1WcUGhROBiYchHP2i4fTxDa6qOV9e3ku2j6jV0BoeqkitUbZVUyeUqGptFUFSYNsNr752lMlkcfavgUf0cHj5Uh8ZiSq7SMaVSqUaLMVKpJDWMzvsk68tzK1mOLvp81AHQsDl9vRtKL+VXtlC5hMjW5/VoB732m3IpBI+8dz4lTeE0/u0wHiYrPJ94rb2r0LF3OlPdoiDbZsqaK+pVArZuKZxUAAAAAADgn/ePjdHXkE23k5KPJZc3aK+X4xpJVWFRC8eQx6Fqcz1JqnCWvr0pVnKrrIHESHFZRrHa0FKf1SlG00UmtqzGO6UKnpAnpDbeSsmvVFB5Rnq0uvLCehWmEBdkV7aou+xU2VTxW3zyhdtimVq7T3n1/Xv1FCNDvsDCTK/5wd1mplDIYzWXpKZXykh5VbWCZahvLOLxyJrC+y0qlYrsVBTdwMKS2XCrQEySinvJF/efLWtUw+kEAAAAAACeF//cFX2uaWike3Jaxu7NFxpaMa6BoZNH4AgfEwYhNRYojsYdbh4SNS6sb/WFjN1br0mbFExH39HOHLxTmMY5JoFDXC9eTNx6A8MUcra9vwuTyrZy8tK/cPq7ny8L9K1sjUWNXfbJNO8TFapKTbu45VexRM0Qmpu7hQ/o50AwqU5RIdKzp45t1mBKOd0uOJjN4Dp5mmSevfhtLpurZ2TnZliedeWSmfOjvbNNggY7XTh/ak28FGMZ9X/d1oBaBecTAAAAAAB4TuBSqfzxuWimQqE0NhY9032rSaVMplCSarUGwylUBpPBZNKomFre2tqqwGgEi8PEFK0yuUqjUWtwBsFl0ykaZYtEQWWxtaPwMUyjUkpbFdqBOpgGpzM5LDoVU8lapFKlhkKhUOkUNYmzuAT90d8tNCq5XKpQqVRopziFhnbKJBgUVJZKIW+Vkeq2QfVo12wmRa2QtbSSGgqurRtVLZdraCy6Rq58tHdS2doqV6hQ7akEh0VQyY66adRd6vkkK1buXLF8JpyFrzg4DQAAAIBXU1VVPYNBZ7GYf2qr3oM6Stcdj9f8Jz8Zl0Kjs7n0x2czOVwmp/0HgsshunRM6Fz+o01wKp3N61YCleByiSd3bKhMgttTY6LIz2Mwu84h+J1G+BOstv8xH83CaXQOn855tMqjuuGULvUEAAAAAADg7w7b0AT/IBqNKpcroR1eZegEQKcBtAMAAAAAIOi/VBwcLLKyCqEdXmXoBECnAbQDAAAAACDov1RCQ7zOnE27di0Xruu/gtCLjl56dAKg0wBaAwAAAABPHQ2a4B9kZmYwc8awpOSbKO2RpAoa5NV679GoDg4W6ARApwG0BgAAAAAg6L9UEhIznBwtQ0O84JruK34aDAzzgXYAAAAAwNMFQ3cAAAAAAACAoA8AAAAAAACAoA8AAAAAAACAoA8AAAAAAAB4OuBm3OdFdbU4IPDtwH5uHXM+XDLF29vx/1nsxi/28Xjst2e//rtrisXNmTfvDgzzhtcCAAAAAACCPniahELOvl9W/FN7Ryk/Ufv4Fwj6AAAAAAAQ9J97kpzELQfvytp/Yhja2YdG+HmYMH5vO1XFlQsHLpQrXUJGCfNON7jGDKae+SXb8I2hoWbUv7P+m786WFpaVVZWvWrlWwwG7ZPl30tlciqFunjRFH9/58lTVnl42N28WShubJ41c9jx4yl19U0zZwwbMzrs8aL27D23+6dTAj2esbFwxfJZIhHvq6/jrl3LaRBL7O3MV6+atWr1D1KpzNBQ8K85o3SbjBv/yfwPJgQF9UHTb874dPr01+ztzNZ+uqu5WUanUxcumOTpaZ+ZWfDR0m1cDpvNZn7wn/He3o6d6+ziYgXvMQAAAACAv5NMpnglgr6aVDH1HaJH+1iyMHldZc61rNMnGAZT/UyJXjcjW+7fbeL2jxrZ15BPNZuqZrAUpaRarVRp/ub6Uyh4VVX9vl9WUCiUKVNXTp8+NCoy4M6d0rff3ZCUsIVCwVC8Rku/+fbo7p/OHti3srFRMmXa6h6Dfmur7OD+1Xw+59PPfjp8JHFgmPfpM1fiT3yOFv285yxJqlEP4e7d+x0pH5kwIfzwkQQU9FGx+QWlaJOYN9cu/W8Miu/V1eKRoz9KufxNZVV97Ia5ffrYXrx0/X/fHP5u25LOdYZ3GgAAAADAP+UVGLqDU1h8npCLqXkEh9ZcdKyipFmBpZ09XCYwaCqutRo4a6h+xeXUszfrZBhGGNmFR7kRN1MvFzeJK66exvoFazJONLhOH9RRnEqSn3nswr1aBUYTWUeO8HMUUGWV+UmJd8ua0CyWqYdfuK8+Vp6264i4f0ykh+BP1BSlZ3PLRzk78dLX6LunpwNKzBqNJv163q4fl6I5KGej1F5TI0bTA/p7ou8GBnxvL3sWi0mn06qr63ssHG21+atDBMHIySliMGhmZoZWlsYffrTN3d129Kgw1GF4fJPXRwTHbtwrlytPnb46ZvRAHMevpuWsWLlTtxSl+bq6JjtbsyNHk06c/K2+XtLQ0KJbpKszvLsAAAAAACDo/x0oNDrBpOKYRqXWqFTqpqpG+/CIIY6ClpuXT+YyQsZE2zCass8knzyvFxPh41PSXGQbFO0vlFxWq0mVGmsfsUNW5x89XSYYGD7cEitKSjp5WhAz2rImNadcv++ooQKarD4jpfCercBV325wFCli/bkaGhkJMq7/0G0mi9U+0EguJ1Hcf9R/wXHtQT2M070H63v3Hixe8r+Tx2NFIt7GL/ahclCy//abhXfulOw/cHHMuKXff7fk8a1Qf2Doa0Fnz6WdOnVlzeq30RyFQvXzT8totEenTfTwRd9sne/r6/xbyq0vvzzYrc4AAAAAAOAfS7+v0LGS0qKMojqWgQVXm9oJoVkfJ0MRS12eL2ZYOziZcPT0jV1c9TV1tU04k4ZjOI3JZdHwLkWomopLajhWXg5CvkDo7GXNqyktleA4lay7e6+gXs02MOsX4WUvoGJskY29oeDpxV0U6wf075N27Q6aLigoFwi4BgZ6f3zz+vpmc3NDlPJbWmQJiZlozq1b93b/dNrFxXr5JzNsrE3z8suoVApJkt02nDRxyO7dZ9DeLS0N0feQYM/EpJtoflNTy+avtLG+rq7Rzc0W9RxOnkyFtxMAAAAAwPPj5b+iL6vN37Mxv22SKrC2DR3cx5yNVaIjJ9h8JgVXSRtbVFQLBk3b5aGw2AwaKZcqn1iatFHaWJ654/PMhx0loW0rzS00JCKz4Fb8iUtKnueAgFBvgolTaPSnfCCrVr715eaDP/wQz2TSN23895/a1tvb3sLcePKUVXw++z/vj/vwo2+DAt2P/Zp85GiShbmRlZVxaIhXYWH5N98e/Wzdzx99OLVjQycnSyWpHDMmSvfjmtVvbfxi3759F0Qi/uy3hqM5ixdNnh6zhk6nvv/v8W+/u+FQ3CV4UwEAAAAAPA9wqVTeQ5yVyhUKpbGx6EU/vKasizuSaIPbbsbFdKN3WEwmTVV+Kf5Ipcv08U56WMuNA6fSDcJmRBiiZN506+KO3zhjp7iUHj1X6BA+OYhfdS7+SL3L9Ajq6V9uG7we6VV+aW+ByevRDnrtY3koBI/NomqUcoVMQTbfLzh/pkBv6Ig3nP/QqJ2ExAwnR8vnuQHv36956+31x4+tp9Go8G55RvILygaG+UA7AAAAAK+aqqp6BoPOYjH/1Fa9B/WOR+5gr8TQHd3NuELtlx6PYHYbjENhmNvx5ffulUkwTCHOzaplmpoKn9jaNJ6FmV7zg7vNTFQaq7kkNb1SRjamHYg/dU/D43NNzPRFBJ2G45iiuaJcLCFf7Jb7esuhKdNWfbrmbUj5AAAAAAAvnFf+A7NwuoF735Cmq2d/OCiRNMsEDtHhxmxc9qTVGWZOUSHSs6eObdZgSjndLjiYzeA7+1pWpCftuiqTNMkZNl7DLJnSipvHtE/difIUvsBt8968segL3iQAAAAAAC9kzn25h+6oFdJmGc7mEvQuf7rQkFJpi4rO5dCpOPpJrZTJpQq1RqPWUOhsDsGgqGUtUiWNxSVwlbS1Rc3gEpi0RUlls1g0XKWQt8pIddvzb2gEi82kaJQKmZxUaVABGEZncFh0CilrbtUwuSxmr5fCn/+hO+BvAEN3AAAAgFfTsx6685Jf0acwWHo9PPoGp7HYj55Zg1NQA9O7DKqnEFyO7jO1aCyObk0uv/3uWiqDyWN0eT1wOoNN77obOsHXg7MXAAAAAAD8Y2jQBP8sMzMDaIRXXH5BGTQCAAAAAJ46+PhSAAAAAAAAIOgDAAAAAAAAIOgDAAAAAAAAIOgDAAAAAAAAIOi/dJiscIlE+kx3UVlZ7+QyCU0sX7Hji037/7ZDCx/8fnr6nd7Xmffepl27T/3lXdy4kX/nTsmfXQQAAAAA8LKCp+68olaumPV37u7ihc3PehdxhxMCAtxcXKz/1CIAAAAAAAj64G+SlHQzduMvBMFQqdRcLuu7bYuZzPZH+CsUShu7cRPGD87KKlSSqu++XYTC6/kL6bGxv6CVTUxEG2PnGRkJo15bEBDgeuNGPp1OnTlz2OsjglNSst//YLNAj+vl5aAravmKHXp63PkfTLC0Hj1+XHhBQTmLxVy5YiYqcPv3xzd9ud/eztzGxrS1Vbbj+w876hYZNd/NzebOnZLTpzaiSp45k4Zm+vu7rFk9m0qloKJGjQy9mVVIpVAnTRqyf/8FUqXa+Pk8Pz/n8MHvb1g/58zZtAcPaktLqygUSr9+bv/9aBqq9vv/2Zx6JdvYSESn0/r2dUEF9ljya1H99PX11n32rq4mjY0ti5f8r6ioor6haeqUSB9vpx93nTp1+gpqN6GA9695G/k8DodDfPLxm62t8o5FwQM85y/4Gm2l0WhQy0yaOATONwAAAAC8rGDozvP3klDwK1dvf7np33GH1qjV6jNnr3ZaRKmoqHvjjeAL5zdPmxq19tPdEol04aKtx46uO3d20xtvhCz58BtdCWjDkyc2oFiM1kFzFn/4v/Xr5qB17OzMuu2uqqohMjLg12PrBg/2+37HCbFYsmr1D78lf3P81/U1NWIcxzuvjDK3sbEQpfyrV3PS0/NQgegLdQZ0Q25QUePGDkq8tAX1T7Ky7qJFb89+fecPJzsfWn5+2cEDq48e+fS77b82NDSfPZeWl1eadmX7gf2r7uRpR9f0WHJ9ffPkyREdKR/Zf+ACj8c+e+YLtDv0Y1iYd/gg3+WfzIyKDHhQUfv9d0suXtg8Z87I9Rv2dF701dcHPT3t0VboC3UnUPcGzjcAAAAAvKzgiv7zyMvTQfdBWkZGwsrK+s6LWCzmwDAfNBEa4vX1lkPZ2ffKy2uGj1iM5sjkio4h/hERfdF3ExP9Bw9qNRrNtWt3ggd4oDmREX2/3HygW3aPGOKPJoyNRcnJN3Nyil2crYVCHpoTHR2YlHSzW938/bUX3ROTMq/fyIuI/ABNV1a115AgGCEhXrpqh4Z6oU4CKrO6uqHz5mg+Wk23TlVVfWZmQWBgH1QH1DcICnR/UslKJTmgv0fnclB237fvwocffRsQ4Pr+v8d1XuTkaLn3l3MHD12qq2tCPYTOi1JSslGZR48m67olN7MKHR0t4HwDAAAAwMtEl7Ug6D+v3S8a9UmL5HIlCu4oQ2u0tHPc3GzOnd3UvQRqlxIoFPxJBVLa/PG6sQimbmL8uEFr17z9pL08qcxeDq3D4yXT6TQGg955joODxflzmxISM3/8MX7btl9PxX/esSh6+KJ9e1eg/sPFSzfWrNnVrfA1q2dHRQbAOQYAAACAlx4M3XnBqNXq1NTbaOJqWo6vj5O7u11ZWZXuqvnly1lHjiY9vgnqFfj6OqWn56HppOSbvZfv4mKVk1sskynQ9Llz1560WkiwZ2JSpq6rsf3743l5pX/tcLy8HHRP4yFJVeqV7D9e8s97zqJjCR/ku3PHR7dzilpb5ahroVAo0aKaGjEqFpUQF5fQ0evQLRowwOPixetoAi1duuw73WECAAAAALyU4Ir+C0Yo5KFAvOnL/QoFuTF2ru5u3XnvbUJp3sRE9Onad3rcat2n765e8yPKuyEhnrq/AzyJSMT/cMnUYcMXsdlEUJB7t4E3HdCiMaMHTpi4nCAYqLPh7Gz11w4nMiLg+PGUodEL0X79/VxQ3f5gya4u1pOnrrS2MjE2Fq5aOQu1w6BBvqtW/4g6DKtXvTV8xGI6nbZsaczY8R/v/ul0x6L35o1dtHjruPEf6+lxR40K7fjDFgAAAADAyweXSuWPz0UzFQqlsbEIGuiZSkjM0A24/4NQVDUwGiauP/1Ma7Vj54nx48J5PPaSD7+JiOg7ZLA/vFLP1WkAAAAAgJdDVVU9g0FnsZh/aqveg7pMpoAx+uCJysqq+/ab7eXpEBDgOmigLzQIAAAAAMCLCIL+C/Vq0ajP+nI+smL5TPQFrQ0AAAAA8EKDm3EBAAAAAAB4Cf3dV/TJ+uKkC9m5pXU1rVShiZGjh0eovylXVhz3003hsOHhVtRnsEtxyq5jZ8tVXY/bKHyoKPcaHjktyJbdbQNVRdKpwzWuMaPsub31g1QN94prBTaOIiqcRgAAAAAA4NUO+urmnLNpWSrHIaP7GbCw5vv5CRcSTjCHT7BXkWo1SWqeyU6pfN9xo11Rzm+tPH/kJhYcPsSajuEUgqB6O2As4vENNColqo1K3Xt1yNa81JzavhYQ9AEAAAAAwCsf9JWy2iaN0MPa3krAxDEDkbfA0EEt5Oge+CjO/W1b3N0KkucYEPTGIAsuRdVw5/qvl0rEJEZjG/kMDvCl5Ow5JQ2dEuzIluYeO3qs1i0mxsuU0px28FyRjSstMx+z4IkfiCWtmIFnQFsJbTtFmZ7P0+Z5aj0VxzCCIxRqb22W3Uv95RymvaLPkBalJP/6W3kzQ9+xb8CwYMNHYb46N+5gPm9wZLQTtezK5fjrdTI1xnXwej3CRnY1OflejbzmHIUMCxdVJCXeLWtSYDSWqYdfuK8+Vp6264i4f0ykhwDOMQAAAAAA8A/4e8foM7hW9pzqq1eSM0pLyptkFI6+uaEht+3zVGVNJXWcwLEj3x1l03Ir63adiqzMPXa+xmxgxJvToyJtJL/FZzxgiPQ19eViFSZvLK+js5U195tVmLT2fhPLSJ9KypqqcZthE6KmDrXUldB7XdSkCiHVWMPtqydzGf6joqcNtZRnpiTebf8QJaWkIik+h3T3C7Zj1t9KjbuB+bwe9eaEAKuqzJPXmgw93F0M+X0GhQy0o5Sm5pTre46aMGTcMFdOeeG9BhVT325wlKc5C04wAAAAAADwz/h7r+jjhE3/kJGMjOTr17NqGyUYz9HfNzzM3kTbB+DY+ji7WXGpjQI+raJRqqovL2ngWUTZ6OmxMKarhVF2yX1lH0uBKq+yRUqprmGauvLFFTUKKVFbSxN6CCjVNJapvYmRHhvHdCX8sSqppaX5dQy7/t4ORoRGNMrcmcqi15dimEqSeyGnxNAruq8pjybPya9l2AX0seCzcY67W96d3AdNHoaok0RlEmymBqeSdXfvFTh4+1mZ9YswxAkqRhHZ2Gso8EwjAAAAAADwSgR9DKex+LZ9A028VGq1sqHozsVLqcdwXkwgWkLlsVl0Kq6hUXBchZEaabMCYxBshvZyP5NF0CgqqZJqZ05cL6+rptTJhNa2gtaU8oZqVp3GwNmYqUYlsJgMCo5pKO0l/KEaqRQtLSqqGYNBo1AxBk+Pob1hGMX8olsJGMUsmC9kUXFS0dgsqc459/m1h1sJ2M2KhyN8cKZNaEhEZsGt+BOXlDzPAQGh3gQTp9DocHYBAAAAAIBXJOi3igsKJQIXC0M++kHD7eMZWlN1vLq+VUXHcAzHO6+qYbLpWJVSqcYwKkYqlCo1ncMmDMwNqQUPitTNbCuRiaCGvHK/iKHQdzRg49XaEv5ClSg0gqCo5Gpd6pdU1zUTemiXhInrEH9VamL6NceoAcY0Lptj2j9gjL+w/cZbCp1LbbjzMOnT9Qz7BOrZ+3o33y84fybhAm/EG85/etTOhYvXt249fDhu7R9Z+Zd95ydNHPJMX6vP1v2Evn/04TR4kwAAAAAAvIj+1jH6GrLpdlLyseTyBu0weFwjqSosauEY8jg91IImtDbnN5ZkV6JVFRW5RXVsEws9GsPAyJiszL5PMTbisPVFei2l2TUsMzMC/+sNwDK35cvv3iuTYGTt3RP7Ll+tkGt3z+FbOLqHOZHXzt6qULCMHYWKe+X1OFsoZMuKcq8VtOAUbSeJJFUYKU47EH/qnobH55qY6YsIOg11WRTNFeViCflsukutss1fHYRzFwAAAAAA9OLvvaLPNQ2NdE9Oy9i9+UJDK8Y1MHTyCBzhY8LQFD++LsPMJSqo9dzxYzelrQ0qYb9hjuYEhtOFFnx5Zo2RqYCGE0JjmiRXY23Gp+PKv1olnGLg3jek4eqvX+8UKzB998DRloSmXDufyuTaBXg5H7p6Js1sUkDfiMarF386fA4jpbhB32g2lck0FiiOxh1uHhI13NeyIj1p11WZpEnOsPEaZsmUVtw8pn3qTpSn8E/XKC0t91/zNvJ5HA6H+OTjN/v2dT18JHHXrtPixmYKTvll74qFi7beuVMybfrqn3Z/3LFVVtbdTz/7qbZW3NjUsmH9nEEDfc9fSI+N/UWlUpuYiDbGzjMyEj5ecmTUfDc3G1Ta6VMbT5xMWb9hD4dNBAS4Lf9kBiqzqKhiaPTCisq68ePC//sRXNoHAAAAAICg/8RQTRfYuUSY2SlJtVqjzdIMJoPJpOIaq2HTTKistnEx3PZpnEY19fQb6+StRjAqwSG0D8ekclyHv26jonG4OI6L/MePdtcwuASGMXso4bFuhnnUNAOMYOh+Imz9p07FWGyMiuv1CQu1DdQ+OJ/KIDgsmqb/kBg1nYtitcB84MRoks5iEBT7/sFmfmgVjfYWXA6BUzSuI163jsJoBItN04swdVRpNBo1htEZ2oVmXpNnaJjcv9JKDypqv/9uibe3Y/ypVJS8Dx1c896/v8y9/TOfzzlzNq28vHrZ0un5BWWdUz7yeezeyZOHvD4iGKX22znFEokU9Qeupn7HZNIPxSUs+fCbH3b+9/GSqVSKsbHwy03/bm5ufe/fm65d/d7AQO/jT76/fj0PlVlSUnXk8FrUVfDwipnz7kihkAdvGAAAAAAACPo9o9DobO5jt6nidC6f3tEZ6JhGsZvH6N5XYHK5zIeFETwe0WsJ3fbN4T86XgqdeLgWhc5i63UeVM9i89vLorH47WmdTrDoXT5dC2dyuExOe03Z9K4VRYXr/cUmcnK03PvLuYOHLtXVNdXXN6M5KGS/OePToCD3SROHWFgYoij/+FaTJg3Z8PnemzcLh74WOGZ02JUrt8vLa4aPWIwWyeQKlPt7LBnx93dB32/fLrKxNkUpH02vXvUWpr1nID042IPN1h6zkZGwqqoegj4AAAAAAAR98NdFD1+0b++KwMA+Fy/dWLNmF5qzbGlMRUXdnr1nR47+aPknMxwdLHRrfvX1oW3fHUMTRw9/Fj00KCzU59fjlxcs2jI43D8yoq+bm825s5t6L1nbqSHa+01tf6zoenLQ4EN/AQAAAAAg6IOnpKZG7OXloNFo4uIS0I/Nza0rV/2wYf2chQsmsVjMlJRsF2drhUJ7U8K/3xuLvnRbffTfbQsXTJw0cYh7H7s5c2PnfzChrKyqurrByEh4+XJWTa141MjQbiV31qePbUlJZVNTC5/PWb3mx5AQL3ghAAAAAABeRDKZAoL+c2r1qreGj1hMp9OWLY0ZO/7jI0eTUNb39Z/l5GjJ47HXrJ6NsjuO40OjF56Kj+3YytHRIjh0roO9uUDAXffpu1wu67tti+e9twmtaWIi+nTtO4+XvPun0x2bo5K//uqDt9/5/EFFrbWV8ZLFU1JTs+G1AAAAAAB4ceFSqfzxuWimQqE0NhZBAz1TCYkZA8N8oB3gNIDTAAAAAHgFVVXVMxh0Fov5p7bqPah3XM7H/ubn6AMAAAAAAAD+HhD0AQAAAAAAgKAPAAAAAAAAgKAPAAAAAAAAgKAPAAAAAAAAgKAPAAAAAAAAgKAPAAAAAAAABH0AAAAAAAAABH0AAAAAAADA84QGTfD8qK9vWvbx9us38gR6PIGAO2ZM2Phx4S/lka5YuZPP58z/YELHnP0HLpw7l/799iVwGgAAAAAAQNB/2Ywa819/P5crKdtwHC8sLI8aukAqlcdMHwotAwAAAAAAIOi/qBISM2pqxOvXzUEpH/3o4GDx6dq3v9i038hIuHXr4RPHN6CZKSnZSz76Jjlxa+zGX86cSUNz/P1d1qyeTaVSLK1HvxbVT19fb91n73aU+dm6n44cTUbl9Q/y2LB+TmrqbbQhQTBUKjWXy/pu22Imk37+Qnps7C9ojomJaGPsPLQ73bbLV+yg02nLlsag6c9jf9H+tWFpzPwFXxcVVWg0mpkzh02aOAQtmvOvjenX7/C47H793NaumZ2cnLXxi30kqZo8OWLqlEhdUc3Nre//Z/OdvFIKBZ85Yxj66qjhd9t/3fTlAVsbU3Nzg1f81Ye3AHiZDAzzgZMcAPBq/rqDoA96kJdXGhToTqNRO586b874NDIiYNZb61BW5vHYh48kTpww+OrVnPT0vHNnN6F1UIDetfsUis719c0oWw8a6NuxeXLyzfhTV1CvgE6nTpu+Zt/+CyhPX7l6O/PGD2ZmBtOmrz5z9mr4IL+Fi7ZeTf0OJf5DcQlLPvzmh53/1W2OynwteqEu6McdTtj947Kvvj7o6Wm/7dtFKOj7B7zl7+diYKDn5mbzv63zUeckaMC7N2/eRV2OtGu5ebl79fQ4HTX5ekucQMBNufyNRCLt2292RyUbGppRdyL39h4+n41qyGIx4dcEAC9xxxXOcwDAK/LrDoI+6E4uVz4+U63WUCj4uLGDjv16eeqUSBT0b6Tv/G77r9dv5EVEfoBWqKyq162pVJID+nt03jb1yu3QEC+U4NF0WJh3WlouCvpeng4o5aM5RkbCysr67Ox75eU1w0csRnNkcgUK4h2bW1ubONibJyZm2tmZsVmEk5NlSko22t3Ro8loaVVVw82swlEjQzkc4oP5X4tE/MZGSX1DE5NBd3Gx6pzytTVJzZ43bwya4HJZ/n7O19JzdfNzcoqdna1QHwBNDx7sh8p/ZV991OeBtwCA8xwAAMDzHvTJ+uKkC9m5pXU1rVShiZGjh0eovylXVhz3003hsOHhVtRndiyqhvzM+Av5RdVSkuBZWln4hPn5mjF6XLMi6dThOteYN+y5z81jh1Dk/ebboyqVmkptr1NiUmZgoBuO4xMnDP5y80F7OzNvL0ddLB4/btDaNW933pxOpzEY9G5lUiiPDq9tQBDW+S8GOm5uNro/DjzurbdGHIpLsLAwnDEjWjdnzerZUZEBHSvs2Hni+PHf4g6tRXVOfNipZRE9XJhH3ZVONcHhjQcAAAAA8Kw97Zyrbs45m5alMA8bHf3u7KhoX879pIQTt5o1ahWpVpOk5tkdieRO6t4jeaSDz/iZI94c0ceMLIvff/lWvaqndTUqJaqNSq15jl6J8EG+LBZj0eKt2vppNMdP/PbJ8h3rPtUOuA8Kcs/LL92z99ykSdph8SHBnqgPgNZB09u/P56XV9pjgUGBfVJT26+RJyXdDA72fHwdd3e7srKq6uoGNH35ctaRo0mdlw6LDrpy9faJkyljxwxEPw4Y4HHx4nVd9ZYu+04mU9TUiD087FHKv3OnJOvW3ScdGqq/7mq9QqFMv54XFOje0ce4c6dUKpXragjvRgAAAACAp+hpX9FXymqbNEIPa3srARPHDETeAkMHtZDTFkoxce5v2+LuVpA8x4CgNwZZcCmqhjvXf71UIiYxGtvIZ3CALyVnzylp6JRgR7Y099jRY7VuMTFeppTmtIPnimxcaZn5mAVP/EAsacUMPAPaSni4X0Xd9ZRS3H3AsGAzAYOKqwXGZvoWd+qZ2v1230t/m4dXvsV39+/LNR01NNSMqp3eo50OkF3fdU5iKpJXlNc10IwC+uk33C4pr5dznQJGR9mzytPQUkuRvKxW0kyy3AaFRbrzyMr8pMS7ZU0KjMYy9fAL99XH0GpHxP1jIj0Ef7Tl6HTamVNfbPh872tDF4gbJcZGoq1b5qOIrFv6xuvB323/NfbzubrcPGb0wAkTlxMEAyV1Z2erHgsMCfEKD/cbP+ETFMRtbc1QWH98bIzultx5723CcdzERPTp2ne6nBw06pDB/hKJVDd6/r15Y1E/ZNz4j/X0uKNGhaK9T5wwZN57X0RGzffycpj/wQSU/ld8MvPxmrw3b8yChVtQhdFeln8yw8LCUDdfKOShH19/40OBgGtpadTY2AJvSAAAAACApwXXXU/tBs1UKJTGxqI/XZ5GWnjxwpFbFK9gN0cjgaGZgI2rteM2mu8e2H651LBPZIidsfzur6drvKZE+alyfz5UYj54QIAZpTo9+WiecMxo06yjt/SGDxukX3Nuz+VchaD/hEH+jNIje+8IBtlXn7xa7zhgVLAxvTInrq2EfobtA1HImts//ZRv8kZ0lD2zPfxr1EqFCmVVvOZ29728GcBIjT9S7zJ9IHZi3x2TkdGDLWmauvy9e7XTQfK0HYcqrKIHhZjJbh2/kCy1fX20p3lzwdH4B/ZjowOkV3ccKjcfMnCgEyG++duvdwzHT+sjOXXmMq/vyAABTVafkfLAMMTflWi4W0aKbE1Evd5fmpCY8TzfnaZSqQeEzPl598cODhbwVnl20Gng5ekA7QBeGjezCnt86g6c5wCAV+HX3Z9SVVXPYND/7PNIeg/qMpmCINrHrj/tK/o4YdM/ZCQjI/n69azaRgnGc/T3DQ+zN0GLGBxbH2c3Ky61UcCnVTRKVfXlJQ08iygbPT0WxnS1MMouua/sYylQ5VW2SCnVNUxTV764okYhJWpraUIPAaWaxjK1NzHSY+OYroTO/YsWGU7nc6idxqRT6NrMr6q+99hexCrbXg+CyhZYWwqEArmFAYsjNbY04AvYRsbM0qZWEsMxKktgZ2sg5FOYxnzGLVkrieNUsu7uvQIHbz8rs34RhjhBxSgiG3sN5UW+1Tn+VOrCRVs/+M8ESPkAAAAAAC+ipx5FcRqLb9s30MRLpVYrG4ruXLyUegznxQSiJVQem0Wn4hoaBcdVGKmRNiswBsFmaG/NZLIIGkUlVVLtzInr5XXVlDqZ0NpW0JpS3lDNqtMYOBsz1agEFpNBwTHtk2jaSni0WyaLoVa2KHq4y7OHvcjJ32sVBoeOdkGnUKk0Bp1JRb2GthtI0Q7R/+hMBl17bymu/UYq1UyH0JCIzIJb8ScuKXmeAwJCvQkmTqHRX+wzI3poEPqCdwgA4FnYsGFPRERfHx8n3Y8kSc5fsGXVylk7f4gPH+Tr7e0okyn27T/f0NCs0WBsNoFmOjlZ5heUHTxwcenSmKtXc/YfuGBqqk+hUBh02qBBvu7udo2NkhUrd2764t+dd/TxJ9sJJoPBbP+NzOWy57w7svMKFRW1Bw5eapFIVSq1sbFo6NB+lpbGaH5GZsGpU1doVAqNRjUzNxj6WqCeHldX4Dtvv2FhYdRRwsJFW5YsnmZoqKf78Ztvjvj6Ovfr54bWNDHRn/uv0R3H+J8Pvg4P9xs9KhQtsrQ0eXv2CN2inTtPoE3QUZeXVx8//ptUKkf/vohE/NdHDBAK+Z1rW1fX9NXXhxbMn8jlEqfPXL2enkewGHQ6DTVOZEQAqipqhA8/+tbOzgytrJArmQRjwvhwdEQdLUaSKtSkA8N8+vfXDg3tmN+xC1SOl5dDR7uhZlEoyOjoQH8/lx4bFu3UwEAwedIQpVL18Sff//vfYy3bGketVq9a/ePoUWGenva6TZ5Uh90/nc7LK9U9aqKpqdXP1/mNN4I7Htvw856z167lboydS6O1J5aWFlnc4YSS4koqjYLOjb7+rgMGeHQ7we4VPUAtqVSSQYF9BgzocotaRxNp1Bq5gnR3tx0xvD8qvHNTSCQyCwvDSROHcLks9OODB7UHD11qaZGiQ+brcYYM9rexMe3cCK0tcpE+f8rkSD6f/dm6n1Fr2Nubw9scvIxBv1VcUCgRuFgYan81abh9PENrqo5X17eq6Cgid33aiobJpmNVSqUaw6gYqVCq1HQOmzAwN6QWPChSN7OtRCaCGvLK/SKGQt/RgI1Xa0t40mFwReYsyd3cKpmVGdH+O1VakJYjs3M1fHwvrIdPnqE8On5SrVA9yv+d99PDXrvOwOl6hn0C9ex9vZvvF5w/k3CBN+INZxacWwAA8CQDgj2vXM3pCPo3MgpQMBIIeB0roBTL43HejInWhb8Nn/+8csWsziU4OljMmTMKa/tIvpWrfvh8w7+etK+YmKGdc3lnEol03fo9kydFoFyOEm1CQsamLw+s++zdvPyyn38+u3DBBFNT7fOIUcj7PHbv8k9mokj9pw6zpkaMUimHo/136fr1/M5/nS8rq7pzp8TFxbrz+nt/OR89NBB1WnQ9jWPHLr/5ZnTnFX7ec+b1Ef1RmjwUl1BYUL5w4SRUJuoUbdkaV1lRN3PmcLQOQTAWLZysWz83t2TL1iPr173bucVQrb76+mBrq2zIEP/O85/Ubqi7hcKrhbkh6rf0uMKevecuX84KC/MZN3bQ7l2n/vvf6Simnzt3DXWcOlJ+t1etWx3CB/kNHuyHtT2z4Ztvj17+LSsk2EvXO0IpH3WxUOuh10hXyNdbDqGuy7JlMWgvxSWVW7YcYnMIH2/Hzjs6dy597NiBZqYGy1fs7Bb0OzeRXK78bvuv320//q+2WnVUr+2RGCmoq/nWrBHo9Fu3/ufp06L8/V3Rops3C7/YtP+jD6fqzo2ORjhz5urOH04sXDApZvprqMDVq2bBI+bA8+ApP3VHQzbdTko+llzeoNAmYI2kqrCohWPI4/SwH5rQ2pzfWJJdiVZVVOQW1bFNLPRoDAMjY7Iy+z7F2IjD1hfptZRm17DMzIje3y44y7CPm1CclrjvQnFFk4pUiG+dOht3pUGKM3rcS/tmDC6Xrqirb8UwVfP9yjrlXzpmUpx2IP7UPQ2PzzUx0xcRdBp6byuaK8rFEhJOMAAA6EG/AFcUc1FC1f145crtkK5PBkOBr6WlfYAmyrVrVr9Npfb8dOaq6gZ9ff5fC1VJSZmurja6BEmlUlDWXLJ4Ckrzp09fGT0qRJfkkLFjBuI45date3+2fDdXm7S03IfHmO3j8yiMjh83aM/esyqV6rGjlummUXLtlvKrquobG1v8/FxQn+TixRszZgzT9RxQbJ05Y3j69fzOn4Wi4+pqLZfLm5q6POrA0FAw481hJ+NT/uBRCIU8a2vj0tLqnv8NJMmmRolAqO2kBQS4MgkGatXGRsnZc9cmtz0prkdPqgODQe/Tx7a4qFL3Y3p6nrWV8ZBOH7SSX1BWV9c0cUK47hW3sTb55OMZ3VI+wmTSUIjPyrpra2vSy6ExmfTZb40oLCy/f7+mS6jAcR9vh+LiKjR9KeGGt5eDLuUjXtppl8SkzG5FoRWKi7XVtrIytrI0ysgogLc5eB487Sv6XNPQSPfktIzdmy80tGJcA0Mnj8ARPiYMTfHj6zLMXKKCWs8dP3ZT2tqgEvYb5mhOYDhdaMGXZ9YYmQpoOCE0pklyNdZmfDreewqn0E0DQkZSbiRfubjtclt/3cg6eHhfLwMaQ9PDXnS/QnDCwM2FOBT/6+Y0IxtbPUNu6185ZCrf2deyIj1p11WZpEnOsPEaZsmUVtw8pn3qTpSnEM4xAAB47N8eGs3X1/nq1dthYT6trbLS0kqvf3W5qBwZ0Xfd+p9XrvoBxT5TE/1+/Vw7Rm7oZGQWvP3OBjTBZhML5k/4a9Woqq53dury4DLdzW2VlfVOneaj2OfkaPngQY2vr9OfuPKlwfv167Nn75lBg3xQfEcp3NPLoaFBoltkb29hbW1y5mxa50GSI98I+XbbsZTUW7a2Zg725ujYO3dgsrOLdH8BQImfx2MbGz/6B0Yk4olE/IqKOiOjLs96u5NXiroBaOVudbOzM1MqVSiO/5EDQauhCDt2zKBu81et/lE3ERzs6d7HTjc9fdrQ9Rv23MjIH/paP91gpyfpsQ6o23A7+55/3/ZUrbu07+fndODgJbG4WSDgoWO3tzPv3Ovj8zmPFy7Q4+3YcTwqst+bMdH19c2ofZ5UDdQ+qCbl5TXd5mfeLLSz047PqXhQ5+7e5c4+F2drVLHOc1CXNfVKNup1tPev3Kxzc4v/1NkCwIsR9HEKXWDnEmFmpyTVag36kcpgMphMKq6xGjbNhKobM8Ntn8ZpVFNPv7FO3moEoxIcgop+oVE5rsNft1HROFz0+03kP360u4bBJVC/u4cSOu+ZxuI7BgSZe/qr2obu41QawSaY2lWIx/aCm/QfEqOmc2k0dmD4bG81TqHQ6FRNgIrKpjI1vlOnYiztb0WqxcDIGA1T+zdXtsmgyZEYi0FgbUvbfncR1rppCpXtGmHqqNJoNGoMozM4BE4x85o8Q8PkwgkGAAA9CwnxPHjwEgr6qam3AwLcul2wR5Fuzeq3CwvLa2rFV9Nyzp2/tmzp9M4r+Hg7zpkzSqkkb2YVfrn54JLFk5nMHj8h8VEeRcJCvadMiewUK9U9boKKfSrHaGgowDTaYSpZWXf7PgyvbT0H9A+VZsL4wStW7gzs594x393d7tO179y/X1NSWrn/wEUHB4uY6a91LBU3SgQCbahVkqpedoo6FbouEGJvbz5v7pge/9xBEHTd4Xd0mXQ2xs7TdQw62k1fnz9p4pDO/QqdTz5+08LCqLq6/ujRyz/vORMzfSim/dh1QXCwR0ZGQXi43++2T0cd9h+4gL4w7ZOm6cOiA/u3PVq6pqaxrKza398ZnRuo9ZKTs0aMGEB2Ovb4+NSjx5LbkrfV/PkTO+YfPpKEemUcDsva2hT9y7xla9zHbeN8eul2kioVjUrt3BRBQX3QUWtPElVvJ4OulVAJrq7WM2YM080UCniZmYXwHgcvYdBHUGRmcx+7ERWnc/n0js5AxzSVQfAY3fsKTC734TBGCsHjEb2W0GlDnEYQfIJ4vPfx+F5oLDa/fQdsQccW7ePqiY790Nkc+sOjYvNpXZdiFPrDaQqDTe+6A7RID84uAAB4Ijtbs9ZWOQpzV6/e7jZGRRfyRCKei4u1C2YdEuy1Zu2u2znFjz+Bjk6n+fu53L5dlHmzsF+AW4870uXRHheZGIvy8koHDXr0dLzMzAIPDzs0Pz+/VBvTH8ovKBs/PrzHQlgsolUqwzC9jpytq6cuzQcGuv/22607eSVz3h15IyO/84YoTw8dGrh//3nd+iiSVleLUZ7m861RagwN8Z6/4OtJEwc//qnnxkbCpqYWtHLH9fuGhmaxuNnc3AB1UTgcQndHclJS5uXfsszNDR+vM2petVojFHI7ukxParf7D2piY39xdHziraVGRqJx4wYtX7FDF/QRM1ODyoq6zh/N3qPOdUB9nsGD/ZRK5ceffG9jY6oL5cmXb0ql8jn/2tjR30BB39RE/9SpqyqVCqX/6Ogg9FVcXHH4cGKnTpry2rWctWveLi2t3rHzRGiIp6+vUy8pHzV7SUnFiOH9y8trOppi+/fHeTyO7nUxMdZHJ0PnD51E54yVlfHvnl0APA8o0AQAAAD+ESHBHidOakdbmpkZdFsUdzghMbF9GPT9+zW1tWKTJzwxGvUWUKSzsTb9CxUYMMDzds6939qGYaDAd+lSxo+74uVy5eDB/keOJlVU1GLaW4FbfvjxpJGhwMPdrsdCXJyt4k+m6P4IcO1arrixxcXl0bCfgADXrFt3mUx6j+NYwgf5orx+996DtoRKbv7qQFlZlW5RVlYh6gl0TvkCPa7ugwUJghEU1GfnzhO6T8JBm2zbduz1EQPY7C6XukJDvVEaPnf+Wredoj3u2Xtm8uSI383iiLmZYfggv50/xPeyTk5OsbW1yZ9q+R7rQKfTZ84c/sOP8TKZAr0cKSm3Fi6c9N22xehr27eLVCrNnbxSZ2crPT327p9Oa/9Ir/2bjCohIYPeqZXQIaNmQb0IGxuTvn1dDhy8FBbq/aRqoJMn7nCih4d9t+7QpIlD0N5LSqt0zXgjowC9sm27I89fSM/LLxn6WmAvRycWS0RCHrzBwfOABk0AAADgH9G/v+eChVsmThz8+KJpU6MOH07ctfvU3bsPGhqaRo8aaGwsaux0U2lBYfnnsXs1ag2pUg0e7OfkZNnYKEEBEc3UrdD2eMQINLFr16mOx2si77w9ks9vH7MuEvE+XDL11OkryZezUDQ0NRUtXjQFxeV+/dwoFPzQoQSpTIFyv7Oz5dROA346F7ho4eQxYwaibLpo8f/4/P9j727gYkgfOIBPb7ubNrsV2rxVVEodqju9HCcRqYhcRF4i/rgcUhFFoZS7kqLTSeS1HKJDXqLLa+WtECEv5dDm2tq0tLtt+c+2pFOSI1Z+30+X2dln5+WZudnfPD0zo1RTUz13ztj66ZxOV1Rh0uvuL/QGMuaSYVeyzOSn/jd9RGrqBWFV9d27jxQU5KZPG16/sJGR9saNByTDruNtUo9fjIlJFgiEhAzxXV+DQY11lZnmPnxFULypiX5djVVWCjmc8rFjBtXdLlMyvu4j5PmM7b9TrJ2dxbLlmzMyrpNnF/XHS+qBz69q347pPtW+OVv8bctQR0+3S5/eOrv+ONGnjy5Zn+RLyXgZGZlB1iZk+CZPqzznuZCbbHXELuIFUf6Up6vbZZq7Q/0qdRo1YPmKeHLjkieHY5wHxm06qKWlMdKxf10ZyX5SLap58PeTAQN6S7ro1EdutfHjBsfFHQxYOqVDB6aPz/jU1PPkmSfvWWVHjXZzfh4juZPS29y8WWhiig76IBU+9pNx4X3UfzLuYJt5c+c6D3f4vu4w1Lmr09Wc+IYNXe905szV4JVbD6eE1Y0RiarbdbDnlh5pWDgkdBv5e5HvxPedS0BgHINBn+/Z1DVwJ9IurVu3d1/Syn37Tw2zNa97Thu8sRvgiaHQmuDJuC0nYs2uUSN/kNzEHaQTecIZvnoXeYYgJ4dOE1/p4e69tPSTcbEXSotJk2wTEo7XvTxw8Gz/fr3+Q8pvlLy8XKMp/0MsC3RvOuWTBlmbkim/9svpj7r76AEAwH/8ppg47I/df+FwKrWqq6s3bT40eZItUj5ICXTdkRZjnK29faJ5vErJc/jI0D958rBnz/jzvdbev1/04sWLqVPtx7kMDgreQr4sKCgaN87mjz/Sjh1dTdQ+btDLZ92ZU7/VTY0sP/pH/yI2p3u3jhtjfckjjqRFn80unTY9lFvO09bSyLtZuHvXCrIwOcFhdt5kYXIZFi963bSfevxCRMQf5PIUPmDrdO/8e4zPpUu3wlcnikTV48fb5Of/LWnRP3I0a0VQvJycnHoHlTURczp1at9F08l2qJmaGsPG5rt16/ZaW5teuJDnNNpv1qxRsbF/vm2ZAQCgaWpqbRf4jEc9SC3yq9Bz3ljUA0gPnHFKCxqN4vzjwMRd4vuLcbm8Cxfz7O0sotbu7tWrO5mMyZ+w8IT8/IdkZH/8uCT1WIT7VHsyf5PDRO1Va5LnR9a5eu0umbnPnVlPnjkcPZZVNz5q7R4zs55kvF7g40qmdsmNCAoLi/fuCTp9MnpD7J9lZRWvdw5Z2fMX8mI3LMw89zs534TE4+RvckzCzsC67qoVFc+nTV+1d3fwqfR1AweaLFu+mRxZWlpBngmEhsyUlPl59uh27RhJe4N/HD2giWUGAAAAAAT91mnypGEJCamE+CnoqePH2SgoyJ87lxu/5bDNEM8hQ+cXF5dduSq+L++33+qTEZzM6O5THTZtPkSO2Z98+o1riQx7anfpIr7hV7duHdns0rrxV67ckdwj7JtvuunpvbzIqV+/b9q0oSkrt+nQQaW4uLT+dMz69mQwlMh59e/fm/wsOUZfvys5pq7A9ev3yVmwWOJeYtYDTbLO3yBq7x3xveU3DVew6WUGAAAAgI8IXXekSN++BtzaBxAm7jrx+3ofycigFdOHDulbVyYkdFubNi+v2HCbPGzoMK9B1qZWA4zfuAOAvLzce+wEby9c92iSF7XIAUXam9eLkCcd9aM8UXtn64Y3fn7nMgMAAAAAgn6r5TbZbmXIVnLAwED8nPPvv/8mLe0SGfTJkO2/JHaJv1v9wh06qPQ00FoaELcs0L2Z0zc01Lp06dZAK5OrV+/+/feTd5bPzrn97BmfTOTnz+e9cWO1VxPULixkP336rG1bpZOncvr36/22cwmhsOq/LfPXQPK3GgDs5wAAgKDfak2aaMvqOGLdWk/Jy59n/+izINp5zBIGgz5q1A8Nb085YcKQhb7rLS2Nmjn9OT87z/55dWrqxf79e+nqdn5nm7qpSY8lS2Pv3y+i0xXHuQy+fPn2GwWUldtEr5s/bfoq8lSEzPp1/fLfMMzW3GHEwvhNi3v21HrfZf4a9O6lhUqAVuPevXuNjv/Am9ABAEib9JPZUr6EuI/+Z94/PvCbb55nlKlpj4kThjaz/M2bhYUPiocO6Vte/sxp9OITxyObKFx3F/yPu9bvu8xfw26AoA+tLOibmpp+9MMdAEDrC3ItfR99tOh/qR49+sdx1KI+vXXfKzFTqRTP+VGdOrbX0ekcHjb7i1hmAAAAAPgPEPS/VJ06tb94fuP7fkpbW+NG7vZmFh5kbdroM9U/8TIDAAAAQPPVPVYPt9cEAAAAAGiFEPQBAAAAAFohdN35zKT/em0AAAAAQNCH96NMr+nWrdt7faS0tOJpRSW/skpQe1t6aB2uXC1AJYBUoVIUaIoKbZUVVVWVW24u1dU1SwM2hq7aUVz0Z7t2jEbLhIRuW+y34Y2R+/eFTHYLyr26rXPn9m+8lZOTP37CsndejHTnzkM2u7Rfv14iUbUC1cpz3pjV4T9L3kr+88z27Ud3/7HiP6xRe3WH7EubGy4VAACCPrwj4j958rSNEk29g1rbtkoUirzkMbQAAB/RixfiJ2ELhVUVFc9KOE+fPHnUoUPbFor7kyYHkVFbTq6pTqSLfCeSP+SA25SVPXtqLfAZLxnPLT3yIbM+lJIhEFSRcyeHmUz6nwfOTp82QvKkQgAABH34pB49KuULqnR0ujIYbch4L4n4kl+oHAD4uEGf/KWoSKXRKO3bq5SXP7tf8LiysqpTp4//ZJWApVP09LrMnRf5Hz7LVLWVtOgfP3HRZ8FvxcWlIx37R0XOqytQU1Mz1NZr6NC+3l7jMjJyvRdEk0fODu1VYjcsyMsrXBP5B5VKqa6uXuDjKhJVBwZM9faJPnTwl/qzGD5i4YQJQ8aOGVR/WF1jhI/3uEOHMv5++GT5Mvfk5DO38//u2kV96xZ/BkOJLHng4NnVEbueP+fPneMsOS15Y+5qaowxY5eSJxWbNh+KWe9jb2eBvQ4AEPS/6pRfXfPiG6NusrKyMi+9jPho0weAFiBT264vTstMJr13L528m4XkgeijZ30y5X/gFJ48KZsydeWWeP9e33SfMHF59G9JA37oI3nLd1GMtrYGmfLJMiNG+h49vNrERM9/SayXd3T85sWOI/p37NiODOLV1TVCoWiC65B10XsPpWS8M3aTh2HyDOGvtKjw1Yk/eYRfvripS5cOg2zmHT6S6TJWfEpw+fKtv05E5V6/N8pp8Yjh36uqtm04dzk52YyM6+fOxJCfxd4GAC0Hd92RdqWlFXxBlX6PrpKU/zrq17brAwC0EFlZ8iAjOezIGuh3reQLycORtB0hj6VeMOvb03qgSbt2jCOHw+fOcZYs/L79p65fL1j/m7ekjLmZIZmzyWHPeWOS9p18UXsS84Y1q+csWPhbVZXonTOVPGDE2FhPU5PVrVtHBQV5I0Pt4uJSybs/zXLq3Lm97VAzC3Oja7n33jb3YcPMkfIBoKWhRV/aPXnyVFe3S/2UTxDonA8ALetl90AZoqaGHKqRlZXT1uqUn/+gRa/N/U9HyDIm81+LRMZocqTn/LUDfugj6f1Pvjx46JyMXP+6Mmx2af3ykuRtbm5oatIj+rckbe2OTc+0TRsaUdu0r6Sk+LLNTFa2urpGMqyi8nJ5GAylp0+flZc/a3Tukn4+AAAI+l+v0tKKNkqKbdsqvW7GR8oHgE9IVlaS9V8wGG3aKNHIg5JUZf0OHVQyMnIlw48fl5CpmhyQk5M7n7lhiO38/cmnRzr2b9+eOcbZelfisndObWXwDDOL/4WsnPHyC1JerqbmZds/j1fZzEXicisIgkUOkAtDzppCUWjm3AEAPv4xHFUgzZ5WVLZvx6jrpYOUDwCfXu1hh/yykGnfjkkelFp0XiUl5cErtza//BCb7zIyrxcUsEWi6pmzwg4cPEseJdXU2pInABtiFsz6Kay09KntULOs8zdu3Cggy1+9endpQBw5QKUqNOyl07lz+/9NHxG+OlHyUktLIzf3HlHbBn+tdqA5tm0/Sv6+e/dRRmZu3+96Njp3AIBPAy36Uo1fWfWqOZ+Q/AAAfIaoL/OC/FFWblNYyP6Imb69uoNkWDJQ9CiZy61YviLeb/GkZk6EDPSbNy0aNXpxTk6+9UATj5+c8vP/lnTF6dvXYNJEWzL9/7Fr+c7tAdNnrGK0pVdWClYsn0a+O2iQ6XjX5QUFRZJ+/HV8vMdtiP1TT1d8lfAUN7tBNnMzM6+bmRkOszVrrGP/m6qrawwNtU2/c3/69HnIyhkslvjy5YZzBwD4RIdv8rjTcCw5UiisUldXRQW1qEuXLjX9wKwrVwssLYxka9XdVRMA4BMjozMZYcmfjMzc3r20mi587949U1PTN0amn8y2GmCMmgSA1uTDj2zFxaUUioKiIvW9PtV0UOfzhXXD6Loj9adir+6m+cYt8/38NziPWVL/p6ysYn/y6ejfksh3J7sFczjl5EBa2qVPtqgN597QgQNnJWXqa6J8fTG/7x/vuoz8n2rCxBVNTP+39fveGDlpclBzpg8A7zwaoRYAAL4g6LrzpXzBNtJvx8PD6Y3zyJGO/d8os33HMWtr00+zkA3n/nFlZd0ID/PQ0GiHdkEAKTkKAQAAgj58IvuTTz969I/HT06Sl1Fr9/B4lUsDNs6dM0ZWVmbtuj3Pn4t7av1v+ohu3Trev1/0229JXbuqP35cEhIys24if//9hDw94HDKqRSF0T9amRjrLfRd7+jY39LCiHw3M+t68v7TZPnz528cOHCWnKCqWlv3qQ4sluobcyc1LEPU9mFdGbLtxo0CHZ1OM/7nqKGhVlf+5q0HmzcdImQIBoP+8+zRyspt6t5au24vOZ2otXvHjrEOC0+MXDNHTY3RRHnyrZiY/cp0RR2dzuS6k2OEwipyvf5+UCwrJ6vTvfPYsdaysviLFgAAALRaCDqtmdvkYfLycsuXTVNTa/vLLzvIyB4aMtNl7KBVv+x48eIFGX+Ln5Tp6nVZ+epechJkGu5poBn2q8dQW7P4+BRyjLmZ4YULeZJ3s7JuWFgYVVWJNsT+OWnSsLAwD3Li+/afajj3t5W5fPnW0CF910bNa9OGtjMhta58eTlv5cqt//vfiFWhs7p06RC36WD9qZE5nkpV8PZy6dNH953lybVbs+aPiROGrlgxvV07hqSz2oULN/95wg0ImLrE343M+rdv/409BAAAABD0QRpFRyfVddCfMHFFEyVLSsr/fvhk2DDxo93JoKykRMvPf0gO19S8sB1q9ka/20W+ExxrO+EYGWo/ecIlB/r163Xp0q2aWuTADz/0UVCQ3xjrq6vbmfxsTwOtf/4pazjTt5Xp0UPT1LSHiorykCF9HzworiufnZ1PFu7evRNR2wuIzOUvmrzJRRPlHz8u4fMF5FzIYXIukgfZtGlDvV9QlJl5nVyLsWOs9fU1sQsBAABAK4auO1+whn3034bLrRAIqlzGBdSNYReXanZVJ7Nvw8I5V+4kJh4vKGBXV1dLOre0b89U76By/XqBSCTq3Lk9k0knR/7555njJy4WFXEkpwSNzrfRMnQlWt1A/Zs+cct5V6/eJU9a6i02r+4Zk42sVGPlJQMVFc8lj66UnG9QqRSi9nn1/5s+/OixCxvjDtrYfDdi+Pfve5E7AAAAAII+SBcGg66kRIvf7Fd/ZKP3w372rDIy8o+gFdM7dWpfVlYxc1aYZLy5ueGFi3lVQpGkpz55MpB+MntV6CwyK58+faXRe/u8rcyz53zJAO8Zv23b1w+BZ7RV+vZb/YULXJu7Um8vr6zcRnI1AlHbNV8geHmfKROTHuQPeRrwa9hOOVmZH38ciH0DAAAAEPThy6OgIC/pb9O+PVNDo93JkzkDBvSprBTEbjwwc4Zjox958oRLfqpjx3bk8LFj58nPVlfXyMnJWloarfplJ/lZZ2dxOH74d3Hnzh3IBC8SVZNpvkpU3XBSbytz69aD4uJSdXXVM2eu6Ol1qStPRvCdCakP/i7u2kW9oKDo7Nlrrq5Dmli7JspLLvDNycnv00f3+PGL5PKTLw8ePPvsGX/s2EHkaQB5GiNpzt+ffPp7y2/I+jl37lpbBt3IUPvp02eHj2SNHWON/Qfg46p/a2cAAGghNBoFQf+rQGZZQ0Ptqe4hS5dMWeAzft26vcdSz8vLyfXta0ChKDT6ES0tlrZ2Ry/vdW3bKlkPNOnSpcOvYTt9F04gzxNkZWXIQKyq2pYs9v33vY4cPe+/JJZKVbAdahYZtYdMzG9MqtEysjIyffv23LDhT07pUxUV5Z9mjaorz2Aoec13iV6X1EaJJhRUuU4Y0vTaNVFeVlaWTOohods7d2r//fffkOtSU/Ni4EDTrduOhIUnlJY+pVIUpk6xr03/58iTDXK9MrNudOncQRL09+07iaAPAAAA0qn26koZkahaXl7uHSXxZNzPqHlPxv2GjK1ycnhUDQB8Hi9eiO9k9eJFDXnCfPbctf/8ZFxzM0NUJgC0JplZ1z/Lk3H5fKFQKFJWVnznB3HXHen/in1B/kI9AMBnPA7VxX3UBQDAZydT2/zbnP6QCPpSjUpREAqrXn3Foj4A4LNlffIQJBSKqG/p9QcAAJ8y6MvKypJBX9TYRZII+l8MmqJCRcWz2j+aE2jXB4DPEfDrfmqePuWRByXUCQDA5yUrK1P7I/v06XME/S9YW2XFEs7T2sEatOgDwKdP+bVNDJLGBpl/SsrJgxKqBQDg85KRkZGTk5OXlxMIhBUVlU2UxF13pJqqqvKTJ4/Ky5/VPqPqRU2NjCxOzQDgE6b82otwxT/kgej5M37XLmofcRaZmdeXBsZdvXrXeqBJeNhsyY1x32ZpQNzWbYfPnYmR3P8XAOBrDvqysmTWl5WXl5d0/Wjbtk2jJREbpV2HDm3vFzwW3+3i1V0vXvXkAQBokXz/4hVJxK897NQUPigiD0cfcUZPnpRNmLR8eaB7/q0EY2Ndz/lrmyhMHvuOHM1c4DMhcdcJbCMA+OqDvqRRnwz64qzP4z3ncJ422l8fLfrSTlVVubKyKu9moYF+V1lZudoGNlkZGSR9AGipoP/y39rEL0n5N289oFEVyMPRR/2ikvll1U/m5uJ7btoNs4jbdLCJwsdPXLK0+Mb5R6uhw+bP9xwrGXnhQt5czyh5eblRI3/YEJt87EhEly4dsrKu+y7+nZx4+3bM9b/NV1VlYJsCQKsL+pIuHrJyci9fCoVVRUWliopURUUKlapQd399BP0vQKdOqo8elV65eldbqxOD0YYgamqDvszLByYAAHzkrC9J+TXkQebp0+cFhY/JlE8eiD7uXNq3ZzqNGiAZzjp/w8S4RxOFd+5MdZ9qT35EW0vj0qWbpqb6NTU102f8Eh4223qgibfPusePObKysv/8wx3tvOTgn6v69NENXLZpoe/vsRsWYIMCQKskK0umQFlJ6z75W1a2pqqqSiAQ1NQQr7p/yCDofzFZv7S0Ij//QRslWvt2DGVlOoUiL4OHaAFAywR9gUBUUcH7p+Tp82eVHTq0/bht+W84c+bq6ohdhw78+rYC5eW87Jzb/fotIod//HFg4q40MujfufOIHD/IWvxkroClU39bv58QN/xfNOtrQKZ8cnjOz6P1e07Y8LsPDpQA0PqQRzZxH4+XWV98B57q6urazpY1rx57Iv77LIL+F4P8oiV/yLhf/KS0sLBYUHt/fQCAlkClKNAUFdoqK3bt0rKPSD946Jz/ktjtW5doaqq/rczuPX/dvv13G/pgyct27Zgrg/9XWvpUReXl6UfbtkoMhhI58M8/3JTDmYpKg+o+W1xcxmLhKe8A0DqzPiFu1ydjvTj2k6H/1ZWcL++lgKD/pcZ91AMAtAKnTl+JidmfnhbFZDZ1WEtIPJF2PNLCwkjycqxLwJGj53V1OnO5PMmYp0+flZc/qz0HYIx2stq+bQnqFgC+prhfm/RfkKFf9o17tuCuOwAA8Bn88w/3J49wMpTXT/kcTvmqX3bUL3br1oO7dx9KrtmVsLe32LXrRLduGlVV1SdP5ZBfaVFr9ygoiNuthth8d+FiXl5eITl87dq95SviUc8A8DVk/VcIyW03JT/kMFr0AQDgMzh6LOvu3UcanUbWjXn4IKmkpHxlyLaFC1zrRu5MSB018of6/ewd7C3meUZVVgp+/WWWz4Lo6uoa96nD27YVd91p1465ZbPfT7PDGW2VyAIBS6egngHg64n7jZwAkIfChkXJkUJhlbo6+jW2rEuXLnXr1g31AACtyb1790xNTd8YmX4y29zMsIXmWFHxvGPnkSVPDlGpCqh/APhkMrOuWw0w/pApFBeXUigKiorUFlpCdN0BAIAvkuNI350JqUTtHwe++84AKR8A4A3ougMAAF8k34UTQldt/33Dn8p0xag181AhAAAI+gAA0BpYWBgl7w9FPQAAIOhLowqe7JWrBagHAGhd0CkUAABBHwjiA6/hAAD4BKqrq5tf+PSZq6gxAABpgHYXAAAAAAAEfQAAAAAA+BKg6w4AAHwKNBoFlQAA8CmhRR8AAAAAAEEfAAAAAAAQ9AEAoLWKiIhAJQAASDP00Zc+otKMmHVeazMy7vCYOrrWtg7ei5wsWMK8NT6u2Q4pcTasT7LRuOnRdgFEULKHNRObBAAaT/nkb09PT9QGAIB0Qou+tOFlhPo5RXCsg6OKipPTwoeoZMY6zUjK46FmAEC6Un7DYQAAkCpo0Zcu/DvpYQkVrtFRQbaq5EuWg8vGb42S0oU08i3yNTc3bHRs3HGOivkQv0hPdyMKOz0xKOJY2h0ewdRy8vH0H6nBPxNtt7DIUr/iXG4RW6ThtMQ3aKQGjVe4c2Fo0HEOrbORnVFRCs8p5XcbZsFJ/7mxKQ+FBF3PfdV8r36qhIiXERPqsfY2wdIw0KHyCU1sEQBoIuXXjUG7PgAAgj68Azfnch7d1ONb1dejWEZOLuQ/wjxCeD/zGj88OG+H2jmvOUHbckcvoqzzS8gbHnxur17R9uWjf02yt/IwIE8JCgr4Pr+mxakVxfvbr011HexC2x4dVGCxI2uS9s1E19GpXFsXgpcf7hGdZ7P03Dy9sv0Ro722GCR7Whck+ccKPfZud9cqipsxJ4WHoA8A70j5H5L118fs37rtSH7+w6FD+q4On62urtqwTEjotsV+G94YuX9fyGS3oNyr2zp3br9l6+HJk4aRIzuwhl++uIkcg80EAICgL4WElVwen66lQmv0XYqGuY3Xj7osmlBbV43I4/DpNkFnkyXv0foYafBzi3gEGfRpLD1rcw1yGio6mkw+p4zHY2c81rbxMGASNHMHL5eDs7mE4G5GWomeu4sRU55gDra3W786JbdU++alIn0bax0KQdO0dzYND8EWAYB/+Ygt91eu3FkRFH/owK/du3dcE7n75zlr/ti1vGGxRb4TyR9ywG3Kyp49tRb4jH/ZLFJ6RDJAngZIgj4AACDoSzOKIpNO43HK+ARBb+RtGlNZsXaL0cjfIvGJwf2DW7xXJKVc5Ik79rAGuL8sp8ysv2GrK8q4QhqTUnv6QFFpr0zjEQIupyjnpKtmf9dXs3aayONzhQSd+nIWTGUmDVsEAFpKu3aM9b95GxvrksPDbM0SEo+/18eZqra5V7cFBMax2aU2QzzjNy+ueysjI9d7QbSMjEyH9iqxGxaoqTFQ2wCAoA+fH9PISLskKSmz1Nrh1Z+wS3LjNhb0nDak4c1vBHePea/INYncvdeczs9JtHfPbXyichQVOoUM8eTJAI0Qlv1TwRcRVKaahrlD2N6Fdqy6csK8dRSCJ6isfcHnVnBFatgiANBCOnVqT/6QA3l5hZFRe4Y7WP6HiawKnZW460Tqsdcdip48KRsx0vfo4dUmJnr+S2K9vKPrnwMAAHxVcNcd6ULTsXDtVxE3w887MZfNI/gFGf6ufv6neY02rgvYhUVER2MtOiEqPbfv5OUSYW0zf8OzOTWDb5TzUjPyuAQ3Jz3uYBGZ+KndLeyY13bszxf/KYB9OXzh1rSHFA0jPVruqbQ7QoJXeGj3JXE5AICW5OW9rqfRhMIHbH+/yR9lgsdSL5ibGZIpnxz2nDcmad/JFy9eoJ4B4OuEFn1p2yAa4yOjaL9Ge7vPChfnbIrxhOlJ4S4GdGFeg7Jtew9x1fJzHzBBu7OayTAb986x/gsTO09rOFFyIpPcL0SP7p1AaJmOt9IUT4qu6xE53d9rmUksQfCEGiM9XNsRTKaDR58503o7Butr2TmYGjx8y5kDAMBHEh42+3/TR0St3TNipO9fJ6JkZGQ+cIJPnpQdPHRORq5/3Rg2u1RDA3+fBAAEfZAGTE2n4F+cgt8M6wbzIi83GPbY9YdHXRFvp7Daf8/ZvJpSP49zZyWDFn57LfzEA8KMoLlpFco0eYKmMyAseUDYv+ai6b4j2X0HtgEAtLhbtx7k33noYG/Zo0fXqMh5FNrAf/7hduig8oGTbd+eOcbZelfiMtQwAAC67nwV2PtXWQ6NFt8yn3v7XIagp7EGHncLAB/i+fPn5O/q6ur/PIWbtx5MdQ+5evVuTU3NkaNZ3bt3JDN6SUl58MqtzZ8IlaogEpFLUVM3xnaoWdb5GzduFJDD5MSXBsRhYwHAVwst+l8FlpXL7IzoIPsJ3gTdYOTksJEaqBMA+G84HE5eXt7du3dLS0vbtGljZGTUq1cvZWXl952O44h+Z89eNf3OXVGROtDKZH9SiIyMTEkJd/mKeL/Fk5o5EWXlNkOH9O3YeeSRlHDJGPJsYef2gOkzVjHa0isrBSuWT8MmA4Cvlgx5HGw4lhwpFFY1+uwS+IjST2ZbDTBGPQCAlKtruSdTfmZm5u3bt+u/261bN3Nzc3V1dcnL02euNjyy4XAHAAhyDRUXl1IoCoqK1BZaQnTdAQCA5srLy3sj5ZPu3bt39+5dVA4AgLRB0AcAgGZ59uwZmekbfevBgweoHwAABH0AAPgiKSkpcTicRt8qKipC/QAAIOgDAAAAAECLw113PjM+X4hKAAApp6Agh0oAAPjioEUfAAAAAABBHwAAAAAAvgTougMAAJ8CeioCAHxiaNEHAAAAAEDQBwAAAAAABH0AAAAAAPgs0Edf+ojKsmLXL1yflXWXx+iuYzXEztPH0Uz9v07q8G3GQDN9+jsKlp+KcVxBBO6ZacXABgAAAABoDdCiL214WWEBY9dyrJaFFzzYczR0sErWprGzk2/y/tPEOLnxG07cKketAgAAAHx10KIvXfh3T0X8UeGyZnXgEBXypbqd83rTnsmnqmiE8MqaRTMyO+o/yrhp6X80WOdmbNTCzdfLRRSWzYSIJYP06UTxqd2ha4+n3+URDE3H+XN8bYSJfjGJaaXp08L5a352lM8K9N509JGQUNJ1C54711KFEPGyYsPmrs8n1Fn63al8oivqHwAAAABBH1pE+dWcW0rGM01VXo9SN3R0Jv8R3pSvYt/gjFqzLsaaVb5v5dyd1EW7Nzsy8yPdVi7appswvmJ9wK6b9svSE3SLElaOW71/2A8zXTxHJt/Kd9vo5ci4s2pczK1Bi9Nn65YdWOuycFuPPXOsCpMDNwtnJmx202THz55/hIegDwCfwenTV4bYzs+5vLlHj8aPQrbDvE6eypEM9+ql4z7V/n/TR7xRhtVxxKULmzp1atf0vKLW7snPf7g2at5f6dl6ul3eWR4AAEEfPhZhJZfHp2uqUBt9V0Glh9lYSxZNVHb0RL6KvfdQTQpBGDqO1034I7tgimPgX3sk5ai9DVn862we0fvVJ/n3stJLdN2cDRnyBMPa1nZD1NHrZVq3LrP1Bll1pxC0rsNGm0T+gvoHgE9NIKia771WQ0Ot6WKbNy1yGTuYLHzkaOaMmWG6ul0GWhnXL8B+/GdzZjfn5x8lAxs2JHvOG4OgDwAI+vDJUBSZdBqPUyYgiMYun6Uy6IrkFhMJyh6x0zfPUVnx6g1DVrlAWJC23Tck+ehlHp8co97frf5XKZfDvnraTW/Qq5EUx/E8QXkVQacq1u4CNAadQUP9A8CnFhaeQCb43Xv+ak5hKlXBcUT//fvPnDhxkQz6XTRHz/ccu+qX7Xdu79LRGytp0U8/mRO4bJOCgpwijbJi+fTevXV+W7//5s3CnCv5/fv1UldXzc9/aGSknfbX5UePS8jcP+unsBu529u3Z5LT918SW1UlWhU6C9sFABD04eNj9DTU4uxPziqzsnvVe4dzPX5zocGUwa9vhyNPVenU1XaVT8Jsnbpwzr+b4hZy3Th8R2JfOv/q7lEzrv/r25GpxuprF5LoZfv67j3Cm+sVCJ6gUvLxcl65SBX1DwCfEpm59+0/lXE2pplBX0JG5uWAnJxMcXHp3fw/lJReHguLi8smuwWdSI3U0ekUu/HPqdNCLl2II4sdP3Fhy2a/774ziFor/svnjP85bo5PCfvlp759e+7Zk757T/pPs0aS4/88cGZDzAJsFwBoNXDXHelC627mYlkRPzvAd/f1Yh7BL8wKdAsIPPuMUb8zj7yK+VC9skPH0x/V5vWEmMBtd8qLH7CJjr016YSoLDP5dDZHSIjIkhRCJOSLCFo3M1tmbuKfd8SN/cU5kX470h9RNAx1qTfOpN8VErwHh/deLuKj+gHgk/ppdnh42GwFheY2OQmFVQcOnjt67MKQIX0lY8aOsa5L+aRjqectLYzIlE8OT5xge+NGAZdbQQ5/Y9SdTPmNTnP06AF79opPM27efPD8Od/c3BDbBQBaDbToS9sGYY0NX01bHeM7c06kOHlTeo+bumuVsz5deLNeKfVhM1Y9jFr445RAQlgurzs3kqWuN9hFM2CmzRStTqrGQwe5ddoU6Ldbf6VuD/kot/4zChLD54ZNDfQNtthEEM+ErOEzXdQIBsNuZq/5s/o6r+qhaTvMRP9R7bkBAMAnsTk+pUvnDgN+6NOcwlOmhpA/RO3FuAFL3X7o//ISpLZtleoX++cfLpOp/LLdhEZhMJQ4nKcNi9XnYG/pMXv1vXuPDx/JHONsje0CAAj60JIYXR2XrXRc9sZYiv7s8MzX241uNmtx+r/6kerM3L5jZt2reY6htf/2Pn0i9OWo/qG7+4f+a5pd3eL3uMWjxgHgMzh48GzK4cyExOOSl31MpiTsDBzp2L/xs4Lai3HfOc327ZkXL75sFamsFJSXP1NXf0enREVF6nCH7/cmpacevxi8Yjq2CwAg6AMAAHyQvXuC64bNLWds2ezXo0dXDqd8Y9zBhQtc/9s0bQZ/5+e/4d69x926dYzfcnjAD33odMVGS9JoVKHw5R8xnZwG+C/ZUFVV/bbuPQAAXyj00QcAAGlRUlK+MmTbf/44i6W6Jd7ffXqoxfczw8ITQkNmvq2k3TDzH8cs2bT5EDk8xOa7oqJSxxH9UP8A0MrIVFYKGo4lRwqFVe/8iyd8oPST2eZmuPALAKSdgoKcZCAiIuJtZTw9PSUDp89ctRpg/GUd7vqaT4/9fWHv3jrY1gDQfJlZ1xse7t5LcXEphaKgqEhtoSVE1x0AAPh6iUTVcZsOtm1LR8oHgNYHQR8AAL5e35lNEwiqEnYEoioAAEEfAACg9ci+tBmVAACtFS7GBQAAAABohdCi/5nRaBRUAgBIuerqalQCAMAXBy36AAAAAAAI+gAAAAAA8CVA1x0AAPgUMrOuoxIAABD0AQCgVfnAZ8oAAMB/gK47AADQLBUVFW97S1FREfUDAICgDwAAX+YXhqysmppao28xmUzUDwCAtEHXHekjKs2IWee1NiPjDo+po2tt6+C9yMmC1cwPC9npGTe0LKy1WvKunfzC8KFT/UUuaYemW9R+ufNvJo12z/fYu9COhe0H0GopKSl169aNw+E0fKtr166oHwAAaYMWfWnDywj1c4rgWAdHFRUnp4UPUcmMdZqRlMdrZgTnHIpNTLkjbPHFpNGZD1ODthfyscUAviYGBga6urpvjCTTv46ODioHAEDaoEVfuvDvpIclVLhGRwXZqpIvWQ4uG781SkoX0ghhduhc979dUiIHsORfDYd/cyMmNvpwQZGIUNGx8FjkoLE/InhPblmuH7HMN8yBmrZmtf+2Ai5BMPsMCVrmYk3LmDY6kfhW7X7mtRtsNfufHVjZqSkXH/P1HcKip9t1Jud+0n9ubMpDIUHXc18136ufKjc92s6vyIR1O4XrsDd5kjG9bsdRs59lej9hS5KD7/j6fz0Q8bK3xwZtvpRXIqTpWHgHe4w3IrLX+Lif7mgiKjiXU0AYOXjZ8JJ2kwXo1j6L1k3TpYl4GTGrvWJzuSKKhu3kdctsDOjYEQCklJqamoWFBZPJvHv3bmlpaZs2bYyMjHr16qWsrIzKAQBA0IemcHMu59FNPb5VfT2KZeTkQv4jzG5QWHDrWPg+wmPXejuW8P7+LdFHOP5uk8YfKOEvCg4bTL+fuNz7sEbY0SBrZlHcjLmzV2imLaMQ3IL7Gh57z/rmhfnYRaT6J/96WacgePTyuOMOdj/ywj2i82yWnpunV7Y/YrTXFoNkT0t5gl9wu2zc0nPTjFi0f82dRkb2stCgtZfsVlnUvcO/edA75JpxdNTefkSS1xz/tRnW0eS7wqKbArtDkeuIk7OHhoZ3Xpp2wrNyf6j92mPZP+pqH1/tsY3qn7zdiXk73HW5d7ze3tmaNOwKAFKc9fvVQlUAAEg5dN2RKsJKLo9PV1NpZs6Vp9NKLsXFn8wroWiPnB42U/f11XCi0uzU2yo2QyxZZCTXsB9lRNy5ff85QdA1LPppMeXpBkZaGlpGljp0gt7RQIfOLeFx72Sklei5uhgx5Snag+3t6NdScsUdhmjtjEaPfDPl1yZ9NetZTtqZidEXefXSv8uJW5vCBqsSNFXj77QINqdSRI6mqBiZGHem0Fh6BlpqBhZ6LBpFQ19PQ8Qp45WeI5dzuL2dFoVgGjlN1CtKvXQf/YEAAAAAPhha9KUKRZFJp/E4ZWTSbUb3FWoPh7gd1Oi1iaN7r6YNHh20xMWuXV3QFxSVCGkWLzvV0JjKND6PzNw0eaoijSLZ8jSaMq12+4t/iwgBl1OUc9JVs7/rq4VxmlhB6JBLosx8y4kHTWuA/7hU14hjdj6vRvFL02LW+a89mVEgvk6ANthIEtppdGXJvfdo8hQanfry42TxakHZw6K0jbMUA15NwUiDy699DwAAAAAQ9FsNppGRdklSUmaptcOr3jsluXEbC3pOGyKOviLJKCG/TCAZZvax8Yuz8eMVJQX4zZ5LObTJ6NWGpWq0o/BLXl6Vy+dWEHQtFWqTpw1MNQ1zh7B/3zmHe+YdZyYGEybZ7VsddtxUsiuxj8R6H1ALO3vCmkXcj/e33/2um//IUVU6a9qFL9o7TxfZHgAAAOAjQtcd6ULTsXDtVxE3w887MZfNI/gFGf6ufv6neUwahamlRhQUFvHJ9F2QdlH879MT0fauidk8cYcc4286Mpl0mhxVkTwNEAkJeVVjG72y1GPn2ATBKzy0O5f2rZG20jtmbce8tmN/vrgNnn05fOHWtIfNOjWZ/XOPvPXHLnMF5BlI0Z3HBEtPux25kPlJ+64V8d91/x95VcthPcoOHKudlzBve7R/fD567gAAAAB8OLToS9sG0RgfGUX7NdrbfVa4OPBSjCdMTwp3Ed+IxsreOsLf2jTd0tzUuo8ek0+0/d7JI3tr0OQFXPbjIpGWR7SVNlNooCP0t3e9Hxmzd+bssIer/YeOYbOLynScdqwyYhKXmpo1Xdcjcrq/1zKTWPLcQKgx0sOVzOsF715klq2Lx7fp03LES2sw0sEkYfUgswQWS8t+uINJSMLssG4hbZr8uINH+MPVXo4T/AkhV17PK1oDTfsAAAAAH06mslLQcCw5UiisUldXRQW1qPST2VYDjFEPACDlqqurm1/49JmrOLIBADRHcXEphaKgqEhtoemj6w4AAAAAQCuEoA8AAAAAgKAPAAAAAAAI+gAAAAAAgKAPAAAAAAAI+gAAAAAAgKAPAAAAAPD1wAOzPjP+O58dCwDwuSkoyKESAAC+OGjRBwAAAABA0AcAAAAAAAR9AAAAAABA0AcAAAAAAAR9AAAAAABA0AcAAAAA+Hrg9prSR1SWFbt+4fqsrLs8RncdqyF2nj6OZurN/LCw+FRWnqaZlSalRZdw18zZ63UWH/E1LE9ZaeZ8orh2NE2dZW43JnBJ85cWAAAAABD0vxa8rLCAsVsV3ILDd/2gxs46HhOyaexs4shmR316Mz7NLz28affNScYtG/T/harS1zl+/0wrKq/gRnbypu0zJxRFbJ9phawPAAAAgKAPr4P63VMRf1S4rFkdOESFfKlu57zetGfyqSoaIbwS5j3joXNyWH91+VfDoUZ5GzfFHC1kiwiV7mYzfOw0DkSt2ne97EYAscQndBg1fV1k4M7CcoJg9BocuMTZipY1y2U3YapakJWbV6w27Cc79ZwTRy4/FvSwC1kz1bYTOffTgd6bjj4SEkq6bsFz51qqlJ+KcQxgG6vnHym3S9zt2ruJkw0aXcuk/9yeuqx5AZEJd8zn6dCwOQEAAAA+H/TRly7lV3NuKRnbmqq8HqVu6OjcR6uxhC24fTwymXDbGJV+OCxiqCD9GEdroutYSx230GWhw1kF+9b7HmUFHticfSrEjUjxDMkqFlGI8sIClnPiX/G7/kfdF3VCZc7KzNPLXHgn4tPYBO9O5LyYWwO8089t3jdHOWHhtiPF4jNBfmF+2YDF6fuaTPmv4z7L7Hu1gpPZBXxsTAAAAAAEfXhJWMnl8elqKtTmFZdXonIux287fZND0Ro+NXS6DqPuLVHZlRP5KoMGm6uLw/cwR0Pibn7Bc4JQYplZajLk6fo9NTU0e5p3pxNKHfW708s5vPJ7Weklui7Ohgx5ipa1rS39+tHrPHF0b2c4aoSherPb5xXpdIJXUS7A1gQAAAD4nNB1R6pQFJl0Go9TRqbkZjSfU/Xsfo+nxvy2e9x3kVTrUYGLnG3b1QV9QRFHSDN72VOfxqBT+bzKaoImT1WkUSRbnkpTpsnVTofcC0QEn8thXz3tpjfI7dXCOI7nEd3JcwM64z164QjL2ByCbsigYmsCAAAAIOjDK4yehlqc/clZZVZ2r3rvcK7Hby40mDJYHLZFL8M0nzwVqB1m9Bq0MGbQQh47eUWApzdFK6bnqw1L1VCj8DlCySt+OY+ga6o0eYEujanG6msXkuhlW+862vJz77kC5fnJfxayhhpqoYc+AAAAwGeFrjvShdbdzMWyIn52gO/u68U8gl+YFegWEHj2GYNKYWiqEoUP2HwyTBemX2YLCOLpXzGj3HZf4REEndXbSIPBUBI32BNCgaiKkFfpPUi37MTxzGKC4D04vPc6zcRQS6mpWVO7mdkycxP/vCPuXV+cE+m3I/3R+yy6iHfzVErgtIAI3g8Lx+FKXAAAAIDPDC360rZBWGPDV9NWx/jOnBMpTtyU3uOm7lrlLL635g/DrKICh1qesuhrbNVLhyEg2lqMnHFlR8i0xeXFRWyR5ozIH7QYVfrdhYGj3ArC1iZMnxX6KDJwuGsxm13W3TE+uCeDyG5q1nSdGWFTA32DLTYRxDMha/hMFzWCKHznEgvKzqcM67hb8kJriHN8/FTcWxMAAADgs5OprGzkqklypFBYpa6uigpqUekns83NDFEPACDlFBTkml/49JmrVgOMUWkAAO9UXFxKoSgoKrbUpY3ougMAAAAA0Aoh6AMAAAAAIOgDAAAAAACCPgAAAAAAIOgDAAAAAACCPgAAAAAAIOgDAAAAAHw98MCsz4xGo6ASAEDKVVdXoxIAAL44aNEHAAAAAEDQBwAAAAAABH0AAAAAAEDQBwAAAAAABH0AAAAAAEDQBwAAAAD4euD2mtJHVJoRs85rbUbGHR5TR9fa1sF7kZMFq5kfFrLTM25oWVhrteRdO7m5/o7L7/8cs+NHVckI/sWt9u633Q8Fje/8AZMtOGhvtuq+yy9p4Ras2h2TnbjcaZ/Jjh0O2thPAQAAAN4TWvSlDS8j1M8pgmMdHFVUnJwWPkQlM9ZpRlIer3mf5nMOxSam3BF+oStPY9LLDm6Nu8jDfgAAAADwgdBSKl34d9LDEipco6OCbMWN5SwHl43fGiWlC2mEMDt0rvvfLimRA1jyr4bDv7kRExt9uKBIRKjoWHgsctDYHxG8J7cs149Y5hvmQE1bs9p/WwGXIJh9hgQtc7GmZUwbnUh8q3Y/89oNtpr9zw6s7NSUi4/5+g5h0dPtOpNzP+k/NzbloZCg67mvmu/VT5WbHm3nV2TCup3CddibPMmY/q4VKMmNC0ncmcOpJCja/Rz8fWwM6AT7+FaPgIPkuQpNxyYofLKdFpEd5uOe0dHg4bm8fgFp4SbMuo+3M509WLj312NOW5wM6s+LV5j0a2z0wdtFfIpGP6ewYCdj0cn3XRfsXQAAAPBVQYu+dOHmXM6jm9p9Wy+VsoycXEy0G0vYglvHwvcR7lvWnzsRuW6YIO0IR9tt0vh+uu7hwWEjNe7vWed9WCPo6PYbWb+6Ewdnr8hgiygEt+C+hsveszuSZlH3RqSqeP56OSvYlZcad7yI4OWHe0TnDfQ9d2n7IU/lHV5bUtjiM0F+we2ygUvPHWpGyieI+0cS49jmGw+tP3c0wF0xN+liKf9mkodXusGymBuXYsL0M7wDTt4XETR5YVEup2dwzLn6KZ8kIrSdJ43mHww/WPSvye6P9d5P8di1/caJ+RY3E4PE777/ugAAAAAg6MNnIqzk8vh0NRVa84rL02kll+LiT+aVULRHTg+bqfs6NItKs1Nvq9gMsWQRBE3DfpQRcef2/ecEQdew6KfFlKcbGGlpaBlZ6tAJekcDHTq3hMe9k5FWoufqYsSUp2gPtrejX0vJFXehobUzGj3SiNW8RVKkU7g5qXH789kiVWtfTz8r1aLMzDwtB9d+qoS8quU4B+2bJzPEmZuiom8+vp9GI1Nl6rn//M2N9Ylp7NcdkLQnBN27stRJh0K007LUpxQ95PGJ/7IuAAAAAF8PdN2RKhRFJp3G45SRMbYZzefUHg5xO6jRaxNH915NGzw6aImLXbu6oC8oKhHSLF5ekktjKtP4vEpxUzpVkUaRbHkaTZlWu/3Fv0WEgMspyjnpqtnf9dXCOE2sIHTIJVFmNpryRYL6w5XkdAiCNdJ3r3xS9PplxgsJywmTg3wG8NkleQcjeipFvCxJ07UuERrXLpJi43sfhWXlMjvBJzz+dpjWq3EluXEB0cGJufe54lfG/oLaxX7PdWlOnQIAAAAg6ENLYBoZaZckJWWWWjuovs64Gwt6ThsiDtsiySghv0wgGWb2sfGLs/HjFSUF+M2eSzm0yejVhqVqtKPwS142ivO5FQRdS4Xa5GkDU03D3CFs70K7enf44Z5prChNWYMuSLvD4RMvm+SLCgq5dA0NcZCmGDi4rHNwCXt4Odx9mXuExibtjsYuTnu31L9zjjAvvclaoGk4eTrsmLF1x3BK7R7KS4uIjhY5nXi0Xlu+NGXunCCFd50CNbYuAAAAAF8VdN2RLjQdC9d+FXEz/LwTc9k8gl+Q4e/q53+ax6RRmFpqREFhEZ9M3wVpF8X/Pj0Rbe+amM0Td2Ix/qYjk0mnyVEVydMAkZCQVzW20StLPXaOLb6S9dDuXNq3RtpK75i1HfPajv354l4x7MvhC7emPXxrELce3oO9OynppvhEgv8wI3rtNVo/CwOmMDtsgX3QZa6IoLG0jHXUVJSpLHNz7TupOzPFPWe4mUneQSfv85tRD0YOXoNLdsZeYpOFRRX371RofKNHnlXw75zbcbyIX/nuamzuugAAAAC0UmjRl7YNojE+Mor2a7S3+6xwcUqlGE+YnhTuIr4FjZW9dYS/tWm6pbmpdR89Jp9o+72TR/bWoMkLuOzHRSItj2grbabQQEfob+96PzJm78zZYQ9X+w8dw2YXlek47VhlxCQuNTVruq5H5HR/r2UmseS5gVBjpIdrO4IoaLQoxcDNd6N8QpzHBI9MjkofUzvn+TvcxJfVGk9wsQtJch+9pehhEb+zQ9gSXSZLNzq41GPhTBM+weVR7JYEkHn9/rvrgW49a7L1Hv+9InGd2E+0iPOYY7JNTUPH1GmKacba1f76Lu+9LgAAAABfE5nKSkHDseRIobBKXR13JGxZ6SezrQYYox4AQMpVV1c3v/DpM1dxZAMAaI7i4lIKRUFRkdpC00fXHQAAAACAVghBHwAAAAAAQR8AAAAAABD0AQAAAAAAQR8AAAAAABD0AQAAAAAAQR8AAAAA4OuBB2Z9Zny+EJUAAFJOQUEOlQAA8MVBiz4AAAAAAII+AAAAAAAg6AMAAAAAAII+AAAAAAAg6AMAAAAAAII+AAAAAMDXA7fXlD6isqzY9QvXZ2Xd5TG661gNsfP0cTRTb+aHhcWnsvI0zaw0KS24hOXXA39cWfDTuvhRKpIR/Ms7Rs3Md9sXOLbTB0yWk+U5MoZYtjbCsjRy+BTfc5I9lKLVy3jsgpm+w7vSsG8AAAAAIOh/sXhZYQFjtyq4BYfv+kGNnXU8JmTT2NnEkc2O+vRmfJpfenjT7puTjFs26H8CNJZjTHj8RBbx6EFmWkrMikUzS0JipiDrAwAAACDof5n4d09F/FHhsmZ14BBxY7m6nfN6057Jp6pohPBKmPeMh87JYf3V5V8NhxrlbdwUc7SQLSJUupvN8LHTOBC1at/1shsBxBKf0GHU9HWRgTsLywmC0Wtw4BJnK1rWLJfdhKlqQVZuXrHasJ/s1HNOHLn8WNDDLmTNVNtO5NxPB3pvOvpISCjpugXPnWupUn4qxjGAbayef6TcLnG3a+93nmxwrsf/snvX1dJKQkHL0s7XcxB5flKctmPuipRbzwhqt0GBqybYahJX1iyakdlR/1HGTUv/o6v6MN6W9sn/OnW1mjjTuAfFZeHu9CFetp2wjwAAAAAg6H+Byq/m3FIynmmq8nqUuqGjM/mP8EqDwoLbxyOTiRnbo2zVhQUHtscc4yya6Dr2EIfvsyzUml6we6XvUVbogUArBjt+tpdnSNcjSyhEeWEBa0biX9431yx2jDqxaM/KzO6Fq1xWxqfZ2Y7iRc6LuTVocfps3bIDa10WbuuxZ46FPMEvzC8bszh9iqF6M5rTC47tji/uG7/PTku+LH3NtuTLJlrqp+b6ntIPXZf4A5G+wtdzhaZ+TH+qfBX7BmfUmnUx1qzmNNIzepj0JiKPXi+z7aSCnQQAAACgOXAxrlQRVnJ5fLqaCrWZp2lKVM7l+G2nb3IoWsOnhk7Xed00Liq7ciJfZdBgc3VxN5hhjobE3fyC5wShxDKz1GTI0/V7ampo9jTvTieUOup3p5dzeOX3stJLdF2cDRnyFC1rW1v69aPXeeSUaO0MR41oVsonKdIp5VdPxB+4UyxSsfKes/AHFfb5rFuadi6WKoS8ivkYO61bp7OKyYIKKj3MxlqymtsVR46uQhOWlQuwiwAAAAA0E1r0pQpFkUmn8ThlZKBtRo98qp7d7/HUmN92j/sukmo9KnCRs227uqAvKOIIaWYve+rTGHQqn1dZTdDkqYo0imTLU2nKNLna6ZB7gYjgcznsq6fd9Aa5vVoYx/E8ojt5bkBnNJrHRYL6w5W1PW3Uh3snyCX/Hhts5keYj5sQOL+/oJhzMyXKWC3qZUmajhVH2JucKYOu2Py97xmHzaWoqNGxiwAAAAAg6H+RGD0NtTj7k7PKrOxe9VHhXI/fXGgwZbA4bIsko4R88lSgdpjRa9DCmEELeezkFQGe3hStmJ6vNixVQ43C5wglr/jlPIKuqdLkBbo0phqrr11IopdtvTv8lJ9r9AxDmUUXpN/l8ImXTfLswgflSiyWOIdT9O2cI+ycQx7lRM4MmhnF+l1Lo7ezY+JGO63X+5rw5qn3q5aCUyfSq41CDBH0AQAAAJoLXXekC627mYtlRfzsAN/d14t5BL8wK9AtIPDsMwaVwtBUJQofsPlk+i5Mv8wWEMTTv2JGue2+wiMIOqu3kQaDoSRusCeEAlEVIa/Se5Bu2YnjmcUEwXtweO91momhllJTs6Z2M7Nl5ib+eYecA1GcE+m3I/3R25aSZWWnV5yUnHxLfCLBf5QV81su1dJcnyG8smbxqNCcchFBU9fs3V1NRZnK6ttX6+6JXefFvYDKzyf7hp4u4L9HhfAf3Ulet9Jl4eUe052t1LGDAAAAADQXWvSlbYOwxoavpq2O8Z05J1IciCm9x03dtcpZfG/NH4ZZRQUOtTxl0dfYqpcOQ0C0tRg548qOkGmLy4uL2CLNGZE/aDGq9LsLA0e5FYStTZg+K/RRZOBw12I2u6y7Y3xwTwaR3dSs6TozwqYG+gZbbCKIZ0LW8JkuagRR2GhRiv5En/Xyu+LnTZl7vlSll7Ht6LnxE8U3z+k9bszQX/fPGLeN/ZDN72wXukiHoa4Tuaxsrt/P5nyi/BnFdpEfi0YUvDvgs5NnuirOrB1mdHVbtiwU99YEAAAAeB8ylZWNXOBIjhQKq9TVVVFBLSr9ZLa5mSHqAQCknIKCXPMLnz5z1WqAMSoNAOCdiotLKRQFRUVqC00fXXcAAAAAAFohBH0AAAAAAAR9AAAAAABA0AcAAAAAAAR9AAAAAABA0AcAAAAAgLfAffQBAKC5IiIi3vaWp6cn6gcAAEEfXqPRKKgEAJBy1dXVdWm+0ayPlA8AIIXQdQcAAN5Dw0yPlA8AgKAPAACtLesj5QMAIOgDAEBry/pI+QAACPoAANA6sz4AACDoAwAAAAAAgj4AAAAAAHwA3F5TyhQctDdblVJSb0wfl3MJRnETkwx+/9WrT5P34hSVZhy8xRxsYUB/PY59cLmxYyr71Uumvomr5/QgNyOmtG35h6mjzZYnsf898lvXnfZXfn3kkhI9gIVdFQAAAABB/4tGa2cUdjTyjUxvkTXg3Z8suRa3/qTdt/8K+gRBVTF32XHIw5pJngnw7mce858b6t0uauNIVela7c42ex/ZkP/yM2OtZxR6Hwpy6vzynXHYJwAAAAAQ9Fsn9slpjuIWfXdurJ1fkQnrdgrXYe8mk8tRiTtzOJUERbufg//PeucWRu84zkmbvIof7Tlev7G2f3m6trnVaKPEsOzHfDLo3znpPzc25aGQoOu5r5rv1U+VKMmNC6k3TR8bjYvRdl6FPfUF9+8U3edrjF/m6z9SgyYqTVuz2n9bAZcgmH2GBC1zsaZlTBudSHyrdj+noKiEMBjnEe1rweK+OTXyDIR9fKtHwME8HkHTsQkKn2yn1fTzwoTZoXPd77ukLCH8x9ZOP/PaDbaa/c8OrOzUlIuP+foOYdHT7ToT/IbrAgAAAICgD1/Q5uIX3C4bt/TcNKPKPf5xbPMdhxy05UvTwrYk5Zp6+Tgl3bztvmVhXVv4m3ilGfsTojMJ7WFqNF5+sEd0ns3Sc/P0yvZHjPbaYpDsaXA88V/TvGjqQRDcggJacMwJW3pejL99wFZL84UG6eu8D2uEHQ2yZhbFzZg7e4Vm2jIKWe4Gc3rKCRNazlZ7932HXEytM9+cmhcr3cMr3SA8Zq8VkRbgPTtAyyDORrtZ+6B4+vc1PPae9c0L87GLSPVP/vWyTkHw6OVxxx3sfuSFN1gXOxZ2FwAAAPiqyVRWChqOJUcKhVXq6mgWbVnpJ7NRCQDQ+lgNMEYlAAC8U3FxKYWioKhIbaHpo0Uf34UAAAAA0Arh9poAAAAAAAj6AAAAAACAoA8AAAAAAAj6AAAAAACAoA8AAAAAAAj6AAAAAAAI+gAAAAAAgKAPAAAAAAAI+gAAAAAAgKAPAAAAAAAI+gAAAAAACPqoAgAAAAAABH0AAAAAAEDQBwAAAAAABH0AAAAAAEDQBwAAAAAABH0AAAAAgK+GfBPvpZ/MRgUBAAAAALQEA33Nzxb0rQYYYwMAAAAAALSE4uLSFp0+uu4AAAAAALRCCPoAAAAAAAj6AAAAAACAoA8AAAAAAAj6AAAAAACAoA8AAAAAAAj6AAAAAAAI+gAAAAAAgKAPAAAAAADSRB5VAABfldu3yzdvvnnkyMP79ysqKqpevHjxRa+OjIyMsrKCtrayrW3nKVP09fQYraYmJavWrZvy4MGdpk0z+JSrBgCAoA8A8IVF/J9/Pnv6dJGCgtzTp1UE8aIVrBQZr8vLhTk5pffuVURG5vbvr7F27fctnYk/TU1KVi07u5Q8kVi37vr337Oio/sh7gMANJ+cv/+ShmNFourq6ho6XREVBACtw+rV1xwdjz55UvnsmUggqG59K0iulEj04p9/KiMirikrUyws1FtNTfL54lUrKxOEh19r00bh++/VsT8DQOvw7FmlnJycgkJLtbwj6ANA69evX/KePfcqK6sFgprWvabkCr54QZw//+TgwcKpU/U/+vS9vDIiI699lpok4z65ahcuPCktFdjYdMZeDQAI+u+Ei3EBoJVbvfrajRtcLlf49awyubLkKpMr/tFrcvPm25+3Jsm5x8bm/fLLFezYAAAI+gDwVbt9u9zHJ7OsTPC1rTi5yuSKk6vf+mqSzPqLFp3/iKsGAICgDwDw5Zk16zSd/pXedYBccXL1W2VNMhgKHh5nsHsDADQNd90BgFbr9u3yjIziyspGLhhl2fQK8tE2aU8lRIKy+8Vxv1zeefGDe6TIUyymfBc0p6s2jfh/e/cD0+SZxwH8bd8XWjrA1nVSEJXiH4oItxLZCZM5enFTHOch2S7DaOK/7VSYN124xDCTOWQ7onNzMpNB5/4EzJ0py82tLDJLlk1gR0KX+adsY74MEWiu2o7W9u0/uKdFnRaKTEFH+X4CpAXS9/n9+oZ834enT8nDss1sZcV3WkqhOT5L+3RDZfu9fgVwf7+blE+acPc71YzSyRGrrhunYoWLUjTH4urydeqOWx7QbHadPt03LqUBACDoAwBMPkePfi8ShY0QT8UxRXsUkg9PZlVZOIpO3rpMXTJfv/GcwXY3R6OVxaq6EoF6439W1duphLhdh5ZVvkP95R/3c0U7KZ804bXXHpmoTgapml2j11smtjSBgKmubq+o+CPOcwAABH0AmHJOnuy+fHmkNeUMLRTSYrFAyFCcx2s4oss64s+sWx5V754t9rg4k7muvGV/r1xzNK7OPxnvn1qW6zaf0i1ML9s2Uy6kOLZr/+622rPXc7xYWvCMlK1q2F9v58jdzp596z+tkzp7mfkUI8qteGp7skhoMVWWnD7Q6Aw4UFmjYNcnKpWlP2KWSOhxtX3Y8lKViVqk2H9EuUrm7WX7uVhR0wuflv4o21WuLEgVCD1OfW3rrrd7LPHy0vKU3GSROJJmj7es3cP2cbcUSsonTRgx6P/ww8Udf3/L7uAYmn5175asrEVl+z5g2d7Ozt43D+5ITU0cUyeDVM1a6LHUyCXMLq1YXJjKWC6aNQdbDtQ7k9dl3NzeuuBPrsXi+uKLbopC0AcAQNAHgKnnp5/6R34vJ5NR/a7xs0NPGQov6ZotbV+xNR8b+yiBhLGqn6tTNzjlW1SaYrlmXY/2okKVHaVut8qz4+Rs16nBOS9vFNQ8q6ntoJTFy2v2ztevv/Z/AKE4Si62tzVbf53ItlgNFkqooKhIAVffkPWMPX3v8sMb4ur0PYEH+m8PFSGK7WhbVdjhyHlUuycp/YRdvG1hur5FubOLWrlE9240RYdnbUtTdbSq1vdYpLMPf5zx0tlTmsy0XNu53IwOiyxuU74oVkgFBH1Svr8JI3hhx5tbt+av/vPSM2cuPP3Xl9vP19A0v6fH1HDyIJ/PH2Mng1VNCUVjqVH4gjLXpP9TKmvOVFY+O/sPJm/Jre09//ooT2/Q0gAAAEEfAEKc1eoO8hOvoUq3sCFGlSFJzowrqFi5Pb911cb282ccqsIl6mc9lEwikViETrO2vn9tjiz2OKVaHmWobzXPSVM+PFt5oqDUQ+K7SM5Z5ZHUUNDnKC/lCXI0i1n3ldnCUb2sk1IIhJwz8EDkL7HHrm80shwlNtvNQoksOlI+jzEcNfVxXqq1p6lTSoVHZmZKs+Yta8r3UgwtiRecn8e83ciyFWk178XoGtjaqg7WNtYmDA4ONjWfPfHJP8nt1NTEq1cdRuMVcnvxYsXwlD9KJ4NWPcYaFwnYj0y9HMU16tc2UrKnHwtob4JotAVANpsHJzkAAII+AMBNhOHyBIG5w6jtNGqPt1fWKj87Js/N4dLL0xzl9ZuOWWPXLf9sm+96gG28yBbGqTJpVaxV22h1plLc2fZNeS3NpuFp3s7aRKpssbjBbhnKn1JpbgZ1rsd/+1oi9a9xnzP7wJGAA1GU+9pPuVGG7bZrd9evPWq96XcsBdkdmflJm7YsPbWuq2h9i7Z7rD1wOt0k7t+4y+PxKN+afsFv62SQqtsuRN1ZjQHtFS5K2YLTFQDgTmF7TQAIWf7tIEdacKKYf/jE8rI8kf+OKCsnRk7ZTXaRmLEbDHZOLM3Nk8b6p0G4jktaNqpw6zz5j6yu02sxXDZESlXzwimKlucr978YJ74xW2IxaWpN8i1LSvOihORRZTHb31Cpd8sTRIFHFwhHOFAgr93Q6ZEro8jjy5RxWfE05bLpv3XKs2Nihb6V8dsrMgpTIjKLl5Tl0fpj+qLn2pol0mQZPeyBBkfcE5PE+pzHlV+f9r2jlsHw8/Tp0TNmSO6gk8GqTpo+hhqddv1ZpzxDSmoUL0mrfi8tqS+wvdPoUQY1OGU3TgUAGCP8lQSAkDV3brRef3n497lv24tKRGUbHju1U7TwYanMZqzc2fKv017riZmlHxVs4vq1H3Y0ZcwrK75U8JpR12Ave0eq2+hbc0K1/1j2hrisfGXbQyKh7VLli+csvy4e8eqP6NbY0l/aubytQhQbL+itb9u04btvGEVgvv25S31i1i0H+putiRfwSw7dO9/nHlzS1Er1njEa+ryc06U71KrZm17TmCaWMuzx1qKfXVQ3pTq0unCPve9/9vP//q7m7PBdcXikCSM25603d7xa9sHhwxqhMPyoeveddTJY1V92ix68bY1eh+6QXrs3ra45Qyb1aPfovmm2B7T3F+8olx+8xMRonOQAAKPgORwjbKRAvulyuWNipqNBADB5lZR8U11tMJtdk3DstGypvCDWUvOxiVMoao7EaTZ8Wdvxmzenl0jCN29Ovvs9KH+HnYyODtu8WXHgQCbOcwCYvIzGK+HhYRERggl6fMzoA0DIIkHw/fe/n5xj93JUVG750tK9/Sxr1R1qreu4k7egYhg+aUJIdlIgoJ9/fiFOcgAABH0AmIoWLJiWlCQ2mfoGByff4C1f61fN19/NI/B4FCl/XN479vfWSZLyFQox3hYXAGB0eDEuAIQytXrZzJmiqVk7KZyUH5KdnDFDWF29DKc3AACCPgBMXQsWTFu/PinYC1JDGCmZFD6Oc96/n04mJEQVFs7HdD4AwG1h6Q4AhLh9+zK6umxO50B3t22KlBwfH5mZGUMKD71OkpSfnR3z+uuP4MQGALgturT05eHf9Xi8Xu9AZGQEGgQAIWDNGnlnp5XjvEajI+SLTUt7cMWKWVVVj4VeJ1NSJE88EV9VhUU7ABAirl510DQdFjZRM+8I+gAwJaxcOSsxMfrKFc5u91qt7pCscebMB7KzZaWl6cXFKSHWyYceEubkxL3yyuKiohSczACAoD9GWLoDAFPFk0/Gkw+Nhv388+4LF/pZtt9sdlosrkldlFgcLpEI5PJoEr5XrIgvKJCHTCfDw/mJidNksoi5c6Pz8uasXj0H5zAAwDgEfR6PR754PF6GodEjAAglJArfmzSMTgIAwChI0vaHbt7EHSLorjvkqG63B88BAAAAAMC4I0l7QlN+0KDP819dcJwLzwEAAAAAwLgjSZvk7fswo08OyefzyeH9/1MAAAAAAIBxQzI2Sdokb9+HoE8O6v/g9/fb8UwAAAAAAIwjkrH5Pr7Ifa+DPrm2oGmaYWin02W1OvBkAAAAAACMC5KuScYmSZu4X0t3SNbnMwxjtV7FvD4AAAAAwN0juZqka8YX84dW7kxg0A+2vebQpD5/0Iex2exut2fatAew2yYAAAAAwB3weLy//HLVP5dP8EnS5k1szg++jz7fN9dPRnDtrsvl7u29EhEhiIgIFwjCkPgBAAAAAMaS751Ot8PhcjicJN+HhYX5Uz49tEb/PszoD/G/OIA/NLtPvvL5A2632+l0DgxQ/pn+QXIJ4P8KAAAAAAC/8if4QX+K9k2gk1AfHs74F8ZfD/l83kSPgRllcCTEX8/6vh14vF7vwMDgAPkcpPz5HhEfAAAAAGD0wD80Y873vwKWHprFH0r5E/2GWcztLkTIsEis98V+MiBfyL82l09hLh8AAAAA4LZx+vq8Pu+6CY/4tw/6N43Pn/QHfdciN4I+AAAAAACMJU7fSNQUdY9S/piCfsBo/Lev3UXiBwAAAAC4bYS+Efjv5QCYuxgrdY/HCgAAAAAAY8RHCwAAAAAAEPQBAAAAAABBHwAAAAAAEPQBAAAAAABBHwAAAAAAEPQBAAAAAKaM37C95vBd87GPPgAAAADAiO773vT/B6Ul1c0KZW5kc3RyZWFtCmVuZG9iago1MSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDEzMzc+PgpzdHJlYW0KeNq1WE2T2zYMvfdX8A9YIfgpzmh06KTNtLe0vnV6sCW7l+x0tpf+/QIgSFGyXHuzybSO1xQJEg8PwKPUqwKl8T9Q0eD/Wk0v+OsTfv6q3z8e1YefQaUuBRPU8YqDpu9csuo4/zFobXqtr1bDCTTYiwZ91YCmeCyl0cCgAaI2zmkdnYbZjaBx3RnnOpwDWoPvR2NoHo6dZnwG9Pd4sMPGjuY99CnkMVqDe8EFf/sz2yUbxpzGg4kJV5/S6MTwMmExfJKN0Al8cpn4Ywy6cDnL9zz+efxV/XRUr6qzqffqX0LAdVFH9aJc6MuPL+p39fkGvlfldMCFNqYMdUAkU3TK6q7XTh1kgKD/8MsLqI9/N1YYfNuAD64zQKsSdAm8xMD1GUsb6dDkux3ElYTOBpfjVHEkzFLguPDfE8ITAq0jRMlSCHnG2VNEqsVQoUwc1rLEBjGaytSCrNsNYVmHpkt4gss7+rOEZh59oQSsj1b3mDPlOII8gg49QUaxxjSTE8jhKwvXkx46UhkJ+4xsXJgK7yPFa4S08J5iJ2Tb0qh+d4BE0J0JFv+1AdRvn3YG/6l5i4SxLpicuAdjkIu90Aa5nTl+1Xe3fcd2uFV0sNlTGxBSrbEPrmQsTeCRkFFEjOKQ1yDAYErmzhnGPLUsvgp1OXyU05gbGeppHqGdoNs4J86hEdy2PMx14xzzHMkNWDdJSkD70DlTamSU9MiZlF0YD2Qxhcr6Ug15ZyJuybLLTXTeSYIUOqzHWxLAdyKBweK23nMvxv3TMW5KupV61GbuEt1v5w/WWu8LfJban7c38Em/mL7HtiZ1xpnN3kRZgq3thOR9UzlzLlAb4A9nA4JtdPOcC488nwVxejZdlvFHTd7kuvpenq5SyHrqq+5tMkMbSaCtrKhIXOqHejz3/KvO/Z4kytfLktFmWYP81Y962jMlBBUDwmPE/1MYmw5UU4R2yMerMU9J2k2CbWdOZts1k3lL12SL+HSFMKwQLrNoTxvu71lye2uFSiT3xOxC5jUn/NS6iP048VjL17KAzj9TQ0lPKRE+7zNK5EnfeFHb2iUpZXWRV82OGDIkH5MCA5/zXuoLxq+izdIW5Z2NuNC4SetwEnsuf1MuO24yUXbKwiPcqCV6HkTg0WrCrECb51cveW5TLZhhBfXGvrBnLShjGw+eR91Yije1wSSFH7udaLqNj6YfD/3waE322jf21/hWiELYHpyVc7gPU+YCGzv7LOlQaDda1K+wbtC6beVFcfgFlr2oP8KITMCw1dyLI/vquOiuJc52WADJhyte2KHRZ0W73nWr1efLdQEhr4IL9+a/SeiQMCbDs5NYB1tiDQvb5ezO5aqK2ZNvjUR6Jj45X/SSPxcK2FUw7lwT9M02zVxX62prb7l2tEyS+5G7kfk7N6LlGHsh/1+WCU7eC07RtVq3lqnlJpPBZURcemNS8ILKJQ9bCL1+IimqETbpi/YuoZ9qGx0BhvpWoDnAbjmhrdcinw9T4hnqgUOruHlOLnD1+I2iJxCQ437dY9g6n6SWr+rFXnGXplUiFday35U3E2kV/CDdvRfptmRGvX5e7vfJcpXI8WkrMx35HjXX+BE1+d0A8qXmdqEF6DKjvGFY3f4bo4Zey9w3c8+AoQIXQ6tl8tuhi8Vn1/bES8TaUSknaViIsrq+3+bhc/2kXlFwyA9Lm+Row95NvX09dAjBd9E6eUFUf+ZXRHtiN8TY9X0vtUDuYniJ6lxv8PlybSKcGY6tgpDrkVxIxkPw9qtv0xvXPv/wH6CUenYKZW5kc3RyZWFtCmVuZG9iago1NiAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDU4MT4+CnN0cmVhbQp42rVVyW7bMBC99yv4A2ZnIUciIOhQoA3QW1rfih4sS8olOSSX/H5mSEq1ZRvoktoe0aTE995sont26EC/6BrSH7jjk87u1B4uxmfnUxJ2rzrbJR8kuicXpF0mj+67u3ef9u7jF3TJJyFx+9kFYh+4cTtqfJui248/OgBCgAj6CQAHARgmANa1Q+p/7r9mCAyeg5Bh7FC3s0+Idbs9btsPqWxjzNs+789VCnmSZpFZZ2c6T0gCqh+RlAzESyUyfaRDq5djNOKFaA2PR3UUFJr1yoLu292VxZeHK5QqEZtyP9PhNAHRrOPxguYd6CwTUTaclgrU1KMI4GEEmBlQQ6r/b2qoY2bgk1yrPxonzylVbE1n7Aq8QiNPCq2WUq/lwF2J64Bmy0pIKiUAwmwpviXhKrW6iqGp1FoWhpPdCWpx0NCmFc8TWsQCJ4tY25YwbhdfrjAxeIlxQ7e6pjRqfSpeU3tYvF8DoY7lW5ZnE9bQX8X5rJ3GqcfQFQWK/z6OkvgIuKHKjlouzZKVDBodEMdsa67/0NV/6yKS5Btut100/pcuij5R2HDCOPbE3VLeOSzVZeusrY5rGWXrHAnriyfX0BB/dY5BKbQld8fCpb3Czfai32mvsqqJW+6bH3TTjxNyfUdlK5Ee1ohfIFJbmlBboJRoFZchWepjJpqwW5qoR6jPGkTejvleFWBI05iJ8zhrFYZQ5jPV/yZw2IZeDwhObawHhETNYVhPiDq9dZTpCcKsHSGNdkS7lNt8UdX3H94AHdmbXgplbmRzdHJlYW0KZW5kb2JqCjExMyAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDQ5OT4+CnN0cmVhbQp42l2U3Y6bMBCF73kKX25VrcAG7ESKkACDlJX6s82u2l4ScFLUjUGGXOTtC3OcVbVIQfqYYeacyZiw3Ou97WcWfndDezAzO/W2c2Yarq417GjOvQ24YF3fzp7o3l6aMQjLL834tbkYFv56+q2ffn5+vvbt36mx3WMxvHWPry81l6wzJ6S+3EbDhOe9Ptym2Vz29jSw3S5gLPyxVJ5md2MPeTcczaf12TfXGdfbM3t4LQ/05HAdxzdzMXZmUZBlVI5DWzt0Zhqb1rjGnk2wi5YrY7t6ubLA2O5DPEnx2vHU/mkcpSdL+nLn2UoiAgkQB8WgDSghin0sJUp8TIK2IEWU+pobUAraEkkJyomU16JBPlYRbQSoJsoRW0oToV8K1QWUpVBdVCCoLtE9hWqtQVCtfSZUV9CSQmcdE0maEo9qEPXjHP5kDFKgBISakvrxGKqlBPlMBfKZNCWe+H7UnaeYrixABagkktApNch3oJlxhZlJmhnfIqYiEGoqONpiggqOckxQwVGOKSk4KjBBBUelj8FRCQ8KjjSUKXio7t7hallNv4P8vpH3DeYVGeQ11MeRz0b84wILAekxrZAQOZEoQRAkYhD+NkHDEQnkCf2/mPXErOf8/Zi3V+eWc0cfAzrR6+HrrXn/XozDuL5Fv38eIA/hCmVuZHN0cmVhbQplbmRvYmoKMTE0IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggNTM2Pj4Kc3RyZWFtCnjaXZRBb6MwEIXv/AofW62qYAN2kCIkgmGVw27bTXvZGwEnRdsAcsgh/35h3rS7aiSQPs/YM+9l8KrY2V3fTWL15Idm7yZx7PrWu8tw9Y0TB3fq+kAq0XbNxETv5lyPwar4UY8/67MTq8ff5ff86dvztWv+XOq+ffjlTtf32j+8vlRSi9Ydkf1yG51QzDu7v10md971x0FsNoEQq3lbd5n8Tdzl7XBw98vao2+d7/qTuHst9rSyv47juzu7fhJhkGV0nER7zdC6y1g3ztf9yQWbcP5lYlPNvyxwffslHhtsOxybt9pTejynz2+ZLaRCkAJJUARag2KiiGMJUcwxDUpBhijhM9egBJQS6RxUEBnuxYI0qCRaK1BFlCM2H02Eegm63qKzBF1vSxC6LlA9QdfWgtC15Ux0XUYgdF2BNLkkwwpE9aSEPh2BDCgG4UxN9WSErrUGcaYBcSbVkzHXI5dkAnf1FrQFkWdSwzNtQVyBPJMGnmnyTKaImRCEMw0UpXDQQFEOBw0U5XDJQNEWDhooKjgGRQU0GCiy0GCgyKJPA0Uld6354VX9bzWl8eU5lR9T+zHlsiQTZAWFUcjZiEv5ZcqVgr4oz4gwdaoA4d9U5JmKoE9VIJ4zJuhTaxDvo95VDEXKgoqZ1OwIyIIQW/PMh/8rXD7V5Y75vGKaq/fzB08XEV0ly1ff9e7zrhqHcdlFz1/G1SkdCmVuZHN0cmVhbQplbmRvYmoKMTE3IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTM+PgpzdHJlYW0KeNqr/08d8AMAXstIMQplbmRzdHJlYW0KZW5kb2JqCjExOCAwIG9iago8PC9MZW5ndGgxIDE4NTk5L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggODg3OT4+CnN0cmVhbQp42t18aXBbx5lgdz9cBEmAuG/gAQ8HD/AECVISKYIEL4mURN2ELIqnRNk6rcuyYkuOPYltxkk2FY+TrJN4JrYymdSM8yifieUrcVzezdZ4vJVJTZLKzJbXNRunPDOV2qwdbyxwv6/fAwhSlGx5Ev9Ytvje193f6/7u/rrfowglhJSTu4hAmrZsb2zJbfzLNmi5DL+TM2dOiZ3rhElCqB/qXz1wfO7ImdkL56D+JCGVzrnDtx+4+Ynx9wkx/TdCqn9/cP/ULD029R1C2l8B/PRBaNB36Xqh/gHUowePnDr72XnjrwnpEAkxvHP42MzUM2d+NEpITwUhmgeOTJ09Ljxk2kpI/1cBXzw6dWT/Gc3IFNSfJYRtPH5i//E16c3HCBnSQP+jRMPa2WWihb55NgYtw8qd7iMtFLkgBqL8wHRmuFG1SkYP9M+SvyDkD0z49aIO5n6ENoqEfhn7mMAu80cE8mE/Z6EcJUcRn73FKglZ7NA8kn+Dvbr4LtTDi+8q9QIe+avFNcvaX1xRL4z3U/L9ZeMp9SKeTJKiTHaO9edEcfhZYto6LOu27xmTW31ydW7ygDi/c0xmsanvG4D/mRlp2hcOyyQnk6zUdwlkkJ3srZdpUhYnD9TLLCnOivJLo7ImvudSNTVm+2f6ZV3/WFgWYrltN42FpbBvfkyUR0ehKZPziXIHQh25nLigYE/NytXQpNZEuQn7mxDzpdExEaiZnxJl4+jYJLSI2GdEKI1QetI3mcvlfDKty+UkmYyO7c/l6mUhKcI4mtgUUKbNjo7JWqlX1km9wEdOppP1siYpAV3i7IJ2ulfEHqTYp1CAV1mY7J+RhdowdGbFeXEeJlho0saAya1jk6O+qW25MSkXzolyZvsY9PmQNXX+elmblPXZukuEKZLSQVXqlUDiUu+UzKYPyHQGqJC1tfWyPikiqeXZmWc1ZFrEEeTMZA5RJvs4qYbkJX05yfb31oaLsi9LLteFURmF1gEJWeB7Uuyfl6ZQL1xexIcylUUfEFmgErQjTfUpU5Rf43E5Ck8R3xJrpQ9VJDlDl8qNAijbJ4VzteF6uTK5wFi/PDvVVy+bkoAoinJFdiM+DoDUm5MrsbYNapVQq5fNMEwVF4kIEpiBeWVTdlKcnxRlEwitXq5KDu8YW9DM9uWicuV+6Wy9bEkObx0b3q40+sLQbuPt1uQCMWd3ji2YzVmZTvXK5jq0WbDk3oUKvFTCRaZO0IQQGx1bQOEBt73zoF+ctjYswWMF2Kf04yPgCtiSA04Ggf5BaF2uqmsocIEQmwTSyspk/SVKKdeVLUkWCOvfMSabpV6xXy4H4zNKYHC94iRM/5TFQomJ9PbOTy5YdXXy/XW+CIjJDrzZ6uplR3KB4t0Jcsa7K7kg4N2dXNDg3ZNc0OLdm1zQ4d2XXNDj3Z9cMOA9kFwow3tNUirIXdZNgoQlsUGm4+gg9XJtSaez2Hmr0llX0hkvdp5QOoNJIlfWfQz+QsBfEOgSgT+8h4E/vEeAP7xLwB/eo8Af3mPAH97jwB/eE8Af3quBP7wnk2InN9P6JExrmRSzoNvJLFcluF4SbbUhKdfXyfXghY3gAIPiNbQoTXVIGBGvi+FD7puKqqVOubF2QUsd/WMQyJDB5lLJXN3dkhTbOL0pwKP9V08C3rnq5NhOnE/y1aRvvdSx0EIdyFwrCAAoXp1g8Iqpjnq5Ldng6qyX0x+GChY8A+jtoBPijIkN4iB6Pshyw/z8oDQIoWIMlgiIrBAO0pQ67CDSDghRTrkK0DQQNWMcTS7L1u2fb5BEsXMexluzHEVsUMaSNdACmKI8iUEjs3XsCSYKou8JFhe8uV4MpAaIyRLHlgbAhbMr/XESg5mybrDs5CxYX3ZqFrpZdsoH8CQGspXPTAFZEN6lAVCmBDMMAH9w47PAeKtMIikhUwNRApSgBcvSXjUqjIgcxTgRcB1VQuXSXKD7tQU5iNCqjatykDpBROuKXbKB9w9Igzgpaq+zKD5kRpUw2THWIHbCkovUq40i0lVQgS4GtQ2lq7uivNXMWtWUhLbdVUJJtqCqSUwBVrJcUO96CBQNKMUBuSo7NuqDJVPszDUsNFA7OGj3st5tvtFlvZlVn73eEz1JuaPuehP2JuU1dfNAG9oXMHVNVFBog9wAT2Q5y2ibBZ2gWUrgLA3gZ8qofRB3YAkpIN6AEQ/+sewWucAQ1SlBFCqxkHBOpbEfYmtHXUEOA1BbUxeWVEmonBSZHgSmHYqDQ3oBvmxrkFvBn4eu0b4BhqN2m9wG8Mak3A63YZRbPwhYHIC1tCCpkSSasDwM4KbkJQhWAGwGgCKwJXmJ8pZRAHjLVsTpB2Ab4iCwHXEQ2IE4COxMPgFRrwegXQBRDu1OPkGVtjGAlLYc4lGE9iAeh25CPA7tRTwOjeOcWQD24ZwITOCcCEzinAhMIc4AANOIg8AM4iAwizgI7Od09QJ0gNOF0BynC6GDnC6EbuZ0IXQLpwuhQ5wuhA5zuhA6AjJeW1TgUV6T1wN4TAG7ATyOQue1DNRuhWVUxTmhgIhzkuNQFecUPLyuOOppXuNPnFFAfOI2BUT0szCOinC7AiLCOQVEhE8BbmdxvDt4jaPfqYCIfl4BEf0CPKki3KWAiPBpBUSEuwG3qzjePbzG0f9MARH9MwqI6J+FJ1WEexUQEe5TQES4P/lEmYYVktXeOtmwXxaio2cL63A96Ewg1bATE2E/Vk6cJEyMzwRdVRU6IjTVWVPhFofFLoUjbZa0zkWd6TZLqxRm0JxO0LjOYamW6CVJym+WWhmjf8E02vy0R0u/ITCWn2Iadlm6Mi9J7IxWw678tUA1bJf2yl0axnYDfOW7uLdcCxRcYi5SSaqH5fjoWKYcjMI1DK0OMuLjNTKh1HJPxsJM76xL66RIHAhJp1qcDsuliNcbwV9Jkrz0G1645mcwM6CLo2xs8e/Y6zB2fEE325fxERxtN/ZNMIDoFgArSUVM0DvqFnSkj8Xb2pRhHXad9KA/GJb8AYmNOf02vxMuAQdudYlx8Q/sNPsh8ZIAiWUiAaoR6EaiAW409AARBPswo5xiu1uySVq9py6K40XiiURYr+PUt7bb0mlXi9Nli6US7HTEaQ0YWvM/a9UHLF6f8L5BtFtD+nfzN7+2v6fcG3babj9nc/jdZUa2y+5kDtuVp3/4G8J1B5Jic6A7G/GTGGnLtNgUagSi0Qqa/QTUMg5c24d1VKsl44okA4FALBBNhIEOPVBHnEheQaipFqjp43FJcqRa0m0s3dbKYRbN3rfvfZTvBy/UVTfWxC5+J1hf1ba+/m+fpMd29d22T/KyXq90qb7f/rWar1dH8hdamtZFXwapVMPOfid7mSRIUwYsjgqUCOeJwKjA7gDatBNEq7UPA6maCaLRBDQj8UQkFonq9N464rDrQWCJuBTR6Rx2Z6qlHfTjQoKxPQ4cpLGB7TBXeSyW5jUDBzsuzHXVW01eq7nKvHls+rHp8cfmciNsXnLYHWWudYf6z5xzGZw2Z5VXn9j+rZMHvnVTAnSKcnwU5FhFPCSZqeFy01AUnJYKQkFwFgshFo/F7XIAoimtA7shTiSmRHxWRWCWFP2HewcH79337yiyfx/dc1Pu4kV2efyR6elHxhVRXXnmMwcOfCZfi36A89thfpE0ZpLX1x4/ZwlFw1FFe1GuvbA6fbhFqTpSCiA5wvS36BMLSAbd4pUivvxv38Tbm9R8UnJ5RIWYsNcT+i5evk8K9BiBHh+pycSxhRG6X0s1GmGcWziQ5mBIio9426RoWKd319mWJrUXfVQl6LV/xPn/MebxIxn9WGEb5LDXGXkbaVEocEb43Ggvn2OvkkayPrMuTjVasGcm6ASmO6+nOqLV6LT7gQg6AaLxD4PJ8AgR4JJpJPVSHOwibkDrQUdeZidcWSX2BAaVbm/jHgmqYzdHQtOnZ74zPf2dmZkNZnPYbbam12YOd3cfzvgz7n1I9WP0nOT9qWTrmro4PX1xqtrgNXtiBlfP0R74ZzTcjaFIld+fgfxCJJGJqrFhv07LSqIDUBsiQVtMssVUL7QoYmsLl8gPg1EYqWPTkajfE82/HPf4JIRod9zDLkd8V15Aut5+m8u0F6//8i9eSaGBvAY0VBJbpoqbkWJAq4XR1wqjSsVRrryg6IL+Csbwk+pMDHhCOzgPyoexKBUmNOAcAQFZ8RNfXIpr9a46ZzzBxYnSBvGmi3Ogmzw1HaqI271BW7Un0CbGPf5IBsTWWGu1uKWg1RxM+elj3Eb3dt7Srcrx1+x5iG3xjBS2mowaoGGjBhYYIIEWBRkj0VhDDGdfEqMFYm1CF08IllJpumwQeVPsR7GI3y9dNHpNlV7jRdHrEWNec9Dwi/9h8JnY88D880gF/fIHFWZKzRVUm5/1RUAyWU/UXJFfoFsqzEU/eRDkEyDRTNhjZKtSFyD+WHw5dQm6nCqKd3YmKHlNPl3+SyGPG0BzQE8Ph9zssui+8n2vVGag/z2/0y2KbjbolSqM+Sb6uFvkx6/cZ14HnzGDTYUyfowcqntA9FLdA7wiogE/jepKXAI8ooGVeANE/NfHHp6aenj3bryO3Z2e7OyaaGub6OqcTP/h4uTkxZkZfs0eyXQfzWaPdmeOZBUaUBYpkIUdaIBIr6MakJCGoK+ycS1VjcZBRxywjjpCjmDAB7hWKa4HcyzG0RLbh1iKwZQvP/SRvR0de1OPo6ok71u2mMsVsz3+OLvcNdfVebDrea4dsNu8LKb8/lToVypNi4vsAaCpmqRIOpMKw3ITg5WfbYSICurT0v2kGNNUv6ypqUnVtDQ3tkkxcEw3D7DKIqSshMtiG1+JnLAgOZ0utkQtu9NcYQ657UONyecC7kAdxDyxdW97uq5bJ2gMpuciTmfE+stf7vGarGZrec35aO0PCwx0THe1TPiTG6vMIZ+eaiJrwv5G//8sxMV60DHnhAgaohHIeS5iegdwwSZA6/5hvqLiehHQou2lSIsUr0UZe1Z6JhCbKFiBqxAYMTKCKbiCjKvjrePNvojbZq4eae3YOrr7l70nBrqPxQIRl7nCOx7r7h8c2TXXOnimzxitcwdcUkU42BKrT1WKf9M93hwPuYIuqcwhNcbrkiZz49Zs90QK+AiCYnaATiDbzARR6MI4xpGCdQDRTmKXpKjqMLigFJxFjdRh1hKJ+L4R9/uj30C50cvgI15v6MrveBCsQCMhin9CrnYG4kcI5wLH5FGQsUJOqcRgcIwl51R8oxizSmIY2yUOnN+69cJA1O+O1g7W1A3XB73seQhWD22/a2joru30Fp5+PtQ0XF093ERv8SnrGfJ7H3sRMgugwQHWRzdChFiKx3D1EHcioeFuAMYmABFxCFyKsgohayame69MtFoChve01Q5L0PBfnjUELeyFiLvSdOUFm53arKzPaPaF7bZ8gv7case5q0C6j8DcNWTTM7FAhUAgORyWA5Bo2yAp5y4pCKFCrPJlnJCXwWJLzqu9akcuUwlU1pBqsJgErvUFOvUQyoTV6HWlVbqFMzXCj3VBq1Us+8IXgX5rUPdjocZjF3V/frchaLMFDJ96UBe2sxdj/rLyK5ctdtha02z+eWDIbmF95WX+mMOa76QdVgeYhzX/E/qy1cHlCskY6+dyDWS8NiNQDZJldEmw0WpI7UGveqHgtCqJLlc7Vy/rL38j4vZIf2+tcfkd8kVHwB1lRyz5f+B2RBm1u11eyf+/fxuMepV4IoEPNrAwpD0J8rmM0QV7mjIIIwyE6gKhergf6nABCA3rMWmbKIhW2d4EShGQSo7FY3WAgvyDkPkxzW6OoBjpMoRcLmP3+2G1TfjjERGTr3g0Zli2sCwL7i6eOfCMlLt1ilXgZilMPTsb+4/3ZI5lm3YEIt77t23ryWzb2sPCYMw5WPm8gZrB86OjFwYlH4WYmp0YGpqcHBqa4DLoARmMsLcwJyAHMkYP7DiMqgwUFhlzYlomQBhC41qSQwBNzAetPL+d44jLeoG9QACg6kBCCmNOEYvFFfaU1QH4W5EbAZvWEv7owwpXO/2FfaF7V2MzsNYDLLKwwlTCr+NJ5ynU8hvB+nwWeUMeuV2Bjum/go4TZFbhKLbapgVDbKh01+LLSCvwCmvMXAlWLmOCSRIkHotGY9Gl7RforBh8YZeznim59JIy6YWDXkeV3VZmTFQM79yVbXbrHNZKT6Bjb+um05ns2REWbks6w2VmrdYwPjw0USGYDaLHXesZurB56/nBou2+xW33wattN4Da4orjK8nq9hteibSKDYdgLrTiORX3kzbityAnfmi5Eb8Cu627loxYkUUYdCyCLOYU1uLQTCF/O89fjmvJfths6LjaQkqyS3iu64N8voCoARTYjswVnihBy2XM4XAY9tiOeDwaCfPtCOzLlOVEiT52/YpELKoPt4ENMDHqzj9dsStd0+DTWqscQb9/X9OOO/uGzmR7Tw/kv+igOs3GRlhX1mXNFqEsaPc5XeLApzbturt/6Nzgw0f0tZ2FdYfKoO9a8vlh2QccBg16ptPx/bZzWKB4tKIB7brU3ZyvYO06PdHryHkD1euvjQzWruJBM/SDTOZKnlCwQNWwAgEFNXYJthZRqUzvAzk4ijvFFQt7Sj1/UawgLlHRfxMmvDehJ6cRSs9Nxdr9dm25zl3FziVcjSG3O5T/Jo/X0wg3DO8LhtyQV+gUPXewDtBzHWknn82YEiA6DxX05aA/QY1XteC0TKDsPEF1G8BwQeFlwImiymK64MHgVV1ARjwQACh/ddRcxplMEpJsT6ZbmmD62nhMqo4ZSzd6mHy1p5fSsbYPsXpn5Cungjc7mwVdwGIs09wU27jBmUsNnOztubU/NeaLeB/YuTOb3bEjy8N49txpu9ER05c5XQKV1qWbQi2KN9QGy1eEdDxHBmGVga1EyOanQpRqqCocF+EuDC0TuPsPFZJkX8ahpcq2do6jsNJEIULCMfhRE4XiTodzYrkqftPnR1C9demO7kLQ9m1PsfDthxYJ1ytp786mFJjxFOtX0dTiImiUkKfY6yTCv1ERQNv/q7gnswAvYdKTKRNdBr1GyXqQH4uyOAmCaynnKbYVg13uaVh3JL5XUtLihH75smMpeLDexSwJp9f6ZHOB9J/ZPE7J/ZXv7fR4IvYX6m9eojr/hddtMZvb8bkXSIFO8iOgs7A/d15nf/4jyeuJ8N/icFceUvQm5MC+28gdmfJ6WJfoxhbw1Q1KSHei32onDHqdoNW6hiGlK43lXoKNiKKb4JEhtISRcWML9BEdKBjXgUKX6tJtpDWm/HCXvqaWr6HzFhemhpXLFL/CAM5LrvF1q1vBMpif+VZFU0dr+5Zs2QYyiZBb0Ja57lEaNh6eIbFF7bNly5qLW8SHmjmZKJj5x7LzH29G1ho61vYW2dzdeg0OOVeWaKu6VoFP8719p0Kvo7DBD5Vu8H3IIsHwNFfSmnv6o278s0N3Do/cMTR0x8jwnUNna/pra/trlOtzFwYGLmDwGLww2ryptnZTc/NIbe1Is5oPdkA+GOb5IOQVbsgrjKV5xVLK61JzCiQMpe2hxbyCYO9VSWMpYiZUTBxLO1VBeJS84hPJHl/h2eN+1JBmWfaorDeF/cFfKfyrAqEgEB+vCEold5V4QiVp0rC64pSkXa4VudlyxKW0q6QPHyuuSFenXbHladfKFSi9WtoVKWZdzTv8QthdTLtckHY9jDJ51a/mXVGfK5jfVLLQcN+k3+R517eHZevo2FMBTB42+uCOjprjjRkbxuGiqxazE2WHBUZA6HGM+JMrEZTth4rAewjRTCoeXUhbfGo/+jWBNRxdhQuVpyuKX4skBPE/WtjoFg9GdI6r7YeerhGdZpvgqPA2hQpm49rVDIuwKxSCBFHsqf/XJZeurKlDOXhgj/EiyCFNxhWyo9c40AkNF16RBLRAfWQlGuhcAJ2XIOUyZUkpUSfxFyhpTDGUDIOf9zSwkgMffYExDAGFEx9wEo/XZHbYgj0Nm9s61m5oa8+1pA4EKm0mq9NkXRMd8dcl0kMta29q6j0RnbB6rWW2UFDoCATNVWJPe9NgIh6rsrvM5Sant93pM5ebxd5084Z4shn5NsPlMJsnNcWcFPZKwj1aWIQY5JcYBPhSVDigKeakiAXpJdVRve58KTopQYacdBkeYACqnkHwXsJSF7AaUm3jKWkUF7Co07F6JlqSqSpvn+hW17rY+p0NmIw24Io8iNCg02YwVZTf6nP6Ym27qF10u0IZ1HcGofxvHTaNlts/xHIjc4H3rVc4s/JDKVcxdeRhnDcyek9JYy5TobxtgfVGPaxSKS6+slSSSKjRX0duO3r0DM+ZYa8R8TIXZB+Hz507nOd5SNe6dV0A8T3C4iKzAz1e0vWUEzc1ap5k0ijxupgk8QbC7ikeCCE5XuJJWFyFczp+HsQPhJYdBNHfiYbn9D5LmSVg+IE+4rGJhvn7DX4Lc4ZcFdb8rMWO5zr061VV9rDdmn+FrrPZaYG2N4G2arL9mSieXWkL1LmJFrxAS87rdZCtQw7D0KeV9RqbtJp7YEumvafYDrsxILeaJGIJi93iUl8OKSdtiTikdysJ5/mdy8UP3l4Oa76mC1kNEcvOrZaIwRrSfU0T9tkDusNbqhIOl2HTIV3QCSL2lZnys1YHZdF3340yzlN5hSdms+V/+bOY1fYGFW02xQY6uA20kFszRi8VtLgbKZyeRAsbDJU18OnV9iHRApuFvctqaArXLaQ5Fo9Gq2Mq1ys3H0GmbD5WnHtio0UxpgdORwYL2w69lHAMZluPto4m0b7a21rXqPa1++7bysvUDYdgKuvaaOxp3t1Bo2hyi6S7vWsNhdQG8nY8D92Few2aBvIkCF1/qeTv7L7iu4z1/F2GT30Xyxny81exdAJfywboSBU4cZWvyuu0A6Ipju9inSW5DYaydMni9c+3r19/+44d/JrZsCGDv8Y9jx469Oge5Xr23Jkz5/CXr1PorGF+Rl2dicF6DY6B70Ah/TsvKG8yCke3TuKIxdSj26U3T0oUaQczIosRPKdeb7Z4JIvpKxYvu4zv1viK8It4WdxV5TfsKcM5G+Hyf4HvGtKQqYOpIHppzheOFJB7jabkHTDEr4RU26pT31Aor4BbYUaV6SINRYHo9Sn6C4hV+b/xBq2/iNVlagPr3Fa/M2a3x2cbemfTPe0X/u4oxivR47G9Xb01Ut+bEN0Rhzlkjzd0TK/v+vS6e7lfvkvfBNm0kvPDsglsth4CrlbQ6gUIuALVCrAsYeBld4BV6sYh9NqXh7dUER9WM8jnYLGjWs31n1KCditpBeZiYKnKrqOY1xXea/BEdjn/7YWXBsqGjU7sbOg9Oxod8sUibrurrjXUIfU02IOC1+L0GisefhXDOW0Jiu7P0h90TrVvOLLWarZH3NXmcGhdPN1poIaQy+Ss/GsUVNjndj+INrsHLqf4e9IQai/Ev8LQgo+CxVAlyVh6vxEMKK9Lpai+mGEU3iu1KWqkihumwqk2tgMIqsWVJv+BM26mnbaQJ1Kbv/wtmkQSPo2W9GnJ7bTSe9zghn/7Gv+uBnR0BehJk4FMNkUFPX6hIlBBQ8GiMGLcAToA6esFXBq144VPMEpepadJW7Q9GoMMYaWsVxO2+lkLWpv6yl/SY3a081DXyPkNie3eiqqQx+qrFWuG6jamXFGP1VGeCNOQJuyiYRT57222tV76s65berInsm6HMVplDdi88Uws3VdRUWaoDRg1v3f4kOMvlZsKcYJ+wF7k+450JgWRFLwUDAjYYsKc+t3E0tcBy7cG1cveOqpJr7qrR3b0K3YGu/dnum/J9B9em7r3VEW5NxJwdx/ytGRCvb2NTT09TfTV7kPr4d+mOwc3fO/rYcEXcIb11r2Zuvw3B1pbB/CXx5XOxT8wC48r+JYW4sr4VeHEHlt6E0SLnwuFVSOmv0no8u/rg1ZPTPd2/l1urHvZ5bC30nTlOSvYqamS5lFKyvsKnPUnrIrvHUfUva6Gqh9V8awD0mwIqw482HRAtqwc5JW25zJWHmtDVQG3AwaqbMNYa1USj8LHUhJbUd8fCgUqA8sv9N5QwIIQXPK3L8EgF//ibeTn5AREfH/GY+HvyIB6+DejOE2iNoKvcpyqPFBVXDn6Ysh3/DySDji9VTaN32GxlFdUBpOOZIt5oNXmqKrUMbOn3KLXQo4hOdpTimyicPkS6GKYbCEPZIw91FDmg0BfWIlrLGYd5BwC/+ZhrpyWldmHTVWVgl5vmKgwMoMhNIwZKN9UJLCBdxKD/uAqD6qYuUxkBLQ8smVky+ZNMPHGgb7urrVrWlui4WhMckjRsFUfqKP6QtK55FeloJqhLgHpwmlUKagMoYcnWTzYCHsRV49d8NndAVr1mF3w210ARLE5rfRm1F7zo2qvWcLm54OPBekzj4dcTv8ZmzvoLtPsO2N3hdwGzT5s4x0nlI49J5SOPbzj8cf5932UvEjmwWw8GWfhyzv1LS+aEn56l15hOrklg1lmIy3kPbqHHiWVJKh+y7cTRxzn3/Jt4t/ylbeqA6rj4XA7IT4+jkHy8fciyiFamKh/16b+tdqEufP/QID+NcL/9bkv/ye8/3Tw/lfykfwb2ibNI4CrR2sk6nPK379pt+cji89om5b+Qk75Yc1sCCLSO/ht4+Iob7lAjOQT/GFfJMPsJH7XeY3+n/Czx+uP0fnhOB+bvhag79nr0Pf61XNT23+cHlZ97Tmv9yOklLnZP98YDey9jzffn0zuNy3Rz753fV7YzhunnZ3A3P4afS//6eyJj/9tEhS+h987rNK3A78V+JjjHoMdyiepo2OkhwnXnvN69LC+Py2tsE8LstuvM/9GPN9b8fMOf0/zx5XRmiVboqYPtyvhPyt0gR303NA8Bz5Z3X8U2yjYAL10fV7om8RzQ7r9Gv9r72vPPXxjsvsYa0IQluPgn3Ju9vmrxwcdV9PDRMvcpJEZwb5fIXtYlqxlUVINdtZJ/j/9oRYyQPGvBkpl8RTkxO+TtfSBjzxMC/yuJ4fJV6H808crtInevaz8cGVhxhsqQ+y7y8o7hSKYPrRsvk75JpQ3Vy+a6B+pHOXlp8uLtuOa5eiyIt9g+Tfd3pLy0PWK3v0xy33635UWw7ll5Z0bK2VHVyh7b7Ec/MjlMi//tLKUH4Ty96uXCvGPVL5d8e3KdOUPlhdT+hrl6RUlf2PFPGJ+dqlUdXyEMlQs81WvWNyWb1l+Y91rfdr6b59ksfXa7lCKvcG+4yOXO3AnxvrJQdit/TnRwY6tlqwjn4MIdV+lE+qU/+cmB2DXRzV44GrlO0CEKbFCTYEZMdCoCgukhSZVWEP8dJ8Ka4mXnlNhHbQ/qMIm0kplkiXHyHFyOzlBbiZzQM0pIkKcbCLNUESyA1r2w30rOQ39M+QQOUmmyFEyC22j8Mwxcgv0z/CnegDnFOAfg/aTUK/mo52C0U/C7rIRyhyMgRinyTRpgKeOkSPQqox3Asa5jdQD9hTgHQbMowDdxnsbV5l/AO5HoO0w0F5DkjDfberoItkGY52E3xPkDFyR1gGY6yincjN/DngS/VePKgaArqvn6oWnD8M9Bb1NvKwD7g+Qfmhbtwp+ffGJ1eRW6NvFKTwJ/UibWDL69UYsyFSR6EnAQs0dh7aT8PxJLpEGroM56N8CnOPpxfCz5LVtYwuUfiEnU+UPy48vEH3vk4OpkEBqEXxmrSFusBoEg1Lr0zXp/DpeM/ZeNr1U9pLmJTCcMqhX9l4mGV54XSB9C1F639YxOXPf2IIw27cQx9oPDHeBmWXum9kxhig5+Hmm01BtsBuEitpn6eJnZM3nFxjpe0I7qyN9ff8PQ8BYJgplbmRzdHJlYW0KZW5kb2JqCjEyMSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDEzPj4Kc3RyZWFtCnjaq/9PZfAAABWrURAKZW5kc3RyZWFtCmVuZG9iagoxMjIgMCBvYmoKPDwvTGVuZ3RoMSAxOTQ1OS9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDk0NTI+PgpzdHJlYW0KeNrdfAl4W1eZ6DnnXt0rXV3tixd5kXwteZFkO7YleYsjS7YTW47txFmsJI6txE7S7KTpkhTS0pS2MctjmWFYurczwPDNm+uW0j6agb4CfTBfhwKvlAIFhjdM6Qf0DbwZdiy//5wrybJjp02/Dnzf6NT3nuW/5/z7/59zb4owQsiIbkMcahmbaG6dLL0vAj2X4W/m4I1nvV2fJiJCuALaHzl0+vCJG2dvPQ/tzyBkch8+fu7QQy++0IuQ+TmEGl89MpeZxV/J/BNCnTCOokegQ/wr4Ry0fw7t2iMnzt78oYT5Ewh1WREyfOb4qYOZsW17fopQ8ksI6UpPZG4+zb1iHkdoy8sA7z2ZOTF3811jd0P7jwiRA6fPzJ3ujI6eQig1A+MPI5548fuRDsbmyST0pLQ73o9acTO06RD7eRGywA3nmmj80MAsehqhPxDu1SUBIf5+3OxF+EN0DP+eXGaPcOj1fj1QOlAHhSf/QmCepQ7+/uw3yLNLv4a2cenXWjsPh04udZAfQ//vcv23L21Y0c7P90v0byvm09qF+VQU8qpo5+RA2utNPYnM21KqMLFnUm33qPXpmUPe+Z2TKvFn/oce6dHBg8oBj8+norSKkkr/o8CD5EwirOKQ6p05FFZJyDvrVZ8eV/nAnkfrsZQcODigCgOTPpXzp7fvnfQpPs/8pFcdH4eueNrjVTtorSOd9i5o0JlZtR66ci2v2kLHWyjk0+OTXsBmPuNVpfHJGejx0jGJ1qK0Fp3xzKTTaY+Kg+m0oqLxybl0OqxyIS/Mw/szgJkuOT6p6pSEKigJoCOt4pmwyocUwMs7u6A7kPDSEYqxR8OAXlVuZuCgyjX6YDDpnffOwwILLTo/ELltcmbck9menlTSvrRXjU9MwpiHkpZbP6zqQqqYDD6KiMYpAZpKQgGOK4mMSg4cUvFBwELVNYZVMeSlqBqTB5/k0QEvnUGNz6QpyEw/Q1UfelQ0ouRAotFX4L0htFIWkjYLDgIKSaB7xjswr2SoXBi/kIfyVPV6AMk8liAdJdOvLWFc53G1Fp5CnmXSih+SQ4ygR40SB8L2KL50oy+smkILhAyos5n+sGoOAaDXq8rJYfo4VJREWjXR1nZomaAVVi0wjZWxxAscOAjrqubkjHd+xquagWlh1RpK7Zhc4Gf707WqaU65OazaQqltk6kJrdPjg34H67eHFpAluXNywWJJqjiTUC1BqrOgyYkFmV5McFGxGyTB+ccnFyjzgNrEPMiXLtvoU+CxfN2jjdNHwBRoTxoo2Qz4b4belaJaR4ALCDkU4FZSRb2PYoyZrBwhtIDIwI5J1aIkvAOqEZRPUkDhEt4ZWP5xmw0jM0ok5mcW7EJQvRT01ACbnECbIxhWXaEFTO9u4DO9l4QWOHovDS3w9F4WWtDRe3loQaB3T2hBpPeK0IKe3itDCwZ6bwgpeb6rwgxwWPE2qXiKGkhYbSwadBcG36YNBosGA4XBM9pgVQippuCboK8a6KsCvLxAH737gD56rwH66F0B+ui9Fuijdz/QR+8BoI/e64A+eq8H+ug9FPL2MDUNh2BZ24w3CbKdSTJRgumFqK42hdRwUA2DFTaDAWz2riNFJdOhUI94VQgPpb6lIFrsVpsbF3TYNTAJjowSuKGYM1cOt4a8EYZvG8DhgSsXAetcc3Haj9yfYdGkv1fpWGjFLkpcOzAAMF4bYbCKTEdYjYSaSnrCavT1QEGDDwJ4DGSC3H5vk3cztXzg5dD8/GZlM7iKSQgR4FnBHUQxdjmBpR3gotyqFcB48Jp+BqYaksG5+SbF6+2Zh/k6V4J4m7S5VB56ANKrzlCnEd82+Rjxcl7PYyTAlacT1JHqwScrDFoZBBNOrrbHGerMtLhBkjOzoH3JzCwMk2TGA/UZ6shWP5MBtMC9K4MgTAVWGAT64MZWgfnWWETRXCYPXgKEoAPN0l0xK8xIKfIzJOA6rrnK5bVA9l15PnihVxfI8UHpARZ1F4ZUPRsfVDbTRan0egrso8TkOIx2TDZ5eyDkUuxznV6KV14Egh9aQ8XRXRPeWmqdk5RCdXtjESbJvKhmaAqwmuS8eHvBUTRRLg6q1uTkuAdCprcn3bTQhJ1goJtWjG73jK8Yja/57NWe6AupHcGrLZgIqZ3BecCN6hcQtS4oCLRJbYInkoxkqpt5mVC1VMBYmsDOtFn7we9ACMkDXoMSb36r9JZSQV1UjwJeqEhDfOkcjgPgWzuCeT4MQqsz6FNynMhRUiB6MxDt0gwc0guwZUeT2g72vGWd/iGYDjsdagTqwyE1BrcU5dsAMNg7CLE0z6mREFVhNQXVraFHwVlBZRQqmFbGQo9i1jMOFdazjcIMQGU7haGVCQpDKzsoDK3sDD0GXq8Parughlltd+gxrPVNQk3rS1M4TGt7KByr7aVwrLaPwrHaFF0zCZX9dE1amaZr0soMXZNWMhRmECoHKAytHKQwtDJLYWhljuGVgNohhhetHWZ40doRhhetXcfworWjDC9aO8bworXjDC9aOwE87ioI8CRrqb1QPaVVN0H1NGU6a8Wh9TYIozmYM1qVwlzPYHAO5iw83F2Y9QbWYk/cqFXpEzdpVQp+M8yTAzinVSnAea1KAW4B2J7CfG9nLQb+Dq1KwS9oVQp+KzyZA7hNq1KAd2pVCnA7wG4szHeRtRj4HVqVgr9Lq1LwO+HJHMBdWpUC3K1VKcCl0GMGnuST1URQ1c+pXO34zfk4HAaZcagedmJe2I8ZkRv5kPREVYlVFhDXErS3+VpdNqfiq4nYokIJdkcjtnbFR6A7WocDgstWr+BHFSU7qrQTgh8gvC57oEyH7+UIyWYITy4ri/OKQm7U8WTxUxzmyS7d4m08Ibuhvvi3dG+5FTC4RPTIhBxxK+hDSQo6XGjE7yOiOxgVlJoArBlta3W7bJdsJpON/cEVP0fr2XaEl24hI0tfIw8gGQUWhNn+uAcmxmg33ZZOE6jhMajKyOjnRFdwQUD9JBCJ0DldLqegnHKXOOtdTjLisEt2hx/+KF5VREYfJl9E5agiXmankwxDL8FkFuaqAPyCNZxYErRHGWpOQRAFweV0t7XGaItiXVUZchktkktntsiS2STXusp95FBnrdEo6QVO9FiNZoNktnl8lcB+VLm0RI6SL6AymLwhHqjAPGeBRckw4mFdHh9CHOdMEcyY46yrcSg6sSxYq61VV+cT2T3SHsMUoRLs93HkqF2WLHwq+9Sw3mE2g2Hp9W7owGJ2FLvf4+VNVqPhiSecZpkTOHKn02hYfMf38S7EdGI/ILUPdMKJKlEAReKtTsAIeMAhXsfxcwjEPQVcdqYErNOhKU1oVVVVgSp/nQ/wEAE7xFjhy0nQx/gkRgOK4mqLRiMkGmmHuq2NWEfO7cn+OxUnNuyYbm+p7ev64Q+jA80TO5OvvIrn9mw5kLGZyG0m277xyA7H1zb9Hvdvyrb09w8msr+gsmpZ+jU5Tr6MGlBLHDQacxhxFxBHMEfeDjjqppFOV5EClPlpxPOV/EigriagAC7lQeRyUs7VBZQaJj8qQGBgiZv2U5YGQFEYR8lx0WDW68ent11MjVwcnx7TG8wG0Vx3Jjr94PT+BzIdx4LkVqvBaNRFRi7tTl9KtetkvdGqL1f2PnLd3F9PeUHMIGfK1/uBr1bQrFC8gfGRx5SROsxxeUbabAjZym1lpW4ANEcF0FvkZmq2zE475R9jIP7exb6+izNLmLIQLZ28sfXYthdeIJen7585eN+UxrrFWx+8fdvFscXPAb8oDgbAwYua46GrS5Sd6VTX+mo1idauIVHF58pXbD78W2qUH2CyPMUM9FHsY/cf4tFuu2yyauiAFVv/QC9UgiiHkwA4eaj2U0vjMJmDEX5Kh3nemQL1d3EUHQ8qUwAfQSzN69fy8s6Cu/DhX9FFH8Netvg/20xmitJxctlmkm1/sNKVv0mHKDJ5HbqFPItaUG+8uw7zOtB1Qu1CuCBiAel4QTcHOOBpYBHoEs+jaUCmknGoBTUpAVCVOj3VKLfrCt3RXEKxkkVjEYoqYNpGjtos4ZOdhx7Zv/+RQ5GDdWYbOIjUjp13jYzctTO4u+Y+k91u+gIGE/ilTaquASAALS81WE12XcPopZ07L42Wup6lbjHPxzPAx2rUFA/KHAF08y5kTtCRIicCiFejKodfcfhzxmoTNP758pWc3/XRCsnYsN1ksmePws1ss5tNdvxhhwkYal68Hdom3Jh90WS3mckF2sq+gstN9oJs0b2AkwmVxd0mzFCiira+p78nv4S9MOHi7fm58BLMZUfV8Qo2CygKKVJXO7L523mYcaWuMjrw/6XK8HGThn1/t9WUVwGbafHegh5+n3weKZR/XpvEYer1MIfAqVyAMLaSgQpSXP6AP6eMef3jhDqQNlekjtQj42gJeQ4IMdt/JpmILP2Mqr/NJFp5LGDwFFQ1FxkqJJC9x4RlfGjxJQ0/2S4K2ZvwJQsp4HgeeFCBauO+UolAWBrmIeQSZwoXUKtAHn+dSwcxqoBZHS5GqQQzsR6z2E2iic9O2Iyy1SZb9fjvrTK5bJUXb7PYBJ4kFp83Wq1GctFsNS4+RdplK/Nj1F6+BvZiASWikgDvkTMN8GI50wgEAjU8sKZ2hTW4XU2kyBAgEHxt10cymY/s0q7xgVvGxm4Z0K6/eWRq6pHDRx7Zt++RI7svjYBj1a6o4EsbcjEKPL+AeeAOj6idEnAblB80bccjLhdwpdJV4SkDWLsSEEE98v5UKeJJmz0fk/ADkxs2TMae1zKO17q2bOl6/nlyuW1vZ+f+aPbXebXJ/s2OTb2j2R8t4wMeBvKpVhSNt9VA6MEshoNHBbHp8Bz4DW6qOJI3NDS0NrRuaI4oAbDCUhrQme+oo+wKrEDO18owFt3gT9wlXC/RAMhxnjfrJbGiZjT6A6vJ7AQ3Z+7c05aMhjowtti+rvTUbu19NWTR6UU9b90yNtipxVqK/4Zd0XjGbtvW1dsq4RBX3x/qTFFqMKoF+RKQb4RSgjge8Ry6wNiL3w5UkGmQeEWKRVcaLyp1VOciqF0JhGsC1J+4A3XMv0EsBSnTUFXXRFY7ROoRQQ9KqgiTxf8+1S47ZFkavWHLdPNId3x3tPNwcuMxr8UpS6Jnz4ahfZPbN+/p7L4uKbW0SWbZKe3qjwU7ax2Opq3dke3NDQGbbHSI3vq+jq7ecldoW6JtokXzQTUgmy6QDWS48SrKfA7CLhWEpiEA40ZORanNGYyzSDFyjtpHGoBrz1PP9DyLby+DlZhMlsWPM27OWU3MNKh9Lv2GHGM+GNYCw2S+DpzUcsQAxwvGsWycmn3k/VTeMJh97rEN3rxl6OZBm0W2R6eisamYlTpdU/bA0PnBwfND+D4W4Q507I/F9nfQFsNBAXpvIv+ASlFNvNpJWBwAF7HsduFaikrq6nhmC6B2WNB8RE5qDgeIiszZueyveKvBYOGzv+bsRpfhl6/pLHryDzajqF+83WCUDOQdgmSyuhefJgmDka1dBdz9JPjQWtQab6ZZmK9cAgcKuSzEI8IxP7rSWdWCH62rDeT8qMgxE+A4hhCnIeSmGJVE2a2N+7CdfJ+zGErEv/s7g8tggYZLlqzclz5pcECG+4ln9G7yeasZ/KlBcuBPZ3c6AM/bBMFskwyLX8IPOzE2GrJTpIfl+jVLfyQ9kHsrVF6Kt9ym11GXyuEiJGsba2upL/PnVFdDDvJtB7fMMLYVEDkSER2yxfDStw0W2SL+6P/QlvTtF42QeYg/Ckt6MyiPP/syICNJuBW36iXZLme/h2tNFqPemP0n6kvCYH8yMYIbD6EjnwUnr+PxcEotHZ+MVwqguCWpvBVWp0SasE3nEPXEfavHqcAZEHPRlXgkHXdWQjpaGaoM+hUaKQJ+v744UkQiKxMYSiGJagln3nXjP7C9WNlsd/LYxt5jfT2zZTbTPRPNzRPt7RPNTRMRvARpQC/VzmS4d/D8yMi5/q7mXsggmmOZnq6ZWHS6pycTA1rHgNYw+ZccrWV5WmsorUCAm5LCTVOqimmtZLSuHqfmnAPSrO0KWv3+gEar5v9Bw1zOFckHkGxfTesdxzduPJbozFTlt6CeA13NjNbIjqbmiQgx9p8bSd0y2NmcoOka+RQzyu9s6MkqHZnunuloZIYRy+wDZIt/ALINM9+6xn6FetTq4g0LPBZGIT/4jFyulttk1gXqAiuySij5DWlBfnjvtg0Wo2TSm2TLhorY3vbWdGdt0CXa9LIom1t2tA2d2RQ/myJGV63LaNfrTYJo6Jjp6pmJyUbeLIoW2VZXMXB+ZOjcFi3Oabr543V10/06uul+S3XTdhXdPNiTONYLutk9W16km3AlP4Zka5IKabApDrSlzg90N2M/7JOGo5me7plYbKYbGFCgF3JOI+yEGlBHPAI99CTgAnuHrkNz1HMyQTHt46YhvldyIz6fr8FX76Y7NB/bF0AumheS5idWZkUlsKXxRSA1ArORs3du2NvbMlJilCSr5M1Et96Y6Du+see6BM7+4KAZ79S1puqxzdYzHauvNlglo1TXmrhpdPstfR3Hhz8zntKHkwrgCGzEO8g/A9aHUmoVSMePBBGJArqgx6LItsVuSJ9BOBALESqhGuciICUlDwfdMA70zhU9oUGl4zTaNaD6WqUW4qZiED1Bu+Byadp3RfRs05x4fiP0I+W00WYznqZSGpKtVnloaGNFi1UymNwm8ulG/2GrLFuzGRZn77cZTZbDmwZsDtmqE5g8OkglyCOEetBQfLC+nAg6G6BJhkXYKwIZOh2TQnVKD6JhilZJRcNcQhkaCYfBnHrC3ZE2mCIY8IcDhkICz2RCMxd2DKDlLm/AGRLZ1ve2IWVrjBcNvCDYXL3R9FzZ8e6BU/H4qf5N14FrfGj3hg27Y1F6jeIlmzk7Nnqqy15hEQ2SwImG0rldvdGNmipuCsWpm4xkNm6cieQ1EaMxuPwU7E5B4XijV9tHMWvCmJ/WMdKLtyY1sDNZvTVp11C2XeHx8AcnqSx6E42ppoKPm2kl3NvS2X9lYvD0batP1mkN8knm374XjKGlJdQHy/0FuR9yLFgdiyChZ6HXsIDxk0tLaluQ4r4TLq8B7j66Z/GW6EUe0Y0V8940WuU8BDhnhdfyYKoodeIq3+zP2Y5Ygl9zGUyG76fyyGKfQTbajV/7ThAaxp/G/6oIz47fSQ6jbPz7VzX/C7igDwAu+TNH91V2oh8oPnPUpluc1GTBJSCX6UDnPhtpZumVFrHc1KB003pR4HS6khRkOprrS6kbYLQc0U4KIgAIEYQiiHj5in5EHWd+MK2ZWweKAYeoXKm5XUWua4nZpakvTete20lJ2pQXdk+8YShckPq+tq4ddtfpTsKd2puTfWlion6gPvvqFYqAn6bXroZoRzSUyOvof4BtKmj8cU1FNcJLmJQLmlqd11QPjCx3ss1jbiQdN12bGlP68L277bLJ1tcf3NpSIGgOwvOJPdnvMoQVDfvvL2MPO4jluFYHuK/a01a/mT1tXeLs5s1nE9q1pzUdjU62tU1Go+nWx88PDJxPpWjynuqhgYaGm+hMj4bDGPi2MOgVja3d8Y5cMsTipUC3+CVFyQ1lZxkeeb305kourZPedGUq8zwrP9BdSG+adkQIl7xpOHVTf6wp+1tmV++hWU5/czTbFNnf3TUVaZ/q7t4fyfnm9fLWZSqqi0J+SnPKa+StV8C8fm5ge+N56/q5AbabFs8y/TAvJwd94JHDq3MDTd/PAL1V6MLjHhopc8SWFLxaQbe14KqZA2yRMOg5ubDaLPIheBlghXUwztDoq1lHFar0B2qcy4ehNRqdrtUij+HtXqtRV2nyDzXnZVwytYkYrVbYhnTuafrNsj1MdqYwo60R8p5PAW1t7Fx97TOA6lT+hL1SNxJU6oI1tfRcPZoLoLm9f92Ks1Bxee/vzu39oaPRJEiy1H2gZXOie2J/01hrcHe1QRKNkr40EWhOkoFke3/wyNbzW/YbTKIgjYaDjY0WV7Kvoa/WVyuaZIOg91SEQvWNNpO3q6Vv615GAz0UbSPzkKhkUmqYcV7H6y6Cj+U4fkpgQZNKKc9YDyRJFCB/5LcCEC3DFdIfyH1qa2sc1B87bPQFUCHNCVyZ/eSzo8cqSgS7zmDyuj2NdUOyzSYPUYnMGm1WGX85uxDw6CyS2SG1gtxoJsSO0k/ZjbKF6dzS7/DP8B+RB/Vq2mRnhwwlxYcMHq2T4ItFnem4zE7Qy/1+v26l3RSOHqjAaAt/13YyM3OCojUyMLgVlOOPEElfOXDddQdwOYuqr2xJpbbQunZetATxXULldA/txoXjhurl44ZyVF6/fNxA9/gC7O7bi7b30RL8PTv/Jd6il6z8lzmrxWDh//bTvEUiBrPRoM+2640YtszPET0v22ADfwz/pcGo6SqsT56D9QP5MwelUr7yzKG66MwhgPz+ukBp3nYoQnX0uCGPWBFeud09ecrGfUxnNRjM/MUbKJI27j7ObjJYuHfdBImK/h0XBTeRrGYsZ9sBL8mA27PPAcpGA35OEE0U47fhoMOR/TZ+r1M7d8DPEB5inDdeWVNmhZwod+xQUnTssDIfyp06xPKHayWx5YzoGbtsNn70owaL0S4+8gmBnkHc82HJYrKIDz3il2SH+dn/JVtko/6b36YnDqavftVkMRr13/qWplMdkFvqUSuKxzeWYR0vg+4QevJN38RcEAVSnFlXFlStjPGyFW0AlaqpD+TegOQSaS2PLviBiHClruWU7Tu23pMDjUOlLsKZ9YIQ75rIlO2P7d7D0pRkQwqyE6IHnds8drrLbjFZiV6SOOXIHqWx7UgatzF9fHHLcEMygBtNNsg+IUxwu2DvU4OjNIvAUZxh2QQmz2g5Knc3y1G5fI6qPYN/tfwM6HBGgyV1DJYU8lmCYpArVLDzb0/uPR5jRwV7jYen6Ss92MxawUlYPdZytxMAzQH6Hs9dlDRQLrHopB2Dtn33eCx6YmzsRCx2YmzX1NSunVNTO6X9Dx8+8tD+qYePHH54f++Dl+YffHD+0oNM5+mH2r8gn0duVBp3WSWCt0AnGHwuk6bJrH3ZwnOqE43FoiU/sjjMJvs7RNEEjutTkhk0W869exga5p2yaOYPCYSuMQrESkBnPWqPbygHnaBJO+Yx4S/kN7uUZp4vegVTj+rqlMZ2alnLL2FAZ/OkFjDJn1WIog//Dpxg9pLZrv9JR3T70IatDqPF6NQL5Ud65870DDyJ27pssgmilVFa6plu6h9tbrFbJcGqj/acTMeuH3k+d67yTXIZ4tUZLRevy6sv7F55zGGROwwaLEwhQXCudJZhiG2Y42FTj+kDb4cHIOCtB685/zbU2u730Rd/WjJeSLiKzr3zqUfOan25o2TNYttwNNPdd7o/OF5htsuyqXG4ZXvLhrGQHNDJFukL2Z/SwIDHrRbpCQE/1T7b33+0u6JCMssuYzg03hobVkSwD+kFevJMj82fA72k59yEvRtibwCr2Vt7HVgvJBMQuA+j4jPvqkqWREEIEwsZhJLLHSKa0LBmq22+Nhv+JaCTtNNXp9+V7SJOgEHaktn/9v+wlcaoz1H1+Rzgocd/LYM5nsFxkElsKYt/CPhE0XB8cxvmxFrAiH7VsA67BUE3BTxfZremUlEUqY0pfqXuCl7nmZ3n9rJ+xegJdv7dsEg3BxsPd/edHW6cqBZEm2w0lm+s7kxvOLC9OuIrFS0OHCTA7jBlevbVmvLNfvyNzsPxwVO9FeW8RZQcBqcbUuGRKbtFdph0HLZKFvoy+XmTXfMH+LfkG8DPINr3eBlju5ZwlOsgLeR4AsTR92M0k1jWu3Ka5V0sQBQPpuMOluwGKxtra6ic6le8t8plucuHSSJL7FemurPTkc7Z3tSRti3z03qdyV46/t7yqp0bOvb4B1vaRxvrR9rwU/Gj3d2HewfPJHZ+8eFaYrW49L5P7FcasjdMDYVHW5rHWkLDYS3X7VlaxK+wdygN8QB4AmLUvlCB2pR2WF6Qlxs5/atfLVBtyhsA/raFy77GWw2yAxQh+wWm6afpa0edYfFWg9EqQ+K1l71SAd7ChHdADKf7MvC11LcyJrGEh5umHtfFab622lpZ6gJAU4T6Wrv2nQ/LvKhqk1XtIbvdJtpWXvCDTrvL7oL/7M7stNPutjvZheUYl9A9qA8Sme7H7bm9rQQStrHvjU7l94tgWh7qIDC6o6gr/XjukyF3jhlUdprCirlUw3VP8SdDViP7ZKis07/yiyE7+2KITt8O13eiA0BuWdyd/9op9zaLsoB+7tS6iuTBAqGMQkYrnUu/dAH/nquGfLkyXk60752g+yKd8SzMZ0PWOo6FL+YUclpHBVtq5fFjosUIKVt2q2iWbreB7Lgpk9EiGwx/fEiWGK5dSzMks/SXyLTiGy16EoOn2HL0QzATMrbnv9FyL3tKMN9hq8WE/40eFGZtD1hkGRhkZLlwZCmO90JML2NnOTQAa5viqnoa/njNPywbCX3ZyGbEXfrzF991ThQBzSM3nj0qm+Wn+d5fvm/+Z1t4m2Q29Hz33C0vdwpWY+6dXvlSH+4jX4R1NF5XpChnyhivy1BpVYE3UW2/k/dKNLoJSoPFdOTGG66D9Ewvnr/jzptF/RdWLsJv+sX75n++mdd4hX6Ct+IaYEfV1fkUDeRlS0U7bLWa2AcDL/2Eflpg195HQubiIRLsgf4nZLzcYpZ6WnTvUhbZFxDkM1nIZ9hBHa2ArfmIiDshpyhHETT42bCdLKu5k8NMz6n9kWn2fp1quoN2oztW9KbjBn/QDwpP94L29RX+Krbw0TU+n3tgrU/qZtf6pK5ive/s6pf2c/dCPjMGHuTftVNxqxdLxO8xcbyUwILIDXtYF1fcldZAW5CIBCQKF4yQAmEECfsRaOsF/UGIWYZpGRsMoICSRKZZFi/R7b4Xnmt/Q8+xowD6MNKejcdg8yIRTrrwhpfVnkynqY7u27NzAugcrasNBOprQSdNYmVR+KD5yMrTEmombCPkchbnLoVTrbW+jLNH2vMwDIT89/u29Z7oC0YwVzMXbUwG+k4mWgfNEu/x4GbssTdtaxm+a8+lH9w68IGTbVsjIUGQBWLfdGj4tk+Ovu8/PhyMt0UnmmINTft6MXl2x/smt98/2xQw6Mq646FUU/zuPdFw3FMm8tkXdIaysl2XNo+eS558/t07PrjH4nZzZoEzG6p9Rz6R+ci/3pK9w9y+KXWqLdobn2vP/TvG3L9OnLb0/Aq4zY6D//GpD72f3l/YfOlL2buW6nV+/gQ06Sm29qPfCrB/76ibgPGv6/zL/yJS+5ExsgVy3hfpt6xLt6BnUBW5C1WiP+GPvBvtJ+9FLeuOP8++wbr6HB2vD/Om8YsCfk9cBb+vr7H27996fIjzjc3JdWtw5KVrw4Fk16fxz/EjO5bxJ/ddnRbSimqvef59dL+xzthX//P0ic3/UaRwz9JvTVb1718fpzc07x4U/pPKaA8ag61O+M3gQ0L/ubjiDKokx6+yfgc9/171e5G9D3xreVTCMiDt90pRfT37fb+GF0msgd/V1pn408r+jehGXgfwO69OC/4Warwm2U7Qs/GrrN15bby7ZtpsqJb84kqfg3+MatbUq2v4cR/R4i+JXRmHQcYxSKJ1MDZK9CgMNlRD/ChGyuBPQD3ov+rvKdhHP7OGj3+c7SOvlI+E9OTjsBe5mg7diCLwV35F/52v89wU8sCfj3vuz8aNevjrRTNoHj2DpTdZZvBnV5Tfri4kcU3ldvJKceFaCmXXGy53rlFe4l7iy9cp+96i8ggtOmlVObNu+eSK8tNrK0K9cFuh/OPVixh/k+VJfemK8v4V5efXVgyThheKi+QtlNY3XG5m5WOrizEA5Y51yrNvTZEDUO4zyavKyXXKSyuLueYaywHz5XyxEMvR1yl3QPlYobxsNVtnra/YmmwP2Z328T9p+Qv7y/niIEWl1bF/Vfmg4yuF8ouVxSk4b/xzFddZuruF/eRR2AF/ENGv7RpRN3o3eMsPmtzQpntfPToEO2nMG8CT29mumtYxskNLqxNkxrW5Ooc6cGuuzqMafDRX16Fy/J5cXYD+v8nVzagdfwUl0Sl0Gp1DZ9B16DA6gs4iL2qF3dUGKF60A3rm4L4N3QDjB9ExdD3KoJNoFvrG4ZlTgP8c9NOn+gDmLMCfgv7roV3PZjsLs18PUaoZymGYg0LcgA6gJnjqFDoBvdp8Z2CemyArPA3tw+g4QJ6E2k1stHmN9QfhfgL6jgPuDSgE692Um92LtsNc18PfGXQjXCmug7DWSYblKHsOaPJWXDmrtxLwunItOt9h6D0O7TOoDWBaWOkGHhxCAwDRvcZT4VXPrcXDlRC7GM7XAxTF1lu00uvPnue1xunrAZZK9DT0XQ+zXM841cRkcxjGx4Aj9EQ19ST6yvbJBYzfl1ax9j9tOL2AxMRnNrdVc6iRVp/o0gf0dj2n11r9QotQIbCWlLhsftrwNP80KJQB2qbEZRRnhbU51L9Qi+/eNqnG755c4Gb7FwK09Tn9baB+8bsP7pikIGn4PdGjr9c79Zzc+CReepfKv3eBoP7HdLMC6u///0Tm4fYKZW5kc3RyZWFtCmVuZG9iagoxMCAwIG9iago8PC9UeXBlL09ialN0bS9OIDEwMC9GaXJzdCA3OTgvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAzMDc0Pj4Kc3RyZWFtCnjazVppc9tGEv2eX4FvEZMSMPfhcrFWtqJEWSf2+lg7QfiBIiEJG4pQkVDW/vf7egYgwDNSllW7LtGDubpfv+npOQCfsITLxOmE408iYxKh8OgTaVgiWKIcTwRPDEMiEoufQHsl0SzxBgkaM6cSYRLOvU+EhRx0Fz7hSrFECoiGCkkqrEmkgw7DE8UTbiFDKaTeJgr9HFRqtPdSJhoiGYRoDfVGJNpCv/OJQbk0hASqOU8cUBp0di4RjkwBcsYVmSSZlolVSB0ZkEjO0J8jlSqBCMk15DukwG/RXjCXGEqh3wCqQGNjkZJetJPcJgbyJRiykCct5EOeAjlkmgJei/YKYC3aK4CwaE/2A4LUMNpBr4YQS5TAbofUgERAkAZ4HeQYNHaQY4EXEKEGetHOArSHXov/POQ44PXA65lOPKhklBpQCyFEKYhIvAPFIA1Do7QH6UxgTDF+HJWaRo4zsA5OEg/WNQf/TCWaMHDI09ZRCaocoHoiElrBD6MRQ5ZI5QwAuSWhYEpIdAXD4BvcI6UxQQ+lqQFRDB6lQUrGowONnxKgGvI4OhmL0QDHxoEwhQ5kIAcy48EcpBhPHovWlhkywGAYoIm8gvwYg0nuB1+2htDDjR2jMQPL8AOONs7AwQy8BX05WGTkt3BbLwQ5JOiENc+fZ59eX/2rmNR4urwDTZgub4fD7KKaU9EFzG9K3iyqybuizrM35xfZ++Jzjfbjm+JlTF7E5HI0HH6Ffk9q/P7LfZGdzedVnb17uKop96qc/569qBbTYpEzAGCj7IfsMnuZ85g5Q7d32ffV+yo7P5ncju/rYpHyAWC+hS05po6WLuVEjZSpcjTLWGqkPrJKsaaSm1TQaGmRWjCshaP0SCqX0FJW81T07HQm9QgvmqlUwi8FZynzEQhm0tEVi03FyosUc57iXkoRDTgcO77BckuvY6nEvEc4S6XyAYfTxzdYbSk2LlUUWoxPKUYSEOePb7HeUqwN3BhhSegUyxPh8IofXa/Z0qtUqjG0CBqpQ+QnHN6ZI08j2Z9GSgAHBTmuU60pyOuUGXdkW+X2NFKYPlgUuQK3nHCgDZdH17s1i+DJqaX4r2xKq4fiPOW6NXgjEmcXkqL3X4jJ/2VI3+6+e+X4H2L6f+HmaDjWBPXppo3NX5H/FC/GNiLhrRd/eHtJv5O7cTmrq2e3xWxW/a2qq6sqLauVQ2PrlRrsZzWTKW1huWWYSlh8MZUdN8cCcVvX98tnWbalHxNJM9pQeUQQFdQ72k8BFjP22IP1qrwr62V+cl5NTt/V40U9OLkubx4WRVijR9nP47tirRo7cahpo943aIS9b68EBYatFYiB4WsFcgBaqaCnCRtnlGyAugdQ1MXUdmiachOma8xBiely0GC7nBoY1+X0wPguZwaWdTk7sHwfjnKwtqiugykHVnZiSmRVyDY9vgE+q/slwWhrNorQym4UyYF1G0VqYP0OlP2V92T5cEV/rXrZ4e03c3xDtBk4sVZES4yTG0Vi4BrzVirIHmqqt8sNlZtV+RoqZ3uG/L2cLnMTJNPBkRLHYuLaZrkKGrJPv/yahB2yTHG2mj/MZqOvcsm6OjpeWMycVZ3v97M4bDQV6wJ7FVruqdhb/piKLVzmcZg365Q4UKcP1Ln9dVo+Tiad83Ei4bvrlKWd+5465lMcbXfWSQUPsrtwQh8ze+uUQmD2bR1Xj7Nv04b1OmXhz26PPmzYxZ46HPZTePAOLOs+59YrNPajTR3mwXmxrJd0RRLieVhtynpWPL8urq8Z05Ixqxkz0+bHkRf4+eGBI+Wb8aKY13QzQIp/xqpAFwk7FeDwHQSS4KAAyqxFet2UX20o2ooCPX3qgBEeP0pV1EG6ID7qIJ28MdR3ZS0eU8R+Vg4PnjAvysWyptsXsvrVuHt+WT0A3ilfAZU9Yswe0KwhRRIJzbNtwO4HIvp8RDVvFsUfDTeNSrtHJXHjehwgL8CBZb2BV5HLwJ2M42RMU267dkYPDx5Od0E0PYhuj7s0rhJU+8gOQdG6KVuxNDx4RN2l3vbU75kOqpkOK0+67jxJtWwUkZEAzzbtW9iqKW/aiXaQi4ZtksPjszW9Otl4YtvGNPlG5krHYefQ+0x3nel09bfbdtWjnrxENHbwzlva4Vk5re7ZJrsf/phEO6njM3mZVt2Qtn3JNi17toqm3jXtm1kaPHTS41jviBpre4GOCLr0PByarrsQ0DdIjuNP9WZm266t060jNGFt1edPyTwU9kw/3tDt7SrgtJnNiLN/VP+i1+o2RjaeuIqZK28dHrwyabHzPnZ+KFpGT/XHMmN44H6yCeSqj431sZmNJS5iE/1ZJP8cqFXdbLFqePDaZTWOsq9E7wnkvUFZRcpdVm/csWwoCVbRzf9uS3jntoFmNTxwV9WO9xqna6uj2Mlpj8ZmVNa8XfYkyNjsbbGsHhaTYpnEDW04PL/BSakzzza95jXyy9z1jgVdby4f2Z2LXv9V82WDSnT94voWDh5BNr0raU8aXMcSE5MAnd61hYTHJJ5SROwr4tFFxH4i9hPxhLNuiNjLg1s3REQi4k3DMry4WZHfiZPikeIk38mr1I/trw7xKnfyGjfBSTybJVLuRuD2IOBsA4Hd2V/xR/ZXbHd/9dj+8ukMxCNeEk9ziRK7Edh9CPgGArOzvxaP7K87D9dxaLTe4aL6sXi0WXfROPeeRFA8BybxVJTogxRz3rhVnPOtj7Yj1eIbZT8V03L8ovoc7uIMUFnfvlx5uSjGdbU4eTV+X3xK/l3Wt8kt9CwWxfXgyRss2iipadyCP3nDxHr7mXaNnDRL9UN9Wy3a5aON6u15oFlKws6zOU/pZuOtbHNOQka5cB84fZgUi5PP0z/K++n13efktxPBhKAT1m+DQaQDa875uC5Ozp+hyoTDl1do9C2TXzP29SAy9/q+mJ+FBaq5Bbko61EYn5+qaZF9WBavH+pZOcdwUeGr8VUxW6Lfzw93y5yFpeh8OBThYTEcqrYEAxPvp+jNOcltxayWHnKBldcEr3g5rsez6iZcCuVG+pEUOV3cGmFHiuWW65HyubZiZAW8NLyXHjmq8COnc2H1CHuzXGsx4tzkDsWcu9xKlEs008gbkxsmkfrcODvi1ubaI/UsN8IgtblleiQEz4112J9IPDu0MSNBWoFBOJNrx0bYXOeKPk2QEs9o4wwQy1xIpEoBISxQFrjQVpvcC4E0ypIW+riCWR4RCCm3uXJipATyzI+UBC7gU4YHS61xeHaxDPqNluCCk4xEGoUpZhAw0A6TR1ufaEw90q818FiZEDcauo2nL0hQDtokcIwC1cpGqnkS5EZGiWpoDVQbUK0D1YIFqjUD1aBBNlRjhALVwkWqjQlUk6mBalAQqDYiUs1UpJrLSLWhLyhAsbCoa6lWkWptAtWSPkAQLFINYIFqtAlUY4gD1bKhmjdUWxeo1kBPVEunI9WghqiWsqGa8kQ1fUkC91GGhiN8jgG6FYaOBdq1sYF2TZ9/0LtlQy/UGQIu6Ff0jQTy3AXaubPYYyg8ezzzkTY6pyEykKGtwsKHobOqGQqG1OX02hi/EaJB7uHno1XEpPcDqxcTLy/PKU8VInsxXhah9tOPv5z/+PHbfzyUk9+X4/n09EU1m4aO58VysijvESHDRxgh2l+ev/uyrIu7y/l1FdaJm3JZL76cnE2rq2KQvaa3HuX85uRyiuhe1l8G0H5/PyvuKNgzzO7zj/TJSfYxfPDRiHxffX95/tP4Pmt79WL+OpDsbDlpDk2M7sdC5hR+lb0DqH9ik6YRD+5/KMqb26bV2R83H8spQjtYD9Je0GJwqjBNTyV2qVxicwUvlKPsEoGknJzNb2ZFwrKL2fgGWzQjeBD/BavBc8SfebUsnrP2n2Nr/4bN5yYUw/YwSxQWtH7FhZVaX5SzQhCGjRVzbfSohP3ZsH03n1RT8L9i8vSHhqbpGHoqWqjjzil7X32Yl2hdQLE8pHi327z+9bvvz9709MMVHmbjxbbn+CN6DhPkOYId33Oc3e84SvUcR1qLfnBeTh+Ygbs9jmP2+ow+4DN7aW3dJp44+m4jxBPcZq/8x3gOd9uu0x5B/wNi4rwLCmVuZHN0cmVhbQplbmRvYmoKMTIzIDAgb2JqCjw8L1R5cGUvWFJlZi9JRFs8YzhmNzI1MjQ5N2JiYWYxYjJlYjBlNjFlZmI4ODQxNjY+PGM4ZjcyNTI0OTdiYmFmMWIyZWIwZTYxZWZiODg0MTY2Pl0vUm9vdAoxIDAgUi9JbmZvIDIgMCBSL1NpemUgMTI0L1dbMSAzIDJdL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMzA1Pj4Kc3RyZWFtCnjaLdLHTkJREIDhGcB2FVFERZoNFHuv2AtYsFfs5Qncu3PtQ2h8BhOfwJiYGMOTuMHEDXL/nM2Xk3+SWUyOiEg+7xCx5BRPcEVFPCIq1r0I5QovVLzPpohq6NG8V1V8CfNWTKMDnXiL1+jCIizGEizFMrSwHCsK+5/MfjduqPidplTiZqG8muLBbZVAzJQq3FEJ3plSjbsq4YwpXtxXibyZUoMHKtGUfY34h+27y0x9eIS1WKfy+WCm9diCo9iITdiMY+jHKMawDdsxjh3YiQ04gBFsxS7sxh7sxQD2YT8O4hCGcRhHMIghHMcUTuAiJnASp3AaZ3AWF3Ae5zCJS7iMGVzDLVzHPTzGQ5Uvt33576S57SWeqWRf7J7NmX6D5yq5P7v/pu1fGv8R+QdRgi0KCmVuZHN0cmVhbQplbmRvYmoKc3RhcnR4cmVmCjc2MDE3CiUlRU9GCg==</File>
    </Filelist>
</otrs_package>