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PGRpdj5gYCB0YWcuIFRoZSBgYDxkaXY+YGAncyBDU1MgY2xhc3MgY2FuIGJlIHNldCBieSB0aGUgYGNzc2NsYXNzYAogICAgb3B0aW9uLgoKICAgIElmIHRoZSBgbGluZW5vc2Agb3B0aW9uIGlzIHNldCB0byBgYCJ0YWJsZSJgYCwgdGhlIGBgPHByZT5gYCBpcwogICAgYWRkaXRpb25hbGx5IHdyYXBwZWQgaW5zaWRlIGEgYGA8dGFibGU+YGAgd2hpY2ggaGFzIG9uZSByb3cgYW5kIHR3bwogICAgY2VsbHM6IG9uZSBjb250YWluaW5nIHRoZSBsaW5lIG51bWJlcnMgYW5kIG9uZSBjb250YWluaW5nIHRoZSBjb2RlLgogICAgRXhhbXBsZToKCiAgICAuLiBzb3VyY2Vjb2RlOjogaHRtbAoKICAgICAgICA8ZGl2IGNsYXNzPSJoaWdobGlnaHQiID4KICAgICAgICA8dGFibGU+PHRyPgogICAgICAgICAgPHRkIGNsYXNzPSJsaW5lbm9zIiB0aXRsZT0iY2xpY2sgdG8gdG9nZ2xlIgogICAgICAgICAgICBvbmNsaWNrPSJ3aXRoICh0aGlzLmZpcnN0Q2hpbGQuc3R5bGUpCiAgICAgICAgICAgICAgICAgICAgIHsgZGlzcGxheSA9IChkaXNwbGF5ID09ICcnKSA/ICdub25lJyA6ICcnIH0iPgogICAgICAgICAgICA8cHJlPjEKICAgICAgICAgICAgMjwvcHJlPgogICAgICAgICAgPC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0iY29kZSI+CiAgICAgICAgICAgIDxwcmU+PHNwYW4gY2xhc3M9IktlIj5kZWYgPC9zcGFuPjxzcGFuIGNsYXNzPSJOYUZ1Ij5mb288L3NwYW4+KGJhcik6CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IktlIj5wYXNzPC9zcGFuPgogICAgICAgICAgICA8L3ByZT4KICAgICAgICAgIDwvdGQ+CiAgICAgICAgPC90cj48L3RhYmxlPjwvZGl2PgoKICAgICh3aGl0ZXNwYWNlIGFkZGVkIHRvIGltcHJvdmUgY2xhcml0eSkuCgogICAgV3JhcHBpbmcgY2FuIGJlIGRpc2FibGVkIHVzaW5nIHRoZSBgbm93cmFwYCBvcHRpb24uCgogICAgQSBsaXN0IG9mIGxpbmVzIGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgdGhlIGBobF9saW5lc2Agb3B0aW9uIHRvIG1ha2UgdGhlc2UKICAgIGxpbmVzIGhpZ2hsaWdodGVkIChhcyBvZiBQeWdtZW50cyAwLjExKS4KCiAgICBXaXRoIHRoZSBgZnVsbGAgb3B0aW9uLCBhIGNvbXBsZXRlIEhUTUwgNCBkb2N1bWVudCBpcyBvdXRwdXQsIGluY2x1ZGluZwogICAgdGhlIHN0eWxlIGRlZmluaXRpb25zIGluc2lkZSBhIGBgPHN0eWxlPmBgIHRhZywgb3IgaW4gYSBzZXBhcmF0ZSBmaWxlIGlmCiAgICB0aGUgYGNzc2ZpbGVgIG9wdGlvbiBpcyBnaXZlbi4KCiAgICBXaGVuIGB0YWdzZmlsZWAgaXMgc2V0IHRvIHRoZSBwYXRoIG9mIGEgY3RhZ3MgaW5kZXggZmlsZSwgaXQgaXMgdXNlZCB0bwogICAgZ2VuZXJhdGUgaHlwZXJsaW5rcyBmcm9tIG5hbWVzIHRvIHRoZWlyIGRlZmluaXRpb24uICBZb3UgbXVzdCBlbmFibGUKICAgIGBsaW5lYW5jaG9yc2AgYW5kIHJ1biBjdGFncyB3aXRoIHRoZSBgLW5gIG9wdGlvbiBmb3IgdGhpcyB0byB3b3JrLiAgVGhlCiAgICBgcHl0aG9uLWN0YWdzYCBtb2R1bGUgZnJvbSBQeVBJIG11c3QgYmUgaW5zdGFsbGVkIHRvIHVzZSB0aGlzIGZlYXR1cmU7CiAgICBvdGhlcndpc2UgYSBgUnVudGltZUVycm9yYCB3aWxsIGJlIHJhaXNlZC4KCiAgICBUaGUgYGdldF9zdHlsZV9kZWZzKGFyZz0nJylgIG1ldGhvZCBvZiBhIGBIdG1sRm9ybWF0dGVyYCByZXR1cm5zIGEgc3RyaW5nCiAgICBjb250YWluaW5nIENTUyBydWxlcyBmb3IgdGhlIENTUyBjbGFzc2VzIHVzZWQgYnkgdGhlIGZvcm1hdHRlci4gVGhlCiAgICBhcmd1bWVudCBgYXJnYCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgQ1NTIHNlbGVjdG9ycyB0aGF0CiAgICBhcmUgcHJlcGVuZGVkIHRvIHRoZSBjbGFzc2VzLiBBIGNhbGwgYGZtdGVyLmdldF9zdHlsZV9kZWZzKCd0ZCAuY29kZScpYAogICAgd291bGQgcmVzdWx0IGluIHRoZSBmb2xsb3dpbmcgQ1NTIGNsYXNzZXM6CgogICAgLi4gc291cmNlY29kZTo6IGNzcwoKICAgICAgICB0ZCAuY29kZSAua3cgeyBmb250LXdlaWdodDogYm9sZDsgY29sb3I6ICMwMEZGMDAgfQogICAgICAgIHRkIC5jb2RlIC5jbSB7IGNvbG9yOiAjOTk5OTk5IH0KICAgICAgICAuLi4KCiAgICBJZiB5b3UgaGF2ZSBQeWdtZW50cyAwLjYgb3IgaGlnaGVyLCB5b3UgY2FuIGFsc28gcGFzcyBhIGxpc3Qgb3IgdHVwbGUgdG8gdGhlCiAgICBgZ2V0X3N0eWxlX2RlZnMoKWAgbWV0aG9kIHRvIHJlcXVlc3QgbXVsdGlwbGUgcHJlZml4ZXMgZm9yIHRoZSB0b2tlbnM6CgogICAgLi4gc291cmNlY29kZTo6IHB5dGhvbgoKICAgICAgICBmb3JtYXR0ZXIuZ2V0X3N0eWxlX2RlZnMoWydkaXYuc3ludGF4IHByZScsICdwcmUuc3ludGF4J10pCgogICAgVGhlIG91dHB1dCB3b3VsZCB0aGVuIGxvb2sgbGlrZSB0aGlzOgoKICAgIC4uIHNvdXJjZWNvZGU6OiBjc3MKCiAgICAgICAgZGl2LnN5bnRheCBwcmUgLmt3LAogICAgICAgIHByZS5zeW50YXggLmt3IHsgZm9udC13ZWlnaHQ6IGJvbGQ7IGNvbG9yOiAjMDBGRjAwIH0KICAgICAgICBkaXYuc3ludGF4IHByZSAuY20sCiAgICAgICAgcHJlLnN5bnRheCAuY20geyBjb2xvcjogIzk5OTk5OSB9CiAgICAgICAgLi4uCgogICAgQWRkaXRpb25hbCBvcHRpb25zIGFjY2VwdGVkOgoKICAgIGBub3dyYXBgCiAgICAgICAgSWYgc2V0IHRvIGBgVHJ1ZWBgLCBkb24ndCB3cmFwIHRoZSB0b2tlbnMgYXQgYWxsLCBub3QgZXZlbiBpbnNpZGUgYSBgYDxwcmU+YGAKICAgICAgICB0YWcuIFRoaXMgZGlzYWJsZXMgbW9zdCBvdGhlciBvcHRpb25zIChkZWZhdWx0OiBgYEZhbHNlYGApLgoKICAgIGBmdWxsYAogICAgICAgIFRlbGxzIHRoZSBmb3JtYXR0ZXIgdG8gb3V0cHV0IGEgImZ1bGwiIGRvY3VtZW50LCBpLmUuIGEgY29tcGxldGUKICAgICAgICBzZWxmLWNvbnRhaW5lZCBkb2N1bWVudCAoZGVmYXVsdDogYGBGYWxzZWBgKS4KCiAgICBgdGl0bGVgCiAgICAgICAgSWYgYGZ1bGxgIGlzIHRydWUsIHRoZSB0aXRsZSB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGNhcHRpb24gdGhlCiAgICAgICAgZG9jdW1lbnQgKGRlZmF1bHQ6IGBgJydgYCkuCgogICAgYHN0eWxlYAogICAgICAgIFRoZSBzdHlsZSB0byB1c2UsIGNhbiBiZSBhIHN0cmluZyBvciBhIFN0eWxlIHN1YmNsYXNzIChkZWZhdWx0OgogICAgICAgIGBgJ2RlZmF1bHQnYGApLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IGlmIHRoZSBgY3NzZmlsZWAKICAgICAgICBhbmQgYG5vY2xvYmJlcl9jc3NmaWxlYCBvcHRpb24gYXJlIGdpdmVuIGFuZCB0aGUgZmlsZSBzcGVjaWZpZWQgaW4KICAgICAgICBgY3NzZmlsZWAgZXhpc3RzLgoKICAgIGBub2NsYXNzZXNgCiAgICAgICAgSWYgc2V0IHRvIHRydWUsIHRva2VuIGBgPHNwYW4+YGAgdGFncyAoYXMgd2VsbCBhcyBsaW5lIG51bWJlciBlbGVtZW50cykKICAgICAgICB3aWxsIG5vdCB1c2UgQ1NTIGNsYXNzZXMsIGJ1dCBpbmxpbmUgc3R5bGVzLiBUaGlzIGlzIG5vdCByZWNvbW1lbmRlZAogICAgICAgIGZvciBsYXJnZXIgcGllY2VzIG9mIGNvZGUgc2luY2UgaXQgaW5jcmVhc2VzIG91dHB1dCBzaXplIGJ5IHF1aXRlIGEgYml0CiAgICAgICAgKGRlZmF1bHQ6IGBgRmFsc2VgYCkuCgogICAgYGNsYXNzcHJlZml4YAogICAgICAgIFNpbmNlIHRoZSB0b2tlbiB0eXBlcyB1c2UgcmVsYXRpdmVseSBzaG9ydCBjbGFzcyBuYW1lcywgdGhleSBtYXkgY2xhc2gKICAgICAgICB3aXRoIHNvbWUgb2YgeW91ciBvd24gY2xhc3MgbmFtZXMuIEluIHRoaXMgY2FzZSB5b3UgY2FuIHVzZSB0aGUKICAgICAgICBgY2xhc3NwcmVmaXhgIG9wdGlvbiB0byBnaXZlIGEgc3RyaW5nIHRvIHByZXBlbmQgdG8gYWxsIFB5Z21lbnRzLWdlbmVyYXRlZAogICAgICAgIENTUyBjbGFzcyBuYW1lcyBmb3IgdG9rZW4gdHlwZXMuCiAgICAgICAgTm90ZSB0aGF0IHRoaXMgb3B0aW9uIGFsc28gYWZmZWN0cyB0aGUgb3V0cHV0IG9mIGBnZXRfc3R5bGVfZGVmcygpYC4KCiAgICBgY3NzY2xhc3NgCiAgICAgICAgQ1NTIGNsYXNzIGZvciB0aGUgd3JhcHBpbmcgYGA8ZGl2PmBgIHRhZyAoZGVmYXVsdDogYGAnaGlnaGxpZ2h0J2BgKS4KICAgICAgICBJZiB5b3Ugc2V0IHRoaXMgb3B0aW9uLCB0aGUgZGVmYXVsdCBzZWxlY3RvciBmb3IgYGdldF9zdHlsZV9kZWZzKClgCiAgICAgICAgd2lsbCBiZSB0aGlzIGNsYXNzLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAwLjkKICAgICAgICAgICBJZiB5b3Ugc2VsZWN0IHRoZSBgYCd0YWJsZSdgYCBsaW5lIG51bWJlcnMsIHRoZSB3cmFwcGluZyB0YWJsZSB3aWxsCiAgICAgICAgICAgaGF2ZSBhIENTUyBjbGFzcyBvZiB0aGlzIHN0cmluZyBwbHVzIGBgJ3RhYmxlJ2BgLCB0aGUgZGVmYXVsdCBpcwogICAgICAgICAgIGFjY29yZGluZ2x5IGBgJ2hpZ2hsaWdodHRhYmxlJ2BgLgoKICAgIGBjc3NzdHlsZXNgCiAgICAgICAgSW5saW5lIENTUyBzdHlsZXMgZm9yIHRoZSB3cmFwcGluZyBgYDxkaXY+YGAgdGFnIChkZWZhdWx0OiBgYCcnYGApLgoKICAgIGBwcmVzdHlsZXNgCiAgICAgICAgSW5saW5lIENTUyBzdHlsZXMgZm9yIHRoZSBgYDxwcmU+YGAgdGFnIChkZWZhdWx0OiBgYCcnYGApLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAwLjExCgogICAgYGNzc2ZpbGVgCiAgICAgICAgSWYgdGhlIGBmdWxsYCBvcHRpb24gaXMgdHJ1ZSBhbmQgdGhpcyBvcHRpb24gaXMgZ2l2ZW4sIGl0IG11c3QgYmUgdGhlCiAgICAgICAgbmFtZSBvZiBhbiBleHRlcm5hbCBmaWxlLiBJZiB0aGUgZmlsZW5hbWUgZG9lcyBub3QgaW5jbHVkZSBhbiBhYnNvbHV0ZQogICAgICAgIHBhdGgsIHRoZSBmaWxlJ3MgcGF0aCB3aWxsIGJlIGFzc3VtZWQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIG1haW4gb3V0cHV0CiAgICAgICAgZmlsZSdzIHBhdGgsIGlmIHRoZSBsYXR0ZXIgY2FuIGJlIGZvdW5kLiBUaGUgc3R5bGVzaGVldCBpcyB0aGVuIHdyaXR0ZW4KICAgICAgICB0byB0aGlzIGZpbGUgaW5zdGVhZCBvZiB0aGUgSFRNTCBmaWxlLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAwLjYKCiAgICBgbm9jbG9iYmVyX2Nzc2ZpbGVgCiAgICAgICAgSWYgYGNzc2ZpbGVgIGlzIGdpdmVuIGFuZCB0aGUgc3BlY2lmaWVkIGZpbGUgZXhpc3RzLCB0aGUgY3NzIGZpbGUgd2lsbAogICAgICAgIG5vdCBiZSBvdmVyd3JpdHRlbi4gVGhpcyBhbGxvd3MgdGhlIHVzZSBvZiB0aGUgYGZ1bGxgIG9wdGlvbiBpbgogICAgICAgIGNvbWJpbmF0aW9uIHdpdGggYSB1c2VyIHNwZWNpZmllZCBjc3MgZmlsZS4gRGVmYXVsdCBpcyBgYEZhbHNlYGAuCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDEuMQoKICAgIGBsaW5lbm9zYAogICAgICAgIElmIHNldCB0byBgYCd0YWJsZSdgYCwgb3V0cHV0IGxpbmUgbnVtYmVycyBhcyBhIHRhYmxlIHdpdGggdHdvIGNlbGxzLAogICAgICAgIG9uZSBjb250YWluaW5nIHRoZSBsaW5lIG51bWJlcnMsIHRoZSBvdGhlciB0aGUgd2hvbGUgY29kZS4gIFRoaXMgaXMKICAgICAgICBjb3B5LWFuZC1wYXN0ZS1mcmllbmRseSwgYnV0IG1heSBjYXVzZSBhbGlnbm1lbnQgcHJvYmxlbXMgd2l0aCBzb21lCiAgICAgICAgYnJvd3NlcnMgb3IgZm9udHMuICBJZiBzZXQgdG8gYGAnaW5saW5lJ2BgLCB0aGUgbGluZSBudW1iZXJzIHdpbGwgYmUKICAgICAgICBpbnRlZ3JhdGVkIGluIHRoZSBgYDxwcmU+YGAgdGFnIHRoYXQgY29udGFpbnMgdGhlIGNvZGUgKHRoYXQgc2V0dGluZwogICAgICAgIGlzICpuZXcgaW4gUHlnbWVudHMgMC44KikuCgogICAgICAgIEZvciBjb21wYXRpYmlsaXR5IHdpdGggUHlnbWVudHMgMC43IGFuZCBlYXJsaWVyLCBldmVyeSB0cnVlIHZhbHVlCiAgICAgICAgZXhjZXB0IGBgJ2lubGluZSdgYCBtZWFucyB0aGUgc2FtZSBhcyBgYCd0YWJsZSdgYCAoaW4gcGFydGljdWxhciwgdGhhdAogICAgICAgIG1lYW5zIGFsc28gYGBUcnVlYGApLgoKICAgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgYEZhbHNlYGAsIHdoaWNoIG1lYW5zIG5vIGxpbmUgbnVtYmVycyBhdCBhbGwuCgogICAgICAgICoqTm90ZToqKiB3aXRoIHRoZSBkZWZhdWx0ICgidGFibGUiKSBsaW5lIG51bWJlciBtZWNoYW5pc20sIHRoZSBsaW5lCiAgICAgICAgbnVtYmVycyBhbmQgY29kZSBjYW4gaGF2ZSBkaWZmZXJlbnQgbGluZSBoZWlnaHRzIGluIEludGVybmV0IEV4cGxvcmVyCiAgICAgICAgdW5sZXNzIHlvdSBnaXZlIHRoZSBlbmNsb3NpbmcgYGA8cHJlPmBgIHRhZ3MgYW4gZXhwbGljaXQgYGBsaW5lLWhlaWdodGBgCiAgICAgICAgQ1NTIHByb3BlcnR5ICh5b3UgZ2V0IHRoZSBkZWZhdWx0IGxpbmUgc3BhY2luZyB3aXRoIGBgbGluZS1oZWlnaHQ6CiAgICAgICAgMTI1JWBgKS4KCiAgICBgaGxfbGluZXNgCiAgICAgICAgU3BlY2lmeSBhIGxpc3Qgb2YgbGluZXMgdG8gYmUgaGlnaGxpZ2h0ZWQuIFRoZSBsaW5lIG51bWJlcnMgYXJlIGFsd2F5cwogICAgICAgIHJlbGF0aXZlIHRvIHRoZSBpbnB1dCAoaS5lLiB0aGUgZmlyc3QgbGluZSBpcyBsaW5lIDEpIGFuZCBhcmUKICAgICAgICBpbmRlcGVuZGVudCBvZiBgbGluZW5vc3RhcnRgLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAwLjExCgogICAgYGxpbmVub3N0YXJ0YAogICAgICAgIFRoZSBsaW5lIG51bWJlciBmb3IgdGhlIGZpcnN0IGxpbmUgKGRlZmF1bHQ6IGBgMWBgKS4KCiAgICBgbGluZW5vc3RlcGAKICAgICAgICBJZiBzZXQgdG8gYSBudW1iZXIgbiA+IDEsIG9ubHkgZXZlcnkgbnRoIGxpbmUgbnVtYmVyIGlzIHByaW50ZWQuCgogICAgYGxpbmVub3NwZWNpYWxgCiAgICAgICAgSWYgc2V0IHRvIGEgbnVtYmVyIG4gPiAwLCBldmVyeSBudGggbGluZSBudW1iZXIgaXMgZ2l2ZW4gdGhlIENTUwogICAgICAgIGNsYXNzIGBgInNwZWNpYWwiYGAgKGRlZmF1bHQ6IGBgMGBgKS4KCiAgICBgbm9iYWNrZ3JvdW5kYAogICAgICAgIElmIHNldCB0byBgYFRydWVgYCwgdGhlIGZvcm1hdHRlciB3b24ndCBvdXRwdXQgdGhlIGJhY2tncm91bmQgY29sb3IKICAgICAgICBmb3IgdGhlIHdyYXBwaW5nIGVsZW1lbnQgKHRoaXMgYXV0b21hdGljYWxseSBkZWZhdWx0cyB0byBgYEZhbHNlYGAKICAgICAgICB3aGVuIHRoZXJlIGlzIG5vIHdyYXBwaW5nIGVsZW1lbnQgW2VnOiBubyBhcmd1bWVudCBmb3IgdGhlCiAgICAgICAgYGdldF9zeW50YXhfZGVmc2AgbWV0aG9kIGdpdmVuXSkgKGRlZmF1bHQ6IGBgRmFsc2VgYCkuCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDAuNgoKICAgIGBsaW5lc2VwYXJhdG9yYAogICAgICAgIFRoaXMgc3RyaW5nIGlzIG91dHB1dCBiZXR3ZWVuIGxpbmVzIG9mIGNvZGUuIEl0IGRlZmF1bHRzIHRvIGBgIlxuImBgLAogICAgICAgIHdoaWNoIGlzIGVub3VnaCB0byBicmVhayBhIGxpbmUgaW5zaWRlIGBgPHByZT5gYCB0YWdzLCBidXQgeW91IGNhbgogICAgICAgIGUuZy4gc2V0IGl0IHRvIGBgIjxicj4iYGAgdG8gZ2V0IEhUTUwgbGluZSBicmVha3MuCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDAuNwoKICAgIGBsaW5lYW5jaG9yc2AKICAgICAgICBJZiBzZXQgdG8gYSBub25lbXB0eSBzdHJpbmcsIGUuZy4gYGBmb29gYCwgdGhlIGZvcm1hdHRlciB3aWxsIHdyYXAgZWFjaAogICAgICAgIG91dHB1dCBsaW5lIGluIGFuIGFuY2hvciB0YWcgd2l0aCBhbiBgYGlkYGAgKGFuZCBgbmFtZWApIG9mIGBgZm9vLWxpbmVudW1iZXJgYC4KICAgICAgICBUaGlzIGFsbG93cyBlYXN5IGxpbmtpbmcgdG8gY2VydGFpbiBsaW5lcy4KCiAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMC45CgogICAgYGxpbmVzcGFuc2AKICAgICAgICBJZiBzZXQgdG8gYSBub25lbXB0eSBzdHJpbmcsIGUuZy4gYGBmb29gYCwgdGhlIGZvcm1hdHRlciB3aWxsIHdyYXAgZWFjaAogICAgICAgIG91dHB1dCBsaW5lIGluIGEgc3BhbiB0YWcgd2l0aCBhbiBgYGlkYGAgb2YgYGBmb28tbGluZW51bWJlcmBgLgogICAgICAgIFRoaXMgYWxsb3dzIGVhc3kgYWNjZXNzIHRvIGxpbmVzIHZpYSBqYXZhc2NyaXB0LgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxLjYKCiAgICBgYW5jaG9ybGluZW5vc2AKICAgICAgICBJZiBzZXQgdG8gYFRydWVgLCB3aWxsIHdyYXAgbGluZSBudW1iZXJzIGluIDxhPiB0YWdzLiBVc2VkIGluCiAgICAgICAgY29tYmluYXRpb24gd2l0aCBgbGluZW5vc2AgYW5kIGBsaW5lYW5jaG9yc2AuCgogICAgYHRhZ3NmaWxlYAogICAgICAgIElmIHNldCB0byB0aGUgcGF0aCBvZiBhIGN0YWdzIGZpbGUsIHdyYXAgbmFtZXMgaW4gYW5jaG9yIHRhZ3MgdGhhdAogICAgICAgIGxpbmsgdG8gdGhlaXIgZGVmaW5pdGlvbnMuIGBsaW5lYW5jaG9yc2Agc2hvdWxkIGJlIHVzZWQsIGFuZCB0aGUKICAgICAgICB0YWdzIGZpbGUgc2hvdWxkIHNwZWNpZnkgbGluZSBudW1iZXJzIChzZWUgdGhlIGAtbmAgb3B0aW9uIHRvIGN0YWdzKS4KCiAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMS42CgogICAgYHRhZ3VybGZvcm1hdGAKICAgICAgICBBIHN0cmluZyBmb3JtYXR0aW5nIHBhdHRlcm4gdXNlZCB0byBnZW5lcmF0ZSBsaW5rcyB0byBjdGFncyBkZWZpbml0aW9ucy4KICAgICAgICBBdmFpbGFibGUgdmFyaWFibGVzIGFyZSBgJShwYXRoKXNgLCBgJShmbmFtZSlzYCBhbmQgYCUoZmV4dClzYC4KICAgICAgICBEZWZhdWx0cyB0byBhbiBlbXB0eSBzdHJpbmcsIHJlc3VsdGluZyBpbiBqdXN0IGAjcHJlZml4LW51bWJlcmAgbGlua3MuCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDEuNgoKICAgIGBmaWxlbmFtZWAKICAgICAgICBBIHN0cmluZyB1c2VkIHRvIGdlbmVyYXRlIGEgZmlsZW5hbWUgd2hlbiByZW5kZXJpbmcgYGA8cHJlPmBgIGJsb2NrcywKICAgICAgICBmb3IgZXhhbXBsZSBpZiBkaXNwbGF5aW5nIHNvdXJjZSBjb2RlLiBJZiBgbGluZW5vc2AgaXMgc2V0IHRvCiAgICAgICAgYGAndGFibGUnYGAgdGhlbiB0aGUgZmlsZW5hbWUgd2lsbCBiZSByZW5kZXJlZCBpbiBhbiBpbml0aWFsIHJvdwogICAgICAgIGNvbnRhaW5pbmcgYSBzaW5nbGUgYDx0aD5gIHdoaWNoIHNwYW5zIGJvdGggY29sdW1ucy4KCiAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMi4xCgogICAgYHdyYXBjb2RlYAogICAgICAgIFdyYXAgdGhlIGNvZGUgaW5zaWRlIGBgPHByZT5gYCBibG9ja3MgdXNpbmcgYGA8Y29kZT5gYCwgYXMgcmVjb21tZW5kZWQKICAgICAgICBieSB0aGUgSFRNTDUgc3BlY2lmaWNhdGlvbi4KCiAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMi40CgogICAgYGRlYnVnX3Rva2VuX3R5cGVzYAogICAgICAgIEFkZCBgYHRpdGxlYGAgYXR0cmlidXRlcyB0byBhbGwgdG9rZW4gYGA8c3Bhbj5gYCB0YWdzIHRoYXQgc2hvdyB0aGUKICAgICAgICBuYW1lIG9mIHRoZSB0b2tlbi4KCiAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMi4xMAoKCiAgICAqKlN1YmNsYXNzaW5nIHRoZSBIVE1MIGZvcm1hdHRlcioqCgogICAgLi4gdmVyc2lvbmFkZGVkOjogMC43CgogICAgVGhlIEhUTUwgZm9ybWF0dGVyIGlzIG5vdyBidWlsdCBpbiBhIHdheSB0aGF0IGFsbG93cyBlYXN5IHN1YmNsYXNzaW5nLCB0aHVzCiAgICBjdXN0b21pemluZyB0aGUgb3V0cHV0IEhUTUwgY29kZS4gVGhlIGBmb3JtYXQoKWAgbWV0aG9kIGNhbGxzCiAgICBgc2VsZi5fZm9ybWF0X2xpbmVzKClgIHdoaWNoIHJldHVybnMgYSBnZW5lcmF0b3IgdGhhdCB5aWVsZHMgdHVwbGVzIG9mIGBgKDEsCiAgICBsaW5lKWBgLCB3aGVyZSB0aGUgYGAxYGAgaW5kaWNhdGVzIHRoYXQgdGhlIGBgbGluZWBgIGlzIGEgbGluZSBvZiB0aGUKICAgIGZvcm1hdHRlZCBzb3VyY2UgY29kZS4KCiAgICBJZiB0aGUgYG5vd3JhcGAgb3B0aW9uIGlzIHNldCwgdGhlIGdlbmVyYXRvciBpcyB0aGUgaXRlcmF0ZWQgb3ZlciBhbmQgdGhlCiAgICByZXN1bHRpbmcgSFRNTCBpcyBvdXRwdXQuCgogICAgT3RoZXJ3aXNlLCBgZm9ybWF0KClgIGNhbGxzIGBzZWxmLndyYXAoKWAsIHdoaWNoIHdyYXBzIHRoZSBnZW5lcmF0b3Igd2l0aAogICAgb3RoZXIgZ2VuZXJhdG9ycy4gVGhlc2UgbWF5IGFkZCBzb21lIEhUTUwgY29kZSB0byB0aGUgb25lIGdlbmVyYXRlZCBieQogICAgYF9mb3JtYXRfbGluZXMoKWAsIGVpdGhlciBieSBtb2RpZnlpbmcgdGhlIGxpbmVzIGdlbmVyYXRlZCBieSB0aGUgbGF0dGVyLAogICAgdGhlbiB5aWVsZGluZyB0aGVtIGFnYWluIHdpdGggYGAoMSwgbGluZSlgYCwgYW5kL29yIGJ5IHlpZWxkaW5nIG90aGVyIEhUTUwKICAgIGNvZGUgYmVmb3JlIG9yIGFmdGVyIHRoZSBsaW5lcywgd2l0aCBgYCgwLCBodG1sKWBgLiBUaGUgZGlzdGluY3Rpb24gYmV0d2VlbgogICAgc291cmNlIGxpbmVzIGFuZCBvdGhlciBjb2RlIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHdyYXAgdGhlIGdlbmVyYXRvciBtdWx0aXBsZQogICAgdGltZXMuCgogICAgVGhlIGRlZmF1bHQgYHdyYXAoKWAgaW1wbGVtZW50YXRpb24gYWRkcyBhIGBgPGRpdj5gYCBhbmQgYSBgYDxwcmU+YGAgdGFnLgoKICAgIEEgY3VzdG9tIGBIdG1sRm9ybWF0dGVyYCBzdWJjbGFzcyBjb3VsZCBsb29rIGxpa2UgdGhpczoKCiAgICAuLiBzb3VyY2Vjb2RlOjogcHl0aG9uCgogICAgICAgIGNsYXNzIENvZGVIdG1sRm9ybWF0dGVyKEh0bWxGb3JtYXR0ZXIpOgoKICAgICAgICAgICAgZGVmIHdyYXAoc2VsZiwgc291cmNlLCAqLCBpbmNsdWRlX2Rpdik6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fd3JhcF9jb2RlKHNvdXJjZSkKCiAgICAgICAgICAgIGRlZiBfd3JhcF9jb2RlKHNlbGYsIHNvdXJjZSk6CiAgICAgICAgICAgICAgICB5aWVsZCAwLCAnPGNvZGU+JwogICAgICAgICAgICAgICAgZm9yIGksIHQgaW4gc291cmNlOgogICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gMToKICAgICAgICAgICAgICAgICAgICAgICAgIyBpdCdzIGEgbGluZSBvZiBm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