<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>238562</bug_id>
          
          <creation_ts>2022-03-30 11:29:49 -0700</creation_ts>
          <short_desc>CSP: WASM fails to execute after window.open</short_desc>
          <delta_ts>2022-04-01 12:28:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mkwst</cc>
    
    <cc>pascoe</cc>
    
    <cc>pgriffis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1856495</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2022-03-30 11:29:49 -0700</bug_when>
    <thetext>CSP: WASM fails to execute after window.open</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856498</commentid>
    <comment_count>1</comment_count>
      <attachid>456158</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2022-03-30 11:37:08 -0700</bug_when>
    <thetext>Created attachment 456158
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856499</commentid>
    <comment_count>2</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2022-03-30 11:37:38 -0700</bug_when>
    <thetext>rdar://90778752</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856816</commentid>
    <comment_count>3</comment_count>
      <attachid>456240</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2022-03-31 08:44:56 -0700</bug_when>
    <thetext>Created attachment 456240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857298</commentid>
    <comment_count>4</comment_count>
      <attachid>456240</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-04-01 10:24:34 -0700</bug_when>
    <thetext>Comment on attachment 456240
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=456240&amp;action=review

r=me. It&apos;s a shame we don&apos;t have WPT that cover this, too.

&gt; Source/WebCore/bindings/js/ScriptController.cpp:414
&gt; +    jsWindowProxy-&gt;window()-&gt;setEvalEnabled(value, errorMessage);

Nit: Not relevant for your patch, but I wonder if saving the identical string in every AbstractDOMWindow is good, since there is only one string used for either case (rather than a bunch of unique strings tailored to the window.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857304</commentid>
    <comment_count>5</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2022-04-01 10:28:31 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #4)
&gt; Comment on attachment 456240 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=456240&amp;action=review
&gt; 
&gt; r=me. It&apos;s a shame we don&apos;t have WPT that cover this, too.
&gt; 

Thanks for the review!

&gt; &gt; Source/WebCore/bindings/js/ScriptController.cpp:414
&gt; &gt; +    jsWindowProxy-&gt;window()-&gt;setEvalEnabled(value, errorMessage);
&gt; 
&gt; Nit: Not relevant for your patch, but I wonder if saving the identical
&gt; string in every AbstractDOMWindow is good, since there is only one string
&gt; used for either case (rather than a bunch of unique strings tailored to the
&gt; window.

True, filed rdar://91169940.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857305</commentid>
    <comment_count>6</comment_count>
      <attachid>456371</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2022-04-01 10:31:46 -0700</bug_when>
    <thetext>Created attachment 456371
[fast-cq] Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857361</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-01 12:27:56 -0700</bug_when>
    <thetext>Committed r292229 (249131@main): &lt;https://commits.webkit.org/249131@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 456371.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456158</attachid>
            <date>2022-03-30 11:37:08 -0700</date>
            <delta_ts>2022-03-31 08:44:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238562-20220330143707.patch</filename>
            <type>text/plain</type>
            <size>122896</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxOTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjk3ZGIyZjUyZmE5YTZk
ZTEyMzlmNTljYjkyMTNmNTVhOWMyMTBmNS4uNjU2NzQ4ODU0MWY2MjI2NzJjOTgxNWIxYTRhYWI1
NDA1ZjllY2RmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIyLTAzLTMwICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENTUDogV0FT
TSBmYWlscyB0byBleGVjdXRlIGFmdGVyIHdpbmRvdy5vcGVuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg1NjIKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzkwNzc4NzUyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Fs
bG93LXdhc20tYWZ0ZXItd2luZG93LW9wZW4uaHRtbAorCisgICAgICAgIFJlc2V0IFdBU00gZW5h
YmxlZCB2YWx1ZSBhZnRlciBhIHdpbmRvdy5vcGVuKCkgY2FsbC4gVGhpcyBwYXRjaCBzaW1wbGlm
aWVzCisgICAgICAgIGV2YWwgYW5kIHdhc20gc2V0dGVycyBieSByZW1vdmluZyB0aGUgZGlzdGlu
Y3QgZW5hYmxlL2Rpc2FibGUgZnVuY3Rpb25zCisgICAgICAgIGFuZCB1c2luZyBvbmUgY29uc2lz
dGVudCBzZXR0ZXIuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OnNldEV2YWxFbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OnNldFdlYkFzc2VtYmx5RW5hYmxl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjplbmFibGVFdmFsKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmVuYWJsZVdlYkFzc2Vt
Ymx5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmRpc2Fi
bGVFdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmRp
c2FibGVXZWJBc3NlbWJseSk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6ZGlzYWJsZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmRpc2FibGVXZWJBc3NlbWJseSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjbGVhcik6CisgICAgICAgICogcGFnZS9j
c3AvQ29udGVudFNlY3VyaXR5UG9saWN5Lmg6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OndlYkFzc2VtYmx5RXJyb3JNZXNzYWdlIGNvbnN0KToKKwogMjAyMi0wMy0y
OCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRk
IGBXS1dlYlZpZXdgIEFQSSB0byBjb250cm9sIENTUyAic21hbGwgdmlld3BvcnQiIGBzdipgIGFu
ZCAibGFyZ2Ugdmlld3BvcnQiIGBsdipgIHVuaXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDQ4NGQ4YzJkZjM3YmVmN2QxN2RhNDFi
NzAzMjI5NGIxZDljZmZiMTQuLjYzNjk2NzAxZjQ0Mjk3MWQxYzAyNWY4NzgzZmRmODIzZjNiOThk
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
Y3BwCkBAIC00MDYsMzYgKzQwNiwyMCBAQCBUZXh0UG9zaXRpb24gU2NyaXB0Q29udHJvbGxlcjo6
ZXZlbnRIYW5kbGVyUG9zaXRpb24oKSBjb25zdAogICAgIHJldHVybiBUZXh0UG9zaXRpb24oKTsK
IH0KIAotdm9pZCBTY3JpcHRDb250cm9sbGVyOjplbmFibGVFdmFsKGJvb2wgZW5hYmxlLCBjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6c2V0RXZhbEVu
YWJsZWQoYm9vbCB2YWx1ZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7CiAgICAgYXV0
byoganNXaW5kb3dQcm94eSA9IHdpbmRvd1Byb3h5KCkuZXhpc3RpbmdKU1dpbmRvd1Byb3h5KG1h
aW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKICAgICBpZiAoIWpzV2luZG93UHJveHkpCiAgICAgICAg
IHJldHVybjsKLSAgICBqc1dpbmRvd1Byb3h5LT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQoZW5h
YmxlLCBlcnJvck1lc3NhZ2UpOworICAgIGpzV2luZG93UHJveHktPndpbmRvdygpLT5zZXRFdmFs
RW5hYmxlZCh2YWx1ZSwgZXJyb3JNZXNzYWdlKTsKIH0KIAotdm9pZCBTY3JpcHRDb250cm9sbGVy
OjplbmFibGVXZWJBc3NlbWJseSgpCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OnNldFdlYkFzc2Vt
Ymx5RW5hYmxlZChib29sIHZhbHVlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKICAg
ICBhdXRvKiBqc1dpbmRvd1Byb3h5ID0gd2luZG93UHJveHkoKS5leGlzdGluZ0pTV2luZG93UHJv
eHkobWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOwogICAgIGlmICghanNXaW5kb3dQcm94eSkKICAg
ICAgICAgcmV0dXJuOwotICAgIGpzV2luZG93UHJveHktPndpbmRvdygpLT5zZXRXZWJBc3NlbWJs
eUVuYWJsZWQodHJ1ZSk7Ci19Ci0KLXZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwo
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCi17Ci0gICAgYXV0byoganNXaW5kb3dQcm94eSA9
IHdpbmRvd1Byb3h5KCkuZXhpc3RpbmdKU1dpbmRvd1Byb3h5KG1haW5UaHJlYWROb3JtYWxXb3Js
ZCgpKTsKLSAgICBpZiAoIWpzV2luZG93UHJveHkpCi0gICAgICAgIHJldHVybjsKLSAgICBqc1dp
bmRvd1Byb3h5LT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQoZmFsc2UsIGVycm9yTWVzc2FnZSk7
Ci19Ci0KLXZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZVdlYkFzc2VtYmx5KGNvbnN0IFN0
cmluZyYgZXJyb3JNZXNzYWdlKQotewotICAgIGF1dG8qIGpzV2luZG93UHJveHkgPSB3aW5kb3dQ
cm94eSgpLmV4aXN0aW5nSlNXaW5kb3dQcm94eShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Ci0g
ICAgaWYgKCFqc1dpbmRvd1Byb3h5KQotICAgICAgICByZXR1cm47Ci0gICAganNXaW5kb3dQcm94
eS0+d2luZG93KCktPnNldFdlYkFzc2VtYmx5RW5hYmxlZChmYWxzZSwgZXJyb3JNZXNzYWdlKTsK
KyAgICBqc1dpbmRvd1Byb3h5LT53aW5kb3coKS0+c2V0V2ViQXNzZW1ibHlFbmFibGVkKHZhbHVl
LCBlcnJvck1lc3NhZ2UpOwogfQogCiBib29sIFNjcmlwdENvbnRyb2xsZXI6OmNhbkFjY2Vzc0Zy
b21DdXJyZW50T3JpZ2luKEZyYW1lKiBmcmFtZSwgRG9jdW1lbnQmIGFjY2Vzc2luZ0RvY3VtZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCmluZGV4
IDFkOWU0OTZhMjdmOTFjNDM5OTRkODliODgwMDhmNGM1MTQzOGUwOTguLmQ5ZmU5M2Y4YTA3MTEy
NTYxYTdiYjE4ZDU0MzFjNDI5ODIyZWQ4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmgKQEAgLTEyNCwxMCArMTI0LDggQEAgcHVibGljOgogCiAg
ICAgVGV4dFBvc2l0aW9uIGV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3Q7CiAKLSAgICB2b2lk
IGVuYWJsZUV2YWwoYm9vbCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoKSk7
Ci0gICAgdm9pZCBlbmFibGVXZWJBc3NlbWJseSgpOwotICAgIHZvaWQgZGlzYWJsZUV2YWwoY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwotICAgIHZvaWQgZGlzYWJsZVdlYkFzc2VtYmx5KGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKKyAgICB2b2lkIHNldEV2YWxFbmFibGVkKGJvb2ws
IGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCkpOworICAgIHZvaWQgc2V0V2Vi
QXNzZW1ibHlFbmFibGVkKGJvb2wsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCkpOwogCiAgICAgc3RhdGljIGJvb2wgY2FuQWNjZXNzRnJvbUN1cnJlbnRPcmlnaW4oRnJhbWUq
LCBEb2N1bWVudCYgYWNjZXNzaW5nRG9jdW1lbnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
Y2FuRXhlY3V0ZVNjcmlwdHMoUmVhc29uRm9yQ2FsbGluZ0NhbkV4ZWN1dGVTY3JpcHRzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGFkMGY2MTZlM2U2ZTBlMzhmODA3MjFjN2Q3ZTUzOGMx
YWFlYWMzMmUuLmM5MDE0NjFjNmQyNDg4NjdlZDkxYzFkY2Q4NDNhNjQ2NzllYTA4YWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzU2Nyw3ICszNTY3LDcgQEAgdm9pZCBEb2N1bWVudDo6
ZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiAgICAgaWYgKCFmcmFtZSgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBmcmFtZSgpLT5zY3JpcHQoKS5kaXNhYmxlRXZhbChl
cnJvck1lc3NhZ2UpOworICAgIGZyYW1lKCktPnNjcmlwdCgpLnNldEV2YWxFbmFibGVkKGZhbHNl
LCBlcnJvck1lc3NhZ2UpOwogfQogCiB2b2lkIERvY3VtZW50OjpkaXNhYmxlV2ViQXNzZW1ibHko
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCkBAIC0zNTc1LDcgKzM1NzUsNyBAQCB2b2lkIERv
Y3VtZW50OjpkaXNhYmxlV2ViQXNzZW1ibHkoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiAg
ICAgaWYgKCFmcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmcmFtZSgpLT5zY3JpcHQo
KS5kaXNhYmxlV2ViQXNzZW1ibHkoZXJyb3JNZXNzYWdlKTsKKyAgICBmcmFtZSgpLT5zY3JpcHQo
KS5zZXRXZWJBc3NlbWJseUVuYWJsZWQoZmFsc2UsIGVycm9yTWVzc2FnZSk7CiB9CiAKIElEQkNs
aWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBEb2N1bWVudDo6aWRiQ29ubmVjdGlvblByb3h5KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDk2ZTYyYmE1OTVkM2MxMzIw
NjNiNWE0YTliZTE2NmEwNDNkMWMxMTkuLjg1NGI3MjE0ZjAyMjI1MTA2MTdmZDdiNzIyNWIxODAz
YzZlNDljYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNjY3LDEw
ICs2NjcsMTIgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2xlYXIoUmVmUHRyPERvY3VtZW50PiYmIG5l
d0RvY3VtZW50LCBib29sIGNsZWFyV2luZG93UHJvcGVydGkKICAgICBpZiAoY2xlYXJTY3JpcHRP
YmplY3RzKQogICAgICAgICBtX2ZyYW1lLnNjcmlwdCgpLmNsZWFyU2NyaXB0T2JqZWN0cygpOwog
Ci0gICAgaWYgKG5ld0RvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKSAmJiAhbmV3RG9j
dW1lbnQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5ldmFsRXJyb3JNZXNzYWdlKCkuaXNOdWxs
KCkpCi0gICAgICAgIG1fZnJhbWUuc2NyaXB0KCkuZW5hYmxlRXZhbChmYWxzZSwgbmV3RG9jdW1l
bnQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5ldmFsRXJyb3JNZXNzYWdlKCkpOwotICAgIGVs
c2UKLSAgICAgICAgbV9mcmFtZS5zY3JpcHQoKS5lbmFibGVFdmFsKHRydWUpOworICAgIGlmIChu
ZXdEb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCkpIHsKKyAgICAgICAgYm9vbCBlbmFi
bGVFdmFsVmFsdWUgPSBuZXdEb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmV2YWxF
cnJvck1lc3NhZ2UoKS5pc051bGwoKTsKKyAgICAgICAgYm9vbCBlbmFibGVXQVNNVmFsdWUgPSBu
ZXdEb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPndlYkFzc2VtYmx5RXJyb3JNZXNz
YWdlKCkuaXNOdWxsKCk7CisgICAgICAgIG1fZnJhbWUuc2NyaXB0KCkuc2V0RXZhbEVuYWJsZWQo
ZW5hYmxlRXZhbFZhbHVlLCBuZXdEb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmV2
YWxFcnJvck1lc3NhZ2UoKSk7CisgICAgICAgIG1fZnJhbWUuc2NyaXB0KCkuc2V0V2ViQXNzZW1i
bHlFbmFibGVkKGVuYWJsZVdBU01WYWx1ZSwgbmV3RG9jdW1lbnQtPmNvbnRlbnRTZWN1cml0eVBv
bGljeSgpLT53ZWJBc3NlbWJseUVycm9yTWVzc2FnZSgpKTsKKyAgICB9CiAKICAgICBtX2ZyYW1l
Lm5hdmlnYXRpb25TY2hlZHVsZXIoKS5jbGVhcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCmluZGV4IGRiMDAxNmQ3MzI2Y2JkZjY1MGQ5
NzVlZTQ4MGRlZjA1N2FmMzg2YzEuLjYyMzdlNWVkYWQzZThlNTBjMjlhZGMyYzNmY2FiZDkzZDNk
NmQ5ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBv
bGljeS5oCkBAIC0xOTIsNiArMTkyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNIZWFkZXJEZWxp
dmVyZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSGVhZGVyRGVsaXZlcmVkOyB9CiAKICAgICBjb25z
dCBTdHJpbmcmIGV2YWxFcnJvck1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX2xhc3RQb2xpY3lF
dmFsRGlzYWJsZWRFcnJvck1lc3NhZ2U7IH0KKyAgICBjb25zdCBTdHJpbmcmIHdlYkFzc2VtYmx5
RXJyb3JNZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0UG9saWN5V2ViQXNzZW1ibHlEaXNh
YmxlZEVycm9yTWVzc2FnZTsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgbG9nVG9Db25zb2xlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMID0gU3RyaW5nKCks
IGNvbnN0IE9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lID0gT3JkaW5hbE51bWJlcjo6YmVmb3Jl
Rmlyc3QoKSwgY29uc3QgT3JkaW5hbE51bWJlciYgY29udGV4dENvbHVtbiA9IE9yZGluYWxOdW1i
ZXI6OmJlZm9yZUZpcnN0KCksIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0cikgY29uc3Q7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNTA0YjcyMTk0ZDNmNjIyNWYxYjQ5ZDVjZTQyNTBkMjVhYjQxZGI3Yy4uM2NhMGFi
MTdmOTU1YTU4ZDU0MjgxOGIxMGY1OWJlMmUwMWMwOTdjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBA
CisyMDIyLTAzLTMwICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgor
CisgICAgICAgIENTUDogV0FTTSBmYWlscyB0byBleGVjdXRlIGFmdGVyIHdpbmRvdy5vcGVuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg1NjIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwNzc4NzUyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIExheW91dCB0ZXN0IGNvdmVyYWdlLiBDb3B5IHNvbWUg
d2FzbSBoZWxwZXIgc2NyaXB0cyBpbnRvIHRoZSBodHRwIGRpcmVjdG9yeS4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2FsbG93LXdhc20tYWZ0
ZXItd2luZG93LW9wZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9hbGxvdy13YXNtLWFmdGVyLXdpbmRvdy1v
cGVuLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3Jlc291cmNlcy9sb2FkX3dhc20uanM6IEFkZGVkLgorICAgICAgICAoY3Jl
YXRlV2FzbU1vZHVsZSk6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvcmVzb3VyY2VzL3J1bi13ZWItYXNzZW1ibHkuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2Vz
L3dhc20tYnVpbGRlci5qczogQWRkZWQuCisgICAgICAgIChjb25zdC5fZmFpbCk6CisgICAgICAg
IChjb25zdC5pc05vdEEuYXNzZXJ0LmlzTm90QSk6CisgICAgICAgIChjb25zdCk6CisgICAgICAg
IChzd2l0Y2gudHlwZW9mKToKKyAgICAgICAgKEJ1aWxkZXIpOgorICAgICAgICAoQnVpbGRlci5w
cm90b3R5cGUuc2V0Q2hlY2tlZCk6CisgICAgICAgIChCdWlsZGVyLnByb3RvdHlwZS5zZXRQcmVh
bWJsZSk6CisgICAgICAgIChCdWlsZGVyLnByb3RvdHlwZS5fZnVuY3Rpb25JbmRleFNwYWNlS2V5
SGFzaCk6CisgICAgICAgIChCdWlsZGVyLnByb3RvdHlwZS5fcmVnaXN0ZXJGdW5jdGlvblRvSW5k
ZXhTcGFjZSk6CisgICAgICAgIChCdWlsZGVyLnByb3RvdHlwZS5fZ2V0RnVuY3Rpb25Gcm9tSW5k
ZXhTcGFjZSk6CisgICAgICAgIChCdWlsZGVyLnByb3RvdHlwZS5fcmVnaXN0ZXJTZWN0aW9uQnVp
bGRlcnMuY29uc3Quc2VjdGlvbi5pbi5XQVNNLmRlc2NyaXB0aW9uLnNlY3Rpb24uc3dpdGNoLnNl
Y3Rpb24uY2FzZS5zdHJpbmdfYXBwZWFyZWRfaGVyZS50aGlzLnNlY3Rpb24pOgorICAgICAgICAo
QnVpbGRlci5wcm90b3R5cGUuX3JlZ2lzdGVyU2VjdGlvbkJ1aWxkZXJzLmNvbnN0LnNlY3Rpb24u
aW4uV0FTTS5kZXNjcmlwdGlvbi5zZWN0aW9uLnN3aXRjaC5zZWN0aW9uLmNvbnN0LmNvZGVCdWls
ZGVyLkVuZC5zd2l0Y2guY2FzZS5zdHJpbmdfYXBwZWFyZWRfaGVyZS5lKToKKyAgICAgICAgKEJ1
aWxkZXIucHJvdG90eXBlLl9yZWdpc3RlclNlY3Rpb25CdWlsZGVycy50aGlzLlVua25vd24pOgor
CiAyMDIyLTAzLTI4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBTdXBwb3J0IFNlcnZpY2VXb3JrZXJDbGllbnRzLm9wZW5XaW5kb3cuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9hbGxv
dy13YXNtLWFmdGVyLXdpbmRvdy1vcGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2FsbG93LXdhc20tYWZ0ZXItd2lu
ZG93LW9wZW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjNWZiYzA0MGZkMDYxMDljYzk5Njhi
MGVlZDcyNzYwNzVhZDNhOWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9hbGxvdy13YXNtLWFmdGVyLXdpbmRv
dy1vcGVuLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK0FMRVJUOiBQQVNTOiB3YXNtIHJl
c3VsdCBpcyA3MDAyCitUZXN0IHdlIGFsbG93IHdlYiBhc3NlbWJseSB3aXRoIHVuc2FmZS1ldmFs
IGFmdGVyIGNhbGxpbmcgd2luZG93Lm9wZW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9hbGxvdy13YXNtLWFmdGVyLXdp
bmRvdy1vcGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9hbGxvdy13YXNtLWFmdGVyLXdpbmRvdy1vcGVuLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDk5MzgxNjI2NGY1OTFmMGYzYTY3YmMzM2JhMzUwMjYxNGNmZmY5MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L2FsbG93LXdhc20tYWZ0ZXItd2luZG93LW9wZW4uaHRtbApAQCAtMCwwICsxLDE3IEBACis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1TZWN1
cml0eS1Qb2xpY3kiIGNvbnRlbnQ9InNjcmlwdC1zcmMgJ25vbmNlLXRlc3QnOyI+CisgICAgPC9o
ZWFkPgorPGJvZHk+CisgICAgPHA+VGVzdCB3ZSBhbGxvdyB3ZWIgYXNzZW1ibHkgd2l0aCB1bnNh
ZmUtZXZhbCBhZnRlciBjYWxsaW5nIHdpbmRvdy5vcGVuLjwvcD4KKyAgICA8c2NyaXB0IG5vbmNl
PSJ0ZXN0Ij4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93Lm9wZW4oInJlc291cmNlcy9ydW4t
d2ViLWFzc2VtYmx5Lmh0bWwiKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvcmVzb3VyY2VzL2xvYWRfd2FzbS5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9sb2FkX3dhc20uanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjYyODZkZTM5ZGFkNjczNzY3OTQ3ZTYwNTY0MGJhZGU3YzcyYThmYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3Jlc291cmNlcy9sb2FkX3dhc20uanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rp
b24gY3JlYXRlV2FzbU1vZHVsZSgpIHsKKyAgICBsZXQgYnVpbGRlciA9IG5ldyBCdWlsZGVyKCk7
CisgICAgYnVpbGRlciA9IGJ1aWxkZXIuVHlwZSgpLkVuZCgpCisgICAgICAgIC5GdW5jdGlvbigp
LkVuZCgpCisgICAgICAgIC5FeHBvcnQoKS5GdW5jdGlvbigiY2FsYyIpLkVuZCgpCisgICAgICAg
IC5Db2RlKCkKKyAgICAgICAgICAgIC5GdW5jdGlvbigiY2FsYyIsIHsgcGFyYW1zOiBbImkzMiJd
LCByZXQ6ICJpMzIiIH0pCisgICAgICAgICAgICAgICAgLkdldExvY2FsKDApCisgICAgICAgICAg
ICAgICAgLkdldExvY2FsKDApCisgICAgICAgICAgICAgICAgLkkzMkFkZCgpOworCisgICAgY29u
c3QgY291bnQgPSA3MDAwOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewor
ICAgICAgICBidWlsZGVyID0gYnVpbGRlci5HZXRMb2NhbCgwKS5JMzJBZGQoKTsKKyAgICB9Cisg
ICAgYnVpbGRlciA9IGJ1aWxkZXIuUmV0dXJuKCkuRW5kKCkuRW5kKCk7CisKKyAgICByZXR1cm4g
bmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShidWlsZGVyLldlYkFzc2VtYmx5KCkuZ2V0KCkpOworfQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9ydW4td2ViLWFz
c2VtYmx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9yZXNvdXJjZXMvcnVuLXdlYi1hc3NlbWJseS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZm
ZmE5YWJiOWRhYTdmMWE5YTVhMTAyNTIwNzhkZjVlM2ZhYWJmNGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9y
ZXNvdXJjZXMvcnVuLXdlYi1hc3NlbWJseS5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2VjdXJp
dHktUG9saWN5IiBjb250ZW50PSJzY3JpcHQtc3JjICdzZWxmJyAnbm9uY2UtdGVzdCcgJ3Vuc2Fm
ZS1ldmFsJzsiPgorICAgIDxzY3JpcHQgc3JjPSJ3YXNtLWJ1aWxkZXIuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJsb2FkX3dhc20uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
CisgICAgPHNjcmlwdCBub25jZT0idGVzdCI+CisgICAgICAgIGZ1bmN0aW9uIGxvYWRXYXNtKCkg
eworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB2YXIgbW9kID0gY3JlYXRlV2Fz
bU1vZHVsZSgpOworICAgICAgICAgICAgICAgIGkgPSBuZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2Uo
bW9kKQorICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGkuZXhwb3J0cy5jYWxjKDEpOworICAg
ICAgICAgICAgICAgIGFsZXJ0KGBQQVNTOiB3YXNtIHJlc3VsdCBpcyAke3ZhbHVlfWApOworICAg
ICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBhbGVydCgiRkFJTCIp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgICAg
IGxvYWRXYXNtKCk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3Jlc291cmNlcy93YXNtLWJ1aWxkZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvd2FzbS1idWlsZGVyLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmMwOWVhODg2ODc4OWM3MTg2ZDU1OGYwYTJkYjRjYzA4NTllNWRkMWEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9yZXNvdXJjZXMvd2FzbS1idWlsZGVyLmpzCkBAIC0wLDAgKzEsMTgwNiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2NvbnN0IF9mYWlsID0g
KG1zZywgZXh0cmEpID0+IHsKKyAgICB0aHJvdyBuZXcgRXJyb3IobXNnICsgKGV4dHJhID8gIjog
IiArIGV4dHJhIDogIiIpKTsKK307CisKK2NvbnN0IGFzc2VydCA9IHt9OworCitjb25zdCBpc05v
dEEgPSBhc3NlcnQuaXNOb3RBID0gKHYsIHQsIG1zZykgPT4geworICAgIGlmICh0eXBlb2YgdiA9
PT0gdCkKKyAgICAgICAgX2ZhaWwoYFNob3VsZG4ndCBiZSAke3R9YCwgbXNnKTsKK307CisKK2Nv
bnN0IGlzQSA9IGFzc2VydC5pc0EgPSAodiwgdCwgbXNnKSA9PiB7CisgICAgaWYgKHR5cGVvZiB2
ICE9PSB0KQorICAgICAgICBfZmFpbChgU2hvdWxkIGJlICR7dH0sIGdvdCAke3R5cGVvZih2KX1g
LCBtc2cpOworfTsKKworY29uc3QgaXNOb3RVbmRlZiA9IGFzc2VydC5pc05vdFVuZGVmID0gKHYs
IG1zZykgPT4gaXNOb3RBKHYsICJ1bmRlZmluZWQiLCBtc2cpOworYXNzZXJ0LmlzVW5kZWYgPSAo
diwgbXNnKSA9PiBpc0EodiwgInVuZGVmaW5lZCIsIG1zZyk7Cithc3NlcnQubm90T2JqZWN0ID0g
KHYsIG1zZykgPT4gaXNOb3RBKHYsICJvYmplY3QiLCBtc2cpOworY29uc3QgaXNPYmplY3QgPSBh
c3NlcnQuaXNPYmplY3QgPSAodiwgbXNnKSA9PiBpc0EodiwgIm9iamVjdCIsIG1zZyk7Cithc3Nl
cnQubm90U3RyaW5nID0gKHYsIG1zZykgPT4gaXNOb3RBKHYsICJzdHJpbmciLCBtc2cpOworYXNz
ZXJ0LmlzU3RyaW5nID0gKHYsIG1zZykgPT4gaXNBKHYsICJzdHJpbmciLCBtc2cpOworYXNzZXJ0
Lm5vdE51bWJlciA9ICh2LCBtc2cpID0+IGlzTm90QSh2LCAibnVtYmVyIiwgbXNnKTsKK2Fzc2Vy
dC5pc051bWJlciA9ICh2LCBtc2cpID0+IGlzQSh2LCAibnVtYmVyIiwgbXNnKTsKK2Fzc2VydC5u
b3RGdW5jdGlvbiA9ICh2LCBtc2cpID0+IGlzTm90QSh2LCAiZnVuY3Rpb24iLCBtc2cpOworYXNz
ZXJ0LmlzRnVuY3Rpb24gPSAodiwgbXNnKSA9PiBpc0EodiwgImZ1bmN0aW9uIiwgbXNnKTsKKwor
YXNzZXJ0Lmhhc09iamVjdFByb3BlcnR5ID0gKG8sIHAsIG1zZykgPT4geworICAgIGlzT2JqZWN0
KG8sIG1zZyk7CisgICAgaXNOb3RVbmRlZihvW3BdLCBtc2csIGBleHBlY3RlZCBvYmplY3QgdG8g
aGF2ZSBwcm9wZXJ0eSAke3B9YCk7Cit9OworCithc3NlcnQuaXNBcnJheSA9ICh2LCBtc2cpID0+
IHsKKyAgICBpZiAoIUFycmF5LmlzQXJyYXkodikpCisgICAgICAgIF9mYWlsKGBFeHBlY3RlZCBh
biBhcnJheSwgZ290ICR7dHlwZW9mKHYpfWAsIG1zZyk7Cit9OworCithc3NlcnQuaXNOb3RBcnJh
eSA9ICh2LCBtc2cpID0+IHsKKyAgICBpZiAoQXJyYXkuaXNBcnJheSh2KSkKKyAgICAgICAgX2Zh
aWwoYEV4cGVjdGVkIHRvIG5vdCBiZSBhbiBhcnJheWAsIG1zZyk7Cit9OworCithc3NlcnQudHJ1
dGh5ID0gKHYsIG1zZykgPT4geworICAgIGlmICghdikKKyAgICAgICAgX2ZhaWwoYEV4cGVjdGVk
IHRydXRoeWAsIG1zZyk7Cit9OworCithc3NlcnQuZmFsc3kgPSAodiwgbXNnKSA9PiB7CisgICAg
aWYgKHYpCisgICAgICAgIF9mYWlsKGBFeHBlY3RlZCBmYWxzeWAsIG1zZyk7Cit9OworCithc3Nl
cnQuZXEgPSAobGhzLCByaHMsIG1zZykgPT4geworICAgIGlmICh0eXBlb2YgbGhzICE9PSB0eXBl
b2YgcmhzKQorICAgICAgICBfZmFpbChgTm90IHRoZSBzYW1lOiAiJHtsaHN9IiBhbmQgIiR7cmhz
fSJgLCBtc2cpOworICAgIGlmIChBcnJheS5pc0FycmF5KGxocykgJiYgQXJyYXkuaXNBcnJheShy
aHMpICYmIChsaHMubGVuZ3RoID09PSByaHMubGVuZ3RoKSkgeworICAgICAgICBmb3IgKGxldCBp
ID0gMDsgaSAhPT0gbGhzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgZXEobGhzW2ldLCByaHNb
aV0sIG1zZyk7CisgICAgfSBlbHNlIGlmIChsaHMgIT09IHJocykgeworICAgICAgICBpZiAodHlw
ZW9mIGxocyA9PT0gIm51bWJlciIgJiYgaXNOYU4obGhzKSAmJiBpc05hTihyaHMpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBfZmFpbChgTm90IHRoZSBzYW1lOiAiJHtsaHN9IiBhbmQg
IiR7cmhzfSJgLCBtc2cpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmICh0eXBlb2YgbGhzID09
PSAibnVtYmVyIiAmJiAoMS4wIC8gbGhzICE9PSAxLjAgLyByaHMpKSAvLyBEaXN0aW5ndWlzaCAt
MC4wIGZyb20gMC4wLgorICAgICAgICAgICAgX2ZhaWwoYE5vdCB0aGUgc2FtZTogIiR7bGhzfSIg
YW5kICIke3Joc30iYCwgbXNnKTsKKyAgICB9Cit9OworCitjb25zdCBjYW5vbmljYWxpemVJMzIg
PSAobnVtYmVyKSA9PiB7CisgICAgaWYgKE1hdGgucm91bmQobnVtYmVyKSA9PT0gbnVtYmVyICYm
IG51bWJlciA+PSAyICoqIDMxKQorICAgICAgICBudW1iZXIgPSBudW1iZXIgLSAyICoqIDMyOwor
ICAgIHJldHVybiBudW1iZXI7Cit9CisKK2Fzc2VydC5lcUkzMiA9IChsaHMsIHJocywgbXNnKSA9
PiB7CisgICAgcmV0dXJuIGVxKGNhbm9uaWNhbGl6ZUkzMihsaHMpLCBjYW5vbmljYWxpemVJMzIo
cmhzKSwgbXNnKTsKK307CisKK2Fzc2VydC5nZSA9IChsaHMsIHJocywgbXNnKSA9PiB7CisgICAg
aXNOb3RVbmRlZihsaHMpOworICAgIGlzTm90VW5kZWYocmhzKTsKKyAgICBpZiAoIShsaHMgPj0g
cmhzKSkKKyAgICAgICAgX2ZhaWwoYEV4cGVjdGVkOiAiJHtsaHN9IiA8ICIke3Joc30iYCwgbXNn
KTsKK307CisKK2Fzc2VydC5sZSA9IChsaHMsIHJocywgbXNnKSA9PiB7CisgICAgaXNOb3RVbmRl
ZihsaHMpOworICAgIGlzTm90VW5kZWYocmhzKTsKKyAgICBpZiAoIShsaHMgPD0gcmhzKSkKKyAg
ICAgICAgX2ZhaWwoYEV4cGVjdGVkOiAiJHtsaHN9IiA+ICIke3Joc30iYCwgbXNnKTsKK307CisK
K2NvbnN0IF90aHJvd3MgPSAoZnVuYywgdHlwZSwgbWVzc2FnZSwgLi4uYXJncykgPT4geworICAg
IHRyeSB7CisgICAgICAgIGZ1bmMoLi4uYXJncyk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICBpZiAoZSBpbnN0YW5jZW9mIHR5cGUpIHsKKyAgICAgICAgICAgIGlmIChlLm1lc3NhZ2UgPT09
IG1lc3NhZ2UpCisgICAgICAgICAgICAgICAgcmV0dXJuIGU7CisgICAgICAgICAgICAvLyBJZ25v
cmUgc291cmNlIGluZm9ybWF0aW9uIGF0IHRoZSBlbmQgb2YgdGhlIGVycm9yIG1lc3NhZ2UgaWYg
dGhlCisgICAgICAgICAgICAvLyBleHBlY3RlZCBtZXNzYWdlIGRpZG4ndCBzcGVjaWZ5IHRoYXQg
aW5mb3JtYXRpb24uIFNvbWV0aW1lcyBpdAorICAgICAgICAgICAgLy8gY2hhbmdlcywgb3IgaXQn
cyB0cmlja3kgdG8gZ2V0IGp1c3QgcmlnaHQuCisgICAgICAgICAgICBjb25zdCBldmFsdWF0aW5n
SW5kZXggPSBlLm1lc3NhZ2UuaW5kZXhPZigiIChldmFsdWF0aW5nICciKTsKKyAgICAgICAgICAg
IGlmIChldmFsdWF0aW5nSW5kZXggIT09IC0xKSB7CisgICAgICAgICAgICAgICAgY29uc3QgY2xl
YW5NZXNzYWdlID0gZS5tZXNzYWdlLnN1YnN0cmluZygwLCBldmFsdWF0aW5nSW5kZXgpOworICAg
ICAgICAgICAgICAgIGlmIChjbGVhbk1lc3NhZ2UgPT09IG1lc3NhZ2UpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIF9mYWls
KGBFeHBlY3RlZCB0byB0aHJvdyBhICR7dHlwZS5uYW1lfSB3aXRoIG1lc3NhZ2UgIiR7bWVzc2Fn
ZX0iLCBnb3QgJHtlLm5hbWV9IHdpdGggbWVzc2FnZSAiJHtlLm1lc3NhZ2V9ImApOworICAgIH0K
KyAgICBfZmFpbChgRXhwZWN0ZWQgdG8gdGhyb3cgYSAke3R5cGUubmFtZX0gd2l0aCBtZXNzYWdl
ICIke21lc3NhZ2V9ImApOworfTsKKworY29uc3QgX2luc3RhbmNlb2YgPSAob2JqLCB0eXBlLCBt
c2cpID0+IHsKKyAgICBpZiAoIShvYmogaW5zdGFuY2VvZiB0eXBlKSkKKyAgICAgICAgX2ZhaWwo
YEV4cGVjdGVkIGEgJHt0eXBlb2YodHlwZSl9LCBnb3QgJHt0eXBlb2Ygb2JqfWApOworfTsKKwor
Ly8gVXNlIHVuZGVyc2NvcmUgbmFtZXMgdG8gYXZvaWQgY2xhc2hpbmcgd2l0aCBidWlsdGluIG5h
bWVzLgorYXNzZXJ0LnRocm93cyA9IF90aHJvd3M7Cithc3NlcnQuaW5zdGFuY2VvZiA9IF9pbnN0
YW5jZW9mOworCitjb25zdCBhc3luY1Rlc3RJbXBsID0gKHByb21pc2UsIHRoZW5GdW5jLCBjYXRj
aEZ1bmMpID0+IHsKKyAgICBhc3luY1Rlc3RTdGFydCgxKTsKKyAgICBwcm9taXNlLnRoZW4odGhl
bkZ1bmMpLmNhdGNoKGNhdGNoRnVuYyk7Cit9OworCitjb25zdCBwcmludEV4biA9IChlKSA9PiB7
CisgICAgcHJpbnQoIkZhaWxlZDogIiwgZSk7CisgICAgcHJpbnQoZS5zdGFjayk7Cit9OworCith
c3NlcnQuYXN5bmNUZXN0ID0gKHByb21pc2UpID0+IGFzeW5jVGVzdEltcGwocHJvbWlzZSwgYXN5
bmNUZXN0UGFzc2VkLCBwcmludEV4bik7Cithc3NlcnQuYXN5bmNUZXN0RXEgPSAocHJvbWlzZSwg
ZXhwZWN0ZWQpID0+IHsKKyAgICBjb25zdCB0aGVuQ2hlY2sgPSAodmFsdWUpID0+IHsKKyAgICAg
ICAgaWYgKHZhbHVlID09PSBleHBlY3RlZCkKKyAgICAgICAgICAgIHJldHVybiBhc3luY1Rlc3RQ
YXNzZWQoKTsKKyAgICAgICAgcHJpbnQoIkZhaWxlZDogZ290ICIsIHZhbHVlLCAiIGJ1dCBleHBl
Y3RlZCAiLCBleHBlY3RlZCk7CisKKyAgICB9CisgICAgYXN5bmNUZXN0SW1wbChwcm9taXNlLCB0
aGVuQ2hlY2ssIHByaW50RXhuKTsKK307CisKK2NvbnN0IFdBU01fSlNPTiA9IGAKK3sKKyAgICAi
Y29tbWVudHMiOiBbIlRoaXMgZmlsZSBkZXNjcmliZXMgdGhlIFdlYkFzc2VtYmx5IElTQS4iLAor
ICAgICAgICAgICAgICAgICAiU2NyaXB0cyBpbiB0aGlzIGZvbGRlciBhdXRvLWdlbmVyYXRlIEMr
KyBjb2RlIGZvciBKYXZhU2NyaXB0Q29yZSBhcyB3ZWxsIGFzIHRoZSB0ZXN0aW5nIERTTCB3aGlj
aCBXZWJLaXQncyBXZWJBc3NlbWJseSB0ZXN0cyB1c2UuIgorICAgICAgICAgICAgICAgIF0sCisg
ICAgInByZWFtYmxlIjogWworICAgICAgICB7ICJuYW1lIjogIm1hZ2ljIG51bWJlciIsICJ0eXBl
IjogInVpbnQzMiIsICJ2YWx1ZSI6IDE4MzYyNzgwMTYsICJkZXNjcmlwdGlvbiI6ICJOVUxMIGNo
YXJhY3RlciBmb2xsb3dlZCBieSAnYXNtJyIgfSwKKyAgICAgICAgeyAibmFtZSI6ICJ2ZXJzaW9u
IiwgICAgICAidHlwZSI6ICJ1aW50MzIiLCAidmFsdWUiOiAgICAgICAgICAxLCAiZGVzY3JpcHRp
b24iOiAiVmVyc2lvbiBudW1iZXIiIH0KKyAgICBdLAorICAgICJ0eXBlIiA6IHsKKyAgICAgICAg
ImkzMiI6ICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTEsICJiM3R5cGUiOiAi
QjM6OkludDMyIiB9LAorICAgICAgICAiaTY0IjogICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2
YWx1ZSI6ICAtMiwgImIzdHlwZSI6ICJCMzo6SW50NjQiIH0sCisgICAgICAgICJmMzIiOiAgICAg
eyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0zLCAiYjN0eXBlIjogIkIzOjpGbG9hdCIg
fSwKKyAgICAgICAgImY2NCI6ICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTQs
ICJiM3R5cGUiOiAiQjM6OkRvdWJsZSIgfSwKKyAgICAgICAgImFueWZ1bmMiOiB7ICJ0eXBlIjog
InZhcmludDciLCAidmFsdWUiOiAtMTYsICJiM3R5cGUiOiAiQjM6OlZvaWQiIH0sCisgICAgICAg
ICJmdW5jIjogICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogLTMyLCAiYjN0eXBlIjog
IkIzOjpWb2lkIiB9LAorICAgICAgICAidm9pZCI6ICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2
YWx1ZSI6IC02NCwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfQorICAgIH0sCisgICAgInZhbHVlX3R5
cGUiOiBbImkzMiIsICJpNjQiLCAiZjMyIiwgImY2NCJdLAorICAgICJibG9ja190eXBlIjogWyJp
MzIiLCAiaTY0IiwgImYzMiIsICJmNjQiLCAidm9pZCJdLAorICAgICJlbGVtX3R5cGUiOiBbImFu
eWZ1bmMiXSwKKyAgICAiZXh0ZXJuYWxfa2luZCI6IHsKKyAgICAgICAgIkZ1bmN0aW9uIjogeyAi
dHlwZSI6ICJ1aW50OCIsICJ2YWx1ZSI6IDAgfSwKKyAgICAgICAgIlRhYmxlIjogICAgeyAidHlw
ZSI6ICJ1aW50OCIsICJ2YWx1ZSI6IDEgfSwKKyAgICAgICAgIk1lbW9yeSI6ICAgeyAidHlwZSI6
ICJ1aW50OCIsICJ2YWx1ZSI6IDIgfSwKKyAgICAgICAgIkdsb2JhbCI6ICAgeyAidHlwZSI6ICJ1
aW50OCIsICJ2YWx1ZSI6IDMgfQorICAgIH0sCisgICAgInNlY3Rpb24iIDogeworICAgICAgICAi
VHlwZSI6ICAgICB7ICJ0eXBlIjogInZhcnVpbnQ3IiwgInZhbHVlIjogIDEsICJkZXNjcmlwdGlv
biI6ICJGdW5jdGlvbiBzaWduYXR1cmUgZGVjbGFyYXRpb25zIiB9LAorICAgICAgICAiSW1wb3J0
IjogICB7ICJ0eXBlIjogInZhcnVpbnQ3IiwgInZhbHVlIjogIDIsICJkZXNjcmlwdGlvbiI6ICJJ
bXBvcnQgZGVjbGFyYXRpb25zIiB9LAorICAgICAgICAiRnVuY3Rpb24iOiB7ICJ0eXBlIjogInZh
cnVpbnQ3IiwgInZhbHVlIjogIDMsICJkZXNjcmlwdGlvbiI6ICJGdW5jdGlvbiBkZWNsYXJhdGlv
bnMiIH0sCisgICAgICAgICJUYWJsZSI6ICAgIHsgInR5cGUiOiAidmFydWludDciLCAidmFsdWUi
OiAgNCwgImRlc2NyaXB0aW9uIjogIkluZGlyZWN0IGZ1bmN0aW9uIHRhYmxlIGFuZCBvdGhlciB0
YWJsZXMiIH0sCisgICAgICAgICJNZW1vcnkiOiAgIHsgInR5cGUiOiAidmFydWludDciLCAidmFs
dWUiOiAgNSwgImRlc2NyaXB0aW9uIjogIk1lbW9yeSBhdHRyaWJ1dGVzIiB9LAorICAgICAgICAi
R2xvYmFsIjogICB7ICJ0eXBlIjogInZhcnVpbnQ3IiwgInZhbHVlIjogIDYsICJkZXNjcmlwdGlv
biI6ICJHbG9iYWwgZGVjbGFyYXRpb25zIiB9LAorICAgICAgICAiRXhwb3J0IjogICB7ICJ0eXBl
IjogInZhcnVpbnQ3IiwgInZhbHVlIjogIDcsICJkZXNjcmlwdGlvbiI6ICJFeHBvcnRzIiB9LAor
ICAgICAgICAiU3RhcnQiOiAgICB7ICJ0eXBlIjogInZhcnVpbnQ3IiwgInZhbHVlIjogIDgsICJk
ZXNjcmlwdGlvbiI6ICJTdGFydCBmdW5jdGlvbiBkZWNsYXJhdGlvbiIgfSwKKyAgICAgICAgIkVs
ZW1lbnQiOiAgeyAidHlwZSI6ICJ2YXJ1aW50NyIsICJ2YWx1ZSI6ICA5LCAiZGVzY3JpcHRpb24i
OiAiRWxlbWVudHMgc2VjdGlvbiIgfSwKKyAgICAgICAgIkNvZGUiOiAgICAgeyAidHlwZSI6ICJ2
YXJ1aW50NyIsICJ2YWx1ZSI6IDEwLCAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb24gYm9kaWVzIChj
b2RlKSIgfSwKKyAgICAgICAgIkRhdGEiOiAgICAgeyAidHlwZSI6ICJ2YXJ1aW50NyIsICJ2YWx1
ZSI6IDExLCAiZGVzY3JpcHRpb24iOiAiRGF0YSBzZWdtZW50cyIgfQorICAgIH0sCisgICAgIm9w
Y29kZSI6IHsKKyAgICAgICAgInVucmVhY2hhYmxlIjogICAgICAgICB7ICJjYXRlZ29yeSI6ICJj
b250cm9sIiwgICAgInZhbHVlIjogICAwLCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1l
dGVyIjogW10sICAgICAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ0cmFwIGltbWVkaWF0ZWx5IiB9
LAorICAgICAgICAiYmxvY2siOiAgICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbnRyb2wi
LCAgICAidmFsdWUiOiAgIDIsICJyZXR1cm4iOiBbImNvbnRyb2wiXSwgICJwYXJhbWV0ZXIiOiBb
XSwgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAic2lnIiwgInR5
cGUiOiAiYmxvY2tfdHlwZSJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogImJlZ2luIGEgc2VxdWVuY2Ugb2YgZXhwcmVz
c2lvbnMsIHlpZWxkaW5nIDAgb3IgMSB2YWx1ZXMiIH0sCisgICAgICAgICJsb29wIjogICAgICAg
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29udHJvbCIsICAgICJ2YWx1ZSI6ICAgMywgInJldHVy
biI6IFsiY29udHJvbCJdLCAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAi
aW1tZWRpYXRlIjogW3sibmFtZSI6ICJzaWciLCAidHlwZSI6ICJibG9ja190eXBlIn1dLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiYmVnaW4gYSBibG9jayB3aGljaCBjYW4gYWxzbyBmb3JtIGNvbnRyb2wgZmxvdyBsb29w
cyIgfSwKKyAgICAgICAgImlmIjogICAgICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb250
cm9sIiwgICAgInZhbHVlIjogICA0LCAicmV0dXJuIjogWyJjb250cm9sIl0sICAicGFyYW1ldGVy
IjogWyJib29sIl0sICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInNpZyIs
ICJ0eXBlIjogImJsb2NrX3R5cGUifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJiZWdpbiBpZiBleHByZXNzaW9uIiB9
LAorICAgICAgICAiZWxzZSI6ICAgICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbnRyb2wi
LCAgICAidmFsdWUiOiAgIDUsICJyZXR1cm4iOiBbImNvbnRyb2wiXSwgICJwYXJhbWV0ZXIiOiBb
XSwgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogImJlZ2luIGVsc2UgZXhwcmVzc2lvbiBvZiBp
ZiIgfSwKKyAgICAgICAgInNlbGVjdCI6ICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb250
cm9sIiwgICAgInZhbHVlIjogIDI3LCAicmV0dXJuIjogWyJwcmV2Il0sICAgICAicGFyYW1ldGVy
IjogWyJhbnkiLCAicHJldiIsICJib29sIl0sICJpbW1lZGlhdGUiOiBbXSwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJzZWxlY3Qgb25lIG9mIHR3byB2YWx1
ZXMgYmFzZWQgb24gY29uZGl0aW9uIiB9LAorICAgICAgICAiYnIiOiAgICAgICAgICAgICAgICAg
IHsgImNhdGVnb3J5IjogImNvbnRyb2wiLCAgICAidmFsdWUiOiAgMTIsICJyZXR1cm4iOiBbXSwg
ICAgICAgICAgICJwYXJhbWV0ZXIiOiBbXSwgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0
ZSI6IFt7Im5hbWUiOiAicmVsYXRpdmVfZGVwdGgiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogImJy
ZWFrIHRoYXQgdGFyZ2V0cyBhbiBvdXRlciBuZXN0ZWQgYmxvY2siIH0sCisgICAgICAgICJicl9p
ZiI6ICAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29udHJvbCIsICAgICJ2YWx1ZSI6ICAx
MywgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAg
ICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJyZWxhdGl2ZV9kZXB0aCIsICJ0eXBlIjog
InZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiY29uZGl0aW9uYWwgYnJlYWsgdGhhdCB0YXJnZXRzIGFuIG91dGVyIG5l
c3RlZCBibG9jayIgfSwKKyAgICAgICAgImJyX3RhYmxlIjogICAgICAgICAgICB7ICJjYXRlZ29y
eSI6ICJjb250cm9sIiwgICAgInZhbHVlIjogIDE0LCAicmV0dXJuIjogW10sICAgICAgICAgICAi
cGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1l
IjogInRhcmdldF9jb3VudCIsICAgInR5cGUiOiAidmFydWludDMyIiwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJudW1iZXIgb2YgZW50
cmllcyBpbiB0aGUgdGFyZ2V0X3RhYmxlIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsibmFtZSI6ICJ0YXJnZXRfdGFibGUiLCAgICJ0eXBlIjogInZhcnVpbnQzMioiLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
dGFyZ2V0IGVudHJpZXMgdGhhdCBpbmRpY2F0ZSBhbiBvdXRlciBibG9jayBvciBsb29wIHRvIHdo
aWNoIHRvIGJyZWFrIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsibmFt
ZSI6ICJkZWZhdWx0X3RhcmdldCIsICJ0eXBlIjogInZhcnVpbnQzMiIsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYW4gb3V0ZXIgYmxv
Y2sgb3IgbG9vcCB0byB3aGljaCB0byBicmVhayBpbiB0aGUgZGVmYXVsdCBjYXNlIn1dLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogImJyYW5jaCB0YWJsZSBjb250cm9sIGZsb3cgY29uc3Ry
dWN0IiB9LAorICAgICAgICAicmV0dXJuIjogICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNv
bnRyb2wiLCAgICAidmFsdWUiOiAgMTUsICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0
ZXIiOiBbXSwgICAgICAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJyZXR1cm4gemVybyBvciBvbmUg
dmFsdWUgZnJvbSB0aGlzIGZ1bmN0aW9uIiB9LAorICAgICAgICAiZHJvcCI6ICAgICAgICAgICAg
ICAgIHsgImNhdGVnb3J5IjogImNvbnRyb2wiLCAgICAidmFsdWUiOiAgMjYsICJyZXR1cm4iOiBb
XSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImFueSJdLCAgICAgICAgICAgICAgICAgICJpbW1l
ZGlhdGUiOiBbXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJpZ25vcmUgdmFsdWUiIH0sCisgICAgICAgICJub3AiOiAgICAgICAgICAgICAgICAgeyAiY2F0
ZWdvcnkiOiAiY29udHJvbCIsICAgICJ2YWx1ZSI6ICAgMSwgInJldHVybiI6IFtdLCAgICAgICAg
ICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtd
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIm5vIG9wZXJh
dGlvbiIgfSwKKyAgICAgICAgImVuZCI6ICAgICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJj
b250cm9sIiwgICAgInZhbHVlIjogIDExLCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1l
dGVyIjogW10sICAgICAgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiZW5kIGEgYmxvY2ssIGxvb3As
IG9yIGlmIiB9LAorICAgICAgICAiaTMyLmNvbnN0IjogICAgICAgICAgIHsgImNhdGVnb3J5Ijog
InNwZWNpYWwiLCAgICAidmFsdWUiOiAgNjUsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJh
bWV0ZXIiOiBbXSwgICAgICAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjog
InZhbHVlIiwgICAgICAgICAgInR5cGUiOiAidmFyaW50MzIifV0sICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJhIGNvbnN0YW50IHZhbHVl
IGludGVycHJldGVkIGFzIGkzMiIgfSwKKyAgICAgICAgImk2NC5jb25zdCI6ICAgICAgICAgICB7
ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjogIDY2LCAicmV0dXJuIjogWyJpNjQi
XSwgICAgICAicGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRl
IjogW3sibmFtZSI6ICJ2YWx1ZSIsICAgICAgICAgICJ0eXBlIjogInZhcmludDY0In1dLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYSBj
b25zdGFudCB2YWx1ZSBpbnRlcnByZXRlZCBhcyBpNjQiIH0sCisgICAgICAgICJmNjQuY29uc3Qi
OiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICA2OCwgInJl
dHVybiI6IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAg
ICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidmFsdWUiLCAgICAgICAgICAidHlwZSI6ICJkb3Vi
bGUifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogImEgY29uc3RhbnQgdmFsdWUgaW50ZXJwcmV0ZWQgYXMgZjY0IiB9LAorICAgICAg
ICAiZjMyLmNvbnN0IjogICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFs
dWUiOiAgNjcsICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbXSwgICAgICAg
ICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInZhbHVlIiwgICAgICAgICAg
InR5cGUiOiAiZmxvYXQifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogImEgY29uc3RhbnQgdmFsdWUgaW50ZXJwcmV0ZWQgYXMgZjMy
IiB9LAorICAgICAgICAiZ2V0X2xvY2FsIjogICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNp
YWwiLCAgICAidmFsdWUiOiAgMzIsICJyZXR1cm4iOiBbImFueSJdLCAgICAicGFyYW1ldGVyIjog
W10sICAgICAgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJsb2NhbF9p
bmRleCIsICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAicmVhZCBhIGxvY2FsIHZhcmlhYmxlIG9y
IHBhcmFtZXRlciIgfSwKKyAgICAgICAgInNldF9sb2NhbCI6ICAgICAgICAgICB7ICJjYXRlZ29y
eSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjogIDMzLCAicmV0dXJuIjogW10sICAgICAgICAgICAi
cGFyYW1ldGVyIjogWyJhbnkiXSwgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUi
OiAibG9jYWxfaW5kZXgiLCAgICAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIndyaXRlIGEgbG9jYWwg
dmFyaWFibGUgb3IgcGFyYW1ldGVyIiB9LAorICAgICAgICAidGVlX2xvY2FsIjogICAgICAgICAg
IHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAgMzQsICJyZXR1cm4iOiBbImFu
eSJdLCAgICAgInBhcmFtZXRlciI6IFsiYW55Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0
ZSI6IFt7Im5hbWUiOiAibG9jYWxfaW5kZXgiLCAgICAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIndy
aXRlIGEgbG9jYWwgdmFyaWFibGUgb3IgcGFyYW1ldGVyIGFuZCByZXR1cm4gdGhlIHNhbWUgdmFs
dWUiIH0sCisgICAgICAgICJnZXRfZ2xvYmFsIjogICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3Bl
Y2lhbCIsICAgICJ2YWx1ZSI6ICAzNSwgInJldHVybiI6IFsiYW55Il0sICAgInBhcmFtZXRlciI6
IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZ2xvYmFs
X2luZGV4IiwgICAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInJlYWQgYSBnbG9iYWwgdmFyaWFibGUi
IH0sCisgICAgICAgICJzZXRfZ2xvYmFsIjogICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lh
bCIsICAgICJ2YWx1ZSI6ICAzNiwgInJldHVybiI6IFtdLCAgICAgICAgICJwYXJhbWV0ZXIiOiBb
ImFueSJdLCAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImdsb2JhbF9pbmRl
eCIsICAgInR5cGUiOiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ3cml0ZSBhIGdsb2JhbCB2YXJpYWJsZSIgfSwK
KyAgICAgICAgImNhbGwiOiAgICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjYWxsIiwgICAg
ICAgInZhbHVlIjogIDE2LCAicmV0dXJuIjogWyJjYWxsIl0sICAgICAicGFyYW1ldGVyIjogWyJj
YWxsIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmdW5jdGlvbl9p
bmRleCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiY2FsbCBhIGZ1bmN0aW9uIGJ5IGl0cyBpbmRl
eCIgfSwKKyAgICAgICAgImNhbGxfaW5kaXJlY3QiOiAgICAgICB7ICJjYXRlZ29yeSI6ICJjYWxs
IiwgICAgICAgInZhbHVlIjogIDE3LCAicmV0dXJuIjogWyJjYWxsIl0sICAgICAicGFyYW1ldGVy
IjogWyJjYWxsIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJ0eXBl
X2luZGV4IiwgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAicmVzZXJ2ZWQiLCAg
ICAgInR5cGUiOiAidmFydWludDEifV0sICJkZXNjcmlwdGlvbiI6ICJjYWxsIGEgZnVuY3Rpb24g
aW5kaXJlY3Qgd2l0aCBhbiBleHBlY3RlZCBzaWduYXR1cmUiIH0sCisgICAgICAgICJpMzIubG9h
ZDhfcyI6ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA0NCwg
InJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiYWRkciJdLCAgICAgICAgICAg
ICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2
YXJ1aW50MzIifSwgeyJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRl
c2NyaXB0aW9uIjogImxvYWQgZnJvbSBtZW1vcnkiIH0sCisgICAgICAgICJpMzIubG9hZDhfdSI6
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA0NSwgInJldHVy
biI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiYWRkciJdLCAgICAgICAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50
MzIifSwgeyJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0
aW9uIjogImxvYWQgZnJvbSBtZW1vcnkiIH0sCisgICAgICAgICJpMzIubG9hZDE2X3MiOiAgICAg
ICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA0NiwgInJldHVybiI6IFsi
aTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiYWRkciJdLCAgICAgICAgICAgICAgICAgImltbWVk
aWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwg
eyJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjog
ImxvYWQgZnJvbSBtZW1vcnkiIH0sCisgICAgICAgICJpMzIubG9hZDE2X3UiOiAgICAgICAgeyAi
Y2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA0NywgInJldHVybiI6IFsiaTMyIl0s
ICAgICAgInBhcmFtZXRlciI6IFsiYWRkciJdLCAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6
IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1l
IjogIm9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjogImxvYWQg
ZnJvbSBtZW1vcnkiIH0sCisgICAgICAgICJpNjQubG9hZDhfcyI6ICAgICAgICAgeyAiY2F0ZWdv
cnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA0OCwgInJldHVybiI6IFsiaTY0Il0sICAgICAg
InBhcmFtZXRlciI6IFsiYWRkciJdLCAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5h
bWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjogIm9m
ZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjogImxvYWQgZnJvbSBt
ZW1vcnkiIH0sCisgICAgICAgICJpNjQubG9hZDhfdSI6ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAi
bWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA0OSwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFt
ZXRlciI6IFsiYWRkciJdLCAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAi
ZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjogIm9mZnNldCIs
ICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjogImxvYWQgZnJvbSBtZW1vcnki
IH0sCisgICAgICAgICJpNjQubG9hZDE2X3MiOiAgICAgICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5
IiwgICAgICJ2YWx1ZSI6ICA1MCwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6
IFsiYWRkciJdLCAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3Mi
LCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjogIm9mZnNldCIsICJ0eXBl
IjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjogImxvYWQgZnJvbSBtZW1vcnkiIH0sCisg
ICAgICAgICJpNjQubG9hZDE2X3UiOiAgICAgICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAg
ICJ2YWx1ZSI6ICA1MSwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiYWRk
ciJdLCAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAg
ICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZh
cnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjogImxvYWQgZnJvbSBtZW1vcnkiIH0sCisgICAgICAg
ICJpNjQubG9hZDMyX3MiOiAgICAgICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1
ZSI6ICA1MiwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiYWRkciJdLCAg
ICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAi
dHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQz
MiJ9XSwgImRlc2NyaXB0aW9uIjogImxvYWQgZnJvbSBtZW1vcnkiIH0sCisgICAgICAgICJpNjQu
bG9hZDMyX3UiOiAgICAgICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA1
MywgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiYWRkciJdLCAgICAgICAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6
ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwg
ImRlc2NyaXB0aW9uIjogImxvYWQgZnJvbSBtZW1vcnkiIH0sCisgICAgICAgICJpMzIubG9hZCI6
ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA0MCwgInJl
dHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiYWRkciJdLCAgICAgICAgICAgICAg
ICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1
aW50MzIifSwgeyJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2Ny
aXB0aW9uIjogImxvYWQgZnJvbSBtZW1vcnkiIH0sCisgICAgICAgICJpNjQubG9hZCI6ICAgICAg
ICAgICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA0MSwgInJldHVybiI6
IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiYWRkciJdLCAgICAgICAgICAgICAgICAgImlt
bWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIi
fSwgeyJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9u
IjogImxvYWQgZnJvbSBtZW1vcnkiIH0sCisgICAgICAgICJmMzIubG9hZCI6ICAgICAgICAgICAg
eyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA0MiwgInJldHVybiI6IFsiZjMy
Il0sICAgICAgInBhcmFtZXRlciI6IFsiYWRkciJdLCAgICAgICAgICAgICAgICAgImltbWVkaWF0
ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJu
YW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjogImxv
YWQgZnJvbSBtZW1vcnkiIH0sCisgICAgICAgICJmNjQubG9hZCI6ICAgICAgICAgICAgeyAiY2F0
ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA0MywgInJldHVybiI6IFsiZjY0Il0sICAg
ICAgInBhcmFtZXRlciI6IFsiYWRkciJdLCAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7
Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjog
Im9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjogImxvYWQgZnJv
bSBtZW1vcnkiIH0sCisgICAgICAgICJpMzIuc3RvcmU4IjogICAgICAgICAgeyAiY2F0ZWdvcnki
OiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA1OCwgInJldHVybiI6IFtdLCAgICAgICAgICAgInBh
cmFtZXRlciI6IFsiYWRkciIsICJpMzIiXSwgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUi
OiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjogIm9mZnNl
dCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjogInN0b3JlIHRvIG1lbW9y
eSIgfSwKKyAgICAgICAgImkzMi5zdG9yZTE2IjogICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1v
cnkiLCAgICAgInZhbHVlIjogIDU5LCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1ldGVy
IjogWyJhZGRyIiwgImkzMiJdLCAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFn
cyIsICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5
cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAic3RvcmUgdG8gbWVtb3J5IiB9LAor
ICAgICAgICAiaTY0LnN0b3JlOCI6ICAgICAgICAgIHsgImNhdGVnb3J5IjogIm1lbW9yeSIsICAg
ICAidmFsdWUiOiAgNjAsICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImFk
ZHIiLCAiaTY0Il0sICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdzIiwgICAg
ICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJ2
YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJzdG9yZSB0byBtZW1vcnkiIH0sCisgICAgICAg
ICJpNjQuc3RvcmUxNiI6ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1
ZSI6ICA2MSwgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFsiYWRkciIsICJp
NjQiXSwgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAi
dHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQz
MiJ9XSwgImRlc2NyaXB0aW9uIjogInN0b3JlIHRvIG1lbW9yeSIgfSwKKyAgICAgICAgImk2NC5z
dG9yZTMyIjogICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVlIjogIDYy
LCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1ldGVyIjogWyJhZGRyIiwgImk2NCJdLCAg
ICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0eXBlIjog
InZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5cGUiOiAidmFydWludDMyIn1dLCAi
ZGVzY3JpcHRpb24iOiAic3RvcmUgdG8gbWVtb3J5IiB9LAorICAgICAgICAiaTMyLnN0b3JlIjog
ICAgICAgICAgIHsgImNhdGVnb3J5IjogIm1lbW9yeSIsICAgICAidmFsdWUiOiAgNTQsICJyZXR1
cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImFkZHIiLCAiaTMyIl0sICAgICAgICAg
ICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdzIiwgICAgICAgICAgInR5cGUiOiAidmFydWlu
dDMyIn0sIHsibmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlw
dGlvbiI6ICJzdG9yZSB0byBtZW1vcnkiIH0sCisgICAgICAgICJpNjQuc3RvcmUiOiAgICAgICAg
ICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA1NSwgInJldHVybiI6IFtd
LCAgICAgICAgICAgInBhcmFtZXRlciI6IFsiYWRkciIsICJpNjQiXSwgICAgICAgICAgImltbWVk
aWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwg
eyJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjog
InN0b3JlIHRvIG1lbW9yeSIgfSwKKyAgICAgICAgImYzMi5zdG9yZSI6ICAgICAgICAgICB7ICJj
YXRlZ29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVlIjogIDU2LCAicmV0dXJuIjogW10sICAgICAg
ICAgICAicGFyYW1ldGVyIjogWyJhZGRyIiwgImYzMiJdLCAgICAgICAgICAiaW1tZWRpYXRlIjog
W3sibmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUi
OiAib2Zmc2V0IiwgInR5cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAic3RvcmUg
dG8gbWVtb3J5IiB9LAorICAgICAgICAiZjY0LnN0b3JlIjogICAgICAgICAgIHsgImNhdGVnb3J5
IjogIm1lbW9yeSIsICAgICAidmFsdWUiOiAgNTcsICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJw
YXJhbWV0ZXIiOiBbImFkZHIiLCAiZjY0Il0sICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1l
IjogImZsYWdzIiwgICAgICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZz
ZXQiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJzdG9yZSB0byBtZW1v
cnkiIH0sCisgICAgICAgICJjdXJyZW50X21lbW9yeSI6ICAgICAgeyAiY2F0ZWdvcnkiOiAib3Bl
cmF0aW9uIiwgICJ2YWx1ZSI6ICA2MywgInJldHVybiI6IFsic2l6ZSJdLCAgICAgInBhcmFtZXRl
ciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxh
Z3MiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAicXVlcnkgdGhlIHNpemUgb2YgbWVtb3J5IiB9LAorICAgICAgICAi
Z3Jvd19tZW1vcnkiOiAgICAgICAgIHsgImNhdGVnb3J5IjogIm9wZXJhdGlvbiIsICAidmFsdWUi
OiAgNjQsICJyZXR1cm4iOiBbInNpemUiXSwgICAgICJwYXJhbWV0ZXIiOiBbInNpemUiXSwgICAg
ICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdzIiwgInR5cGUiOiAidmFy
dWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
Imdyb3cgdGhlIHNpemUgb2YgbWVtb3J5IiB9LAorICAgICAgICAiaTMyLmFkZCI6ICAgICAgICAg
ICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMDYsICJyZXR1cm4iOiBb
ImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAgICAgICJpbW1l
ZGlhdGUiOiBbXSwgImIzb3AiOiAiQWRkIiAgICAgICAgICB9LAorICAgICAgICAiaTMyLnN1YiI6
ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMDcsICJy
ZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAg
ICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiU3ViIiAgICAgICAgICB9LAorICAgICAgICAi
aTMyLm11bCI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUi
OiAxMDgsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIi
XSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiTXVsIiAgICAgICAgICB9LAor
ICAgICAgICAiaTMyLmRpdl9zIjogICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMi
LCAidmFsdWUiOiAxMDksICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkz
MiIsICJpMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAiaTMyLmRpdl91IjogICAgICAgICAgIHsgImNhdGVnb3J5IjogImFy
aXRobWV0aWMiLCAidmFsdWUiOiAxMTAsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0
ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAiaTMyLnJlbV9zIjogICAgICAgICAgIHsgImNhdGVn
b3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMTEsICJyZXR1cm4iOiBbImkzMiJdLCAgICAg
ICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiaTMyLnJlbV91IjogICAgICAgICAg
IHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMTIsICJyZXR1cm4iOiBbImkz
MiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAgICAgICJpbW1lZGlh
dGUiOiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiaTMyLmFuZCI6ICAg
ICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMTMsICJyZXR1
cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAgICAg
ICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQml0QW5kIiAgICAgICB9LAorICAgICAgICAiaTMy
Lm9yIjogICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAx
MTQsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIiXSwg
ICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQml0T3IiICAgICAgICB9LAorICAg
ICAgICAiaTMyLnhvciI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAi
dmFsdWUiOiAxMTUsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIs
ICJpMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQml0WG9yIiAgICAg
ICB9LAorICAgICAgICAiaTMyLnNobCI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRo
bWV0aWMiLCAidmFsdWUiOiAxMTYsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIi
OiBbImkzMiIsICJpMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiU2hs
IiAgICAgICAgICB9LAorICAgICAgICAiaTMyLnNocl91IjogICAgICAgICAgIHsgImNhdGVnb3J5
IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMTgsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJw
YXJhbWV0ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIz
b3AiOiAiWlNociIgICAgICAgICB9LAorICAgICAgICAiaTMyLnNocl9zIjogICAgICAgICAgIHsg
ImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMTcsICJyZXR1cm4iOiBbImkzMiJd
LCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUi
OiBbXSwgImIzb3AiOiAiU1NociIgICAgICAgICB9LAorICAgICAgICAiaTMyLnJvdHIiOiAgICAg
ICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMjAsICJyZXR1cm4i
OiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAgICAgICJp
bW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiUm90UiIgICAgICAgICB9LAorICAgICAgICAiaTMyLnJv
dGwiOiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMTks
ICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIiXSwgICAg
ICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiUm90TCIgICAgICAgICB9LAorICAgICAg
ICAiaTMyLmVxIjogICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFs
dWUiOiAgNzAsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJp
MzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiRXF1YWwiICAgICAgICB9
LAorICAgICAgICAiaTMyLm5lIjogICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlz
b24iLCAidmFsdWUiOiAgNzEsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBb
ImkzMiIsICJpMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiTm90RXF1
YWwiICAgICB9LAorICAgICAgICAiaTMyLmx0X3MiOiAgICAgICAgICAgIHsgImNhdGVnb3J5Ijog
ImNvbXBhcmlzb24iLCAidmFsdWUiOiAgNzIsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJh
bWV0ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3Ai
OiAiTGVzc1RoYW4iICAgICB9LAorICAgICAgICAiaTMyLmxlX3MiOiAgICAgICAgICAgIHsgImNh
dGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgNzYsICJyZXR1cm4iOiBbImJvb2wiXSwg
ICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBb
XSwgImIzb3AiOiAiTGVzc0VxdWFsIiAgICB9LAorICAgICAgICAiaTMyLmx0X3UiOiAgICAgICAg
ICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgNzMsICJyZXR1cm4iOiBb
ImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAgICAgICJpbW1l
ZGlhdGUiOiBbXSwgImIzb3AiOiAiQmVsb3ciICAgICAgICB9LAorICAgICAgICAiaTMyLmxlX3Ui
OiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgNzcsICJy
ZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAg
ICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQmVsb3dFcXVhbCIgICB9LAorICAgICAgICAi
aTMyLmd0X3MiOiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUi
OiAgNzQsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIi
XSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiR3JlYXRlclRoYW4iICB9LAor
ICAgICAgICAiaTMyLmdlX3MiOiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24i
LCAidmFsdWUiOiAgNzgsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImkz
MiIsICJpMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiR3JlYXRlckVx
dWFsIiB9LAorICAgICAgICAiaTMyLmd0X3UiOiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNv
bXBhcmlzb24iLCAidmFsdWUiOiAgNzUsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0
ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAi
QWJvdmUiICAgICAgICB9LAorICAgICAgICAiaTMyLmdlX3UiOiAgICAgICAgICAgIHsgImNhdGVn
b3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgNzksICJyZXR1cm4iOiBbImJvb2wiXSwgICAg
ICJwYXJhbWV0ZXIiOiBbImkzMiIsICJpMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwg
ImIzb3AiOiAiQWJvdmVFcXVhbCIgICB9LAorICAgICAgICAiaTMyLmNseiI6ICAgICAgICAgICAg
IHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMDMsICJyZXR1cm4iOiBbImkz
MiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlh
dGUiOiBbXSwgImIzb3AiOiAiQ2x6IiAgICAgICAgICB9LAorICAgICAgICAiaTMyLmN0eiI6ICAg
ICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMDQsICJyZXR1
cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiJdLCAgICAgICAgICAgICAgICAg
ICJpbW1lZGlhdGUiOiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiaTMy
LnBvcGNudCI6ICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAx
MDUsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiJdLCAgICAgICAg
ICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAiaTMyLmVxeiI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAi
dmFsdWUiOiAgNjksICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImkzMiJd
LCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiRXF1YWwoaTMyKDAp
LCBAMCkiIH0sCisgICAgICAgICJpNjQuYWRkIjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAi
YXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEyNCwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFt
ZXRlciI6IFsiaTY0IiwgImk2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6
ICJBZGQiICAgICAgICAgIH0sCisgICAgICAgICJpNjQuc3ViIjogICAgICAgICAgICAgeyAiY2F0
ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEyNSwgInJldHVybiI6IFsiaTY0Il0sICAg
ICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtd
LCAiYjNvcCI6ICJTdWIiICAgICAgICAgIH0sCisgICAgICAgICJpNjQubXVsIjogICAgICAgICAg
ICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEyNiwgInJldHVybiI6IFsi
aTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2NCJdLCAgICAgICAgICAgImltbWVk
aWF0ZSI6IFtdLCAiYjNvcCI6ICJNdWwiICAgICAgICAgIH0sCisgICAgICAgICJpNjQuZGl2X3Mi
OiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEyNywgInJl
dHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2NCJdLCAgICAgICAg
ICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICJp
NjQuZGl2X3UiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6
IDEyOCwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2NCJd
LCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICJpNjQucmVtX3MiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIs
ICJ2YWx1ZSI6IDEyOSwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0
IiwgImk2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICJpNjQucmVtX3UiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJp
dGhtZXRpYyIsICJ2YWx1ZSI6IDEzMCwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRl
ciI6IFsiaTY0IiwgImk2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICJpNjQuYW5kIjogICAgICAgICAgICAgeyAiY2F0ZWdv
cnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEzMSwgInJldHVybiI6IFsiaTY0Il0sICAgICAg
InBhcmFtZXRlciI6IFsiaTY0IiwgImk2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAi
YjNvcCI6ICJCaXRBbmQiICAgICAgIH0sCisgICAgICAgICJpNjQub3IiOiAgICAgICAgICAgICAg
eyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEzMiwgInJldHVybiI6IFsiaTY0
Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2NCJdLCAgICAgICAgICAgImltbWVkaWF0
ZSI6IFtdLCAiYjNvcCI6ICJCaXRPciIgICAgICAgIH0sCisgICAgICAgICJpNjQueG9yIjogICAg
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEzMywgInJldHVy
biI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2NCJdLCAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJCaXRYb3IiICAgICAgIH0sCisgICAgICAgICJpNjQu
c2hsIjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEz
NCwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2NCJdLCAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJTaGwoQDAsIFRydW5jKEAxKSkiIH0s
CisgICAgICAgICJpNjQuc2hyX3UiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRp
YyIsICJ2YWx1ZSI6IDEzNiwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsi
aTY0IiwgImk2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJaU2hyKEAw
LCBUcnVuYyhAMSkpIiB9LAorICAgICAgICAiaTY0LnNocl9zIjogICAgICAgICAgIHsgImNhdGVn
b3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMzUsICJyZXR1cm4iOiBbImk2NCJdLCAgICAg
ICJwYXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwg
ImIzb3AiOiAiU1NocihAMCwgVHJ1bmMoQDEpKSIgfSwKKyAgICAgICAgImk2NC5yb3RyIjogICAg
ICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTM4LCAicmV0dXJu
IjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAiaTY0Il0sICAgICAgICAgICAi
aW1tZWRpYXRlIjogW10sICJiM29wIjogIlJvdFIoQDAsIFRydW5jKEAxKSkiIH0sCisgICAgICAg
ICJpNjQucm90bCI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1
ZSI6IDEzNywgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2
NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJSb3RMKEAwLCBUcnVuYyhA
MSkpIiB9LAorICAgICAgICAiaTY0LmVxIjogICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNv
bXBhcmlzb24iLCAidmFsdWUiOiAgODEsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0
ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAi
RXF1YWwiICAgICAgICB9LAorICAgICAgICAiaTY0Lm5lIjogICAgICAgICAgICAgIHsgImNhdGVn
b3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgODIsICJyZXR1cm4iOiBbImJvb2wiXSwgICAg
ICJwYXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwg
ImIzb3AiOiAiTm90RXF1YWwiICAgICB9LAorICAgICAgICAiaTY0Lmx0X3MiOiAgICAgICAgICAg
IHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgODMsICJyZXR1cm4iOiBbImJv
b2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlh
dGUiOiBbXSwgImIzb3AiOiAiTGVzc1RoYW4iICAgICB9LAorICAgICAgICAiaTY0LmxlX3MiOiAg
ICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgODcsICJyZXR1
cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAg
ICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiTGVzc0VxdWFsIiAgICB9LAorICAgICAgICAiaTY0
Lmx0X3UiOiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAg
ODQsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwg
ICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQmVsb3ciICAgICAgICB9LAorICAg
ICAgICAiaTY0LmxlX3UiOiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAi
dmFsdWUiOiAgODgsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImk2NCIs
ICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQmVsb3dFcXVhbCIg
ICB9LAorICAgICAgICAiaTY0Lmd0X3MiOiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBh
cmlzb24iLCAidmFsdWUiOiAgODUsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIi
OiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiR3Jl
YXRlclRoYW4iICB9LAorICAgICAgICAiaTY0LmdlX3MiOiAgICAgICAgICAgIHsgImNhdGVnb3J5
IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgODksICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJw
YXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIz
b3AiOiAiR3JlYXRlckVxdWFsIiB9LAorICAgICAgICAiaTY0Lmd0X3UiOiAgICAgICAgICAgIHsg
ImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgODYsICJyZXR1cm4iOiBbImJvb2wi
XSwgICAgICJwYXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUi
OiBbXSwgImIzb3AiOiAiQWJvdmUiICAgICAgICB9LAorICAgICAgICAiaTY0LmdlX3UiOiAgICAg
ICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgOTAsICJyZXR1cm4i
OiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJp
bW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQWJvdmVFcXVhbCIgICB9LAorICAgICAgICAiaTY0LmNs
eiI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMjEs
ICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImk2NCJdLCAgICAgICAgICAg
ICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQ2x6IiAgICAgICAgICB9LAorICAgICAg
ICAiaTY0LmN0eiI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFs
dWUiOiAxMjIsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImk2NCJdLCAg
ICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgICAgICAiaTY0LnBvcGNudCI6ICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0
aWMiLCAidmFsdWUiOiAxMjMsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBb
Imk2NCJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAiaTY0LmVxeiI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5Ijog
ImNvbXBhcmlzb24iLCAidmFsdWUiOiAgODAsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJh
bWV0ZXIiOiBbImk2NCJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3Ai
OiAiRXF1YWwoaTY0KDApLCBAMCkiIH0sCisgICAgICAgICJmMzIuYWRkIjogICAgICAgICAgICAg
eyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE0NiwgInJldHVybiI6IFsiZjMy
Il0sICAgICAgInBhcmFtZXRlciI6IFsiZjMyIiwgImYzMiJdLCAgICAgICAgICAgImltbWVkaWF0
ZSI6IFtdLCAiYjNvcCI6ICJBZGQiICAgICAgICAgIH0sCisgICAgICAgICJmMzIuc3ViIjogICAg
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE0NywgInJldHVy
biI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiZjMyIiwgImYzMiJdLCAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJTdWIiICAgICAgICAgIH0sCisgICAgICAgICJmMzIu
bXVsIjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE0
OCwgInJldHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiZjMyIiwgImYzMiJdLCAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJNdWwiICAgICAgICAgIH0sCisgICAg
ICAgICJmMzIuZGl2IjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2
YWx1ZSI6IDE0OSwgInJldHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiZjMyIiwg
ImYzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJEaXYiICAgICAgICAg
IH0sCisgICAgICAgICJmMzIubWluIjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGht
ZXRpYyIsICJ2YWx1ZSI6IDE1MCwgInJldHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6
IFsiZjMyIiwgImYzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJTZWxl
Y3QoRXF1YWwoQDAsIEAxKSwgQml0T3IoQDAsIEAxKSwgU2VsZWN0KExlc3NUaGFuKEAwLCBAMSks
IEAwLCBAMSkpIiB9LAorICAgICAgICAiZjMyLm1heCI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5
IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNTEsICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICJw
YXJhbWV0ZXIiOiBbImYzMiIsICJmMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIz
b3AiOiAiU2VsZWN0KEVxdWFsKEAwLCBAMSksIEJpdEFuZChAMCwgQDEpLCBTZWxlY3QoTGVzc1Ro
YW4oQDAsIEAxKSwgQDEsIEAwKSkiIH0sCisgICAgICAgICJmMzIuYWJzIjogICAgICAgICAgICAg
eyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEzOSwgInJldHVybiI6IFsiZjMy
Il0sICAgICAgInBhcmFtZXRlciI6IFsiZjMyIl0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0
ZSI6IFtdLCAiYjNvcCI6ICJBYnMiICAgICAgICAgIH0sCisgICAgICAgICJmMzIubmVnIjogICAg
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE0MCwgInJldHVy
biI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiZjMyIl0sICAgICAgICAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJOZWciICAgICAgICAgIH0sCisgICAgICAgICJmMzIu
Y29weXNpZ24iOiAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE1
MiwgInJldHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiZjMyIiwgImYzMiJdLCAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJCaXR3aXNlQ2FzdChCaXRPcihCaXRB
bmQoQml0d2lzZUNhc3QoQDEpLCBpMzIoMHg4MDAwMDAwMCkpLCBCaXRBbmQoQml0d2lzZUNhc3Qo
QDApLCBpMzIoMHg3ZmZmZmZmZikpKSkiIH0sCisgICAgICAgICJmMzIuY2VpbCI6ICAgICAgICAg
ICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE0MSwgInJldHVybiI6IFsi
ZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiZjMyIl0sICAgICAgICAgICAgICAgICAgImltbWVk
aWF0ZSI6IFtdLCAiYjNvcCI6ICJDZWlsIiAgICAgICAgIH0sCisgICAgICAgICJmMzIuZmxvb3Ii
OiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE0MiwgInJl
dHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiZjMyIl0sICAgICAgICAgICAgICAg
ICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJGbG9vciIgICAgICAgIH0sCisgICAgICAgICJm
MzIudHJ1bmMiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6
IDE0MywgInJldHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiZjMyIl0sICAgICAg
ICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICJmMzIubmVhcmVzdCI6ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIs
ICJ2YWx1ZSI6IDE0NCwgInJldHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiZjMy
Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICJmMzIuc3FydCI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJp
dGhtZXRpYyIsICJ2YWx1ZSI6IDE0NSwgInJldHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRl
ciI6IFsiZjMyIl0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJT
cXJ0IiAgICAgICAgIH0sCisgICAgICAgICJmMzIuZXEiOiAgICAgICAgICAgICAgeyAiY2F0ZWdv
cnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA5MSwgInJldHVybiI6IFsiYm9vbCJdLCAgICAg
InBhcmFtZXRlciI6IFsiZjMyIiwgImYzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAi
YjNvcCI6ICJFcXVhbCIgICAgICAgIH0sCisgICAgICAgICJmMzIubmUiOiAgICAgICAgICAgICAg
eyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA5MiwgInJldHVybiI6IFsiYm9v
bCJdLCAgICAgInBhcmFtZXRlciI6IFsiZjMyIiwgImYzMiJdLCAgICAgICAgICAgImltbWVkaWF0
ZSI6IFtdLCAiYjNvcCI6ICJOb3RFcXVhbCIgICAgIH0sCisgICAgICAgICJmMzIubHQiOiAgICAg
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA5MywgInJldHVy
biI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiZjMyIiwgImYzMiJdLCAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJMZXNzVGhhbiIgICAgIH0sCisgICAgICAgICJmMzIu
bGUiOiAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA5
NSwgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiZjMyIiwgImYzMiJdLCAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJMZXNzRXF1YWwiICAgIH0sCisgICAg
ICAgICJmMzIuZ3QiOiAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2
YWx1ZSI6ICA5NCwgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiZjMyIiwg
ImYzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJHcmVhdGVyVGhhbiIg
IH0sCisgICAgICAgICJmMzIuZ2UiOiAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFy
aXNvbiIsICJ2YWx1ZSI6ICA5NiwgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6
IFsiZjMyIiwgImYzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJHcmVh
dGVyRXF1YWwiIH0sCisgICAgICAgICJmNjQuYWRkIjogICAgICAgICAgICAgeyAiY2F0ZWdvcnki
OiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE2MCwgInJldHVybiI6IFsiZjY0Il0sICAgICAgInBh
cmFtZXRlciI6IFsiZjY0IiwgImY2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNv
cCI6ICJBZGQiICAgICAgICAgIH0sCisgICAgICAgICJmNjQuc3ViIjogICAgICAgICAgICAgeyAi
Y2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE2MSwgInJldHVybiI6IFsiZjY0Il0s
ICAgICAgInBhcmFtZXRlciI6IFsiZjY0IiwgImY2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6
IFtdLCAiYjNvcCI6ICJTdWIiICAgICAgICAgIH0sCisgICAgICAgICJmNjQubXVsIjogICAgICAg
ICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE2MiwgInJldHVybiI6
IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiZjY0IiwgImY2NCJdLCAgICAgICAgICAgImlt
bWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJNdWwiICAgICAgICAgIH0sCisgICAgICAgICJmNjQuZGl2
IjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE2Mywg
InJldHVybiI6IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiZjY0IiwgImY2NCJdLCAgICAg
ICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJEaXYiICAgICAgICAgIH0sCisgICAgICAg
ICJmNjQubWluIjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1
ZSI6IDE2NCwgInJldHVybiI6IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiZjY0IiwgImY2
NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJTZWxlY3QoRXF1YWwoQDAs
IEAxKSwgQml0T3IoQDAsIEAxKSwgU2VsZWN0KExlc3NUaGFuKEAwLCBAMSksIEAwLCBAMSkpIiB9
LAorICAgICAgICAiZjY0Lm1heCI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0
aWMiLCAidmFsdWUiOiAxNjUsICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBb
ImY2NCIsICJmNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiU2VsZWN0
KEVxdWFsKEAwLCBAMSksIEJpdEFuZChAMCwgQDEpLCBTZWxlY3QoTGVzc1RoYW4oQDAsIEAxKSwg
QDEsIEAwKSkiIH0sCisgICAgICAgICJmNjQuYWJzIjogICAgICAgICAgICAgeyAiY2F0ZWdvcnki
OiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE1MywgInJldHVybiI6IFsiZjY0Il0sICAgICAgInBh
cmFtZXRlciI6IFsiZjY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNv
cCI6ICJBYnMiICAgICAgICAgIH0sCisgICAgICAgICJmNjQubmVnIjogICAgICAgICAgICAgeyAi
Y2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE1NCwgInJldHVybiI6IFsiZjY0Il0s
ICAgICAgInBhcmFtZXRlciI6IFsiZjY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6
IFtdLCAiYjNvcCI6ICJOZWciICAgICAgICAgIH0sCisgICAgICAgICJmNjQuY29weXNpZ24iOiAg
ICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE2NiwgInJldHVybiI6
IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiZjY0IiwgImY2NCJdLCAgICAgICAgICAgImlt
bWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJCaXR3aXNlQ2FzdChCaXRPcihCaXRBbmQoQml0d2lzZUNh
c3QoQDEpLCBpNjQoMHg4MDAwMDAwMDAwMDAwMDAwKSksIEJpdEFuZChCaXR3aXNlQ2FzdChAMCks
IGk2NCgweDdmZmZmZmZmZmZmZmZmZmYpKSkpIiB9LAorICAgICAgICAiZjY0LmNlaWwiOiAgICAg
ICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNTUsICJyZXR1cm4i
OiBbImY2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImY2NCJdLCAgICAgICAgICAgICAgICAgICJp
bW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQ2VpbCIgICAgICAgICB9LAorICAgICAgICAiZjY0LmZs
b29yIjogICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNTYs
ICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImY2NCJdLCAgICAgICAgICAg
ICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiRmxvb3IiICAgICAgICB9LAorICAgICAg
ICAiZjY0LnRydW5jIjogICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFs
dWUiOiAxNTcsICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImY2NCJdLCAg
ICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgICAgICAiZjY0Lm5lYXJlc3QiOiAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0
aWMiLCAidmFsdWUiOiAxNTgsICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBb
ImY2NCJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAiZjY0LnNxcnQiOiAgICAgICAgICAgIHsgImNhdGVnb3J5Ijog
ImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNTksICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJh
bWV0ZXIiOiBbImY2NCJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3Ai
OiAiU3FydCIgICAgICAgICB9LAorICAgICAgICAiZjY0LmVxIjogICAgICAgICAgICAgIHsgImNh
dGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgOTcsICJyZXR1cm4iOiBbImJvb2wiXSwg
ICAgICJwYXJhbWV0ZXIiOiBbImY2NCIsICJmNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBb
XSwgImIzb3AiOiAiRXF1YWwiICAgICAgICB9LAorICAgICAgICAiZjY0Lm5lIjogICAgICAgICAg
ICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgOTgsICJyZXR1cm4iOiBb
ImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImY2NCIsICJmNjQiXSwgICAgICAgICAgICJpbW1l
ZGlhdGUiOiBbXSwgImIzb3AiOiAiTm90RXF1YWwiICAgICB9LAorICAgICAgICAiZjY0Lmx0Ijog
ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgOTksICJy
ZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImY2NCIsICJmNjQiXSwgICAgICAg
ICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiTGVzc1RoYW4iICAgICB9LAorICAgICAgICAi
ZjY0LmxlIjogICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUi
OiAxMDEsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImY2NCIsICJmNjQi
XSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiTGVzc0VxdWFsIiAgICB9LAor
ICAgICAgICAiZjY0Lmd0IjogICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24i
LCAidmFsdWUiOiAxMDAsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImY2
NCIsICJmNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiR3JlYXRlclRo
YW4iICB9LAorICAgICAgICAiZjY0LmdlIjogICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNv
bXBhcmlzb24iLCAidmFsdWUiOiAxMDIsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0
ZXIiOiBbImY2NCIsICJmNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAi
R3JlYXRlckVxdWFsIiB9LAorICAgICAgICAiaTMyLnRydW5jX3MvZjMyIjogICAgIHsgImNhdGVn
b3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAxNjgsICJyZXR1cm4iOiBbImkzMiJdLCAgICAg
ICJwYXJhbWV0ZXIiOiBbImYzMiJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiaTMyLnRydW5jX3MvZjY0IjogICAg
IHsgImNhdGVnb3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAxNzAsICJyZXR1cm4iOiBbImkz
MiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImY2NCJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlh
dGUiOiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiaTMyLnRydW5jX3Uv
ZjMyIjogICAgIHsgImNhdGVnb3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAxNjksICJyZXR1
cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImYzMiJdLCAgICAgICAgICAgICAgICAg
ICJpbW1lZGlhdGUiOiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiaTMy
LnRydW5jX3UvZjY0IjogICAgIHsgImNhdGVnb3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAx
NzEsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImY2NCJdLCAgICAgICAg
ICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAiaTMyLndyYXAvaTY0IjogICAgICAgIHsgImNhdGVnb3J5IjogImNvbnZlcnNpb24iLCAi
dmFsdWUiOiAxNjcsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImk2NCJd
LCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiVHJ1bmMiICAgICAg
ICB9LAorICAgICAgICAiaTY0LnRydW5jX3MvZjMyIjogICAgIHsgImNhdGVnb3J5IjogImNvbnZl
cnNpb24iLCAidmFsdWUiOiAxNzQsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIi
OiBbImYzMiJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgICAgICAiaTY0LnRydW5jX3MvZjY0IjogICAgIHsgImNhdGVnb3J5
IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAxNzYsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJw
YXJhbWV0ZXIiOiBbImY2NCJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiaTY0LnRydW5jX3UvZjMyIjogICAgIHsg
ImNhdGVnb3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAxNzUsICJyZXR1cm4iOiBbImk2NCJd
LCAgICAgICJwYXJhbWV0ZXIiOiBbImYzMiJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUi
OiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiaTY0LnRydW5jX3UvZjY0
IjogICAgIHsgImNhdGVnb3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAxNzcsICJyZXR1cm4i
OiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImY2NCJdLCAgICAgICAgICAgICAgICAgICJp
bW1lZGlhdGUiOiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiaTY0LmV4
dGVuZF9zL2kzMiI6ICAgIHsgImNhdGVnb3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAxNzIs
ICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiJdLCAgICAgICAgICAg
ICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiU0V4dDMyIiAgICAgICB9LAorICAgICAg
ICAiaTY0LmV4dGVuZF91L2kzMiI6ICAgIHsgImNhdGVnb3J5IjogImNvbnZlcnNpb24iLCAidmFs
dWUiOiAxNzMsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiJdLCAg
ICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiWkV4dDMyIiAgICAgICB9
LAorICAgICAgICAiZjMyLmNvbnZlcnRfcy9pMzIiOiAgIHsgImNhdGVnb3J5IjogImNvbnZlcnNp
b24iLCAidmFsdWUiOiAxNzgsICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBb
ImkzMiJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiSVRvRiIg
ICAgICAgICB9LAorICAgICAgICAiZjMyLmNvbnZlcnRfdS9pMzIiOiAgIHsgImNhdGVnb3J5Ijog
ImNvbnZlcnNpb24iLCAidmFsdWUiOiAxNzksICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICJwYXJh
bWV0ZXIiOiBbImkzMiJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3Ai
OiAiSVRvRihaRXh0MzIoQDApKSIgfSwKKyAgICAgICAgImYzMi5jb252ZXJ0X3MvaTY0IjogICB7
ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVlIjogMTgwLCAicmV0dXJuIjogWyJmMzIi
XSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRl
IjogW10sICJiM29wIjogIklUb0YiICAgICAgICAgfSwKKyAgICAgICAgImYzMi5jb252ZXJ0X3Uv
aTY0IjogICB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVlIjogMTgxLCAicmV0dXJu
IjogWyJmMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiXSwgICAgICAgICAgICAgICAgICAi
aW1tZWRpYXRlIjogW10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImYzMi5k
ZW1vdGUvZjY0IjogICAgICB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVlIjogMTgy
LCAicmV0dXJuIjogWyJmMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJmNjQiXSwgICAgICAgICAg
ICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkRvdWJsZVRvRmxvYXQifSwKKyAgICAg
ICAgImYzMi5yZWludGVycHJldC9pMzIiOiB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZh
bHVlIjogMTkwLCAicmV0dXJuIjogWyJmMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJpMzIiXSwg
ICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkJpdHdpc2VDYXN0IiAg
fSwKKyAgICAgICAgImY2NC5jb252ZXJ0X3MvaTMyIjogICB7ICJjYXRlZ29yeSI6ICJjb252ZXJz
aW9uIiwgInZhbHVlIjogMTgzLCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1ldGVyIjog
WyJpMzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIklUb0Qi
ICAgICAgICAgfSwKKyAgICAgICAgImY2NC5jb252ZXJ0X3UvaTMyIjogICB7ICJjYXRlZ29yeSI6
ICJjb252ZXJzaW9uIiwgInZhbHVlIjogMTg0LCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAicGFy
YW1ldGVyIjogWyJpMzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29w
IjogIklUb0QoWkV4dDMyKEAwKSkiIH0sCisgICAgICAgICJmNjQuY29udmVydF9zL2k2NCI6ICAg
eyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6IDE4NSwgInJldHVybiI6IFsiZjY0
Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0
ZSI6IFtdLCAiYjNvcCI6ICJJVG9EIiAgICAgICAgIH0sCisgICAgICAgICJmNjQuY29udmVydF91
L2k2NCI6ICAgeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6IDE4NiwgInJldHVy
biI6IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0Il0sICAgICAgICAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICJmNjQu
cHJvbW90ZS9mMzIiOiAgICAgeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6IDE4
NywgInJldHVybiI6IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiZjMyIl0sICAgICAgICAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJGbG9hdFRvRG91YmxlIn0sCisgICAg
ICAgICJmNjQucmVpbnRlcnByZXQvaTY0IjogeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2
YWx1ZSI6IDE5MSwgInJldHVybiI6IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0Il0s
ICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJCaXR3aXNlQ2FzdCIg
IH0sCisgICAgICAgICJpMzIucmVpbnRlcnByZXQvZjMyIjogeyAiY2F0ZWdvcnkiOiAiY29udmVy
c2lvbiIsICJ2YWx1ZSI6IDE4OCwgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6
IFsiZjMyIl0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJCaXR3
aXNlQ2FzdCIgIH0sCisgICAgICAgICJpNjQucmVpbnRlcnByZXQvZjY0IjogeyAiY2F0ZWdvcnki
OiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6IDE4OSwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBh
cmFtZXRlciI6IFsiZjY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNv
cCI6ICJCaXR3aXNlQ2FzdCIgIH0KKyAgICB9Cit9CitgOworCisKK2NvbnN0IF9lbnZpcm9ubWVu
dCA9CisgICAgKCh0eXBlb2YgcHJvY2VzcyA9PT0gIm9iamVjdCIgJiYgdHlwZW9mIHJlcXVpcmUg
PT09ICJmdW5jdGlvbiIpID8gIm5vZGUiCisgICAgIDogKHR5cGVvZiB3aW5kb3cgPT09ICJvYmpl
Y3QiID8gIndlYiIKKyAgICAgICAgOiAodHlwZW9mIGltcG9ydFNjcmlwdHMgPT09ICJmdW5jdGlv
biIgPyAid29ya2VyIgorICAgICAgICAgICA6ICJzaGVsbCIpKSk7CisKK2xldCBfZ2xvYmFsID0g
KHR5cGVvZiBnbG9iYWwgIT09ICdvYmplY3QnIHx8ICFnbG9iYWwgfHwgZ2xvYmFsLk1hdGggIT09
IE1hdGggfHwgZ2xvYmFsLkFycmF5ICE9PSBBcnJheSkKKyAgICA/ICgodHlwZW9mIHNlbGYgIT09
ICd1bmRlZmluZWQnKSA/IHNlbGYKKyAgICAgICA6ICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZp
bmVkJykgPyB3aW5kb3cKKyAgICAgICA6ICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJykg
PyBnbG9iYWwKKyAgICAgICA6IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCkpCisgICAgOiBnbG9i
YWw7CisKK2NvbnN0IF9ldmFsID0geCA9PiBldmFsLmNhbGwobnVsbCwgeCk7CisKK2NvbnN0IF9y
ZWFkID0gZmlsZW5hbWUgPT4geworICAgIHN3aXRjaCAoX2Vudmlyb25tZW50KSB7CisgICAgY2Fz
ZSAibm9kZSI6ICAgcmV0dXJuIHJlYWQoZmlsZW5hbWUpOworICAgIGNhc2UgIndlYiI6ICAgIC8v
IGZhbGx0aHJvdWdoCisgICAgY2FzZSAid29ya2VyIjogbGV0IHhociA9IG5ldyBYTUxIdHRwUmVx
dWVzdCgpOyB4aHIub3BlbigiR0VUIiwgZmlsZW5hbWUsIC8qYXN5bmM9Ki9mYWxzZSk7IHJldHVy
biB4aHIucmVzcG9uc2VUZXh0OworICAgIGNhc2UgInNoZWxsIjogIHJldHVybiByZWFkKGZpbGVu
YW1lKTsKKyAgICB9Cit9CisKK2NvbnN0IF9sb2FkID0gZmlsZW5hbWUgPT4geworICAgIHN3aXRj
aCAoX2Vudmlyb25tZW50KSB7CisgICAgY2FzZSAibm9kZSI6ICAgLy8gZmFsbHRocm91Z2gKKyAg
ICBjYXNlICJ3ZWIiOiAgICAvLyBmYWxsdGhyb3VnaAorICAgIGNhc2UgInNoZWxsIjogIHJldHVy
biBfZXZhbChfcmVhZChmaWxlbmFtZSkpOworICAgIGNhc2UgIndvcmtlciI6IHJldHVybiBpbXBv
cnRTY3JpcHRzKGZpbGVuYW1lKTsKKyAgICB9Cit9CisKK2NvbnN0IF9qc29uID0gZmlsZW5hbWUg
PT4geworICAgIGFzc2VydC5lcShmaWxlbmFtZSwgIndhc20uanNvbiIpOworICAgIHJldHVybiBK
U09OLnBhcnNlKFdBU01fSlNPTik7CisKKyAgICBzd2l0Y2ggKF9lbnZpcm9ubWVudCkgeworICAg
IGNhc2UgIm5vZGUiOiAgIC8vIGZhbGx0aHJvdWdoCisgICAgY2FzZSAic2hlbGwiOiAgcmV0dXJu
IEpTT04ucGFyc2UoX3JlYWQoZmlsZW5hbWUpKTsKKyAgICBjYXNlICJ3ZWIiOiAgICAvLyBmYWxs
dGhyb3VnaAorICAgIGNhc2UgIndvcmtlciI6IGxldCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Qo
KTsgeGhyLm92ZXJyaWRlTWltZVR5cGUoImFwcGxpY2F0aW9uL2pzb24iKTsgeGhyLm9wZW4oIkdF
VCIsIGZpbGVuYW1lLCAvKmFzeW5jPSovZmFsc2UpOyByZXR1cm4geGhyLnJlc3BvbnNlOworICAg
IH0KK30KKworY29uc3QgX2R1bXAgPSAod2hhdCwgbmFtZSwgcGFkID0gJyAgICAnKSA9PiB7Cisg
ICAgY29uc3QgdmFsdWUgPSB2ID0+IHsKKyAgICAgICAgdHJ5IHsgcmV0dXJuIGAiJHt2fSJgOyB9
CisgICAgICAgIGNhdGNoIChlKSB7IHJldHVybiBgRXJyb3I6ICIke2UubWVzc2FnZX0iYDsgfQor
ICAgIH07CisgICAgbGV0IHMgPSBgJHtwYWR9JHtuYW1lfSAke3R5cGVvZiB3aGF0fTogJHt2YWx1
ZSh3aGF0KX1gOworICAgIGZvciAobGV0IHAgaW4gd2hhdCkgeworICAgICAgICBzICs9IGBcbiR7
cGFkfSR7cGFkfSR7cH06ICR7dmFsdWUod2hhdFtwXSl9ICR7dHlwZW9mIHZ9YDsKKyAgICAgICAg
cyArPSAnXG4nICsgX2R1bXAod2hhdFtwXSwgcCwgcGFkICsgcGFkKTsKKyAgICB9CisgICAgcmV0
dXJuIHM7Cit9OworCisvLyBVc2UgdW5kZXJzY29yZSBuYW1lcyB0byBhdm9pZCBjbGFzaGluZyB3
aXRoIGJ1aWx0aW4gbmFtZXMuCitjb25zdCB1dGlsaXRpZXMgPSB7CisgICAgZHVtcCA6IF9kdW1w
LAorICAgIGV2YWwgOiBfZXZhbCwKKyAgICByZWFkIDogX3JlYWQsCisgICAgbG9hZCA6IF9sb2Fk
LAorICAgIGpzb24gOiBfanNvbiwKKyAgICBnbG9iYWwgOiBfZ2xvYmFsCit9OworCisKK2NvbnN0
IF9tYXBWYWx1ZXMgPSBmcm9tID0+IHsKKyAgICBsZXQgdmFsdWVzID0ge307CisgICAgZm9yIChj
b25zdCBrZXkgaW4gZnJvbSkKKyAgICAgICAgdmFsdWVzW2tleV0gPSBmcm9tW2tleV0udmFsdWU7
CisgICAgcmV0dXJuIHZhbHVlczsKK307CisKKworY29uc3QgV0FTTSA9IHt9OworeworICAgIGNv
bnN0IGRlc2NyaXB0aW9uID0gV0FTTS5kZXNjcmlwdGlvbiA9IHV0aWxpdGllcy5qc29uKCJ3YXNt
Lmpzb24iKTsKKyAgICBjb25zdCB0eXBlID0gV0FTTS50eXBlID0gT2JqZWN0LmtleXMoZGVzY3Jp
cHRpb24udHlwZSk7CisgICAgY29uc3QgX3R5cGVTZXQgPSBuZXcgU2V0KHR5cGUpOworICAgIFdB
U00uaXNWYWxpZFR5cGUgPSB2ID0+IF90eXBlU2V0Lmhhcyh2KTsKKyAgICBXQVNNLnR5cGVWYWx1
ZSA9IF9tYXBWYWx1ZXMoZGVzY3JpcHRpb24udHlwZSk7CisgICAgY29uc3QgX3ZhbHVlVHlwZVNl
dCA9IG5ldyBTZXQoZGVzY3JpcHRpb24udmFsdWVfdHlwZSk7CisgICAgV0FTTS5pc1ZhbGlkVmFs
dWVUeXBlID0gdiA9PiBfdmFsdWVUeXBlU2V0Lmhhcyh2KTsKKyAgICBjb25zdCBfYmxvY2tUeXBl
U2V0ID0gbmV3IFNldChkZXNjcmlwdGlvbi5ibG9ja190eXBlKTsKKyAgICBXQVNNLmlzVmFsaWRC
bG9ja1R5cGUgPSB2ID0+IF9ibG9ja1R5cGVTZXQuaGFzKHYpOworICAgIFdBU00uZXh0ZXJuYWxL
aW5kVmFsdWUgPSBfbWFwVmFsdWVzKGRlc2NyaXB0aW9uLmV4dGVybmFsX2tpbmQpOworICAgIGNv
bnN0IHNlY3Rpb25zID0gV0FTTS5zZWN0aW9ucyA9IE9iamVjdC5rZXlzKGRlc2NyaXB0aW9uLnNl
Y3Rpb24pOworICAgIFdBU00uc2VjdGlvbkVuY29kaW5nVHlwZSA9IGRlc2NyaXB0aW9uLnNlY3Rp
b25bc2VjdGlvbnNbMF1dLnR5cGU7Cit9CisKKworLy8gTG93TGV2ZWxCaW5hcnkuanMKK2NvbnN0
IF9pbml0aWFsQWxsb2NhdGlvblNpemUgPSAxMDI0OworY29uc3QgX2dyb3dBbGxvY2F0aW9uU2l6
ZSA9IGFsbG9jYXRlZCA9PiBhbGxvY2F0ZWQgKiAyOworCisKK2NvbnN0IHZhcnVpbnQzMk1pbiA9
IDA7Citjb25zdCB2YXJpbnQ3TWluID0gLTBiMTAwMDAwMDsKK2NvbnN0IHZhcmludDdNYXggPSAw
YjExMTExMTsKK2NvbnN0IHZhcnVpbnQ3TWF4ID0gMGIxMTExMTExOworY29uc3QgdmFydWludDMy
TWF4ID0gKCgoKDEgPDwgMzEpID4+PiAwKSAtIDEpICogMikgKyAxOworY29uc3QgdmFyaW50MzJN
aW4gPSAtKCgxIDw8IDMxKSA+Pj4gMCk7Citjb25zdCB2YXJpbnQzMk1heCA9ICgoMSA8PCAzMSkg
LSAxKSA+Pj4gMDsKK2NvbnN0IHZhckJpdHNNYXggPSA1OworCitjb25zdCBfZ2V0dGVyUmFuZ2VD
aGVjayA9IChsbGIsIGF0LCBzaXplKSA9PiB7CisgICAgaWYgKDAgPiBhdCB8fCBhdCArIHNpemUg
PiBsbGIuX3VzZWQpCisgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGBbJHthdH0sICR7YXQg
KyBzaXplfSkgaXMgb3V0IG9mIGJ1ZmZlciByYW5nZSBbMCwgJHtsbGIuX3VzZWR9KWApOworfTsK
KworY29uc3QgX2hleGR1bXAgPSAoYnVmLCBzaXplKSA9PiB7CisgICAgbGV0IHMgPSAiIjsKKyAg
ICBjb25zdCB3aWR0aCA9IDE2OworICAgIGNvbnN0IGJhc2UgPSAxNjsKKyAgICBmb3IgKGxldCBy
b3cgPSAwOyByb3cgKiB3aWR0aCA8IHNpemU7ICsrcm93KSB7CisgICAgICAgIGNvbnN0IGFkZHJl
c3MgPSAocm93ICogd2lkdGgpLnRvU3RyaW5nKGJhc2UpOworICAgICAgICBzICs9ICIwIi5yZXBl
YXQoOCAtIGFkZHJlc3MubGVuZ3RoKSArIGFkZHJlc3M7CisgICAgICAgIGxldCBjaGFycyA9ICIi
OworICAgICAgICBmb3IgKGxldCBjb2wgPSAwOyBjb2wgIT09IHdpZHRoOyArK2NvbCkgeworICAg
ICAgICAgICAgY29uc3QgaWR4ID0gcm93ICogd2lkdGggKyBjb2w7CisgICAgICAgICAgICBpZiAo
aWR4IDwgc2l6ZSkgeworICAgICAgICAgICAgICAgIGNvbnN0IGJ5dGUgPSBidWZbaWR4XTsKKyAg
ICAgICAgICAgICAgICBjb25zdCBieXRlc3RyID0gYnl0ZS50b1N0cmluZyhiYXNlKTsKKyAgICAg
ICAgICAgICAgICBzICs9ICIgIiArIChieXRlc3RyLmxlbmd0aCA9PT0gMSA/ICIwIiArIGJ5dGVz
dHIgOiBieXRlc3RyKTsKKyAgICAgICAgICAgICAgICBjaGFycyArPSAweDIwIDw9IGJ5dGUgJiYg
Ynl0ZSA8IDB4N0YgPyBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGUpIDogIsK3IjsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcyArPSAiICAgIjsKKyAgICAgICAgICAgICAg
ICBjaGFycyArPSAiICI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcys9ICIg
IHwiICsgY2hhcnMgKyAifFxuIjsKKyAgICB9CisgICAgcmV0dXJuIHM7Cit9OworCitjbGFzcyBM
b3dMZXZlbEJpbmFyeSB7CisgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgIHRoaXMuX2J1ZiA9
IG5ldyBVaW50OEFycmF5KF9pbml0aWFsQWxsb2NhdGlvblNpemUpOworICAgICAgICB0aGlzLl91
c2VkID0gMDsKKyAgICB9CisKKyAgICBuZXdQYXRjaGFibGUodHlwZSkgeyByZXR1cm4gbmV3IFBh
dGNoYWJsZUxvd0xldmVsQmluYXJ5KHR5cGUsIHRoaXMpOyB9CisKKyAgICAvLyBVdGlsaXRpZXMu
CisgICAgZ2V0KCkgeyByZXR1cm4gdGhpcy5fYnVmOyB9CisgICAgdHJpbSgpIHsgdGhpcy5fYnVm
ID0gdGhpcy5fYnVmLnNsaWNlKDAsIHRoaXMuX3VzZWQpOyB9CisKKyAgICBoZXhkdW1wKCkgeyBy
ZXR1cm4gX2hleGR1bXAodGhpcy5fYnVmLCB0aGlzLl91c2VkKTsgfQorICAgIF9tYXliZUdyb3co
Ynl0ZXMpIHsKKyAgICAgICAgY29uc3QgYWxsb2NhdGVkID0gdGhpcy5fYnVmLmxlbmd0aDsKKyAg
ICAgICAgaWYgKGFsbG9jYXRlZCAtIHRoaXMuX3VzZWQgPCBieXRlcykgeworICAgICAgICAgICAg
bGV0IGJ1ZiA9IG5ldyBVaW50OEFycmF5KF9ncm93QWxsb2NhdGlvblNpemUoYWxsb2NhdGVkKSk7
CisgICAgICAgICAgICBidWYuc2V0KHRoaXMuX2J1Zik7CisgICAgICAgICAgICB0aGlzLl9idWYg
PSBidWY7CisgICAgICAgIH0KKyAgICB9CisgICAgX3B1c2g4KHYpIHsgdGhpcy5fYnVmW3RoaXMu
X3VzZWRdID0gdiAmIDB4RkY7IHRoaXMuX3VzZWQgKz0gMTsgfQorCisgICAgLy8gRGF0YSB0eXBl
cy4KKyAgICB1aW50OCh2KSB7CisgICAgICAgIGlmICgodiAmIDB4RkYpID4+PiAwICE9PSB2KQor
ICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEludmFsaWQgdWludDggJHt2fWApOwor
ICAgICAgICB0aGlzLl9tYXliZUdyb3coMSk7CisgICAgICAgIHRoaXMuX3B1c2g4KHYpOworICAg
IH0KKyAgICB1aW50MTYodikgeworICAgICAgICBpZiAoKHYgJiAweEZGRkYpID4+PiAwICE9PSB2
KQorICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEludmFsaWQgdWludDE2ICR7dn1g
KTsKKyAgICAgICAgdGhpcy5fbWF5YmVHcm93KDIpOworICAgICAgICB0aGlzLl9wdXNoOCh2KTsK
KyAgICAgICAgdGhpcy5fcHVzaDgodiA+Pj4gOCk7CisgICAgfQorICAgIHVpbnQyNCh2KSB7Cisg
ICAgICAgIGlmICgodiAmIDB4RkZGRkZGKSA+Pj4gMCAhPT0gdikKKyAgICAgICAgICAgIHRocm93
IG5ldyBSYW5nZUVycm9yKGBJbnZhbGlkIHVpbnQyNCAke3Z9YCk7CisgICAgICAgIHRoaXMuX21h
eWJlR3JvdygzKTsKKyAgICAgICAgdGhpcy5fcHVzaDgodik7CisgICAgICAgIHRoaXMuX3B1c2g4
KHYgPj4+IDgpOworICAgICAgICB0aGlzLl9wdXNoOCh2ID4+PiAxNik7CisgICAgfQorICAgIHVp
bnQzMih2KSB7CisgICAgICAgIGlmICgodiAmIDB4RkZGRkZGRkYpID4+PiAwICE9PSB2KQorICAg
ICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEludmFsaWQgdWludDMyICR7dn1gKTsKKyAg
ICAgICAgdGhpcy5fbWF5YmVHcm93KDQpOworICAgICAgICB0aGlzLl9wdXNoOCh2KTsKKyAgICAg
ICAgdGhpcy5fcHVzaDgodiA+Pj4gOCk7CisgICAgICAgIHRoaXMuX3B1c2g4KHYgPj4+IDE2KTsK
KyAgICAgICAgdGhpcy5fcHVzaDgodiA+Pj4gMjQpOworICAgIH0KKyAgICBmbG9hdCh2KSB7Cisg
ICAgICAgIGlmIChpc05hTih2KSkKKyAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCJ1
bmltcGxlbWVudGVkLCBOYU5zIik7CisgICAgICAgIC8vIFVuZm9ydHVuYXRlbHksIHdlIGNhbm5v
dCBqdXN0IHZpZXcgdGhlIGFjdHVhbCBidWZmZXIgYXMgYSBGbG9hdDMyQXJyYXkgc2luY2UgaXQg
bmVlZHMgdG8gYmUgNCBieXRlIGFsaWduZWQKKyAgICAgICAgbGV0IGJ1ZmZlciA9IG5ldyBBcnJh
eUJ1ZmZlcig0KTsKKyAgICAgICAgbGV0IGZsb2F0VmlldyA9IG5ldyBGbG9hdDMyQXJyYXkoYnVm
ZmVyKTsKKyAgICAgICAgbGV0IGludDhWaWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTsKKyAg
ICAgICAgZmxvYXRWaWV3WzBdID0gdjsKKyAgICAgICAgZm9yIChsZXQgYnl0ZSBvZiBpbnQ4Vmll
dykKKyAgICAgICAgICAgIHRoaXMuX3B1c2g4KGJ5dGUpOworICAgIH0KKworICAgIGRvdWJsZSh2
KSB7CisgICAgICAgIGlmIChpc05hTih2KSkKKyAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVy
cm9yKCJ1bmltcGxlbWVudGVkLCBOYU5zIik7CisgICAgICAgIC8vIFVuZm9ydHVuYXRlbHksIHdl
IGNhbm5vdCBqdXN0IHZpZXcgdGhlIGFjdHVhbCBidWZmZXIgYXMgYSBGbG9hdDY0QXJyYXkgc2lu
Y2UgaXQgbmVlZHMgdG8gYmUgNCBieXRlIGFsaWduZWQKKyAgICAgICAgbGV0IGJ1ZmZlciA9IG5l
dyBBcnJheUJ1ZmZlcig4KTsKKyAgICAgICAgbGV0IGZsb2F0VmlldyA9IG5ldyBGbG9hdDY0QXJy
YXkoYnVmZmVyKTsKKyAgICAgICAgbGV0IGludDhWaWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVy
KTsKKyAgICAgICAgZmxvYXRWaWV3WzBdID0gdjsKKyAgICAgICAgZm9yIChsZXQgYnl0ZSBvZiBp
bnQ4VmlldykKKyAgICAgICAgICAgIHRoaXMuX3B1c2g4KGJ5dGUpOworICAgIH0KKworICAgIHZh
cnVpbnQzMih2KSB7CisgICAgICAgIGFzc2VydC5pc051bWJlcih2KTsKKyAgICAgICAgaWYgKHYg
PCB2YXJ1aW50MzJNaW4gfHwgdmFydWludDMyTWF4IDwgdikKKyAgICAgICAgICAgIHRocm93IG5l
dyBSYW5nZUVycm9yKGBJbnZhbGlkIHZhcnVpbnQzMiAke3Z9IHJhbmdlIGlzIFske3ZhcnVpbnQz
Mk1pbn0sICR7dmFydWludDMyTWF4fV1gKTsKKyAgICAgICAgd2hpbGUgKHYgPj0gMHg4MCkgewor
ICAgICAgICAgICAgdGhpcy51aW50OCgweDgwIHwgKHYgJiAweDdGKSk7CisgICAgICAgICAgICB2
ID4+Pj0gNzsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnVpbnQ4KHYpOworICAgIH0KKyAgICB2
YXJpbnQzMih2KSB7CisgICAgICAgIGFzc2VydC5pc051bWJlcih2KTsKKyAgICAgICAgaWYgKHYg
PCB2YXJpbnQzMk1pbiB8fCB2YXJpbnQzMk1heCA8IHYpCisgICAgICAgICAgICB0aHJvdyBuZXcg
UmFuZ2VFcnJvcihgSW52YWxpZCB2YXJpbnQzMiAke3Z9IHJhbmdlIGlzIFske3ZhcmludDMyTWlu
fSwgJHt2YXJpbnQzMk1heH1dYCk7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGNvbnN0IGIg
PSB2ICYgMHg3RjsKKyAgICAgICAgICAgIHYgPj49IDc7CisgICAgICAgICAgICBpZiAoKHYgPT09
IDAgJiYgKChiICYgMHg0MCkgPT09IDApKSB8fCAodiA9PT0gLTEgJiYgKChiICYgMHg0MCkgPT09
IDB4NDApKSkgeworICAgICAgICAgICAgICAgIHRoaXMudWludDgoYiAmIDB4N0YpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy51aW50OCgw
eDgwIHwgYik7CisgICAgICAgIH0gd2hpbGUgKHRydWUpOworICAgIH0KKyAgICB2YXJ1aW50NjQo
dikgeworICAgICAgICBhc3NlcnQuaXNOdW1iZXIodik7CisgICAgICAgIGlmICh2IDwgdmFydWlu
dDMyTWluIHx8IHZhcnVpbnQzMk1heCA8IHYpCisgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VF
cnJvcihgdW5pbXBsZW1lbnRlZDogdmFydWludDY0IGxhcmdlciB0aGFuIDMyLWJpdGApOworICAg
ICAgICB0aGlzLnZhcnVpbnQzMih2KTsgLy8gRklYTUUgaW1wbGVtZW50IDY0LWJpdCB2YXJ7dX1p
bnQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMAorICAgIH0K
KyAgICB2YXJpbnQ2NCh2KSB7CisgICAgICAgIGFzc2VydC5pc051bWJlcih2KTsKKyAgICAgICAg
aWYgKHYgPCB2YXJpbnQzMk1pbiB8fCB2YXJpbnQzMk1heCA8IHYpCisgICAgICAgICAgICB0aHJv
dyBuZXcgUmFuZ2VFcnJvcihgdW5pbXBsZW1lbnRlZDogdmFyaW50NjQgbGFyZ2VyIHRoYW4gMzIt
Yml0YCk7CisgICAgICAgIHRoaXMudmFyaW50MzIodik7IC8vIEZJWE1FIGltcGxlbWVudCA2NC1i
aXQgdmFye3V9aW50IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0
MjAKKyAgICB9CisgICAgdmFydWludDEodikgeworICAgICAgICBpZiAodiAhPT0gMCAmJiB2ICE9
PSAxKQorICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEludmFsaWQgdmFydWludDEg
JHt2fSByYW5nZSBpcyBbMCwgMV1gKTsKKyAgICAgICAgdGhpcy52YXJ1aW50MzIodik7CisgICAg
fQorICAgIHZhcmludDcodikgeworICAgICAgICBpZiAodiA8IHZhcmludDdNaW4gfHwgdmFyaW50
N01heCA8IHYpCisgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihgSW52YWxpZCB2YXJp
bnQ3ICR7dn0gcmFuZ2UgaXMgWyR7dmFyaW50N01pbn0sICR7dmFyaW50N01heH1dYCk7CisgICAg
ICAgIHRoaXMudmFyaW50MzIodik7CisgICAgfQorICAgIHZhcnVpbnQ3KHYpIHsKKyAgICAgICAg
aWYgKHYgPCB2YXJ1aW50MzJNaW4gfHwgdmFydWludDdNYXggPCB2KQorICAgICAgICAgICAgdGhy
b3cgbmV3IFJhbmdlRXJyb3IoYEludmFsaWQgdmFydWludDcgJHt2fSByYW5nZSBpcyBbJHt2YXJ1
aW50MzJNaW59LCAke3ZhcnVpbnQ3TWF4fV1gKTsKKyAgICAgICAgdGhpcy52YXJ1aW50MzIodik7
CisgICAgfQorICAgIGJsb2NrX3R5cGUodikgeworICAgICAgICBpZiAoIVdBU00uaXNWYWxpZEJs
b2NrVHlwZSh2KSkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBibG9jayB0
eXBlICR7dn1gKTsKKyAgICAgICAgdGhpcy52YXJpbnQ3KFdBU00udHlwZVZhbHVlW3ZdKTsKKyAg
ICB9CisgICAgc3RyaW5nKHN0cikgeworICAgICAgICBsZXQgcGF0Y2ggPSB0aGlzLm5ld1BhdGNo
YWJsZSgidmFydWludDMyIik7CisgICAgICAgIGZvciAoY29uc3QgY2hhciBvZiBzdHIpIHsKKyAg
ICAgICAgICAgIC8vIEVuY29kZSBVVEYtOCAyMDAzIGNvZGUgcG9pbnRzLgorICAgICAgICAgICAg
Y29uc3QgY29kZSA9IGNoYXIuY29kZVBvaW50QXQoKTsKKyAgICAgICAgICAgIGlmIChjb2RlIDw9
IDB4MDA3RikgeworICAgICAgICAgICAgICAgIGNvbnN0IHV0ZjggPSBjb2RlOworICAgICAgICAg
ICAgICAgIHBhdGNoLnVpbnQ4KHV0ZjgpOworICAgICAgICAgICAgfSBlbHNlIGlmIChjb2RlIDw9
IDB4MDdGRikgeworICAgICAgICAgICAgICAgIGNvbnN0IHV0ZjggPSAweDgwQzAgfCAoKGNvZGUg
JiAweDdDMCkgPj4gNikgfCAoKGNvZGUgJiAweDNGKSA8PCA4KTsKKyAgICAgICAgICAgICAgICBw
YXRjaC51aW50MTYodXRmOCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvZGUgPD0gMHhGRkZG
KSB7CisgICAgICAgICAgICAgICAgY29uc3QgdXRmOCA9IDB4ODA4MEUwIHwgKChjb2RlICYgMHhG
MDAwKSA+PiAxMikgfCAoKGNvZGUgJiAweEZDMCkgPDwgMikgfCAoKGNvZGUgJiAweDNGKSA8PCAx
Nik7CisgICAgICAgICAgICAgICAgcGF0Y2gudWludDI0KHV0ZjgpOworICAgICAgICAgICAgfSBl
bHNlIGlmIChjb2RlIDw9IDB4MTBGRkZGKSB7CisgICAgICAgICAgICAgICAgY29uc3QgdXRmOCA9
ICgweDgwODA4MEYwIHwgKChjb2RlICYgMHgxQzAwMDApID4+IDE4KSB8ICgoY29kZSAmIDB4M0Yw
MDApID4+IDQpIHwgKChjb2RlICYgMHhGQzApIDw8IDEwKSB8ICgoY29kZSAmIDB4M0YpIDw8IDI0
KSkgPj4+IDA7CisgICAgICAgICAgICAgICAgcGF0Y2gudWludDMyKHV0ZjgpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkbHkg
bGFyZ2UgVVRGLTggY2hhcmFjdGVyIGNvZGUgcG9pbnQgJyR7Y2hhcn0nIDB4JHtjb2RlLnRvU3Ry
aW5nKDE2KX1gKTsKKyAgICAgICAgfQorICAgICAgICBwYXRjaC5hcHBseSgpOworICAgIH0KKwor
ICAgIC8vIEdldHRlcnMuCisgICAgZ2V0U2l6ZSgpIHsgcmV0dXJuIHRoaXMuX3VzZWQ7IH0KKyAg
ICBnZXRVaW50OChhdCkgeworICAgICAgICBfZ2V0dGVyUmFuZ2VDaGVjayh0aGlzLCBhdCwgMSk7
CisgICAgICAgIHJldHVybiB0aGlzLl9idWZbYXRdOworICAgIH0KKyAgICBnZXRVaW50MTYoYXQp
IHsKKyAgICAgICAgX2dldHRlclJhbmdlQ2hlY2sodGhpcywgYXQsIDIpOworICAgICAgICByZXR1
cm4gdGhpcy5fYnVmW2F0XSB8ICh0aGlzLl9idWZbYXQgKyAxXSA8PCA4KTsKKyAgICB9CisgICAg
Z2V0VWludDI0KGF0KSB7CisgICAgICAgIF9nZXR0ZXJSYW5nZUNoZWNrKHRoaXMsIGF0LCAzKTsK
KyAgICAgICAgcmV0dXJuIHRoaXMuX2J1ZlthdF0gfCAodGhpcy5fYnVmW2F0ICsgMV0gPDwgOCkg
fCAodGhpcy5fYnVmW2F0ICsgMl0gPDwgMTYpOworICAgIH0KKyAgICBnZXRVaW50MzIoYXQpIHsK
KyAgICAgICAgX2dldHRlclJhbmdlQ2hlY2sodGhpcywgYXQsIDQpOworICAgICAgICByZXR1cm4g
KHRoaXMuX2J1ZlthdF0gfCAodGhpcy5fYnVmW2F0ICsgMV0gPDwgOCkgfCAodGhpcy5fYnVmW2F0
ICsgMl0gPDwgMTYpIHwgKHRoaXMuX2J1ZlthdCArIDNdIDw8IDI0KSkgPj4+IDA7CisgICAgfQor
ICAgIGdldFZhcnVpbnQzMihhdCkgeworICAgICAgICBsZXQgdiA9IDA7CisgICAgICAgIGxldCBz
aGlmdCA9IDA7CisgICAgICAgIGxldCBieXRlID0gMDsKKyAgICAgICAgZG8geworICAgICAgICAg
ICAgYnl0ZSA9IHRoaXMuZ2V0VWludDgoYXQrKyk7CisgICAgICAgICAgICArK3JlYWQ7CisgICAg
ICAgICAgICB2ID0gKHYgfCAoKGJ5dGUgJiAweDdGKSA8PCBzaGlmdCkgPj4+IDApID4+PiAwOwor
ICAgICAgICAgICAgc2hpZnQgKz0gNzsKKyAgICAgICAgfSB3aGlsZSAoKGJ5dGUgJiAweDgwKSAh
PT0gMCk7CisgICAgICAgIGlmIChzaGlmdCAtIDcgPiAzMikgdGhyb3cgbmV3IFJhbmdlRXJyb3Io
YFNoaWZ0aW5nIHRvbyBtdWNoIGF0ICR7YXR9YCk7CisgICAgICAgIGlmICgoc2hpZnQgPT0gMzUp
ICYmICgoYnl0ZSAmIDB4RjApICE9IDApKSB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgbm9u
LXNpZ25pZmljYW50IHZhcnVpbnQzMiBiaXRzIGluIGxhc3QgYnl0ZSAweCR7Ynl0ZS50b1N0cmlu
ZygxNil9YCk7CisgICAgICAgIHJldHVybiB7IHZhbHVlOiB2LCBuZXh0OiBhdCB9OworICAgIH0K
KyAgICBnZXRWYXJpbnQzMihhdCkgeworICAgICAgICBsZXQgdiA9IDA7CisgICAgICAgIGxldCBz
aGlmdCA9IDA7CisgICAgICAgIGxldCBieXRlID0gMDsKKyAgICAgICAgZG8geworICAgICAgICAg
ICAgYnl0ZSA9IHRoaXMuZ2V0VWludDgoYXQrKyk7CisgICAgICAgICAgICB2ID0gKHYgfCAoKGJ5
dGUgJiAweDdGKSA8PCBzaGlmdCkgPj4+IDApID4+PiAwOworICAgICAgICAgICAgc2hpZnQgKz0g
NzsKKyAgICAgICAgfSB3aGlsZSAoKGJ5dGUgJiAweDgwKSAhPT0gMCk7CisgICAgICAgIGlmIChz
aGlmdCAtIDcgPiAzMikgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFNoaWZ0aW5nIHRvbyBtdWNoIGF0
ICR7YXR9YCk7CisgICAgICAgIGlmICgoc2hpZnQgPT0gMzUpICYmICgoKGJ5dGUgPDwgMjYpID4+
IDMwKSAhPSAoKGJ5dGUgPDwgMjUpID4+IDMxKSkpIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3Rl
ZCBub24tc2lnbmlmaWNhbnQgdmFyaW50MzIgYml0cyBpbiBsYXN0IGJ5dGUgMHgke2J5dGUudG9T
dHJpbmcoMTYpfWApOworICAgICAgICBpZiAoKGJ5dGUgJiAweDQwKSA9PT0gMHg0MCkgeworICAg
ICAgICAgICAgY29uc3Qgc2V4dCA9IHNoaWZ0IDwgMzIgPyAzMiAtIHNoaWZ0IDogMDsKKyAgICAg
ICAgICAgIHYgPSAodiA8PCBzZXh0KSA+PiBzZXh0OworICAgICAgICB9CisgICAgICAgIHJldHVy
biB7IHZhbHVlOiB2LCBuZXh0OiBhdCB9OworICAgIH0KKyAgICBnZXRWYXJ1aW50MShhdCkgewor
ICAgICAgICBjb25zdCByZXMgPSB0aGlzLmdldFZhcnVpbnQzMihhdCk7CisgICAgICAgIGlmIChy
ZXMudmFsdWUgIT09IDAgJiYgcmVzLnZhbHVlICE9PSAxKSB0aHJvdyBuZXcgRXJyb3IoYEV4cGVj
dGVkIGEgdmFydWludDEsIGdvdCB2YWx1ZSAke3Jlcy52YWx1ZX1gKTsKKyAgICAgICAgcmV0dXJu
IHJlczsKKyAgICB9CisgICAgZ2V0VmFydWludDcoYXQpIHsKKyAgICAgICAgY29uc3QgcmVzID0g
dGhpcy5nZXRWYXJ1aW50MzIoYXQpOworICAgICAgICBpZiAocmVzLnZhbHVlID4gdmFydWludDdN
YXgpIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYSB2YXJ1aW50NywgZ290IHZhbHVlICR7cmVz
LnZhbHVlfWApOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICBnZXRTdHJpbmcoYXQp
IHsKKyAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMuZ2V0VmFydWludDMyKGF0KTsKKyAgICAgICAg
Y29uc3QgbGFzdCA9IHNpemUubmV4dCArIHNpemUudmFsdWU7CisgICAgICAgIGxldCBpID0gc2l6
ZS5uZXh0OworICAgICAgICBsZXQgc3RyID0gIiI7CisgICAgICAgIHdoaWxlIChpIDwgbGFzdCkg
eworICAgICAgICAgICAgLy8gRGVjb2RlIFVURi04IDIwMDMgY29kZSBwb2ludHMuCisgICAgICAg
ICAgICBjb25zdCBwZWVrID0gdGhpcy5nZXRVaW50OChpKTsKKyAgICAgICAgICAgIGxldCBjb2Rl
OworICAgICAgICAgICAgaWYgKChwZWVrICYgMHg4MCkgPT09IDB4MCkgeworICAgICAgICAgICAg
ICAgIGNvbnN0IHV0ZjggPSB0aGlzLmdldFVpbnQ4KGkpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcSh1dGY4ICYgMHg4MCwgMHgwMCk7CisgICAgICAgICAgICAgICAgaSArPSAxOworICAgICAg
ICAgICAgICAgIGNvZGUgPSB1dGY4OworICAgICAgICAgICAgfSBlbHNlIGlmICgocGVlayAmIDB4
RTApID09PSAweEMwKSB7CisgICAgICAgICAgICAgICAgY29uc3QgdXRmOCA9IHRoaXMuZ2V0VWlu
dDE2KGkpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcSh1dGY4ICYgMHhDMEUwLCAweDgwQzAp
OworICAgICAgICAgICAgICAgIGkgKz0gMjsKKyAgICAgICAgICAgICAgICBjb2RlID0gKCh1dGY4
ICYgMHgxRikgPDwgNikgfCAoKHV0ZjggJiAweDNGMDApID4+IDgpOworICAgICAgICAgICAgfSBl
bHNlIGlmICgocGVlayAmIDB4RjApID09PSAweEUwKSB7CisgICAgICAgICAgICAgICAgY29uc3Qg
dXRmOCA9IHRoaXMuZ2V0VWludDI0KGkpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcSh1dGY4
ICYgMHhDMEMwRjAsIDB4ODA4MEUwKTsKKyAgICAgICAgICAgICAgICBpICs9IDM7CisgICAgICAg
ICAgICAgICAgY29kZSA9ICgodXRmOCAmIDB4RikgPDwgMTIpIHwgKCh1dGY4ICYgMHgzRjAwKSA+
PiAyKSB8ICgodXRmOCAmIDB4M0YwMDAwKSA+PiAxNik7CisgICAgICAgICAgICB9IGVsc2UgaWYg
KChwZWVrICYgMHhGOCkgPT09IDB4RjApIHsKKyAgICAgICAgICAgICAgICBjb25zdCB1dGY4ID0g
dGhpcy5nZXRVaW50MzIoaSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxKCh1dGY4ICYgMHhD
MEMwQzBGOCkgfCAwLCAweDgwODA4MEYwIHwgMCk7CisgICAgICAgICAgICAgICAgaSArPSA0Owor
ICAgICAgICAgICAgICAgIGNvZGUgPSAoKHV0ZjggJiAweDcpIDw8IDE4KSB8ICgodXRmOCAmIDB4
M0YwMCkgPDwgNCkgfCAoKHV0ZjggJiAweDNGMDAwMCkgPj4gMTApIHwgKCh1dGY4ICYgMHgzRjAw
MDAwMCkgPj4gMjQpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKGBVbmV4cGVjdGVkbHkgbGFyZ2UgVVRGLTggaW5pdGlhbCBieXRlIDB4JHtwZWVr
LnRvU3RyaW5nKDE2KX1gKTsKKyAgICAgICAgICAgIHN0ciArPSBTdHJpbmcuZnJvbUNvZGVQb2lu
dChjb2RlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSAhPT0gbGFzdCkKKyAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcihgU3RyaW5nIGRlY29kaW5nIHJlYWQgdXAgdG8gJHtpfSwgZXhwZWN0
ZWQgJHtsYXN0fSwgVVRGLTggZGVjb2Rpbmcgd2FzIHRvbyBncmVlZHlgKTsKKyAgICAgICAgcmV0
dXJuIHN0cjsKKyAgICB9Cit9OworCitjbGFzcyBQYXRjaGFibGVMb3dMZXZlbEJpbmFyeSBleHRl
bmRzIExvd0xldmVsQmluYXJ5IHsKKyAgICBjb25zdHJ1Y3Rvcih0eXBlLCBsb3dMZXZlbEJpbmFy
eSkgeworICAgICAgICBzdXBlcigpOworICAgICAgICB0aGlzLnR5cGUgPSB0eXBlOworICAgICAg
ICB0aGlzLnRhcmdldCA9IGxvd0xldmVsQmluYXJ5OworICAgICAgICB0aGlzLl9idWZmZXJlZF9i
eXRlcyA9IDA7CisgICAgfQorICAgIF9wdXNoOCh2KSB7ICsrdGhpcy5fYnVmZmVyZWRfYnl0ZXM7
IHN1cGVyLl9wdXNoOCh2KTsgfQorICAgIGFwcGx5KCkgeworICAgICAgICB0aGlzLnRhcmdldFt0
aGlzLnR5cGVdKHRoaXMuX2J1ZmZlcmVkX2J5dGVzKTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCB0aGlzLl9idWZmZXJlZF9ieXRlczsgKytpKQorICAgICAgICAgICAgdGhpcy50YXJnZXQu
dWludDgodGhpcy5fYnVmW2ldKTsKKyAgICB9Cit9OworCitMb3dMZXZlbEJpbmFyeS52YXJ1aW50
MzJNaW4gPSAwOworTG93TGV2ZWxCaW5hcnkudmFyaW50N01pbiA9IC0wYjEwMDAwMDA7CitMb3dM
ZXZlbEJpbmFyeS52YXJpbnQ3TWF4ID0gMGIxMTExMTE7CitMb3dMZXZlbEJpbmFyeS52YXJ1aW50
N01heCA9IDBiMTExMTExMTsKK0xvd0xldmVsQmluYXJ5LnZhcnVpbnQzMk1heCA9ICgoKCgxIDw8
IDMxKSA+Pj4gMCkgLSAxKSAqIDIpICsgMTsKK0xvd0xldmVsQmluYXJ5LnZhcmludDMyTWluID0g
LSgoMSA8PCAzMSkgPj4+IDApOworTG93TGV2ZWxCaW5hcnkudmFyaW50MzJNYXggPSAoKDEgPDwg
MzEpIC0gMSkgPj4+IDA7CitMb3dMZXZlbEJpbmFyeS52YXJCaXRzTWF4ID0gNTsKKworCisvLyBC
dWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzCitjb25zdCBCdWlsZFdlYkFzc2VtYmx5ID0ge307
Cit7CisgICAgY29uc3QgcHV0ID0gKGJpbiwgdHlwZSwgdmFsdWUpID0+IGJpblt0eXBlXSh2YWx1
ZSk7CisKKyAgICBjb25zdCBwdXRSZXNpemFibGVMaW1pdHMgPSAoYmluLCBpbml0aWFsLCBtYXhp
bXVtKSA9PiB7CisgICAgICAgIGFzc2VydC50cnV0aHkodHlwZW9mIGluaXRpYWwgPT09ICJudW1i
ZXIiLCAiV2UgZXhwZWN0ICdpbml0aWFsJyB0byBiZSBhbiBpbnRlZ2VyIik7CisgICAgICAgIGxl
dCBoYXNNYXhpbXVtID0gMDsKKyAgICAgICAgaWYgKHR5cGVvZiBtYXhpbXVtID09PSAibnVtYmVy
IikgeworICAgICAgICAgICAgaGFzTWF4aW11bSA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBhc3NlcnQudHJ1dGh5KHR5cGVvZiBtYXhpbXVtID09PSAidW5kZWZpbmVkIiwgIldl
IGV4cGVjdCAnbWF4aW11bScgdG8gYmUgYW4gaW50ZWdlciBpZiBpdCdzIGRlZmluZWQiKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MSIsIGhhc01heGltdW0pOworICAg
ICAgICBwdXQoYmluLCAidmFydWludDMyIiwgaW5pdGlhbCk7CisgICAgICAgIGlmIChoYXNNYXhp
bXVtKQorICAgICAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQzMiIsIG1heGltdW0pOworICAgIH07
CisKKyAgICBjb25zdCBwdXRUYWJsZSA9IChiaW4sIHtpbml0aWFsLCBtYXhpbXVtLCBlbGVtZW50
fSkgPT4geworICAgICAgICBhc3NlcnQudHJ1dGh5KFdBU00uaXNWYWxpZFR5cGUoZWxlbWVudCks
ICJXZSBleHBlY3QgJ2VsZW1lbnQnIHRvIGJlIGEgdmFsaWQgdHlwZS4gSXQgd2FzOiAiICsgZWxl
bWVudCk7CisgICAgICAgIHB1dChiaW4sICJ2YXJpbnQ3IiwgV0FTTS50eXBlVmFsdWVbZWxlbWVu
dF0pOworCisgICAgICAgIHB1dFJlc2l6YWJsZUxpbWl0cyhiaW4sIGluaXRpYWwsIG1heGltdW0p
OworICAgIH07CisKKyAgICBjb25zdCB2YWx1ZVR5cGUgPSBXQVNNLmRlc2NyaXB0aW9uLnR5cGUu
aTMyLnR5cGUKKworICAgIGNvbnN0IHB1dEdsb2JhbFR5cGUgPSAoYmluLCBnbG9iYWwpID0+IHsK
KyAgICAgICAgcHV0KGJpbiwgdmFsdWVUeXBlLCBXQVNNLnR5cGVWYWx1ZVtnbG9iYWwudHlwZV0p
OworICAgICAgICBwdXQoYmluLCAidmFydWludDEiLCBnbG9iYWwubXV0YWJpbGl0eSk7CisgICAg
fTsKKworICAgIGNvbnN0IHB1dE9wID0gKGJpbiwgb3ApID0+IHsKKyAgICAgICAgcHV0KGJpbiwg
InVpbnQ4Iiwgb3AudmFsdWUpOworICAgICAgICBpZiAob3AuYXJndW1lbnRzLmxlbmd0aCAhPT0g
MCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5pbXBsZW1lbnRlZDogYXJndW1lbnRz
YCk7IC8vIEZJWE1FIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3
MDYKKworICAgICAgICBzd2l0Y2ggKG9wLm5hbWUpIHsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3AuaW1tZWRpYXRlcy5sZW5ndGg7ICsraSkgewor
ICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBXQVNNLmRlc2NyaXB0aW9uLm9wY29kZVtvcC5u
YW1lXS5pbW1lZGlhdGVbaV0udHlwZQorICAgICAgICAgICAgICAgIGlmICghYmluW3R5cGVdKQor
ICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBVbmtub3duIHR5cGU6ICR7
dHlwZX0gaW4gb3A6ICR7b3AubmFtZX1gKTsKKyAgICAgICAgICAgICAgICBwdXQoYmluLCB0eXBl
LCBvcC5pbW1lZGlhdGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlICJpMzIuY29uc3QiOiB7CisgICAgICAgICAgICBhc3NlcnQuZXEob3AuaW1t
ZWRpYXRlcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgbGV0IGltbSA9IG9wLmltbWVkaWF0ZXNb
MF07CisgICAgICAgICAgICAvLyBEbyBhIHN0YXRpYyBjYXN0IHRvIG1ha2UgbGFyZ2UgaW50MzJz
IHNpZ25lZC4KKyAgICAgICAgICAgIGlmIChpbW0gPj0gMiAqKiAzMSkKKyAgICAgICAgICAgICAg
ICBpbW0gPSBpbW0gLSAoMiAqKiAzMik7CisgICAgICAgICAgICBwdXQoYmluLCAidmFyaW50MzIi
LCBpbW0pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSAiYnJf
dGFibGUiOgorICAgICAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQzMiIsIG9wLmltbWVkaWF0ZXMu
bGVuZ3RoIC0gMSk7CisgICAgICAgICAgICBmb3IgKGxldCBpbW0gb2Ygb3AuaW1tZWRpYXRlcykK
KyAgICAgICAgICAgICAgICBwdXQoYmluLCAidmFydWludDMyIiwgaW1tKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgfTsKKworICAgIGNvbnN0IHB1dEluaXRFeHByID0gKGJp
biwgZXhwcikgPT4geworICAgICAgICBwdXRPcChiaW4sIHsgdmFsdWU6IFdBU00uZGVzY3JpcHRp
b24ub3Bjb2RlW2V4cHIub3BdLnZhbHVlLCBuYW1lOiBleHByLm9wLCBpbW1lZGlhdGVzOiBbZXhw
ci5pbml0VmFsdWVdLCBhcmd1bWVudHM6IFtdIH0pOworICAgICAgICBwdXRPcChiaW4sIHsgdmFs
dWU6IFdBU00uZGVzY3JpcHRpb24ub3Bjb2RlLmVuZC52YWx1ZSwgbmFtZTogImVuZCIsIGltbWVk
aWF0ZXM6IFtdLCBhcmd1bWVudHM6IFtdIH0pOworICAgIH07CisKKyAgICBjb25zdCBlbWl0dGVy
cyA9IHsKKyAgICAgICAgVHlwZTogKHNlY3Rpb24sIGJpbikgPT4geworICAgICAgICAgICAgcHV0
KGJpbiwgInZhcnVpbnQzMiIsIHNlY3Rpb24uZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgZm9y
IChjb25zdCBlbnRyeSBvZiBzZWN0aW9uLmRhdGEpIHsKKyAgICAgICAgICAgICAgICBwdXQoYmlu
LCAidmFyaW50NyIsIFdBU00udHlwZVZhbHVlWyJmdW5jIl0pOworICAgICAgICAgICAgICAgIHB1
dChiaW4sICJ2YXJ1aW50MzIiLCBlbnRyeS5wYXJhbXMubGVuZ3RoKTsKKyAgICAgICAgICAgICAg
ICBmb3IgKGNvbnN0IHBhcmFtIG9mIGVudHJ5LnBhcmFtcykKKyAgICAgICAgICAgICAgICAgICAg
cHV0KGJpbiwgInZhcmludDciLCBXQVNNLnR5cGVWYWx1ZVtwYXJhbV0pOworICAgICAgICAgICAg
ICAgIGlmIChlbnRyeS5yZXQgPT09ICJ2b2lkIikKKyAgICAgICAgICAgICAgICAgICAgcHV0KGJp
biwgInZhcnVpbnQxIiwgMCk7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MSIsIDEpOworICAgICAgICAgICAgICAgICAgICBwdXQo
YmluLCAidmFyaW50NyIsIFdBU00udHlwZVZhbHVlW2VudHJ5LnJldF0pOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgSW1wb3J0OiAoc2VjdGlv
biwgYmluKSA9PiB7CisgICAgICAgICAgICBwdXQoYmluLCAidmFydWludDMyIiwgc2VjdGlvbi5k
YXRhLmxlbmd0aCk7CisgICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHNlY3Rpb24uZGF0
YSkgeworICAgICAgICAgICAgICAgIHB1dChiaW4sICJzdHJpbmciLCBlbnRyeS5tb2R1bGUpOwor
ICAgICAgICAgICAgICAgIHB1dChiaW4sICJzdHJpbmciLCBlbnRyeS5maWVsZCk7CisgICAgICAg
ICAgICAgICAgcHV0KGJpbiwgInVpbnQ4IiwgV0FTTS5leHRlcm5hbEtpbmRWYWx1ZVtlbnRyeS5r
aW5kXSk7CisgICAgICAgICAgICAgICAgc3dpdGNoIChlbnRyeS5raW5kKSB7CisgICAgICAgICAg
ICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKGBJbXBsZW1lbnRhdGlvbiBwcm9ibGVtOiB1
bmV4cGVjdGVkIGtpbmQgJHtlbnRyeS5raW5kfWApOworICAgICAgICAgICAgICAgIGNhc2UgIkZ1
bmN0aW9uIjogeworICAgICAgICAgICAgICAgICAgICBwdXQoYmluLCAidmFydWludDMyIiwgZW50
cnkudHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBjYXNlICJUYWJsZSI6IHsKKyAgICAgICAgICAgICAgICAgICAgcHV0
VGFibGUoYmluLCBlbnRyeS50YWJsZURlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhc2UgIk1lbW9yeSI6
IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHtpbml0aWFsLCBtYXhpbXVtfSA9IGVudHJ5Lm1l
bW9yeURlc2NyaXB0aW9uOworICAgICAgICAgICAgICAgICAgICBwdXRSZXNpemFibGVMaW1pdHMo
YmluLCBpbml0aWFsLCBtYXhpbXVtKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBjYXNlICJHbG9iYWwiOgorICAgICAgICAg
ICAgICAgICAgICBwdXRHbG9iYWxUeXBlKGJpbiwgZW50cnkuZ2xvYmFsRGVzY3JpcHRpb24pOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgIH0sCisKKyAgICAgICAgRnVuY3Rpb246IChzZWN0aW9uLCBiaW4pID0+IHsK
KyAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBzZWN0aW9uLmRhdGEubGVuZ3RoKTsK
KyAgICAgICAgICAgIGZvciAoY29uc3Qgc2lnbmF0dXJlIG9mIHNlY3Rpb24uZGF0YSkKKyAgICAg
ICAgICAgICAgICBwdXQoYmluLCAidmFydWludDMyIiwgc2lnbmF0dXJlKTsKKyAgICAgICAgfSwK
KworICAgICAgICBUYWJsZTogKHNlY3Rpb24sIGJpbikgPT4geworICAgICAgICAgICAgcHV0KGJp
biwgInZhcnVpbnQzMiIsIHNlY3Rpb24uZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgZm9yIChj
b25zdCB7dGFibGVEZXNjcmlwdGlvbn0gb2Ygc2VjdGlvbi5kYXRhKSB7CisgICAgICAgICAgICAg
ICAgcHV0VGFibGUoYmluLCB0YWJsZURlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSwKKworICAgICAgICBNZW1vcnk6IChzZWN0aW9uLCBiaW4pID0+IHsKKyAgICAgICAgICAg
IC8vIEZsYWdzLCBjdXJyZW50bHkgY2FuIG9ubHkgYmUgWzAsMV0KKyAgICAgICAgICAgIHB1dChi
aW4sICJ2YXJ1aW50MSIsIHNlY3Rpb24uZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgZm9yIChj
b25zdCBtZW1vcnkgb2Ygc2VjdGlvbi5kYXRhKSB7CisgICAgICAgICAgICAgICAgcHV0KGJpbiwg
InZhcnVpbnQzMiIsIG1lbW9yeS5tYXggPyAxIDogMCk7CisgICAgICAgICAgICAgICAgcHV0KGJp
biwgInZhcnVpbnQzMiIsIG1lbW9yeS5pbml0aWFsKTsKKyAgICAgICAgICAgICAgICBpZiAobWVt
b3J5Lm1heCkKKyAgICAgICAgICAgICAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQzMiIsIG1lbW9y
eS5tYXgpOworICAgICAgICAgICAgfQorICAgICAgICB9LAorCisgICAgICAgIEdsb2JhbDogKHNl
Y3Rpb24sIGJpbikgPT4geworICAgICAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQzMiIsIHNlY3Rp
b24uZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgZm9yIChjb25zdCBnbG9iYWwgb2Ygc2VjdGlv
bi5kYXRhKSB7CisgICAgICAgICAgICAgICAgcHV0R2xvYmFsVHlwZShiaW4sIGdsb2JhbCk7Cisg
ICAgICAgICAgICAgICAgcHV0SW5pdEV4cHIoYmluLCBnbG9iYWwpCisgICAgICAgICAgICB9Cisg
ICAgICAgIH0sCisKKyAgICAgICAgRXhwb3J0OiAoc2VjdGlvbiwgYmluKSA9PiB7CisgICAgICAg
ICAgICBwdXQoYmluLCAidmFydWludDMyIiwgc2VjdGlvbi5kYXRhLmxlbmd0aCk7CisgICAgICAg
ICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHNlY3Rpb24uZGF0YSkgeworICAgICAgICAgICAgICAg
IHB1dChiaW4sICJzdHJpbmciLCBlbnRyeS5maWVsZCk7CisgICAgICAgICAgICAgICAgcHV0KGJp
biwgInVpbnQ4IiwgV0FTTS5leHRlcm5hbEtpbmRWYWx1ZVtlbnRyeS5raW5kXSk7CisgICAgICAg
ICAgICAgICAgc3dpdGNoIChlbnRyeS5raW5kKSB7CisgICAgICAgICAgICAgICAgY2FzZSAiR2xv
YmFsIjoKKyAgICAgICAgICAgICAgICBjYXNlICJGdW5jdGlvbiI6CisgICAgICAgICAgICAgICAg
Y2FzZSAiTWVtb3J5IjoKKyAgICAgICAgICAgICAgICBjYXNlICJUYWJsZSI6CisgICAgICAgICAg
ICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBlbnRyeS5pbmRleCk7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJv
cihgSW1wbGVtZW50YXRpb24gcHJvYmxlbTogdW5leHBlY3RlZCBraW5kICR7ZW50cnkua2luZH1g
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAg
IFN0YXJ0OiAoc2VjdGlvbiwgYmluKSA9PiB7CisgICAgICAgICAgICBwdXQoYmluLCAidmFydWlu
dDMyIiwgc2VjdGlvbi5kYXRhWzBdKTsKKyAgICAgICAgfSwKKyAgICAgICAgRWxlbWVudDogKHNl
Y3Rpb24sIGJpbikgPT4geworICAgICAgICAgICAgY29uc3QgZGF0YSA9IHNlY3Rpb24uZGF0YTsK
KyAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBkYXRhLmxlbmd0aCk7CisgICAgICAg
ICAgICBmb3IgKGNvbnN0IHt0YWJsZUluZGV4LCBvZmZzZXQsIGZ1bmN0aW9uSW5kaWNlc30gb2Yg
ZGF0YSkgeworICAgICAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCB0YWJsZUluZGV4
KTsKKworICAgICAgICAgICAgICAgIGxldCBpbml0RXhwcjsKKyAgICAgICAgICAgICAgICBpZiAo
dHlwZW9mIG9mZnNldCA9PT0gIm51bWJlciIpCisgICAgICAgICAgICAgICAgICAgIGluaXRFeHBy
ID0ge29wOiAiaTMyLmNvbnN0IiwgaW5pdFZhbHVlOiBvZmZzZXR9OworICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgaW5pdEV4cHIgPSBvZmZzZXQ7CisgICAgICAgICAg
ICAgICAgcHV0SW5pdEV4cHIoYmluLCBpbml0RXhwcik7CisKKyAgICAgICAgICAgICAgICBwdXQo
YmluLCAidmFydWludDMyIiwgZnVuY3Rpb25JbmRpY2VzLmxlbmd0aCk7CisgICAgICAgICAgICAg
ICAgZm9yIChjb25zdCBmdW5jdGlvbkluZGV4IG9mIGZ1bmN0aW9uSW5kaWNlcykKKyAgICAgICAg
ICAgICAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQzMiIsIGZ1bmN0aW9uSW5kZXgpOworICAgICAg
ICAgICAgfQorICAgICAgICB9LAorCisgICAgICAgIENvZGU6IChzZWN0aW9uLCBiaW4pID0+IHsK
KyAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBzZWN0aW9uLmRhdGEubGVuZ3RoKTsK
KyAgICAgICAgICAgIGZvciAoY29uc3QgZnVuYyBvZiBzZWN0aW9uLmRhdGEpIHsKKyAgICAgICAg
ICAgICAgICBsZXQgZnVuY0JpbiA9IGJpbi5uZXdQYXRjaGFibGUoInZhcnVpbnQzMiIpOworICAg
ICAgICAgICAgICAgIGNvbnN0IGxvY2FsQ291bnQgPSBmdW5jLmxvY2Fscy5sZW5ndGggLSBmdW5j
LnBhcmFtZXRlckNvdW50OworICAgICAgICAgICAgICAgIHB1dChmdW5jQmluLCAidmFydWludDMy
IiwgbG9jYWxDb3VudCk7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IGZ1bmMucGFyYW1l
dGVyQ291bnQ7IGkgPCBmdW5jLmxvY2Fscy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAg
ICAgICBwdXQoZnVuY0JpbiwgInZhcnVpbnQzMiIsIDEpOworICAgICAgICAgICAgICAgICAgICBw
dXQoZnVuY0JpbiwgInZhcmludDciLCBXQVNNLnR5cGVWYWx1ZVtmdW5jLmxvY2Fsc1tpXV0pOwor
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgb3Agb2YgZnVu
Yy5jb2RlKQorICAgICAgICAgICAgICAgICAgICBwdXRPcChmdW5jQmluLCBvcCk7CisKKyAgICAg
ICAgICAgICAgICBmdW5jQmluLmFwcGx5KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisK
KyAgICAgICAgRGF0YTogKHNlY3Rpb24sIGJpbikgPT4geworICAgICAgICAgICAgcHV0KGJpbiwg
InZhcnVpbnQzMiIsIHNlY3Rpb24uZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgZm9yIChjb25z
dCBkYXR1bSBvZiBzZWN0aW9uLmRhdGEpIHsKKyAgICAgICAgICAgICAgICBwdXQoYmluLCAidmFy
dWludDMyIiwgZGF0dW0uaW5kZXgpOworICAgICAgICAgICAgICAgIC8vIEZJWE1FIGFsbG93IGNv
bXBsZXggaW5pdF9leHByIGhlcmUuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjU3MDAKKyAgICAgICAgICAgICAgICAvLyBGb3Igbm93IHdlIG9ubHkgaGFuZGxlIGkz
Mi5jb25zdCBhcyBvZmZzZXQuCisgICAgICAgICAgICAgICAgcHV0KGJpbiwgInVpbnQ4IiwgV0FT
TS5kZXNjcmlwdGlvbi5vcGNvZGVbImkzMi5jb25zdCJdLnZhbHVlKTsKKyAgICAgICAgICAgICAg
ICBwdXQoYmluLCBXQVNNLmRlc2NyaXB0aW9uLm9wY29kZVsiaTMyLmNvbnN0Il0uaW1tZWRpYXRl
WzBdLnR5cGUsIGRhdHVtLm9mZnNldCk7CisgICAgICAgICAgICAgICAgcHV0KGJpbiwgInVpbnQ4
IiwgV0FTTS5kZXNjcmlwdGlvbi5vcGNvZGVbImVuZCJdLnZhbHVlKTsKKyAgICAgICAgICAgICAg
ICBwdXQoYmluLCAidmFydWludDMyIiwgZGF0dW0uZGF0YS5sZW5ndGgpOworICAgICAgICAgICAg
ICAgIGZvciAoY29uc3QgYnl0ZSBvZiBkYXR1bS5kYXRhKQorICAgICAgICAgICAgICAgICAgICBw
dXQoYmluLCAidWludDgiLCBieXRlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICB9
OworCisgICAgQnVpbGRXZWJBc3NlbWJseS5CaW5hcnkgPSAocHJlYW1ibGUsIHNlY3Rpb25zKSA9
PiB7CisgICAgICAgIGxldCB3YXNtQmluID0gbmV3IExvd0xldmVsQmluYXJ5KCk7CisgICAgICAg
IGZvciAoY29uc3QgcCBvZiBXQVNNLmRlc2NyaXB0aW9uLnByZWFtYmxlKQorICAgICAgICAgICAg
cHV0KHdhc21CaW4sIHAudHlwZSwgcHJlYW1ibGVbcC5uYW1lXSk7CisgICAgICAgIGZvciAoY29u
c3Qgc2VjdGlvbiBvZiBzZWN0aW9ucykgeworICAgICAgICAgICAgcHV0KHdhc21CaW4sIFdBU00u
c2VjdGlvbkVuY29kaW5nVHlwZSwgc2VjdGlvbi5pZCk7CisgICAgICAgICAgICBsZXQgc2VjdGlv
bkJpbiA9IHdhc21CaW4ubmV3UGF0Y2hhYmxlKCJ2YXJ1aW50MzIiKTsKKyAgICAgICAgICAgIGNv
bnN0IGVtaXR0ZXIgPSBlbWl0dGVyc1tzZWN0aW9uLm5hbWVdOworICAgICAgICAgICAgaWYgKGVt
aXR0ZXIpCisgICAgICAgICAgICAgICAgZW1pdHRlcihzZWN0aW9uLCBzZWN0aW9uQmluKTsKKyAg
ICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFVua25vd24gc2VjdGlvbi4KKyAg
ICAgICAgICAgICAgICBwdXQoc2VjdGlvbkJpbiwgInN0cmluZyIsIHNlY3Rpb24ubmFtZSk7Cisg
ICAgICAgICAgICAgICAgZm9yIChjb25zdCBieXRlIG9mIHNlY3Rpb24uZGF0YSkKKyAgICAgICAg
ICAgICAgICAgICAgcHV0KHNlY3Rpb25CaW4sICJ1aW50OCIsIGJ5dGUpOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgc2VjdGlvbkJpbi5hcHBseSgpOworICAgICAgICB9CisgICAgICAgIHdh
c21CaW4udHJpbSgpOworICAgICAgICByZXR1cm4gd2FzbUJpbjsKKyAgICB9OworfQorCisKK2Nv
bnN0IExMQiA9IExvd0xldmVsQmluYXJ5OworCitjb25zdCBfdG9KYXZhU2NyaXB0TmFtZSA9IG5h
bWUgPT4geworICAgIGNvbnN0IGNhbWVsQ2FzZSA9IG5hbWUucmVwbGFjZSgvKFteYS16MC05XS4p
L2csIGMgPT4gY1sxXS50b1VwcGVyQ2FzZSgpKTsKKyAgICBjb25zdCBDYW1lbENhc2UgPSBjYW1l
bENhc2UuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYW1lbENhc2Uuc2xpY2UoMSk7CisgICAg
cmV0dXJuIENhbWVsQ2FzZTsKK307CisKK2NvbnN0IF9pc1ZhbGlkVmFsdWUgPSAodmFsdWUsIHR5
cGUpID0+IHsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAvLyBXZSBhbGxvdyBib3RoIHNpZ25l
ZCBhbmQgdW5zaWduZWQgbnVtYmVycy4KKyAgICBjYXNlICJpMzIiOiByZXR1cm4gTWF0aC5yb3Vu
ZCh2YWx1ZSkgPT09IHZhbHVlICYmIExMQi52YXJpbnQzMk1pbiA8PSB2YWx1ZSAmJiB2YWx1ZSA8
PSBMTEIudmFydWludDMyTWF4OworICAgIGNhc2UgImk2NCI6IHJldHVybiB0cnVlOyAvLyBGSVhN
RSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIwIDY0LWJpdCB2
YWx1ZXMKKyAgICBjYXNlICJmMzIiOiByZXR1cm4gdHlwZW9mKHZhbHVlKSA9PT0gIm51bWJlciIg
JiYgaXNGaW5pdGUodmFsdWUpOworICAgIGNhc2UgImY2NCI6IHJldHVybiB0eXBlb2YodmFsdWUp
ID09PSAibnVtYmVyIiAmJiBpc0Zpbml0ZSh2YWx1ZSk7CisgICAgZGVmYXVsdDogdGhyb3cgbmV3
IEVycm9yKGBJbXBsZW1lbnRhdGlvbiBwcm9ibGVtOiB1bmtub3duIHR5cGUgJHt0eXBlfWApOwor
ICAgIH0KK307Citjb25zdCBfdW5rbm93blNlY3Rpb25JZCA9IDA7CisKK2NvbnN0IF9ub3JtYWxp
emVGdW5jdGlvblNpZ25hdHVyZSA9IChwYXJhbXMsIHJldCkgPT4geworICAgIGFzc2VydC5pc0Fy
cmF5KHBhcmFtcyk7CisgICAgZm9yIChjb25zdCBwIG9mIHBhcmFtcykKKyAgICAgICAgYXNzZXJ0
LnRydXRoeShXQVNNLmlzVmFsaWRWYWx1ZVR5cGUocCksIGBUeXBlIHBhcmFtZXRlciAke3B9IG5l
ZWRzIGEgdmFsaWQgdmFsdWUgdHlwZWApOworICAgIGlmICh0eXBlb2YocmV0KSA9PT0gInVuZGVm
aW5lZCIpCisgICAgICAgIHJldCA9ICJ2b2lkIjsKKyAgICBhc3NlcnQuaXNOb3RBcnJheShyZXQs
IGBNdWx0aXBsZSByZXR1cm4gdmFsdWVzIG5vdCBzdXBwb3J0ZWQgYnkgV2ViQXNzZW1ibHkgeWV0
YCk7CisgICAgYXNzZXJ0LnRydXRoeShXQVNNLmlzVmFsaWRCbG9ja1R5cGUocmV0KSwgYFR5cGUg
cmV0dXJuICR7cmV0fSBtdXN0IGJlIHZhbGlkIGJsb2NrIHR5cGVgKTsKKyAgICByZXR1cm4gW3Bh
cmFtcywgcmV0XTsKK307CisKK2NvbnN0IF9lcnJvckhhbmRsaW5nUHJveHlGb3IgPSBidWlsZGVy
ID0+IGJ1aWxkZXJbIl9faXNQcm94eSJdID8gYnVpbGRlciA6IG5ldyBQcm94eShidWlsZGVyLCB7
CisgICAgZ2V0OiAodGFyZ2V0LCBwcm9wZXJ0eSwgcmVjZWl2ZXIpID0+IHsKKyAgICAgICAgaWYg
KHByb3BlcnR5ID09PSAiX19pc1Byb3h5IikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBpZiAodGFyZ2V0W3Byb3BlcnR5XSA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKGBXZWJBc3NlbWJseSBidWlsZGVyIHJlY2VpdmVkIHVua25vd24gcHJvcGVy
dHkgJyR7cHJvcGVydHl9J2ApOworICAgICAgICByZXR1cm4gdGFyZ2V0W3Byb3BlcnR5XTsKKyAg
ICB9Cit9KTsKKworY29uc3QgX21heWJlUmVnaXN0ZXJUeXBlID0gKGJ1aWxkZXIsIHR5cGUpID0+
IHsKKyAgICBjb25zdCB0eXBlU2VjdGlvbiA9IGJ1aWxkZXIuX2dldFNlY3Rpb24oIlR5cGUiKTsK
KyAgICBpZiAodHlwZW9mKHR5cGUpID09PSAibnVtYmVyIikgeworICAgICAgICAvLyBUeXBlIG51
bWJlcnMgYWxyZWFkeSByZWZlciB0byB0aGUgdHlwZSBzZWN0aW9uLCBubyBuZWVkIHRvIHJlZ2lz
dGVyIHRoZW0uCisgICAgICAgIGlmIChidWlsZGVyLl9jaGVja2VkKSB7CisgICAgICAgICAgICBh
c3NlcnQuaXNOb3RVbmRlZih0eXBlU2VjdGlvbiwgYENhbiBub3QgdXNlIHR5cGUgJHt0eXBlfSBp
ZiBhIHR5cGUgc2VjdGlvbiBpcyBub3QgcHJlc2VudGApOworICAgICAgICAgICAgYXNzZXJ0Lmlz
Tm90VW5kZWYodHlwZVNlY3Rpb24uZGF0YVt0eXBlXSwgYFR5cGUgJHt0eXBlfSBkb2VzIG5vdCBl
eGlzdCBpbiB0eXBlIHNlY3Rpb25gKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHlwZTsK
KyAgICB9CisgICAgYXNzZXJ0Lmhhc09iamVjdFByb3BlcnR5KHR5cGUsICJwYXJhbXMiLCBgRXhw
ZWN0ZWQgdHlwZSB0byBiZSBhIG51bWJlciBvciBvYmplY3Qgd2l0aCAncGFyYW1zJyBhbmQgb3B0
aW9uYWxseSAncmV0JyBmaWVsZHNgKTsKKyAgICBjb25zdCBbcGFyYW1zLCByZXRdID0gX25vcm1h
bGl6ZUZ1bmN0aW9uU2lnbmF0dXJlKHR5cGUucGFyYW1zLCB0eXBlLnJldCk7CisgICAgYXNzZXJ0
LmlzTm90VW5kZWYodHlwZVNlY3Rpb24sIGBDYW4gbm90IGFkZCB0eXBlIGlmIGEgdHlwZSBzZWN0
aW9uIGlzIG5vdCBwcmVzZW50YCk7CisgICAgLy8gVHJ5IHJldXNpbmcgYW4gZXF1aXZhbGVudCB0
eXBlIGZyb20gdGhlIHR5cGUgc2VjdGlvbi4KKyAgICB0eXBlczoKKyAgICBmb3IgKGxldCBpID0g
MDsgaSAhPT0gdHlwZVNlY3Rpb24uZGF0YS5sZW5ndGg7ICsraSkgeworICAgICAgICBjb25zdCB0
ID0gdHlwZVNlY3Rpb24uZGF0YVtpXTsKKyAgICAgICAgaWYgKHQucmV0ID09PSByZXQgJiYgcGFy
YW1zLmxlbmd0aCA9PT0gdC5wYXJhbXMubGVuZ3RoKSB7CisgICAgICAgICAgICBmb3IgKGxldCBq
ID0gMDsgaiAhPT0gdC5wYXJhbXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBpZiAo
cGFyYW1zW2pdICE9PSB0LnBhcmFtc1tqXSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUg
dHlwZXM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0eXBlID0gaTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICh0eXBlb2YodHlwZSkgIT09ICJudW1i
ZXIiKSB7CisgICAgICAgIC8vIENvdWxkbid0IHJldXNlIGEgcHJlLWV4aXN0aW5nIHR5cGUsIHJl
Z2lzdGVyIHRoaXMgdHlwZSBpbiB0aGUgdHlwZSBzZWN0aW9uLgorICAgICAgICB0eXBlU2VjdGlv
bi5kYXRhLnB1c2goeyBwYXJhbXM6IHBhcmFtcywgcmV0OiByZXQgfSk7CisgICAgICAgIHR5cGUg
PSB0eXBlU2VjdGlvbi5kYXRhLmxlbmd0aCAtIDE7CisgICAgfQorICAgIHJldHVybiB0eXBlOwor
fTsKKworY29uc3QgX2ltcG9ydEZ1bmN0aW9uQ29udGludWF0aW9uID0gKGJ1aWxkZXIsIHNlY3Rp
b24sIG5leHRCdWlsZGVyKSA9PiB7CisgICAgcmV0dXJuIChtb2R1bGUsIGZpZWxkLCB0eXBlKSA9
PiB7CisgICAgICAgIGFzc2VydC5pc1N0cmluZyhtb2R1bGUsIGBJbXBvcnQgZnVuY3Rpb24gbW9k
dWxlIHNob3VsZCBiZSBhIHN0cmluZywgZ290ICIke21vZHVsZX0iYCk7CisgICAgICAgIGFzc2Vy
dC5pc1N0cmluZyhmaWVsZCwgYEltcG9ydCBmdW5jdGlvbiBmaWVsZCBzaG91bGQgYmUgYSBzdHJp
bmcsIGdvdCAiJHtmaWVsZH0iYCk7CisgICAgICAgIGNvbnN0IHR5cGVTZWN0aW9uID0gYnVpbGRl
ci5fZ2V0U2VjdGlvbigiVHlwZSIpOworICAgICAgICB0eXBlID0gX21heWJlUmVnaXN0ZXJUeXBl
KGJ1aWxkZXIsIHR5cGUpOworICAgICAgICBzZWN0aW9uLmRhdGEucHVzaCh7IGZpZWxkOiBmaWVs
ZCwgdHlwZTogdHlwZSwga2luZDogIkZ1bmN0aW9uIiwgbW9kdWxlOiBtb2R1bGUgfSk7CisgICAg
ICAgIC8vIEltcG9ydHMgYWxzbyBjb3VudCBpbiB0aGUgZnVuY3Rpb24gaW5kZXggc3BhY2UuIE1h
cCB0aGVtIGFzIG9iamVjdHMgdG8gYXZvaWQgY2xhc2hpbmcgd2l0aCBDb2RlIGZ1bmN0aW9ucycg
bmFtZXMuCisgICAgICAgIGJ1aWxkZXIuX3JlZ2lzdGVyRnVuY3Rpb25Ub0luZGV4U3BhY2UoeyBt
b2R1bGU6IG1vZHVsZSwgZmllbGQ6IGZpZWxkIH0pOworICAgICAgICByZXR1cm4gX2Vycm9ySGFu
ZGxpbmdQcm94eUZvcihuZXh0QnVpbGRlcik7CisgICAgfTsKK307CisKK2NvbnN0IF9pbXBvcnRN
ZW1vcnlDb250aW51YXRpb24gPSAoYnVpbGRlciwgc2VjdGlvbiwgbmV4dEJ1aWxkZXIpID0+IHsK
KyAgICByZXR1cm4gKG1vZHVsZSwgZmllbGQsIHtpbml0aWFsLCBtYXhpbXVtfSkgPT4geworICAg
ICAgICBhc3NlcnQuaXNTdHJpbmcobW9kdWxlLCBgSW1wb3J0IE1lbW9yeSBtb2R1bGUgc2hvdWxk
IGJlIGEgc3RyaW5nLCBnb3QgIiR7bW9kdWxlfSJgKTsKKyAgICAgICAgYXNzZXJ0LmlzU3RyaW5n
KGZpZWxkLCBgSW1wb3J0IE1lbW9yeSBmaWVsZCBzaG91bGQgYmUgYSBzdHJpbmcsIGdvdCAiJHtm
aWVsZH0iYCk7CisgICAgICAgIHNlY3Rpb24uZGF0YS5wdXNoKHttb2R1bGUsIGZpZWxkLCBraW5k
OiAiTWVtb3J5IiwgbWVtb3J5RGVzY3JpcHRpb246IHtpbml0aWFsLCBtYXhpbXVtfX0pOworICAg
ICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihuZXh0QnVpbGRlcik7CisgICAgfTsK
K307CisKK2NvbnN0IF9pbXBvcnRUYWJsZUNvbnRpbnVhdGlvbiA9IChidWlsZGVyLCBzZWN0aW9u
LCBuZXh0QnVpbGRlcikgPT4geworICAgIHJldHVybiAobW9kdWxlLCBmaWVsZCwge2luaXRpYWws
IG1heGltdW0sIGVsZW1lbnR9KSA9PiB7CisgICAgICAgIGFzc2VydC5pc1N0cmluZyhtb2R1bGUs
IGBJbXBvcnQgVGFibGUgbW9kdWxlIHNob3VsZCBiZSBhIHN0cmluZywgZ290ICIke21vZHVsZX0i
YCk7CisgICAgICAgIGFzc2VydC5pc1N0cmluZyhmaWVsZCwgYEltcG9ydCBUYWJsZSBmaWVsZCBz
aG91bGQgYmUgYSBzdHJpbmcsIGdvdCAiJHtmaWVsZH0iYCk7CisgICAgICAgIHNlY3Rpb24uZGF0
YS5wdXNoKHttb2R1bGUsIGZpZWxkLCBraW5kOiAiVGFibGUiLCB0YWJsZURlc2NyaXB0aW9uOiB7
aW5pdGlhbCwgbWF4aW11bSwgZWxlbWVudH19KTsKKyAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRs
aW5nUHJveHlGb3IobmV4dEJ1aWxkZXIpOworICAgIH07Cit9OworCitjb25zdCBfZXhwb3J0RnVu
Y3Rpb25Db250aW51YXRpb24gPSAoYnVpbGRlciwgc2VjdGlvbiwgbmV4dEJ1aWxkZXIpID0+IHsK
KyAgICByZXR1cm4gKGZpZWxkLCBpbmRleCwgdHlwZSkgPT4geworICAgICAgICBhc3NlcnQuaXNT
dHJpbmcoZmllbGQsIGBFeHBvcnQgZnVuY3Rpb24gZmllbGQgc2hvdWxkIGJlIGEgc3RyaW5nLCBn
b3QgIiR7ZmllbGR9ImApOworICAgICAgICBjb25zdCB0eXBlU2VjdGlvbiA9IGJ1aWxkZXIuX2dl
dFNlY3Rpb24oIlR5cGUiKTsKKyAgICAgICAgaWYgKHR5cGVvZih0eXBlKSAhPT0gInVuZGVmaW5l
ZCIpIHsKKyAgICAgICAgICAgIC8vIEV4cG9ydHMgY2FuIGxlYXZlIHRoZSB0eXBlIHVuc3BlY2lm
aWVkLCBsZXR0aW5nIHRoZSBDb2RlIGJ1aWxkZXIgcGF0Y2ggdGhlbSB1cCBsYXRlci4KKyAgICAg
ICAgICAgIHR5cGUgPSBfbWF5YmVSZWdpc3RlclR5cGUoYnVpbGRlciwgdHlwZSk7CisgICAgICAg
IH0KKworICAgICAgICAvLyBXZSBjYW4ndCBjaGVjayBtdWNoIGFib3V0ICJpbmRleCIgaGVyZSBi
ZWNhdXNlIHRoZSBDb2RlIHNlY3Rpb24gc3VjY2VlZHMgdGhlIEV4cG9ydCBzZWN0aW9uLiBNb3Jl
IHdvcmsgaXMgZG9uZSBhdCBDb2RlKCkuRW5kKCkgdGltZS4KKyAgICAgICAgc3dpdGNoICh0eXBl
b2YoaW5kZXgpKSB7CisgICAgICAgIGNhc2UgInN0cmluZyI6IGJyZWFrOyAvLyBBc3N1bWUgaXQn
cyBhIGZ1bmN0aW9uIG5hbWUgd2hpY2ggd2lsbCBiZSByZXZlYWxlZCBpbiB0aGUgQ29kZSBzZWN0
aW9uLgorICAgICAgICBjYXNlICJudW1iZXIiOiBicmVhazsgLy8gQXNzdW1lIGl0J3MgYSBudW1i
ZXIgaW4gdGhlICJmdW5jdGlvbiBpbmRleCBzcGFjZSIuCisgICAgICAgIGNhc2UgIm9iamVjdCI6
CisgICAgICAgICAgICAvLyBSZS1leHBvcnRpbmcgYW4gaW1wb3J0LgorICAgICAgICAgICAgYXNz
ZXJ0Lmhhc09iamVjdFByb3BlcnR5KGluZGV4LCAibW9kdWxlIiwgYFJlLWV4cG9ydGluZyAiJHtm
aWVsZH0iIGZyb20gYW4gaW1wb3J0YCk7CisgICAgICAgICAgICBhc3NlcnQuaGFzT2JqZWN0UHJv
cGVydHkoaW5kZXgsICJmaWVsZCIsIGBSZS1leHBvcnRpbmcgIiR7ZmllbGR9IiBmcm9tIGFuIGlt
cG9ydGApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgInVuZGVmaW5lZCI6Cisg
ICAgICAgICAgICAvLyBBc3N1bWUgaXQncyB0aGUgc2FtZSBhcyB0aGUgZmllbGQgKGkuZS4gaXQn
cyBub3QgYmVpbmcgcmVuYW1lZCkuCisgICAgICAgICAgICBpbmRleCA9IGZpZWxkOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcihgRXhwb3J0IHNl
Y3Rpb24ncyBpbmRleCBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgbnVtYmVyLCBnb3QgJHtpbmRleH1g
KTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGNvcnJlc3BvbmRpbmdJbXBvcnQgPSBidWls
ZGVyLl9nZXRGdW5jdGlvbkZyb21JbmRleFNwYWNlKGluZGV4KTsKKyAgICAgICAgY29uc3QgaW1w
b3J0U2VjdGlvbiA9IGJ1aWxkZXIuX2dldFNlY3Rpb24oIkltcG9ydCIpOworICAgICAgICBpZiAo
dHlwZW9mKGluZGV4KSA9PT0gIm9iamVjdCIpIHsKKyAgICAgICAgICAgIC8vIFJlLWV4cG9ydGlu
ZyBhbiBpbXBvcnQgdXNpbmcgaXRzIG1vZHVsZStmaWVsZCBuYW1lLgorICAgICAgICAgICAgYXNz
ZXJ0LmlzTm90VW5kZWYoY29ycmVzcG9uZGluZ0ltcG9ydCwgYFJlLWV4cG9ydGluZyAiJHtmaWVs
ZH0iIGNvdWxkbid0IGZpbmQgaW1wb3J0IGZyb20gbW9kdWxlICIke2luZGV4Lm1vZHVsZX0iIGZp
ZWxkICIke2luZGV4LmZpZWxkfSJgKTsKKyAgICAgICAgICAgIGluZGV4ID0gY29ycmVzcG9uZGlu
Z0ltcG9ydDsKKyAgICAgICAgICAgIGlmICh0eXBlb2YodHlwZSkgPT09ICJ1bmRlZmluZWQiKQor
ICAgICAgICAgICAgICAgIHR5cGUgPSBpbXBvcnRTZWN0aW9uLmRhdGFbaW5kZXhdLnR5cGU7Cisg
ICAgICAgICAgICBpZiAoYnVpbGRlci5fY2hlY2tlZCkKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXEodHlwZSwgaW1wb3J0U2VjdGlvbi5kYXRhW2luZGV4XS50eXBlLCBgUmUtZXhwb3J0aW5nIGlt
cG9ydCAiJHtpbXBvcnRTZWN0aW9uLmRhdGFbaW5kZXhdLmZpZWxkfSIgYXMgIiR7ZmllbGR9IiBo
YXMgbWlzbWF0Y2hpbmcgdHlwZWApOworICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZihjb3JyZXNw
b25kaW5nSW1wb3J0KSAhPT0gInVuZGVmaW5lZCIpIHsKKyAgICAgICAgICAgIC8vIFJlLWV4cG9y
dGluZyBhbiBpbXBvcnQgdXNpbmcgaXRzIGluZGV4LgorICAgICAgICAgICAgbGV0IGV4cG9ydGVk
SW1wb3J0OworICAgICAgICAgICAgZm9yIChjb25zdCBpIG9mIGltcG9ydFNlY3Rpb24uZGF0YSkg
eworICAgICAgICAgICAgICAgIGlmIChpLm1vZHVsZSA9PT0gY29ycmVzcG9uZGluZ0ltcG9ydC5t
b2R1bGUgJiYgaS5maWVsZCA9PT0gY29ycmVzcG9uZGluZ0ltcG9ydC5maWVsZCkgeworICAgICAg
ICAgICAgICAgICAgICBleHBvcnRlZEltcG9ydCA9IGk7CisgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0
eXBlb2YodHlwZSkgPT09ICJ1bmRlZmluZWQiKQorICAgICAgICAgICAgICAgIHR5cGUgPSBleHBv
cnRlZEltcG9ydC50eXBlOworICAgICAgICAgICAgaWYgKGJ1aWxkZXIuX2NoZWNrZWQpCisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxKHR5cGUsIGV4cG9ydGVkSW1wb3J0LnR5cGUsIGBSZS1leHBv
cnRpbmcgaW1wb3J0ICIke2V4cG9ydGVkSW1wb3J0LmZpZWxkfSIgYXMgIiR7ZmllbGR9IiBoYXMg
bWlzbWF0Y2hpbmcgdHlwZWApOworICAgICAgICB9CisgICAgICAgIHNlY3Rpb24uZGF0YS5wdXNo
KHsgZmllbGQ6IGZpZWxkLCB0eXBlOiB0eXBlLCBraW5kOiAiRnVuY3Rpb24iLCBpbmRleDogaW5k
ZXggfSk7CisgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKG5leHRCdWlsZGVy
KTsKKyAgICB9OworfTsKKworY29uc3QgX25vcm1hbGl6ZU11dGFiaWxpdHkgPSAobXV0YWJpbGl0
eSkgPT4geworICAgIGlmIChtdXRhYmlsaXR5ID09PSAibXV0YWJsZSIpCisgICAgICAgIHJldHVy
biAxOworICAgIGVsc2UgaWYgKG11dGFiaWxpdHkgPT09ICJpbW11dGFibGUiKQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICBlbHNlCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgbXV0YWJpbGl0eSBz
aG91bGQgYmUgZWl0aGVyICJtdXRhYmxlIiBvciAiaW1tdXRhYmxlIiwgYnV0IGdvdCAke211dGFi
aWxpdHl9YCk7Cit9OworCitjb25zdCBfZXhwb3J0R2xvYmFsQ29udGludWF0aW9uID0gKGJ1aWxk
ZXIsIHNlY3Rpb24sIG5leHRCdWlsZGVyKSA9PiB7CisgICAgcmV0dXJuIChmaWVsZCwgaW5kZXgp
ID0+IHsKKyAgICAgICAgYXNzZXJ0LmlzTnVtYmVyKGluZGV4LCBgR2xvYmFsIGV4cG9ydHMgb25s
eSBzdXBwb3J0IG51bWJlciBpbmRpY2VzIHJpZ2h0IG5vd2ApOworICAgICAgICBzZWN0aW9uLmRh
dGEucHVzaCh7IGZpZWxkLCBraW5kOiAiR2xvYmFsIiwgaW5kZXggfSk7CisgICAgICAgIHJldHVy
biBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKG5leHRCdWlsZGVyKTsKKyAgICB9Cit9OworCitjb25z
dCBfZXhwb3J0TWVtb3J5Q29udGludWF0aW9uID0gKGJ1aWxkZXIsIHNlY3Rpb24sIG5leHRCdWls
ZGVyKSA9PiB7CisgICAgcmV0dXJuIChmaWVsZCwgaW5kZXgpID0+IHsKKyAgICAgICAgYXNzZXJ0
LmlzTnVtYmVyKGluZGV4LCBgTWVtb3J5IGV4cG9ydHMgb25seSBzdXBwb3J0IG51bWJlciBpbmRp
Y2VzYCk7CisgICAgICAgIHNlY3Rpb24uZGF0YS5wdXNoKHtmaWVsZCwga2luZDogIk1lbW9yeSIs
IGluZGV4fSk7CisgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKG5leHRCdWls
ZGVyKTsKKyAgICB9Cit9OworCitjb25zdCBfZXhwb3J0VGFibGVDb250aW51YXRpb24gPSAoYnVp
bGRlciwgc2VjdGlvbiwgbmV4dEJ1aWxkZXIpID0+IHsKKyAgICByZXR1cm4gKGZpZWxkLCBpbmRl
eCkgPT4geworICAgICAgICBhc3NlcnQuaXNOdW1iZXIoaW5kZXgsIGBUYWJsZSBleHBvcnRzIG9u
bHkgc3VwcG9ydCBudW1iZXIgaW5kaWNlc2ApOworICAgICAgICBzZWN0aW9uLmRhdGEucHVzaCh7
ZmllbGQsIGtpbmQ6ICJUYWJsZSIsIGluZGV4fSk7CisgICAgICAgIHJldHVybiBfZXJyb3JIYW5k
bGluZ1Byb3h5Rm9yKG5leHRCdWlsZGVyKTsKKyAgICB9Cit9OworCitjb25zdCBfaW1wb3J0R2xv
YmFsQ29udGludWF0aW9uID0gKGJ1aWxkZXIsIHNlY3Rpb24sIG5leHRCdWlsZGVyKSA9PiB7Cisg
ICAgcmV0dXJuICgpID0+IHsKKyAgICAgICAgY29uc3QgZ2xvYmFsQnVpbGRlciA9IHsKKyAgICAg
ICAgICAgIEVuZDogKCkgPT4gbmV4dEJ1aWxkZXIKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChs
ZXQgb3Agb2YgV0FTTS5kZXNjcmlwdGlvbi52YWx1ZV90eXBlKSB7CisgICAgICAgICAgICBnbG9i
YWxCdWlsZGVyW190b0phdmFTY3JpcHROYW1lKG9wKV0gPSAobW9kdWxlLCBmaWVsZCwgbXV0YWJp
bGl0eSkgPT4geworICAgICAgICAgICAgICAgIGFzc2VydC5pc1N0cmluZyhtb2R1bGUsIGBJbXBv
cnQgZ2xvYmFsIG1vZHVsZSBzaG91bGQgYmUgYSBzdHJpbmcsIGdvdCAiJHttb2R1bGV9ImApOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5pc1N0cmluZyhmaWVsZCwgYEltcG9ydCBnbG9iYWwgZmll
bGQgc2hvdWxkIGJlIGEgc3RyaW5nLCBnb3QgIiR7ZmllbGR9ImApOworICAgICAgICAgICAgICAg
IGFzc2VydC5pc1N0cmluZyhtdXRhYmlsaXR5LCBgSW1wb3J0IGdsb2JhbCBtdXRhYmlsaXR5IHNo
b3VsZCBiZSBhIHN0cmluZywgZ290ICIke211dGFiaWxpdHl9ImApOworICAgICAgICAgICAgICAg
IHNlY3Rpb24uZGF0YS5wdXNoKHsgZ2xvYmFsRGVzY3JpcHRpb246IHsgdHlwZTogb3AsIG11dGFi
aWxpdHk6IF9ub3JtYWxpemVNdXRhYmlsaXR5KG11dGFiaWxpdHkpIH0sIG1vZHVsZSwgZmllbGQs
IGtpbmQ6ICJHbG9iYWwiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGlu
Z1Byb3h5Rm9yKGdsb2JhbEJ1aWxkZXIpOworICAgICAgICAgICAgfTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihnbG9iYWxCdWlsZGVyKTsKKyAgICB9
OworfTsKKworY29uc3QgX2NoZWNrU3RhY2tBcmdzID0gKG9wLCBwYXJhbSkgPT4geworICAgIGZv
ciAobGV0IGV4cGVjdCBvZiBwYXJhbSkgeworICAgICAgICBpZiAoV0FTTS5pc1ZhbGlkVHlwZShl
eHBlY3QpKSB7CisgICAgICAgICAgICAvLyBGSVhNRSBpbXBsZW1lbnQgc3RhY2sgY2hlY2tzIGZv
ciBhcmd1bWVudHMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0
MjEKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEhhbmRsZSBvdXIgb3duIG1ldGEt
dHlwZXMuCisgICAgICAgICAgICBzd2l0Y2ggKGV4cGVjdCkgeworICAgICAgICAgICAgY2FzZSAi
YWRkciI6IGJyZWFrOyAvLyBGSVhNRSBpbXBsZW1lbnQgYWRkci4gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICAgICAgY2FzZSAiYW55IjogYnJl
YWs7IC8vIEZJWE1FIGltcGxlbWVudCBhbnkuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgICAgIGNhc2UgImJvb2wiOiBicmVhazsgLy8gRklY
TUUgaW1wbGVtZW50IGJvb2wuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjM0MjEKKyAgICAgICAgICAgIGNhc2UgImNhbGwiOiBicmVhazsgLy8gRklYTUUgaW1wbGVt
ZW50IGNhbGwgc3RhY2sgYXJndW1lbnQgY2hlY2tzIGJhc2VkIG9uIGZ1bmN0aW9uIHNpZ25hdHVy
ZS4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAg
ICAgICAgY2FzZSAiZ2xvYmFsIjogYnJlYWs7IC8vIEZJWE1FIGltcGxlbWVudCBnbG9iYWwuIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgICAg
IGNhc2UgImxvY2FsIjogYnJlYWs7IC8vIEZJWE1FIGltcGxlbWVudCBsb2NhbC4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICAgICAgY2FzZSAi
cHJldiI6IGJyZWFrOyAvLyBGSVhNRSBpbXBsZW1lbnQgcHJldiwgY2hlY2tpbmcgZm9yIHdoZXRl
dmVyIHRoZSBwcmV2aW91cyB2YWx1ZSB3YXMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgICAgIGNhc2UgInNpemUiOiBicmVhazsgLy8gRklY
TUUgaW1wbGVtZW50IHNpemUuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjM0MjEKKyAgICAgICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcihgSW1wbGVtZW50
YXRpb24gcHJvYmxlbTogdW5oYW5kbGVkIG1ldGEtdHlwZSAiJHtleHBlY3R9IiBvbiAiJHtvcH0i
YCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK2NvbnN0IF9jaGVja1N0
YWNrUmV0dXJuID0gKG9wLCByZXQpID0+IHsKKyAgICBmb3IgKGxldCBleHBlY3Qgb2YgcmV0KSB7
CisgICAgICAgIGlmIChXQVNNLmlzVmFsaWRUeXBlKGV4cGVjdCkpIHsKKyAgICAgICAgICAgIC8v
IEZJWE1FIGltcGxlbWVudCBzdGFjayBjaGVja3MgZm9yIHJldHVybi4gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgLy8gSGFuZGxlIG91ciBvd24gbWV0YS10eXBlcy4KKyAgICAgICAgICAgIHN3aXRjaCAo
ZXhwZWN0KSB7CisgICAgICAgICAgICBjYXNlICJhbnkiOiBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgImJvb2wiOiBicmVhazsgLy8gRklYTUUgaW1wbGVtZW50IGJvb2wuIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgICAgIGNhc2UgImNhbGwi
OiBicmVhazsgLy8gRklYTUUgaW1wbGVtZW50IGNhbGwgc3RhY2sgcmV0dXJuIGNoZWNrIGJhc2Vk
IG9uIGZ1bmN0aW9uIHNpZ25hdHVyZS4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MzQyMQorICAgICAgICAgICAgY2FzZSAiY29udHJvbCI6IGJyZWFrOyAvLyBGSVhN
RSBpbXBsZW1lbnQgY29udHJvbC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MzQyMQorICAgICAgICAgICAgY2FzZSAiZ2xvYmFsIjogYnJlYWs7IC8vIEZJWE1FIGlt
cGxlbWVudCBnbG9iYWwuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjM0MjEKKyAgICAgICAgICAgIGNhc2UgImxvY2FsIjogYnJlYWs7IC8vIEZJWE1FIGltcGxlbWVu
dCBsb2NhbC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQor
ICAgICAgICAgICAgY2FzZSAicHJldiI6IGJyZWFrOyAvLyBGSVhNRSBpbXBsZW1lbnQgcHJldiwg
Y2hlY2tpbmcgZm9yIHdoZXRldmVyIHRoZSBwYXJhbWV0ZXIgdHlwZSB3YXMuIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgICAgIGNhc2UgInNp
emUiOiBicmVhazsgLy8gRklYTUUgaW1wbGVtZW50IHNpemUuIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgICAgIGRlZmF1bHQ6IHRocm93IG5l
dyBFcnJvcihgSW1wbGVtZW50YXRpb24gcHJvYmxlbTogdW5oYW5kbGVkIG1ldGEtdHlwZSAiJHtl
eHBlY3R9IiBvbiAiJHtvcH0iYCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9
OworCitjb25zdCBfY2hlY2tJbW1zID0gKG9wLCBpbW1zLCBleHBlY3RlZEltbXMsIHJldCkgPT4g
eworICAgIGNvbnN0IG1pbkV4cGVjdGVkSW1tcyA9IGV4cGVjdGVkSW1tcy5maWx0ZXIoaSA9PiBp
LnR5cGUuc2xpY2UoLTEpICE9PSAnKicpLmxlbmd0aDsKKyAgICBpZiAobWluRXhwZWN0ZWRJbW1z
ICE9PSBleHBlY3RlZEltbXMubGVuZ3RoKQorICAgICAgICBhc3NlcnQuZ2UoaW1tcy5sZW5ndGgs
IG1pbkV4cGVjdGVkSW1tcywgYCIke29wfSIgZXhwZWN0cyBhdCBsZWFzdCAke21pbkV4cGVjdGVk
SW1tc30gaW1tZWRpYXRlJHttaW5FeHBlY3RlZEltbXMgIT09IDEgPyAncycgOiAnJ30sIGdvdCAk
e2ltbXMubGVuZ3RofWApOworICAgIGVsc2UKKyAgICAgICAgIGFzc2VydC5lcShpbW1zLmxlbmd0
aCwgbWluRXhwZWN0ZWRJbW1zLCBgIiR7b3B9IiBleHBlY3RzIGV4YWN0bHkgJHttaW5FeHBlY3Rl
ZEltbXN9IGltbWVkaWF0ZSR7bWluRXhwZWN0ZWRJbW1zICE9PSAxID8gJ3MnIDogJyd9LCBnb3Qg
JHtpbW1zLmxlbmd0aH1gKTsKKyAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggIT09IGV4cGVjdGVk
SW1tcy5sZW5ndGg7ICsraWR4KSB7CisgICAgICAgIGNvbnN0IGdvdCA9IGltbXNbaWR4XTsKKyAg
ICAgICAgY29uc3QgZXhwZWN0ID0gZXhwZWN0ZWRJbW1zW2lkeF07CisgICAgICAgIHN3aXRjaCAo
ZXhwZWN0Lm5hbWUpIHsKKyAgICAgICAgY2FzZSAiZnVuY3Rpb25faW5kZXgiOgorICAgICAgICAg
ICAgYXNzZXJ0LnRydXRoeShfaXNWYWxpZFZhbHVlKGdvdCwgImkzMiIpICYmIGdvdCA+PSAwLCBg
SW52YWxpZCB2YWx1ZSBvbiAke29wfTogZ290ICIke2dvdH0iLCBleHBlY3RlZCBub24tbmVnYXRp
dmUgaTMyYCk7CisgICAgICAgICAgICAvLyBGSVhNRSBjaGVjayBmdW5jdGlvbiBpbmRpY2VzLiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAibG9jYWxfaW5kZXgiOiBicmVhazsgLy8gaW1wcm92ZSBj
aGVja2luZyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisg
ICAgICAgIGNhc2UgImdsb2JhbF9pbmRleCI6IGJyZWFrOyAvLyBpbXByb3ZlIGNoZWNraW5nIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgY2Fz
ZSAidHlwZV9pbmRleCI6IGJyZWFrOyAvLyBpbXByb3ZlIGNoZWNraW5nIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgY2FzZSAidmFsdWUiOgor
ICAgICAgICAgICAgYXNzZXJ0LnRydXRoeShfaXNWYWxpZFZhbHVlKGdvdCwgcmV0WzBdKSwgYElu
dmFsaWQgdmFsdWUgb24gJHtvcH06IGdvdCAiJHtnb3R9IiwgZXhwZWN0ZWQgJHtyZXRbMF19YCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiZmxhZ3MiOiBicmVhazsgLy8gaW1w
cm92ZSBjaGVja2luZyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYz
NDIxCisgICAgICAgIGNhc2UgIm9mZnNldCI6IGJyZWFrOyAvLyBpbXByb3ZlIGNoZWNraW5nIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgICAg
IC8vIENvbnRyb2w6CisgICAgICAgIGNhc2UgImRlZmF1bHRfdGFyZ2V0IjogYnJlYWs7IC8vIGlt
cHJvdmUgY2hlY2tpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MzQyMQorICAgICAgICBjYXNlICJyZWxhdGl2ZV9kZXB0aCI6IGJyZWFrOyAvLyBpbXByb3ZlIGNo
ZWNraW5nIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAg
ICAgICAgY2FzZSAic2lnIjoKKyAgICAgICAgICAgIGFzc2VydC50cnV0aHkoV0FTTS5pc1ZhbGlk
QmxvY2tUeXBlKGltbXNbaWR4XSksIGBJbnZhbGlkIGJsb2NrIHR5cGUgb24gJHtvcH06ICIke2lt
bXNbaWR4XX0iYCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAidGFyZ2V0X2Nv
dW50IjogYnJlYWs7IC8vIGltcHJvdmUgY2hlY2tpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICBjYXNlICJ0YXJnZXRfdGFibGUiOiBicmVh
azsgLy8gaW1wcm92ZSBjaGVja2luZyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYzNDIxCisgICAgICAgIGNhc2UgInJlc2VydmVkIjogYnJlYWs7IC8vIGltcHJvdmUg
Y2hlY2tpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQor
ICAgICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoYEltcGxlbWVudGF0aW9uIHByb2JsZW06
IHVuaGFuZGxlZCBpbW1lZGlhdGUgIiR7ZXhwZWN0Lm5hbWV9IiBvbiAiJHtvcH0iYCk7CisgICAg
ICAgIH0KKyAgICB9Cit9OworCitjb25zdCBfY3JlYXRlRnVuY3Rpb25CdWlsZGVyID0gKGZ1bmMs
IGJ1aWxkZXIsIHByZXZpb3VzQnVpbGRlcikgPT4geworICAgIGxldCBmdW5jdGlvbkJ1aWxkZXIg
PSB7fTsKKyAgICBmb3IgKGNvbnN0IG9wIGluIFdBU00uZGVzY3JpcHRpb24ub3Bjb2RlKSB7Cisg
ICAgICAgIGNvbnN0IG5hbWUgPSBfdG9KYXZhU2NyaXB0TmFtZShvcCk7CisgICAgICAgIGNvbnN0
IHZhbHVlID0gV0FTTS5kZXNjcmlwdGlvbi5vcGNvZGVbb3BdLnZhbHVlOworICAgICAgICBjb25z
dCByZXQgPSBXQVNNLmRlc2NyaXB0aW9uLm9wY29kZVtvcF1bInJldHVybiJdOworICAgICAgICBj
b25zdCBwYXJhbSA9IFdBU00uZGVzY3JpcHRpb24ub3Bjb2RlW29wXS5wYXJhbWV0ZXI7CisgICAg
ICAgIGNvbnN0IGltbSA9IFdBU00uZGVzY3JpcHRpb24ub3Bjb2RlW29wXS5pbW1lZGlhdGU7CisK
KyAgICAgICAgY29uc3QgY2hlY2tTdGFja0FyZ3MgPSBidWlsZGVyLl9jaGVja2VkID8gX2NoZWNr
U3RhY2tBcmdzIDogKCkgPT4ge307CisgICAgICAgIGNvbnN0IGNoZWNrU3RhY2tSZXR1cm4gPSBi
dWlsZGVyLl9jaGVja2VkID8gX2NoZWNrU3RhY2tSZXR1cm4gOiAoKSA9PiB7fTsKKyAgICAgICAg
Y29uc3QgY2hlY2tJbW1zID0gYnVpbGRlci5fY2hlY2tlZCA/IF9jaGVja0ltbXMgOiAoKSA9PiB7
fTsKKworICAgICAgICBmdW5jdGlvbkJ1aWxkZXJbbmFtZV0gPSAoLi4uYXJncykgPT4geworICAg
ICAgICAgICAgbGV0IG5leHRCdWlsZGVyOworICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7Cisg
ICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIG5leHRCdWlsZGVyID0gZnVuY3Rp
b25CdWlsZGVyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiRW5k
IjoKKyAgICAgICAgICAgICAgICBuZXh0QnVpbGRlciA9IHByZXZpb3VzQnVpbGRlcjsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIkJsb2NrIjoKKyAgICAgICAgICAg
IGNhc2UgIkxvb3AiOgorICAgICAgICAgICAgY2FzZSAiSWYiOgorICAgICAgICAgICAgICAgIG5l
eHRCdWlsZGVyID0gX2NyZWF0ZUZ1bmN0aW9uQnVpbGRlcihmdW5jLCBidWlsZGVyLCBmdW5jdGlv
bkJ1aWxkZXIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAvLyBQYXNzaW5nIGEgZnVuY3Rpb24gYXMgdGhlIGFyZ3VtZW50IGlzIGEgd2F5IHRv
IG5lc3QgYmxvY2tzIGxleGljYWxseS4KKyAgICAgICAgICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9
IGFyZ3NbYXJncy5sZW5ndGggLSAxXTsKKyAgICAgICAgICAgIGNvbnN0IGhhc0NvbnRpbnVhdGlv
biA9IHR5cGVvZihjb250aW51YXRpb24pID09PSAiZnVuY3Rpb24iOworICAgICAgICAgICAgY29u
c3QgaW1tcyA9IGhhc0NvbnRpbnVhdGlvbiA/IGFyZ3Muc2xpY2UoMCwgLTEpIDogYXJnczsgLy8g
RklYTUU6IGFsbG93IHBhc3NpbmcgaW4gc3RhY2sgdmFsdWVzLCBhcy1pZiBjb2RlIHdlcmUgYSBz
dGFjayBtYWNoaW5lLiBKdXN0IGNoZWNrIGZvciBhIGJ1aWxkZXIgdG8gdGhpcyBmdW5jdGlvbiwg
YW5kIGRyb3AuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjIK
KyAgICAgICAgICAgIGNoZWNrSW1tcyhvcCwgaW1tcywgaW1tLCByZXQpOworICAgICAgICAgICAg
Y2hlY2tTdGFja0FyZ3Mob3AsIHBhcmFtKTsKKyAgICAgICAgICAgIGNoZWNrU3RhY2tSZXR1cm4o
b3AsIHJldCk7CisgICAgICAgICAgICBjb25zdCBzdGFja0FyZ3MgPSBbXTsgLy8gRklYTUUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjcwNgorICAgICAgICAgICAg
ZnVuYy5jb2RlLnB1c2goeyBuYW1lOiBvcCwgdmFsdWU6IHZhbHVlLCBhcmd1bWVudHM6IHN0YWNr
QXJncywgaW1tZWRpYXRlczogaW1tcyB9KTsKKyAgICAgICAgICAgIGlmIChoYXNDb250aW51YXRp
b24pCisgICAgICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IoY29udGlu
dWF0aW9uKG5leHRCdWlsZGVyKS5FbmQoKSk7CisgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFu
ZGxpbmdQcm94eUZvcihuZXh0QnVpbGRlcik7CisgICAgICAgIH07CisgICAgfTsKKworICAgIHJl
dHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKGZ1bmN0aW9uQnVpbGRlcik7Cit9CisKK2NvbnN0
IF9jcmVhdGVGdW5jdGlvbiA9IChzZWN0aW9uLCBidWlsZGVyLCBwcmV2aW91c0J1aWxkZXIpID0+
IHsKKyAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHsKKyAgICAgICAgY29uc3QgbmFtZU9mZnNldCA9
ICh0eXBlb2YoYXJnc1swXSkgPT09ICJzdHJpbmciKSA+Pj4gMDsKKyAgICAgICAgY29uc3QgZnVu
Y3Rpb25OYW1lID0gbmFtZU9mZnNldCA/IGFyZ3NbMF0gOiB1bmRlZmluZWQ7CisgICAgICAgIGxl
dCBzaWduYXR1cmUgPSBhcmdzWzAgKyBuYW1lT2Zmc2V0XTsKKyAgICAgICAgY29uc3QgbG9jYWxz
ID0gYXJnc1sxICsgbmFtZU9mZnNldF0gPT09IHVuZGVmaW5lZCA/IFtdIDogYXJnc1sxICsgbmFt
ZU9mZnNldF07CisgICAgICAgIGZvciAoY29uc3QgbG9jYWwgb2YgbG9jYWxzKQorICAgICAgICAg
ICAgYXNzZXJ0LnRydXRoeShXQVNNLmlzVmFsaWRWYWx1ZVR5cGUobG9jYWwpLCBgVHlwZSBvZiBs
b2NhbDogJHtsb2NhbH0gbmVlZHMgdG8gYmUgYSB2YWxpZCB2YWx1ZSB0eXBlYCk7CisKKyAgICAg
ICAgaWYgKHR5cGVvZihzaWduYXR1cmUpID09PSAidW5kZWZpbmVkIikKKyAgICAgICAgICAgIHNp
Z25hdHVyZSA9IHsgcGFyYW1zOiBbXSB9OworCisgICAgICAgIGxldCB0eXBlOworICAgICAgICBs
ZXQgcGFyYW1zOworICAgICAgICBpZiAodHlwZW9mIHNpZ25hdHVyZSA9PT0gIm9iamVjdCIpIHsK
KyAgICAgICAgICAgIGFzc2VydC5oYXNPYmplY3RQcm9wZXJ0eShzaWduYXR1cmUsICJwYXJhbXMi
LCBgRXhwZWN0IGZ1bmN0aW9uIHNpZ25hdHVyZSB0byBiZSBhbiBvYmplY3Qgd2l0aCBhICJwYXJh
bXMiIGZpZWxkLCBnb3QgIiR7c2lnbmF0dXJlfSJgKTsKKyAgICAgICAgICAgIGxldCByZXQ7Cisg
ICAgICAgICAgICAoW3BhcmFtcywgcmV0XSA9IF9ub3JtYWxpemVGdW5jdGlvblNpZ25hdHVyZShz
aWduYXR1cmUucGFyYW1zLCBzaWduYXR1cmUucmV0KSk7CisgICAgICAgICAgICBzaWduYXR1cmUg
PSB7cGFyYW1zLCByZXR9OworICAgICAgICAgICAgdHlwZSA9IF9tYXliZVJlZ2lzdGVyVHlwZShi
dWlsZGVyLCBzaWduYXR1cmUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXNzZXJ0
LnRydXRoeSh0eXBlb2Ygc2lnbmF0dXJlID09PSAibnVtYmVyIik7CisgICAgICAgICAgICBjb25z
dCB0eXBlU2VjdGlvbiA9IGJ1aWxkZXIuX2dldFNlY3Rpb24oIlR5cGUiKTsKKyAgICAgICAgICAg
IGFzc2VydC50cnV0aHkoISF0eXBlU2VjdGlvbik7CisgICAgICAgICAgICAvLyBGSVhNRTogd2Ug
c2hvdWxkIGFsbG93IGluZGljZXMgdGhhdCBleGNlZWQgdGhpcyB0byBiZSBhYmxlIHRvCisgICAg
ICAgICAgICAvLyB0ZXN0IEpTQ3MgdmFsaWRhdG9yIGlzIGNvcnJlY3QuIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU3ODYKKyAgICAgICAgICAgIGFzc2VydC50cnV0
aHkoc2lnbmF0dXJlIDwgdHlwZVNlY3Rpb24uZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgdHlw
ZSA9IHNpZ25hdHVyZTsKKyAgICAgICAgICAgIHNpZ25hdHVyZSA9IHR5cGVTZWN0aW9uLmRhdGFb
c2lnbmF0dXJlXTsKKyAgICAgICAgICAgIGFzc2VydC5oYXNPYmplY3RQcm9wZXJ0eShzaWduYXR1
cmUsICJwYXJhbXMiLCBgRXhwZWN0IGZ1bmN0aW9uIHNpZ25hdHVyZSB0byBiZSBhbiBvYmplY3Qg
d2l0aCBhICJwYXJhbXMiIGZpZWxkLCBnb3QgIiR7c2lnbmF0dXJlfSJgKTsKKyAgICAgICAgICAg
IHBhcmFtcyA9IHNpZ25hdHVyZS5wYXJhbXM7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBm
dW5jID0geworICAgICAgICAgICAgbmFtZTogZnVuY3Rpb25OYW1lLAorICAgICAgICAgICAgdHlw
ZSwKKyAgICAgICAgICAgIHNpZ25hdHVyZTogc2lnbmF0dXJlLAorICAgICAgICAgICAgbG9jYWxz
OiBwYXJhbXMuY29uY2F0KGxvY2FscyksIC8vIFBhcmFtZXRlcnMgYXJlIHRoZSBmaXJzdCBsb2Nh
bHMuCisgICAgICAgICAgICBwYXJhbWV0ZXJDb3VudDogcGFyYW1zLmxlbmd0aCwKKyAgICAgICAg
ICAgIGNvZGU6IFtdCisgICAgICAgIH07CisKKyAgICAgICAgY29uc3QgZnVuY3Rpb25TZWN0aW9u
ID0gYnVpbGRlci5fZ2V0U2VjdGlvbigiRnVuY3Rpb24iKTsKKyAgICAgICAgaWYgKGZ1bmN0aW9u
U2VjdGlvbikKKyAgICAgICAgICAgIGZ1bmN0aW9uU2VjdGlvbi5kYXRhLnB1c2goZnVuYy50eXBl
KTsKKworICAgICAgICBzZWN0aW9uLmRhdGEucHVzaChmdW5jKTsKKyAgICAgICAgYnVpbGRlci5f
cmVnaXN0ZXJGdW5jdGlvblRvSW5kZXhTcGFjZShmdW5jdGlvbk5hbWUpOworCisgICAgICAgIHJl
dHVybiBfY3JlYXRlRnVuY3Rpb25CdWlsZGVyKGZ1bmMsIGJ1aWxkZXIsIHByZXZpb3VzQnVpbGRl
cik7CisgICAgfQorfTsKKworY2xhc3MgQnVpbGRlciB7CisgICAgY29uc3RydWN0b3IoKSB7Cisg
ICAgICAgIHRoaXMuc2V0Q2hlY2tlZCh0cnVlKTsKKyAgICAgICAgbGV0IHByZWFtYmxlID0ge307
CisgICAgICAgIGZvciAoY29uc3QgcCBvZiBXQVNNLmRlc2NyaXB0aW9uLnByZWFtYmxlKQorICAg
ICAgICAgICAgcHJlYW1ibGVbcC5uYW1lXSA9IHAudmFsdWU7CisgICAgICAgIHRoaXMuc2V0UHJl
YW1ibGUocHJlYW1ibGUpOworICAgICAgICB0aGlzLl9zZWN0aW9ucyA9IFtdOworICAgICAgICB0
aGlzLl9mdW5jdGlvbkluZGV4U3BhY2UgPSBuZXcgTWFwKCk7CisgICAgICAgIHRoaXMuX2Z1bmN0
aW9uSW5kZXhTcGFjZUNvdW50ID0gMDsKKyAgICAgICAgdGhpcy5fcmVnaXN0ZXJTZWN0aW9uQnVp
bGRlcnMoKTsKKyAgICB9CisgICAgc2V0Q2hlY2tlZChjaGVja2VkKSB7CisgICAgICAgIHRoaXMu
X2NoZWNrZWQgPSBjaGVja2VkOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgc2V0
UHJlYW1ibGUocCkgeworICAgICAgICB0aGlzLl9wcmVhbWJsZSA9IE9iamVjdC5hc3NpZ24odGhp
cy5fcHJlYW1ibGUgfHwge30sIHApOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAg
X2Z1bmN0aW9uSW5kZXhTcGFjZUtleUhhc2gob2JqKSB7CisgICAgICAgIC8vIFdlIGRvbid0IG5l
ZWQgYSBmdWxsIGhhc2gsIGp1c3Qgc29tZXRoaW5nIHRoYXQgaGFzIGEgZGVmaW5lZCBvcmRlciBm
b3IgTWFwLiBPYmplY3RzIHdlIGluc2VydCBhcmVuJ3QgbmVzdGVkLgorICAgICAgICBpZiAodHlw
ZW9mKG9iaikgIT09ICdvYmplY3QnKQorICAgICAgICAgICAgcmV0dXJuIG9iajsKKyAgICAgICAg
Y29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iaikuc29ydCgpOworICAgICAgICBsZXQgZW50cmll
cyA9IFtdOworICAgICAgICBmb3IgKGxldCBrIGluIGtleXMpCisgICAgICAgICAgICBlbnRyaWVz
LnB1c2goW2ssIG9ialtrXV0pOworICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZW50cmll
cyk7CisgICAgfQorICAgIF9yZWdpc3RlckZ1bmN0aW9uVG9JbmRleFNwYWNlKG5hbWUpIHsKKyAg
ICAgICAgaWYgKHR5cGVvZihuYW1lKSA9PT0gInVuZGVmaW5lZCIpIHsKKyAgICAgICAgICAgIC8v
IFJlZ2lzdGVyaW5nIGEgbmFtZWxlc3MgZnVuY3Rpb24gc3RpbGwgYWRkcyBpdCB0byB0aGUgZnVu
Y3Rpb24gaW5kZXggc3BhY2UuIFJlZ2lzdGVyIGl0IGFzIHNvbWV0aGluZyB0aGF0IGNhbid0IG5v
cm1hbGx5IGJlIHJlZ2lzdGVyZWQuCisgICAgICAgICAgICBuYW1lID0ge307CisgICAgICAgIH0K
KyAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLl9mdW5jdGlvbkluZGV4U3BhY2VDb3VudCsrOwor
ICAgICAgICAvLyBDb2xsaXNpb25zIGFyZSBmaW5lOiB3ZSdsbCBzaW1wbHkgY291bnQgdGhlIGZ1
bmN0aW9uIGFuZCBmb3JnZXQgdGhlIHByZXZpb3VzIG9uZS4KKyAgICAgICAgdGhpcy5fZnVuY3Rp
b25JbmRleFNwYWNlLnNldCh0aGlzLl9mdW5jdGlvbkluZGV4U3BhY2VLZXlIYXNoKG5hbWUpLCB2
YWx1ZSk7CisgICAgICAgIC8vIE1hcCBpdCBib3RoIHdheXMsIHRoZSBudW1iZXIgc3BhY2UgaXMg
ZGlzdGluY3QgZnJvbSB0aGUgbmFtZSBzcGFjZS4KKyAgICAgICAgdGhpcy5fZnVuY3Rpb25JbmRl
eFNwYWNlLnNldCh0aGlzLl9mdW5jdGlvbkluZGV4U3BhY2VLZXlIYXNoKHZhbHVlKSwgbmFtZSk7
CisgICAgfQorICAgIF9nZXRGdW5jdGlvbkZyb21JbmRleFNwYWNlKG5hbWUpIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX2Z1bmN0aW9uSW5kZXhTcGFjZS5nZXQodGhpcy5fZnVuY3Rpb25JbmRleFNw
YWNlS2V5SGFzaChuYW1lKSk7CisgICAgfQorICAgIF9yZWdpc3RlclNlY3Rpb25CdWlsZGVycygp
IHsKKyAgICAgICAgZm9yIChjb25zdCBzZWN0aW9uIGluIFdBU00uZGVzY3JpcHRpb24uc2VjdGlv
bikgeworICAgICAgICAgICAgc3dpdGNoIChzZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlICJU
eXBlIjoKKyAgICAgICAgICAgICAgICB0aGlzW3NlY3Rpb25dID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IHMgPSB0aGlzLl9hZGRTZWN0aW9uKHNlY3Rpb24pOworICAg
ICAgICAgICAgICAgICAgICBjb25zdCBidWlsZGVyID0gdGhpczsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc3QgdHlwZUJ1aWxkZXIgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICBFbmQ6ICgp
ID0+IGJ1aWxkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBGdW5jOiAocGFyYW1zLCByZXQp
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFyYW1zLCByZXRdID0gX25vcm1h
bGl6ZUZ1bmN0aW9uU2lnbmF0dXJlKHBhcmFtcywgcmV0KTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzLmRhdGEucHVzaCh7IHBhcmFtczogcGFyYW1zLCByZXQ6IHJldCB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcih0eXBl
QnVpbGRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAg
ICB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcih0
eXBlQnVpbGRlcik7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KworICAgICAgICAgICAgY2FzZSAiSW1wb3J0IjoKKyAgICAgICAgICAgICAgICB0aGlzW3NlY3Rp
b25dID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHMgPSB0aGlzLl9h
ZGRTZWN0aW9uKHNlY3Rpb24pOworICAgICAgICAgICAgICAgICAgICBjb25zdCBpbXBvcnRCdWls
ZGVyID0geworICAgICAgICAgICAgICAgICAgICAgICAgRW5kOiAoKSA9PiB0aGlzLAorICAgICAg
ICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICBpbXBvcnRCdWlsZGVyLkdsb2Jh
bCA9IF9pbXBvcnRHbG9iYWxDb250aW51YXRpb24odGhpcywgcywgaW1wb3J0QnVpbGRlcik7Cisg
ICAgICAgICAgICAgICAgICAgIGltcG9ydEJ1aWxkZXIuRnVuY3Rpb24gPSBfaW1wb3J0RnVuY3Rp
b25Db250aW51YXRpb24odGhpcywgcywgaW1wb3J0QnVpbGRlcik7CisgICAgICAgICAgICAgICAg
ICAgIGltcG9ydEJ1aWxkZXIuTWVtb3J5ID0gX2ltcG9ydE1lbW9yeUNvbnRpbnVhdGlvbih0aGlz
LCBzLCBpbXBvcnRCdWlsZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgaW1wb3J0QnVpbGRlci5U
YWJsZSA9IF9pbXBvcnRUYWJsZUNvbnRpbnVhdGlvbih0aGlzLCBzLCBpbXBvcnRCdWlsZGVyKTsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IoaW1wb3J0
QnVpbGRlcik7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICAgICAgY2FzZSAiRnVuY3Rpb24iOgorICAgICAgICAgICAgICAgIHRoaXNbc2VjdGlv
bl0gPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgcyA9IHRoaXMuX2Fk
ZFNlY3Rpb24oc2VjdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uQnVp
bGRlciA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEVuZDogKCkgPT4gdGhpcworICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGFkZCBhYmlsaXR5IHRvIGFkZCB0aGlzIHdpdGgg
d2hhdGV2ZXIuCisgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKGZ1bmN0aW9uQnVpbGRlcik7CisgICAgICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAiVGFi
bGUiOgorICAgICAgICAgICAgICAgIHRoaXNbc2VjdGlvbl0gPSBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgY29uc3QgcyA9IHRoaXMuX2FkZFNlY3Rpb24oc2VjdGlvbik7CisgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IHRhYmxlQnVpbGRlciA9IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIEVuZDogKCkgPT4gdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlOiAo
e2luaXRpYWwsIG1heGltdW0sIGVsZW1lbnR9KSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcy5kYXRhLnB1c2goe3RhYmxlRGVzY3JpcHRpb246IHtpbml0aWFsLCBtYXhpbXVtLCBl
bGVtZW50fX0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfZXJyb3JIYW5k
bGluZ1Byb3h5Rm9yKHRhYmxlQnVpbGRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBfZXJyb3JI
YW5kbGluZ1Byb3h5Rm9yKHRhYmxlQnVpbGRlcik7CisgICAgICAgICAgICAgICAgfTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAiTWVtb3J5IjoKKyAgICAgICAg
ICAgICAgICB0aGlzW3NlY3Rpb25dID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IGNvbnN0IHMgPSB0aGlzLl9hZGRTZWN0aW9uKHNlY3Rpb24pOworICAgICAgICAgICAgICAgICAg
ICBjb25zdCBtZW1vcnlCdWlsZGVyID0geworICAgICAgICAgICAgICAgICAgICAgICAgRW5kOiAo
KSA9PiB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgSW5pdGlhbE1heFBhZ2VzOiAoaW5p
dGlhbCwgbWF4KSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5kYXRhLnB1c2go
eyBpbml0aWFsLCBtYXggfSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9l
cnJvckhhbmRsaW5nUHJveHlGb3IobWVtb3J5QnVpbGRlcik7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKG1lbW9yeUJ1aWxkZXIpOworICAgICAgICAgICAgICAg
IH07CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgIkdsb2JhbCI6
CisgICAgICAgICAgICAgICAgdGhpc1tzZWN0aW9uXSA9IGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICBjb25zdCBzID0gdGhpcy5fYWRkU2VjdGlvbihzZWN0aW9uKTsKKyAgICAgICAg
ICAgICAgICAgICAgY29uc3QgZ2xvYmFsQnVpbGRlciA9IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIEVuZDogKCkgPT4gdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgIEdldEdsb2JhbDog
KHR5cGUsIGluaXRWYWx1ZSwgbXV0YWJpbGl0eSkgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHMuZGF0YS5wdXNoKHsgdHlwZSwgb3A6ICJnZXRfZ2xvYmFsIiwgbXV0YWJpbGl0eTog
X25vcm1hbGl6ZU11dGFiaWxpdHkobXV0YWJpbGl0eSksIGluaXRWYWx1ZSB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihnbG9iYWxC
dWlsZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgb3Agb2YgV0FTTS5kZXNjcmlwdGlvbi52
YWx1ZV90eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWxCdWlsZGVyW190b0ph
dmFTY3JpcHROYW1lKG9wKV0gPSAoaW5pdFZhbHVlLCBtdXRhYmlsaXR5KSA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcy5kYXRhLnB1c2goeyB0eXBlOiBvcCwgb3A6IG9wICsgIi5j
b25zdCIsIG11dGFiaWxpdHk6IF9ub3JtYWxpemVNdXRhYmlsaXR5KG11dGFiaWxpdHkpLCBpbml0
VmFsdWUgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRs
aW5nUHJveHlGb3IoZ2xvYmFsQnVpbGRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB9Owor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBfZXJyb3JI
YW5kbGluZ1Byb3h5Rm9yKGdsb2JhbEJ1aWxkZXIpOworICAgICAgICAgICAgICAgIH07CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgIkV4cG9ydCI6CisgICAgICAg
ICAgICAgICAgdGhpc1tzZWN0aW9uXSA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBjb25zdCBzID0gdGhpcy5fYWRkU2VjdGlvbihzZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZXhwb3J0QnVpbGRlciA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEVuZDog
KCkgPT4gdGhpcywKKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAg
ZXhwb3J0QnVpbGRlci5HbG9iYWwgPSBfZXhwb3J0R2xvYmFsQ29udGludWF0aW9uKHRoaXMsIHMs
IGV4cG9ydEJ1aWxkZXIpOworICAgICAgICAgICAgICAgICAgICBleHBvcnRCdWlsZGVyLkZ1bmN0
aW9uID0gX2V4cG9ydEZ1bmN0aW9uQ29udGludWF0aW9uKHRoaXMsIHMsIGV4cG9ydEJ1aWxkZXIp
OworICAgICAgICAgICAgICAgICAgICBleHBvcnRCdWlsZGVyLk1lbW9yeSA9IF9leHBvcnRNZW1v
cnlDb250aW51YXRpb24odGhpcywgcywgZXhwb3J0QnVpbGRlcik7CisgICAgICAgICAgICAgICAg
ICAgIGV4cG9ydEJ1aWxkZXIuVGFibGUgPSBfZXhwb3J0VGFibGVDb250aW51YXRpb24odGhpcywg
cywgZXhwb3J0QnVpbGRlcik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBfZXJyb3JIYW5k
bGluZ1Byb3h5Rm9yKGV4cG9ydEJ1aWxkZXIpOworICAgICAgICAgICAgICAgIH07CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgIlN0YXJ0IjoKKyAgICAgICAgICAg
ICAgICB0aGlzW3NlY3Rpb25dID0gZnVuY3Rpb24oZnVuY3Rpb25JbmRleE9yTmFtZSkgeworICAg
ICAgICAgICAgICAgICAgICBjb25zdCBzID0gdGhpcy5fYWRkU2VjdGlvbihzZWN0aW9uKTsKKyAg
ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRCdWlsZGVyID0geworICAgICAgICAgICAgICAg
ICAgICAgICAgRW5kOiAoKSA9PiB0aGlzLAorICAgICAgICAgICAgICAgICAgICB9OworICAgICAg
ICAgICAgICAgICAgICBpZiAodHlwZW9mKGZ1bmN0aW9uSW5kZXhPck5hbWUpICE9PSAibnVtYmVy
IiAmJiB0eXBlb2YoZnVuY3Rpb25JbmRleE9yTmFtZSkgIT09ICJzdHJpbmciKQorICAgICAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTdGFydCBzZWN0aW9uJ3MgZnVuY3Rpb24g
aW5kZXggIG11c3QgZWl0aGVyIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nYCk7CisgICAgICAgICAg
ICAgICAgICAgIHMuZGF0YS5wdXNoKGZ1bmN0aW9uSW5kZXhPck5hbWUpOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihzdGFydEJ1aWxkZXIpOworICAg
ICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNh
c2UgIkVsZW1lbnQiOgorICAgICAgICAgICAgICAgIHRoaXNbc2VjdGlvbl0gPSBmdW5jdGlvbigu
Li5hcmdzKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCAhPT0gMCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiWW91J3JlIGRvaW5nIGl0IHdy
b25nLiBUaGlzIGVsZW1lbnQgZG9lcyBub3QgdGFrZSBhcmd1bWVudHMuIFlvdSBtdXN0IGNoYWlu
IHRoZSBjYWxsIHdpdGggYW5vdGhlciBFbGVtZW50KCkiKTsKKworICAgICAgICAgICAgICAgICAg
ICBjb25zdCBzID0gdGhpcy5fYWRkU2VjdGlvbihzZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZWxlbWVudEJ1aWxkZXIgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICBFbmQ6
ICgpID0+IHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICBFbGVtZW50OiAoe3RhYmxlSW5k
ZXggPSAwLCBvZmZzZXQsIGZ1bmN0aW9uSW5kaWNlc30pID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzLmRhdGEucHVzaCh7dGFibGVJbmRleCwgb2Zmc2V0LCBmdW5jdGlvbkluZGlj
ZXN9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQ
cm94eUZvcihlbGVtZW50QnVpbGRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhh
bmRsaW5nUHJveHlGb3IoZWxlbWVudEJ1aWxkZXIpOworICAgICAgICAgICAgICAgIH07CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgIkNvZGUiOgorICAgICAgICAg
ICAgICAgIHRoaXNbc2VjdGlvbl0gPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y29uc3QgcyA9IHRoaXMuX2FkZFNlY3Rpb24oc2VjdGlvbik7CisgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkZXIgPSB0aGlzOworICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2RlQnVp
bGRlciA9ICB7CisgICAgICAgICAgICAgICAgICAgICAgICBFbmQ6ICgpID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBXZSBub3cgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8g
cmVtYXAgdGhlIGV4cG9ydCBzZWN0aW9uJ3MgInR5cGUiIGFuZCAiaW5kZXgiIGFjY29yZGluZyB0
byB0aGUgQ29kZSBzZWN0aW9uIHdlIGFyZSBjdXJyZW50bHkgZW5kaW5nLgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVTZWN0aW9uID0gYnVpbGRlci5fZ2V0U2VjdGlvbigi
VHlwZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGltcG9ydFNlY3Rpb24g
PSBidWlsZGVyLl9nZXRTZWN0aW9uKCJJbXBvcnQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBleHBvcnRTZWN0aW9uID0gYnVpbGRlci5fZ2V0U2VjdGlvbigiRXhwb3J0Iik7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRTZWN0aW9uID0gYnVpbGRl
ci5fZ2V0U2VjdGlvbigiU3RhcnQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBjb2RlU2VjdGlvbiA9IHM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4cG9y
dFNlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBl
IG9mIGV4cG9ydFNlY3Rpb24uZGF0YSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGUua2luZCAhPT0gIkZ1bmN0aW9uIiB8fCB0eXBlb2YoZS50eXBlKSAhPT0gInVu
ZGVmaW5lZCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZihl
LmluZGV4KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDog
dGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGV4cG9ydCBpbmRleCAiJHtlLmluZGV4fSJgKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInN0cmluZyI6IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGJ1aWxk
ZXIuX2dldEZ1bmN0aW9uRnJvbUluZGV4U3BhY2UoZS5pbmRleCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmlzTnVtYmVyKGluZGV4LCBgRXhwb3J0IHNl
Y3Rpb24gY29udGFpbnMgdW5kZWZpbmVkIGZ1bmN0aW9uICIke2UuaW5kZXh9ImApOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuaW5kZXggPSBpbmRleDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gLy8gRmFsbHRocm91Z2guCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJudW1iZXIiOiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBidWlsZGVyLl9nZXRG
dW5jdGlvbkZyb21JbmRleFNwYWNlKGUuaW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChidWlsZGVyLl9jaGVja2VkKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuaXNOb3RVbmRlZihpbmRleCwgYEV4cG9y
dCAiJHtlLmZpZWxkfSIgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIGRlZmluZWQgdmFsdWUgaW4g
dGhlIGZ1bmN0aW9uIGluZGV4IHNwYWNlYCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Fz
ZSAidW5kZWZpbmVkIjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoYFVuaW1wbGVtZW50ZWQ6IEZ1bmN0aW9uKCkuRW5kKCkgd2l0aCB1bmRl
ZmluZWQgZXhwb3J0IGluZGV4YCk7IC8vIEZJWE1FCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlw
ZW9mKGUudHlwZSkgPT09ICJ1bmRlZmluZWQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gVGhpcyBtdXN0IGJlIGEgZnVuY3Rpb24gZXhwb3J0IGZyb20gdGhl
IENvZGUgc2VjdGlvbiAocmUtZXhwb3J0cyB3ZXJlIGhhbmRsZWQgZWFybGllcikuCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZ1bmN0aW9uSW5kZXhTcGFjZU9m
ZnNldCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlt
cG9ydFNlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZm9yIChjb25zdCB7a2luZH0gb2YgaW1wb3J0U2VjdGlvbi5kYXRhKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2luZCA9PT0gIkZ1bmN0
aW9uIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICArK2Z1bmN0aW9uSW5kZXhTcGFjZU9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmdW5j
dGlvbkluZGV4ID0gZS5pbmRleCAtIGZ1bmN0aW9uSW5kZXhTcGFjZU9mZnNldDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnR5cGUgPSBjb2RlU2VjdGlvbi5kYXRh
W2Z1bmN0aW9uSW5kZXhdLnR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0U2VjdGlv
bikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IHN0YXJ0
U2VjdGlvbi5kYXRhWzBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFw
cGVkID0gYnVpbGRlci5fZ2V0RnVuY3Rpb25Gcm9tSW5kZXhTcGFjZShzdGFydCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYnVpbGRlci5fY2hlY2tlZCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZihtYXBwZWQpID09PSAidW5k
ZWZpbmVkIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBwZWQg
PSBzdGFydDsgLy8gSW4gdW5jaGVja2VkIG1vZGUsIHNpbXBseSB1c2Ugd2hhdCB3YXMgcHJvdmlk
ZWQgaWYgaXQncyBub25zZW5zaWNhbC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5pc0Eoc3RhcnQsICJudW1iZXIiKTsgLy8gSXQgY2FuJ3QgYmUgdG9vIG5vbnNl
bnNpY2FsLCBvdGhlcndpc2Ugd2UgY2FuJ3QgY3JlYXRlIGEgYmluYXJ5LgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRTZWN0aW9uLmRhdGFbMF0gPSBzdGFydDsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YobWFwcGVkKSA9PT0gInVuZGVmaW5lZCIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBT
dGFydCBzZWN0aW9uIHJlZmVycyB0byBub24tZXhpc3RhbnQgZnVuY3Rpb24gJyR7c3RhcnR9J2Ap
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZihzdGFydCkg
PT09ICJzdHJpbmciIHx8IHR5cGVvZihzdGFydCkgPT09ICJvYmplY3QiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0U2VjdGlvbi5kYXRhWzBdID0gbWFwcGVk
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUUgaW4gY2hlY2tl
ZCBtb2RlLCB0ZXN0IHRoYXQgdGhlIHR5cGUgaXMgYWNjZXB0YWJsZSBmb3Igc3RhcnQgZnVuY3Rp
b24uIFdlIHByb2JhYmx5IHdhbnQgX3JlZ2lzdGVyRnVuY3Rpb25Ub0luZGV4U3BhY2UgdG8gYWxz
byByZWdpc3RlciB0eXBlcyBwZXIgaW5kZXguIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjU2NTgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihidWlsZGVyKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAg
Y29kZUJ1aWxkZXIuRnVuY3Rpb24gPSBfY3JlYXRlRnVuY3Rpb24ocywgYnVpbGRlciwgY29kZUJ1
aWxkZXIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZv
cihjb2RlQnVpbGRlcik7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKworICAgICAgICAgICAgY2FzZSAiRGF0YSI6CisgICAgICAgICAgICAgICAgdGhpc1tzZWN0
aW9uXSA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBjb25zdCBzID0gdGhpcy5f
YWRkU2VjdGlvbihzZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YUJ1aWxk
ZXIgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICBFbmQ6ICgpID0+IHRoaXMsCisgICAgICAg
ICAgICAgICAgICAgICAgICBTZWdtZW50OiBkYXRhID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQuaXNBcnJheShkYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmb3IgKGNvbnN0IGRhdHVtIG9mIGRhdGEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmlzTnVtYmVyKGRhdHVtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmdlKGRhdHVtLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmxlKGRhdHVtLCAweGZmKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5kYXRhLnB1c2goeyBkYXRhOiBkYXRhLCBp
bmRleDogMCwgb2Zmc2V0OiAwIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0
aGlzU2VnbWVudCA9IHMuZGF0YVtzLmRhdGEubGVuZ3RoIC0gMV07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3Qgc2VnbWVudEJ1aWxkZXIgPSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVuZDogKCkgPT4gZGF0YUJ1aWxkZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEluZGV4OiBpbmRleCA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXEoaW5kZXgsIDApOyAvLyBMaW5lYXIgbWVtb3J5IGluZGV4IG11
c3QgYmUgemVybyBpbiBNVlAuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzU2VnbWVudC5pbmRleCA9IGluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3Ioc2VnbWVudEJ1aWxkZXIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBPZmZzZXQ6IG9mZnNldCA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBGSVhNRSBhbGxvdyBjb21wbGV4IGluaXRfZXhwciBoZXJlLiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1NzAwCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQuaXNOdW1iZXIob2Zmc2V0KTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXNTZWdtZW50Lm9mZnNldCA9IG9mZnNldDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5
Rm9yKHNlZ21lbnRCdWlsZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKHNlZ21lbnRCdWlsZGVyKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKGRhdGFCdWlsZGVyKTsKKyAg
ICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgIHRoaXNbc2VjdGlvbl0gPSAoKSA9PiB7IHRocm93IG5l
dyBFcnJvcihgVW5rbm93biBzZWN0aW9uIHR5cGUgIiR7c2VjdGlvbn0iYCk7IH07CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0aGlz
LlVua25vd24gPSBmdW5jdGlvbihuYW1lKSB7CisgICAgICAgICAgICBjb25zdCBzID0gdGhpcy5f
YWRkU2VjdGlvbihuYW1lKTsKKyAgICAgICAgICAgIGNvbnN0IGJ1aWxkZXIgPSB0aGlzOworICAg
ICAgICAgICAgY29uc3QgdW5rbm93bkJ1aWxkZXIgPSAgeworICAgICAgICAgICAgICAgIEVuZDog
KCkgPT4gYnVpbGRlciwKKyAgICAgICAgICAgICAgICBCeXRlOiBiID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxKGIgJiAweEZGLCBiLCBgVW5rbm93biBzZWN0aW9uIGV4cGVjdGVk
IGJ5dGUsIGdvdDogIiR7Yn0iYCk7CisgICAgICAgICAgICAgICAgICAgIHMuZGF0YS5wdXNoKGIp
OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcih1bmtu
b3duQnVpbGRlcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKHVua25vd25CdWlsZGVyKTsKKyAgICAg
ICAgfTsKKyAgICB9CisgICAgX2FkZFNlY3Rpb24obmFtZU9yTnVtYmVyLCBleHRyYU9iamVjdCkg
eworICAgICAgICBjb25zdCBuYW1lID0gdHlwZW9mKG5hbWVPck51bWJlcikgPT09ICJzdHJpbmci
ID8gbmFtZU9yTnVtYmVyIDogIiI7CisgICAgICAgIGNvbnN0IG51bWJlciA9IHR5cGVvZihuYW1l
T3JOdW1iZXIpID09PSAibnVtYmVyIiA/IG5hbWVPck51bWJlciA6IChXQVNNLmRlc2NyaXB0aW9u
LnNlY3Rpb25bbmFtZV0gPyBXQVNNLmRlc2NyaXB0aW9uLnNlY3Rpb25bbmFtZV0udmFsdWUgOiBf
dW5rbm93blNlY3Rpb25JZCk7CisgICAgICAgIGlmICh0aGlzLl9jaGVja2VkKSB7CisgICAgICAg
ICAgICAvLyBDaGVjayB1bmlxdWVuZXNzLgorICAgICAgICAgICAgZm9yIChjb25zdCBzIG9mIHRo
aXMuX3NlY3Rpb25zKQorICAgICAgICAgICAgICAgIGlmIChudW1iZXIgIT09IF91bmtub3duU2Vj
dGlvbklkKQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZmFsc3kocy5uYW1lID09PSBuYW1l
ICYmIHMuaWQgPT09IG51bWJlciwgYENhbm5vdCBoYXZlIHR3byBzZWN0aW9ucyB3aXRoIHRoZSBz
YW1lIG5hbWUgIiR7bmFtZX0iIGFuZCBJRCAke251bWJlcn1gKTsKKyAgICAgICAgICAgIC8vIENo
ZWNrIG9yZGVyaW5nLgorICAgICAgICAgICAgaWYgKChudW1iZXIgIT09IF91bmtub3duU2VjdGlv
bklkKSAmJiAodGhpcy5fc2VjdGlvbnMubGVuZ3RoICE9PSAwKSkgeworICAgICAgICAgICAgICAg
IGZvciAobGV0IGkgPSB0aGlzLl9zZWN0aW9ucy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fc2VjdGlvbnNbaV0uaWQgPT09IF91bmtub3du
U2VjdGlvbklkKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgICAgIGFzc2VydC5sZSh0aGlzLl9zZWN0aW9uc1tpXS5pZCwgbnVtYmVyLCBgQmFkIHNl
Y3Rpb24gb3JkZXJpbmc6ICIke3RoaXMuX3NlY3Rpb25zW2ldLm5hbWV9IiBjYW5ub3QgcHJlY2Vk
ZSAiJHtuYW1lfSJgKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNvbnN0IHMgPSBPYmplY3Qu
YXNzaWduKHsgbmFtZTogbmFtZSwgaWQ6IG51bWJlciwgZGF0YTogW10gfSwgZXh0cmFPYmplY3Qg
fHwge30pOworICAgICAgICB0aGlzLl9zZWN0aW9ucy5wdXNoKHMpOworICAgICAgICByZXR1cm4g
czsKKyAgICB9CisgICAgX2dldFNlY3Rpb24obmFtZU9yTnVtYmVyKSB7CisgICAgICAgIHN3aXRj
aCAodHlwZW9mKG5hbWVPck51bWJlcikpIHsKKyAgICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IEVy
cm9yKGBJbXBsZW1lbnRhdGlvbiBwcm9ibGVtOiBjYW4gbm90IGdldCBzZWN0aW9uICIke25hbWVP
ck51bWJlcn0iYCk7CisgICAgICAgIGNhc2UgInN0cmluZyI6CisgICAgICAgICAgICBmb3IgKGNv
bnN0IHMgb2YgdGhpcy5fc2VjdGlvbnMpCisgICAgICAgICAgICAgICAgaWYgKHMubmFtZSA9PT0g
bmFtZU9yTnVtYmVyKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gczsKKyAgICAgICAgICAg
IHJldHVybiB1bmRlZmluZWQ7CisgICAgICAgIGNhc2UgIm51bWJlciI6CisgICAgICAgICAgICBm
b3IgKGNvbnN0IHMgb2YgdGhpcy5fc2VjdGlvbnMpCisgICAgICAgICAgICAgICAgaWYgKHMuaWQg
PT09IG5hbWVPck51bWJlcikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHM7CisgICAgICAg
ICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgICB9CisgICAgfQorICAgIG9wdGltaXplKCkg
eworICAgICAgICAvLyBGSVhNRSBBZGQgbW9yZSBvcHRpbWl6YXRpb25zLiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDI0CisgICAgICAgIHJldHVybiB0aGlzOwor
ICAgIH0KKyAgICBqc29uKCkgeworICAgICAgICBjb25zdCBvYmogPSB7CisgICAgICAgICAgICBw
cmVhbWJsZTogdGhpcy5fcHJlYW1ibGUsCisgICAgICAgICAgICBzZWN0aW9uOiB0aGlzLl9zZWN0
aW9ucworICAgICAgICB9OworICAgICAgICAvLyBKU09OLnN0cmluZ2lmeSBzZXJpYWxpemVzIC0w
LjAgYXMgMC4wLgorICAgICAgICBjb25zdCByZXBsYWNlciA9IChrZXksIHZhbHVlKSA9PiB7Cisg
ICAgICAgICAgICBpZiAodmFsdWUgPT09IDAuMCAmJiAxLjAgLyB2YWx1ZSA9PT0gLUluZmluaXR5
KQorICAgICAgICAgICAgICAgIHJldHVybiAiTkVHQVRJVkVfWkVSTyI7CisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWU7CisgICAgICAgIH07CisgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShv
YmosIHJlcGxhY2VyKTsKKyAgICB9CisgICAgQXNtSlMoKSB7CisgICAgICAgICJ1c2UgYXNtIjsg
Ly8gRm9yIHNwZWVkLgorICAgICAgICAvLyBGSVhNRSBDcmVhdGUgYW4gYXNtLmpzIGVxdWl2YWxl
bnQgc3RyaW5nIHdoaWNoIGNhbiBiZSBldmFsJ2QuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjM0MjUKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhc20uanMgbm90
IGltcGxlbWVudGVkIHlldCIpOworICAgIH0KKyAgICBXZWJBc3NlbWJseSgpIHsgcmV0dXJuIEJ1
aWxkV2ViQXNzZW1ibHkuQmluYXJ5KHRoaXMuX3ByZWFtYmxlLCB0aGlzLl9zZWN0aW9ucyk7IH0K
K307Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456240</attachid>
            <date>2022-03-31 08:44:56 -0700</date>
            <delta_ts>2022-04-01 10:31:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238562-20220331114455.patch</filename>
            <type>text/plain</type>
            <size>123762</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxOTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjk3ZGIyZjUyZmE5YTZk
ZTEyMzlmNTljYjkyMTNmNTVhOWMyMTBmNS4uNjU2NzQ4ODU0MWY2MjI2NzJjOTgxNWIxYTRhYWI1
NDA1ZjllY2RmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIyLTAzLTMwICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENTUDogV0FT
TSBmYWlscyB0byBleGVjdXRlIGFmdGVyIHdpbmRvdy5vcGVuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg1NjIKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzkwNzc4NzUyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Fs
bG93LXdhc20tYWZ0ZXItd2luZG93LW9wZW4uaHRtbAorCisgICAgICAgIFJlc2V0IFdBU00gZW5h
YmxlZCB2YWx1ZSBhZnRlciBhIHdpbmRvdy5vcGVuKCkgY2FsbC4gVGhpcyBwYXRjaCBzaW1wbGlm
aWVzCisgICAgICAgIGV2YWwgYW5kIHdhc20gc2V0dGVycyBieSByZW1vdmluZyB0aGUgZGlzdGlu
Y3QgZW5hYmxlL2Rpc2FibGUgZnVuY3Rpb25zCisgICAgICAgIGFuZCB1c2luZyBvbmUgY29uc2lz
dGVudCBzZXR0ZXIuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OnNldEV2YWxFbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OnNldFdlYkFzc2VtYmx5RW5hYmxl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjplbmFibGVFdmFsKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmVuYWJsZVdlYkFzc2Vt
Ymx5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmRpc2Fi
bGVFdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmRp
c2FibGVXZWJBc3NlbWJseSk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6ZGlzYWJsZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmRpc2FibGVXZWJBc3NlbWJseSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjbGVhcik6CisgICAgICAgICogcGFnZS9j
c3AvQ29udGVudFNlY3VyaXR5UG9saWN5Lmg6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OndlYkFzc2VtYmx5RXJyb3JNZXNzYWdlIGNvbnN0KToKKwogMjAyMi0wMy0y
OCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRk
IGBXS1dlYlZpZXdgIEFQSSB0byBjb250cm9sIENTUyAic21hbGwgdmlld3BvcnQiIGBzdipgIGFu
ZCAibGFyZ2Ugdmlld3BvcnQiIGBsdipgIHVuaXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDQ4NGQ4YzJkZjM3YmVmN2QxN2RhNDFi
NzAzMjI5NGIxZDljZmZiMTQuLjYzNjk2NzAxZjQ0Mjk3MWQxYzAyNWY4NzgzZmRmODIzZjNiOThk
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
Y3BwCkBAIC00MDYsMzYgKzQwNiwyMCBAQCBUZXh0UG9zaXRpb24gU2NyaXB0Q29udHJvbGxlcjo6
ZXZlbnRIYW5kbGVyUG9zaXRpb24oKSBjb25zdAogICAgIHJldHVybiBUZXh0UG9zaXRpb24oKTsK
IH0KIAotdm9pZCBTY3JpcHRDb250cm9sbGVyOjplbmFibGVFdmFsKGJvb2wgZW5hYmxlLCBjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6c2V0RXZhbEVu
YWJsZWQoYm9vbCB2YWx1ZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7CiAgICAgYXV0
byoganNXaW5kb3dQcm94eSA9IHdpbmRvd1Byb3h5KCkuZXhpc3RpbmdKU1dpbmRvd1Byb3h5KG1h
aW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKICAgICBpZiAoIWpzV2luZG93UHJveHkpCiAgICAgICAg
IHJldHVybjsKLSAgICBqc1dpbmRvd1Byb3h5LT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQoZW5h
YmxlLCBlcnJvck1lc3NhZ2UpOworICAgIGpzV2luZG93UHJveHktPndpbmRvdygpLT5zZXRFdmFs
RW5hYmxlZCh2YWx1ZSwgZXJyb3JNZXNzYWdlKTsKIH0KIAotdm9pZCBTY3JpcHRDb250cm9sbGVy
OjplbmFibGVXZWJBc3NlbWJseSgpCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OnNldFdlYkFzc2Vt
Ymx5RW5hYmxlZChib29sIHZhbHVlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKICAg
ICBhdXRvKiBqc1dpbmRvd1Byb3h5ID0gd2luZG93UHJveHkoKS5leGlzdGluZ0pTV2luZG93UHJv
eHkobWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOwogICAgIGlmICghanNXaW5kb3dQcm94eSkKICAg
ICAgICAgcmV0dXJuOwotICAgIGpzV2luZG93UHJveHktPndpbmRvdygpLT5zZXRXZWJBc3NlbWJs
eUVuYWJsZWQodHJ1ZSk7Ci19Ci0KLXZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwo
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCi17Ci0gICAgYXV0byoganNXaW5kb3dQcm94eSA9
IHdpbmRvd1Byb3h5KCkuZXhpc3RpbmdKU1dpbmRvd1Byb3h5KG1haW5UaHJlYWROb3JtYWxXb3Js
ZCgpKTsKLSAgICBpZiAoIWpzV2luZG93UHJveHkpCi0gICAgICAgIHJldHVybjsKLSAgICBqc1dp
bmRvd1Byb3h5LT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQoZmFsc2UsIGVycm9yTWVzc2FnZSk7
Ci19Ci0KLXZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZVdlYkFzc2VtYmx5KGNvbnN0IFN0
cmluZyYgZXJyb3JNZXNzYWdlKQotewotICAgIGF1dG8qIGpzV2luZG93UHJveHkgPSB3aW5kb3dQ
cm94eSgpLmV4aXN0aW5nSlNXaW5kb3dQcm94eShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Ci0g
ICAgaWYgKCFqc1dpbmRvd1Byb3h5KQotICAgICAgICByZXR1cm47Ci0gICAganNXaW5kb3dQcm94
eS0+d2luZG93KCktPnNldFdlYkFzc2VtYmx5RW5hYmxlZChmYWxzZSwgZXJyb3JNZXNzYWdlKTsK
KyAgICBqc1dpbmRvd1Byb3h5LT53aW5kb3coKS0+c2V0V2ViQXNzZW1ibHlFbmFibGVkKHZhbHVl
LCBlcnJvck1lc3NhZ2UpOwogfQogCiBib29sIFNjcmlwdENvbnRyb2xsZXI6OmNhbkFjY2Vzc0Zy
b21DdXJyZW50T3JpZ2luKEZyYW1lKiBmcmFtZSwgRG9jdW1lbnQmIGFjY2Vzc2luZ0RvY3VtZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCmluZGV4
IDFkOWU0OTZhMjdmOTFjNDM5OTRkODliODgwMDhmNGM1MTQzOGUwOTguLmQ5ZmU5M2Y4YTA3MTEy
NTYxYTdiYjE4ZDU0MzFjNDI5ODIyZWQ4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmgKQEAgLTEyNCwxMCArMTI0LDggQEAgcHVibGljOgogCiAg
ICAgVGV4dFBvc2l0aW9uIGV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3Q7CiAKLSAgICB2b2lk
IGVuYWJsZUV2YWwoYm9vbCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoKSk7
Ci0gICAgdm9pZCBlbmFibGVXZWJBc3NlbWJseSgpOwotICAgIHZvaWQgZGlzYWJsZUV2YWwoY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwotICAgIHZvaWQgZGlzYWJsZVdlYkFzc2VtYmx5KGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKKyAgICB2b2lkIHNldEV2YWxFbmFibGVkKGJvb2ws
IGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCkpOworICAgIHZvaWQgc2V0V2Vi
QXNzZW1ibHlFbmFibGVkKGJvb2wsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCkpOwogCiAgICAgc3RhdGljIGJvb2wgY2FuQWNjZXNzRnJvbUN1cnJlbnRPcmlnaW4oRnJhbWUq
LCBEb2N1bWVudCYgYWNjZXNzaW5nRG9jdW1lbnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
Y2FuRXhlY3V0ZVNjcmlwdHMoUmVhc29uRm9yQ2FsbGluZ0NhbkV4ZWN1dGVTY3JpcHRzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGFkMGY2MTZlM2U2ZTBlMzhmODA3MjFjN2Q3ZTUzOGMx
YWFlYWMzMmUuLmM5MDE0NjFjNmQyNDg4NjdlZDkxYzFkY2Q4NDNhNjQ2NzllYTA4YWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzU2Nyw3ICszNTY3LDcgQEAgdm9pZCBEb2N1bWVudDo6
ZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiAgICAgaWYgKCFmcmFtZSgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBmcmFtZSgpLT5zY3JpcHQoKS5kaXNhYmxlRXZhbChl
cnJvck1lc3NhZ2UpOworICAgIGZyYW1lKCktPnNjcmlwdCgpLnNldEV2YWxFbmFibGVkKGZhbHNl
LCBlcnJvck1lc3NhZ2UpOwogfQogCiB2b2lkIERvY3VtZW50OjpkaXNhYmxlV2ViQXNzZW1ibHko
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCkBAIC0zNTc1LDcgKzM1NzUsNyBAQCB2b2lkIERv
Y3VtZW50OjpkaXNhYmxlV2ViQXNzZW1ibHkoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiAg
ICAgaWYgKCFmcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmcmFtZSgpLT5zY3JpcHQo
KS5kaXNhYmxlV2ViQXNzZW1ibHkoZXJyb3JNZXNzYWdlKTsKKyAgICBmcmFtZSgpLT5zY3JpcHQo
KS5zZXRXZWJBc3NlbWJseUVuYWJsZWQoZmFsc2UsIGVycm9yTWVzc2FnZSk7CiB9CiAKIElEQkNs
aWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBEb2N1bWVudDo6aWRiQ29ubmVjdGlvblByb3h5KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDk2ZTYyYmE1OTVkM2MxMzIw
NjNiNWE0YTliZTE2NmEwNDNkMWMxMTkuLjg1NGI3MjE0ZjAyMjI1MTA2MTdmZDdiNzIyNWIxODAz
YzZlNDljYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNjY3LDEw
ICs2NjcsMTIgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2xlYXIoUmVmUHRyPERvY3VtZW50PiYmIG5l
d0RvY3VtZW50LCBib29sIGNsZWFyV2luZG93UHJvcGVydGkKICAgICBpZiAoY2xlYXJTY3JpcHRP
YmplY3RzKQogICAgICAgICBtX2ZyYW1lLnNjcmlwdCgpLmNsZWFyU2NyaXB0T2JqZWN0cygpOwog
Ci0gICAgaWYgKG5ld0RvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKSAmJiAhbmV3RG9j
dW1lbnQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5ldmFsRXJyb3JNZXNzYWdlKCkuaXNOdWxs
KCkpCi0gICAgICAgIG1fZnJhbWUuc2NyaXB0KCkuZW5hYmxlRXZhbChmYWxzZSwgbmV3RG9jdW1l
bnQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5ldmFsRXJyb3JNZXNzYWdlKCkpOwotICAgIGVs
c2UKLSAgICAgICAgbV9mcmFtZS5zY3JpcHQoKS5lbmFibGVFdmFsKHRydWUpOworICAgIGlmIChu
ZXdEb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCkpIHsKKyAgICAgICAgYm9vbCBlbmFi
bGVFdmFsVmFsdWUgPSBuZXdEb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmV2YWxF
cnJvck1lc3NhZ2UoKS5pc051bGwoKTsKKyAgICAgICAgYm9vbCBlbmFibGVXQVNNVmFsdWUgPSBu
ZXdEb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPndlYkFzc2VtYmx5RXJyb3JNZXNz
YWdlKCkuaXNOdWxsKCk7CisgICAgICAgIG1fZnJhbWUuc2NyaXB0KCkuc2V0RXZhbEVuYWJsZWQo
ZW5hYmxlRXZhbFZhbHVlLCBuZXdEb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmV2
YWxFcnJvck1lc3NhZ2UoKSk7CisgICAgICAgIG1fZnJhbWUuc2NyaXB0KCkuc2V0V2ViQXNzZW1i
bHlFbmFibGVkKGVuYWJsZVdBU01WYWx1ZSwgbmV3RG9jdW1lbnQtPmNvbnRlbnRTZWN1cml0eVBv
bGljeSgpLT53ZWJBc3NlbWJseUVycm9yTWVzc2FnZSgpKTsKKyAgICB9CiAKICAgICBtX2ZyYW1l
Lm5hdmlnYXRpb25TY2hlZHVsZXIoKS5jbGVhcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCmluZGV4IGRiMDAxNmQ3MzI2Y2JkZjY1MGQ5
NzVlZTQ4MGRlZjA1N2FmMzg2YzEuLjYyMzdlNWVkYWQzZThlNTBjMjlhZGMyYzNmY2FiZDkzZDNk
NmQ5ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBv
bGljeS5oCkBAIC0xOTIsNiArMTkyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNIZWFkZXJEZWxp
dmVyZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSGVhZGVyRGVsaXZlcmVkOyB9CiAKICAgICBjb25z
dCBTdHJpbmcmIGV2YWxFcnJvck1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX2xhc3RQb2xpY3lF
dmFsRGlzYWJsZWRFcnJvck1lc3NhZ2U7IH0KKyAgICBjb25zdCBTdHJpbmcmIHdlYkFzc2VtYmx5
RXJyb3JNZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0UG9saWN5V2ViQXNzZW1ibHlEaXNh
YmxlZEVycm9yTWVzc2FnZTsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgbG9nVG9Db25zb2xlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMID0gU3RyaW5nKCks
IGNvbnN0IE9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lID0gT3JkaW5hbE51bWJlcjo6YmVmb3Jl
Rmlyc3QoKSwgY29uc3QgT3JkaW5hbE51bWJlciYgY29udGV4dENvbHVtbiA9IE9yZGluYWxOdW1i
ZXI6OmJlZm9yZUZpcnN0KCksIEpTQzo6SlNHbG9iYWxPYmplY3QqID0gbnVsbHB0cikgY29uc3Q7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNTA0YjcyMTk0ZDNmNjIyNWYxYjQ5ZDVjZTQyNTBkMjVhYjQxZGI3Yy4uNzIyNDA2
NzVkYjFhMjM0YmNhOTQ0MWM5OTE5NmJmNzBiNGJlNzMzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBA
CisyMDIyLTAzLTMwICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgor
CisgICAgICAgIENTUDogV0FTTSBmYWlscyB0byBleGVjdXRlIGFmdGVyIHdpbmRvdy5vcGVuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg1NjIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwNzc4NzUyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIExheW91dCB0ZXN0IGNvdmVyYWdlLiBDb3B5IHNvbWUg
d2FzbSBoZWxwZXIgc2NyaXB0cyBpbnRvIHRoZSBodHRwIGRpcmVjdG9yeS4KKworICAgICAgICAq
IHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBXZSBkb24ndCBzdXBwb3J0
IHdhc20gb24gd2luLiAgICAgICAgCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9hbGxvdy13YXNtLWFmdGVyLXdpbmRvdy1vcGVuLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvYWxsb3ctd2FzbS1hZnRlci13aW5kb3ctb3Blbi5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMv
bG9hZF93YXNtLmpzOiBBZGRlZC4KKyAgICAgICAgKGNyZWF0ZVdhc21Nb2R1bGUpOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9y
dW4td2ViLWFzc2VtYmx5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy93YXNtLWJ1aWxkZXIuanM6IEFkZGVk
LgorICAgICAgICAoY29uc3QuX2ZhaWwpOgorICAgICAgICAoY29uc3QuaXNOb3RBLmFzc2VydC5p
c05vdEEpOgorICAgICAgICAoY29uc3QpOgorICAgICAgICAoc3dpdGNoLnR5cGVvZik6CisgICAg
ICAgIChCdWlsZGVyKToKKyAgICAgICAgKEJ1aWxkZXIucHJvdG90eXBlLnNldENoZWNrZWQpOgor
ICAgICAgICAoQnVpbGRlci5wcm90b3R5cGUuc2V0UHJlYW1ibGUpOgorICAgICAgICAoQnVpbGRl
ci5wcm90b3R5cGUuX2Z1bmN0aW9uSW5kZXhTcGFjZUtleUhhc2gpOgorICAgICAgICAoQnVpbGRl
ci5wcm90b3R5cGUuX3JlZ2lzdGVyRnVuY3Rpb25Ub0luZGV4U3BhY2UpOgorICAgICAgICAoQnVp
bGRlci5wcm90b3R5cGUuX2dldEZ1bmN0aW9uRnJvbUluZGV4U3BhY2UpOgorICAgICAgICAoQnVp
bGRlci5wcm90b3R5cGUuX3JlZ2lzdGVyU2VjdGlvbkJ1aWxkZXJzLmNvbnN0LnNlY3Rpb24uaW4u
V0FTTS5kZXNjcmlwdGlvbi5zZWN0aW9uLnN3aXRjaC5zZWN0aW9uLmNhc2Uuc3RyaW5nX2FwcGVh
cmVkX2hlcmUudGhpcy5zZWN0aW9uKToKKyAgICAgICAgKEJ1aWxkZXIucHJvdG90eXBlLl9yZWdp
c3RlclNlY3Rpb25CdWlsZGVycy5jb25zdC5zZWN0aW9uLmluLldBU00uZGVzY3JpcHRpb24uc2Vj
dGlvbi5zd2l0Y2guc2VjdGlvbi5jb25zdC5jb2RlQnVpbGRlci5FbmQuc3dpdGNoLmNhc2Uuc3Ry
aW5nX2FwcGVhcmVkX2hlcmUuZSk6CisgICAgICAgIChCdWlsZGVyLnByb3RvdHlwZS5fcmVnaXN0
ZXJTZWN0aW9uQnVpbGRlcnMudGhpcy5Vbmtub3duKToKKwogMjAyMi0wMy0yOCAgQnJhZHkgRWlk
c29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBTZXJ2aWNlV29ya2Vy
Q2xpZW50cy5vcGVuV2luZG93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYWxsb3ctd2FzbS1hZnRlci13aW5kb3ctb3Bl
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9hbGxvdy13YXNtLWFmdGVyLXdpbmRvdy1vcGVuLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44YzVmYmMwNDBmZDA2MTA5Y2M5OTY4YjBlZWQ3Mjc2MDc1YWQzYTljCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvYWxsb3ctd2FzbS1hZnRlci13aW5kb3ctb3Blbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyIEBACitBTEVSVDogUEFTUzogd2FzbSByZXN1bHQgaXMgNzAwMgorVGVzdCB3ZSBh
bGxvdyB3ZWIgYXNzZW1ibHkgd2l0aCB1bnNhZmUtZXZhbCBhZnRlciBjYWxsaW5nIHdpbmRvdy5v
cGVuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvYWxsb3ctd2FzbS1hZnRlci13aW5kb3ctb3Blbi5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYWxsb3ctd2Fz
bS1hZnRlci13aW5kb3ctb3Blbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5OTM4MTYyNjRmNTkxZjBmM2E2
N2JjMzNiYTM1MDI2MTRjZmZmOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9hbGxvdy13YXNtLWFmdGVyLXdp
bmRvdy1vcGVuLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAg
ICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2VjdXJpdHktUG9saWN5IiBjb250ZW50PSJz
Y3JpcHQtc3JjICdub25jZS10ZXN0JzsiPgorICAgIDwvaGVhZD4KKzxib2R5PgorICAgIDxwPlRl
c3Qgd2UgYWxsb3cgd2ViIGFzc2VtYmx5IHdpdGggdW5zYWZlLWV2YWwgYWZ0ZXIgY2FsbGluZyB3
aW5kb3cub3Blbi48L3A+CisgICAgPHNjcmlwdCBub25jZT0idGVzdCI+CisgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHdpbmRvdy5vcGVuKCJyZXNvdXJjZXMvcnVuLXdlYi1hc3NlbWJseS5odG1sIik7Cisg
ICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9sb2Fk
X3dhc20uanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9yZXNvdXJjZXMvbG9hZF93YXNtLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2Mjg2ZGUzOWRhZDY3
Mzc2Nzk0N2U2MDU2NDBiYWRlN2M3MmE4ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvbG9h
ZF93YXNtLmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIGNyZWF0ZVdhc21Nb2R1bGUoKSB7
CisgICAgbGV0IGJ1aWxkZXIgPSBuZXcgQnVpbGRlcigpOworICAgIGJ1aWxkZXIgPSBidWlsZGVy
LlR5cGUoKS5FbmQoKQorICAgICAgICAuRnVuY3Rpb24oKS5FbmQoKQorICAgICAgICAuRXhwb3J0
KCkuRnVuY3Rpb24oImNhbGMiKS5FbmQoKQorICAgICAgICAuQ29kZSgpCisgICAgICAgICAgICAu
RnVuY3Rpb24oImNhbGMiLCB7IHBhcmFtczogWyJpMzIiXSwgcmV0OiAiaTMyIiB9KQorICAgICAg
ICAgICAgICAgIC5HZXRMb2NhbCgwKQorICAgICAgICAgICAgICAgIC5HZXRMb2NhbCgwKQorICAg
ICAgICAgICAgICAgIC5JMzJBZGQoKTsKKworICAgIGNvbnN0IGNvdW50ID0gNzAwMDsKKyAgICBm
b3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgYnVpbGRlciA9IGJ1aWxk
ZXIuR2V0TG9jYWwoMCkuSTMyQWRkKCk7CisgICAgfQorICAgIGJ1aWxkZXIgPSBidWlsZGVyLlJl
dHVybigpLkVuZCgpLkVuZCgpOworCisgICAgcmV0dXJuIG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUo
YnVpbGRlci5XZWJBc3NlbWJseSgpLmdldCgpKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvcnVuLXdlYi1hc3NlbWJseS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3J1
bi13ZWItYXNzZW1ibHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZmZhOWFiYjlkYWE3ZjFhOWE1YTEwMjUy
MDc4ZGY1ZTNmYWFiZjRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3J1bi13ZWItYXNzZW1i
bHkuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVudD0ic2Ny
aXB0LXNyYyAnc2VsZicgJ25vbmNlLXRlc3QnICd1bnNhZmUtZXZhbCc7Ij4KKyAgICA8c2NyaXB0
IHNyYz0id2FzbS1idWlsZGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ibG9hZF93
YXNtLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxzY3JpcHQgbm9uY2U9InRl
c3QiPgorICAgICAgICBmdW5jdGlvbiBsb2FkV2FzbSgpIHsKKyAgICAgICAgICAgIHRyeSB7Cisg
ICAgICAgICAgICAgICAgdmFyIG1vZCA9IGNyZWF0ZVdhc21Nb2R1bGUoKTsKKyAgICAgICAgICAg
ICAgICBpID0gbmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKG1vZCkKKyAgICAgICAgICAgICAgICB2
YXIgdmFsdWUgPSBpLmV4cG9ydHMuY2FsYygxKTsKKyAgICAgICAgICAgICAgICBhbGVydChgUEFT
Uzogd2FzbSByZXN1bHQgaXMgJHt2YWx1ZX1gKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9y
KSB7CisgICAgICAgICAgICAgICAgYWxlcnQoIkZBSUwiKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgICAgICBsb2FkV2FzbSgpOworICAgIDwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvd2FzbS1idWlsZGVy
LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvcmVzb3VyY2VzL3dhc20tYnVpbGRlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDllYTg4Njg3ODljNzE4
NmQ1NThmMGEyZGI0Y2MwODU5ZTVkZDFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3dhc20t
YnVpbGRlci5qcwpAQCAtMCwwICsxLDE4MDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitjb25zdCBfZmFpbCA9IChtc2csIGV4dHJhKSA9PiB7CisgICAg
dGhyb3cgbmV3IEVycm9yKG1zZyArIChleHRyYSA/ICI6ICIgKyBleHRyYSA6ICIiKSk7Cit9Owor
Citjb25zdCBhc3NlcnQgPSB7fTsKKworY29uc3QgaXNOb3RBID0gYXNzZXJ0LmlzTm90QSA9ICh2
LCB0LCBtc2cpID0+IHsKKyAgICBpZiAodHlwZW9mIHYgPT09IHQpCisgICAgICAgIF9mYWlsKGBT
aG91bGRuJ3QgYmUgJHt0fWAsIG1zZyk7Cit9OworCitjb25zdCBpc0EgPSBhc3NlcnQuaXNBID0g
KHYsIHQsIG1zZykgPT4geworICAgIGlmICh0eXBlb2YgdiAhPT0gdCkKKyAgICAgICAgX2ZhaWwo
YFNob3VsZCBiZSAke3R9LCBnb3QgJHt0eXBlb2Yodil9YCwgbXNnKTsKK307CisKK2NvbnN0IGlz
Tm90VW5kZWYgPSBhc3NlcnQuaXNOb3RVbmRlZiA9ICh2LCBtc2cpID0+IGlzTm90QSh2LCAidW5k
ZWZpbmVkIiwgbXNnKTsKK2Fzc2VydC5pc1VuZGVmID0gKHYsIG1zZykgPT4gaXNBKHYsICJ1bmRl
ZmluZWQiLCBtc2cpOworYXNzZXJ0Lm5vdE9iamVjdCA9ICh2LCBtc2cpID0+IGlzTm90QSh2LCAi
b2JqZWN0IiwgbXNnKTsKK2NvbnN0IGlzT2JqZWN0ID0gYXNzZXJ0LmlzT2JqZWN0ID0gKHYsIG1z
ZykgPT4gaXNBKHYsICJvYmplY3QiLCBtc2cpOworYXNzZXJ0Lm5vdFN0cmluZyA9ICh2LCBtc2cp
ID0+IGlzTm90QSh2LCAic3RyaW5nIiwgbXNnKTsKK2Fzc2VydC5pc1N0cmluZyA9ICh2LCBtc2cp
ID0+IGlzQSh2LCAic3RyaW5nIiwgbXNnKTsKK2Fzc2VydC5ub3ROdW1iZXIgPSAodiwgbXNnKSA9
PiBpc05vdEEodiwgIm51bWJlciIsIG1zZyk7Cithc3NlcnQuaXNOdW1iZXIgPSAodiwgbXNnKSA9
PiBpc0EodiwgIm51bWJlciIsIG1zZyk7Cithc3NlcnQubm90RnVuY3Rpb24gPSAodiwgbXNnKSA9
PiBpc05vdEEodiwgImZ1bmN0aW9uIiwgbXNnKTsKK2Fzc2VydC5pc0Z1bmN0aW9uID0gKHYsIG1z
ZykgPT4gaXNBKHYsICJmdW5jdGlvbiIsIG1zZyk7CisKK2Fzc2VydC5oYXNPYmplY3RQcm9wZXJ0
eSA9IChvLCBwLCBtc2cpID0+IHsKKyAgICBpc09iamVjdChvLCBtc2cpOworICAgIGlzTm90VW5k
ZWYob1twXSwgbXNnLCBgZXhwZWN0ZWQgb2JqZWN0IHRvIGhhdmUgcHJvcGVydHkgJHtwfWApOwor
fTsKKworYXNzZXJ0LmlzQXJyYXkgPSAodiwgbXNnKSA9PiB7CisgICAgaWYgKCFBcnJheS5pc0Fy
cmF5KHYpKQorICAgICAgICBfZmFpbChgRXhwZWN0ZWQgYW4gYXJyYXksIGdvdCAke3R5cGVvZih2
KX1gLCBtc2cpOworfTsKKworYXNzZXJ0LmlzTm90QXJyYXkgPSAodiwgbXNnKSA9PiB7CisgICAg
aWYgKEFycmF5LmlzQXJyYXkodikpCisgICAgICAgIF9mYWlsKGBFeHBlY3RlZCB0byBub3QgYmUg
YW4gYXJyYXlgLCBtc2cpOworfTsKKworYXNzZXJ0LnRydXRoeSA9ICh2LCBtc2cpID0+IHsKKyAg
ICBpZiAoIXYpCisgICAgICAgIF9mYWlsKGBFeHBlY3RlZCB0cnV0aHlgLCBtc2cpOworfTsKKwor
YXNzZXJ0LmZhbHN5ID0gKHYsIG1zZykgPT4geworICAgIGlmICh2KQorICAgICAgICBfZmFpbChg
RXhwZWN0ZWQgZmFsc3lgLCBtc2cpOworfTsKKworYXNzZXJ0LmVxID0gKGxocywgcmhzLCBtc2cp
ID0+IHsKKyAgICBpZiAodHlwZW9mIGxocyAhPT0gdHlwZW9mIHJocykKKyAgICAgICAgX2ZhaWwo
YE5vdCB0aGUgc2FtZTogIiR7bGhzfSIgYW5kICIke3Joc30iYCwgbXNnKTsKKyAgICBpZiAoQXJy
YXkuaXNBcnJheShsaHMpICYmIEFycmF5LmlzQXJyYXkocmhzKSAmJiAobGhzLmxlbmd0aCA9PT0g
cmhzLmxlbmd0aCkpIHsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgIT09IGxocy5sZW5ndGg7
ICsraSkKKyAgICAgICAgICAgIGVxKGxoc1tpXSwgcmhzW2ldLCBtc2cpOworICAgIH0gZWxzZSBp
ZiAobGhzICE9PSByaHMpIHsKKyAgICAgICAgaWYgKHR5cGVvZiBsaHMgPT09ICJudW1iZXIiICYm
IGlzTmFOKGxocykgJiYgaXNOYU4ocmhzKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
X2ZhaWwoYE5vdCB0aGUgc2FtZTogIiR7bGhzfSIgYW5kICIke3Joc30iYCwgbXNnKTsKKyAgICB9
IGVsc2UgeworICAgICAgICBpZiAodHlwZW9mIGxocyA9PT0gIm51bWJlciIgJiYgKDEuMCAvIGxo
cyAhPT0gMS4wIC8gcmhzKSkgLy8gRGlzdGluZ3Vpc2ggLTAuMCBmcm9tIDAuMC4KKyAgICAgICAg
ICAgIF9mYWlsKGBOb3QgdGhlIHNhbWU6ICIke2xoc30iIGFuZCAiJHtyaHN9ImAsIG1zZyk7Cisg
ICAgfQorfTsKKworY29uc3QgY2Fub25pY2FsaXplSTMyID0gKG51bWJlcikgPT4geworICAgIGlm
IChNYXRoLnJvdW5kKG51bWJlcikgPT09IG51bWJlciAmJiBudW1iZXIgPj0gMiAqKiAzMSkKKyAg
ICAgICAgbnVtYmVyID0gbnVtYmVyIC0gMiAqKiAzMjsKKyAgICByZXR1cm4gbnVtYmVyOworfQor
Cithc3NlcnQuZXFJMzIgPSAobGhzLCByaHMsIG1zZykgPT4geworICAgIHJldHVybiBlcShjYW5v
bmljYWxpemVJMzIobGhzKSwgY2Fub25pY2FsaXplSTMyKHJocyksIG1zZyk7Cit9OworCithc3Nl
cnQuZ2UgPSAobGhzLCByaHMsIG1zZykgPT4geworICAgIGlzTm90VW5kZWYobGhzKTsKKyAgICBp
c05vdFVuZGVmKHJocyk7CisgICAgaWYgKCEobGhzID49IHJocykpCisgICAgICAgIF9mYWlsKGBF
eHBlY3RlZDogIiR7bGhzfSIgPCAiJHtyaHN9ImAsIG1zZyk7Cit9OworCithc3NlcnQubGUgPSAo
bGhzLCByaHMsIG1zZykgPT4geworICAgIGlzTm90VW5kZWYobGhzKTsKKyAgICBpc05vdFVuZGVm
KHJocyk7CisgICAgaWYgKCEobGhzIDw9IHJocykpCisgICAgICAgIF9mYWlsKGBFeHBlY3RlZDog
IiR7bGhzfSIgPiAiJHtyaHN9ImAsIG1zZyk7Cit9OworCitjb25zdCBfdGhyb3dzID0gKGZ1bmMs
IHR5cGUsIG1lc3NhZ2UsIC4uLmFyZ3MpID0+IHsKKyAgICB0cnkgeworICAgICAgICBmdW5jKC4u
LmFyZ3MpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiB0eXBl
KSB7CisgICAgICAgICAgICBpZiAoZS5tZXNzYWdlID09PSBtZXNzYWdlKQorICAgICAgICAgICAg
ICAgIHJldHVybiBlOworICAgICAgICAgICAgLy8gSWdub3JlIHNvdXJjZSBpbmZvcm1hdGlvbiBh
dCB0aGUgZW5kIG9mIHRoZSBlcnJvciBtZXNzYWdlIGlmIHRoZQorICAgICAgICAgICAgLy8gZXhw
ZWN0ZWQgbWVzc2FnZSBkaWRuJ3Qgc3BlY2lmeSB0aGF0IGluZm9ybWF0aW9uLiBTb21ldGltZXMg
aXQKKyAgICAgICAgICAgIC8vIGNoYW5nZXMsIG9yIGl0J3MgdHJpY2t5IHRvIGdldCBqdXN0IHJp
Z2h0LgorICAgICAgICAgICAgY29uc3QgZXZhbHVhdGluZ0luZGV4ID0gZS5tZXNzYWdlLmluZGV4
T2YoIiAoZXZhbHVhdGluZyAnIik7CisgICAgICAgICAgICBpZiAoZXZhbHVhdGluZ0luZGV4ICE9
PSAtMSkgeworICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFuTWVzc2FnZSA9IGUubWVzc2FnZS5z
dWJzdHJpbmcoMCwgZXZhbHVhdGluZ0luZGV4KTsKKyAgICAgICAgICAgICAgICBpZiAoY2xlYW5N
ZXNzYWdlID09PSBtZXNzYWdlKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBfZmFpbChgRXhwZWN0ZWQgdG8gdGhyb3cgYSAk
e3R5cGUubmFtZX0gd2l0aCBtZXNzYWdlICIke21lc3NhZ2V9IiwgZ290ICR7ZS5uYW1lfSB3aXRo
IG1lc3NhZ2UgIiR7ZS5tZXNzYWdlfSJgKTsKKyAgICB9CisgICAgX2ZhaWwoYEV4cGVjdGVkIHRv
IHRocm93IGEgJHt0eXBlLm5hbWV9IHdpdGggbWVzc2FnZSAiJHttZXNzYWdlfSJgKTsKK307CisK
K2NvbnN0IF9pbnN0YW5jZW9mID0gKG9iaiwgdHlwZSwgbXNnKSA9PiB7CisgICAgaWYgKCEob2Jq
IGluc3RhbmNlb2YgdHlwZSkpCisgICAgICAgIF9mYWlsKGBFeHBlY3RlZCBhICR7dHlwZW9mKHR5
cGUpfSwgZ290ICR7dHlwZW9mIG9ian1gKTsKK307CisKKy8vIFVzZSB1bmRlcnNjb3JlIG5hbWVz
IHRvIGF2b2lkIGNsYXNoaW5nIHdpdGggYnVpbHRpbiBuYW1lcy4KK2Fzc2VydC50aHJvd3MgPSBf
dGhyb3dzOworYXNzZXJ0Lmluc3RhbmNlb2YgPSBfaW5zdGFuY2VvZjsKKworY29uc3QgYXN5bmNU
ZXN0SW1wbCA9IChwcm9taXNlLCB0aGVuRnVuYywgY2F0Y2hGdW5jKSA9PiB7CisgICAgYXN5bmNU
ZXN0U3RhcnQoMSk7CisgICAgcHJvbWlzZS50aGVuKHRoZW5GdW5jKS5jYXRjaChjYXRjaEZ1bmMp
OworfTsKKworY29uc3QgcHJpbnRFeG4gPSAoZSkgPT4geworICAgIHByaW50KCJGYWlsZWQ6ICIs
IGUpOworICAgIHByaW50KGUuc3RhY2spOworfTsKKworYXNzZXJ0LmFzeW5jVGVzdCA9IChwcm9t
aXNlKSA9PiBhc3luY1Rlc3RJbXBsKHByb21pc2UsIGFzeW5jVGVzdFBhc3NlZCwgcHJpbnRFeG4p
OworYXNzZXJ0LmFzeW5jVGVzdEVxID0gKHByb21pc2UsIGV4cGVjdGVkKSA9PiB7CisgICAgY29u
c3QgdGhlbkNoZWNrID0gKHZhbHVlKSA9PiB7CisgICAgICAgIGlmICh2YWx1ZSA9PT0gZXhwZWN0
ZWQpCisgICAgICAgICAgICByZXR1cm4gYXN5bmNUZXN0UGFzc2VkKCk7CisgICAgICAgIHByaW50
KCJGYWlsZWQ6IGdvdCAiLCB2YWx1ZSwgIiBidXQgZXhwZWN0ZWQgIiwgZXhwZWN0ZWQpOworCisg
ICAgfQorICAgIGFzeW5jVGVzdEltcGwocHJvbWlzZSwgdGhlbkNoZWNrLCBwcmludEV4bik7Cit9
OworCitjb25zdCBXQVNNX0pTT04gPSBgCit7CisgICAgImNvbW1lbnRzIjogWyJUaGlzIGZpbGUg
ZGVzY3JpYmVzIHRoZSBXZWJBc3NlbWJseSBJU0EuIiwKKyAgICAgICAgICAgICAgICAgIlNjcmlw
dHMgaW4gdGhpcyBmb2xkZXIgYXV0by1nZW5lcmF0ZSBDKysgY29kZSBmb3IgSmF2YVNjcmlwdENv
cmUgYXMgd2VsbCBhcyB0aGUgdGVzdGluZyBEU0wgd2hpY2ggV2ViS2l0J3MgV2ViQXNzZW1ibHkg
dGVzdHMgdXNlLiIKKyAgICAgICAgICAgICAgICBdLAorICAgICJwcmVhbWJsZSI6IFsKKyAgICAg
ICAgeyAibmFtZSI6ICJtYWdpYyBudW1iZXIiLCAidHlwZSI6ICJ1aW50MzIiLCAidmFsdWUiOiAx
ODM2Mjc4MDE2LCAiZGVzY3JpcHRpb24iOiAiTlVMTCBjaGFyYWN0ZXIgZm9sbG93ZWQgYnkgJ2Fz
bSciIH0sCisgICAgICAgIHsgIm5hbWUiOiAidmVyc2lvbiIsICAgICAgInR5cGUiOiAidWludDMy
IiwgInZhbHVlIjogICAgICAgICAgMSwgImRlc2NyaXB0aW9uIjogIlZlcnNpb24gbnVtYmVyIiB9
CisgICAgXSwKKyAgICAidHlwZSIgOiB7CisgICAgICAgICJpMzIiOiAgICAgeyAidHlwZSI6ICJ2
YXJpbnQ3IiwgInZhbHVlIjogIC0xLCAiYjN0eXBlIjogIkIzOjpJbnQzMiIgfSwKKyAgICAgICAg
Imk2NCI6ICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTIsICJiM3R5cGUiOiAi
QjM6OkludDY0IiB9LAorICAgICAgICAiZjMyIjogICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2
YWx1ZSI6ICAtMywgImIzdHlwZSI6ICJCMzo6RmxvYXQiIH0sCisgICAgICAgICJmNjQiOiAgICAg
eyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC00LCAiYjN0eXBlIjogIkIzOjpEb3VibGUi
IH0sCisgICAgICAgICJhbnlmdW5jIjogeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogLTE2
LCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9LAorICAgICAgICAiZnVuYyI6ICAgIHsgInR5cGUiOiAi
dmFyaW50NyIsICJ2YWx1ZSI6IC0zMiwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfSwKKyAgICAgICAg
InZvaWQiOiAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAtNjQsICJiM3R5cGUiOiAi
QjM6OlZvaWQiIH0KKyAgICB9LAorICAgICJ2YWx1ZV90eXBlIjogWyJpMzIiLCAiaTY0IiwgImYz
MiIsICJmNjQiXSwKKyAgICAiYmxvY2tfdHlwZSI6IFsiaTMyIiwgImk2NCIsICJmMzIiLCAiZjY0
IiwgInZvaWQiXSwKKyAgICAiZWxlbV90eXBlIjogWyJhbnlmdW5jIl0sCisgICAgImV4dGVybmFs
X2tpbmQiOiB7CisgICAgICAgICJGdW5jdGlvbiI6IHsgInR5cGUiOiAidWludDgiLCAidmFsdWUi
OiAwIH0sCisgICAgICAgICJUYWJsZSI6ICAgIHsgInR5cGUiOiAidWludDgiLCAidmFsdWUiOiAx
IH0sCisgICAgICAgICJNZW1vcnkiOiAgIHsgInR5cGUiOiAidWludDgiLCAidmFsdWUiOiAyIH0s
CisgICAgICAgICJHbG9iYWwiOiAgIHsgInR5cGUiOiAidWludDgiLCAidmFsdWUiOiAzIH0KKyAg
ICB9LAorICAgICJzZWN0aW9uIiA6IHsKKyAgICAgICAgIlR5cGUiOiAgICAgeyAidHlwZSI6ICJ2
YXJ1aW50NyIsICJ2YWx1ZSI6ICAxLCAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb24gc2lnbmF0dXJl
IGRlY2xhcmF0aW9ucyIgfSwKKyAgICAgICAgIkltcG9ydCI6ICAgeyAidHlwZSI6ICJ2YXJ1aW50
NyIsICJ2YWx1ZSI6ICAyLCAiZGVzY3JpcHRpb24iOiAiSW1wb3J0IGRlY2xhcmF0aW9ucyIgfSwK
KyAgICAgICAgIkZ1bmN0aW9uIjogeyAidHlwZSI6ICJ2YXJ1aW50NyIsICJ2YWx1ZSI6ICAzLCAi
ZGVzY3JpcHRpb24iOiAiRnVuY3Rpb24gZGVjbGFyYXRpb25zIiB9LAorICAgICAgICAiVGFibGUi
OiAgICB7ICJ0eXBlIjogInZhcnVpbnQ3IiwgInZhbHVlIjogIDQsICJkZXNjcmlwdGlvbiI6ICJJ
bmRpcmVjdCBmdW5jdGlvbiB0YWJsZSBhbmQgb3RoZXIgdGFibGVzIiB9LAorICAgICAgICAiTWVt
b3J5IjogICB7ICJ0eXBlIjogInZhcnVpbnQ3IiwgInZhbHVlIjogIDUsICJkZXNjcmlwdGlvbiI6
ICJNZW1vcnkgYXR0cmlidXRlcyIgfSwKKyAgICAgICAgIkdsb2JhbCI6ICAgeyAidHlwZSI6ICJ2
YXJ1aW50NyIsICJ2YWx1ZSI6ICA2LCAiZGVzY3JpcHRpb24iOiAiR2xvYmFsIGRlY2xhcmF0aW9u
cyIgfSwKKyAgICAgICAgIkV4cG9ydCI6ICAgeyAidHlwZSI6ICJ2YXJ1aW50NyIsICJ2YWx1ZSI6
ICA3LCAiZGVzY3JpcHRpb24iOiAiRXhwb3J0cyIgfSwKKyAgICAgICAgIlN0YXJ0IjogICAgeyAi
dHlwZSI6ICJ2YXJ1aW50NyIsICJ2YWx1ZSI6ICA4LCAiZGVzY3JpcHRpb24iOiAiU3RhcnQgZnVu
Y3Rpb24gZGVjbGFyYXRpb24iIH0sCisgICAgICAgICJFbGVtZW50IjogIHsgInR5cGUiOiAidmFy
dWludDciLCAidmFsdWUiOiAgOSwgImRlc2NyaXB0aW9uIjogIkVsZW1lbnRzIHNlY3Rpb24iIH0s
CisgICAgICAgICJDb2RlIjogICAgIHsgInR5cGUiOiAidmFydWludDciLCAidmFsdWUiOiAxMCwg
ImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9uIGJvZGllcyAoY29kZSkiIH0sCisgICAgICAgICJEYXRh
IjogICAgIHsgInR5cGUiOiAidmFydWludDciLCAidmFsdWUiOiAxMSwgImRlc2NyaXB0aW9uIjog
IkRhdGEgc2VnbWVudHMiIH0KKyAgICB9LAorICAgICJvcGNvZGUiOiB7CisgICAgICAgICJ1bnJl
YWNoYWJsZSI6ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29udHJvbCIsICAgICJ2YWx1ZSI6ICAg
MCwgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAg
ICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAidHJhcCBpbW1lZGlhdGVseSIgfSwKKyAgICAgICAgImJsb2NrIjogICAg
ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb250cm9sIiwgICAgInZhbHVlIjogICAyLCAicmV0
dXJuIjogWyJjb250cm9sIl0sICAicGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAgICAgICAg
ICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInNpZyIsICJ0eXBlIjogImJsb2NrX3R5cGUifV0sICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJiZWdpbiBhIHNlcXVlbmNlIG9mIGV4cHJlc3Npb25zLCB5aWVsZGluZyAwIG9yIDEg
dmFsdWVzIiB9LAorICAgICAgICAibG9vcCI6ICAgICAgICAgICAgICAgIHsgImNhdGVnb3J5Ijog
ImNvbnRyb2wiLCAgICAidmFsdWUiOiAgIDMsICJyZXR1cm4iOiBbImNvbnRyb2wiXSwgICJwYXJh
bWV0ZXIiOiBbXSwgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAi
c2lnIiwgInR5cGUiOiAiYmxvY2tfdHlwZSJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogImJlZ2luIGEgYmxvY2sgd2hp
Y2ggY2FuIGFsc28gZm9ybSBjb250cm9sIGZsb3cgbG9vcHMiIH0sCisgICAgICAgICJpZiI6ICAg
ICAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29udHJvbCIsICAgICJ2YWx1ZSI6ICAgNCwg
InJldHVybiI6IFsiY29udHJvbCJdLCAgInBhcmFtZXRlciI6IFsiYm9vbCJdLCAgICAgICAgICAg
ICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJzaWciLCAidHlwZSI6ICJibG9ja190eXBlIn1d
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiYmVnaW4gaWYgZXhwcmVzc2lvbiIgfSwKKyAgICAgICAgImVsc2UiOiAgICAg
ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb250cm9sIiwgICAgInZhbHVlIjogICA1LCAicmV0
dXJuIjogWyJjb250cm9sIl0sICAicGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAgICAgICAg
ICJpbW1lZGlhdGUiOiBbXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJiZWdpbiBlbHNlIGV4cHJlc3Npb24gb2YgaWYiIH0sCisgICAgICAgICJzZWxlY3Qi
OiAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29udHJvbCIsICAgICJ2YWx1ZSI6ICAyNywg
InJldHVybiI6IFsicHJldiJdLCAgICAgInBhcmFtZXRlciI6IFsiYW55IiwgInByZXYiLCAiYm9v
bCJdLCAiaW1tZWRpYXRlIjogW10sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAic2VsZWN0IG9uZSBvZiB0d28gdmFsdWVzIGJhc2VkIG9uIGNvbmRpdGlvbiIg
fSwKKyAgICAgICAgImJyIjogICAgICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb250cm9s
IiwgICAgInZhbHVlIjogIDEyLCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1ldGVyIjog
W10sICAgICAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInJlbGF0aXZl
X2RlcHRoIiwgInR5cGUiOiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJicmVhayB0aGF0IHRhcmdldHMgYW4gb3V0
ZXIgbmVzdGVkIGJsb2NrIiB9LAorICAgICAgICAiYnJfaWYiOiAgICAgICAgICAgICAgIHsgImNh
dGVnb3J5IjogImNvbnRyb2wiLCAgICAidmFsdWUiOiAgMTMsICJyZXR1cm4iOiBbXSwgICAgICAg
ICAgICJwYXJhbWV0ZXIiOiBbXSwgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7
Im5hbWUiOiAicmVsYXRpdmVfZGVwdGgiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogImNvbmRpdGlv
bmFsIGJyZWFrIHRoYXQgdGFyZ2V0cyBhbiBvdXRlciBuZXN0ZWQgYmxvY2siIH0sCisgICAgICAg
ICJicl90YWJsZSI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29udHJvbCIsICAgICJ2YWx1
ZSI6ICAxNCwgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAg
ICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJ0YXJnZXRfY291bnQiLCAgICJ0
eXBlIjogInZhcnVpbnQzMiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAibnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIHRhcmdldF90YWJs
ZSJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAidGFyZ2V0
X3RhYmxlIiwgICAidHlwZSI6ICJ2YXJ1aW50MzIqIiwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInRhcmdldCBlbnRyaWVzIHRoYXQgaW5k
aWNhdGUgYW4gb3V0ZXIgYmxvY2sgb3IgbG9vcCB0byB3aGljaCB0byBicmVhayJ9LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAiZGVmYXVsdF90YXJnZXQiLCAi
dHlwZSI6ICJ2YXJ1aW50MzIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogImFuIG91dGVyIGJsb2NrIG9yIGxvb3AgdG8gd2hpY2ggdG8g
YnJlYWsgaW4gdGhlIGRlZmF1bHQgY2FzZSJ9XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJicmFuY2ggdGFibGUgY29udHJvbCBmbG93IGNvbnN0cnVjdCIgfSwKKyAgICAgICAgInJldHVy
biI6ICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb250cm9sIiwgICAgInZhbHVlIjogIDE1
LCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAg
ICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAicmV0dXJuIHplcm8gb3Igb25lIHZhbHVlIGZyb20gdGhpcyBmdW5jdGlv
biIgfSwKKyAgICAgICAgImRyb3AiOiAgICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb250
cm9sIiwgICAgInZhbHVlIjogIDI2LCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1ldGVy
IjogWyJhbnkiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiaWdub3JlIHZhbHVlIiB9LAorICAg
ICAgICAibm9wIjogICAgICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbnRyb2wiLCAgICAi
dmFsdWUiOiAgIDEsICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbXSwgICAg
ICAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJubyBvcGVyYXRpb24iIH0sCisgICAgICAgICJlbmQi
OiAgICAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29udHJvbCIsICAgICJ2YWx1ZSI6ICAx
MSwgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogImVuZCBhIGJsb2NrLCBsb29wLCBvciBpZiIgfSwKKyAgICAgICAgImkz
Mi5jb25zdCI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjog
IDY1LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogW10sICAgICAgICAgICAg
ICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJ2YWx1ZSIsICAgICAgICAgICJ0eXBl
IjogInZhcmludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCB2YWx1ZSBpbnRlcnByZXRlZCBhcyBpMzIiIH0s
CisgICAgICAgICJpNjQuY29uc3QiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIs
ICAgICJ2YWx1ZSI6ICA2NiwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFtd
LCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidmFsdWUiLCAg
ICAgICAgICAidHlwZSI6ICJ2YXJpbnQ2NCJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogImEgY29uc3RhbnQgdmFsdWUgaW50ZXJwcmV0
ZWQgYXMgaTY0IiB9LAorICAgICAgICAiZjY0LmNvbnN0IjogICAgICAgICAgIHsgImNhdGVnb3J5
IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAgNjgsICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJw
YXJhbWV0ZXIiOiBbXSwgICAgICAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1l
IjogInZhbHVlIiwgICAgICAgICAgInR5cGUiOiAiZG91YmxlIn1dLCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJhIGNvbnN0YW50IHZh
bHVlIGludGVycHJldGVkIGFzIGY2NCIgfSwKKyAgICAgICAgImYzMi5jb25zdCI6ICAgICAgICAg
ICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjogIDY3LCAicmV0dXJuIjogWyJm
MzIiXSwgICAgICAicGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAgICAgICAgICAiaW1tZWRp
YXRlIjogW3sibmFtZSI6ICJ2YWx1ZSIsICAgICAgICAgICJ0eXBlIjogImZsb2F0In1dLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJh
IGNvbnN0YW50IHZhbHVlIGludGVycHJldGVkIGFzIGYzMiIgfSwKKyAgICAgICAgImdldF9sb2Nh
bCI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjogIDMyLCAi
cmV0dXJuIjogWyJhbnkiXSwgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAg
ICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAibG9jYWxfaW5kZXgiLCAgICAidHlwZSI6ICJ2YXJ1
aW50MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogInJlYWQgYSBsb2NhbCB2YXJpYWJsZSBvciBwYXJhbWV0ZXIiIH0sCisgICAgICAg
ICJzZXRfbG9jYWwiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1
ZSI6ICAzMywgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFsiYW55Il0sICAg
ICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImxvY2FsX2luZGV4IiwgICAgInR5
cGUiOiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJ3cml0ZSBhIGxvY2FsIHZhcmlhYmxlIG9yIHBhcmFtZXRlciIg
fSwKKyAgICAgICAgInRlZV9sb2NhbCI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFs
IiwgICAgInZhbHVlIjogIDM0LCAicmV0dXJuIjogWyJhbnkiXSwgICAgICJwYXJhbWV0ZXIiOiBb
ImFueSJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImxvY2FsX2lu
ZGV4IiwgICAgInR5cGUiOiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ3cml0ZSBhIGxvY2FsIHZhcmlhYmxlIG9y
IHBhcmFtZXRlciBhbmQgcmV0dXJuIHRoZSBzYW1lIHZhbHVlIiB9LAorICAgICAgICAiZ2V0X2ds
b2JhbCI6ICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAgMzUs
ICJyZXR1cm4iOiBbImFueSJdLCAgICJwYXJhbWV0ZXIiOiBbXSwgICAgICAgICAgICAgICAgICAg
ICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImdsb2JhbF9pbmRleCIsICAgInR5cGUiOiAidmFy
dWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJyZWFkIGEgZ2xvYmFsIHZhcmlhYmxlIiB9LAorICAgICAgICAic2V0X2dsb2Jh
bCI6ICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAgMzYsICJy
ZXR1cm4iOiBbXSwgICAgICAgICAicGFyYW1ldGVyIjogWyJhbnkiXSwgICAgICAgICAgICAgICAi
aW1tZWRpYXRlIjogW3sibmFtZSI6ICJnbG9iYWxfaW5kZXgiLCAgICJ0eXBlIjogInZhcnVpbnQz
MiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAid3JpdGUgYSBnbG9iYWwgdmFyaWFibGUiIH0sCisgICAgICAgICJjYWxsIjogICAgICAg
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY2FsbCIsICAgICAgICJ2YWx1ZSI6ICAxNiwgInJldHVy
biI6IFsiY2FsbCJdLCAgICAgInBhcmFtZXRlciI6IFsiY2FsbCJdLCAgICAgICAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZnVuY3Rpb25faW5kZXgiLCAidHlwZSI6ICJ2YXJ1aW50
MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogImNhbGwgYSBmdW5jdGlvbiBieSBpdHMgaW5kZXgiIH0sCisgICAgICAgICJjYWxsX2lu
ZGlyZWN0IjogICAgICAgeyAiY2F0ZWdvcnkiOiAiY2FsbCIsICAgICAgICJ2YWx1ZSI6ICAxNywg
InJldHVybiI6IFsiY2FsbCJdLCAgICAgInBhcmFtZXRlciI6IFsiY2FsbCJdLCAgICAgICAgICAg
ICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidHlwZV9pbmRleCIsICAgICAidHlwZSI6ICJ2
YXJ1aW50MzIifSwgeyJuYW1lIjogInJlc2VydmVkIiwgICAgICJ0eXBlIjogInZhcnVpbnQxIn1d
LCAiZGVzY3JpcHRpb24iOiAiY2FsbCBhIGZ1bmN0aW9uIGluZGlyZWN0IHdpdGggYW4gZXhwZWN0
ZWQgc2lnbmF0dXJlIiB9LAorICAgICAgICAiaTMyLmxvYWQ4X3MiOiAgICAgICAgIHsgImNhdGVn
b3J5IjogIm1lbW9yeSIsICAgICAidmFsdWUiOiAgNDQsICJyZXR1cm4iOiBbImkzMiJdLCAgICAg
ICJwYXJhbWV0ZXIiOiBbImFkZHIiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJu
YW1lIjogImZsYWdzIiwgICAgICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJv
ZmZzZXQiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJsb2FkIGZyb20g
bWVtb3J5IiB9LAorICAgICAgICAiaTMyLmxvYWQ4X3UiOiAgICAgICAgIHsgImNhdGVnb3J5Ijog
Im1lbW9yeSIsICAgICAidmFsdWUiOiAgNDUsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJh
bWV0ZXIiOiBbImFkZHIiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjog
ImZsYWdzIiwgICAgICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQi
LCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJsb2FkIGZyb20gbWVtb3J5
IiB9LAorICAgICAgICAiaTMyLmxvYWQxNl9zIjogICAgICAgIHsgImNhdGVnb3J5IjogIm1lbW9y
eSIsICAgICAidmFsdWUiOiAgNDYsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIi
OiBbImFkZHIiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdz
IiwgICAgICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQiLCAidHlw
ZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJsb2FkIGZyb20gbWVtb3J5IiB9LAor
ICAgICAgICAiaTMyLmxvYWQxNl91IjogICAgICAgIHsgImNhdGVnb3J5IjogIm1lbW9yeSIsICAg
ICAidmFsdWUiOiAgNDcsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImFk
ZHIiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdzIiwgICAg
ICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJ2
YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJsb2FkIGZyb20gbWVtb3J5IiB9LAorICAgICAg
ICAiaTY0LmxvYWQ4X3MiOiAgICAgICAgIHsgImNhdGVnb3J5IjogIm1lbW9yeSIsICAgICAidmFs
dWUiOiAgNDgsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImFkZHIiXSwg
ICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdzIiwgICAgICAgICAg
InR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJ2YXJ1aW50
MzIifV0sICJkZXNjcmlwdGlvbiI6ICJsb2FkIGZyb20gbWVtb3J5IiB9LAorICAgICAgICAiaTY0
LmxvYWQ4X3UiOiAgICAgICAgIHsgImNhdGVnb3J5IjogIm1lbW9yeSIsICAgICAidmFsdWUiOiAg
NDksICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImFkZHIiXSwgICAgICAg
ICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdzIiwgICAgICAgICAgInR5cGUi
OiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0s
ICJkZXNjcmlwdGlvbiI6ICJsb2FkIGZyb20gbWVtb3J5IiB9LAorICAgICAgICAiaTY0LmxvYWQx
Nl9zIjogICAgICAgIHsgImNhdGVnb3J5IjogIm1lbW9yeSIsICAgICAidmFsdWUiOiAgNTAsICJy
ZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImFkZHIiXSwgICAgICAgICAgICAg
ICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdzIiwgICAgICAgICAgInR5cGUiOiAidmFy
dWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNj
cmlwdGlvbiI6ICJsb2FkIGZyb20gbWVtb3J5IiB9LAorICAgICAgICAiaTY0LmxvYWQxNl91Ijog
ICAgICAgIHsgImNhdGVnb3J5IjogIm1lbW9yeSIsICAgICAidmFsdWUiOiAgNTEsICJyZXR1cm4i
OiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImFkZHIiXSwgICAgICAgICAgICAgICAgICJp
bW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdzIiwgICAgICAgICAgInR5cGUiOiAidmFydWludDMy
In0sIHsibmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlv
biI6ICJsb2FkIGZyb20gbWVtb3J5IiB9LAorICAgICAgICAiaTY0LmxvYWQzMl9zIjogICAgICAg
IHsgImNhdGVnb3J5IjogIm1lbW9yeSIsICAgICAidmFsdWUiOiAgNTIsICJyZXR1cm4iOiBbImk2
NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImFkZHIiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlh
dGUiOiBbeyJuYW1lIjogImZsYWdzIiwgICAgICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsi
bmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJs
b2FkIGZyb20gbWVtb3J5IiB9LAorICAgICAgICAiaTY0LmxvYWQzMl91IjogICAgICAgIHsgImNh
dGVnb3J5IjogIm1lbW9yeSIsICAgICAidmFsdWUiOiAgNTMsICJyZXR1cm4iOiBbImk2NCJdLCAg
ICAgICJwYXJhbWV0ZXIiOiBbImFkZHIiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBb
eyJuYW1lIjogImZsYWdzIiwgICAgICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6
ICJvZmZzZXQiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJsb2FkIGZy
b20gbWVtb3J5IiB9LAorICAgICAgICAiaTMyLmxvYWQiOiAgICAgICAgICAgIHsgImNhdGVnb3J5
IjogIm1lbW9yeSIsICAgICAidmFsdWUiOiAgNDAsICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJw
YXJhbWV0ZXIiOiBbImFkZHIiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1l
IjogImZsYWdzIiwgICAgICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZz
ZXQiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJsb2FkIGZyb20gbWVt
b3J5IiB9LAorICAgICAgICAiaTY0LmxvYWQiOiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogIm1l
bW9yeSIsICAgICAidmFsdWUiOiAgNDEsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0
ZXIiOiBbImFkZHIiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZs
YWdzIiwgICAgICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQiLCAi
dHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJsb2FkIGZyb20gbWVtb3J5IiB9
LAorICAgICAgICAiZjMyLmxvYWQiOiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogIm1lbW9yeSIs
ICAgICAidmFsdWUiOiAgNDIsICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBb
ImFkZHIiXSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdzIiwg
ICAgICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6
ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJsb2FkIGZyb20gbWVtb3J5IiB9LAorICAg
ICAgICAiZjY0LmxvYWQiOiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogIm1lbW9yeSIsICAgICAi
dmFsdWUiOiAgNDMsICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImFkZHIi
XSwgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdzIiwgICAgICAg
ICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJ2YXJ1
aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJsb2FkIGZyb20gbWVtb3J5IiB9LAorICAgICAgICAi
aTMyLnN0b3JlOCI6ICAgICAgICAgIHsgImNhdGVnb3J5IjogIm1lbW9yeSIsICAgICAidmFsdWUi
OiAgNTgsICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImFkZHIiLCAiaTMy
Il0sICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdzIiwgICAgICAgICAgInR5
cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJ2YXJ1aW50MzIi
fV0sICJkZXNjcmlwdGlvbiI6ICJzdG9yZSB0byBtZW1vcnkiIH0sCisgICAgICAgICJpMzIuc3Rv
cmUxNiI6ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA1OSwg
InJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFsiYWRkciIsICJpMzIiXSwgICAg
ICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2
YXJ1aW50MzIifSwgeyJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRl
c2NyaXB0aW9uIjogInN0b3JlIHRvIG1lbW9yeSIgfSwKKyAgICAgICAgImk2NC5zdG9yZTgiOiAg
ICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVlIjogIDYwLCAicmV0dXJu
IjogW10sICAgICAgICAgICAicGFyYW1ldGVyIjogWyJhZGRyIiwgImk2NCJdLCAgICAgICAgICAi
aW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQz
MiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRp
b24iOiAic3RvcmUgdG8gbWVtb3J5IiB9LAorICAgICAgICAiaTY0LnN0b3JlMTYiOiAgICAgICAg
IHsgImNhdGVnb3J5IjogIm1lbW9yeSIsICAgICAidmFsdWUiOiAgNjEsICJyZXR1cm4iOiBbXSwg
ICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImFkZHIiLCAiaTY0Il0sICAgICAgICAgICJpbW1lZGlh
dGUiOiBbeyJuYW1lIjogImZsYWdzIiwgICAgICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsi
bmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJz
dG9yZSB0byBtZW1vcnkiIH0sCisgICAgICAgICJpNjQuc3RvcmUzMiI6ICAgICAgICAgeyAiY2F0
ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA2MiwgInJldHVybiI6IFtdLCAgICAgICAg
ICAgInBhcmFtZXRlciI6IFsiYWRkciIsICJpNjQiXSwgICAgICAgICAgImltbWVkaWF0ZSI6IFt7
Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjog
Im9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjogInN0b3JlIHRv
IG1lbW9yeSIgfSwKKyAgICAgICAgImkzMi5zdG9yZSI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6
ICJtZW1vcnkiLCAgICAgInZhbHVlIjogIDU0LCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFy
YW1ldGVyIjogWyJhZGRyIiwgImkzMiJdLCAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6
ICJmbGFncyIsICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0
IiwgInR5cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAic3RvcmUgdG8gbWVtb3J5
IiB9LAorICAgICAgICAiaTY0LnN0b3JlIjogICAgICAgICAgIHsgImNhdGVnb3J5IjogIm1lbW9y
eSIsICAgICAidmFsdWUiOiAgNTUsICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIi
OiBbImFkZHIiLCAiaTY0Il0sICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdz
IiwgICAgICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQiLCAidHlw
ZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJzdG9yZSB0byBtZW1vcnkiIH0sCisg
ICAgICAgICJmMzIuc3RvcmUiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAg
ICJ2YWx1ZSI6ICA1NiwgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFsiYWRk
ciIsICJmMzIiXSwgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAg
ICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZh
cnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjogInN0b3JlIHRvIG1lbW9yeSIgfSwKKyAgICAgICAg
ImY2NC5zdG9yZSI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVl
IjogIDU3LCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1ldGVyIjogWyJhZGRyIiwgImY2
NCJdLCAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0
eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5cGUiOiAidmFydWludDMy
In1dLCAiZGVzY3JpcHRpb24iOiAic3RvcmUgdG8gbWVtb3J5IiB9LAorICAgICAgICAiY3VycmVu
dF9tZW1vcnkiOiAgICAgIHsgImNhdGVnb3J5IjogIm9wZXJhdGlvbiIsICAidmFsdWUiOiAgNjMs
ICJyZXR1cm4iOiBbInNpemUiXSwgICAgICJwYXJhbWV0ZXIiOiBbXSwgICAgICAgICAgICAgICAg
ICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdzIiwgInR5cGUiOiAidmFydWludDMy
In1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInF1ZXJ5
IHRoZSBzaXplIG9mIG1lbW9yeSIgfSwKKyAgICAgICAgImdyb3dfbWVtb3J5IjogICAgICAgICB7
ICJjYXRlZ29yeSI6ICJvcGVyYXRpb24iLCAgInZhbHVlIjogIDY0LCAicmV0dXJuIjogWyJzaXpl
Il0sICAgICAicGFyYW1ldGVyIjogWyJzaXplIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRl
IjogW3sibmFtZSI6ICJmbGFncyIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJncm93IHRoZSBzaXplIG9mIG1lbW9y
eSIgfSwKKyAgICAgICAgImkzMi5hZGQiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0
aG1ldGljIiwgInZhbHVlIjogMTA2LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVy
IjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkFk
ZCIgICAgICAgICAgfSwKKyAgICAgICAgImkzMi5zdWIiOiAgICAgICAgICAgICB7ICJjYXRlZ29y
eSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTA3LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAi
cGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJi
M29wIjogIlN1YiIgICAgICAgICAgfSwKKyAgICAgICAgImkzMi5tdWwiOiAgICAgICAgICAgICB7
ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTA4LCAicmV0dXJuIjogWyJpMzIi
XSwgICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRl
IjogW10sICJiM29wIjogIk11bCIgICAgICAgICAgfSwKKyAgICAgICAgImkzMi5kaXZfcyI6ICAg
ICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTA5LCAicmV0dXJu
IjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAi
aW1tZWRpYXRlIjogW10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImkzMi5k
aXZfdSI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTEw
LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAg
ICAgICAgICAiaW1tZWRpYXRlIjogW10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgImkzMi5yZW1fcyI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZh
bHVlIjogMTExLCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAi
aTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10gICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICAgICAgImkzMi5yZW1fdSI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1l
dGljIiwgInZhbHVlIjogMTEyLCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjog
WyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10gICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgImkzMi5hbmQiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6
ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTEzLCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFy
YW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29w
IjogIkJpdEFuZCIgICAgICAgfSwKKyAgICAgICAgImkzMi5vciI6ICAgICAgICAgICAgICB7ICJj
YXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTE0LCAicmV0dXJuIjogWyJpMzIiXSwg
ICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjog
W10sICJiM29wIjogIkJpdE9yIiAgICAgICAgfSwKKyAgICAgICAgImkzMi54b3IiOiAgICAgICAg
ICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTE1LCAicmV0dXJuIjog
WyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAiaW1t
ZWRpYXRlIjogW10sICJiM29wIjogIkJpdFhvciIgICAgICAgfSwKKyAgICAgICAgImkzMi5zaGwi
OiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTE2LCAi
cmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAgICAg
ICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIlNobCIgICAgICAgICAgfSwKKyAgICAgICAg
ImkzMi5zaHJfdSI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVl
IjogMTE4LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiaTMy
Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIlpTaHIiICAgICAgICAgfSwK
KyAgICAgICAgImkzMi5zaHJfcyI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGlj
IiwgInZhbHVlIjogMTE3LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJp
MzIiLCAiaTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIlNTaHIiICAg
ICAgICAgfSwKKyAgICAgICAgImkzMi5yb3RyIjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJh
cml0aG1ldGljIiwgInZhbHVlIjogMTIwLCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1l
dGVyIjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjog
IlJvdFIiICAgICAgICAgfSwKKyAgICAgICAgImkzMi5yb3RsIjogICAgICAgICAgICB7ICJjYXRl
Z29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTE5LCAicmV0dXJuIjogWyJpMzIiXSwgICAg
ICAicGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10s
ICJiM29wIjogIlJvdEwiICAgICAgICAgfSwKKyAgICAgICAgImkzMi5lcSI6ICAgICAgICAgICAg
ICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDcwLCAicmV0dXJuIjogWyJi
b29sIl0sICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAiaW1tZWRp
YXRlIjogW10sICJiM29wIjogIkVxdWFsIiAgICAgICAgfSwKKyAgICAgICAgImkzMi5uZSI6ICAg
ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDcxLCAicmV0
dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAg
ICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIk5vdEVxdWFsIiAgICAgfSwKKyAgICAgICAgImkz
Mi5sdF9zIjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjog
IDcyLCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0s
ICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkxlc3NUaGFuIiAgICAgfSwKKyAg
ICAgICAgImkzMi5sZV9zIjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwg
InZhbHVlIjogIDc2LCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJpMzIi
LCAiaTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkxlc3NFcXVhbCIg
ICAgfSwKKyAgICAgICAgImkzMi5sdF91IjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21w
YXJpc29uIiwgInZhbHVlIjogIDczLCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVy
IjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkJl
bG93IiAgICAgICAgfSwKKyAgICAgICAgImkzMi5sZV91IjogICAgICAgICAgICB7ICJjYXRlZ29y
eSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDc3LCAicmV0dXJuIjogWyJib29sIl0sICAgICAi
cGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJi
M29wIjogIkJlbG93RXF1YWwiICAgfSwKKyAgICAgICAgImkzMi5ndF9zIjogICAgICAgICAgICB7
ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDc0LCAicmV0dXJuIjogWyJib29s
Il0sICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRl
IjogW10sICJiM29wIjogIkdyZWF0ZXJUaGFuIiAgfSwKKyAgICAgICAgImkzMi5nZV9zIjogICAg
ICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDc4LCAicmV0dXJu
IjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAgICAgICAgICAi
aW1tZWRpYXRlIjogW10sICJiM29wIjogIkdyZWF0ZXJFcXVhbCIgfSwKKyAgICAgICAgImkzMi5n
dF91IjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDc1
LCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAiaTMyIl0sICAg
ICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkFib3ZlIiAgICAgICAgfSwKKyAgICAg
ICAgImkzMi5nZV91IjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZh
bHVlIjogIDc5LCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJpMzIiLCAi
aTMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkFib3ZlRXF1YWwiICAg
fSwKKyAgICAgICAgImkzMi5jbHoiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1l
dGljIiwgInZhbHVlIjogMTAzLCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjog
WyJpMzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkNseiIg
ICAgICAgICAgfSwKKyAgICAgICAgImkzMi5jdHoiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6
ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTA0LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFy
YW1ldGVyIjogWyJpMzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10gICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImkzMi5wb3BjbnQiOiAgICAgICAgICB7ICJj
YXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTA1LCAicmV0dXJuIjogWyJpMzIiXSwg
ICAgICAicGFyYW1ldGVyIjogWyJpMzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjog
W10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImkzMi5lcXoiOiAgICAgICAg
ICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDY5LCAicmV0dXJuIjog
WyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJpMzIiXSwgICAgICAgICAgICAgICAgICAiaW1t
ZWRpYXRlIjogW10sICJiM29wIjogIkVxdWFsKGkzMigwKSwgQDApIiB9LAorICAgICAgICAiaTY0
LmFkZCI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAx
MjQsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwg
ICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQWRkIiAgICAgICAgICB9LAorICAg
ICAgICAiaTY0LnN1YiI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAi
dmFsdWUiOiAxMjUsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImk2NCIs
ICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiU3ViIiAgICAgICAg
ICB9LAorICAgICAgICAiaTY0Lm11bCI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRo
bWV0aWMiLCAidmFsdWUiOiAxMjYsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIi
OiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiTXVs
IiAgICAgICAgICB9LAorICAgICAgICAiaTY0LmRpdl9zIjogICAgICAgICAgIHsgImNhdGVnb3J5
IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMjcsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJw
YXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiaTY0LmRpdl91IjogICAgICAgICAgIHsg
ImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMjgsICJyZXR1cm4iOiBbImk2NCJd
LCAgICAgICJwYXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUi
OiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiaTY0LnJlbV9zIjogICAg
ICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMjksICJyZXR1cm4i
OiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJp
bW1lZGlhdGUiOiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiaTY0LnJl
bV91IjogICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMzAs
ICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAg
ICAgICAgICJpbW1lZGlhdGUiOiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAiaTY0LmFuZCI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFs
dWUiOiAxMzEsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImk2NCIsICJp
NjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQml0QW5kIiAgICAgICB9
LAorICAgICAgICAiaTY0Lm9yIjogICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0
aWMiLCAidmFsdWUiOiAxMzIsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBb
Imk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQml0T3Ii
ICAgICAgICB9LAorICAgICAgICAiaTY0LnhvciI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5Ijog
ImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMzMsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJh
bWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3Ai
OiAiQml0WG9yIiAgICAgICB9LAorICAgICAgICAiaTY0LnNobCI6ICAgICAgICAgICAgIHsgImNh
dGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMzQsICJyZXR1cm4iOiBbImk2NCJdLCAg
ICAgICJwYXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBb
XSwgImIzb3AiOiAiU2hsKEAwLCBUcnVuYyhAMSkpIiB9LAorICAgICAgICAiaTY0LnNocl91Ijog
ICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMzYsICJyZXR1
cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAg
ICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiWlNocihAMCwgVHJ1bmMoQDEpKSIgfSwKKyAgICAg
ICAgImk2NC5zaHJfcyI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZh
bHVlIjogMTM1LCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAi
aTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIlNTaHIoQDAsIFRydW5j
KEAxKSkiIH0sCisgICAgICAgICJpNjQucm90ciI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAi
YXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEzOCwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFt
ZXRlciI6IFsiaTY0IiwgImk2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6
ICJSb3RSKEAwLCBUcnVuYyhAMSkpIiB9LAorICAgICAgICAiaTY0LnJvdGwiOiAgICAgICAgICAg
IHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxMzcsICJyZXR1cm4iOiBbImk2
NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlh
dGUiOiBbXSwgImIzb3AiOiAiUm90TChAMCwgVHJ1bmMoQDEpKSIgfSwKKyAgICAgICAgImk2NC5l
cSI6ICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDgx
LCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAiaTY0Il0sICAg
ICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkVxdWFsIiAgICAgICAgfSwKKyAgICAg
ICAgImk2NC5uZSI6ICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZh
bHVlIjogIDgyLCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAi
aTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIk5vdEVxdWFsIiAgICAg
fSwKKyAgICAgICAgImk2NC5sdF9zIjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJp
c29uIiwgInZhbHVlIjogIDgzLCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjog
WyJpNjQiLCAiaTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkxlc3NU
aGFuIiAgICAgfSwKKyAgICAgICAgImk2NC5sZV9zIjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6
ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDg3LCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFy
YW1ldGVyIjogWyJpNjQiLCAiaTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29w
IjogIkxlc3NFcXVhbCIgICAgfSwKKyAgICAgICAgImk2NC5sdF91IjogICAgICAgICAgICB7ICJj
YXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDg0LCAicmV0dXJuIjogWyJib29sIl0s
ICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAiaTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjog
W10sICJiM29wIjogIkJlbG93IiAgICAgICAgfSwKKyAgICAgICAgImk2NC5sZV91IjogICAgICAg
ICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDg4LCAicmV0dXJuIjog
WyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAiaTY0Il0sICAgICAgICAgICAiaW1t
ZWRpYXRlIjogW10sICJiM29wIjogIkJlbG93RXF1YWwiICAgfSwKKyAgICAgICAgImk2NC5ndF9z
IjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDg1LCAi
cmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAiaTY0Il0sICAgICAg
ICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkdyZWF0ZXJUaGFuIiAgfSwKKyAgICAgICAg
Imk2NC5nZV9zIjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVl
IjogIDg5LCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAiaTY0
Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkdyZWF0ZXJFcXVhbCIgfSwK
KyAgICAgICAgImk2NC5ndF91IjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29u
IiwgInZhbHVlIjogIDg2LCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJp
NjQiLCAiaTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkFib3ZlIiAg
ICAgICAgfSwKKyAgICAgICAgImk2NC5nZV91IjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJj
b21wYXJpc29uIiwgInZhbHVlIjogIDkwLCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1l
dGVyIjogWyJpNjQiLCAiaTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjog
IkFib3ZlRXF1YWwiICAgfSwKKyAgICAgICAgImk2NC5jbHoiOiAgICAgICAgICAgICB7ICJjYXRl
Z29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTIxLCAicmV0dXJuIjogWyJpNjQiXSwgICAg
ICAicGFyYW1ldGVyIjogWyJpNjQiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10s
ICJiM29wIjogIkNseiIgICAgICAgICAgfSwKKyAgICAgICAgImk2NC5jdHoiOiAgICAgICAgICAg
ICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTIyLCAicmV0dXJuIjogWyJp
NjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRp
YXRlIjogW10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImk2NC5wb3BjbnQi
OiAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTIzLCAicmV0
dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiXSwgICAgICAgICAgICAgICAg
ICAiaW1tZWRpYXRlIjogW10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImk2
NC5lcXoiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjog
IDgwLCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJpNjQiXSwgICAgICAg
ICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkVxdWFsKGk2NCgwKSwgQDApIiB9
LAorICAgICAgICAiZjMyLmFkZCI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0
aWMiLCAidmFsdWUiOiAxNDYsICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBb
ImYzMiIsICJmMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQWRkIiAg
ICAgICAgICB9LAorICAgICAgICAiZjMyLnN1YiI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5Ijog
ImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNDcsICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICJwYXJh
bWV0ZXIiOiBbImYzMiIsICJmMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3Ai
OiAiU3ViIiAgICAgICAgICB9LAorICAgICAgICAiZjMyLm11bCI6ICAgICAgICAgICAgIHsgImNh
dGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNDgsICJyZXR1cm4iOiBbImYzMiJdLCAg
ICAgICJwYXJhbWV0ZXIiOiBbImYzMiIsICJmMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBb
XSwgImIzb3AiOiAiTXVsIiAgICAgICAgICB9LAorICAgICAgICAiZjMyLmRpdiI6ICAgICAgICAg
ICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNDksICJyZXR1cm4iOiBb
ImYzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImYzMiIsICJmMzIiXSwgICAgICAgICAgICJpbW1l
ZGlhdGUiOiBbXSwgImIzb3AiOiAiRGl2IiAgICAgICAgICB9LAorICAgICAgICAiZjMyLm1pbiI6
ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNTAsICJy
ZXR1cm4iOiBbImYzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImYzMiIsICJmMzIiXSwgICAgICAg
ICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiU2VsZWN0KEVxdWFsKEAwLCBAMSksIEJpdE9y
KEAwLCBAMSksIFNlbGVjdChMZXNzVGhhbihAMCwgQDEpLCBAMCwgQDEpKSIgfSwKKyAgICAgICAg
ImYzMi5tYXgiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVl
IjogMTUxLCAicmV0dXJuIjogWyJmMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJmMzIiLCAiZjMy
Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIlNlbGVjdChFcXVhbChAMCwg
QDEpLCBCaXRBbmQoQDAsIEAxKSwgU2VsZWN0KExlc3NUaGFuKEAwLCBAMSksIEAxLCBAMCkpIiB9
LAorICAgICAgICAiZjMyLmFicyI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0
aWMiLCAidmFsdWUiOiAxMzksICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBb
ImYzMiJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQWJzIiAg
ICAgICAgICB9LAorICAgICAgICAiZjMyLm5lZyI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5Ijog
ImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNDAsICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICJwYXJh
bWV0ZXIiOiBbImYzMiJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3Ai
OiAiTmVnIiAgICAgICAgICB9LAorICAgICAgICAiZjMyLmNvcHlzaWduIjogICAgICAgIHsgImNh
dGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNTIsICJyZXR1cm4iOiBbImYzMiJdLCAg
ICAgICJwYXJhbWV0ZXIiOiBbImYzMiIsICJmMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBb
XSwgImIzb3AiOiAiQml0d2lzZUNhc3QoQml0T3IoQml0QW5kKEJpdHdpc2VDYXN0KEAxKSwgaTMy
KDB4ODAwMDAwMDApKSwgQml0QW5kKEJpdHdpc2VDYXN0KEAwKSwgaTMyKDB4N2ZmZmZmZmYpKSkp
IiB9LAorICAgICAgICAiZjMyLmNlaWwiOiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRo
bWV0aWMiLCAidmFsdWUiOiAxNDEsICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICJwYXJhbWV0ZXIi
OiBbImYzMiJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQ2Vp
bCIgICAgICAgICB9LAorICAgICAgICAiZjMyLmZsb29yIjogICAgICAgICAgIHsgImNhdGVnb3J5
IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNDIsICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICJw
YXJhbWV0ZXIiOiBbImYzMiJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIz
b3AiOiAiRmxvb3IiICAgICAgICB9LAorICAgICAgICAiZjMyLnRydW5jIjogICAgICAgICAgIHsg
ImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNDMsICJyZXR1cm4iOiBbImYzMiJd
LCAgICAgICJwYXJhbWV0ZXIiOiBbImYzMiJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUi
OiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiZjMyLm5lYXJlc3QiOiAg
ICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNDQsICJyZXR1cm4i
OiBbImYzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImYzMiJdLCAgICAgICAgICAgICAgICAgICJp
bW1lZGlhdGUiOiBbXSAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiZjMyLnNx
cnQiOiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNDUs
ICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImYzMiJdLCAgICAgICAgICAg
ICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiU3FydCIgICAgICAgICB9LAorICAgICAg
ICAiZjMyLmVxIjogICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFs
dWUiOiAgOTEsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImYzMiIsICJm
MzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiRXF1YWwiICAgICAgICB9
LAorICAgICAgICAiZjMyLm5lIjogICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlz
b24iLCAidmFsdWUiOiAgOTIsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBb
ImYzMiIsICJmMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiTm90RXF1
YWwiICAgICB9LAorICAgICAgICAiZjMyLmx0IjogICAgICAgICAgICAgIHsgImNhdGVnb3J5Ijog
ImNvbXBhcmlzb24iLCAidmFsdWUiOiAgOTMsICJyZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJh
bWV0ZXIiOiBbImYzMiIsICJmMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3Ai
OiAiTGVzc1RoYW4iICAgICB9LAorICAgICAgICAiZjMyLmxlIjogICAgICAgICAgICAgIHsgImNh
dGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgOTUsICJyZXR1cm4iOiBbImJvb2wiXSwg
ICAgICJwYXJhbWV0ZXIiOiBbImYzMiIsICJmMzIiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBb
XSwgImIzb3AiOiAiTGVzc0VxdWFsIiAgICB9LAorICAgICAgICAiZjMyLmd0IjogICAgICAgICAg
ICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgOTQsICJyZXR1cm4iOiBb
ImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImYzMiIsICJmMzIiXSwgICAgICAgICAgICJpbW1l
ZGlhdGUiOiBbXSwgImIzb3AiOiAiR3JlYXRlclRoYW4iICB9LAorICAgICAgICAiZjMyLmdlIjog
ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbXBhcmlzb24iLCAidmFsdWUiOiAgOTYsICJy
ZXR1cm4iOiBbImJvb2wiXSwgICAgICJwYXJhbWV0ZXIiOiBbImYzMiIsICJmMzIiXSwgICAgICAg
ICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiR3JlYXRlckVxdWFsIiB9LAorICAgICAgICAi
ZjY0LmFkZCI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUi
OiAxNjAsICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImY2NCIsICJmNjQi
XSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQWRkIiAgICAgICAgICB9LAor
ICAgICAgICAiZjY0LnN1YiI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMi
LCAidmFsdWUiOiAxNjEsICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImY2
NCIsICJmNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiU3ViIiAgICAg
ICAgICB9LAorICAgICAgICAiZjY0Lm11bCI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFy
aXRobWV0aWMiLCAidmFsdWUiOiAxNjIsICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJhbWV0
ZXIiOiBbImY2NCIsICJmNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAi
TXVsIiAgICAgICAgICB9LAorICAgICAgICAiZjY0LmRpdiI6ICAgICAgICAgICAgIHsgImNhdGVn
b3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNjMsICJyZXR1cm4iOiBbImY2NCJdLCAgICAg
ICJwYXJhbWV0ZXIiOiBbImY2NCIsICJmNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwg
ImIzb3AiOiAiRGl2IiAgICAgICAgICB9LAorICAgICAgICAiZjY0Lm1pbiI6ICAgICAgICAgICAg
IHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUiOiAxNjQsICJyZXR1cm4iOiBbImY2
NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImY2NCIsICJmNjQiXSwgICAgICAgICAgICJpbW1lZGlh
dGUiOiBbXSwgImIzb3AiOiAiU2VsZWN0KEVxdWFsKEAwLCBAMSksIEJpdE9yKEAwLCBAMSksIFNl
bGVjdChMZXNzVGhhbihAMCwgQDEpLCBAMCwgQDEpKSIgfSwKKyAgICAgICAgImY2NC5tYXgiOiAg
ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTY1LCAicmV0
dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJmNjQiLCAiZjY0Il0sICAgICAgICAg
ICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIlNlbGVjdChFcXVhbChAMCwgQDEpLCBCaXRBbmQo
QDAsIEAxKSwgU2VsZWN0KExlc3NUaGFuKEAwLCBAMSksIEAxLCBAMCkpIiB9LAorICAgICAgICAi
ZjY0LmFicyI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMiLCAidmFsdWUi
OiAxNTMsICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImY2NCJdLCAgICAg
ICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQWJzIiAgICAgICAgICB9LAor
ICAgICAgICAiZjY0Lm5lZyI6ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFyaXRobWV0aWMi
LCAidmFsdWUiOiAxNTQsICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImY2
NCJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiTmVnIiAgICAg
ICAgICB9LAorICAgICAgICAiZjY0LmNvcHlzaWduIjogICAgICAgIHsgImNhdGVnb3J5IjogImFy
aXRobWV0aWMiLCAidmFsdWUiOiAxNjYsICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJhbWV0
ZXIiOiBbImY2NCIsICJmNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAi
Qml0d2lzZUNhc3QoQml0T3IoQml0QW5kKEJpdHdpc2VDYXN0KEAxKSwgaTY0KDB4ODAwMDAwMDAw
MDAwMDAwMCkpLCBCaXRBbmQoQml0d2lzZUNhc3QoQDApLCBpNjQoMHg3ZmZmZmZmZmZmZmZmZmZm
KSkpKSIgfSwKKyAgICAgICAgImY2NC5jZWlsIjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJh
cml0aG1ldGljIiwgInZhbHVlIjogMTU1LCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1l
dGVyIjogWyJmNjQiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjog
IkNlaWwiICAgICAgICAgfSwKKyAgICAgICAgImY2NC5mbG9vciI6ICAgICAgICAgICB7ICJjYXRl
Z29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTU2LCAicmV0dXJuIjogWyJmNjQiXSwgICAg
ICAicGFyYW1ldGVyIjogWyJmNjQiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10s
ICJiM29wIjogIkZsb29yIiAgICAgICAgfSwKKyAgICAgICAgImY2NC50cnVuYyI6ICAgICAgICAg
ICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTU3LCAicmV0dXJuIjogWyJm
NjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJmNjQiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRp
YXRlIjogW10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImY2NC5uZWFyZXN0
IjogICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTU4LCAicmV0
dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJmNjQiXSwgICAgICAgICAgICAgICAg
ICAiaW1tZWRpYXRlIjogW10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImY2
NC5zcXJ0IjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjog
MTU5LCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJmNjQiXSwgICAgICAg
ICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIlNxcnQiICAgICAgICAgfSwKKyAg
ICAgICAgImY2NC5lcSI6ICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwg
InZhbHVlIjogIDk3LCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJmNjQi
LCAiZjY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkVxdWFsIiAgICAg
ICAgfSwKKyAgICAgICAgImY2NC5uZSI6ICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21w
YXJpc29uIiwgInZhbHVlIjogIDk4LCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVy
IjogWyJmNjQiLCAiZjY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIk5v
dEVxdWFsIiAgICAgfSwKKyAgICAgICAgImY2NC5sdCI6ICAgICAgICAgICAgICB7ICJjYXRlZ29y
eSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDk5LCAicmV0dXJuIjogWyJib29sIl0sICAgICAi
cGFyYW1ldGVyIjogWyJmNjQiLCAiZjY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJi
M29wIjogIkxlc3NUaGFuIiAgICAgfSwKKyAgICAgICAgImY2NC5sZSI6ICAgICAgICAgICAgICB7
ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogMTAxLCAicmV0dXJuIjogWyJib29s
Il0sICAgICAicGFyYW1ldGVyIjogWyJmNjQiLCAiZjY0Il0sICAgICAgICAgICAiaW1tZWRpYXRl
IjogW10sICJiM29wIjogIkxlc3NFcXVhbCIgICAgfSwKKyAgICAgICAgImY2NC5ndCI6ICAgICAg
ICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogMTAwLCAicmV0dXJu
IjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJmNjQiLCAiZjY0Il0sICAgICAgICAgICAi
aW1tZWRpYXRlIjogW10sICJiM29wIjogIkdyZWF0ZXJUaGFuIiAgfSwKKyAgICAgICAgImY2NC5n
ZSI6ICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogMTAy
LCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJmNjQiLCAiZjY0Il0sICAg
ICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkdyZWF0ZXJFcXVhbCIgfSwKKyAgICAg
ICAgImkzMi50cnVuY19zL2YzMiI6ICAgICB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZh
bHVlIjogMTY4LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJmMzIiXSwg
ICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10gICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICAgICAgImkzMi50cnVuY19zL2Y2NCI6ICAgICB7ICJjYXRlZ29yeSI6ICJjb252ZXJz
aW9uIiwgInZhbHVlIjogMTcwLCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjog
WyJmNjQiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10gICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgImkzMi50cnVuY191L2YzMiI6ICAgICB7ICJjYXRlZ29yeSI6
ICJjb252ZXJzaW9uIiwgInZhbHVlIjogMTY5LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFy
YW1ldGVyIjogWyJmMzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10gICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImkzMi50cnVuY191L2Y2NCI6ICAgICB7ICJj
YXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVlIjogMTcxLCAicmV0dXJuIjogWyJpMzIiXSwg
ICAgICAicGFyYW1ldGVyIjogWyJmNjQiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjog
W10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImkzMi53cmFwL2k2NCI6ICAg
ICAgICB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVlIjogMTY3LCAicmV0dXJuIjog
WyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiXSwgICAgICAgICAgICAgICAgICAiaW1t
ZWRpYXRlIjogW10sICJiM29wIjogIlRydW5jIiAgICAgICAgfSwKKyAgICAgICAgImk2NC50cnVu
Y19zL2YzMiI6ICAgICB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVlIjogMTc0LCAi
cmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJmMzIiXSwgICAgICAgICAgICAg
ICAgICAiaW1tZWRpYXRlIjogW10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
Imk2NC50cnVuY19zL2Y2NCI6ICAgICB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVl
IjogMTc2LCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJmNjQiXSwgICAg
ICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10gICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgImk2NC50cnVuY191L2YzMiI6ICAgICB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9u
IiwgInZhbHVlIjogMTc1LCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJm
MzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10gICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgImk2NC50cnVuY191L2Y2NCI6ICAgICB7ICJjYXRlZ29yeSI6ICJj
b252ZXJzaW9uIiwgInZhbHVlIjogMTc3LCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1l
dGVyIjogWyJmNjQiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10gICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImk2NC5leHRlbmRfcy9pMzIiOiAgICB7ICJjYXRl
Z29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVlIjogMTcyLCAicmV0dXJuIjogWyJpNjQiXSwgICAg
ICAicGFyYW1ldGVyIjogWyJpMzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10s
ICJiM29wIjogIlNFeHQzMiIgICAgICAgfSwKKyAgICAgICAgImk2NC5leHRlbmRfdS9pMzIiOiAg
ICB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVlIjogMTczLCAicmV0dXJuIjogWyJp
NjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJpMzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRp
YXRlIjogW10sICJiM29wIjogIlpFeHQzMiIgICAgICAgfSwKKyAgICAgICAgImYzMi5jb252ZXJ0
X3MvaTMyIjogICB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVlIjogMTc4LCAicmV0
dXJuIjogWyJmMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJpMzIiXSwgICAgICAgICAgICAgICAg
ICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIklUb0YiICAgICAgICAgfSwKKyAgICAgICAgImYz
Mi5jb252ZXJ0X3UvaTMyIjogICB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVlIjog
MTc5LCAicmV0dXJuIjogWyJmMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJpMzIiXSwgICAgICAg
ICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIklUb0YoWkV4dDMyKEAwKSkiIH0s
CisgICAgICAgICJmMzIuY29udmVydF9zL2k2NCI6ICAgeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lv
biIsICJ2YWx1ZSI6IDE4MCwgInJldHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFsi
aTY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJJVG9GIiAg
ICAgICAgIH0sCisgICAgICAgICJmMzIuY29udmVydF91L2k2NCI6ICAgeyAiY2F0ZWdvcnkiOiAi
Y29udmVyc2lvbiIsICJ2YWx1ZSI6IDE4MSwgInJldHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFt
ZXRlciI6IFsiaTY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICJmMzIuZGVtb3RlL2Y2NCI6ICAgICAgeyAiY2F0
ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6IDE4MiwgInJldHVybiI6IFsiZjMyIl0sICAg
ICAgInBhcmFtZXRlciI6IFsiZjY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtd
LCAiYjNvcCI6ICJEb3VibGVUb0Zsb2F0In0sCisgICAgICAgICJmMzIucmVpbnRlcnByZXQvaTMy
IjogeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6IDE5MCwgInJldHVybiI6IFsi
ZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiaTMyIl0sICAgICAgICAgICAgICAgICAgImltbWVk
aWF0ZSI6IFtdLCAiYjNvcCI6ICJCaXR3aXNlQ2FzdCIgIH0sCisgICAgICAgICJmNjQuY29udmVy
dF9zL2kzMiI6ICAgeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6IDE4MywgInJl
dHVybiI6IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTMyIl0sICAgICAgICAgICAgICAg
ICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJJVG9EIiAgICAgICAgIH0sCisgICAgICAgICJm
NjQuY29udmVydF91L2kzMiI6ICAgeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6
IDE4NCwgInJldHVybiI6IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTMyIl0sICAgICAg
ICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJJVG9EKFpFeHQzMihAMCkpIiB9
LAorICAgICAgICAiZjY0LmNvbnZlcnRfcy9pNjQiOiAgIHsgImNhdGVnb3J5IjogImNvbnZlcnNp
b24iLCAidmFsdWUiOiAxODUsICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBb
Imk2NCJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiSVRvRCIg
ICAgICAgICB9LAorICAgICAgICAiZjY0LmNvbnZlcnRfdS9pNjQiOiAgIHsgImNhdGVnb3J5Ijog
ImNvbnZlcnNpb24iLCAidmFsdWUiOiAxODYsICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJh
bWV0ZXIiOiBbImk2NCJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAgICAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgICAgICAiZjY0LnByb21vdGUvZjMyIjogICAgIHsgImNh
dGVnb3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAxODcsICJyZXR1cm4iOiBbImY2NCJdLCAg
ICAgICJwYXJhbWV0ZXIiOiBbImYzMiJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBb
XSwgImIzb3AiOiAiRmxvYXRUb0RvdWJsZSJ9LAorICAgICAgICAiZjY0LnJlaW50ZXJwcmV0L2k2
NCI6IHsgImNhdGVnb3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAxOTEsICJyZXR1cm4iOiBb
ImY2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImk2NCJdLCAgICAgICAgICAgICAgICAgICJpbW1l
ZGlhdGUiOiBbXSwgImIzb3AiOiAiQml0d2lzZUNhc3QiICB9LAorICAgICAgICAiaTMyLnJlaW50
ZXJwcmV0L2YzMiI6IHsgImNhdGVnb3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAxODgsICJy
ZXR1cm4iOiBbImkzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImYzMiJdLCAgICAgICAgICAgICAg
ICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQml0d2lzZUNhc3QiICB9LAorICAgICAgICAi
aTY0LnJlaW50ZXJwcmV0L2Y2NCI6IHsgImNhdGVnb3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUi
OiAxODksICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImY2NCJdLCAgICAg
ICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiQml0d2lzZUNhc3QiICB9Cisg
ICAgfQorfQorYDsKKworCitjb25zdCBfZW52aXJvbm1lbnQgPQorICAgICgodHlwZW9mIHByb2Nl
c3MgPT09ICJvYmplY3QiICYmIHR5cGVvZiByZXF1aXJlID09PSAiZnVuY3Rpb24iKSA/ICJub2Rl
IgorICAgICA6ICh0eXBlb2Ygd2luZG93ID09PSAib2JqZWN0IiA/ICJ3ZWIiCisgICAgICAgIDog
KHR5cGVvZiBpbXBvcnRTY3JpcHRzID09PSAiZnVuY3Rpb24iID8gIndvcmtlciIKKyAgICAgICAg
ICAgOiAic2hlbGwiKSkpOworCitsZXQgX2dsb2JhbCA9ICh0eXBlb2YgZ2xvYmFsICE9PSAnb2Jq
ZWN0JyB8fCAhZ2xvYmFsIHx8IGdsb2JhbC5NYXRoICE9PSBNYXRoIHx8IGdsb2JhbC5BcnJheSAh
PT0gQXJyYXkpCisgICAgPyAoKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJykgPyBzZWxmCisg
ICAgICAgOiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpID8gd2luZG93CisgICAgICAg
OiAodHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcpID8gZ2xvYmFsCisgICAgICAgOiBGdW5j
dGlvbigncmV0dXJuIHRoaXMnKSgpKQorICAgIDogZ2xvYmFsOworCitjb25zdCBfZXZhbCA9IHgg
PT4gZXZhbC5jYWxsKG51bGwsIHgpOworCitjb25zdCBfcmVhZCA9IGZpbGVuYW1lID0+IHsKKyAg
ICBzd2l0Y2ggKF9lbnZpcm9ubWVudCkgeworICAgIGNhc2UgIm5vZGUiOiAgIHJldHVybiByZWFk
KGZpbGVuYW1lKTsKKyAgICBjYXNlICJ3ZWIiOiAgICAvLyBmYWxsdGhyb3VnaAorICAgIGNhc2Ug
IndvcmtlciI6IGxldCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsgeGhyLm9wZW4oIkdFVCIs
IGZpbGVuYW1lLCAvKmFzeW5jPSovZmFsc2UpOyByZXR1cm4geGhyLnJlc3BvbnNlVGV4dDsKKyAg
ICBjYXNlICJzaGVsbCI6ICByZXR1cm4gcmVhZChmaWxlbmFtZSk7CisgICAgfQorfQorCitjb25z
dCBfbG9hZCA9IGZpbGVuYW1lID0+IHsKKyAgICBzd2l0Y2ggKF9lbnZpcm9ubWVudCkgeworICAg
IGNhc2UgIm5vZGUiOiAgIC8vIGZhbGx0aHJvdWdoCisgICAgY2FzZSAid2ViIjogICAgLy8gZmFs
bHRocm91Z2gKKyAgICBjYXNlICJzaGVsbCI6ICByZXR1cm4gX2V2YWwoX3JlYWQoZmlsZW5hbWUp
KTsKKyAgICBjYXNlICJ3b3JrZXIiOiByZXR1cm4gaW1wb3J0U2NyaXB0cyhmaWxlbmFtZSk7Cisg
ICAgfQorfQorCitjb25zdCBfanNvbiA9IGZpbGVuYW1lID0+IHsKKyAgICBhc3NlcnQuZXEoZmls
ZW5hbWUsICJ3YXNtLmpzb24iKTsKKyAgICByZXR1cm4gSlNPTi5wYXJzZShXQVNNX0pTT04pOwor
CisgICAgc3dpdGNoIChfZW52aXJvbm1lbnQpIHsKKyAgICBjYXNlICJub2RlIjogICAvLyBmYWxs
dGhyb3VnaAorICAgIGNhc2UgInNoZWxsIjogIHJldHVybiBKU09OLnBhcnNlKF9yZWFkKGZpbGVu
YW1lKSk7CisgICAgY2FzZSAid2ViIjogICAgLy8gZmFsbHRocm91Z2gKKyAgICBjYXNlICJ3b3Jr
ZXIiOiBsZXQgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7IHhoci5vdmVycmlkZU1pbWVUeXBl
KCJhcHBsaWNhdGlvbi9qc29uIik7IHhoci5vcGVuKCJHRVQiLCBmaWxlbmFtZSwgLyphc3luYz0q
L2ZhbHNlKTsgcmV0dXJuIHhoci5yZXNwb25zZTsKKyAgICB9Cit9CisKK2NvbnN0IF9kdW1wID0g
KHdoYXQsIG5hbWUsIHBhZCA9ICcgICAgJykgPT4geworICAgIGNvbnN0IHZhbHVlID0gdiA9PiB7
CisgICAgICAgIHRyeSB7IHJldHVybiBgIiR7dn0iYDsgfQorICAgICAgICBjYXRjaCAoZSkgeyBy
ZXR1cm4gYEVycm9yOiAiJHtlLm1lc3NhZ2V9ImA7IH0KKyAgICB9OworICAgIGxldCBzID0gYCR7
cGFkfSR7bmFtZX0gJHt0eXBlb2Ygd2hhdH06ICR7dmFsdWUod2hhdCl9YDsKKyAgICBmb3IgKGxl
dCBwIGluIHdoYXQpIHsKKyAgICAgICAgcyArPSBgXG4ke3BhZH0ke3BhZH0ke3B9OiAke3ZhbHVl
KHdoYXRbcF0pfSAke3R5cGVvZiB2fWA7CisgICAgICAgIHMgKz0gJ1xuJyArIF9kdW1wKHdoYXRb
cF0sIHAsIHBhZCArIHBhZCk7CisgICAgfQorICAgIHJldHVybiBzOworfTsKKworLy8gVXNlIHVu
ZGVyc2NvcmUgbmFtZXMgdG8gYXZvaWQgY2xhc2hpbmcgd2l0aCBidWlsdGluIG5hbWVzLgorY29u
c3QgdXRpbGl0aWVzID0geworICAgIGR1bXAgOiBfZHVtcCwKKyAgICBldmFsIDogX2V2YWwsCisg
ICAgcmVhZCA6IF9yZWFkLAorICAgIGxvYWQgOiBfbG9hZCwKKyAgICBqc29uIDogX2pzb24sCisg
ICAgZ2xvYmFsIDogX2dsb2JhbAorfTsKKworCitjb25zdCBfbWFwVmFsdWVzID0gZnJvbSA9PiB7
CisgICAgbGV0IHZhbHVlcyA9IHt9OworICAgIGZvciAoY29uc3Qga2V5IGluIGZyb20pCisgICAg
ICAgIHZhbHVlc1trZXldID0gZnJvbVtrZXldLnZhbHVlOworICAgIHJldHVybiB2YWx1ZXM7Cit9
OworCisKK2NvbnN0IFdBU00gPSB7fTsKK3sKKyAgICBjb25zdCBkZXNjcmlwdGlvbiA9IFdBU00u
ZGVzY3JpcHRpb24gPSB1dGlsaXRpZXMuanNvbigid2FzbS5qc29uIik7CisgICAgY29uc3QgdHlw
ZSA9IFdBU00udHlwZSA9IE9iamVjdC5rZXlzKGRlc2NyaXB0aW9uLnR5cGUpOworICAgIGNvbnN0
IF90eXBlU2V0ID0gbmV3IFNldCh0eXBlKTsKKyAgICBXQVNNLmlzVmFsaWRUeXBlID0gdiA9PiBf
dHlwZVNldC5oYXModik7CisgICAgV0FTTS50eXBlVmFsdWUgPSBfbWFwVmFsdWVzKGRlc2NyaXB0
aW9uLnR5cGUpOworICAgIGNvbnN0IF92YWx1ZVR5cGVTZXQgPSBuZXcgU2V0KGRlc2NyaXB0aW9u
LnZhbHVlX3R5cGUpOworICAgIFdBU00uaXNWYWxpZFZhbHVlVHlwZSA9IHYgPT4gX3ZhbHVlVHlw
ZVNldC5oYXModik7CisgICAgY29uc3QgX2Jsb2NrVHlwZVNldCA9IG5ldyBTZXQoZGVzY3JpcHRp
b24uYmxvY2tfdHlwZSk7CisgICAgV0FTTS5pc1ZhbGlkQmxvY2tUeXBlID0gdiA9PiBfYmxvY2tU
eXBlU2V0Lmhhcyh2KTsKKyAgICBXQVNNLmV4dGVybmFsS2luZFZhbHVlID0gX21hcFZhbHVlcyhk
ZXNjcmlwdGlvbi5leHRlcm5hbF9raW5kKTsKKyAgICBjb25zdCBzZWN0aW9ucyA9IFdBU00uc2Vj
dGlvbnMgPSBPYmplY3Qua2V5cyhkZXNjcmlwdGlvbi5zZWN0aW9uKTsKKyAgICBXQVNNLnNlY3Rp
b25FbmNvZGluZ1R5cGUgPSBkZXNjcmlwdGlvbi5zZWN0aW9uW3NlY3Rpb25zWzBdXS50eXBlOwor
fQorCisKKy8vIExvd0xldmVsQmluYXJ5LmpzCitjb25zdCBfaW5pdGlhbEFsbG9jYXRpb25TaXpl
ID0gMTAyNDsKK2NvbnN0IF9ncm93QWxsb2NhdGlvblNpemUgPSBhbGxvY2F0ZWQgPT4gYWxsb2Nh
dGVkICogMjsKKworCitjb25zdCB2YXJ1aW50MzJNaW4gPSAwOworY29uc3QgdmFyaW50N01pbiA9
IC0wYjEwMDAwMDA7Citjb25zdCB2YXJpbnQ3TWF4ID0gMGIxMTExMTE7Citjb25zdCB2YXJ1aW50
N01heCA9IDBiMTExMTExMTsKK2NvbnN0IHZhcnVpbnQzMk1heCA9ICgoKCgxIDw8IDMxKSA+Pj4g
MCkgLSAxKSAqIDIpICsgMTsKK2NvbnN0IHZhcmludDMyTWluID0gLSgoMSA8PCAzMSkgPj4+IDAp
OworY29uc3QgdmFyaW50MzJNYXggPSAoKDEgPDwgMzEpIC0gMSkgPj4+IDA7Citjb25zdCB2YXJC
aXRzTWF4ID0gNTsKKworY29uc3QgX2dldHRlclJhbmdlQ2hlY2sgPSAobGxiLCBhdCwgc2l6ZSkg
PT4geworICAgIGlmICgwID4gYXQgfHwgYXQgKyBzaXplID4gbGxiLl91c2VkKQorICAgICAgICB0
aHJvdyBuZXcgUmFuZ2VFcnJvcihgWyR7YXR9LCAke2F0ICsgc2l6ZX0pIGlzIG91dCBvZiBidWZm
ZXIgcmFuZ2UgWzAsICR7bGxiLl91c2VkfSlgKTsKK307CisKK2NvbnN0IF9oZXhkdW1wID0gKGJ1
Ziwgc2l6ZSkgPT4geworICAgIGxldCBzID0gIiI7CisgICAgY29uc3Qgd2lkdGggPSAxNjsKKyAg
ICBjb25zdCBiYXNlID0gMTY7CisgICAgZm9yIChsZXQgcm93ID0gMDsgcm93ICogd2lkdGggPCBz
aXplOyArK3JvdykgeworICAgICAgICBjb25zdCBhZGRyZXNzID0gKHJvdyAqIHdpZHRoKS50b1N0
cmluZyhiYXNlKTsKKyAgICAgICAgcyArPSAiMCIucmVwZWF0KDggLSBhZGRyZXNzLmxlbmd0aCkg
KyBhZGRyZXNzOworICAgICAgICBsZXQgY2hhcnMgPSAiIjsKKyAgICAgICAgZm9yIChsZXQgY29s
ID0gMDsgY29sICE9PSB3aWR0aDsgKytjb2wpIHsKKyAgICAgICAgICAgIGNvbnN0IGlkeCA9IHJv
dyAqIHdpZHRoICsgY29sOworICAgICAgICAgICAgaWYgKGlkeCA8IHNpemUpIHsKKyAgICAgICAg
ICAgICAgICBjb25zdCBieXRlID0gYnVmW2lkeF07CisgICAgICAgICAgICAgICAgY29uc3QgYnl0
ZXN0ciA9IGJ5dGUudG9TdHJpbmcoYmFzZSk7CisgICAgICAgICAgICAgICAgcyArPSAiICIgKyAo
Ynl0ZXN0ci5sZW5ndGggPT09IDEgPyAiMCIgKyBieXRlc3RyIDogYnl0ZXN0cik7CisgICAgICAg
ICAgICAgICAgY2hhcnMgKz0gMHgyMCA8PSBieXRlICYmIGJ5dGUgPCAweDdGID8gU3RyaW5nLmZy
b21DaGFyQ29kZShieXRlKSA6ICLCtyI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgIHMgKz0gIiAgICI7CisgICAgICAgICAgICAgICAgY2hhcnMgKz0gIiAiOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIHMrPSAiICB8IiArIGNoYXJzICsgInxcbiI7Cisg
ICAgfQorICAgIHJldHVybiBzOworfTsKKworY2xhc3MgTG93TGV2ZWxCaW5hcnkgeworICAgIGNv
bnN0cnVjdG9yKCkgeworICAgICAgICB0aGlzLl9idWYgPSBuZXcgVWludDhBcnJheShfaW5pdGlh
bEFsbG9jYXRpb25TaXplKTsKKyAgICAgICAgdGhpcy5fdXNlZCA9IDA7CisgICAgfQorCisgICAg
bmV3UGF0Y2hhYmxlKHR5cGUpIHsgcmV0dXJuIG5ldyBQYXRjaGFibGVMb3dMZXZlbEJpbmFyeSh0
eXBlLCB0aGlzKTsgfQorCisgICAgLy8gVXRpbGl0aWVzLgorICAgIGdldCgpIHsgcmV0dXJuIHRo
aXMuX2J1ZjsgfQorICAgIHRyaW0oKSB7IHRoaXMuX2J1ZiA9IHRoaXMuX2J1Zi5zbGljZSgwLCB0
aGlzLl91c2VkKTsgfQorCisgICAgaGV4ZHVtcCgpIHsgcmV0dXJuIF9oZXhkdW1wKHRoaXMuX2J1
ZiwgdGhpcy5fdXNlZCk7IH0KKyAgICBfbWF5YmVHcm93KGJ5dGVzKSB7CisgICAgICAgIGNvbnN0
IGFsbG9jYXRlZCA9IHRoaXMuX2J1Zi5sZW5ndGg7CisgICAgICAgIGlmIChhbGxvY2F0ZWQgLSB0
aGlzLl91c2VkIDwgYnl0ZXMpIHsKKyAgICAgICAgICAgIGxldCBidWYgPSBuZXcgVWludDhBcnJh
eShfZ3Jvd0FsbG9jYXRpb25TaXplKGFsbG9jYXRlZCkpOworICAgICAgICAgICAgYnVmLnNldCh0
aGlzLl9idWYpOworICAgICAgICAgICAgdGhpcy5fYnVmID0gYnVmOworICAgICAgICB9CisgICAg
fQorICAgIF9wdXNoOCh2KSB7IHRoaXMuX2J1Zlt0aGlzLl91c2VkXSA9IHYgJiAweEZGOyB0aGlz
Ll91c2VkICs9IDE7IH0KKworICAgIC8vIERhdGEgdHlwZXMuCisgICAgdWludDgodikgeworICAg
ICAgICBpZiAoKHYgJiAweEZGKSA+Pj4gMCAhPT0gdikKKyAgICAgICAgICAgIHRocm93IG5ldyBS
YW5nZUVycm9yKGBJbnZhbGlkIHVpbnQ4ICR7dn1gKTsKKyAgICAgICAgdGhpcy5fbWF5YmVHcm93
KDEpOworICAgICAgICB0aGlzLl9wdXNoOCh2KTsKKyAgICB9CisgICAgdWludDE2KHYpIHsKKyAg
ICAgICAgaWYgKCh2ICYgMHhGRkZGKSA+Pj4gMCAhPT0gdikKKyAgICAgICAgICAgIHRocm93IG5l
dyBSYW5nZUVycm9yKGBJbnZhbGlkIHVpbnQxNiAke3Z9YCk7CisgICAgICAgIHRoaXMuX21heWJl
R3JvdygyKTsKKyAgICAgICAgdGhpcy5fcHVzaDgodik7CisgICAgICAgIHRoaXMuX3B1c2g4KHYg
Pj4+IDgpOworICAgIH0KKyAgICB1aW50MjQodikgeworICAgICAgICBpZiAoKHYgJiAweEZGRkZG
RikgPj4+IDAgIT09IHYpCisgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihgSW52YWxp
ZCB1aW50MjQgJHt2fWApOworICAgICAgICB0aGlzLl9tYXliZUdyb3coMyk7CisgICAgICAgIHRo
aXMuX3B1c2g4KHYpOworICAgICAgICB0aGlzLl9wdXNoOCh2ID4+PiA4KTsKKyAgICAgICAgdGhp
cy5fcHVzaDgodiA+Pj4gMTYpOworICAgIH0KKyAgICB1aW50MzIodikgeworICAgICAgICBpZiAo
KHYgJiAweEZGRkZGRkZGKSA+Pj4gMCAhPT0gdikKKyAgICAgICAgICAgIHRocm93IG5ldyBSYW5n
ZUVycm9yKGBJbnZhbGlkIHVpbnQzMiAke3Z9YCk7CisgICAgICAgIHRoaXMuX21heWJlR3Jvdyg0
KTsKKyAgICAgICAgdGhpcy5fcHVzaDgodik7CisgICAgICAgIHRoaXMuX3B1c2g4KHYgPj4+IDgp
OworICAgICAgICB0aGlzLl9wdXNoOCh2ID4+PiAxNik7CisgICAgICAgIHRoaXMuX3B1c2g4KHYg
Pj4+IDI0KTsKKyAgICB9CisgICAgZmxvYXQodikgeworICAgICAgICBpZiAoaXNOYU4odikpCisg
ICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigidW5pbXBsZW1lbnRlZCwgTmFOcyIpOwor
ICAgICAgICAvLyBVbmZvcnR1bmF0ZWx5LCB3ZSBjYW5ub3QganVzdCB2aWV3IHRoZSBhY3R1YWwg
YnVmZmVyIGFzIGEgRmxvYXQzMkFycmF5IHNpbmNlIGl0IG5lZWRzIHRvIGJlIDQgYnl0ZSBhbGln
bmVkCisgICAgICAgIGxldCBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoNCk7CisgICAgICAgIGxl
dCBmbG9hdFZpZXcgPSBuZXcgRmxvYXQzMkFycmF5KGJ1ZmZlcik7CisgICAgICAgIGxldCBpbnQ4
VmlldyA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7CisgICAgICAgIGZsb2F0Vmlld1swXSA9IHY7
CisgICAgICAgIGZvciAobGV0IGJ5dGUgb2YgaW50OFZpZXcpCisgICAgICAgICAgICB0aGlzLl9w
dXNoOChieXRlKTsKKyAgICB9CisKKyAgICBkb3VibGUodikgeworICAgICAgICBpZiAoaXNOYU4o
dikpCisgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigidW5pbXBsZW1lbnRlZCwgTmFO
cyIpOworICAgICAgICAvLyBVbmZvcnR1bmF0ZWx5LCB3ZSBjYW5ub3QganVzdCB2aWV3IHRoZSBh
Y3R1YWwgYnVmZmVyIGFzIGEgRmxvYXQ2NEFycmF5IHNpbmNlIGl0IG5lZWRzIHRvIGJlIDQgYnl0
ZSBhbGlnbmVkCisgICAgICAgIGxldCBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoOCk7CisgICAg
ICAgIGxldCBmbG9hdFZpZXcgPSBuZXcgRmxvYXQ2NEFycmF5KGJ1ZmZlcik7CisgICAgICAgIGxl
dCBpbnQ4VmlldyA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7CisgICAgICAgIGZsb2F0Vmlld1sw
XSA9IHY7CisgICAgICAgIGZvciAobGV0IGJ5dGUgb2YgaW50OFZpZXcpCisgICAgICAgICAgICB0
aGlzLl9wdXNoOChieXRlKTsKKyAgICB9CisKKyAgICB2YXJ1aW50MzIodikgeworICAgICAgICBh
c3NlcnQuaXNOdW1iZXIodik7CisgICAgICAgIGlmICh2IDwgdmFydWludDMyTWluIHx8IHZhcnVp
bnQzMk1heCA8IHYpCisgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihgSW52YWxpZCB2
YXJ1aW50MzIgJHt2fSByYW5nZSBpcyBbJHt2YXJ1aW50MzJNaW59LCAke3ZhcnVpbnQzMk1heH1d
YCk7CisgICAgICAgIHdoaWxlICh2ID49IDB4ODApIHsKKyAgICAgICAgICAgIHRoaXMudWludDgo
MHg4MCB8ICh2ICYgMHg3RikpOworICAgICAgICAgICAgdiA+Pj49IDc7CisgICAgICAgIH0KKyAg
ICAgICAgdGhpcy51aW50OCh2KTsKKyAgICB9CisgICAgdmFyaW50MzIodikgeworICAgICAgICBh
c3NlcnQuaXNOdW1iZXIodik7CisgICAgICAgIGlmICh2IDwgdmFyaW50MzJNaW4gfHwgdmFyaW50
MzJNYXggPCB2KQorICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEludmFsaWQgdmFy
aW50MzIgJHt2fSByYW5nZSBpcyBbJHt2YXJpbnQzMk1pbn0sICR7dmFyaW50MzJNYXh9XWApOwor
ICAgICAgICBkbyB7CisgICAgICAgICAgICBjb25zdCBiID0gdiAmIDB4N0Y7CisgICAgICAgICAg
ICB2ID4+PSA3OworICAgICAgICAgICAgaWYgKCh2ID09PSAwICYmICgoYiAmIDB4NDApID09PSAw
KSkgfHwgKHYgPT09IC0xICYmICgoYiAmIDB4NDApID09PSAweDQwKSkpIHsKKyAgICAgICAgICAg
ICAgICB0aGlzLnVpbnQ4KGIgJiAweDdGKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMudWludDgoMHg4MCB8IGIpOworICAgICAgICB9IHdo
aWxlICh0cnVlKTsKKyAgICB9CisgICAgdmFydWludDY0KHYpIHsKKyAgICAgICAgYXNzZXJ0Lmlz
TnVtYmVyKHYpOworICAgICAgICBpZiAodiA8IHZhcnVpbnQzMk1pbiB8fCB2YXJ1aW50MzJNYXgg
PCB2KQorICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYHVuaW1wbGVtZW50ZWQ6IHZh
cnVpbnQ2NCBsYXJnZXIgdGhhbiAzMi1iaXRgKTsKKyAgICAgICAgdGhpcy52YXJ1aW50MzIodik7
IC8vIEZJWE1FIGltcGxlbWVudCA2NC1iaXQgdmFye3V9aW50IGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjAKKyAgICB9CisgICAgdmFyaW50NjQodikgeworICAg
ICAgICBhc3NlcnQuaXNOdW1iZXIodik7CisgICAgICAgIGlmICh2IDwgdmFyaW50MzJNaW4gfHwg
dmFyaW50MzJNYXggPCB2KQorICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYHVuaW1w
bGVtZW50ZWQ6IHZhcmludDY0IGxhcmdlciB0aGFuIDMyLWJpdGApOworICAgICAgICB0aGlzLnZh
cmludDMyKHYpOyAvLyBGSVhNRSBpbXBsZW1lbnQgNjQtYml0IHZhcnt1fWludCBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIwCisgICAgfQorICAgIHZhcnVpbnQx
KHYpIHsKKyAgICAgICAgaWYgKHYgIT09IDAgJiYgdiAhPT0gMSkKKyAgICAgICAgICAgIHRocm93
IG5ldyBSYW5nZUVycm9yKGBJbnZhbGlkIHZhcnVpbnQxICR7dn0gcmFuZ2UgaXMgWzAsIDFdYCk7
CisgICAgICAgIHRoaXMudmFydWludDMyKHYpOworICAgIH0KKyAgICB2YXJpbnQ3KHYpIHsKKyAg
ICAgICAgaWYgKHYgPCB2YXJpbnQ3TWluIHx8IHZhcmludDdNYXggPCB2KQorICAgICAgICAgICAg
dGhyb3cgbmV3IFJhbmdlRXJyb3IoYEludmFsaWQgdmFyaW50NyAke3Z9IHJhbmdlIGlzIFske3Zh
cmludDdNaW59LCAke3ZhcmludDdNYXh9XWApOworICAgICAgICB0aGlzLnZhcmludDMyKHYpOwor
ICAgIH0KKyAgICB2YXJ1aW50Nyh2KSB7CisgICAgICAgIGlmICh2IDwgdmFydWludDMyTWluIHx8
IHZhcnVpbnQ3TWF4IDwgdikKKyAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGBJbnZh
bGlkIHZhcnVpbnQ3ICR7dn0gcmFuZ2UgaXMgWyR7dmFydWludDMyTWlufSwgJHt2YXJ1aW50N01h
eH1dYCk7CisgICAgICAgIHRoaXMudmFydWludDMyKHYpOworICAgIH0KKyAgICBibG9ja190eXBl
KHYpIHsKKyAgICAgICAgaWYgKCFXQVNNLmlzVmFsaWRCbG9ja1R5cGUodikpCisgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYmxvY2sgdHlwZSAke3Z9YCk7CisgICAgICAgIHRo
aXMudmFyaW50NyhXQVNNLnR5cGVWYWx1ZVt2XSk7CisgICAgfQorICAgIHN0cmluZyhzdHIpIHsK
KyAgICAgICAgbGV0IHBhdGNoID0gdGhpcy5uZXdQYXRjaGFibGUoInZhcnVpbnQzMiIpOworICAg
ICAgICBmb3IgKGNvbnN0IGNoYXIgb2Ygc3RyKSB7CisgICAgICAgICAgICAvLyBFbmNvZGUgVVRG
LTggMjAwMyBjb2RlIHBvaW50cy4KKyAgICAgICAgICAgIGNvbnN0IGNvZGUgPSBjaGFyLmNvZGVQ
b2ludEF0KCk7CisgICAgICAgICAgICBpZiAoY29kZSA8PSAweDAwN0YpIHsKKyAgICAgICAgICAg
ICAgICBjb25zdCB1dGY4ID0gY29kZTsKKyAgICAgICAgICAgICAgICBwYXRjaC51aW50OCh1dGY4
KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY29kZSA8PSAweDA3RkYpIHsKKyAgICAgICAgICAg
ICAgICBjb25zdCB1dGY4ID0gMHg4MEMwIHwgKChjb2RlICYgMHg3QzApID4+IDYpIHwgKChjb2Rl
ICYgMHgzRikgPDwgOCk7CisgICAgICAgICAgICAgICAgcGF0Y2gudWludDE2KHV0ZjgpOworICAg
ICAgICAgICAgfSBlbHNlIGlmIChjb2RlIDw9IDB4RkZGRikgeworICAgICAgICAgICAgICAgIGNv
bnN0IHV0ZjggPSAweDgwODBFMCB8ICgoY29kZSAmIDB4RjAwMCkgPj4gMTIpIHwgKChjb2RlICYg
MHhGQzApIDw8IDIpIHwgKChjb2RlICYgMHgzRikgPDwgMTYpOworICAgICAgICAgICAgICAgIHBh
dGNoLnVpbnQyNCh1dGY4KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY29kZSA8PSAweDEwRkZG
RikgeworICAgICAgICAgICAgICAgIGNvbnN0IHV0ZjggPSAoMHg4MDgwODBGMCB8ICgoY29kZSAm
IDB4MUMwMDAwKSA+PiAxOCkgfCAoKGNvZGUgJiAweDNGMDAwKSA+PiA0KSB8ICgoY29kZSAmIDB4
RkMwKSA8PCAxMCkgfCAoKGNvZGUgJiAweDNGKSA8PCAyNCkpID4+PiAwOworICAgICAgICAgICAg
ICAgIHBhdGNoLnVpbnQzMih1dGY4KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZGx5IGxhcmdlIFVURi04IGNoYXJhY3RlciBj
b2RlIHBvaW50ICcke2NoYXJ9JyAweCR7Y29kZS50b1N0cmluZygxNil9YCk7CisgICAgICAgIH0K
KyAgICAgICAgcGF0Y2guYXBwbHkoKTsKKyAgICB9CisKKyAgICAvLyBHZXR0ZXJzLgorICAgIGdl
dFNpemUoKSB7IHJldHVybiB0aGlzLl91c2VkOyB9CisgICAgZ2V0VWludDgoYXQpIHsKKyAgICAg
ICAgX2dldHRlclJhbmdlQ2hlY2sodGhpcywgYXQsIDEpOworICAgICAgICByZXR1cm4gdGhpcy5f
YnVmW2F0XTsKKyAgICB9CisgICAgZ2V0VWludDE2KGF0KSB7CisgICAgICAgIF9nZXR0ZXJSYW5n
ZUNoZWNrKHRoaXMsIGF0LCAyKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2J1ZlthdF0gfCAodGhp
cy5fYnVmW2F0ICsgMV0gPDwgOCk7CisgICAgfQorICAgIGdldFVpbnQyNChhdCkgeworICAgICAg
ICBfZ2V0dGVyUmFuZ2VDaGVjayh0aGlzLCBhdCwgMyk7CisgICAgICAgIHJldHVybiB0aGlzLl9i
dWZbYXRdIHwgKHRoaXMuX2J1ZlthdCArIDFdIDw8IDgpIHwgKHRoaXMuX2J1ZlthdCArIDJdIDw8
IDE2KTsKKyAgICB9CisgICAgZ2V0VWludDMyKGF0KSB7CisgICAgICAgIF9nZXR0ZXJSYW5nZUNo
ZWNrKHRoaXMsIGF0LCA0KTsKKyAgICAgICAgcmV0dXJuICh0aGlzLl9idWZbYXRdIHwgKHRoaXMu
X2J1ZlthdCArIDFdIDw8IDgpIHwgKHRoaXMuX2J1ZlthdCArIDJdIDw8IDE2KSB8ICh0aGlzLl9i
dWZbYXQgKyAzXSA8PCAyNCkpID4+PiAwOworICAgIH0KKyAgICBnZXRWYXJ1aW50MzIoYXQpIHsK
KyAgICAgICAgbGV0IHYgPSAwOworICAgICAgICBsZXQgc2hpZnQgPSAwOworICAgICAgICBsZXQg
Ynl0ZSA9IDA7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGJ5dGUgPSB0aGlzLmdldFVpbnQ4
KGF0KyspOworICAgICAgICAgICAgKytyZWFkOworICAgICAgICAgICAgdiA9ICh2IHwgKChieXRl
ICYgMHg3RikgPDwgc2hpZnQpID4+PiAwKSA+Pj4gMDsKKyAgICAgICAgICAgIHNoaWZ0ICs9IDc7
CisgICAgICAgIH0gd2hpbGUgKChieXRlICYgMHg4MCkgIT09IDApOworICAgICAgICBpZiAoc2hp
ZnQgLSA3ID4gMzIpIHRocm93IG5ldyBSYW5nZUVycm9yKGBTaGlmdGluZyB0b28gbXVjaCBhdCAk
e2F0fWApOworICAgICAgICBpZiAoKHNoaWZ0ID09IDM1KSAmJiAoKGJ5dGUgJiAweEYwKSAhPSAw
KSkgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIG5vbi1zaWduaWZpY2FudCB2YXJ1aW50MzIg
Yml0cyBpbiBsYXN0IGJ5dGUgMHgke2J5dGUudG9TdHJpbmcoMTYpfWApOworICAgICAgICByZXR1
cm4geyB2YWx1ZTogdiwgbmV4dDogYXQgfTsKKyAgICB9CisgICAgZ2V0VmFyaW50MzIoYXQpIHsK
KyAgICAgICAgbGV0IHYgPSAwOworICAgICAgICBsZXQgc2hpZnQgPSAwOworICAgICAgICBsZXQg
Ynl0ZSA9IDA7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGJ5dGUgPSB0aGlzLmdldFVpbnQ4
KGF0KyspOworICAgICAgICAgICAgdiA9ICh2IHwgKChieXRlICYgMHg3RikgPDwgc2hpZnQpID4+
PiAwKSA+Pj4gMDsKKyAgICAgICAgICAgIHNoaWZ0ICs9IDc7CisgICAgICAgIH0gd2hpbGUgKChi
eXRlICYgMHg4MCkgIT09IDApOworICAgICAgICBpZiAoc2hpZnQgLSA3ID4gMzIpIHRocm93IG5l
dyBSYW5nZUVycm9yKGBTaGlmdGluZyB0b28gbXVjaCBhdCAke2F0fWApOworICAgICAgICBpZiAo
KHNoaWZ0ID09IDM1KSAmJiAoKChieXRlIDw8IDI2KSA+PiAzMCkgIT0gKChieXRlIDw8IDI1KSA+
PiAzMSkpKSB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgbm9uLXNpZ25pZmljYW50IHZhcmlu
dDMyIGJpdHMgaW4gbGFzdCBieXRlIDB4JHtieXRlLnRvU3RyaW5nKDE2KX1gKTsKKyAgICAgICAg
aWYgKChieXRlICYgMHg0MCkgPT09IDB4NDApIHsKKyAgICAgICAgICAgIGNvbnN0IHNleHQgPSBz
aGlmdCA8IDMyID8gMzIgLSBzaGlmdCA6IDA7CisgICAgICAgICAgICB2ID0gKHYgPDwgc2V4dCkg
Pj4gc2V4dDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geyB2YWx1ZTogdiwgbmV4dDogYXQg
fTsKKyAgICB9CisgICAgZ2V0VmFydWludDEoYXQpIHsKKyAgICAgICAgY29uc3QgcmVzID0gdGhp
cy5nZXRWYXJ1aW50MzIoYXQpOworICAgICAgICBpZiAocmVzLnZhbHVlICE9PSAwICYmIHJlcy52
YWx1ZSAhPT0gMSkgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBhIHZhcnVpbnQxLCBnb3QgdmFs
dWUgJHtyZXMudmFsdWV9YCk7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorICAgIGdldFZh
cnVpbnQ3KGF0KSB7CisgICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuZ2V0VmFydWludDMyKGF0KTsK
KyAgICAgICAgaWYgKHJlcy52YWx1ZSA+IHZhcnVpbnQ3TWF4KSB0aHJvdyBuZXcgRXJyb3IoYEV4
cGVjdGVkIGEgdmFydWludDcsIGdvdCB2YWx1ZSAke3Jlcy52YWx1ZX1gKTsKKyAgICAgICAgcmV0
dXJuIHJlczsKKyAgICB9CisgICAgZ2V0U3RyaW5nKGF0KSB7CisgICAgICAgIGNvbnN0IHNpemUg
PSB0aGlzLmdldFZhcnVpbnQzMihhdCk7CisgICAgICAgIGNvbnN0IGxhc3QgPSBzaXplLm5leHQg
KyBzaXplLnZhbHVlOworICAgICAgICBsZXQgaSA9IHNpemUubmV4dDsKKyAgICAgICAgbGV0IHN0
ciA9ICIiOworICAgICAgICB3aGlsZSAoaSA8IGxhc3QpIHsKKyAgICAgICAgICAgIC8vIERlY29k
ZSBVVEYtOCAyMDAzIGNvZGUgcG9pbnRzLgorICAgICAgICAgICAgY29uc3QgcGVlayA9IHRoaXMu
Z2V0VWludDgoaSk7CisgICAgICAgICAgICBsZXQgY29kZTsKKyAgICAgICAgICAgIGlmICgocGVl
ayAmIDB4ODApID09PSAweDApIHsKKyAgICAgICAgICAgICAgICBjb25zdCB1dGY4ID0gdGhpcy5n
ZXRVaW50OChpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXEodXRmOCAmIDB4ODAsIDB4MDAp
OworICAgICAgICAgICAgICAgIGkgKz0gMTsKKyAgICAgICAgICAgICAgICBjb2RlID0gdXRmODsK
KyAgICAgICAgICAgIH0gZWxzZSBpZiAoKHBlZWsgJiAweEUwKSA9PT0gMHhDMCkgeworICAgICAg
ICAgICAgICAgIGNvbnN0IHV0ZjggPSB0aGlzLmdldFVpbnQxNihpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXEodXRmOCAmIDB4QzBFMCwgMHg4MEMwKTsKKyAgICAgICAgICAgICAgICBpICs9
IDI7CisgICAgICAgICAgICAgICAgY29kZSA9ICgodXRmOCAmIDB4MUYpIDw8IDYpIHwgKCh1dGY4
ICYgMHgzRjAwKSA+PiA4KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoKHBlZWsgJiAweEYwKSA9
PT0gMHhFMCkgeworICAgICAgICAgICAgICAgIGNvbnN0IHV0ZjggPSB0aGlzLmdldFVpbnQyNChp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXEodXRmOCAmIDB4QzBDMEYwLCAweDgwODBFMCk7
CisgICAgICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgICAgIGNvZGUgPSAoKHV0Zjgg
JiAweEYpIDw8IDEyKSB8ICgodXRmOCAmIDB4M0YwMCkgPj4gMikgfCAoKHV0ZjggJiAweDNGMDAw
MCkgPj4gMTYpOworICAgICAgICAgICAgfSBlbHNlIGlmICgocGVlayAmIDB4RjgpID09PSAweEYw
KSB7CisgICAgICAgICAgICAgICAgY29uc3QgdXRmOCA9IHRoaXMuZ2V0VWludDMyKGkpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcSgodXRmOCAmIDB4QzBDMEMwRjgpIHwgMCwgMHg4MDgwODBG
MCB8IDApOworICAgICAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgICAgICBjb2RlID0g
KCh1dGY4ICYgMHg3KSA8PCAxOCkgfCAoKHV0ZjggJiAweDNGMDApIDw8IDQpIHwgKCh1dGY4ICYg
MHgzRjAwMDApID4+IDEwKSB8ICgodXRmOCAmIDB4M0YwMDAwMDApID4+IDI0KTsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZGx5
IGxhcmdlIFVURi04IGluaXRpYWwgYnl0ZSAweCR7cGVlay50b1N0cmluZygxNil9YCk7CisgICAg
ICAgICAgICBzdHIgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY29kZSk7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKGkgIT09IGxhc3QpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFN0cmlu
ZyBkZWNvZGluZyByZWFkIHVwIHRvICR7aX0sIGV4cGVjdGVkICR7bGFzdH0sIFVURi04IGRlY29k
aW5nIHdhcyB0b28gZ3JlZWR5YCk7CisgICAgICAgIHJldHVybiBzdHI7CisgICAgfQorfTsKKwor
Y2xhc3MgUGF0Y2hhYmxlTG93TGV2ZWxCaW5hcnkgZXh0ZW5kcyBMb3dMZXZlbEJpbmFyeSB7Cisg
ICAgY29uc3RydWN0b3IodHlwZSwgbG93TGV2ZWxCaW5hcnkpIHsKKyAgICAgICAgc3VwZXIoKTsK
KyAgICAgICAgdGhpcy50eXBlID0gdHlwZTsKKyAgICAgICAgdGhpcy50YXJnZXQgPSBsb3dMZXZl
bEJpbmFyeTsKKyAgICAgICAgdGhpcy5fYnVmZmVyZWRfYnl0ZXMgPSAwOworICAgIH0KKyAgICBf
cHVzaDgodikgeyArK3RoaXMuX2J1ZmZlcmVkX2J5dGVzOyBzdXBlci5fcHVzaDgodik7IH0KKyAg
ICBhcHBseSgpIHsKKyAgICAgICAgdGhpcy50YXJnZXRbdGhpcy50eXBlXSh0aGlzLl9idWZmZXJl
ZF9ieXRlcyk7CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fYnVmZmVyZWRfYnl0
ZXM7ICsraSkKKyAgICAgICAgICAgIHRoaXMudGFyZ2V0LnVpbnQ4KHRoaXMuX2J1ZltpXSk7Cisg
ICAgfQorfTsKKworTG93TGV2ZWxCaW5hcnkudmFydWludDMyTWluID0gMDsKK0xvd0xldmVsQmlu
YXJ5LnZhcmludDdNaW4gPSAtMGIxMDAwMDAwOworTG93TGV2ZWxCaW5hcnkudmFyaW50N01heCA9
IDBiMTExMTExOworTG93TGV2ZWxCaW5hcnkudmFydWludDdNYXggPSAwYjExMTExMTE7CitMb3dM
ZXZlbEJpbmFyeS52YXJ1aW50MzJNYXggPSAoKCgoMSA8PCAzMSkgPj4+IDApIC0gMSkgKiAyKSAr
IDE7CitMb3dMZXZlbEJpbmFyeS52YXJpbnQzMk1pbiA9IC0oKDEgPDwgMzEpID4+PiAwKTsKK0xv
d0xldmVsQmluYXJ5LnZhcmludDMyTWF4ID0gKCgxIDw8IDMxKSAtIDEpID4+PiAwOworTG93TGV2
ZWxCaW5hcnkudmFyQml0c01heCA9IDU7CisKKworLy8gQnVpbGRlcl9XZWJBc3NlbWJseUJpbmFy
eS5qcworY29uc3QgQnVpbGRXZWJBc3NlbWJseSA9IHt9OworeworICAgIGNvbnN0IHB1dCA9IChi
aW4sIHR5cGUsIHZhbHVlKSA9PiBiaW5bdHlwZV0odmFsdWUpOworCisgICAgY29uc3QgcHV0UmVz
aXphYmxlTGltaXRzID0gKGJpbiwgaW5pdGlhbCwgbWF4aW11bSkgPT4geworICAgICAgICBhc3Nl
cnQudHJ1dGh5KHR5cGVvZiBpbml0aWFsID09PSAibnVtYmVyIiwgIldlIGV4cGVjdCAnaW5pdGlh
bCcgdG8gYmUgYW4gaW50ZWdlciIpOworICAgICAgICBsZXQgaGFzTWF4aW11bSA9IDA7CisgICAg
ICAgIGlmICh0eXBlb2YgbWF4aW11bSA9PT0gIm51bWJlciIpIHsKKyAgICAgICAgICAgIGhhc01h
eGltdW0gPSAxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXNzZXJ0LnRydXRoeSh0
eXBlb2YgbWF4aW11bSA9PT0gInVuZGVmaW5lZCIsICJXZSBleHBlY3QgJ21heGltdW0nIHRvIGJl
IGFuIGludGVnZXIgaWYgaXQncyBkZWZpbmVkIik7CisgICAgICAgIH0KKworICAgICAgICBwdXQo
YmluLCAidmFydWludDEiLCBoYXNNYXhpbXVtKTsKKyAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQz
MiIsIGluaXRpYWwpOworICAgICAgICBpZiAoaGFzTWF4aW11bSkKKyAgICAgICAgICAgIHB1dChi
aW4sICJ2YXJ1aW50MzIiLCBtYXhpbXVtKTsKKyAgICB9OworCisgICAgY29uc3QgcHV0VGFibGUg
PSAoYmluLCB7aW5pdGlhbCwgbWF4aW11bSwgZWxlbWVudH0pID0+IHsKKyAgICAgICAgYXNzZXJ0
LnRydXRoeShXQVNNLmlzVmFsaWRUeXBlKGVsZW1lbnQpLCAiV2UgZXhwZWN0ICdlbGVtZW50JyB0
byBiZSBhIHZhbGlkIHR5cGUuIEl0IHdhczogIiArIGVsZW1lbnQpOworICAgICAgICBwdXQoYmlu
LCAidmFyaW50NyIsIFdBU00udHlwZVZhbHVlW2VsZW1lbnRdKTsKKworICAgICAgICBwdXRSZXNp
emFibGVMaW1pdHMoYmluLCBpbml0aWFsLCBtYXhpbXVtKTsKKyAgICB9OworCisgICAgY29uc3Qg
dmFsdWVUeXBlID0gV0FTTS5kZXNjcmlwdGlvbi50eXBlLmkzMi50eXBlCisKKyAgICBjb25zdCBw
dXRHbG9iYWxUeXBlID0gKGJpbiwgZ2xvYmFsKSA9PiB7CisgICAgICAgIHB1dChiaW4sIHZhbHVl
VHlwZSwgV0FTTS50eXBlVmFsdWVbZ2xvYmFsLnR5cGVdKTsKKyAgICAgICAgcHV0KGJpbiwgInZh
cnVpbnQxIiwgZ2xvYmFsLm11dGFiaWxpdHkpOworICAgIH07CisKKyAgICBjb25zdCBwdXRPcCA9
IChiaW4sIG9wKSA9PiB7CisgICAgICAgIHB1dChiaW4sICJ1aW50OCIsIG9wLnZhbHVlKTsKKyAg
ICAgICAgaWYgKG9wLmFyZ3VtZW50cy5sZW5ndGggIT09IDApCisgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoYFVuaW1wbGVtZW50ZWQ6IGFyZ3VtZW50c2ApOyAvLyBGSVhNRSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNzA2CisKKyAgICAgICAgc3dpdGNoIChv
cC5uYW1lKSB7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsg
aSA8IG9wLmltbWVkaWF0ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBjb25zdCB0
eXBlID0gV0FTTS5kZXNjcmlwdGlvbi5vcGNvZGVbb3AubmFtZV0uaW1tZWRpYXRlW2ldLnR5cGUK
KyAgICAgICAgICAgICAgICBpZiAoIWJpblt0eXBlXSkKKyAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IFR5cGVFcnJvcihgVW5rbm93biB0eXBlOiAke3R5cGV9IGluIG9wOiAke29wLm5hbWV9
YCk7CisgICAgICAgICAgICAgICAgcHV0KGJpbiwgdHlwZSwgb3AuaW1tZWRpYXRlc1tpXSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiaTMyLmNvbnN0
IjogeworICAgICAgICAgICAgYXNzZXJ0LmVxKG9wLmltbWVkaWF0ZXMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGxldCBpbW0gPSBvcC5pbW1lZGlhdGVzWzBdOworICAgICAgICAgICAgLy8gRG8g
YSBzdGF0aWMgY2FzdCB0byBtYWtlIGxhcmdlIGludDMycyBzaWduZWQuCisgICAgICAgICAgICBp
ZiAoaW1tID49IDIgKiogMzEpCisgICAgICAgICAgICAgICAgaW1tID0gaW1tIC0gKDIgKiogMzIp
OworICAgICAgICAgICAgcHV0KGJpbiwgInZhcmludDMyIiwgaW1tKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgImJyX3RhYmxlIjoKKyAgICAgICAgICAgIHB1
dChiaW4sICJ2YXJ1aW50MzIiLCBvcC5pbW1lZGlhdGVzLmxlbmd0aCAtIDEpOworICAgICAgICAg
ICAgZm9yIChsZXQgaW1tIG9mIG9wLmltbWVkaWF0ZXMpCisgICAgICAgICAgICAgICAgcHV0KGJp
biwgInZhcnVpbnQzMiIsIGltbSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
IH07CisKKyAgICBjb25zdCBwdXRJbml0RXhwciA9IChiaW4sIGV4cHIpID0+IHsKKyAgICAgICAg
cHV0T3AoYmluLCB7IHZhbHVlOiBXQVNNLmRlc2NyaXB0aW9uLm9wY29kZVtleHByLm9wXS52YWx1
ZSwgbmFtZTogZXhwci5vcCwgaW1tZWRpYXRlczogW2V4cHIuaW5pdFZhbHVlXSwgYXJndW1lbnRz
OiBbXSB9KTsKKyAgICAgICAgcHV0T3AoYmluLCB7IHZhbHVlOiBXQVNNLmRlc2NyaXB0aW9uLm9w
Y29kZS5lbmQudmFsdWUsIG5hbWU6ICJlbmQiLCBpbW1lZGlhdGVzOiBbXSwgYXJndW1lbnRzOiBb
XSB9KTsKKyAgICB9OworCisgICAgY29uc3QgZW1pdHRlcnMgPSB7CisgICAgICAgIFR5cGU6IChz
ZWN0aW9uLCBiaW4pID0+IHsKKyAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBzZWN0
aW9uLmRhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2Ygc2VjdGlv
bi5kYXRhKSB7CisgICAgICAgICAgICAgICAgcHV0KGJpbiwgInZhcmludDciLCBXQVNNLnR5cGVW
YWx1ZVsiZnVuYyJdKTsKKyAgICAgICAgICAgICAgICBwdXQoYmluLCAidmFydWludDMyIiwgZW50
cnkucGFyYW1zLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBwYXJhbSBvZiBl
bnRyeS5wYXJhbXMpCisgICAgICAgICAgICAgICAgICAgIHB1dChiaW4sICJ2YXJpbnQ3IiwgV0FT
TS50eXBlVmFsdWVbcGFyYW1dKTsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnkucmV0ID09PSAi
dm9pZCIpCisgICAgICAgICAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MSIsIDApOworICAg
ICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwdXQoYmluLCAidmFydWlu
dDEiLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgcHV0KGJpbiwgInZhcmludDciLCBXQVNNLnR5
cGVWYWx1ZVtlbnRyeS5yZXRdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0sCisgICAgICAgIEltcG9ydDogKHNlY3Rpb24sIGJpbikgPT4geworICAgICAgICAg
ICAgcHV0KGJpbiwgInZhcnVpbnQzMiIsIHNlY3Rpb24uZGF0YS5sZW5ndGgpOworICAgICAgICAg
ICAgZm9yIChjb25zdCBlbnRyeSBvZiBzZWN0aW9uLmRhdGEpIHsKKyAgICAgICAgICAgICAgICBw
dXQoYmluLCAic3RyaW5nIiwgZW50cnkubW9kdWxlKTsKKyAgICAgICAgICAgICAgICBwdXQoYmlu
LCAic3RyaW5nIiwgZW50cnkuZmllbGQpOworICAgICAgICAgICAgICAgIHB1dChiaW4sICJ1aW50
OCIsIFdBU00uZXh0ZXJuYWxLaW5kVmFsdWVbZW50cnkua2luZF0pOworICAgICAgICAgICAgICAg
IHN3aXRjaCAoZW50cnkua2luZCkgeworICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRocm93IG5l
dyBFcnJvcihgSW1wbGVtZW50YXRpb24gcHJvYmxlbTogdW5leHBlY3RlZCBraW5kICR7ZW50cnku
a2luZH1gKTsKKyAgICAgICAgICAgICAgICBjYXNlICJGdW5jdGlvbiI6IHsKKyAgICAgICAgICAg
ICAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQzMiIsIGVudHJ5LnR5cGUpOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSAi
VGFibGUiOiB7CisgICAgICAgICAgICAgICAgICAgIHB1dFRhYmxlKGJpbiwgZW50cnkudGFibGVE
ZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBjYXNlICJNZW1vcnkiOiB7CisgICAgICAgICAgICAgICAgICAg
IGxldCB7aW5pdGlhbCwgbWF4aW11bX0gPSBlbnRyeS5tZW1vcnlEZXNjcmlwdGlvbjsKKyAgICAg
ICAgICAgICAgICAgICAgcHV0UmVzaXphYmxlTGltaXRzKGJpbiwgaW5pdGlhbCwgbWF4aW11bSk7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH07CisgICAgICAg
ICAgICAgICAgY2FzZSAiR2xvYmFsIjoKKyAgICAgICAgICAgICAgICAgICAgcHV0R2xvYmFsVHlw
ZShiaW4sIGVudHJ5Lmdsb2JhbERlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9LAorCisgICAg
ICAgIEZ1bmN0aW9uOiAoc2VjdGlvbiwgYmluKSA9PiB7CisgICAgICAgICAgICBwdXQoYmluLCAi
dmFydWludDMyIiwgc2VjdGlvbi5kYXRhLmxlbmd0aCk7CisgICAgICAgICAgICBmb3IgKGNvbnN0
IHNpZ25hdHVyZSBvZiBzZWN0aW9uLmRhdGEpCisgICAgICAgICAgICAgICAgcHV0KGJpbiwgInZh
cnVpbnQzMiIsIHNpZ25hdHVyZSk7CisgICAgICAgIH0sCisKKyAgICAgICAgVGFibGU6IChzZWN0
aW9uLCBiaW4pID0+IHsKKyAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBzZWN0aW9u
LmRhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgIGZvciAoY29uc3Qge3RhYmxlRGVzY3JpcHRpb259
IG9mIHNlY3Rpb24uZGF0YSkgeworICAgICAgICAgICAgICAgIHB1dFRhYmxlKGJpbiwgdGFibGVE
ZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisKKyAgICAgICAgTWVtb3J5
OiAoc2VjdGlvbiwgYmluKSA9PiB7CisgICAgICAgICAgICAvLyBGbGFncywgY3VycmVudGx5IGNh
biBvbmx5IGJlIFswLDFdCisgICAgICAgICAgICBwdXQoYmluLCAidmFydWludDEiLCBzZWN0aW9u
LmRhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgbWVtb3J5IG9mIHNlY3Rpb24u
ZGF0YSkgeworICAgICAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBtZW1vcnkubWF4
ID8gMSA6IDApOworICAgICAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBtZW1vcnku
aW5pdGlhbCk7CisgICAgICAgICAgICAgICAgaWYgKG1lbW9yeS5tYXgpCisgICAgICAgICAgICAg
ICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBtZW1vcnkubWF4KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSwKKworICAgICAgICBHbG9iYWw6IChzZWN0aW9uLCBiaW4pID0+IHsKKyAgICAg
ICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBzZWN0aW9uLmRhdGEubGVuZ3RoKTsKKyAgICAg
ICAgICAgIGZvciAoY29uc3QgZ2xvYmFsIG9mIHNlY3Rpb24uZGF0YSkgeworICAgICAgICAgICAg
ICAgIHB1dEdsb2JhbFR5cGUoYmluLCBnbG9iYWwpOworICAgICAgICAgICAgICAgIHB1dEluaXRF
eHByKGJpbiwgZ2xvYmFsKQorICAgICAgICAgICAgfQorICAgICAgICB9LAorCisgICAgICAgIEV4
cG9ydDogKHNlY3Rpb24sIGJpbikgPT4geworICAgICAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQz
MiIsIHNlY3Rpb24uZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBv
ZiBzZWN0aW9uLmRhdGEpIHsKKyAgICAgICAgICAgICAgICBwdXQoYmluLCAic3RyaW5nIiwgZW50
cnkuZmllbGQpOworICAgICAgICAgICAgICAgIHB1dChiaW4sICJ1aW50OCIsIFdBU00uZXh0ZXJu
YWxLaW5kVmFsdWVbZW50cnkua2luZF0pOworICAgICAgICAgICAgICAgIHN3aXRjaCAoZW50cnku
a2luZCkgeworICAgICAgICAgICAgICAgIGNhc2UgIkdsb2JhbCI6CisgICAgICAgICAgICAgICAg
Y2FzZSAiRnVuY3Rpb24iOgorICAgICAgICAgICAgICAgIGNhc2UgIk1lbW9yeSI6CisgICAgICAg
ICAgICAgICAgY2FzZSAiVGFibGUiOgorICAgICAgICAgICAgICAgICAgICBwdXQoYmluLCAidmFy
dWludDMyIiwgZW50cnkuaW5kZXgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoYEltcGxlbWVudGF0aW9uIHByb2Js
ZW06IHVuZXhwZWN0ZWQga2luZCAke2VudHJ5LmtpbmR9YCk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICBTdGFydDogKHNlY3Rpb24sIGJpbikg
PT4geworICAgICAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQzMiIsIHNlY3Rpb24uZGF0YVswXSk7
CisgICAgICAgIH0sCisgICAgICAgIEVsZW1lbnQ6IChzZWN0aW9uLCBiaW4pID0+IHsKKyAgICAg
ICAgICAgIGNvbnN0IGRhdGEgPSBzZWN0aW9uLmRhdGE7CisgICAgICAgICAgICBwdXQoYmluLCAi
dmFydWludDMyIiwgZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgZm9yIChjb25zdCB7dGFibGVJ
bmRleCwgb2Zmc2V0LCBmdW5jdGlvbkluZGljZXN9IG9mIGRhdGEpIHsKKyAgICAgICAgICAgICAg
ICBwdXQoYmluLCAidmFydWludDMyIiwgdGFibGVJbmRleCk7CisKKyAgICAgICAgICAgICAgICBs
ZXQgaW5pdEV4cHI7CisgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvZmZzZXQgPT09ICJudW1i
ZXIiKQorICAgICAgICAgICAgICAgICAgICBpbml0RXhwciA9IHtvcDogImkzMi5jb25zdCIsIGlu
aXRWYWx1ZTogb2Zmc2V0fTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIGluaXRFeHByID0gb2Zmc2V0OworICAgICAgICAgICAgICAgIHB1dEluaXRFeHByKGJpbiwg
aW5pdEV4cHIpOworCisgICAgICAgICAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQzMiIsIGZ1bmN0
aW9uSW5kaWNlcy5sZW5ndGgpOworICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZnVuY3Rpb25J
bmRleCBvZiBmdW5jdGlvbkluZGljZXMpCisgICAgICAgICAgICAgICAgICAgIHB1dChiaW4sICJ2
YXJ1aW50MzIiLCBmdW5jdGlvbkluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKwor
ICAgICAgICBDb2RlOiAoc2VjdGlvbiwgYmluKSA9PiB7CisgICAgICAgICAgICBwdXQoYmluLCAi
dmFydWludDMyIiwgc2VjdGlvbi5kYXRhLmxlbmd0aCk7CisgICAgICAgICAgICBmb3IgKGNvbnN0
IGZ1bmMgb2Ygc2VjdGlvbi5kYXRhKSB7CisgICAgICAgICAgICAgICAgbGV0IGZ1bmNCaW4gPSBi
aW4ubmV3UGF0Y2hhYmxlKCJ2YXJ1aW50MzIiKTsKKyAgICAgICAgICAgICAgICBjb25zdCBsb2Nh
bENvdW50ID0gZnVuYy5sb2NhbHMubGVuZ3RoIC0gZnVuYy5wYXJhbWV0ZXJDb3VudDsKKyAgICAg
ICAgICAgICAgICBwdXQoZnVuY0JpbiwgInZhcnVpbnQzMiIsIGxvY2FsQ291bnQpOworICAgICAg
ICAgICAgICAgIGZvciAobGV0IGkgPSBmdW5jLnBhcmFtZXRlckNvdW50OyBpIDwgZnVuYy5sb2Nh
bHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgcHV0KGZ1bmNCaW4sICJ2YXJ1
aW50MzIiLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgcHV0KGZ1bmNCaW4sICJ2YXJpbnQ3Iiwg
V0FTTS50eXBlVmFsdWVbZnVuYy5sb2NhbHNbaV1dKTsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBmb3IgKGNvbnN0IG9wIG9mIGZ1bmMuY29kZSkKKyAgICAgICAgICAgICAg
ICAgICAgcHV0T3AoZnVuY0Jpbiwgb3ApOworCisgICAgICAgICAgICAgICAgZnVuY0Jpbi5hcHBs
eSgpOworICAgICAgICAgICAgfQorICAgICAgICB9LAorCisgICAgICAgIERhdGE6IChzZWN0aW9u
LCBiaW4pID0+IHsKKyAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBzZWN0aW9uLmRh
dGEubGVuZ3RoKTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgZGF0dW0gb2Ygc2VjdGlvbi5kYXRh
KSB7CisgICAgICAgICAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQzMiIsIGRhdHVtLmluZGV4KTsK
KyAgICAgICAgICAgICAgICAvLyBGSVhNRSBhbGxvdyBjb21wbGV4IGluaXRfZXhwciBoZXJlLiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1NzAwCisgICAgICAgICAg
ICAgICAgLy8gRm9yIG5vdyB3ZSBvbmx5IGhhbmRsZSBpMzIuY29uc3QgYXMgb2Zmc2V0LgorICAg
ICAgICAgICAgICAgIHB1dChiaW4sICJ1aW50OCIsIFdBU00uZGVzY3JpcHRpb24ub3Bjb2RlWyJp
MzIuY29uc3QiXS52YWx1ZSk7CisgICAgICAgICAgICAgICAgcHV0KGJpbiwgV0FTTS5kZXNjcmlw
dGlvbi5vcGNvZGVbImkzMi5jb25zdCJdLmltbWVkaWF0ZVswXS50eXBlLCBkYXR1bS5vZmZzZXQp
OworICAgICAgICAgICAgICAgIHB1dChiaW4sICJ1aW50OCIsIFdBU00uZGVzY3JpcHRpb24ub3Bj
b2RlWyJlbmQiXS52YWx1ZSk7CisgICAgICAgICAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQzMiIs
IGRhdHVtLmRhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGJ5dGUgb2Yg
ZGF0dW0uZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgcHV0KGJpbiwgInVpbnQ4IiwgYnl0ZSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgfTsKKworICAgIEJ1aWxkV2ViQXNzZW1i
bHkuQmluYXJ5ID0gKHByZWFtYmxlLCBzZWN0aW9ucykgPT4geworICAgICAgICBsZXQgd2FzbUJp
biA9IG5ldyBMb3dMZXZlbEJpbmFyeSgpOworICAgICAgICBmb3IgKGNvbnN0IHAgb2YgV0FTTS5k
ZXNjcmlwdGlvbi5wcmVhbWJsZSkKKyAgICAgICAgICAgIHB1dCh3YXNtQmluLCBwLnR5cGUsIHBy
ZWFtYmxlW3AubmFtZV0pOworICAgICAgICBmb3IgKGNvbnN0IHNlY3Rpb24gb2Ygc2VjdGlvbnMp
IHsKKyAgICAgICAgICAgIHB1dCh3YXNtQmluLCBXQVNNLnNlY3Rpb25FbmNvZGluZ1R5cGUsIHNl
Y3Rpb24uaWQpOworICAgICAgICAgICAgbGV0IHNlY3Rpb25CaW4gPSB3YXNtQmluLm5ld1BhdGNo
YWJsZSgidmFydWludDMyIik7CisgICAgICAgICAgICBjb25zdCBlbWl0dGVyID0gZW1pdHRlcnNb
c2VjdGlvbi5uYW1lXTsKKyAgICAgICAgICAgIGlmIChlbWl0dGVyKQorICAgICAgICAgICAgICAg
IGVtaXR0ZXIoc2VjdGlvbiwgc2VjdGlvbkJpbik7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAvLyBVbmtub3duIHNlY3Rpb24uCisgICAgICAgICAgICAgICAgcHV0KHNlY3Rp
b25CaW4sICJzdHJpbmciLCBzZWN0aW9uLm5hbWUpOworICAgICAgICAgICAgICAgIGZvciAoY29u
c3QgYnl0ZSBvZiBzZWN0aW9uLmRhdGEpCisgICAgICAgICAgICAgICAgICAgIHB1dChzZWN0aW9u
QmluLCAidWludDgiLCBieXRlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNlY3Rpb25C
aW4uYXBwbHkoKTsKKyAgICAgICAgfQorICAgICAgICB3YXNtQmluLnRyaW0oKTsKKyAgICAgICAg
cmV0dXJuIHdhc21CaW47CisgICAgfTsKK30KKworCitjb25zdCBMTEIgPSBMb3dMZXZlbEJpbmFy
eTsKKworY29uc3QgX3RvSmF2YVNjcmlwdE5hbWUgPSBuYW1lID0+IHsKKyAgICBjb25zdCBjYW1l
bENhc2UgPSBuYW1lLnJlcGxhY2UoLyhbXmEtejAtOV0uKS9nLCBjID0+IGNbMV0udG9VcHBlckNh
c2UoKSk7CisgICAgY29uc3QgQ2FtZWxDYXNlID0gY2FtZWxDYXNlLmNoYXJBdCgwKS50b1VwcGVy
Q2FzZSgpICsgY2FtZWxDYXNlLnNsaWNlKDEpOworICAgIHJldHVybiBDYW1lbENhc2U7Cit9Owor
Citjb25zdCBfaXNWYWxpZFZhbHVlID0gKHZhbHVlLCB0eXBlKSA9PiB7CisgICAgc3dpdGNoICh0
eXBlKSB7CisgICAgLy8gV2UgYWxsb3cgYm90aCBzaWduZWQgYW5kIHVuc2lnbmVkIG51bWJlcnMu
CisgICAgY2FzZSAiaTMyIjogcmV0dXJuIE1hdGgucm91bmQodmFsdWUpID09PSB2YWx1ZSAmJiBM
TEIudmFyaW50MzJNaW4gPD0gdmFsdWUgJiYgdmFsdWUgPD0gTExCLnZhcnVpbnQzMk1heDsKKyAg
ICBjYXNlICJpNjQiOiByZXR1cm4gdHJ1ZTsgLy8gRklYTUUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMCA2NC1iaXQgdmFsdWVzCisgICAgY2FzZSAiZjMyIjog
cmV0dXJuIHR5cGVvZih2YWx1ZSkgPT09ICJudW1iZXIiICYmIGlzRmluaXRlKHZhbHVlKTsKKyAg
ICBjYXNlICJmNjQiOiByZXR1cm4gdHlwZW9mKHZhbHVlKSA9PT0gIm51bWJlciIgJiYgaXNGaW5p
dGUodmFsdWUpOworICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcihgSW1wbGVtZW50YXRpb24g
cHJvYmxlbTogdW5rbm93biB0eXBlICR7dHlwZX1gKTsKKyAgICB9Cit9OworY29uc3QgX3Vua25v
d25TZWN0aW9uSWQgPSAwOworCitjb25zdCBfbm9ybWFsaXplRnVuY3Rpb25TaWduYXR1cmUgPSAo
cGFyYW1zLCByZXQpID0+IHsKKyAgICBhc3NlcnQuaXNBcnJheShwYXJhbXMpOworICAgIGZvciAo
Y29uc3QgcCBvZiBwYXJhbXMpCisgICAgICAgIGFzc2VydC50cnV0aHkoV0FTTS5pc1ZhbGlkVmFs
dWVUeXBlKHApLCBgVHlwZSBwYXJhbWV0ZXIgJHtwfSBuZWVkcyBhIHZhbGlkIHZhbHVlIHR5cGVg
KTsKKyAgICBpZiAodHlwZW9mKHJldCkgPT09ICJ1bmRlZmluZWQiKQorICAgICAgICByZXQgPSAi
dm9pZCI7CisgICAgYXNzZXJ0LmlzTm90QXJyYXkocmV0LCBgTXVsdGlwbGUgcmV0dXJuIHZhbHVl
cyBub3Qgc3VwcG9ydGVkIGJ5IFdlYkFzc2VtYmx5IHlldGApOworICAgIGFzc2VydC50cnV0aHko
V0FTTS5pc1ZhbGlkQmxvY2tUeXBlKHJldCksIGBUeXBlIHJldHVybiAke3JldH0gbXVzdCBiZSB2
YWxpZCBibG9jayB0eXBlYCk7CisgICAgcmV0dXJuIFtwYXJhbXMsIHJldF07Cit9OworCitjb25z
dCBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yID0gYnVpbGRlciA9PiBidWlsZGVyWyJfX2lzUHJveHki
XSA/IGJ1aWxkZXIgOiBuZXcgUHJveHkoYnVpbGRlciwgeworICAgIGdldDogKHRhcmdldCwgcHJv
cGVydHksIHJlY2VpdmVyKSA9PiB7CisgICAgICAgIGlmIChwcm9wZXJ0eSA9PT0gIl9faXNQcm94
eSIpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKHRhcmdldFtwcm9wZXJ0
eV0gPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgV2ViQXNzZW1i
bHkgYnVpbGRlciByZWNlaXZlZCB1bmtub3duIHByb3BlcnR5ICcke3Byb3BlcnR5fSdgKTsKKyAg
ICAgICAgcmV0dXJuIHRhcmdldFtwcm9wZXJ0eV07CisgICAgfQorfSk7CisKK2NvbnN0IF9tYXli
ZVJlZ2lzdGVyVHlwZSA9IChidWlsZGVyLCB0eXBlKSA9PiB7CisgICAgY29uc3QgdHlwZVNlY3Rp
b24gPSBidWlsZGVyLl9nZXRTZWN0aW9uKCJUeXBlIik7CisgICAgaWYgKHR5cGVvZih0eXBlKSA9
PT0gIm51bWJlciIpIHsKKyAgICAgICAgLy8gVHlwZSBudW1iZXJzIGFscmVhZHkgcmVmZXIgdG8g
dGhlIHR5cGUgc2VjdGlvbiwgbm8gbmVlZCB0byByZWdpc3RlciB0aGVtLgorICAgICAgICBpZiAo
YnVpbGRlci5fY2hlY2tlZCkgeworICAgICAgICAgICAgYXNzZXJ0LmlzTm90VW5kZWYodHlwZVNl
Y3Rpb24sIGBDYW4gbm90IHVzZSB0eXBlICR7dHlwZX0gaWYgYSB0eXBlIHNlY3Rpb24gaXMgbm90
IHByZXNlbnRgKTsKKyAgICAgICAgICAgIGFzc2VydC5pc05vdFVuZGVmKHR5cGVTZWN0aW9uLmRh
dGFbdHlwZV0sIGBUeXBlICR7dHlwZX0gZG9lcyBub3QgZXhpc3QgaW4gdHlwZSBzZWN0aW9uYCk7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHR5cGU7CisgICAgfQorICAgIGFzc2VydC5oYXNP
YmplY3RQcm9wZXJ0eSh0eXBlLCAicGFyYW1zIiwgYEV4cGVjdGVkIHR5cGUgdG8gYmUgYSBudW1i
ZXIgb3Igb2JqZWN0IHdpdGggJ3BhcmFtcycgYW5kIG9wdGlvbmFsbHkgJ3JldCcgZmllbGRzYCk7
CisgICAgY29uc3QgW3BhcmFtcywgcmV0XSA9IF9ub3JtYWxpemVGdW5jdGlvblNpZ25hdHVyZSh0
eXBlLnBhcmFtcywgdHlwZS5yZXQpOworICAgIGFzc2VydC5pc05vdFVuZGVmKHR5cGVTZWN0aW9u
LCBgQ2FuIG5vdCBhZGQgdHlwZSBpZiBhIHR5cGUgc2VjdGlvbiBpcyBub3QgcHJlc2VudGApOwor
ICAgIC8vIFRyeSByZXVzaW5nIGFuIGVxdWl2YWxlbnQgdHlwZSBmcm9tIHRoZSB0eXBlIHNlY3Rp
b24uCisgICAgdHlwZXM6CisgICAgZm9yIChsZXQgaSA9IDA7IGkgIT09IHR5cGVTZWN0aW9uLmRh
dGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgY29uc3QgdCA9IHR5cGVTZWN0aW9uLmRhdGFbaV07
CisgICAgICAgIGlmICh0LnJldCA9PT0gcmV0ICYmIHBhcmFtcy5sZW5ndGggPT09IHQucGFyYW1z
Lmxlbmd0aCkgeworICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogIT09IHQucGFyYW1zLmxl
bmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgaWYgKHBhcmFtc1tqXSAhPT0gdC5wYXJhbXNb
al0pCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIHR5cGVzOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgdHlwZSA9IGk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
IH0KKyAgICBpZiAodHlwZW9mKHR5cGUpICE9PSAibnVtYmVyIikgeworICAgICAgICAvLyBDb3Vs
ZG4ndCByZXVzZSBhIHByZS1leGlzdGluZyB0eXBlLCByZWdpc3RlciB0aGlzIHR5cGUgaW4gdGhl
IHR5cGUgc2VjdGlvbi4KKyAgICAgICAgdHlwZVNlY3Rpb24uZGF0YS5wdXNoKHsgcGFyYW1zOiBw
YXJhbXMsIHJldDogcmV0IH0pOworICAgICAgICB0eXBlID0gdHlwZVNlY3Rpb24uZGF0YS5sZW5n
dGggLSAxOworICAgIH0KKyAgICByZXR1cm4gdHlwZTsKK307CisKK2NvbnN0IF9pbXBvcnRGdW5j
dGlvbkNvbnRpbnVhdGlvbiA9IChidWlsZGVyLCBzZWN0aW9uLCBuZXh0QnVpbGRlcikgPT4gewor
ICAgIHJldHVybiAobW9kdWxlLCBmaWVsZCwgdHlwZSkgPT4geworICAgICAgICBhc3NlcnQuaXNT
dHJpbmcobW9kdWxlLCBgSW1wb3J0IGZ1bmN0aW9uIG1vZHVsZSBzaG91bGQgYmUgYSBzdHJpbmcs
IGdvdCAiJHttb2R1bGV9ImApOworICAgICAgICBhc3NlcnQuaXNTdHJpbmcoZmllbGQsIGBJbXBv
cnQgZnVuY3Rpb24gZmllbGQgc2hvdWxkIGJlIGEgc3RyaW5nLCBnb3QgIiR7ZmllbGR9ImApOwor
ICAgICAgICBjb25zdCB0eXBlU2VjdGlvbiA9IGJ1aWxkZXIuX2dldFNlY3Rpb24oIlR5cGUiKTsK
KyAgICAgICAgdHlwZSA9IF9tYXliZVJlZ2lzdGVyVHlwZShidWlsZGVyLCB0eXBlKTsKKyAgICAg
ICAgc2VjdGlvbi5kYXRhLnB1c2goeyBmaWVsZDogZmllbGQsIHR5cGU6IHR5cGUsIGtpbmQ6ICJG
dW5jdGlvbiIsIG1vZHVsZTogbW9kdWxlIH0pOworICAgICAgICAvLyBJbXBvcnRzIGFsc28gY291
bnQgaW4gdGhlIGZ1bmN0aW9uIGluZGV4IHNwYWNlLiBNYXAgdGhlbSBhcyBvYmplY3RzIHRvIGF2
b2lkIGNsYXNoaW5nIHdpdGggQ29kZSBmdW5jdGlvbnMnIG5hbWVzLgorICAgICAgICBidWlsZGVy
Ll9yZWdpc3RlckZ1bmN0aW9uVG9JbmRleFNwYWNlKHsgbW9kdWxlOiBtb2R1bGUsIGZpZWxkOiBm
aWVsZCB9KTsKKyAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IobmV4dEJ1aWxk
ZXIpOworICAgIH07Cit9OworCitjb25zdCBfaW1wb3J0TWVtb3J5Q29udGludWF0aW9uID0gKGJ1
aWxkZXIsIHNlY3Rpb24sIG5leHRCdWlsZGVyKSA9PiB7CisgICAgcmV0dXJuIChtb2R1bGUsIGZp
ZWxkLCB7aW5pdGlhbCwgbWF4aW11bX0pID0+IHsKKyAgICAgICAgYXNzZXJ0LmlzU3RyaW5nKG1v
ZHVsZSwgYEltcG9ydCBNZW1vcnkgbW9kdWxlIHNob3VsZCBiZSBhIHN0cmluZywgZ290ICIke21v
ZHVsZX0iYCk7CisgICAgICAgIGFzc2VydC5pc1N0cmluZyhmaWVsZCwgYEltcG9ydCBNZW1vcnkg
ZmllbGQgc2hvdWxkIGJlIGEgc3RyaW5nLCBnb3QgIiR7ZmllbGR9ImApOworICAgICAgICBzZWN0
aW9uLmRhdGEucHVzaCh7bW9kdWxlLCBmaWVsZCwga2luZDogIk1lbW9yeSIsIG1lbW9yeURlc2Ny
aXB0aW9uOiB7aW5pdGlhbCwgbWF4aW11bX19KTsKKyAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRs
aW5nUHJveHlGb3IobmV4dEJ1aWxkZXIpOworICAgIH07Cit9OworCitjb25zdCBfaW1wb3J0VGFi
bGVDb250aW51YXRpb24gPSAoYnVpbGRlciwgc2VjdGlvbiwgbmV4dEJ1aWxkZXIpID0+IHsKKyAg
ICByZXR1cm4gKG1vZHVsZSwgZmllbGQsIHtpbml0aWFsLCBtYXhpbXVtLCBlbGVtZW50fSkgPT4g
eworICAgICAgICBhc3NlcnQuaXNTdHJpbmcobW9kdWxlLCBgSW1wb3J0IFRhYmxlIG1vZHVsZSBz
aG91bGQgYmUgYSBzdHJpbmcsIGdvdCAiJHttb2R1bGV9ImApOworICAgICAgICBhc3NlcnQuaXNT
dHJpbmcoZmllbGQsIGBJbXBvcnQgVGFibGUgZmllbGQgc2hvdWxkIGJlIGEgc3RyaW5nLCBnb3Qg
IiR7ZmllbGR9ImApOworICAgICAgICBzZWN0aW9uLmRhdGEucHVzaCh7bW9kdWxlLCBmaWVsZCwg
a2luZDogIlRhYmxlIiwgdGFibGVEZXNjcmlwdGlvbjoge2luaXRpYWwsIG1heGltdW0sIGVsZW1l
bnR9fSk7CisgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKG5leHRCdWlsZGVy
KTsKKyAgICB9OworfTsKKworY29uc3QgX2V4cG9ydEZ1bmN0aW9uQ29udGludWF0aW9uID0gKGJ1
aWxkZXIsIHNlY3Rpb24sIG5leHRCdWlsZGVyKSA9PiB7CisgICAgcmV0dXJuIChmaWVsZCwgaW5k
ZXgsIHR5cGUpID0+IHsKKyAgICAgICAgYXNzZXJ0LmlzU3RyaW5nKGZpZWxkLCBgRXhwb3J0IGZ1
bmN0aW9uIGZpZWxkIHNob3VsZCBiZSBhIHN0cmluZywgZ290ICIke2ZpZWxkfSJgKTsKKyAgICAg
ICAgY29uc3QgdHlwZVNlY3Rpb24gPSBidWlsZGVyLl9nZXRTZWN0aW9uKCJUeXBlIik7CisgICAg
ICAgIGlmICh0eXBlb2YodHlwZSkgIT09ICJ1bmRlZmluZWQiKSB7CisgICAgICAgICAgICAvLyBF
eHBvcnRzIGNhbiBsZWF2ZSB0aGUgdHlwZSB1bnNwZWNpZmllZCwgbGV0dGluZyB0aGUgQ29kZSBi
dWlsZGVyIHBhdGNoIHRoZW0gdXAgbGF0ZXIuCisgICAgICAgICAgICB0eXBlID0gX21heWJlUmVn
aXN0ZXJUeXBlKGJ1aWxkZXIsIHR5cGUpOworICAgICAgICB9CisKKyAgICAgICAgLy8gV2UgY2Fu
J3QgY2hlY2sgbXVjaCBhYm91dCAiaW5kZXgiIGhlcmUgYmVjYXVzZSB0aGUgQ29kZSBzZWN0aW9u
IHN1Y2NlZWRzIHRoZSBFeHBvcnQgc2VjdGlvbi4gTW9yZSB3b3JrIGlzIGRvbmUgYXQgQ29kZSgp
LkVuZCgpIHRpbWUuCisgICAgICAgIHN3aXRjaCAodHlwZW9mKGluZGV4KSkgeworICAgICAgICBj
YXNlICJzdHJpbmciOiBicmVhazsgLy8gQXNzdW1lIGl0J3MgYSBmdW5jdGlvbiBuYW1lIHdoaWNo
IHdpbGwgYmUgcmV2ZWFsZWQgaW4gdGhlIENvZGUgc2VjdGlvbi4KKyAgICAgICAgY2FzZSAibnVt
YmVyIjogYnJlYWs7IC8vIEFzc3VtZSBpdCdzIGEgbnVtYmVyIGluIHRoZSAiZnVuY3Rpb24gaW5k
ZXggc3BhY2UiLgorICAgICAgICBjYXNlICJvYmplY3QiOgorICAgICAgICAgICAgLy8gUmUtZXhw
b3J0aW5nIGFuIGltcG9ydC4KKyAgICAgICAgICAgIGFzc2VydC5oYXNPYmplY3RQcm9wZXJ0eShp
bmRleCwgIm1vZHVsZSIsIGBSZS1leHBvcnRpbmcgIiR7ZmllbGR9IiBmcm9tIGFuIGltcG9ydGAp
OworICAgICAgICAgICAgYXNzZXJ0Lmhhc09iamVjdFByb3BlcnR5KGluZGV4LCAiZmllbGQiLCBg
UmUtZXhwb3J0aW5nICIke2ZpZWxkfSIgZnJvbSBhbiBpbXBvcnRgKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlICJ1bmRlZmluZWQiOgorICAgICAgICAgICAgLy8gQXNzdW1lIGl0
J3MgdGhlIHNhbWUgYXMgdGhlIGZpZWxkIChpLmUuIGl0J3Mgbm90IGJlaW5nIHJlbmFtZWQpLgor
ICAgICAgICAgICAgaW5kZXggPSBmaWVsZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBk
ZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoYEV4cG9ydCBzZWN0aW9uJ3MgaW5kZXggbXVzdCBiZSBh
IHN0cmluZyBvciBhIG51bWJlciwgZ290ICR7aW5kZXh9YCk7CisgICAgICAgIH0KKworICAgICAg
ICBjb25zdCBjb3JyZXNwb25kaW5nSW1wb3J0ID0gYnVpbGRlci5fZ2V0RnVuY3Rpb25Gcm9tSW5k
ZXhTcGFjZShpbmRleCk7CisgICAgICAgIGNvbnN0IGltcG9ydFNlY3Rpb24gPSBidWlsZGVyLl9n
ZXRTZWN0aW9uKCJJbXBvcnQiKTsKKyAgICAgICAgaWYgKHR5cGVvZihpbmRleCkgPT09ICJvYmpl
Y3QiKSB7CisgICAgICAgICAgICAvLyBSZS1leHBvcnRpbmcgYW4gaW1wb3J0IHVzaW5nIGl0cyBt
b2R1bGUrZmllbGQgbmFtZS4KKyAgICAgICAgICAgIGFzc2VydC5pc05vdFVuZGVmKGNvcnJlc3Bv
bmRpbmdJbXBvcnQsIGBSZS1leHBvcnRpbmcgIiR7ZmllbGR9IiBjb3VsZG4ndCBmaW5kIGltcG9y
dCBmcm9tIG1vZHVsZSAiJHtpbmRleC5tb2R1bGV9IiBmaWVsZCAiJHtpbmRleC5maWVsZH0iYCk7
CisgICAgICAgICAgICBpbmRleCA9IGNvcnJlc3BvbmRpbmdJbXBvcnQ7CisgICAgICAgICAgICBp
ZiAodHlwZW9mKHR5cGUpID09PSAidW5kZWZpbmVkIikKKyAgICAgICAgICAgICAgICB0eXBlID0g
aW1wb3J0U2VjdGlvbi5kYXRhW2luZGV4XS50eXBlOworICAgICAgICAgICAgaWYgKGJ1aWxkZXIu
X2NoZWNrZWQpCisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxKHR5cGUsIGltcG9ydFNlY3Rpb24u
ZGF0YVtpbmRleF0udHlwZSwgYFJlLWV4cG9ydGluZyBpbXBvcnQgIiR7aW1wb3J0U2VjdGlvbi5k
YXRhW2luZGV4XS5maWVsZH0iIGFzICIke2ZpZWxkfSIgaGFzIG1pc21hdGNoaW5nIHR5cGVgKTsK
KyAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YoY29ycmVzcG9uZGluZ0ltcG9ydCkgIT09ICJ1bmRl
ZmluZWQiKSB7CisgICAgICAgICAgICAvLyBSZS1leHBvcnRpbmcgYW4gaW1wb3J0IHVzaW5nIGl0
cyBpbmRleC4KKyAgICAgICAgICAgIGxldCBleHBvcnRlZEltcG9ydDsKKyAgICAgICAgICAgIGZv
ciAoY29uc3QgaSBvZiBpbXBvcnRTZWN0aW9uLmRhdGEpIHsKKyAgICAgICAgICAgICAgICBpZiAo
aS5tb2R1bGUgPT09IGNvcnJlc3BvbmRpbmdJbXBvcnQubW9kdWxlICYmIGkuZmllbGQgPT09IGNv
cnJlc3BvbmRpbmdJbXBvcnQuZmllbGQpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwb3J0ZWRJ
bXBvcnQgPSBpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodHlwZW9mKHR5cGUpID09PSAidW5kZWZp
bmVkIikKKyAgICAgICAgICAgICAgICB0eXBlID0gZXhwb3J0ZWRJbXBvcnQudHlwZTsKKyAgICAg
ICAgICAgIGlmIChidWlsZGVyLl9jaGVja2VkKQorICAgICAgICAgICAgICAgIGFzc2VydC5lcSh0
eXBlLCBleHBvcnRlZEltcG9ydC50eXBlLCBgUmUtZXhwb3J0aW5nIGltcG9ydCAiJHtleHBvcnRl
ZEltcG9ydC5maWVsZH0iIGFzICIke2ZpZWxkfSIgaGFzIG1pc21hdGNoaW5nIHR5cGVgKTsKKyAg
ICAgICAgfQorICAgICAgICBzZWN0aW9uLmRhdGEucHVzaCh7IGZpZWxkOiBmaWVsZCwgdHlwZTog
dHlwZSwga2luZDogIkZ1bmN0aW9uIiwgaW5kZXg6IGluZGV4IH0pOworICAgICAgICByZXR1cm4g
X2Vycm9ySGFuZGxpbmdQcm94eUZvcihuZXh0QnVpbGRlcik7CisgICAgfTsKK307CisKK2NvbnN0
IF9ub3JtYWxpemVNdXRhYmlsaXR5ID0gKG11dGFiaWxpdHkpID0+IHsKKyAgICBpZiAobXV0YWJp
bGl0eSA9PT0gIm11dGFibGUiKQorICAgICAgICByZXR1cm4gMTsKKyAgICBlbHNlIGlmIChtdXRh
YmlsaXR5ID09PSAiaW1tdXRhYmxlIikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgZWxzZQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoYG11dGFiaWxpdHkgc2hvdWxkIGJlIGVpdGhlciAibXV0YWJs
ZSIgb3IgImltbXV0YWJsZSIsIGJ1dCBnb3QgJHttdXRhYmlsaXR5fWApOworfTsKKworY29uc3Qg
X2V4cG9ydEdsb2JhbENvbnRpbnVhdGlvbiA9IChidWlsZGVyLCBzZWN0aW9uLCBuZXh0QnVpbGRl
cikgPT4geworICAgIHJldHVybiAoZmllbGQsIGluZGV4KSA9PiB7CisgICAgICAgIGFzc2VydC5p
c051bWJlcihpbmRleCwgYEdsb2JhbCBleHBvcnRzIG9ubHkgc3VwcG9ydCBudW1iZXIgaW5kaWNl
cyByaWdodCBub3dgKTsKKyAgICAgICAgc2VjdGlvbi5kYXRhLnB1c2goeyBmaWVsZCwga2luZDog
Ikdsb2JhbCIsIGluZGV4IH0pOworICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZv
cihuZXh0QnVpbGRlcik7CisgICAgfQorfTsKKworY29uc3QgX2V4cG9ydE1lbW9yeUNvbnRpbnVh
dGlvbiA9IChidWlsZGVyLCBzZWN0aW9uLCBuZXh0QnVpbGRlcikgPT4geworICAgIHJldHVybiAo
ZmllbGQsIGluZGV4KSA9PiB7CisgICAgICAgIGFzc2VydC5pc051bWJlcihpbmRleCwgYE1lbW9y
eSBleHBvcnRzIG9ubHkgc3VwcG9ydCBudW1iZXIgaW5kaWNlc2ApOworICAgICAgICBzZWN0aW9u
LmRhdGEucHVzaCh7ZmllbGQsIGtpbmQ6ICJNZW1vcnkiLCBpbmRleH0pOworICAgICAgICByZXR1
cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihuZXh0QnVpbGRlcik7CisgICAgfQorfTsKKworY29u
c3QgX2V4cG9ydFRhYmxlQ29udGludWF0aW9uID0gKGJ1aWxkZXIsIHNlY3Rpb24sIG5leHRCdWls
ZGVyKSA9PiB7CisgICAgcmV0dXJuIChmaWVsZCwgaW5kZXgpID0+IHsKKyAgICAgICAgYXNzZXJ0
LmlzTnVtYmVyKGluZGV4LCBgVGFibGUgZXhwb3J0cyBvbmx5IHN1cHBvcnQgbnVtYmVyIGluZGlj
ZXNgKTsKKyAgICAgICAgc2VjdGlvbi5kYXRhLnB1c2goe2ZpZWxkLCBraW5kOiAiVGFibGUiLCBp
bmRleH0pOworICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihuZXh0QnVpbGRl
cik7CisgICAgfQorfTsKKworY29uc3QgX2ltcG9ydEdsb2JhbENvbnRpbnVhdGlvbiA9IChidWls
ZGVyLCBzZWN0aW9uLCBuZXh0QnVpbGRlcikgPT4geworICAgIHJldHVybiAoKSA9PiB7CisgICAg
ICAgIGNvbnN0IGdsb2JhbEJ1aWxkZXIgPSB7CisgICAgICAgICAgICBFbmQ6ICgpID0+IG5leHRC
dWlsZGVyCisgICAgICAgIH07CisgICAgICAgIGZvciAobGV0IG9wIG9mIFdBU00uZGVzY3JpcHRp
b24udmFsdWVfdHlwZSkgeworICAgICAgICAgICAgZ2xvYmFsQnVpbGRlcltfdG9KYXZhU2NyaXB0
TmFtZShvcCldID0gKG1vZHVsZSwgZmllbGQsIG11dGFiaWxpdHkpID0+IHsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuaXNTdHJpbmcobW9kdWxlLCBgSW1wb3J0IGdsb2JhbCBtb2R1bGUgc2hvdWxk
IGJlIGEgc3RyaW5nLCBnb3QgIiR7bW9kdWxlfSJgKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
aXNTdHJpbmcoZmllbGQsIGBJbXBvcnQgZ2xvYmFsIGZpZWxkIHNob3VsZCBiZSBhIHN0cmluZywg
Z290ICIke2ZpZWxkfSJgKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuaXNTdHJpbmcobXV0YWJp
bGl0eSwgYEltcG9ydCBnbG9iYWwgbXV0YWJpbGl0eSBzaG91bGQgYmUgYSBzdHJpbmcsIGdvdCAi
JHttdXRhYmlsaXR5fSJgKTsKKyAgICAgICAgICAgICAgICBzZWN0aW9uLmRhdGEucHVzaCh7IGds
b2JhbERlc2NyaXB0aW9uOiB7IHR5cGU6IG9wLCBtdXRhYmlsaXR5OiBfbm9ybWFsaXplTXV0YWJp
bGl0eShtdXRhYmlsaXR5KSB9LCBtb2R1bGUsIGZpZWxkLCBraW5kOiAiR2xvYmFsIiB9KTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihnbG9iYWxCdWlsZGVy
KTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRs
aW5nUHJveHlGb3IoZ2xvYmFsQnVpbGRlcik7CisgICAgfTsKK307CisKK2NvbnN0IF9jaGVja1N0
YWNrQXJncyA9IChvcCwgcGFyYW0pID0+IHsKKyAgICBmb3IgKGxldCBleHBlY3Qgb2YgcGFyYW0p
IHsKKyAgICAgICAgaWYgKFdBU00uaXNWYWxpZFR5cGUoZXhwZWN0KSkgeworICAgICAgICAgICAg
Ly8gRklYTUUgaW1wbGVtZW50IHN0YWNrIGNoZWNrcyBmb3IgYXJndW1lbnRzLiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAvLyBIYW5kbGUgb3VyIG93biBtZXRhLXR5cGVzLgorICAgICAgICAgICAgc3dp
dGNoIChleHBlY3QpIHsKKyAgICAgICAgICAgIGNhc2UgImFkZHIiOiBicmVhazsgLy8gRklYTUUg
aW1wbGVtZW50IGFkZHIuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjM0MjEKKyAgICAgICAgICAgIGNhc2UgImFueSI6IGJyZWFrOyAvLyBGSVhNRSBpbXBsZW1lbnQg
YW55LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAg
ICAgICAgICBjYXNlICJib29sIjogYnJlYWs7IC8vIEZJWE1FIGltcGxlbWVudCBib29sLiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgICAgICBj
YXNlICJjYWxsIjogYnJlYWs7IC8vIEZJWE1FIGltcGxlbWVudCBjYWxsIHN0YWNrIGFyZ3VtZW50
IGNoZWNrcyBiYXNlZCBvbiBmdW5jdGlvbiBzaWduYXR1cmUuIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgICAgIGNhc2UgImdsb2JhbCI6IGJy
ZWFrOyAvLyBGSVhNRSBpbXBsZW1lbnQgZ2xvYmFsLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgICAgICBjYXNlICJsb2NhbCI6IGJyZWFrOyAv
LyBGSVhNRSBpbXBsZW1lbnQgbG9jYWwuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjM0MjEKKyAgICAgICAgICAgIGNhc2UgInByZXYiOiBicmVhazsgLy8gRklYTUUg
aW1wbGVtZW50IHByZXYsIGNoZWNraW5nIGZvciB3aGV0ZXZlciB0aGUgcHJldmlvdXMgdmFsdWUg
d2FzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAg
ICAgICAgICBjYXNlICJzaXplIjogYnJlYWs7IC8vIEZJWE1FIGltcGxlbWVudCBzaXplLiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgICAgICBk
ZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoYEltcGxlbWVudGF0aW9uIHByb2JsZW06IHVuaGFuZGxl
ZCBtZXRhLXR5cGUgIiR7ZXhwZWN0fSIgb24gIiR7b3B9ImApOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfQorfQorCitjb25zdCBfY2hlY2tTdGFja1JldHVybiA9IChvcCwgcmV0KSA9
PiB7CisgICAgZm9yIChsZXQgZXhwZWN0IG9mIHJldCkgeworICAgICAgICBpZiAoV0FTTS5pc1Zh
bGlkVHlwZShleHBlY3QpKSB7CisgICAgICAgICAgICAvLyBGSVhNRSBpbXBsZW1lbnQgc3RhY2sg
Y2hlY2tzIGZvciByZXR1cm4uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjM0MjEKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEhhbmRsZSBvdXIgb3du
IG1ldGEtdHlwZXMuCisgICAgICAgICAgICBzd2l0Y2ggKGV4cGVjdCkgeworICAgICAgICAgICAg
Y2FzZSAiYW55IjogYnJlYWs7CisgICAgICAgICAgICBjYXNlICJib29sIjogYnJlYWs7IC8vIEZJ
WE1FIGltcGxlbWVudCBib29sLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYzNDIxCisgICAgICAgICAgICBjYXNlICJjYWxsIjogYnJlYWs7IC8vIEZJWE1FIGltcGxl
bWVudCBjYWxsIHN0YWNrIHJldHVybiBjaGVjayBiYXNlZCBvbiBmdW5jdGlvbiBzaWduYXR1cmUu
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAg
ICAgIGNhc2UgImNvbnRyb2wiOiBicmVhazsgLy8gRklYTUUgaW1wbGVtZW50IGNvbnRyb2wuIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgICAg
IGNhc2UgImdsb2JhbCI6IGJyZWFrOyAvLyBGSVhNRSBpbXBsZW1lbnQgZ2xvYmFsLiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgICAgICBjYXNl
ICJsb2NhbCI6IGJyZWFrOyAvLyBGSVhNRSBpbXBsZW1lbnQgbG9jYWwuIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgICAgIGNhc2UgInByZXYi
OiBicmVhazsgLy8gRklYTUUgaW1wbGVtZW50IHByZXYsIGNoZWNraW5nIGZvciB3aGV0ZXZlciB0
aGUgcGFyYW1ldGVyIHR5cGUgd2FzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYzNDIxCisgICAgICAgICAgICBjYXNlICJzaXplIjogYnJlYWs7IC8vIEZJWE1FIGlt
cGxlbWVudCBzaXplLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYz
NDIxCisgICAgICAgICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoYEltcGxlbWVudGF0aW9u
IHByb2JsZW06IHVuaGFuZGxlZCBtZXRhLXR5cGUgIiR7ZXhwZWN0fSIgb24gIiR7b3B9ImApOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfTsKKworY29uc3QgX2NoZWNrSW1tcyA9
IChvcCwgaW1tcywgZXhwZWN0ZWRJbW1zLCByZXQpID0+IHsKKyAgICBjb25zdCBtaW5FeHBlY3Rl
ZEltbXMgPSBleHBlY3RlZEltbXMuZmlsdGVyKGkgPT4gaS50eXBlLnNsaWNlKC0xKSAhPT0gJyon
KS5sZW5ndGg7CisgICAgaWYgKG1pbkV4cGVjdGVkSW1tcyAhPT0gZXhwZWN0ZWRJbW1zLmxlbmd0
aCkKKyAgICAgICAgYXNzZXJ0LmdlKGltbXMubGVuZ3RoLCBtaW5FeHBlY3RlZEltbXMsIGAiJHtv
cH0iIGV4cGVjdHMgYXQgbGVhc3QgJHttaW5FeHBlY3RlZEltbXN9IGltbWVkaWF0ZSR7bWluRXhw
ZWN0ZWRJbW1zICE9PSAxID8gJ3MnIDogJyd9LCBnb3QgJHtpbW1zLmxlbmd0aH1gKTsKKyAgICBl
bHNlCisgICAgICAgICBhc3NlcnQuZXEoaW1tcy5sZW5ndGgsIG1pbkV4cGVjdGVkSW1tcywgYCIk
e29wfSIgZXhwZWN0cyBleGFjdGx5ICR7bWluRXhwZWN0ZWRJbW1zfSBpbW1lZGlhdGUke21pbkV4
cGVjdGVkSW1tcyAhPT0gMSA/ICdzJyA6ICcnfSwgZ290ICR7aW1tcy5sZW5ndGh9YCk7CisgICAg
Zm9yIChsZXQgaWR4ID0gMDsgaWR4ICE9PSBleHBlY3RlZEltbXMubGVuZ3RoOyArK2lkeCkgewor
ICAgICAgICBjb25zdCBnb3QgPSBpbW1zW2lkeF07CisgICAgICAgIGNvbnN0IGV4cGVjdCA9IGV4
cGVjdGVkSW1tc1tpZHhdOworICAgICAgICBzd2l0Y2ggKGV4cGVjdC5uYW1lKSB7CisgICAgICAg
IGNhc2UgImZ1bmN0aW9uX2luZGV4IjoKKyAgICAgICAgICAgIGFzc2VydC50cnV0aHkoX2lzVmFs
aWRWYWx1ZShnb3QsICJpMzIiKSAmJiBnb3QgPj0gMCwgYEludmFsaWQgdmFsdWUgb24gJHtvcH06
IGdvdCAiJHtnb3R9IiwgZXhwZWN0ZWQgbm9uLW5lZ2F0aXZlIGkzMmApOworICAgICAgICAgICAg
Ly8gRklYTUUgY2hlY2sgZnVuY3Rpb24gaW5kaWNlcy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
ImxvY2FsX2luZGV4IjogYnJlYWs7IC8vIGltcHJvdmUgY2hlY2tpbmcgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICBjYXNlICJnbG9iYWxfaW5k
ZXgiOiBicmVhazsgLy8gaW1wcm92ZSBjaGVja2luZyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgIGNhc2UgInR5cGVfaW5kZXgiOiBicmVhazsg
Ly8gaW1wcm92ZSBjaGVja2luZyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYzNDIxCisgICAgICAgIGNhc2UgInZhbHVlIjoKKyAgICAgICAgICAgIGFzc2VydC50cnV0
aHkoX2lzVmFsaWRWYWx1ZShnb3QsIHJldFswXSksIGBJbnZhbGlkIHZhbHVlIG9uICR7b3B9OiBn
b3QgIiR7Z290fSIsIGV4cGVjdGVkICR7cmV0WzBdfWApOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgImZsYWdzIjogYnJlYWs7IC8vIGltcHJvdmUgY2hlY2tpbmcgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICBjYXNlICJvZmZz
ZXQiOiBicmVhazsgLy8gaW1wcm92ZSBjaGVja2luZyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgICAgICAvLyBDb250cm9sOgorICAgICAgICBj
YXNlICJkZWZhdWx0X3RhcmdldCI6IGJyZWFrOyAvLyBpbXByb3ZlIGNoZWNraW5nIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgY2FzZSAicmVs
YXRpdmVfZGVwdGgiOiBicmVhazsgLy8gaW1wcm92ZSBjaGVja2luZyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgIGNhc2UgInNpZyI6CisgICAg
ICAgICAgICBhc3NlcnQudHJ1dGh5KFdBU00uaXNWYWxpZEJsb2NrVHlwZShpbW1zW2lkeF0pLCBg
SW52YWxpZCBibG9jayB0eXBlIG9uICR7b3B9OiAiJHtpbW1zW2lkeF19ImApOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgInRhcmdldF9jb3VudCI6IGJyZWFrOyAvLyBpbXByb3Zl
IGNoZWNraW5nIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEK
KyAgICAgICAgY2FzZSAidGFyZ2V0X3RhYmxlIjogYnJlYWs7IC8vIGltcHJvdmUgY2hlY2tpbmcg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICBj
YXNlICJyZXNlcnZlZCI6IGJyZWFrOyAvLyBpbXByb3ZlIGNoZWNraW5nIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgZGVmYXVsdDogdGhyb3cg
bmV3IEVycm9yKGBJbXBsZW1lbnRhdGlvbiBwcm9ibGVtOiB1bmhhbmRsZWQgaW1tZWRpYXRlICIk
e2V4cGVjdC5uYW1lfSIgb24gIiR7b3B9ImApOworICAgICAgICB9CisgICAgfQorfTsKKworY29u
c3QgX2NyZWF0ZUZ1bmN0aW9uQnVpbGRlciA9IChmdW5jLCBidWlsZGVyLCBwcmV2aW91c0J1aWxk
ZXIpID0+IHsKKyAgICBsZXQgZnVuY3Rpb25CdWlsZGVyID0ge307CisgICAgZm9yIChjb25zdCBv
cCBpbiBXQVNNLmRlc2NyaXB0aW9uLm9wY29kZSkgeworICAgICAgICBjb25zdCBuYW1lID0gX3Rv
SmF2YVNjcmlwdE5hbWUob3ApOworICAgICAgICBjb25zdCB2YWx1ZSA9IFdBU00uZGVzY3JpcHRp
b24ub3Bjb2RlW29wXS52YWx1ZTsKKyAgICAgICAgY29uc3QgcmV0ID0gV0FTTS5kZXNjcmlwdGlv
bi5vcGNvZGVbb3BdWyJyZXR1cm4iXTsKKyAgICAgICAgY29uc3QgcGFyYW0gPSBXQVNNLmRlc2Ny
aXB0aW9uLm9wY29kZVtvcF0ucGFyYW1ldGVyOworICAgICAgICBjb25zdCBpbW0gPSBXQVNNLmRl
c2NyaXB0aW9uLm9wY29kZVtvcF0uaW1tZWRpYXRlOworCisgICAgICAgIGNvbnN0IGNoZWNrU3Rh
Y2tBcmdzID0gYnVpbGRlci5fY2hlY2tlZCA/IF9jaGVja1N0YWNrQXJncyA6ICgpID0+IHt9Owor
ICAgICAgICBjb25zdCBjaGVja1N0YWNrUmV0dXJuID0gYnVpbGRlci5fY2hlY2tlZCA/IF9jaGVj
a1N0YWNrUmV0dXJuIDogKCkgPT4ge307CisgICAgICAgIGNvbnN0IGNoZWNrSW1tcyA9IGJ1aWxk
ZXIuX2NoZWNrZWQgPyBfY2hlY2tJbW1zIDogKCkgPT4ge307CisKKyAgICAgICAgZnVuY3Rpb25C
dWlsZGVyW25hbWVdID0gKC4uLmFyZ3MpID0+IHsKKyAgICAgICAgICAgIGxldCBuZXh0QnVpbGRl
cjsKKyAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgeworICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICBuZXh0QnVpbGRlciA9IGZ1bmN0aW9uQnVpbGRlcjsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIkVuZCI6CisgICAgICAgICAgICAgICAgbmV4
dEJ1aWxkZXIgPSBwcmV2aW91c0J1aWxkZXI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlICJCbG9jayI6CisgICAgICAgICAgICBjYXNlICJMb29wIjoKKyAgICAgICAg
ICAgIGNhc2UgIklmIjoKKyAgICAgICAgICAgICAgICBuZXh0QnVpbGRlciA9IF9jcmVhdGVGdW5j
dGlvbkJ1aWxkZXIoZnVuYywgYnVpbGRlciwgZnVuY3Rpb25CdWlsZGVyKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gUGFzc2luZyBhIGZ1
bmN0aW9uIGFzIHRoZSBhcmd1bWVudCBpcyBhIHdheSB0byBuZXN0IGJsb2NrcyBsZXhpY2FsbHku
CisgICAgICAgICAgICBjb25zdCBjb250aW51YXRpb24gPSBhcmdzW2FyZ3MubGVuZ3RoIC0gMV07
CisgICAgICAgICAgICBjb25zdCBoYXNDb250aW51YXRpb24gPSB0eXBlb2YoY29udGludWF0aW9u
KSA9PT0gImZ1bmN0aW9uIjsKKyAgICAgICAgICAgIGNvbnN0IGltbXMgPSBoYXNDb250aW51YXRp
b24gPyBhcmdzLnNsaWNlKDAsIC0xKSA6IGFyZ3M7IC8vIEZJWE1FOiBhbGxvdyBwYXNzaW5nIGlu
IHN0YWNrIHZhbHVlcywgYXMtaWYgY29kZSB3ZXJlIGEgc3RhY2sgbWFjaGluZS4gSnVzdCBjaGVj
ayBmb3IgYSBidWlsZGVyIHRvIHRoaXMgZnVuY3Rpb24sIGFuZCBkcm9wLiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIyCisgICAgICAgICAgICBjaGVja0ltbXMo
b3AsIGltbXMsIGltbSwgcmV0KTsKKyAgICAgICAgICAgIGNoZWNrU3RhY2tBcmdzKG9wLCBwYXJh
bSk7CisgICAgICAgICAgICBjaGVja1N0YWNrUmV0dXJuKG9wLCByZXQpOworICAgICAgICAgICAg
Y29uc3Qgc3RhY2tBcmdzID0gW107IC8vIEZJWE1FIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjI3MDYKKyAgICAgICAgICAgIGZ1bmMuY29kZS5wdXNoKHsgbmFtZTog
b3AsIHZhbHVlOiB2YWx1ZSwgYXJndW1lbnRzOiBzdGFja0FyZ3MsIGltbWVkaWF0ZXM6IGltbXMg
fSk7CisgICAgICAgICAgICBpZiAoaGFzQ29udGludWF0aW9uKQorICAgICAgICAgICAgICAgIHJl
dHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKGNvbnRpbnVhdGlvbihuZXh0QnVpbGRlcikuRW5k
KCkpOworICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IobmV4dEJ1aWxk
ZXIpOworICAgICAgICB9OworICAgIH07CisKKyAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94
eUZvcihmdW5jdGlvbkJ1aWxkZXIpOworfQorCitjb25zdCBfY3JlYXRlRnVuY3Rpb24gPSAoc2Vj
dGlvbiwgYnVpbGRlciwgcHJldmlvdXNCdWlsZGVyKSA9PiB7CisgICAgcmV0dXJuICguLi5hcmdz
KSA9PiB7CisgICAgICAgIGNvbnN0IG5hbWVPZmZzZXQgPSAodHlwZW9mKGFyZ3NbMF0pID09PSAi
c3RyaW5nIikgPj4+IDA7CisgICAgICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IG5hbWVPZmZzZXQg
PyBhcmdzWzBdIDogdW5kZWZpbmVkOworICAgICAgICBsZXQgc2lnbmF0dXJlID0gYXJnc1swICsg
bmFtZU9mZnNldF07CisgICAgICAgIGNvbnN0IGxvY2FscyA9IGFyZ3NbMSArIG5hbWVPZmZzZXRd
ID09PSB1bmRlZmluZWQgPyBbXSA6IGFyZ3NbMSArIG5hbWVPZmZzZXRdOworICAgICAgICBmb3Ig
KGNvbnN0IGxvY2FsIG9mIGxvY2FscykKKyAgICAgICAgICAgIGFzc2VydC50cnV0aHkoV0FTTS5p
c1ZhbGlkVmFsdWVUeXBlKGxvY2FsKSwgYFR5cGUgb2YgbG9jYWw6ICR7bG9jYWx9IG5lZWRzIHRv
IGJlIGEgdmFsaWQgdmFsdWUgdHlwZWApOworCisgICAgICAgIGlmICh0eXBlb2Yoc2lnbmF0dXJl
KSA9PT0gInVuZGVmaW5lZCIpCisgICAgICAgICAgICBzaWduYXR1cmUgPSB7IHBhcmFtczogW10g
fTsKKworICAgICAgICBsZXQgdHlwZTsKKyAgICAgICAgbGV0IHBhcmFtczsKKyAgICAgICAgaWYg
KHR5cGVvZiBzaWduYXR1cmUgPT09ICJvYmplY3QiKSB7CisgICAgICAgICAgICBhc3NlcnQuaGFz
T2JqZWN0UHJvcGVydHkoc2lnbmF0dXJlLCAicGFyYW1zIiwgYEV4cGVjdCBmdW5jdGlvbiBzaWdu
YXR1cmUgdG8gYmUgYW4gb2JqZWN0IHdpdGggYSAicGFyYW1zIiBmaWVsZCwgZ290ICIke3NpZ25h
dHVyZX0iYCk7CisgICAgICAgICAgICBsZXQgcmV0OworICAgICAgICAgICAgKFtwYXJhbXMsIHJl
dF0gPSBfbm9ybWFsaXplRnVuY3Rpb25TaWduYXR1cmUoc2lnbmF0dXJlLnBhcmFtcywgc2lnbmF0
dXJlLnJldCkpOworICAgICAgICAgICAgc2lnbmF0dXJlID0ge3BhcmFtcywgcmV0fTsKKyAgICAg
ICAgICAgIHR5cGUgPSBfbWF5YmVSZWdpc3RlclR5cGUoYnVpbGRlciwgc2lnbmF0dXJlKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydC50cnV0aHkodHlwZW9mIHNpZ25hdHVy
ZSA9PT0gIm51bWJlciIpOworICAgICAgICAgICAgY29uc3QgdHlwZVNlY3Rpb24gPSBidWlsZGVy
Ll9nZXRTZWN0aW9uKCJUeXBlIik7CisgICAgICAgICAgICBhc3NlcnQudHJ1dGh5KCEhdHlwZVNl
Y3Rpb24pOworICAgICAgICAgICAgLy8gRklYTUU6IHdlIHNob3VsZCBhbGxvdyBpbmRpY2VzIHRo
YXQgZXhjZWVkIHRoaXMgdG8gYmUgYWJsZSB0bworICAgICAgICAgICAgLy8gdGVzdCBKU0NzIHZh
bGlkYXRvciBpcyBjb3JyZWN0LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY1Nzg2CisgICAgICAgICAgICBhc3NlcnQudHJ1dGh5KHNpZ25hdHVyZSA8IHR5cGVTZWN0
aW9uLmRhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgIHR5cGUgPSBzaWduYXR1cmU7CisgICAgICAg
ICAgICBzaWduYXR1cmUgPSB0eXBlU2VjdGlvbi5kYXRhW3NpZ25hdHVyZV07CisgICAgICAgICAg
ICBhc3NlcnQuaGFzT2JqZWN0UHJvcGVydHkoc2lnbmF0dXJlLCAicGFyYW1zIiwgYEV4cGVjdCBm
dW5jdGlvbiBzaWduYXR1cmUgdG8gYmUgYW4gb2JqZWN0IHdpdGggYSAicGFyYW1zIiBmaWVsZCwg
Z290ICIke3NpZ25hdHVyZX0iYCk7CisgICAgICAgICAgICBwYXJhbXMgPSBzaWduYXR1cmUucGFy
YW1zOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgZnVuYyA9IHsKKyAgICAgICAgICAgIG5h
bWU6IGZ1bmN0aW9uTmFtZSwKKyAgICAgICAgICAgIHR5cGUsCisgICAgICAgICAgICBzaWduYXR1
cmU6IHNpZ25hdHVyZSwKKyAgICAgICAgICAgIGxvY2FsczogcGFyYW1zLmNvbmNhdChsb2NhbHMp
LCAvLyBQYXJhbWV0ZXJzIGFyZSB0aGUgZmlyc3QgbG9jYWxzLgorICAgICAgICAgICAgcGFyYW1l
dGVyQ291bnQ6IHBhcmFtcy5sZW5ndGgsCisgICAgICAgICAgICBjb2RlOiBbXQorICAgICAgICB9
OworCisgICAgICAgIGNvbnN0IGZ1bmN0aW9uU2VjdGlvbiA9IGJ1aWxkZXIuX2dldFNlY3Rpb24o
IkZ1bmN0aW9uIik7CisgICAgICAgIGlmIChmdW5jdGlvblNlY3Rpb24pCisgICAgICAgICAgICBm
dW5jdGlvblNlY3Rpb24uZGF0YS5wdXNoKGZ1bmMudHlwZSk7CisKKyAgICAgICAgc2VjdGlvbi5k
YXRhLnB1c2goZnVuYyk7CisgICAgICAgIGJ1aWxkZXIuX3JlZ2lzdGVyRnVuY3Rpb25Ub0luZGV4
U3BhY2UoZnVuY3Rpb25OYW1lKTsKKworICAgICAgICByZXR1cm4gX2NyZWF0ZUZ1bmN0aW9uQnVp
bGRlcihmdW5jLCBidWlsZGVyLCBwcmV2aW91c0J1aWxkZXIpOworICAgIH0KK307CisKK2NsYXNz
IEJ1aWxkZXIgeworICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICB0aGlzLnNldENoZWNrZWQo
dHJ1ZSk7CisgICAgICAgIGxldCBwcmVhbWJsZSA9IHt9OworICAgICAgICBmb3IgKGNvbnN0IHAg
b2YgV0FTTS5kZXNjcmlwdGlvbi5wcmVhbWJsZSkKKyAgICAgICAgICAgIHByZWFtYmxlW3AubmFt
ZV0gPSBwLnZhbHVlOworICAgICAgICB0aGlzLnNldFByZWFtYmxlKHByZWFtYmxlKTsKKyAgICAg
ICAgdGhpcy5fc2VjdGlvbnMgPSBbXTsKKyAgICAgICAgdGhpcy5fZnVuY3Rpb25JbmRleFNwYWNl
ID0gbmV3IE1hcCgpOworICAgICAgICB0aGlzLl9mdW5jdGlvbkluZGV4U3BhY2VDb3VudCA9IDA7
CisgICAgICAgIHRoaXMuX3JlZ2lzdGVyU2VjdGlvbkJ1aWxkZXJzKCk7CisgICAgfQorICAgIHNl
dENoZWNrZWQoY2hlY2tlZCkgeworICAgICAgICB0aGlzLl9jaGVja2VkID0gY2hlY2tlZDsKKyAg
ICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIHNldFByZWFtYmxlKHApIHsKKyAgICAgICAg
dGhpcy5fcHJlYW1ibGUgPSBPYmplY3QuYXNzaWduKHRoaXMuX3ByZWFtYmxlIHx8IHt9LCBwKTsK
KyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIF9mdW5jdGlvbkluZGV4U3BhY2VLZXlI
YXNoKG9iaikgeworICAgICAgICAvLyBXZSBkb24ndCBuZWVkIGEgZnVsbCBoYXNoLCBqdXN0IHNv
bWV0aGluZyB0aGF0IGhhcyBhIGRlZmluZWQgb3JkZXIgZm9yIE1hcC4gT2JqZWN0cyB3ZSBpbnNl
cnQgYXJlbid0IG5lc3RlZC4KKyAgICAgICAgaWYgKHR5cGVvZihvYmopICE9PSAnb2JqZWN0JykK
KyAgICAgICAgICAgIHJldHVybiBvYmo7CisgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5
cyhvYmopLnNvcnQoKTsKKyAgICAgICAgbGV0IGVudHJpZXMgPSBbXTsKKyAgICAgICAgZm9yIChs
ZXQgayBpbiBrZXlzKQorICAgICAgICAgICAgZW50cmllcy5wdXNoKFtrLCBvYmpba11dKTsKKyAg
ICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGVudHJpZXMpOworICAgIH0KKyAgICBfcmVnaXN0
ZXJGdW5jdGlvblRvSW5kZXhTcGFjZShuYW1lKSB7CisgICAgICAgIGlmICh0eXBlb2YobmFtZSkg
PT09ICJ1bmRlZmluZWQiKSB7CisgICAgICAgICAgICAvLyBSZWdpc3RlcmluZyBhIG5hbWVsZXNz
IGZ1bmN0aW9uIHN0aWxsIGFkZHMgaXQgdG8gdGhlIGZ1bmN0aW9uIGluZGV4IHNwYWNlLiBSZWdp
c3RlciBpdCBhcyBzb21ldGhpbmcgdGhhdCBjYW4ndCBub3JtYWxseSBiZSByZWdpc3RlcmVkLgor
ICAgICAgICAgICAgbmFtZSA9IHt9OworICAgICAgICB9CisgICAgICAgIGNvbnN0IHZhbHVlID0g
dGhpcy5fZnVuY3Rpb25JbmRleFNwYWNlQ291bnQrKzsKKyAgICAgICAgLy8gQ29sbGlzaW9ucyBh
cmUgZmluZTogd2UnbGwgc2ltcGx5IGNvdW50IHRoZSBmdW5jdGlvbiBhbmQgZm9yZ2V0IHRoZSBw
cmV2aW91cyBvbmUuCisgICAgICAgIHRoaXMuX2Z1bmN0aW9uSW5kZXhTcGFjZS5zZXQodGhpcy5f
ZnVuY3Rpb25JbmRleFNwYWNlS2V5SGFzaChuYW1lKSwgdmFsdWUpOworICAgICAgICAvLyBNYXAg
aXQgYm90aCB3YXlzLCB0aGUgbnVtYmVyIHNwYWNlIGlzIGRpc3RpbmN0IGZyb20gdGhlIG5hbWUg
c3BhY2UuCisgICAgICAgIHRoaXMuX2Z1bmN0aW9uSW5kZXhTcGFjZS5zZXQodGhpcy5fZnVuY3Rp
b25JbmRleFNwYWNlS2V5SGFzaCh2YWx1ZSksIG5hbWUpOworICAgIH0KKyAgICBfZ2V0RnVuY3Rp
b25Gcm9tSW5kZXhTcGFjZShuYW1lKSB7CisgICAgICAgIHJldHVybiB0aGlzLl9mdW5jdGlvbklu
ZGV4U3BhY2UuZ2V0KHRoaXMuX2Z1bmN0aW9uSW5kZXhTcGFjZUtleUhhc2gobmFtZSkpOworICAg
IH0KKyAgICBfcmVnaXN0ZXJTZWN0aW9uQnVpbGRlcnMoKSB7CisgICAgICAgIGZvciAoY29uc3Qg
c2VjdGlvbiBpbiBXQVNNLmRlc2NyaXB0aW9uLnNlY3Rpb24pIHsKKyAgICAgICAgICAgIHN3aXRj
aCAoc2VjdGlvbikgeworICAgICAgICAgICAgY2FzZSAiVHlwZSI6CisgICAgICAgICAgICAgICAg
dGhpc1tzZWN0aW9uXSA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBjb25zdCBz
ID0gdGhpcy5fYWRkU2VjdGlvbihzZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc3Qg
YnVpbGRlciA9IHRoaXM7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVCdWlsZGVyID0g
eworICAgICAgICAgICAgICAgICAgICAgICAgRW5kOiAoKSA9PiBidWlsZGVyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgRnVuYzogKHBhcmFtcywgcmV0KSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW3BhcmFtcywgcmV0XSA9IF9ub3JtYWxpemVGdW5jdGlvblNpZ25hdHVyZShw
YXJhbXMsIHJldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5kYXRhLnB1c2goeyBw
YXJhbXM6IHBhcmFtcywgcmV0OiByZXQgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IodHlwZUJ1aWxkZXIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IodHlwZUJ1aWxkZXIpOworICAgICAgICAg
ICAgICAgIH07CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgIklt
cG9ydCI6CisgICAgICAgICAgICAgICAgdGhpc1tzZWN0aW9uXSA9IGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBjb25zdCBzID0gdGhpcy5fYWRkU2VjdGlvbihzZWN0aW9uKTsKKyAg
ICAgICAgICAgICAgICAgICAgY29uc3QgaW1wb3J0QnVpbGRlciA9IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIEVuZDogKCkgPT4gdGhpcywKKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAg
ICAgICAgICAgICAgICAgaW1wb3J0QnVpbGRlci5HbG9iYWwgPSBfaW1wb3J0R2xvYmFsQ29udGlu
dWF0aW9uKHRoaXMsIHMsIGltcG9ydEJ1aWxkZXIpOworICAgICAgICAgICAgICAgICAgICBpbXBv
cnRCdWlsZGVyLkZ1bmN0aW9uID0gX2ltcG9ydEZ1bmN0aW9uQ29udGludWF0aW9uKHRoaXMsIHMs
IGltcG9ydEJ1aWxkZXIpOworICAgICAgICAgICAgICAgICAgICBpbXBvcnRCdWlsZGVyLk1lbW9y
eSA9IF9pbXBvcnRNZW1vcnlDb250aW51YXRpb24odGhpcywgcywgaW1wb3J0QnVpbGRlcik7Cisg
ICAgICAgICAgICAgICAgICAgIGltcG9ydEJ1aWxkZXIuVGFibGUgPSBfaW1wb3J0VGFibGVDb250
aW51YXRpb24odGhpcywgcywgaW1wb3J0QnVpbGRlcik7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKGltcG9ydEJ1aWxkZXIpOworICAgICAgICAgICAg
ICAgIH07CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgIkZ1bmN0
aW9uIjoKKyAgICAgICAgICAgICAgICB0aGlzW3NlY3Rpb25dID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IHMgPSB0aGlzLl9hZGRTZWN0aW9uKHNlY3Rpb24pOworICAg
ICAgICAgICAgICAgICAgICBjb25zdCBmdW5jdGlvbkJ1aWxkZXIgPSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBFbmQ6ICgpID0+IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBhZGQgYWJpbGl0eSB0byBhZGQgdGhpcyB3aXRoIHdoYXRldmVyLgorICAgICAgICAgICAg
ICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94
eUZvcihmdW5jdGlvbkJ1aWxkZXIpOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgIlRhYmxlIjoKKyAgICAgICAgICAgICAgICB0
aGlzW3NlY3Rpb25dID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHMg
PSB0aGlzLl9hZGRTZWN0aW9uKHNlY3Rpb24pOworICAgICAgICAgICAgICAgICAgICBjb25zdCB0
YWJsZUJ1aWxkZXIgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICBFbmQ6ICgpID0+IHRoaXMs
CisgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZTogKHtpbml0aWFsLCBtYXhpbXVtLCBlbGVt
ZW50fSkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuZGF0YS5wdXNoKHt0YWJs
ZURlc2NyaXB0aW9uOiB7aW5pdGlhbCwgbWF4aW11bSwgZWxlbWVudH19KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcih0YWJsZUJ1aWxk
ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9Owor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcih0YWJsZUJ1
aWxkZXIpOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgICAgIGNhc2UgIk1lbW9yeSI6CisgICAgICAgICAgICAgICAgdGhpc1tzZWN0aW9uXSA9
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBjb25zdCBzID0gdGhpcy5fYWRkU2Vj
dGlvbihzZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVtb3J5QnVpbGRlciA9
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEVuZDogKCkgPT4gdGhpcywKKyAgICAgICAgICAg
ICAgICAgICAgICAgIEluaXRpYWxNYXhQYWdlczogKGluaXRpYWwsIG1heCkgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHMuZGF0YS5wdXNoKHsgaW5pdGlhbCwgbWF4IH0pOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKG1l
bW9yeUJ1aWxkZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZv
cihtZW1vcnlCdWlsZGVyKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGJy
ZWFrOworCisgICAgICAgICAgICBjYXNlICJHbG9iYWwiOgorICAgICAgICAgICAgICAgIHRoaXNb
c2VjdGlvbl0gPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgcyA9IHRo
aXMuX2FkZFNlY3Rpb24oc2VjdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsb2Jh
bEJ1aWxkZXIgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICBFbmQ6ICgpID0+IHRoaXMsCisg
ICAgICAgICAgICAgICAgICAgICAgICBHZXRHbG9iYWw6ICh0eXBlLCBpbml0VmFsdWUsIG11dGFi
aWxpdHkpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLmRhdGEucHVzaCh7IHR5
cGUsIG9wOiAiZ2V0X2dsb2JhbCIsIG11dGFiaWxpdHk6IF9ub3JtYWxpemVNdXRhYmlsaXR5KG11
dGFiaWxpdHkpLCBpbml0VmFsdWUgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IoZ2xvYmFsQnVpbGRlcik7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAg
IGZvciAobGV0IG9wIG9mIFdBU00uZGVzY3JpcHRpb24udmFsdWVfdHlwZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgZ2xvYmFsQnVpbGRlcltfdG9KYXZhU2NyaXB0TmFtZShvcCldID0gKGlu
aXRWYWx1ZSwgbXV0YWJpbGl0eSkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMu
ZGF0YS5wdXNoKHsgdHlwZTogb3AsIG9wOiBvcCArICIuY29uc3QiLCBtdXRhYmlsaXR5OiBfbm9y
bWFsaXplTXV0YWJpbGl0eShtdXRhYmlsaXR5KSwgaW5pdFZhbHVlIH0pOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKGdsb2JhbEJ1aWxk
ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihnbG9iYWxC
dWlsZGVyKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGJyZWFrOworCisg
ICAgICAgICAgICBjYXNlICJFeHBvcnQiOgorICAgICAgICAgICAgICAgIHRoaXNbc2VjdGlvbl0g
PSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgcyA9IHRoaXMuX2FkZFNl
Y3Rpb24oc2VjdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cG9ydEJ1aWxkZXIg
PSB7CisgICAgICAgICAgICAgICAgICAgICAgICBFbmQ6ICgpID0+IHRoaXMsCisgICAgICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgIGV4cG9ydEJ1aWxkZXIuR2xvYmFsID0g
X2V4cG9ydEdsb2JhbENvbnRpbnVhdGlvbih0aGlzLCBzLCBleHBvcnRCdWlsZGVyKTsKKyAgICAg
ICAgICAgICAgICAgICAgZXhwb3J0QnVpbGRlci5GdW5jdGlvbiA9IF9leHBvcnRGdW5jdGlvbkNv
bnRpbnVhdGlvbih0aGlzLCBzLCBleHBvcnRCdWlsZGVyKTsKKyAgICAgICAgICAgICAgICAgICAg
ZXhwb3J0QnVpbGRlci5NZW1vcnkgPSBfZXhwb3J0TWVtb3J5Q29udGludWF0aW9uKHRoaXMsIHMs
IGV4cG9ydEJ1aWxkZXIpOworICAgICAgICAgICAgICAgICAgICBleHBvcnRCdWlsZGVyLlRhYmxl
ID0gX2V4cG9ydFRhYmxlQ29udGludWF0aW9uKHRoaXMsIHMsIGV4cG9ydEJ1aWxkZXIpOworICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihleHBvcnRCdWls
ZGVyKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICBjYXNlICJTdGFydCI6CisgICAgICAgICAgICAgICAgdGhpc1tzZWN0aW9uXSA9IGZ1
bmN0aW9uKGZ1bmN0aW9uSW5kZXhPck5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3Qg
cyA9IHRoaXMuX2FkZFNlY3Rpb24oc2VjdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHN0YXJ0QnVpbGRlciA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEVuZDogKCkgPT4gdGhp
cywKKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVv
ZihmdW5jdGlvbkluZGV4T3JOYW1lKSAhPT0gIm51bWJlciIgJiYgdHlwZW9mKGZ1bmN0aW9uSW5k
ZXhPck5hbWUpICE9PSAic3RyaW5nIikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcihgU3RhcnQgc2VjdGlvbidzIGZ1bmN0aW9uIGluZGV4ICBtdXN0IGVpdGhlciBiZSBh
IG51bWJlciBvciBhIHN0cmluZ2ApOworICAgICAgICAgICAgICAgICAgICBzLmRhdGEucHVzaChm
dW5jdGlvbkluZGV4T3JOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhh
bmRsaW5nUHJveHlGb3Ioc3RhcnRCdWlsZGVyKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICJFbGVtZW50IjoKKyAgICAgICAg
ICAgICAgICB0aGlzW3NlY3Rpb25dID0gZnVuY3Rpb24oLi4uYXJncykgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoYXJncy5sZW5ndGggIT09IDApCisgICAgICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIllvdSdyZSBkb2luZyBpdCB3cm9uZy4gVGhpcyBlbGVtZW50IGRvZXMg
bm90IHRha2UgYXJndW1lbnRzLiBZb3UgbXVzdCBjaGFpbiB0aGUgY2FsbCB3aXRoIGFub3RoZXIg
RWxlbWVudCgpIik7CisKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgcyA9IHRoaXMuX2FkZFNl
Y3Rpb24oc2VjdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRCdWlsZGVy
ID0geworICAgICAgICAgICAgICAgICAgICAgICAgRW5kOiAoKSA9PiB0aGlzLAorICAgICAgICAg
ICAgICAgICAgICAgICAgRWxlbWVudDogKHt0YWJsZUluZGV4ID0gMCwgb2Zmc2V0LCBmdW5jdGlv
bkluZGljZXN9KSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5kYXRhLnB1c2go
e3RhYmxlSW5kZXgsIG9mZnNldCwgZnVuY3Rpb25JbmRpY2VzfSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IoZWxlbWVudEJ1aWxkZXIp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9OworCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKGVsZW1lbnRC
dWlsZGVyKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGJyZWFrOworCisg
ICAgICAgICAgICBjYXNlICJDb2RlIjoKKyAgICAgICAgICAgICAgICB0aGlzW3NlY3Rpb25dID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHMgPSB0aGlzLl9hZGRTZWN0
aW9uKHNlY3Rpb24pOworICAgICAgICAgICAgICAgICAgICBjb25zdCBidWlsZGVyID0gdGhpczsK
KyAgICAgICAgICAgICAgICAgICAgY29uc3QgY29kZUJ1aWxkZXIgPSAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgRW5kOiAoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
V2Ugbm93IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHJlbWFwIHRoZSBleHBvcnQgc2VjdGlv
bidzICJ0eXBlIiBhbmQgImluZGV4IiBhY2NvcmRpbmcgdG8gdGhlIENvZGUgc2VjdGlvbiB3ZSBh
cmUgY3VycmVudGx5IGVuZGluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0
eXBlU2VjdGlvbiA9IGJ1aWxkZXIuX2dldFNlY3Rpb24oIlR5cGUiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBpbXBvcnRTZWN0aW9uID0gYnVpbGRlci5fZ2V0U2VjdGlvbigi
SW1wb3J0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwb3J0U2VjdGlv
biA9IGJ1aWxkZXIuX2dldFNlY3Rpb24oIkV4cG9ydCIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IHN0YXJ0U2VjdGlvbiA9IGJ1aWxkZXIuX2dldFNlY3Rpb24oIlN0YXJ0Iik7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29kZVNlY3Rpb24gPSBzOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleHBvcnRTZWN0aW9uKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZSBvZiBleHBvcnRTZWN0aW9uLmRhdGEp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmtpbmQgIT09ICJG
dW5jdGlvbiIgfHwgdHlwZW9mKGUudHlwZSkgIT09ICJ1bmRlZmluZWQiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlb2YoZS5pbmRleCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcihgVW5leHBl
Y3RlZCBleHBvcnQgaW5kZXggIiR7ZS5pbmRleH0iYCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlICJzdHJpbmciOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBidWlsZGVyLl9nZXRGdW5jdGlvbkZyb21JbmRl
eFNwYWNlKGUuaW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5pc051bWJlcihpbmRleCwgYEV4cG9ydCBzZWN0aW9uIGNvbnRhaW5zIHVuZGVmaW5l
ZCBmdW5jdGlvbiAiJHtlLmluZGV4fSJgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlLmluZGV4ID0gaW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9IC8vIEZhbGx0aHJvdWdoLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2FzZSAibnVtYmVyIjogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGluZGV4ID0gYnVpbGRlci5fZ2V0RnVuY3Rpb25Gcm9tSW5kZXhTcGFjZShl
LmluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVp
bGRlci5fY2hlY2tlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmlzTm90VW5kZWYoaW5kZXgsIGBFeHBvcnQgIiR7ZS5maWVsZH0iIGRvZXMgbm90
IGNvcnJlc3BvbmQgdG8gYSBkZWZpbmVkIHZhbHVlIGluIHRoZSBmdW5jdGlvbiBpbmRleCBzcGFj
ZWApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInVuZGVmaW5lZCI6CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmltcGxl
bWVudGVkOiBGdW5jdGlvbigpLkVuZCgpIHdpdGggdW5kZWZpbmVkIGV4cG9ydCBpbmRleGApOyAv
LyBGSVhNRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZihlLnR5cGUpID09PSAidW5kZWZp
bmVkIikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMg
bXVzdCBiZSBhIGZ1bmN0aW9uIGV4cG9ydCBmcm9tIHRoZSBDb2RlIHNlY3Rpb24gKHJlLWV4cG9y
dHMgd2VyZSBoYW5kbGVkIGVhcmxpZXIpLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBmdW5jdGlvbkluZGV4U3BhY2VPZmZzZXQgPSAwOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbXBvcnRTZWN0aW9uKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qge2tpbmR9IG9m
IGltcG9ydFNlY3Rpb24uZGF0YSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGtpbmQgPT09ICJGdW5jdGlvbiIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytmdW5jdGlvbkluZGV4U3BhY2VP
ZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25JbmRleCA9IGUuaW5kZXggLSBm
dW5jdGlvbkluZGV4U3BhY2VPZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZS50eXBlID0gY29kZVNlY3Rpb24uZGF0YVtmdW5jdGlvbkluZGV4XS50eXBlOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChzdGFydFNlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBzdGFydFNlY3Rpb24uZGF0YVswXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hcHBlZCA9IGJ1aWxkZXIuX2dldEZ1bmN0
aW9uRnJvbUluZGV4U3BhY2Uoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoIWJ1aWxkZXIuX2NoZWNrZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh0eXBlb2YobWFwcGVkKSA9PT0gInVuZGVmaW5lZCIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwcGVkID0gc3RhcnQ7IC8vIEluIHVuY2hlY2tl
ZCBtb2RlLCBzaW1wbHkgdXNlIHdoYXQgd2FzIHByb3ZpZGVkIGlmIGl0J3Mgbm9uc2Vuc2ljYWwu
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuaXNBKHN0YXJ0LCAi
bnVtYmVyIik7IC8vIEl0IGNhbid0IGJlIHRvbyBub25zZW5zaWNhbCwgb3RoZXJ3aXNlIHdlIGNh
bid0IGNyZWF0ZSBhIGJpbmFyeS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXJ0U2VjdGlvbi5kYXRhWzBdID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
dHlwZW9mKG1hcHBlZCkgPT09ICJ1bmRlZmluZWQiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU3RhcnQgc2VjdGlvbiByZWZlcnMgdG8g
bm9uLWV4aXN0YW50IGZ1bmN0aW9uICcke3N0YXJ0fSdgKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yoc3RhcnQpID09PSAic3RyaW5nIiB8fCB0eXBlb2Yo
c3RhcnQpID09PSAib2JqZWN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGFydFNlY3Rpb24uZGF0YVswXSA9IG1hcHBlZDsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FIGluIGNoZWNrZWQgbW9kZSwgdGVzdCB0aGF0IHRoZSB0
eXBlIGlzIGFjY2VwdGFibGUgZm9yIHN0YXJ0IGZ1bmN0aW9uLiBXZSBwcm9iYWJseSB3YW50IF9y
ZWdpc3RlckZ1bmN0aW9uVG9JbmRleFNwYWNlIHRvIGFsc28gcmVnaXN0ZXIgdHlwZXMgcGVyIGlu
ZGV4LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1NjU4CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJv
eHlGb3IoYnVpbGRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgIGNvZGVCdWlsZGVyLkZ1bmN0aW9uID0g
X2NyZWF0ZUZ1bmN0aW9uKHMsIGJ1aWxkZXIsIGNvZGVCdWlsZGVyKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IoY29kZUJ1aWxkZXIpOworICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2Ug
IkRhdGEiOgorICAgICAgICAgICAgICAgIHRoaXNbc2VjdGlvbl0gPSBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY29uc3QgcyA9IHRoaXMuX2FkZFNlY3Rpb24oc2VjdGlvbik7Cisg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFCdWlsZGVyID0geworICAgICAgICAgICAgICAg
ICAgICAgICAgRW5kOiAoKSA9PiB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgU2VnbWVu
dDogZGF0YSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmlzQXJyYXko
ZGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBkYXR1bSBvZiBk
YXRhKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5pc051bWJlcihk
YXR1bSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5nZShkYXR1bSwg
MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5sZShkYXR1bSwgMHhm
Zik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHMuZGF0YS5wdXNoKHsgZGF0YTogZGF0YSwgaW5kZXg6IDAsIG9mZnNldDogMCB9KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGhpc1NlZ21lbnQgPSBzLmRhdGFbcy5k
YXRhLmxlbmd0aCAtIDFdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlZ21l
bnRCdWlsZGVyID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmQ6ICgpID0+
IGRhdGFCdWlsZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleDogaW5k
ZXggPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxKGlu
ZGV4LCAwKTsgLy8gTGluZWFyIG1lbW9yeSBpbmRleCBtdXN0IGJlIHplcm8gaW4gTVZQLgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1NlZ21lbnQuaW5kZXggPSBpbmRl
eDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfZXJyb3JIYW5k
bGluZ1Byb3h5Rm9yKHNlZ21lbnRCdWlsZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0OiBvZmZzZXQg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUUgYWxsb3cg
Y29tcGxleCBpbml0X2V4cHIgaGVyZS4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NTcwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
LmlzTnVtYmVyKG9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzU2VnbWVudC5vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihzZWdtZW50QnVpbGRlcik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxp
bmdQcm94eUZvcihzZWdtZW50QnVpbGRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9y
SGFuZGxpbmdQcm94eUZvcihkYXRhQnVpbGRlcik7CisgICAgICAgICAgICAgICAgfTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAg
ICB0aGlzW3NlY3Rpb25dID0gKCkgPT4geyB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc2VjdGlv
biB0eXBlICIke3NlY3Rpb259ImApOyB9OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdGhpcy5Vbmtub3duID0gZnVuY3Rpb24obmFt
ZSkgeworICAgICAgICAgICAgY29uc3QgcyA9IHRoaXMuX2FkZFNlY3Rpb24obmFtZSk7CisgICAg
ICAgICAgICBjb25zdCBidWlsZGVyID0gdGhpczsKKyAgICAgICAgICAgIGNvbnN0IHVua25vd25C
dWlsZGVyID0gIHsKKyAgICAgICAgICAgICAgICBFbmQ6ICgpID0+IGJ1aWxkZXIsCisgICAgICAg
ICAgICAgICAgQnl0ZTogYiA9PiB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcShiICYg
MHhGRiwgYiwgYFVua25vd24gc2VjdGlvbiBleHBlY3RlZCBieXRlLCBnb3Q6ICIke2J9ImApOwor
ICAgICAgICAgICAgICAgICAgICBzLmRhdGEucHVzaChiKTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IodW5rbm93bkJ1aWxkZXIpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxp
bmdQcm94eUZvcih1bmtub3duQnVpbGRlcik7CisgICAgICAgIH07CisgICAgfQorICAgIF9hZGRT
ZWN0aW9uKG5hbWVPck51bWJlciwgZXh0cmFPYmplY3QpIHsKKyAgICAgICAgY29uc3QgbmFtZSA9
IHR5cGVvZihuYW1lT3JOdW1iZXIpID09PSAic3RyaW5nIiA/IG5hbWVPck51bWJlciA6ICIiOwor
ICAgICAgICBjb25zdCBudW1iZXIgPSB0eXBlb2YobmFtZU9yTnVtYmVyKSA9PT0gIm51bWJlciIg
PyBuYW1lT3JOdW1iZXIgOiAoV0FTTS5kZXNjcmlwdGlvbi5zZWN0aW9uW25hbWVdID8gV0FTTS5k
ZXNjcmlwdGlvbi5zZWN0aW9uW25hbWVdLnZhbHVlIDogX3Vua25vd25TZWN0aW9uSWQpOworICAg
ICAgICBpZiAodGhpcy5fY2hlY2tlZCkgeworICAgICAgICAgICAgLy8gQ2hlY2sgdW5pcXVlbmVz
cy4KKyAgICAgICAgICAgIGZvciAoY29uc3QgcyBvZiB0aGlzLl9zZWN0aW9ucykKKyAgICAgICAg
ICAgICAgICBpZiAobnVtYmVyICE9PSBfdW5rbm93blNlY3Rpb25JZCkKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmZhbHN5KHMubmFtZSA9PT0gbmFtZSAmJiBzLmlkID09PSBudW1iZXIsIGBD
YW5ub3QgaGF2ZSB0d28gc2VjdGlvbnMgd2l0aCB0aGUgc2FtZSBuYW1lICIke25hbWV9IiBhbmQg
SUQgJHtudW1iZXJ9YCk7CisgICAgICAgICAgICAvLyBDaGVjayBvcmRlcmluZy4KKyAgICAgICAg
ICAgIGlmICgobnVtYmVyICE9PSBfdW5rbm93blNlY3Rpb25JZCkgJiYgKHRoaXMuX3NlY3Rpb25z
Lmxlbmd0aCAhPT0gMCkpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5fc2Vj
dGlvbnMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHRoaXMuX3NlY3Rpb25zW2ldLmlkID09PSBfdW5rbm93blNlY3Rpb25JZCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBhc3NlcnQubGUodGhp
cy5fc2VjdGlvbnNbaV0uaWQsIG51bWJlciwgYEJhZCBzZWN0aW9uIG9yZGVyaW5nOiAiJHt0aGlz
Ll9zZWN0aW9uc1tpXS5uYW1lfSIgY2Fubm90IHByZWNlZGUgIiR7bmFtZX0iYCk7CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICBjb25zdCBzID0gT2JqZWN0LmFzc2lnbih7IG5hbWU6IG5hbWUsIGlk
OiBudW1iZXIsIGRhdGE6IFtdIH0sIGV4dHJhT2JqZWN0IHx8IHt9KTsKKyAgICAgICAgdGhpcy5f
c2VjdGlvbnMucHVzaChzKTsKKyAgICAgICAgcmV0dXJuIHM7CisgICAgfQorICAgIF9nZXRTZWN0
aW9uKG5hbWVPck51bWJlcikgeworICAgICAgICBzd2l0Y2ggKHR5cGVvZihuYW1lT3JOdW1iZXIp
KSB7CisgICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcihgSW1wbGVtZW50YXRpb24gcHJv
YmxlbTogY2FuIG5vdCBnZXQgc2VjdGlvbiAiJHtuYW1lT3JOdW1iZXJ9ImApOworICAgICAgICBj
YXNlICJzdHJpbmciOgorICAgICAgICAgICAgZm9yIChjb25zdCBzIG9mIHRoaXMuX3NlY3Rpb25z
KQorICAgICAgICAgICAgICAgIGlmIChzLm5hbWUgPT09IG5hbWVPck51bWJlcikKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHM7CisgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAg
ICAgICBjYXNlICJudW1iZXIiOgorICAgICAgICAgICAgZm9yIChjb25zdCBzIG9mIHRoaXMuX3Nl
Y3Rpb25zKQorICAgICAgICAgICAgICAgIGlmIChzLmlkID09PSBuYW1lT3JOdW1iZXIpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBzOworICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsK
KyAgICAgICAgfQorICAgIH0KKyAgICBvcHRpbWl6ZSgpIHsKKyAgICAgICAgLy8gRklYTUUgQWRk
IG1vcmUgb3B0aW1pemF0aW9ucy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MzQyNAorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAganNvbigpIHsKKyAg
ICAgICAgY29uc3Qgb2JqID0geworICAgICAgICAgICAgcHJlYW1ibGU6IHRoaXMuX3ByZWFtYmxl
LAorICAgICAgICAgICAgc2VjdGlvbjogdGhpcy5fc2VjdGlvbnMKKyAgICAgICAgfTsKKyAgICAg
ICAgLy8gSlNPTi5zdHJpbmdpZnkgc2VyaWFsaXplcyAtMC4wIGFzIDAuMC4KKyAgICAgICAgY29u
c3QgcmVwbGFjZXIgPSAoa2V5LCB2YWx1ZSkgPT4geworICAgICAgICAgICAgaWYgKHZhbHVlID09
PSAwLjAgJiYgMS4wIC8gdmFsdWUgPT09IC1JbmZpbml0eSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gIk5FR0FUSVZFX1pFUk8iOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9
OworICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqLCByZXBsYWNlcik7CisgICAgfQor
ICAgIEFzbUpTKCkgeworICAgICAgICAidXNlIGFzbSI7IC8vIEZvciBzcGVlZC4KKyAgICAgICAg
Ly8gRklYTUUgQ3JlYXRlIGFuIGFzbS5qcyBlcXVpdmFsZW50IHN0cmluZyB3aGljaCBjYW4gYmUg
ZXZhbCdkLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDI1Cisg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiYXNtLmpzIG5vdCBpbXBsZW1lbnRlZCB5ZXQiKTsKKyAg
ICB9CisgICAgV2ViQXNzZW1ibHkoKSB7IHJldHVybiBCdWlsZFdlYkFzc2VtYmx5LkJpbmFyeSh0
aGlzLl9wcmVhbWJsZSwgdGhpcy5fc2VjdGlvbnMpOyB9Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2NTk1M2VmMzgzMjU4MDk5NDA1YTczNWYzNjU2
MTIxNmVlYzM1Y2U2Li4xZGI5YTRiYmIxYjEyMWNkYWUxOTIwYTU2Y2RmYWQ1MjcyZDk2MDcwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzkwMCw2ICsz
OTAwLDcgQEAgd2FzbS9pZnJhbWUtcGFyZW50LXBvc3RtZXNzYWdlLmh0bWwgWyBTa2lwIF0KIHdh
c20vd2luZG93LXBvc3RtZXNzYWdlLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2FzbS93YXNtX3N0cmVhbV9pbnN0YW50aWF0ZV90ZXN0Lmh0bWwgIFsgU2tp
cCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vd2FzbV9zdHJlYW1fY29t
cGlsZV90ZXN0Lmh0bWwgIFsgU2tpcCBdCitodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9hbGxvdy13YXNtLWFmdGVyLXdpbmRvdy1vcGVuLmh0bWwgWyBTa2lwIF0KIAog
IyBBbmltYXRlZCBpbWFnZSB0aHJvdHRsaW5nIGJlaGF2ZXMgZGlmZmVyZW50bHkgb24gV0sxLgog
c3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3ZnLWltYWdlLW91dHNpZGUtdmlld3BvcnQtcGF1c2Vk
Lmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456371</attachid>
            <date>2022-04-01 10:31:46 -0700</date>
            <delta_ts>2022-04-01 12:27:58 -0700</delta_ts>
            <desc>[fast-cq] Patch for landing</desc>
            <filename>bug-238562-20220401133145.patch</filename>
            <type>text/plain</type>
            <size>123760</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxOTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjk3ZGIyZjUyZmE5YTZk
ZTEyMzlmNTljYjkyMTNmNTVhOWMyMTBmNS4uYmMxOWEwYTRkZWUyNWNkMjJiYmY5OTY3NzA1NDll
OTI1ZDA3ZDQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIyLTAzLTMwICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENTUDogV0FT
TSBmYWlscyB0byBleGVjdXRlIGFmdGVyIHdpbmRvdy5vcGVuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg1NjIKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzkwNzc4NzUyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAg
ICAgICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYWxs
b3ctd2FzbS1hZnRlci13aW5kb3ctb3Blbi5odG1sCisKKyAgICAgICAgUmVzZXQgV0FTTSBlbmFi
bGVkIHZhbHVlIGFmdGVyIGEgd2luZG93Lm9wZW4oKSBjYWxsLiBUaGlzIHBhdGNoIHNpbXBsaWZp
ZXMKKyAgICAgICAgZXZhbCBhbmQgd2FzbSBzZXR0ZXJzIGJ5IHJlbW92aW5nIHRoZSBkaXN0aW5j
dCBlbmFibGUvZGlzYWJsZSBmdW5jdGlvbnMKKyAgICAgICAgYW5kIHVzaW5nIG9uZSBjb25zaXN0
ZW50IHNldHRlci4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6c2V0RXZhbEVuYWJsZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6c2V0V2ViQXNzZW1ibHlFbmFibGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmVuYWJsZUV2YWwpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZW5hYmxlV2ViQXNzZW1i
bHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJs
ZUV2YWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZGlz
YWJsZVdlYkFzc2VtYmx5KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpkaXNhYmxlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZGlzYWJsZVdlYkFzc2VtYmx5KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNsZWFyKToKKyAgICAgICAgKiBwYWdlL2Nz
cC9Db250ZW50U2VjdXJpdHlQb2xpY3kuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1
cml0eVBvbGljeTo6d2ViQXNzZW1ibHlFcnJvck1lc3NhZ2UgY29uc3QpOgorCiAyMDIyLTAzLTI4
ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBZGQg
YFdLV2ViVmlld2AgQVBJIHRvIGNvbnRyb2wgQ1NTICJzbWFsbCB2aWV3cG9ydCIgYHN2KmAgYW5k
ICJsYXJnZSB2aWV3cG9ydCIgYGx2KmAgdW5pdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggNDg0ZDhjMmRmMzdiZWY3ZDE3ZGE0MWI3
MDMyMjk0YjFkOWNmZmIxNC4uNjM2OTY3MDFmNDQyOTcxZDFjMDI1Zjg3ODNmZGY4MjNmM2I5OGQx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5j
cHAKQEAgLTQwNiwzNiArNDA2LDIwIEBAIFRleHRQb3NpdGlvbiBTY3JpcHRDb250cm9sbGVyOjpl
dmVudEhhbmRsZXJQb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIFRleHRQb3NpdGlvbigpOwog
fQogCi12b2lkIFNjcmlwdENvbnRyb2xsZXI6OmVuYWJsZUV2YWwoYm9vbCBlbmFibGUsIGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlKQordm9pZCBTY3JpcHRDb250cm9sbGVyOjpzZXRFdmFsRW5h
YmxlZChib29sIHZhbHVlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKICAgICBhdXRv
KiBqc1dpbmRvd1Byb3h5ID0gd2luZG93UHJveHkoKS5leGlzdGluZ0pTV2luZG93UHJveHkobWFp
blRocmVhZE5vcm1hbFdvcmxkKCkpOwogICAgIGlmICghanNXaW5kb3dQcm94eSkKICAgICAgICAg
cmV0dXJuOwotICAgIGpzV2luZG93UHJveHktPndpbmRvdygpLT5zZXRFdmFsRW5hYmxlZChlbmFi
bGUsIGVycm9yTWVzc2FnZSk7CisgICAganNXaW5kb3dQcm94eS0+d2luZG93KCktPnNldEV2YWxF
bmFibGVkKHZhbHVlLCBlcnJvck1lc3NhZ2UpOwogfQogCi12b2lkIFNjcmlwdENvbnRyb2xsZXI6
OmVuYWJsZVdlYkFzc2VtYmx5KCkKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6c2V0V2ViQXNzZW1i
bHlFbmFibGVkKGJvb2wgdmFsdWUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewogICAg
IGF1dG8qIGpzV2luZG93UHJveHkgPSB3aW5kb3dQcm94eSgpLmV4aXN0aW5nSlNXaW5kb3dQcm94
eShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CiAgICAgaWYgKCFqc1dpbmRvd1Byb3h5KQogICAg
ICAgICByZXR1cm47Ci0gICAganNXaW5kb3dQcm94eS0+d2luZG93KCktPnNldFdlYkFzc2VtYmx5
RW5hYmxlZCh0cnVlKTsKLX0KLQotdm9pZCBTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbChj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKLXsKLSAgICBhdXRvKiBqc1dpbmRvd1Byb3h5ID0g
d2luZG93UHJveHkoKS5leGlzdGluZ0pTV2luZG93UHJveHkobWFpblRocmVhZE5vcm1hbFdvcmxk
KCkpOwotICAgIGlmICghanNXaW5kb3dQcm94eSkKLSAgICAgICAgcmV0dXJuOwotICAgIGpzV2lu
ZG93UHJveHktPndpbmRvdygpLT5zZXRFdmFsRW5hYmxlZChmYWxzZSwgZXJyb3JNZXNzYWdlKTsK
LX0KLQotdm9pZCBTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlV2ViQXNzZW1ibHkoY29uc3QgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UpCi17Ci0gICAgYXV0byoganNXaW5kb3dQcm94eSA9IHdpbmRvd1By
b3h5KCkuZXhpc3RpbmdKU1dpbmRvd1Byb3h5KG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKLSAg
ICBpZiAoIWpzV2luZG93UHJveHkpCi0gICAgICAgIHJldHVybjsKLSAgICBqc1dpbmRvd1Byb3h5
LT53aW5kb3coKS0+c2V0V2ViQXNzZW1ibHlFbmFibGVkKGZhbHNlLCBlcnJvck1lc3NhZ2UpOwor
ICAgIGpzV2luZG93UHJveHktPndpbmRvdygpLT5zZXRXZWJBc3NlbWJseUVuYWJsZWQodmFsdWUs
IGVycm9yTWVzc2FnZSk7CiB9CiAKIGJvb2wgU2NyaXB0Q29udHJvbGxlcjo6Y2FuQWNjZXNzRnJv
bUN1cnJlbnRPcmlnaW4oRnJhbWUqIGZyYW1lLCBEb2N1bWVudCYgYWNjZXNzaW5nRG9jdW1lbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKaW5kZXgg
MWQ5ZTQ5NmEyN2Y5MWM0Mzk5NGQ4OWI4ODAwOGY0YzUxNDM4ZTA5OC4uZDlmZTkzZjhhMDcxMTI1
NjFhN2JiMThkNTQzMWM0Mjk4MjJlZDg2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuaApAQCAtMTI0LDEwICsxMjQsOCBAQCBwdWJsaWM6CiAKICAg
ICBUZXh0UG9zaXRpb24gZXZlbnRIYW5kbGVyUG9zaXRpb24oKSBjb25zdDsKIAotICAgIHZvaWQg
ZW5hYmxlRXZhbChib29sLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSA9IFN0cmluZygpKTsK
LSAgICB2b2lkIGVuYWJsZVdlYkFzc2VtYmx5KCk7Ci0gICAgdm9pZCBkaXNhYmxlRXZhbChjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7Ci0gICAgdm9pZCBkaXNhYmxlV2ViQXNzZW1ibHkoY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworICAgIHZvaWQgc2V0RXZhbEVuYWJsZWQoYm9vbCwg
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoKSk7CisgICAgdm9pZCBzZXRXZWJB
c3NlbWJseUVuYWJsZWQoYm9vbCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UgPSBTdHJpbmco
KSk7CiAKICAgICBzdGF0aWMgYm9vbCBjYW5BY2Nlc3NGcm9tQ3VycmVudE9yaWdpbihGcmFtZSos
IERvY3VtZW50JiBhY2Nlc3NpbmdEb2N1bWVudCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBj
YW5FeGVjdXRlU2NyaXB0cyhSZWFzb25Gb3JDYWxsaW5nQ2FuRXhlY3V0ZVNjcmlwdHMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYWQwZjYxNmUzZTZlMGUzOGY4MDcyMWM3ZDdlNTM4YzFh
YWVhYzMyZS4uYzkwMTQ2MWM2ZDI0ODg2N2VkOTFjMWRjZDg0M2E2NDY3OWVhMDhhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0zNTY3LDcgKzM1NjcsNyBAQCB2b2lkIERvY3VtZW50Ojpk
aXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKICAgICBpZiAoIWZyYW1lKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGZyYW1lKCktPnNjcmlwdCgpLmRpc2FibGVFdmFsKGVy
cm9yTWVzc2FnZSk7CisgICAgZnJhbWUoKS0+c2NyaXB0KCkuc2V0RXZhbEVuYWJsZWQoZmFsc2Us
IGVycm9yTWVzc2FnZSk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmRpc2FibGVXZWJBc3NlbWJseShj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKQEAgLTM1NzUsNyArMzU3NSw3IEBAIHZvaWQgRG9j
dW1lbnQ6OmRpc2FibGVXZWJBc3NlbWJseShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKICAg
ICBpZiAoIWZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZyYW1lKCktPnNjcmlwdCgp
LmRpc2FibGVXZWJBc3NlbWJseShlcnJvck1lc3NhZ2UpOworICAgIGZyYW1lKCktPnNjcmlwdCgp
LnNldFdlYkFzc2VtYmx5RW5hYmxlZChmYWxzZSwgZXJyb3JNZXNzYWdlKTsKIH0KIAogSURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uUHJveHkqIERvY3VtZW50OjppZGJDb25uZWN0aW9uUHJveHkoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggOTZlNjJiYTU5NWQzYzEzMjA2
M2I1YTRhOWJlMTY2YTA0M2QxYzExOS4uODU0YjcyMTRmMDIyMjUxMDYxN2ZkN2I3MjI1YjE4MDNj
NmU0OWNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC02NjcsMTAg
KzY2NywxMiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjbGVhcihSZWZQdHI8RG9jdW1lbnQ+JiYgbmV3
RG9jdW1lbnQsIGJvb2wgY2xlYXJXaW5kb3dQcm9wZXJ0aQogICAgIGlmIChjbGVhclNjcmlwdE9i
amVjdHMpCiAgICAgICAgIG1fZnJhbWUuc2NyaXB0KCkuY2xlYXJTY3JpcHRPYmplY3RzKCk7CiAK
LSAgICBpZiAobmV3RG9jdW1lbnQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpICYmICFuZXdEb2N1
bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmV2YWxFcnJvck1lc3NhZ2UoKS5pc051bGwo
KSkKLSAgICAgICAgbV9mcmFtZS5zY3JpcHQoKS5lbmFibGVFdmFsKGZhbHNlLCBuZXdEb2N1bWVu
dC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmV2YWxFcnJvck1lc3NhZ2UoKSk7Ci0gICAgZWxz
ZQotICAgICAgICBtX2ZyYW1lLnNjcmlwdCgpLmVuYWJsZUV2YWwodHJ1ZSk7CisgICAgaWYgKG5l
d0RvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKSkgeworICAgICAgICBib29sIGVuYWJs
ZUV2YWxWYWx1ZSA9IG5ld0RvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZXZhbEVy
cm9yTWVzc2FnZSgpLmlzTnVsbCgpOworICAgICAgICBib29sIGVuYWJsZVdBU01WYWx1ZSA9IG5l
d0RvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+d2ViQXNzZW1ibHlFcnJvck1lc3Nh
Z2UoKS5pc051bGwoKTsKKyAgICAgICAgbV9mcmFtZS5zY3JpcHQoKS5zZXRFdmFsRW5hYmxlZChl
bmFibGVFdmFsVmFsdWUsIG5ld0RvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZXZh
bEVycm9yTWVzc2FnZSgpKTsKKyAgICAgICAgbV9mcmFtZS5zY3JpcHQoKS5zZXRXZWJBc3NlbWJs
eUVuYWJsZWQoZW5hYmxlV0FTTVZhbHVlLCBuZXdEb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9s
aWN5KCktPndlYkFzc2VtYmx5RXJyb3JNZXNzYWdlKCkpOworICAgIH0KIAogICAgIG1fZnJhbWUu
bmF2aWdhdGlvblNjaGVkdWxlcigpLmNsZWFyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKaW5kZXggZGIwMDE2ZDczMjZjYmRmNjUwZDk3
NWVlNDgwZGVmMDU3YWYzODZjMS4uNjIzN2U1ZWRhZDNlOGU1MGMyOWFkYzJjM2ZjYWJkOTNkM2Q2
ZDllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5
UG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9s
aWN5LmgKQEAgLTE5Miw2ICsxOTIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0hlYWRlckRlbGl2
ZXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNIZWFkZXJEZWxpdmVyZWQ7IH0KIAogICAgIGNvbnN0
IFN0cmluZyYgZXZhbEVycm9yTWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBvbGljeUV2
YWxEaXNhYmxlZEVycm9yTWVzc2FnZTsgfQorICAgIGNvbnN0IFN0cmluZyYgd2ViQXNzZW1ibHlF
cnJvck1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX2xhc3RQb2xpY3lXZWJBc3NlbWJseURpc2Fi
bGVkRXJyb3JNZXNzYWdlOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBsb2dUb0NvbnNvbGUoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwgPSBTdHJpbmcoKSwg
Y29uc3QgT3JkaW5hbE51bWJlciYgY29udGV4dExpbmUgPSBPcmRpbmFsTnVtYmVyOjpiZWZvcmVG
aXJzdCgpLCBjb25zdCBPcmRpbmFsTnVtYmVyJiBjb250ZXh0Q29sdW1uID0gT3JkaW5hbE51bWJl
cjo6YmVmb3JlRmlyc3QoKSwgSlNDOjpKU0dsb2JhbE9iamVjdCogPSBudWxscHRyKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MDRiNzIxOTRkM2Y2MjI1ZjFiNDlkNWNlNDI1MGQyNWFiNDFkYjdjLi5kODUzYjli
YzVlMWFlMDkwNGE5MDdkODk5MDQyNWVjMjhjMzJhYmIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAK
KzIwMjItMDMtMzAgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisK
KyAgICAgICAgQ1NQOiBXQVNNIGZhaWxzIHRvIGV4ZWN1dGUgYWZ0ZXIgd2luZG93Lm9wZW4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODU2MgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vOTA3Nzg3NTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJl
bnQgRnVsZ2hhbS4KKworICAgICAgICBMYXlvdXQgdGVzdCBjb3ZlcmFnZS4gQ29weSBzb21lIHdh
c20gaGVscGVyIHNjcmlwdHMgaW50byB0aGUgaHR0cCBkaXJlY3RvcnkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgV2UgZG9uJ3Qgc3VwcG9ydCB3
YXNtIG9uIHdpbi4gICAgICAgIAorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvYWxsb3ctd2FzbS1hZnRlci13aW5kb3ctb3Blbi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L2FsbG93LXdhc20tYWZ0ZXItd2luZG93LW9wZW4uaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL2xv
YWRfd2FzbS5qczogQWRkZWQuCisgICAgICAgIChjcmVhdGVXYXNtTW9kdWxlKToKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvcnVu
LXdlYi1hc3NlbWJseS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvd2FzbS1idWlsZGVyLmpzOiBBZGRlZC4K
KyAgICAgICAgKGNvbnN0Ll9mYWlsKToKKyAgICAgICAgKGNvbnN0LmlzTm90QS5hc3NlcnQuaXNO
b3RBKToKKyAgICAgICAgKGNvbnN0KToKKyAgICAgICAgKHN3aXRjaC50eXBlb2YpOgorICAgICAg
ICAoQnVpbGRlcik6CisgICAgICAgIChCdWlsZGVyLnByb3RvdHlwZS5zZXRDaGVja2VkKToKKyAg
ICAgICAgKEJ1aWxkZXIucHJvdG90eXBlLnNldFByZWFtYmxlKToKKyAgICAgICAgKEJ1aWxkZXIu
cHJvdG90eXBlLl9mdW5jdGlvbkluZGV4U3BhY2VLZXlIYXNoKToKKyAgICAgICAgKEJ1aWxkZXIu
cHJvdG90eXBlLl9yZWdpc3RlckZ1bmN0aW9uVG9JbmRleFNwYWNlKToKKyAgICAgICAgKEJ1aWxk
ZXIucHJvdG90eXBlLl9nZXRGdW5jdGlvbkZyb21JbmRleFNwYWNlKToKKyAgICAgICAgKEJ1aWxk
ZXIucHJvdG90eXBlLl9yZWdpc3RlclNlY3Rpb25CdWlsZGVycy5jb25zdC5zZWN0aW9uLmluLldB
U00uZGVzY3JpcHRpb24uc2VjdGlvbi5zd2l0Y2guc2VjdGlvbi5jYXNlLnN0cmluZ19hcHBlYXJl
ZF9oZXJlLnRoaXMuc2VjdGlvbik6CisgICAgICAgIChCdWlsZGVyLnByb3RvdHlwZS5fcmVnaXN0
ZXJTZWN0aW9uQnVpbGRlcnMuY29uc3Quc2VjdGlvbi5pbi5XQVNNLmRlc2NyaXB0aW9uLnNlY3Rp
b24uc3dpdGNoLnNlY3Rpb24uY29uc3QuY29kZUJ1aWxkZXIuRW5kLnN3aXRjaC5jYXNlLnN0cmlu
Z19hcHBlYXJlZF9oZXJlLmUpOgorICAgICAgICAoQnVpbGRlci5wcm90b3R5cGUuX3JlZ2lzdGVy
U2VjdGlvbkJ1aWxkZXJzLnRoaXMuVW5rbm93bik6CisKIDIwMjItMDMtMjggIEJyYWR5IEVpZHNv
biAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQgU2VydmljZVdvcmtlckNs
aWVudHMub3BlbldpbmRvdy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2FsbG93LXdhc20tYWZ0ZXItd2luZG93LW9wZW4t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvYWxsb3ctd2FzbS1hZnRlci13aW5kb3ctb3Blbi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGM1ZmJjMDQwZmQwNjEwOWNjOTk2OGIwZWVkNzI3NjA3NWFkM2E5YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L2FsbG93LXdhc20tYWZ0ZXItd2luZG93LW9wZW4tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMiBAQAorQUxFUlQ6IFBBU1M6IHdhc20gcmVzdWx0IGlzIDcwMDIKK1Rlc3Qgd2UgYWxs
b3cgd2ViIGFzc2VtYmx5IHdpdGggdW5zYWZlLWV2YWwgYWZ0ZXIgY2FsbGluZyB3aW5kb3cub3Bl
bi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L2FsbG93LXdhc20tYWZ0ZXItd2luZG93LW9wZW4uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2FsbG93LXdhc20t
YWZ0ZXItd2luZG93LW9wZW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTkzODE2MjY0ZjU5MWYwZjNhNjdi
YzMzYmEzNTAyNjE0Y2ZmZjkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYWxsb3ctd2FzbS1hZnRlci13aW5k
b3ctb3Blbi5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVudD0ic2Ny
aXB0LXNyYyAnbm9uY2UtdGVzdCc7Ij4KKyAgICA8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5UZXN0
IHdlIGFsbG93IHdlYiBhc3NlbWJseSB3aXRoIHVuc2FmZS1ldmFsIGFmdGVyIGNhbGxpbmcgd2lu
ZG93Lm9wZW4uPC9wPgorICAgIDxzY3JpcHQgbm9uY2U9InRlc3QiPgorICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIH0KKworICAg
ICAgICB3aW5kb3cub3BlbigicmVzb3VyY2VzL3J1bi13ZWItYXNzZW1ibHkuaHRtbCIpOworICAg
IDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvbG9hZF93
YXNtLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvcmVzb3VyY2VzL2xvYWRfd2FzbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjI4NmRlMzlkYWQ2NzM3
Njc5NDdlNjA1NjQwYmFkZTdjNzJhOGZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL2xvYWRf
d2FzbS5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBjcmVhdGVXYXNtTW9kdWxlKCkgewor
ICAgIGxldCBidWlsZGVyID0gbmV3IEJ1aWxkZXIoKTsKKyAgICBidWlsZGVyID0gYnVpbGRlci5U
eXBlKCkuRW5kKCkKKyAgICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkKKyAgICAgICAgLkV4cG9ydCgp
LkZ1bmN0aW9uKCJjYWxjIikuRW5kKCkKKyAgICAgICAgLkNvZGUoKQorICAgICAgICAgICAgLkZ1
bmN0aW9uKCJjYWxjIiwgeyBwYXJhbXM6IFsiaTMyIl0sIHJldDogImkzMiIgfSkKKyAgICAgICAg
ICAgICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgICAgICAgICAuR2V0TG9jYWwoMCkKKyAgICAg
ICAgICAgICAgICAuSTMyQWRkKCk7CisKKyAgICBjb25zdCBjb3VudCA9IDcwMDA7CisgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgIGJ1aWxkZXIgPSBidWlsZGVy
LkdldExvY2FsKDApLkkzMkFkZCgpOworICAgIH0KKyAgICBidWlsZGVyID0gYnVpbGRlci5SZXR1
cm4oKS5FbmQoKS5FbmQoKTsKKworICAgIHJldHVybiBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJ1
aWxkZXIuV2ViQXNzZW1ibHkoKS5nZXQoKSk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvcmVzb3VyY2VzL3J1bi13ZWItYXNzZW1ibHkuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9ydW4t
d2ViLWFzc2VtYmx5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZmYTlhYmI5ZGFhN2YxYTlhNWExMDI1MjA3
OGRmNWUzZmFhYmY0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9ydW4td2ViLWFzc2VtYmx5
Lmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1TZWN1cml0eS1Qb2xpY3kiIGNvbnRlbnQ9InNjcmlw
dC1zcmMgJ3NlbGYnICdub25jZS10ZXN0JyAndW5zYWZlLWV2YWwnOyI+CisgICAgPHNjcmlwdCBz
cmM9Indhc20tYnVpbGRlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9ImxvYWRfd2Fz
bS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8c2NyaXB0IG5vbmNlPSJ0ZXN0
Ij4KKyAgICAgICAgZnVuY3Rpb24gbG9hZFdhc20oKSB7CisgICAgICAgICAgICB0cnkgeworICAg
ICAgICAgICAgICAgIHZhciBtb2QgPSBjcmVhdGVXYXNtTW9kdWxlKCk7CisgICAgICAgICAgICAg
ICAgaSA9IG5ldyBXZWJBc3NlbWJseS5JbnN0YW5jZShtb2QpCisgICAgICAgICAgICAgICAgdmFy
IHZhbHVlID0gaS5leHBvcnRzLmNhbGMoMSk7CisgICAgICAgICAgICAgICAgYWxlcnQoYFBBU1M6
IHdhc20gcmVzdWx0IGlzICR7dmFsdWV9YCk7CisgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikg
eworICAgICAgICAgICAgICAgIGFsZXJ0KCJGQUlMIik7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgbG9hZFdhc20oKTsKKyAgICA8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3dhc20tYnVpbGRlci5q
cyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3Jlc291cmNlcy93YXNtLWJ1aWxkZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA5ZWE4ODY4Nzg5YzcxODZk
NTU4ZjBhMmRiNGNjMDg1OWU1ZGQxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy93YXNtLWJ1
aWxkZXIuanMKQEAgLTAsMCArMSwxODA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworY29uc3QgX2ZhaWwgPSAobXNnLCBleHRyYSkgPT4geworICAgIHRo
cm93IG5ldyBFcnJvcihtc2cgKyAoZXh0cmEgPyAiOiAiICsgZXh0cmEgOiAiIikpOworfTsKKwor
Y29uc3QgYXNzZXJ0ID0ge307CisKK2NvbnN0IGlzTm90QSA9IGFzc2VydC5pc05vdEEgPSAodiwg
dCwgbXNnKSA9PiB7CisgICAgaWYgKHR5cGVvZiB2ID09PSB0KQorICAgICAgICBfZmFpbChgU2hv
dWxkbid0IGJlICR7dH1gLCBtc2cpOworfTsKKworY29uc3QgaXNBID0gYXNzZXJ0LmlzQSA9ICh2
LCB0LCBtc2cpID0+IHsKKyAgICBpZiAodHlwZW9mIHYgIT09IHQpCisgICAgICAgIF9mYWlsKGBT
aG91bGQgYmUgJHt0fSwgZ290ICR7dHlwZW9mKHYpfWAsIG1zZyk7Cit9OworCitjb25zdCBpc05v
dFVuZGVmID0gYXNzZXJ0LmlzTm90VW5kZWYgPSAodiwgbXNnKSA9PiBpc05vdEEodiwgInVuZGVm
aW5lZCIsIG1zZyk7Cithc3NlcnQuaXNVbmRlZiA9ICh2LCBtc2cpID0+IGlzQSh2LCAidW5kZWZp
bmVkIiwgbXNnKTsKK2Fzc2VydC5ub3RPYmplY3QgPSAodiwgbXNnKSA9PiBpc05vdEEodiwgIm9i
amVjdCIsIG1zZyk7Citjb25zdCBpc09iamVjdCA9IGFzc2VydC5pc09iamVjdCA9ICh2LCBtc2cp
ID0+IGlzQSh2LCAib2JqZWN0IiwgbXNnKTsKK2Fzc2VydC5ub3RTdHJpbmcgPSAodiwgbXNnKSA9
PiBpc05vdEEodiwgInN0cmluZyIsIG1zZyk7Cithc3NlcnQuaXNTdHJpbmcgPSAodiwgbXNnKSA9
PiBpc0EodiwgInN0cmluZyIsIG1zZyk7Cithc3NlcnQubm90TnVtYmVyID0gKHYsIG1zZykgPT4g
aXNOb3RBKHYsICJudW1iZXIiLCBtc2cpOworYXNzZXJ0LmlzTnVtYmVyID0gKHYsIG1zZykgPT4g
aXNBKHYsICJudW1iZXIiLCBtc2cpOworYXNzZXJ0Lm5vdEZ1bmN0aW9uID0gKHYsIG1zZykgPT4g
aXNOb3RBKHYsICJmdW5jdGlvbiIsIG1zZyk7Cithc3NlcnQuaXNGdW5jdGlvbiA9ICh2LCBtc2cp
ID0+IGlzQSh2LCAiZnVuY3Rpb24iLCBtc2cpOworCithc3NlcnQuaGFzT2JqZWN0UHJvcGVydHkg
PSAobywgcCwgbXNnKSA9PiB7CisgICAgaXNPYmplY3QobywgbXNnKTsKKyAgICBpc05vdFVuZGVm
KG9bcF0sIG1zZywgYGV4cGVjdGVkIG9iamVjdCB0byBoYXZlIHByb3BlcnR5ICR7cH1gKTsKK307
CisKK2Fzc2VydC5pc0FycmF5ID0gKHYsIG1zZykgPT4geworICAgIGlmICghQXJyYXkuaXNBcnJh
eSh2KSkKKyAgICAgICAgX2ZhaWwoYEV4cGVjdGVkIGFuIGFycmF5LCBnb3QgJHt0eXBlb2Yodil9
YCwgbXNnKTsKK307CisKK2Fzc2VydC5pc05vdEFycmF5ID0gKHYsIG1zZykgPT4geworICAgIGlm
IChBcnJheS5pc0FycmF5KHYpKQorICAgICAgICBfZmFpbChgRXhwZWN0ZWQgdG8gbm90IGJlIGFu
IGFycmF5YCwgbXNnKTsKK307CisKK2Fzc2VydC50cnV0aHkgPSAodiwgbXNnKSA9PiB7CisgICAg
aWYgKCF2KQorICAgICAgICBfZmFpbChgRXhwZWN0ZWQgdHJ1dGh5YCwgbXNnKTsKK307CisKK2Fz
c2VydC5mYWxzeSA9ICh2LCBtc2cpID0+IHsKKyAgICBpZiAodikKKyAgICAgICAgX2ZhaWwoYEV4
cGVjdGVkIGZhbHN5YCwgbXNnKTsKK307CisKK2Fzc2VydC5lcSA9IChsaHMsIHJocywgbXNnKSA9
PiB7CisgICAgaWYgKHR5cGVvZiBsaHMgIT09IHR5cGVvZiByaHMpCisgICAgICAgIF9mYWlsKGBO
b3QgdGhlIHNhbWU6ICIke2xoc30iIGFuZCAiJHtyaHN9ImAsIG1zZyk7CisgICAgaWYgKEFycmF5
LmlzQXJyYXkobGhzKSAmJiBBcnJheS5pc0FycmF5KHJocykgJiYgKGxocy5sZW5ndGggPT09IHJo
cy5sZW5ndGgpKSB7CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpICE9PSBsaHMubGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICBlcShsaHNbaV0sIHJoc1tpXSwgbXNnKTsKKyAgICB9IGVsc2UgaWYg
KGxocyAhPT0gcmhzKSB7CisgICAgICAgIGlmICh0eXBlb2YgbGhzID09PSAibnVtYmVyIiAmJiBp
c05hTihsaHMpICYmIGlzTmFOKHJocykpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIF9m
YWlsKGBOb3QgdGhlIHNhbWU6ICIke2xoc30iIGFuZCAiJHtyaHN9ImAsIG1zZyk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgaWYgKHR5cGVvZiBsaHMgPT09ICJudW1iZXIiICYmICgxLjAgLyBsaHMg
IT09IDEuMCAvIHJocykpIC8vIERpc3Rpbmd1aXNoIC0wLjAgZnJvbSAwLjAuCisgICAgICAgICAg
ICBfZmFpbChgTm90IHRoZSBzYW1lOiAiJHtsaHN9IiBhbmQgIiR7cmhzfSJgLCBtc2cpOworICAg
IH0KK307CisKK2NvbnN0IGNhbm9uaWNhbGl6ZUkzMiA9IChudW1iZXIpID0+IHsKKyAgICBpZiAo
TWF0aC5yb3VuZChudW1iZXIpID09PSBudW1iZXIgJiYgbnVtYmVyID49IDIgKiogMzEpCisgICAg
ICAgIG51bWJlciA9IG51bWJlciAtIDIgKiogMzI7CisgICAgcmV0dXJuIG51bWJlcjsKK30KKwor
YXNzZXJ0LmVxSTMyID0gKGxocywgcmhzLCBtc2cpID0+IHsKKyAgICByZXR1cm4gZXEoY2Fub25p
Y2FsaXplSTMyKGxocyksIGNhbm9uaWNhbGl6ZUkzMihyaHMpLCBtc2cpOworfTsKKworYXNzZXJ0
LmdlID0gKGxocywgcmhzLCBtc2cpID0+IHsKKyAgICBpc05vdFVuZGVmKGxocyk7CisgICAgaXNO
b3RVbmRlZihyaHMpOworICAgIGlmICghKGxocyA+PSByaHMpKQorICAgICAgICBfZmFpbChgRXhw
ZWN0ZWQ6ICIke2xoc30iIDwgIiR7cmhzfSJgLCBtc2cpOworfTsKKworYXNzZXJ0LmxlID0gKGxo
cywgcmhzLCBtc2cpID0+IHsKKyAgICBpc05vdFVuZGVmKGxocyk7CisgICAgaXNOb3RVbmRlZihy
aHMpOworICAgIGlmICghKGxocyA8PSByaHMpKQorICAgICAgICBfZmFpbChgRXhwZWN0ZWQ6ICIk
e2xoc30iID4gIiR7cmhzfSJgLCBtc2cpOworfTsKKworY29uc3QgX3Rocm93cyA9IChmdW5jLCB0
eXBlLCBtZXNzYWdlLCAuLi5hcmdzKSA9PiB7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYyguLi5h
cmdzKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGlmIChlIGluc3RhbmNlb2YgdHlwZSkg
eworICAgICAgICAgICAgaWYgKGUubWVzc2FnZSA9PT0gbWVzc2FnZSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZTsKKyAgICAgICAgICAgIC8vIElnbm9yZSBzb3VyY2UgaW5mb3JtYXRpb24gYXQg
dGhlIGVuZCBvZiB0aGUgZXJyb3IgbWVzc2FnZSBpZiB0aGUKKyAgICAgICAgICAgIC8vIGV4cGVj
dGVkIG1lc3NhZ2UgZGlkbid0IHNwZWNpZnkgdGhhdCBpbmZvcm1hdGlvbi4gU29tZXRpbWVzIGl0
CisgICAgICAgICAgICAvLyBjaGFuZ2VzLCBvciBpdCdzIHRyaWNreSB0byBnZXQganVzdCByaWdo
dC4KKyAgICAgICAgICAgIGNvbnN0IGV2YWx1YXRpbmdJbmRleCA9IGUubWVzc2FnZS5pbmRleE9m
KCIgKGV2YWx1YXRpbmcgJyIpOworICAgICAgICAgICAgaWYgKGV2YWx1YXRpbmdJbmRleCAhPT0g
LTEpIHsKKyAgICAgICAgICAgICAgICBjb25zdCBjbGVhbk1lc3NhZ2UgPSBlLm1lc3NhZ2Uuc3Vi
c3RyaW5nKDAsIGV2YWx1YXRpbmdJbmRleCk7CisgICAgICAgICAgICAgICAgaWYgKGNsZWFuTWVz
c2FnZSA9PT0gbWVzc2FnZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICAgICAgX2ZhaWwoYEV4cGVjdGVkIHRvIHRocm93IGEgJHt0
eXBlLm5hbWV9IHdpdGggbWVzc2FnZSAiJHttZXNzYWdlfSIsIGdvdCAke2UubmFtZX0gd2l0aCBt
ZXNzYWdlICIke2UubWVzc2FnZX0iYCk7CisgICAgfQorICAgIF9mYWlsKGBFeHBlY3RlZCB0byB0
aHJvdyBhICR7dHlwZS5uYW1lfSB3aXRoIG1lc3NhZ2UgIiR7bWVzc2FnZX0iYCk7Cit9OworCitj
b25zdCBfaW5zdGFuY2VvZiA9IChvYmosIHR5cGUsIG1zZykgPT4geworICAgIGlmICghKG9iaiBp
bnN0YW5jZW9mIHR5cGUpKQorICAgICAgICBfZmFpbChgRXhwZWN0ZWQgYSAke3R5cGVvZih0eXBl
KX0sIGdvdCAke3R5cGVvZiBvYmp9YCk7Cit9OworCisvLyBVc2UgdW5kZXJzY29yZSBuYW1lcyB0
byBhdm9pZCBjbGFzaGluZyB3aXRoIGJ1aWx0aW4gbmFtZXMuCithc3NlcnQudGhyb3dzID0gX3Ro
cm93czsKK2Fzc2VydC5pbnN0YW5jZW9mID0gX2luc3RhbmNlb2Y7CisKK2NvbnN0IGFzeW5jVGVz
dEltcGwgPSAocHJvbWlzZSwgdGhlbkZ1bmMsIGNhdGNoRnVuYykgPT4geworICAgIGFzeW5jVGVz
dFN0YXJ0KDEpOworICAgIHByb21pc2UudGhlbih0aGVuRnVuYykuY2F0Y2goY2F0Y2hGdW5jKTsK
K307CisKK2NvbnN0IHByaW50RXhuID0gKGUpID0+IHsKKyAgICBwcmludCgiRmFpbGVkOiAiLCBl
KTsKKyAgICBwcmludChlLnN0YWNrKTsKK307CisKK2Fzc2VydC5hc3luY1Rlc3QgPSAocHJvbWlz
ZSkgPT4gYXN5bmNUZXN0SW1wbChwcm9taXNlLCBhc3luY1Rlc3RQYXNzZWQsIHByaW50RXhuKTsK
K2Fzc2VydC5hc3luY1Rlc3RFcSA9IChwcm9taXNlLCBleHBlY3RlZCkgPT4geworICAgIGNvbnN0
IHRoZW5DaGVjayA9ICh2YWx1ZSkgPT4geworICAgICAgICBpZiAodmFsdWUgPT09IGV4cGVjdGVk
KQorICAgICAgICAgICAgcmV0dXJuIGFzeW5jVGVzdFBhc3NlZCgpOworICAgICAgICBwcmludCgi
RmFpbGVkOiBnb3QgIiwgdmFsdWUsICIgYnV0IGV4cGVjdGVkICIsIGV4cGVjdGVkKTsKKworICAg
IH0KKyAgICBhc3luY1Rlc3RJbXBsKHByb21pc2UsIHRoZW5DaGVjaywgcHJpbnRFeG4pOworfTsK
KworY29uc3QgV0FTTV9KU09OID0gYAoreworICAgICJjb21tZW50cyI6IFsiVGhpcyBmaWxlIGRl
c2NyaWJlcyB0aGUgV2ViQXNzZW1ibHkgSVNBLiIsCisgICAgICAgICAgICAgICAgICJTY3JpcHRz
IGluIHRoaXMgZm9sZGVyIGF1dG8tZ2VuZXJhdGUgQysrIGNvZGUgZm9yIEphdmFTY3JpcHRDb3Jl
IGFzIHdlbGwgYXMgdGhlIHRlc3RpbmcgRFNMIHdoaWNoIFdlYktpdCdzIFdlYkFzc2VtYmx5IHRl
c3RzIHVzZS4iCisgICAgICAgICAgICAgICAgXSwKKyAgICAicHJlYW1ibGUiOiBbCisgICAgICAg
IHsgIm5hbWUiOiAibWFnaWMgbnVtYmVyIiwgInR5cGUiOiAidWludDMyIiwgInZhbHVlIjogMTgz
NjI3ODAxNiwgImRlc2NyaXB0aW9uIjogIk5VTEwgY2hhcmFjdGVyIGZvbGxvd2VkIGJ5ICdhc20n
IiB9LAorICAgICAgICB7ICJuYW1lIjogInZlcnNpb24iLCAgICAgICJ0eXBlIjogInVpbnQzMiIs
ICJ2YWx1ZSI6ICAgICAgICAgIDEsICJkZXNjcmlwdGlvbiI6ICJWZXJzaW9uIG51bWJlciIgfQor
ICAgIF0sCisgICAgInR5cGUiIDogeworICAgICAgICAiaTMyIjogICAgIHsgInR5cGUiOiAidmFy
aW50NyIsICJ2YWx1ZSI6ICAtMSwgImIzdHlwZSI6ICJCMzo6SW50MzIiIH0sCisgICAgICAgICJp
NjQiOiAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0yLCAiYjN0eXBlIjogIkIz
OjpJbnQ2NCIgfSwKKyAgICAgICAgImYzMiI6ICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFs
dWUiOiAgLTMsICJiM3R5cGUiOiAiQjM6OkZsb2F0IiB9LAorICAgICAgICAiZjY0IjogICAgIHsg
InR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtNCwgImIzdHlwZSI6ICJCMzo6RG91YmxlIiB9
LAorICAgICAgICAiYW55ZnVuYyI6IHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6IC0xNiwg
ImIzdHlwZSI6ICJCMzo6Vm9pZCIgfSwKKyAgICAgICAgImZ1bmMiOiAgICB7ICJ0eXBlIjogInZh
cmludDciLCAidmFsdWUiOiAtMzIsICJiM3R5cGUiOiAiQjM6OlZvaWQiIH0sCisgICAgICAgICJ2
b2lkIjogICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogLTY0LCAiYjN0eXBlIjogIkIz
OjpWb2lkIiB9CisgICAgfSwKKyAgICAidmFsdWVfdHlwZSI6IFsiaTMyIiwgImk2NCIsICJmMzIi
LCAiZjY0Il0sCisgICAgImJsb2NrX3R5cGUiOiBbImkzMiIsICJpNjQiLCAiZjMyIiwgImY2NCIs
ICJ2b2lkIl0sCisgICAgImVsZW1fdHlwZSI6IFsiYW55ZnVuYyJdLAorICAgICJleHRlcm5hbF9r
aW5kIjogeworICAgICAgICAiRnVuY3Rpb24iOiB7ICJ0eXBlIjogInVpbnQ4IiwgInZhbHVlIjog
MCB9LAorICAgICAgICAiVGFibGUiOiAgICB7ICJ0eXBlIjogInVpbnQ4IiwgInZhbHVlIjogMSB9
LAorICAgICAgICAiTWVtb3J5IjogICB7ICJ0eXBlIjogInVpbnQ4IiwgInZhbHVlIjogMiB9LAor
ICAgICAgICAiR2xvYmFsIjogICB7ICJ0eXBlIjogInVpbnQ4IiwgInZhbHVlIjogMyB9CisgICAg
fSwKKyAgICAic2VjdGlvbiIgOiB7CisgICAgICAgICJUeXBlIjogICAgIHsgInR5cGUiOiAidmFy
dWludDciLCAidmFsdWUiOiAgMSwgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9uIHNpZ25hdHVyZSBk
ZWNsYXJhdGlvbnMiIH0sCisgICAgICAgICJJbXBvcnQiOiAgIHsgInR5cGUiOiAidmFydWludDci
LCAidmFsdWUiOiAgMiwgImRlc2NyaXB0aW9uIjogIkltcG9ydCBkZWNsYXJhdGlvbnMiIH0sCisg
ICAgICAgICJGdW5jdGlvbiI6IHsgInR5cGUiOiAidmFydWludDciLCAidmFsdWUiOiAgMywgImRl
c2NyaXB0aW9uIjogIkZ1bmN0aW9uIGRlY2xhcmF0aW9ucyIgfSwKKyAgICAgICAgIlRhYmxlIjog
ICAgeyAidHlwZSI6ICJ2YXJ1aW50NyIsICJ2YWx1ZSI6ICA0LCAiZGVzY3JpcHRpb24iOiAiSW5k
aXJlY3QgZnVuY3Rpb24gdGFibGUgYW5kIG90aGVyIHRhYmxlcyIgfSwKKyAgICAgICAgIk1lbW9y
eSI6ICAgeyAidHlwZSI6ICJ2YXJ1aW50NyIsICJ2YWx1ZSI6ICA1LCAiZGVzY3JpcHRpb24iOiAi
TWVtb3J5IGF0dHJpYnV0ZXMiIH0sCisgICAgICAgICJHbG9iYWwiOiAgIHsgInR5cGUiOiAidmFy
dWludDciLCAidmFsdWUiOiAgNiwgImRlc2NyaXB0aW9uIjogIkdsb2JhbCBkZWNsYXJhdGlvbnMi
IH0sCisgICAgICAgICJFeHBvcnQiOiAgIHsgInR5cGUiOiAidmFydWludDciLCAidmFsdWUiOiAg
NywgImRlc2NyaXB0aW9uIjogIkV4cG9ydHMiIH0sCisgICAgICAgICJTdGFydCI6ICAgIHsgInR5
cGUiOiAidmFydWludDciLCAidmFsdWUiOiAgOCwgImRlc2NyaXB0aW9uIjogIlN0YXJ0IGZ1bmN0
aW9uIGRlY2xhcmF0aW9uIiB9LAorICAgICAgICAiRWxlbWVudCI6ICB7ICJ0eXBlIjogInZhcnVp
bnQ3IiwgInZhbHVlIjogIDksICJkZXNjcmlwdGlvbiI6ICJFbGVtZW50cyBzZWN0aW9uIiB9LAor
ICAgICAgICAiQ29kZSI6ICAgICB7ICJ0eXBlIjogInZhcnVpbnQ3IiwgInZhbHVlIjogMTAsICJk
ZXNjcmlwdGlvbiI6ICJGdW5jdGlvbiBib2RpZXMgKGNvZGUpIiB9LAorICAgICAgICAiRGF0YSI6
ICAgICB7ICJ0eXBlIjogInZhcnVpbnQ3IiwgInZhbHVlIjogMTEsICJkZXNjcmlwdGlvbiI6ICJE
YXRhIHNlZ21lbnRzIiB9CisgICAgfSwKKyAgICAib3Bjb2RlIjogeworICAgICAgICAidW5yZWFj
aGFibGUiOiAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbnRyb2wiLCAgICAidmFsdWUiOiAgIDAs
ICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbXSwgICAgICAgICAgICAgICAg
ICAgICAgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogInRyYXAgaW1tZWRpYXRlbHkiIH0sCisgICAgICAgICJibG9jayI6ICAgICAg
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29udHJvbCIsICAgICJ2YWx1ZSI6ICAgMiwgInJldHVy
biI6IFsiY29udHJvbCJdLCAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAi
aW1tZWRpYXRlIjogW3sibmFtZSI6ICJzaWciLCAidHlwZSI6ICJibG9ja190eXBlIn1dLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiYmVnaW4gYSBzZXF1ZW5jZSBvZiBleHByZXNzaW9ucywgeWllbGRpbmcgMCBvciAxIHZh
bHVlcyIgfSwKKyAgICAgICAgImxvb3AiOiAgICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJj
b250cm9sIiwgICAgInZhbHVlIjogICAzLCAicmV0dXJuIjogWyJjb250cm9sIl0sICAicGFyYW1l
dGVyIjogW10sICAgICAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInNp
ZyIsICJ0eXBlIjogImJsb2NrX3R5cGUifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJiZWdpbiBhIGJsb2NrIHdoaWNo
IGNhbiBhbHNvIGZvcm0gY29udHJvbCBmbG93IGxvb3BzIiB9LAorICAgICAgICAiaWYiOiAgICAg
ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbnRyb2wiLCAgICAidmFsdWUiOiAgIDQsICJy
ZXR1cm4iOiBbImNvbnRyb2wiXSwgICJwYXJhbWV0ZXIiOiBbImJvb2wiXSwgICAgICAgICAgICAg
ICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAic2lnIiwgInR5cGUiOiAiYmxvY2tfdHlwZSJ9XSwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogImJlZ2luIGlmIGV4cHJlc3Npb24iIH0sCisgICAgICAgICJlbHNlIjogICAgICAg
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29udHJvbCIsICAgICJ2YWx1ZSI6ICAgNSwgInJldHVy
biI6IFsiY29udHJvbCJdLCAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAi
aW1tZWRpYXRlIjogW10sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiYmVnaW4gZWxzZSBleHByZXNzaW9uIG9mIGlmIiB9LAorICAgICAgICAic2VsZWN0Ijog
ICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbnRyb2wiLCAgICAidmFsdWUiOiAgMjcsICJy
ZXR1cm4iOiBbInByZXYiXSwgICAgICJwYXJhbWV0ZXIiOiBbImFueSIsICJwcmV2IiwgImJvb2wi
XSwgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogInNlbGVjdCBvbmUgb2YgdHdvIHZhbHVlcyBiYXNlZCBvbiBjb25kaXRpb24iIH0s
CisgICAgICAgICJiciI6ICAgICAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29udHJvbCIs
ICAgICJ2YWx1ZSI6ICAxMiwgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFtd
LCAgICAgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJyZWxhdGl2ZV9k
ZXB0aCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYnJlYWsgdGhhdCB0YXJnZXRzIGFuIG91dGVy
IG5lc3RlZCBibG9jayIgfSwKKyAgICAgICAgImJyX2lmIjogICAgICAgICAgICAgICB7ICJjYXRl
Z29yeSI6ICJjb250cm9sIiwgICAgInZhbHVlIjogIDEzLCAicmV0dXJuIjogW10sICAgICAgICAg
ICAicGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJu
YW1lIjogInJlbGF0aXZlX2RlcHRoIiwgInR5cGUiOiAidmFydWludDMyIn1dLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJjb25kaXRpb25h
bCBicmVhayB0aGF0IHRhcmdldHMgYW4gb3V0ZXIgbmVzdGVkIGJsb2NrIiB9LAorICAgICAgICAi
YnJfdGFibGUiOiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbnRyb2wiLCAgICAidmFsdWUi
OiAgMTQsICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbXSwgICAgICAgICAg
ICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidGFyZ2V0X2NvdW50IiwgICAidHlw
ZSI6ICJ2YXJ1aW50MzIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIm51bWJlciBvZiBlbnRyaWVzIGluIHRoZSB0YXJnZXRfdGFibGUi
fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJuYW1lIjogInRhcmdldF90
YWJsZSIsICAgInR5cGUiOiAidmFydWludDMyKiIsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJ0YXJnZXQgZW50cmllcyB0aGF0IGluZGlj
YXRlIGFuIG91dGVyIGJsb2NrIG9yIGxvb3AgdG8gd2hpY2ggdG8gYnJlYWsifSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJuYW1lIjogImRlZmF1bHRfdGFyZ2V0IiwgInR5
cGUiOiAidmFydWludDMyIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJhbiBvdXRlciBibG9jayBvciBsb29wIHRvIHdoaWNoIHRvIGJy
ZWFrIGluIHRoZSBkZWZhdWx0IGNhc2UifV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
YnJhbmNoIHRhYmxlIGNvbnRyb2wgZmxvdyBjb25zdHJ1Y3QiIH0sCisgICAgICAgICJyZXR1cm4i
OiAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29udHJvbCIsICAgICJ2YWx1ZSI6ICAxNSwg
InJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAg
ICAgICAgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogInJldHVybiB6ZXJvIG9yIG9uZSB2YWx1ZSBmcm9tIHRoaXMgZnVuY3Rpb24i
IH0sCisgICAgICAgICJkcm9wIjogICAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29udHJv
bCIsICAgICJ2YWx1ZSI6ICAyNiwgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6
IFsiYW55Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogImlnbm9yZSB2YWx1ZSIgfSwKKyAgICAg
ICAgIm5vcCI6ICAgICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb250cm9sIiwgICAgInZh
bHVlIjogICAxLCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1ldGVyIjogW10sICAgICAg
ICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAibm8gb3BlcmF0aW9uIiB9LAorICAgICAgICAiZW5kIjog
ICAgICAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImNvbnRyb2wiLCAgICAidmFsdWUiOiAgMTEs
ICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbXSwgICAgICAgICAgICAgICAg
ICAgICAgICJpbW1lZGlhdGUiOiBbXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJlbmQgYSBibG9jaywgbG9vcCwgb3IgaWYiIH0sCisgICAgICAgICJpMzIu
Y29uc3QiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICA2
NSwgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidmFsdWUiLCAgICAgICAgICAidHlwZSI6
ICJ2YXJpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogImEgY29uc3RhbnQgdmFsdWUgaW50ZXJwcmV0ZWQgYXMgaTMyIiB9LAor
ICAgICAgICAiaTY0LmNvbnN0IjogICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAg
ICAidmFsdWUiOiAgNjYsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbXSwg
ICAgICAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInZhbHVlIiwgICAg
ICAgICAgInR5cGUiOiAidmFyaW50NjQifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJhIGNvbnN0YW50IHZhbHVlIGludGVycHJldGVk
IGFzIGk2NCIgfSwKKyAgICAgICAgImY2NC5jb25zdCI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6
ICJzcGVjaWFsIiwgICAgInZhbHVlIjogIDY4LCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAicGFy
YW1ldGVyIjogW10sICAgICAgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6
ICJ2YWx1ZSIsICAgICAgICAgICJ0eXBlIjogImRvdWJsZSJ9XSwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCB2YWx1
ZSBpbnRlcnByZXRlZCBhcyBmNjQiIH0sCisgICAgICAgICJmMzIuY29uc3QiOiAgICAgICAgICAg
eyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICA2NywgInJldHVybiI6IFsiZjMy
Il0sICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0
ZSI6IFt7Im5hbWUiOiAidmFsdWUiLCAgICAgICAgICAidHlwZSI6ICJmbG9hdCJ9XSwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYSBj
b25zdGFudCB2YWx1ZSBpbnRlcnByZXRlZCBhcyBmMzIiIH0sCisgICAgICAgICJnZXRfbG9jYWwi
OiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICAzMiwgInJl
dHVybiI6IFsiYW55Il0sICAgICJwYXJhbWV0ZXIiOiBbXSwgICAgICAgICAgICAgICAgICAgICAg
ICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImxvY2FsX2luZGV4IiwgICAgInR5cGUiOiAidmFydWlu
dDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJyZWFkIGEgbG9jYWwgdmFyaWFibGUgb3IgcGFyYW1ldGVyIiB9LAorICAgICAgICAi
c2V0X2xvY2FsIjogICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUi
OiAgMzMsICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImFueSJdLCAgICAg
ICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJsb2NhbF9pbmRleCIsICAgICJ0eXBl
IjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAid3JpdGUgYSBsb2NhbCB2YXJpYWJsZSBvciBwYXJhbWV0ZXIiIH0s
CisgICAgICAgICJ0ZWVfbG9jYWwiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIs
ICAgICJ2YWx1ZSI6ICAzNCwgInJldHVybiI6IFsiYW55Il0sICAgICAicGFyYW1ldGVyIjogWyJh
bnkiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJsb2NhbF9pbmRl
eCIsICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAid3JpdGUgYSBsb2NhbCB2YXJpYWJsZSBvciBw
YXJhbWV0ZXIgYW5kIHJldHVybiB0aGUgc2FtZSB2YWx1ZSIgfSwKKyAgICAgICAgImdldF9nbG9i
YWwiOiAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjogIDM1LCAi
cmV0dXJuIjogWyJhbnkiXSwgICAicGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAgICAgICAg
ICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJnbG9iYWxfaW5kZXgiLCAgICJ0eXBlIjogInZhcnVp
bnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAicmVhZCBhIGdsb2JhbCB2YXJpYWJsZSIgfSwKKyAgICAgICAgInNldF9nbG9iYWwi
OiAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjogIDM2LCAicmV0
dXJuIjogW10sICAgICAgICAgInBhcmFtZXRlciI6IFsiYW55Il0sICAgICAgICAgICAgICAgImlt
bWVkaWF0ZSI6IFt7Im5hbWUiOiAiZ2xvYmFsX2luZGV4IiwgICAidHlwZSI6ICJ2YXJ1aW50MzIi
fV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIndyaXRlIGEgZ2xvYmFsIHZhcmlhYmxlIiB9LAorICAgICAgICAiY2FsbCI6ICAgICAgICAg
ICAgICAgIHsgImNhdGVnb3J5IjogImNhbGwiLCAgICAgICAidmFsdWUiOiAgMTYsICJyZXR1cm4i
OiBbImNhbGwiXSwgICAgICJwYXJhbWV0ZXIiOiBbImNhbGwiXSwgICAgICAgICAgICAgICAgICJp
bW1lZGlhdGUiOiBbeyJuYW1lIjogImZ1bmN0aW9uX2luZGV4IiwgInR5cGUiOiAidmFydWludDMy
In1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJjYWxsIGEgZnVuY3Rpb24gYnkgaXRzIGluZGV4IiB9LAorICAgICAgICAiY2FsbF9pbmRp
cmVjdCI6ICAgICAgIHsgImNhdGVnb3J5IjogImNhbGwiLCAgICAgICAidmFsdWUiOiAgMTcsICJy
ZXR1cm4iOiBbImNhbGwiXSwgICAgICJwYXJhbWV0ZXIiOiBbImNhbGwiXSwgICAgICAgICAgICAg
ICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogInR5cGVfaW5kZXgiLCAgICAgInR5cGUiOiAidmFy
dWludDMyIn0sIHsibmFtZSI6ICJyZXNlcnZlZCIsICAgICAidHlwZSI6ICJ2YXJ1aW50MSJ9XSwg
ImRlc2NyaXB0aW9uIjogImNhbGwgYSBmdW5jdGlvbiBpbmRpcmVjdCB3aXRoIGFuIGV4cGVjdGVk
IHNpZ25hdHVyZSIgfSwKKyAgICAgICAgImkzMi5sb2FkOF9zIjogICAgICAgICB7ICJjYXRlZ29y
eSI6ICJtZW1vcnkiLCAgICAgInZhbHVlIjogIDQ0LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAi
cGFyYW1ldGVyIjogWyJhZGRyIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFt
ZSI6ICJmbGFncyIsICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zm
c2V0IiwgInR5cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAibG9hZCBmcm9tIG1l
bW9yeSIgfSwKKyAgICAgICAgImkzMi5sb2FkOF91IjogICAgICAgICB7ICJjYXRlZ29yeSI6ICJt
ZW1vcnkiLCAgICAgInZhbHVlIjogIDQ1LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1l
dGVyIjogWyJhZGRyIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJm
bGFncyIsICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0Iiwg
InR5cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAibG9hZCBmcm9tIG1lbW9yeSIg
fSwKKyAgICAgICAgImkzMi5sb2FkMTZfcyI6ICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1vcnki
LCAgICAgInZhbHVlIjogIDQ2LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjog
WyJhZGRyIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIs
ICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5cGUi
OiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAibG9hZCBmcm9tIG1lbW9yeSIgfSwKKyAg
ICAgICAgImkzMi5sb2FkMTZfdSI6ICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAgICAg
InZhbHVlIjogIDQ3LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJhZGRy
Il0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIsICAgICAg
ICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5cGUiOiAidmFy
dWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAibG9hZCBmcm9tIG1lbW9yeSIgfSwKKyAgICAgICAg
Imk2NC5sb2FkOF9zIjogICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVl
IjogIDQ4LCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJhZGRyIl0sICAg
ICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0
eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5cGUiOiAidmFydWludDMy
In1dLCAiZGVzY3JpcHRpb24iOiAibG9hZCBmcm9tIG1lbW9yeSIgfSwKKyAgICAgICAgImk2NC5s
b2FkOF91IjogICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVlIjogIDQ5
LCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJhZGRyIl0sICAgICAgICAg
ICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0eXBlIjog
InZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5cGUiOiAidmFydWludDMyIn1dLCAi
ZGVzY3JpcHRpb24iOiAibG9hZCBmcm9tIG1lbW9yeSIgfSwKKyAgICAgICAgImk2NC5sb2FkMTZf
cyI6ICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVlIjogIDUwLCAicmV0
dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJhZGRyIl0sICAgICAgICAgICAgICAg
ICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0eXBlIjogInZhcnVp
bnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3Jp
cHRpb24iOiAibG9hZCBmcm9tIG1lbW9yeSIgfSwKKyAgICAgICAgImk2NC5sb2FkMTZfdSI6ICAg
ICAgICB7ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVlIjogIDUxLCAicmV0dXJuIjog
WyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJhZGRyIl0sICAgICAgICAgICAgICAgICAiaW1t
ZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9
LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24i
OiAibG9hZCBmcm9tIG1lbW9yeSIgfSwKKyAgICAgICAgImk2NC5sb2FkMzJfcyI6ICAgICAgICB7
ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVlIjogIDUyLCAicmV0dXJuIjogWyJpNjQi
XSwgICAgICAicGFyYW1ldGVyIjogWyJhZGRyIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRl
IjogW3sibmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5h
bWUiOiAib2Zmc2V0IiwgInR5cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAibG9h
ZCBmcm9tIG1lbW9yeSIgfSwKKyAgICAgICAgImk2NC5sb2FkMzJfdSI6ICAgICAgICB7ICJjYXRl
Z29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVlIjogIDUzLCAicmV0dXJuIjogWyJpNjQiXSwgICAg
ICAicGFyYW1ldGVyIjogWyJhZGRyIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3si
bmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAi
b2Zmc2V0IiwgInR5cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAibG9hZCBmcm9t
IG1lbW9yeSIgfSwKKyAgICAgICAgImkzMi5sb2FkIjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6
ICJtZW1vcnkiLCAgICAgInZhbHVlIjogIDQwLCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFy
YW1ldGVyIjogWyJhZGRyIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6
ICJmbGFncyIsICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0
IiwgInR5cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAibG9hZCBmcm9tIG1lbW9y
eSIgfSwKKyAgICAgICAgImk2NC5sb2FkIjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1v
cnkiLCAgICAgInZhbHVlIjogIDQxLCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVy
IjogWyJhZGRyIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFn
cyIsICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5
cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAibG9hZCBmcm9tIG1lbW9yeSIgfSwK
KyAgICAgICAgImYzMi5sb2FkIjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAg
ICAgInZhbHVlIjogIDQyLCAicmV0dXJuIjogWyJmMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJh
ZGRyIl0sICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIsICAg
ICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5cGUiOiAi
dmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAibG9hZCBmcm9tIG1lbW9yeSIgfSwKKyAgICAg
ICAgImY2NC5sb2FkIjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAgICAgInZh
bHVlIjogIDQzLCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJhZGRyIl0s
ICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIsICAgICAgICAg
ICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5cGUiOiAidmFydWlu
dDMyIn1dLCAiZGVzY3JpcHRpb24iOiAibG9hZCBmcm9tIG1lbW9yeSIgfSwKKyAgICAgICAgImkz
Mi5zdG9yZTgiOiAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVlIjog
IDU4LCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1ldGVyIjogWyJhZGRyIiwgImkzMiJd
LCAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0eXBl
IjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5cGUiOiAidmFydWludDMyIn1d
LCAiZGVzY3JpcHRpb24iOiAic3RvcmUgdG8gbWVtb3J5IiB9LAorICAgICAgICAiaTMyLnN0b3Jl
MTYiOiAgICAgICAgIHsgImNhdGVnb3J5IjogIm1lbW9yeSIsICAgICAidmFsdWUiOiAgNTksICJy
ZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImFkZHIiLCAiaTMyIl0sICAgICAg
ICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdzIiwgICAgICAgICAgInR5cGUiOiAidmFy
dWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNj
cmlwdGlvbiI6ICJzdG9yZSB0byBtZW1vcnkiIH0sCisgICAgICAgICJpNjQuc3RvcmU4IjogICAg
ICAgICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA2MCwgInJldHVybiI6
IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFsiYWRkciIsICJpNjQiXSwgICAgICAgICAgImlt
bWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIi
fSwgeyJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9u
IjogInN0b3JlIHRvIG1lbW9yeSIgfSwKKyAgICAgICAgImk2NC5zdG9yZTE2IjogICAgICAgICB7
ICJjYXRlZ29yeSI6ICJtZW1vcnkiLCAgICAgInZhbHVlIjogIDYxLCAicmV0dXJuIjogW10sICAg
ICAgICAgICAicGFyYW1ldGVyIjogWyJhZGRyIiwgImk2NCJdLCAgICAgICAgICAiaW1tZWRpYXRl
IjogW3sibmFtZSI6ICJmbGFncyIsICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5h
bWUiOiAib2Zmc2V0IiwgInR5cGUiOiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAic3Rv
cmUgdG8gbWVtb3J5IiB9LAorICAgICAgICAiaTY0LnN0b3JlMzIiOiAgICAgICAgIHsgImNhdGVn
b3J5IjogIm1lbW9yeSIsICAgICAidmFsdWUiOiAgNjIsICJyZXR1cm4iOiBbXSwgICAgICAgICAg
ICJwYXJhbWV0ZXIiOiBbImFkZHIiLCAiaTY0Il0sICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJu
YW1lIjogImZsYWdzIiwgICAgICAgICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJv
ZmZzZXQiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJzdG9yZSB0byBt
ZW1vcnkiIH0sCisgICAgICAgICJpMzIuc3RvcmUiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAi
bWVtb3J5IiwgICAgICJ2YWx1ZSI6ICA1NCwgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFt
ZXRlciI6IFsiYWRkciIsICJpMzIiXSwgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAi
ZmxhZ3MiLCAgICAgICAgICAidHlwZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjogIm9mZnNldCIs
ICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgImRlc2NyaXB0aW9uIjogInN0b3JlIHRvIG1lbW9yeSIg
fSwKKyAgICAgICAgImk2NC5zdG9yZSI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJtZW1vcnki
LCAgICAgInZhbHVlIjogIDU1LCAicmV0dXJuIjogW10sICAgICAgICAgICAicGFyYW1ldGVyIjog
WyJhZGRyIiwgImk2NCJdLCAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIs
ICAgICAgICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9LCB7Im5hbWUiOiAib2Zmc2V0IiwgInR5cGUi
OiAidmFydWludDMyIn1dLCAiZGVzY3JpcHRpb24iOiAic3RvcmUgdG8gbWVtb3J5IiB9LAorICAg
ICAgICAiZjMyLnN0b3JlIjogICAgICAgICAgIHsgImNhdGVnb3J5IjogIm1lbW9yeSIsICAgICAi
dmFsdWUiOiAgNTYsICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImFkZHIi
LCAiZjMyIl0sICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImZsYWdzIiwgICAgICAg
ICAgInR5cGUiOiAidmFydWludDMyIn0sIHsibmFtZSI6ICJvZmZzZXQiLCAidHlwZSI6ICJ2YXJ1
aW50MzIifV0sICJkZXNjcmlwdGlvbiI6ICJzdG9yZSB0byBtZW1vcnkiIH0sCisgICAgICAgICJm
NjQuc3RvcmUiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAibWVtb3J5IiwgICAgICJ2YWx1ZSI6
ICA1NywgInJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFsiYWRkciIsICJmNjQi
XSwgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAiZmxhZ3MiLCAgICAgICAgICAidHlw
ZSI6ICJ2YXJ1aW50MzIifSwgeyJuYW1lIjogIm9mZnNldCIsICJ0eXBlIjogInZhcnVpbnQzMiJ9
XSwgImRlc2NyaXB0aW9uIjogInN0b3JlIHRvIG1lbW9yeSIgfSwKKyAgICAgICAgImN1cnJlbnRf
bWVtb3J5IjogICAgICB7ICJjYXRlZ29yeSI6ICJvcGVyYXRpb24iLCAgInZhbHVlIjogIDYzLCAi
cmV0dXJuIjogWyJzaXplIl0sICAgICAicGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAgICAg
ICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJmbGFncyIsICJ0eXBlIjogInZhcnVpbnQzMiJ9
XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJxdWVyeSB0
aGUgc2l6ZSBvZiBtZW1vcnkiIH0sCisgICAgICAgICJncm93X21lbW9yeSI6ICAgICAgICAgeyAi
Y2F0ZWdvcnkiOiAib3BlcmF0aW9uIiwgICJ2YWx1ZSI6ICA2NCwgInJldHVybiI6IFsic2l6ZSJd
LCAgICAgInBhcmFtZXRlciI6IFsic2l6ZSJdLCAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6
IFt7Im5hbWUiOiAiZmxhZ3MiLCAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiZ3JvdyB0aGUgc2l6ZSBvZiBtZW1vcnki
IH0sCisgICAgICAgICJpMzIuYWRkIjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGht
ZXRpYyIsICJ2YWx1ZSI6IDEwNiwgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6
IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJBZGQi
ICAgICAgICAgIH0sCisgICAgICAgICJpMzIuc3ViIjogICAgICAgICAgICAgeyAiY2F0ZWdvcnki
OiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEwNywgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBh
cmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNv
cCI6ICJTdWIiICAgICAgICAgIH0sCisgICAgICAgICJpMzIubXVsIjogICAgICAgICAgICAgeyAi
Y2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEwOCwgInJldHVybiI6IFsiaTMyIl0s
ICAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6
IFtdLCAiYjNvcCI6ICJNdWwiICAgICAgICAgIH0sCisgICAgICAgICJpMzIuZGl2X3MiOiAgICAg
ICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEwOSwgInJldHVybiI6
IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAgImlt
bWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICJpMzIuZGl2
X3UiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDExMCwg
InJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAg
ICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICJpMzIucmVtX3MiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1
ZSI6IDExMSwgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkz
MiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICJpMzIucmVtX3UiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRp
YyIsICJ2YWx1ZSI6IDExMiwgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsi
aTMyIiwgImkzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICJpMzIuYW5kIjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAi
YXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDExMywgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFt
ZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6
ICJCaXRBbmQiICAgICAgIH0sCisgICAgICAgICJpMzIub3IiOiAgICAgICAgICAgICAgeyAiY2F0
ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDExNCwgInJldHVybiI6IFsiaTMyIl0sICAg
ICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtd
LCAiYjNvcCI6ICJCaXRPciIgICAgICAgIH0sCisgICAgICAgICJpMzIueG9yIjogICAgICAgICAg
ICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDExNSwgInJldHVybiI6IFsi
aTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAgImltbWVk
aWF0ZSI6IFtdLCAiYjNvcCI6ICJCaXRYb3IiICAgICAgIH0sCisgICAgICAgICJpMzIuc2hsIjog
ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDExNiwgInJl
dHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAgICAg
ICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJTaGwiICAgICAgICAgIH0sCisgICAgICAgICJp
MzIuc2hyX3UiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6
IDExOCwgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkzMiJd
LCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJaU2hyIiAgICAgICAgIH0sCisg
ICAgICAgICJpMzIuc2hyX3MiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIs
ICJ2YWx1ZSI6IDExNywgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiaTMy
IiwgImkzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJTU2hyIiAgICAg
ICAgIH0sCisgICAgICAgICJpMzIucm90ciI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJp
dGhtZXRpYyIsICJ2YWx1ZSI6IDEyMCwgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRl
ciI6IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJS
b3RSIiAgICAgICAgIH0sCisgICAgICAgICJpMzIucm90bCI6ICAgICAgICAgICAgeyAiY2F0ZWdv
cnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDExOSwgInJldHVybiI6IFsiaTMyIl0sICAgICAg
InBhcmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAi
YjNvcCI6ICJSb3RMIiAgICAgICAgIH0sCisgICAgICAgICJpMzIuZXEiOiAgICAgICAgICAgICAg
eyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA3MCwgInJldHVybiI6IFsiYm9v
bCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAgImltbWVkaWF0
ZSI6IFtdLCAiYjNvcCI6ICJFcXVhbCIgICAgICAgIH0sCisgICAgICAgICJpMzIubmUiOiAgICAg
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA3MSwgInJldHVy
biI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJOb3RFcXVhbCIgICAgIH0sCisgICAgICAgICJpMzIu
bHRfcyI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA3
MiwgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJMZXNzVGhhbiIgICAgIH0sCisgICAg
ICAgICJpMzIubGVfcyI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2
YWx1ZSI6ICA3NiwgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwg
ImkzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJMZXNzRXF1YWwiICAg
IH0sCisgICAgICAgICJpMzIubHRfdSI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFy
aXNvbiIsICJ2YWx1ZSI6ICA3MywgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6
IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJCZWxv
dyIgICAgICAgIH0sCisgICAgICAgICJpMzIubGVfdSI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnki
OiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA3NywgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBh
cmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNv
cCI6ICJCZWxvd0VxdWFsIiAgIH0sCisgICAgICAgICJpMzIuZ3RfcyI6ICAgICAgICAgICAgeyAi
Y2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA3NCwgInJldHVybiI6IFsiYm9vbCJd
LCAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6
IFtdLCAiYjNvcCI6ICJHcmVhdGVyVGhhbiIgIH0sCisgICAgICAgICJpMzIuZ2VfcyI6ICAgICAg
ICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA3OCwgInJldHVybiI6
IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAgICAgICAgImlt
bWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJHcmVhdGVyRXF1YWwiIH0sCisgICAgICAgICJpMzIuZ3Rf
dSI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA3NSwg
InJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkzMiJdLCAgICAg
ICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJBYm92ZSIgICAgICAgIH0sCisgICAgICAg
ICJpMzIuZ2VfdSI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1
ZSI6ICA3OSwgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTMyIiwgImkz
MiJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJBYm92ZUVxdWFsIiAgIH0s
CisgICAgICAgICJpMzIuY2x6IjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRp
YyIsICJ2YWx1ZSI6IDEwMywgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsi
aTMyIl0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJDbHoiICAg
ICAgICAgIH0sCisgICAgICAgICJpMzIuY3R6IjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAi
YXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEwNCwgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFt
ZXRlciI6IFsiaTMyIl0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICJpMzIucG9wY250IjogICAgICAgICAgeyAiY2F0
ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEwNSwgInJldHVybiI6IFsiaTMyIl0sICAg
ICAgInBhcmFtZXRlciI6IFsiaTMyIl0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtd
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICJpMzIuZXF6IjogICAgICAgICAg
ICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA2OSwgInJldHVybiI6IFsi
Ym9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTMyIl0sICAgICAgICAgICAgICAgICAgImltbWVk
aWF0ZSI6IFtdLCAiYjNvcCI6ICJFcXVhbChpMzIoMCksIEAwKSIgfSwKKyAgICAgICAgImk2NC5h
ZGQiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTI0
LCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAiaTY0Il0sICAg
ICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkFkZCIgICAgICAgICAgfSwKKyAgICAg
ICAgImk2NC5zdWIiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZh
bHVlIjogMTI1LCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAi
aTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIlN1YiIgICAgICAgICAg
fSwKKyAgICAgICAgImk2NC5tdWwiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1l
dGljIiwgInZhbHVlIjogMTI2LCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjog
WyJpNjQiLCAiaTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIk11bCIg
ICAgICAgICAgfSwKKyAgICAgICAgImk2NC5kaXZfcyI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6
ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTI3LCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFy
YW1ldGVyIjogWyJpNjQiLCAiaTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10gICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImk2NC5kaXZfdSI6ICAgICAgICAgICB7ICJj
YXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTI4LCAicmV0dXJuIjogWyJpNjQiXSwg
ICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAiaTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjog
W10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImk2NC5yZW1fcyI6ICAgICAg
ICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTI5LCAicmV0dXJuIjog
WyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAiaTY0Il0sICAgICAgICAgICAiaW1t
ZWRpYXRlIjogW10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImk2NC5yZW1f
dSI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTMwLCAi
cmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAiaTY0Il0sICAgICAg
ICAgICAiaW1tZWRpYXRlIjogW10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
Imk2NC5hbmQiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVl
IjogMTMxLCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAiaTY0
Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkJpdEFuZCIgICAgICAgfSwK
KyAgICAgICAgImk2NC5vciI6ICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGlj
IiwgInZhbHVlIjogMTMyLCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJp
NjQiLCAiaTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkJpdE9yIiAg
ICAgICAgfSwKKyAgICAgICAgImk2NC54b3IiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJh
cml0aG1ldGljIiwgInZhbHVlIjogMTMzLCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1l
dGVyIjogWyJpNjQiLCAiaTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjog
IkJpdFhvciIgICAgICAgfSwKKyAgICAgICAgImk2NC5zaGwiOiAgICAgICAgICAgICB7ICJjYXRl
Z29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTM0LCAicmV0dXJuIjogWyJpNjQiXSwgICAg
ICAicGFyYW1ldGVyIjogWyJpNjQiLCAiaTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10s
ICJiM29wIjogIlNobChAMCwgVHJ1bmMoQDEpKSIgfSwKKyAgICAgICAgImk2NC5zaHJfdSI6ICAg
ICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTM2LCAicmV0dXJu
IjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAiaTY0Il0sICAgICAgICAgICAi
aW1tZWRpYXRlIjogW10sICJiM29wIjogIlpTaHIoQDAsIFRydW5jKEAxKSkiIH0sCisgICAgICAg
ICJpNjQuc2hyX3MiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1
ZSI6IDEzNSwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2
NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJTU2hyKEAwLCBUcnVuYyhA
MSkpIiB9LAorICAgICAgICAiaTY0LnJvdHIiOiAgICAgICAgICAgIHsgImNhdGVnb3J5IjogImFy
aXRobWV0aWMiLCAidmFsdWUiOiAxMzgsICJyZXR1cm4iOiBbImk2NCJdLCAgICAgICJwYXJhbWV0
ZXIiOiBbImk2NCIsICJpNjQiXSwgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAi
Um90UihAMCwgVHJ1bmMoQDEpKSIgfSwKKyAgICAgICAgImk2NC5yb3RsIjogICAgICAgICAgICB7
ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTM3LCAicmV0dXJuIjogWyJpNjQi
XSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiLCAiaTY0Il0sICAgICAgICAgICAiaW1tZWRpYXRl
IjogW10sICJiM29wIjogIlJvdEwoQDAsIFRydW5jKEAxKSkiIH0sCisgICAgICAgICJpNjQuZXEi
OiAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA4MSwg
InJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2NCJdLCAgICAg
ICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJFcXVhbCIgICAgICAgIH0sCisgICAgICAg
ICJpNjQubmUiOiAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1
ZSI6ICA4MiwgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2
NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJOb3RFcXVhbCIgICAgIH0s
CisgICAgICAgICJpNjQubHRfcyI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNv
biIsICJ2YWx1ZSI6ICA4MywgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsi
aTY0IiwgImk2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJMZXNzVGhh
biIgICAgIH0sCisgICAgICAgICJpNjQubGVfcyI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAi
Y29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA4NywgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFt
ZXRlciI6IFsiaTY0IiwgImk2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6
ICJMZXNzRXF1YWwiICAgIH0sCisgICAgICAgICJpNjQubHRfdSI6ICAgICAgICAgICAgeyAiY2F0
ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA4NCwgInJldHVybiI6IFsiYm9vbCJdLCAg
ICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtd
LCAiYjNvcCI6ICJCZWxvdyIgICAgICAgIH0sCisgICAgICAgICJpNjQubGVfdSI6ICAgICAgICAg
ICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA4OCwgInJldHVybiI6IFsi
Ym9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2NCJdLCAgICAgICAgICAgImltbWVk
aWF0ZSI6IFtdLCAiYjNvcCI6ICJCZWxvd0VxdWFsIiAgIH0sCisgICAgICAgICJpNjQuZ3RfcyI6
ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA4NSwgInJl
dHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2NCJdLCAgICAgICAg
ICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJHcmVhdGVyVGhhbiIgIH0sCisgICAgICAgICJp
NjQuZ2VfcyI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6
ICA4OSwgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTY0IiwgImk2NCJd
LCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJHcmVhdGVyRXF1YWwiIH0sCisg
ICAgICAgICJpNjQuZ3RfdSI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIs
ICJ2YWx1ZSI6ICA4NiwgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTY0
IiwgImk2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJBYm92ZSIgICAg
ICAgIH0sCisgICAgICAgICJpNjQuZ2VfdSI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29t
cGFyaXNvbiIsICJ2YWx1ZSI6ICA5MCwgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRl
ciI6IFsiaTY0IiwgImk2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJB
Ym92ZUVxdWFsIiAgIH0sCisgICAgICAgICJpNjQuY2x6IjogICAgICAgICAgICAgeyAiY2F0ZWdv
cnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEyMSwgInJldHVybiI6IFsiaTY0Il0sICAgICAg
InBhcmFtZXRlciI6IFsiaTY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAi
YjNvcCI6ICJDbHoiICAgICAgICAgIH0sCisgICAgICAgICJpNjQuY3R6IjogICAgICAgICAgICAg
eyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEyMiwgInJldHVybiI6IFsiaTY0
Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0
ZSI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICJpNjQucG9wY250Ijog
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDEyMywgInJldHVy
biI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0Il0sICAgICAgICAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICJpNjQu
ZXF6IjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA4
MCwgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiaTY0Il0sICAgICAgICAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJFcXVhbChpNjQoMCksIEAwKSIgfSwK
KyAgICAgICAgImYzMi5hZGQiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGlj
IiwgInZhbHVlIjogMTQ2LCAicmV0dXJuIjogWyJmMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJm
MzIiLCAiZjMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkFkZCIgICAg
ICAgICAgfSwKKyAgICAgICAgImYzMi5zdWIiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJh
cml0aG1ldGljIiwgInZhbHVlIjogMTQ3LCAicmV0dXJuIjogWyJmMzIiXSwgICAgICAicGFyYW1l
dGVyIjogWyJmMzIiLCAiZjMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjog
IlN1YiIgICAgICAgICAgfSwKKyAgICAgICAgImYzMi5tdWwiOiAgICAgICAgICAgICB7ICJjYXRl
Z29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTQ4LCAicmV0dXJuIjogWyJmMzIiXSwgICAg
ICAicGFyYW1ldGVyIjogWyJmMzIiLCAiZjMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10s
ICJiM29wIjogIk11bCIgICAgICAgICAgfSwKKyAgICAgICAgImYzMi5kaXYiOiAgICAgICAgICAg
ICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTQ5LCAicmV0dXJuIjogWyJm
MzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJmMzIiLCAiZjMyIl0sICAgICAgICAgICAiaW1tZWRp
YXRlIjogW10sICJiM29wIjogIkRpdiIgICAgICAgICAgfSwKKyAgICAgICAgImYzMi5taW4iOiAg
ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTUwLCAicmV0
dXJuIjogWyJmMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJmMzIiLCAiZjMyIl0sICAgICAgICAg
ICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIlNlbGVjdChFcXVhbChAMCwgQDEpLCBCaXRPcihA
MCwgQDEpLCBTZWxlY3QoTGVzc1RoYW4oQDAsIEAxKSwgQDAsIEAxKSkiIH0sCisgICAgICAgICJm
MzIubWF4IjogICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6
IDE1MSwgInJldHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiZjMyIiwgImYzMiJd
LCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJTZWxlY3QoRXF1YWwoQDAsIEAx
KSwgQml0QW5kKEAwLCBAMSksIFNlbGVjdChMZXNzVGhhbihAMCwgQDEpLCBAMSwgQDApKSIgfSwK
KyAgICAgICAgImYzMi5hYnMiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGlj
IiwgInZhbHVlIjogMTM5LCAicmV0dXJuIjogWyJmMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJm
MzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkFicyIgICAg
ICAgICAgfSwKKyAgICAgICAgImYzMi5uZWciOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJh
cml0aG1ldGljIiwgInZhbHVlIjogMTQwLCAicmV0dXJuIjogWyJmMzIiXSwgICAgICAicGFyYW1l
dGVyIjogWyJmMzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjog
Ik5lZyIgICAgICAgICAgfSwKKyAgICAgICAgImYzMi5jb3B5c2lnbiI6ICAgICAgICB7ICJjYXRl
Z29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTUyLCAicmV0dXJuIjogWyJmMzIiXSwgICAg
ICAicGFyYW1ldGVyIjogWyJmMzIiLCAiZjMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10s
ICJiM29wIjogIkJpdHdpc2VDYXN0KEJpdE9yKEJpdEFuZChCaXR3aXNlQ2FzdChAMSksIGkzMigw
eDgwMDAwMDAwKSksIEJpdEFuZChCaXR3aXNlQ2FzdChAMCksIGkzMigweDdmZmZmZmZmKSkpKSIg
fSwKKyAgICAgICAgImYzMi5jZWlsIjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1l
dGljIiwgInZhbHVlIjogMTQxLCAicmV0dXJuIjogWyJmMzIiXSwgICAgICAicGFyYW1ldGVyIjog
WyJmMzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkNlaWwi
ICAgICAgICAgfSwKKyAgICAgICAgImYzMi5mbG9vciI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6
ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTQyLCAicmV0dXJuIjogWyJmMzIiXSwgICAgICAicGFy
YW1ldGVyIjogWyJmMzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29w
IjogIkZsb29yIiAgICAgICAgfSwKKyAgICAgICAgImYzMi50cnVuYyI6ICAgICAgICAgICB7ICJj
YXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTQzLCAicmV0dXJuIjogWyJmMzIiXSwg
ICAgICAicGFyYW1ldGVyIjogWyJmMzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjog
W10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImYzMi5uZWFyZXN0IjogICAg
ICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTQ0LCAicmV0dXJuIjog
WyJmMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJmMzIiXSwgICAgICAgICAgICAgICAgICAiaW1t
ZWRpYXRlIjogW10gICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImYzMi5zcXJ0
IjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTQ1LCAi
cmV0dXJuIjogWyJmMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJmMzIiXSwgICAgICAgICAgICAg
ICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIlNxcnQiICAgICAgICAgfSwKKyAgICAgICAg
ImYzMi5lcSI6ICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVl
IjogIDkxLCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJmMzIiLCAiZjMy
Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkVxdWFsIiAgICAgICAgfSwK
KyAgICAgICAgImYzMi5uZSI6ICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29u
IiwgInZhbHVlIjogIDkyLCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJm
MzIiLCAiZjMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIk5vdEVxdWFs
IiAgICAgfSwKKyAgICAgICAgImYzMi5sdCI6ICAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJj
b21wYXJpc29uIiwgInZhbHVlIjogIDkzLCAicmV0dXJuIjogWyJib29sIl0sICAgICAicGFyYW1l
dGVyIjogWyJmMzIiLCAiZjMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjog
Ikxlc3NUaGFuIiAgICAgfSwKKyAgICAgICAgImYzMi5sZSI6ICAgICAgICAgICAgICB7ICJjYXRl
Z29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDk1LCAicmV0dXJuIjogWyJib29sIl0sICAg
ICAicGFyYW1ldGVyIjogWyJmMzIiLCAiZjMyIl0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10s
ICJiM29wIjogIkxlc3NFcXVhbCIgICAgfSwKKyAgICAgICAgImYzMi5ndCI6ICAgICAgICAgICAg
ICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDk0LCAicmV0dXJuIjogWyJi
b29sIl0sICAgICAicGFyYW1ldGVyIjogWyJmMzIiLCAiZjMyIl0sICAgICAgICAgICAiaW1tZWRp
YXRlIjogW10sICJiM29wIjogIkdyZWF0ZXJUaGFuIiAgfSwKKyAgICAgICAgImYzMi5nZSI6ICAg
ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJjb21wYXJpc29uIiwgInZhbHVlIjogIDk2LCAicmV0
dXJuIjogWyJib29sIl0sICAgICAicGFyYW1ldGVyIjogWyJmMzIiLCAiZjMyIl0sICAgICAgICAg
ICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkdyZWF0ZXJFcXVhbCIgfSwKKyAgICAgICAgImY2
NC5hZGQiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjog
MTYwLCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJmNjQiLCAiZjY0Il0s
ICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkFkZCIgICAgICAgICAgfSwKKyAg
ICAgICAgImY2NC5zdWIiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwg
InZhbHVlIjogMTYxLCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJmNjQi
LCAiZjY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIlN1YiIgICAgICAg
ICAgfSwKKyAgICAgICAgImY2NC5tdWwiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0
aG1ldGljIiwgInZhbHVlIjogMTYyLCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1ldGVy
IjogWyJmNjQiLCAiZjY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIk11
bCIgICAgICAgICAgfSwKKyAgICAgICAgImY2NC5kaXYiOiAgICAgICAgICAgICB7ICJjYXRlZ29y
eSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTYzLCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAi
cGFyYW1ldGVyIjogWyJmNjQiLCAiZjY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJi
M29wIjogIkRpdiIgICAgICAgICAgfSwKKyAgICAgICAgImY2NC5taW4iOiAgICAgICAgICAgICB7
ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjogMTY0LCAicmV0dXJuIjogWyJmNjQi
XSwgICAgICAicGFyYW1ldGVyIjogWyJmNjQiLCAiZjY0Il0sICAgICAgICAgICAiaW1tZWRpYXRl
IjogW10sICJiM29wIjogIlNlbGVjdChFcXVhbChAMCwgQDEpLCBCaXRPcihAMCwgQDEpLCBTZWxl
Y3QoTGVzc1RoYW4oQDAsIEAxKSwgQDAsIEAxKSkiIH0sCisgICAgICAgICJmNjQubWF4IjogICAg
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE2NSwgInJldHVy
biI6IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiZjY0IiwgImY2NCJdLCAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJTZWxlY3QoRXF1YWwoQDAsIEAxKSwgQml0QW5kKEAw
LCBAMSksIFNlbGVjdChMZXNzVGhhbihAMCwgQDEpLCBAMSwgQDApKSIgfSwKKyAgICAgICAgImY2
NC5hYnMiOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwgInZhbHVlIjog
MTUzLCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJmNjQiXSwgICAgICAg
ICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkFicyIgICAgICAgICAgfSwKKyAg
ICAgICAgImY2NC5uZWciOiAgICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0aG1ldGljIiwg
InZhbHVlIjogMTU0LCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJmNjQi
XSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIk5lZyIgICAgICAg
ICAgfSwKKyAgICAgICAgImY2NC5jb3B5c2lnbiI6ICAgICAgICB7ICJjYXRlZ29yeSI6ICJhcml0
aG1ldGljIiwgInZhbHVlIjogMTY2LCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1ldGVy
IjogWyJmNjQiLCAiZjY0Il0sICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkJp
dHdpc2VDYXN0KEJpdE9yKEJpdEFuZChCaXR3aXNlQ2FzdChAMSksIGk2NCgweDgwMDAwMDAwMDAw
MDAwMDApKSwgQml0QW5kKEJpdHdpc2VDYXN0KEAwKSwgaTY0KDB4N2ZmZmZmZmZmZmZmZmZmZikp
KSkiIH0sCisgICAgICAgICJmNjQuY2VpbCI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJp
dGhtZXRpYyIsICJ2YWx1ZSI6IDE1NSwgInJldHVybiI6IFsiZjY0Il0sICAgICAgInBhcmFtZXRl
ciI6IFsiZjY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJD
ZWlsIiAgICAgICAgIH0sCisgICAgICAgICJmNjQuZmxvb3IiOiAgICAgICAgICAgeyAiY2F0ZWdv
cnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE1NiwgInJldHVybiI6IFsiZjY0Il0sICAgICAg
InBhcmFtZXRlciI6IFsiZjY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAi
YjNvcCI6ICJGbG9vciIgICAgICAgIH0sCisgICAgICAgICJmNjQudHJ1bmMiOiAgICAgICAgICAg
eyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE1NywgInJldHVybiI6IFsiZjY0
Il0sICAgICAgInBhcmFtZXRlciI6IFsiZjY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0
ZSI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICJmNjQubmVhcmVzdCI6
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE1OCwgInJldHVy
biI6IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiZjY0Il0sICAgICAgICAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICJmNjQu
c3FydCI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiYXJpdGhtZXRpYyIsICJ2YWx1ZSI6IDE1
OSwgInJldHVybiI6IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiZjY0Il0sICAgICAgICAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJTcXJ0IiAgICAgICAgIH0sCisgICAg
ICAgICJmNjQuZXEiOiAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2
YWx1ZSI6ICA5NywgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiZjY0Iiwg
ImY2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJFcXVhbCIgICAgICAg
IH0sCisgICAgICAgICJmNjQubmUiOiAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFy
aXNvbiIsICJ2YWx1ZSI6ICA5OCwgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6
IFsiZjY0IiwgImY2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJOb3RF
cXVhbCIgICAgIH0sCisgICAgICAgICJmNjQubHQiOiAgICAgICAgICAgICAgeyAiY2F0ZWdvcnki
OiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6ICA5OSwgInJldHVybiI6IFsiYm9vbCJdLCAgICAgInBh
cmFtZXRlciI6IFsiZjY0IiwgImY2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNv
cCI6ICJMZXNzVGhhbiIgICAgIH0sCisgICAgICAgICJmNjQubGUiOiAgICAgICAgICAgICAgeyAi
Y2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6IDEwMSwgInJldHVybiI6IFsiYm9vbCJd
LCAgICAgInBhcmFtZXRlciI6IFsiZjY0IiwgImY2NCJdLCAgICAgICAgICAgImltbWVkaWF0ZSI6
IFtdLCAiYjNvcCI6ICJMZXNzRXF1YWwiICAgIH0sCisgICAgICAgICJmNjQuZ3QiOiAgICAgICAg
ICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6IDEwMCwgInJldHVybiI6
IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiZjY0IiwgImY2NCJdLCAgICAgICAgICAgImlt
bWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJHcmVhdGVyVGhhbiIgIH0sCisgICAgICAgICJmNjQuZ2Ui
OiAgICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAiY29tcGFyaXNvbiIsICJ2YWx1ZSI6IDEwMiwg
InJldHVybiI6IFsiYm9vbCJdLCAgICAgInBhcmFtZXRlciI6IFsiZjY0IiwgImY2NCJdLCAgICAg
ICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJHcmVhdGVyRXF1YWwiIH0sCisgICAgICAg
ICJpMzIudHJ1bmNfcy9mMzIiOiAgICAgeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1
ZSI6IDE2OCwgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiZjMyIl0sICAg
ICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICJpMzIudHJ1bmNfcy9mNjQiOiAgICAgeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lv
biIsICJ2YWx1ZSI6IDE3MCwgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsi
ZjY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICJpMzIudHJ1bmNfdS9mMzIiOiAgICAgeyAiY2F0ZWdvcnkiOiAi
Y29udmVyc2lvbiIsICJ2YWx1ZSI6IDE2OSwgInJldHVybiI6IFsiaTMyIl0sICAgICAgInBhcmFt
ZXRlciI6IFsiZjMyIl0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICJpMzIudHJ1bmNfdS9mNjQiOiAgICAgeyAiY2F0
ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6IDE3MSwgInJldHVybiI6IFsiaTMyIl0sICAg
ICAgInBhcmFtZXRlciI6IFsiZjY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtd
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICJpMzIud3JhcC9pNjQiOiAgICAg
ICAgeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6IDE2NywgInJldHVybiI6IFsi
aTMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiaTY0Il0sICAgICAgICAgICAgICAgICAgImltbWVk
aWF0ZSI6IFtdLCAiYjNvcCI6ICJUcnVuYyIgICAgICAgIH0sCisgICAgICAgICJpNjQudHJ1bmNf
cy9mMzIiOiAgICAgeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6IDE3NCwgInJl
dHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiZjMyIl0sICAgICAgICAgICAgICAg
ICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICJp
NjQudHJ1bmNfcy9mNjQiOiAgICAgeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6
IDE3NiwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiZjY0Il0sICAgICAg
ICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICJpNjQudHJ1bmNfdS9mMzIiOiAgICAgeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIs
ICJ2YWx1ZSI6IDE3NSwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFsiZjMy
Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICJpNjQudHJ1bmNfdS9mNjQiOiAgICAgeyAiY2F0ZWdvcnkiOiAiY29u
dmVyc2lvbiIsICJ2YWx1ZSI6IDE3NywgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRl
ciI6IFsiZjY0Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICJpNjQuZXh0ZW5kX3MvaTMyIjogICAgeyAiY2F0ZWdv
cnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6IDE3MiwgInJldHVybiI6IFsiaTY0Il0sICAgICAg
InBhcmFtZXRlciI6IFsiaTMyIl0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAi
YjNvcCI6ICJTRXh0MzIiICAgICAgIH0sCisgICAgICAgICJpNjQuZXh0ZW5kX3UvaTMyIjogICAg
eyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6IDE3MywgInJldHVybiI6IFsiaTY0
Il0sICAgICAgInBhcmFtZXRlciI6IFsiaTMyIl0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0
ZSI6IFtdLCAiYjNvcCI6ICJaRXh0MzIiICAgICAgIH0sCisgICAgICAgICJmMzIuY29udmVydF9z
L2kzMiI6ICAgeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6IDE3OCwgInJldHVy
biI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiaTMyIl0sICAgICAgICAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJJVG9GIiAgICAgICAgIH0sCisgICAgICAgICJmMzIu
Y29udmVydF91L2kzMiI6ICAgeyAiY2F0ZWdvcnkiOiAiY29udmVyc2lvbiIsICJ2YWx1ZSI6IDE3
OSwgInJldHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFsiaTMyIl0sICAgICAgICAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAiYjNvcCI6ICJJVG9GKFpFeHQzMihAMCkpIiB9LAor
ICAgICAgICAiZjMyLmNvbnZlcnRfcy9pNjQiOiAgIHsgImNhdGVnb3J5IjogImNvbnZlcnNpb24i
LCAidmFsdWUiOiAxODAsICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImk2
NCJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiSVRvRiIgICAg
ICAgICB9LAorICAgICAgICAiZjMyLmNvbnZlcnRfdS9pNjQiOiAgIHsgImNhdGVnb3J5IjogImNv
bnZlcnNpb24iLCAidmFsdWUiOiAxODEsICJyZXR1cm4iOiBbImYzMiJdLCAgICAgICJwYXJhbWV0
ZXIiOiBbImk2NCJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAiZjMyLmRlbW90ZS9mNjQiOiAgICAgIHsgImNhdGVn
b3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAxODIsICJyZXR1cm4iOiBbImYzMiJdLCAgICAg
ICJwYXJhbWV0ZXIiOiBbImY2NCJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwg
ImIzb3AiOiAiRG91YmxlVG9GbG9hdCJ9LAorICAgICAgICAiZjMyLnJlaW50ZXJwcmV0L2kzMiI6
IHsgImNhdGVnb3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAxOTAsICJyZXR1cm4iOiBbImYz
MiJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlh
dGUiOiBbXSwgImIzb3AiOiAiQml0d2lzZUNhc3QiICB9LAorICAgICAgICAiZjY0LmNvbnZlcnRf
cy9pMzIiOiAgIHsgImNhdGVnb3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAxODMsICJyZXR1
cm4iOiBbImY2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiJdLCAgICAgICAgICAgICAgICAg
ICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiSVRvRCIgICAgICAgICB9LAorICAgICAgICAiZjY0
LmNvbnZlcnRfdS9pMzIiOiAgIHsgImNhdGVnb3J5IjogImNvbnZlcnNpb24iLCAidmFsdWUiOiAx
ODQsICJyZXR1cm4iOiBbImY2NCJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImkzMiJdLCAgICAgICAg
ICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgImIzb3AiOiAiSVRvRChaRXh0MzIoQDApKSIgfSwK
KyAgICAgICAgImY2NC5jb252ZXJ0X3MvaTY0IjogICB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9u
IiwgInZhbHVlIjogMTg1LCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJp
NjQiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIklUb0QiICAg
ICAgICAgfSwKKyAgICAgICAgImY2NC5jb252ZXJ0X3UvaTY0IjogICB7ICJjYXRlZ29yeSI6ICJj
b252ZXJzaW9uIiwgInZhbHVlIjogMTg2LCAicmV0dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1l
dGVyIjogWyJpNjQiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10gICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICAgICAgImY2NC5wcm9tb3RlL2YzMiI6ICAgICB7ICJjYXRl
Z29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVlIjogMTg3LCAicmV0dXJuIjogWyJmNjQiXSwgICAg
ICAicGFyYW1ldGVyIjogWyJmMzIiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10s
ICJiM29wIjogIkZsb2F0VG9Eb3VibGUifSwKKyAgICAgICAgImY2NC5yZWludGVycHJldC9pNjQi
OiB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVlIjogMTkxLCAicmV0dXJuIjogWyJm
NjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJpNjQiXSwgICAgICAgICAgICAgICAgICAiaW1tZWRp
YXRlIjogW10sICJiM29wIjogIkJpdHdpc2VDYXN0IiAgfSwKKyAgICAgICAgImkzMi5yZWludGVy
cHJldC9mMzIiOiB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVlIjogMTg4LCAicmV0
dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJmMzIiXSwgICAgICAgICAgICAgICAg
ICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkJpdHdpc2VDYXN0IiAgfSwKKyAgICAgICAgImk2
NC5yZWludGVycHJldC9mNjQiOiB7ICJjYXRlZ29yeSI6ICJjb252ZXJzaW9uIiwgInZhbHVlIjog
MTg5LCAicmV0dXJuIjogWyJpNjQiXSwgICAgICAicGFyYW1ldGVyIjogWyJmNjQiXSwgICAgICAg
ICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICJiM29wIjogIkJpdHdpc2VDYXN0IiAgfQorICAg
IH0KK30KK2A7CisKKworY29uc3QgX2Vudmlyb25tZW50ID0KKyAgICAoKHR5cGVvZiBwcm9jZXNz
ID09PSAib2JqZWN0IiAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gImZ1bmN0aW9uIikgPyAibm9kZSIK
KyAgICAgOiAodHlwZW9mIHdpbmRvdyA9PT0gIm9iamVjdCIgPyAid2ViIgorICAgICAgICA6ICh0
eXBlb2YgaW1wb3J0U2NyaXB0cyA9PT0gImZ1bmN0aW9uIiA/ICJ3b3JrZXIiCisgICAgICAgICAg
IDogInNoZWxsIikpKTsKKworbGV0IF9nbG9iYWwgPSAodHlwZW9mIGdsb2JhbCAhPT0gJ29iamVj
dCcgfHwgIWdsb2JhbCB8fCBnbG9iYWwuTWF0aCAhPT0gTWF0aCB8fCBnbG9iYWwuQXJyYXkgIT09
IEFycmF5KQorICAgID8gKCh0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcpID8gc2VsZgorICAg
ICAgIDogKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSA/IHdpbmRvdworICAgICAgIDog
KHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnKSA/IGdsb2JhbAorICAgICAgIDogRnVuY3Rp
b24oJ3JldHVybiB0aGlzJykoKSkKKyAgICA6IGdsb2JhbDsKKworY29uc3QgX2V2YWwgPSB4ID0+
IGV2YWwuY2FsbChudWxsLCB4KTsKKworY29uc3QgX3JlYWQgPSBmaWxlbmFtZSA9PiB7CisgICAg
c3dpdGNoIChfZW52aXJvbm1lbnQpIHsKKyAgICBjYXNlICJub2RlIjogICByZXR1cm4gcmVhZChm
aWxlbmFtZSk7CisgICAgY2FzZSAid2ViIjogICAgLy8gZmFsbHRocm91Z2gKKyAgICBjYXNlICJ3
b3JrZXIiOiBsZXQgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7IHhoci5vcGVuKCJHRVQiLCBm
aWxlbmFtZSwgLyphc3luYz0qL2ZhbHNlKTsgcmV0dXJuIHhoci5yZXNwb25zZVRleHQ7CisgICAg
Y2FzZSAic2hlbGwiOiAgcmV0dXJuIHJlYWQoZmlsZW5hbWUpOworICAgIH0KK30KKworY29uc3Qg
X2xvYWQgPSBmaWxlbmFtZSA9PiB7CisgICAgc3dpdGNoIChfZW52aXJvbm1lbnQpIHsKKyAgICBj
YXNlICJub2RlIjogICAvLyBmYWxsdGhyb3VnaAorICAgIGNhc2UgIndlYiI6ICAgIC8vIGZhbGx0
aHJvdWdoCisgICAgY2FzZSAic2hlbGwiOiAgcmV0dXJuIF9ldmFsKF9yZWFkKGZpbGVuYW1lKSk7
CisgICAgY2FzZSAid29ya2VyIjogcmV0dXJuIGltcG9ydFNjcmlwdHMoZmlsZW5hbWUpOworICAg
IH0KK30KKworY29uc3QgX2pzb24gPSBmaWxlbmFtZSA9PiB7CisgICAgYXNzZXJ0LmVxKGZpbGVu
YW1lLCAid2FzbS5qc29uIik7CisgICAgcmV0dXJuIEpTT04ucGFyc2UoV0FTTV9KU09OKTsKKwor
ICAgIHN3aXRjaCAoX2Vudmlyb25tZW50KSB7CisgICAgY2FzZSAibm9kZSI6ICAgLy8gZmFsbHRo
cm91Z2gKKyAgICBjYXNlICJzaGVsbCI6ICByZXR1cm4gSlNPTi5wYXJzZShfcmVhZChmaWxlbmFt
ZSkpOworICAgIGNhc2UgIndlYiI6ICAgIC8vIGZhbGx0aHJvdWdoCisgICAgY2FzZSAid29ya2Vy
IjogbGV0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOyB4aHIub3ZlcnJpZGVNaW1lVHlwZSgi
YXBwbGljYXRpb24vanNvbiIpOyB4aHIub3BlbigiR0VUIiwgZmlsZW5hbWUsIC8qYXN5bmM9Ki9m
YWxzZSk7IHJldHVybiB4aHIucmVzcG9uc2U7CisgICAgfQorfQorCitjb25zdCBfZHVtcCA9ICh3
aGF0LCBuYW1lLCBwYWQgPSAnICAgICcpID0+IHsKKyAgICBjb25zdCB2YWx1ZSA9IHYgPT4gewor
ICAgICAgICB0cnkgeyByZXR1cm4gYCIke3Z9ImA7IH0KKyAgICAgICAgY2F0Y2ggKGUpIHsgcmV0
dXJuIGBFcnJvcjogIiR7ZS5tZXNzYWdlfSJgOyB9CisgICAgfTsKKyAgICBsZXQgcyA9IGAke3Bh
ZH0ke25hbWV9ICR7dHlwZW9mIHdoYXR9OiAke3ZhbHVlKHdoYXQpfWA7CisgICAgZm9yIChsZXQg
cCBpbiB3aGF0KSB7CisgICAgICAgIHMgKz0gYFxuJHtwYWR9JHtwYWR9JHtwfTogJHt2YWx1ZSh3
aGF0W3BdKX0gJHt0eXBlb2Ygdn1gOworICAgICAgICBzICs9ICdcbicgKyBfZHVtcCh3aGF0W3Bd
LCBwLCBwYWQgKyBwYWQpOworICAgIH0KKyAgICByZXR1cm4gczsKK307CisKKy8vIFVzZSB1bmRl
cnNjb3JlIG5hbWVzIHRvIGF2b2lkIGNsYXNoaW5nIHdpdGggYnVpbHRpbiBuYW1lcy4KK2NvbnN0
IHV0aWxpdGllcyA9IHsKKyAgICBkdW1wIDogX2R1bXAsCisgICAgZXZhbCA6IF9ldmFsLAorICAg
IHJlYWQgOiBfcmVhZCwKKyAgICBsb2FkIDogX2xvYWQsCisgICAganNvbiA6IF9qc29uLAorICAg
IGdsb2JhbCA6IF9nbG9iYWwKK307CisKKworY29uc3QgX21hcFZhbHVlcyA9IGZyb20gPT4gewor
ICAgIGxldCB2YWx1ZXMgPSB7fTsKKyAgICBmb3IgKGNvbnN0IGtleSBpbiBmcm9tKQorICAgICAg
ICB2YWx1ZXNba2V5XSA9IGZyb21ba2V5XS52YWx1ZTsKKyAgICByZXR1cm4gdmFsdWVzOworfTsK
KworCitjb25zdCBXQVNNID0ge307Cit7CisgICAgY29uc3QgZGVzY3JpcHRpb24gPSBXQVNNLmRl
c2NyaXB0aW9uID0gdXRpbGl0aWVzLmpzb24oIndhc20uanNvbiIpOworICAgIGNvbnN0IHR5cGUg
PSBXQVNNLnR5cGUgPSBPYmplY3Qua2V5cyhkZXNjcmlwdGlvbi50eXBlKTsKKyAgICBjb25zdCBf
dHlwZVNldCA9IG5ldyBTZXQodHlwZSk7CisgICAgV0FTTS5pc1ZhbGlkVHlwZSA9IHYgPT4gX3R5
cGVTZXQuaGFzKHYpOworICAgIFdBU00udHlwZVZhbHVlID0gX21hcFZhbHVlcyhkZXNjcmlwdGlv
bi50eXBlKTsKKyAgICBjb25zdCBfdmFsdWVUeXBlU2V0ID0gbmV3IFNldChkZXNjcmlwdGlvbi52
YWx1ZV90eXBlKTsKKyAgICBXQVNNLmlzVmFsaWRWYWx1ZVR5cGUgPSB2ID0+IF92YWx1ZVR5cGVT
ZXQuaGFzKHYpOworICAgIGNvbnN0IF9ibG9ja1R5cGVTZXQgPSBuZXcgU2V0KGRlc2NyaXB0aW9u
LmJsb2NrX3R5cGUpOworICAgIFdBU00uaXNWYWxpZEJsb2NrVHlwZSA9IHYgPT4gX2Jsb2NrVHlw
ZVNldC5oYXModik7CisgICAgV0FTTS5leHRlcm5hbEtpbmRWYWx1ZSA9IF9tYXBWYWx1ZXMoZGVz
Y3JpcHRpb24uZXh0ZXJuYWxfa2luZCk7CisgICAgY29uc3Qgc2VjdGlvbnMgPSBXQVNNLnNlY3Rp
b25zID0gT2JqZWN0LmtleXMoZGVzY3JpcHRpb24uc2VjdGlvbik7CisgICAgV0FTTS5zZWN0aW9u
RW5jb2RpbmdUeXBlID0gZGVzY3JpcHRpb24uc2VjdGlvbltzZWN0aW9uc1swXV0udHlwZTsKK30K
KworCisvLyBMb3dMZXZlbEJpbmFyeS5qcworY29uc3QgX2luaXRpYWxBbGxvY2F0aW9uU2l6ZSA9
IDEwMjQ7Citjb25zdCBfZ3Jvd0FsbG9jYXRpb25TaXplID0gYWxsb2NhdGVkID0+IGFsbG9jYXRl
ZCAqIDI7CisKKworY29uc3QgdmFydWludDMyTWluID0gMDsKK2NvbnN0IHZhcmludDdNaW4gPSAt
MGIxMDAwMDAwOworY29uc3QgdmFyaW50N01heCA9IDBiMTExMTExOworY29uc3QgdmFydWludDdN
YXggPSAwYjExMTExMTE7Citjb25zdCB2YXJ1aW50MzJNYXggPSAoKCgoMSA8PCAzMSkgPj4+IDAp
IC0gMSkgKiAyKSArIDE7Citjb25zdCB2YXJpbnQzMk1pbiA9IC0oKDEgPDwgMzEpID4+PiAwKTsK
K2NvbnN0IHZhcmludDMyTWF4ID0gKCgxIDw8IDMxKSAtIDEpID4+PiAwOworY29uc3QgdmFyQml0
c01heCA9IDU7CisKK2NvbnN0IF9nZXR0ZXJSYW5nZUNoZWNrID0gKGxsYiwgYXQsIHNpemUpID0+
IHsKKyAgICBpZiAoMCA+IGF0IHx8IGF0ICsgc2l6ZSA+IGxsYi5fdXNlZCkKKyAgICAgICAgdGhy
b3cgbmV3IFJhbmdlRXJyb3IoYFske2F0fSwgJHthdCArIHNpemV9KSBpcyBvdXQgb2YgYnVmZmVy
IHJhbmdlIFswLCAke2xsYi5fdXNlZH0pYCk7Cit9OworCitjb25zdCBfaGV4ZHVtcCA9IChidWYs
IHNpemUpID0+IHsKKyAgICBsZXQgcyA9ICIiOworICAgIGNvbnN0IHdpZHRoID0gMTY7CisgICAg
Y29uc3QgYmFzZSA9IDE2OworICAgIGZvciAobGV0IHJvdyA9IDA7IHJvdyAqIHdpZHRoIDwgc2l6
ZTsgKytyb3cpIHsKKyAgICAgICAgY29uc3QgYWRkcmVzcyA9IChyb3cgKiB3aWR0aCkudG9TdHJp
bmcoYmFzZSk7CisgICAgICAgIHMgKz0gIjAiLnJlcGVhdCg4IC0gYWRkcmVzcy5sZW5ndGgpICsg
YWRkcmVzczsKKyAgICAgICAgbGV0IGNoYXJzID0gIiI7CisgICAgICAgIGZvciAobGV0IGNvbCA9
IDA7IGNvbCAhPT0gd2lkdGg7ICsrY29sKSB7CisgICAgICAgICAgICBjb25zdCBpZHggPSByb3cg
KiB3aWR0aCArIGNvbDsKKyAgICAgICAgICAgIGlmIChpZHggPCBzaXplKSB7CisgICAgICAgICAg
ICAgICAgY29uc3QgYnl0ZSA9IGJ1ZltpZHhdOworICAgICAgICAgICAgICAgIGNvbnN0IGJ5dGVz
dHIgPSBieXRlLnRvU3RyaW5nKGJhc2UpOworICAgICAgICAgICAgICAgIHMgKz0gIiAiICsgKGJ5
dGVzdHIubGVuZ3RoID09PSAxID8gIjAiICsgYnl0ZXN0ciA6IGJ5dGVzdHIpOworICAgICAgICAg
ICAgICAgIGNoYXJzICs9IDB4MjAgPD0gYnl0ZSAmJiBieXRlIDwgMHg3RiA/IFN0cmluZy5mcm9t
Q2hhckNvZGUoYnl0ZSkgOiAiwrciOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBzICs9ICIgICAiOworICAgICAgICAgICAgICAgIGNoYXJzICs9ICIgIjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICBzKz0gIiAgfCIgKyBjaGFycyArICJ8XG4iOworICAg
IH0KKyAgICByZXR1cm4gczsKK307CisKK2NsYXNzIExvd0xldmVsQmluYXJ5IHsKKyAgICBjb25z
dHJ1Y3RvcigpIHsKKyAgICAgICAgdGhpcy5fYnVmID0gbmV3IFVpbnQ4QXJyYXkoX2luaXRpYWxB
bGxvY2F0aW9uU2l6ZSk7CisgICAgICAgIHRoaXMuX3VzZWQgPSAwOworICAgIH0KKworICAgIG5l
d1BhdGNoYWJsZSh0eXBlKSB7IHJldHVybiBuZXcgUGF0Y2hhYmxlTG93TGV2ZWxCaW5hcnkodHlw
ZSwgdGhpcyk7IH0KKworICAgIC8vIFV0aWxpdGllcy4KKyAgICBnZXQoKSB7IHJldHVybiB0aGlz
Ll9idWY7IH0KKyAgICB0cmltKCkgeyB0aGlzLl9idWYgPSB0aGlzLl9idWYuc2xpY2UoMCwgdGhp
cy5fdXNlZCk7IH0KKworICAgIGhleGR1bXAoKSB7IHJldHVybiBfaGV4ZHVtcCh0aGlzLl9idWYs
IHRoaXMuX3VzZWQpOyB9CisgICAgX21heWJlR3JvdyhieXRlcykgeworICAgICAgICBjb25zdCBh
bGxvY2F0ZWQgPSB0aGlzLl9idWYubGVuZ3RoOworICAgICAgICBpZiAoYWxsb2NhdGVkIC0gdGhp
cy5fdXNlZCA8IGJ5dGVzKSB7CisgICAgICAgICAgICBsZXQgYnVmID0gbmV3IFVpbnQ4QXJyYXko
X2dyb3dBbGxvY2F0aW9uU2l6ZShhbGxvY2F0ZWQpKTsKKyAgICAgICAgICAgIGJ1Zi5zZXQodGhp
cy5fYnVmKTsKKyAgICAgICAgICAgIHRoaXMuX2J1ZiA9IGJ1ZjsKKyAgICAgICAgfQorICAgIH0K
KyAgICBfcHVzaDgodikgeyB0aGlzLl9idWZbdGhpcy5fdXNlZF0gPSB2ICYgMHhGRjsgdGhpcy5f
dXNlZCArPSAxOyB9CisKKyAgICAvLyBEYXRhIHR5cGVzLgorICAgIHVpbnQ4KHYpIHsKKyAgICAg
ICAgaWYgKCh2ICYgMHhGRikgPj4+IDAgIT09IHYpCisgICAgICAgICAgICB0aHJvdyBuZXcgUmFu
Z2VFcnJvcihgSW52YWxpZCB1aW50OCAke3Z9YCk7CisgICAgICAgIHRoaXMuX21heWJlR3Jvdygx
KTsKKyAgICAgICAgdGhpcy5fcHVzaDgodik7CisgICAgfQorICAgIHVpbnQxNih2KSB7CisgICAg
ICAgIGlmICgodiAmIDB4RkZGRikgPj4+IDAgIT09IHYpCisgICAgICAgICAgICB0aHJvdyBuZXcg
UmFuZ2VFcnJvcihgSW52YWxpZCB1aW50MTYgJHt2fWApOworICAgICAgICB0aGlzLl9tYXliZUdy
b3coMik7CisgICAgICAgIHRoaXMuX3B1c2g4KHYpOworICAgICAgICB0aGlzLl9wdXNoOCh2ID4+
PiA4KTsKKyAgICB9CisgICAgdWludDI0KHYpIHsKKyAgICAgICAgaWYgKCh2ICYgMHhGRkZGRkYp
ID4+PiAwICE9PSB2KQorICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEludmFsaWQg
dWludDI0ICR7dn1gKTsKKyAgICAgICAgdGhpcy5fbWF5YmVHcm93KDMpOworICAgICAgICB0aGlz
Ll9wdXNoOCh2KTsKKyAgICAgICAgdGhpcy5fcHVzaDgodiA+Pj4gOCk7CisgICAgICAgIHRoaXMu
X3B1c2g4KHYgPj4+IDE2KTsKKyAgICB9CisgICAgdWludDMyKHYpIHsKKyAgICAgICAgaWYgKCh2
ICYgMHhGRkZGRkZGRikgPj4+IDAgIT09IHYpCisgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VF
cnJvcihgSW52YWxpZCB1aW50MzIgJHt2fWApOworICAgICAgICB0aGlzLl9tYXliZUdyb3coNCk7
CisgICAgICAgIHRoaXMuX3B1c2g4KHYpOworICAgICAgICB0aGlzLl9wdXNoOCh2ID4+PiA4KTsK
KyAgICAgICAgdGhpcy5fcHVzaDgodiA+Pj4gMTYpOworICAgICAgICB0aGlzLl9wdXNoOCh2ID4+
PiAyNCk7CisgICAgfQorICAgIGZsb2F0KHYpIHsKKyAgICAgICAgaWYgKGlzTmFOKHYpKQorICAg
ICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoInVuaW1wbGVtZW50ZWQsIE5hTnMiKTsKKyAg
ICAgICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgY2Fubm90IGp1c3QgdmlldyB0aGUgYWN0dWFsIGJ1
ZmZlciBhcyBhIEZsb2F0MzJBcnJheSBzaW5jZSBpdCBuZWVkcyB0byBiZSA0IGJ5dGUgYWxpZ25l
ZAorICAgICAgICBsZXQgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDQpOworICAgICAgICBsZXQg
ZmxvYXRWaWV3ID0gbmV3IEZsb2F0MzJBcnJheShidWZmZXIpOworICAgICAgICBsZXQgaW50OFZp
ZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIpOworICAgICAgICBmbG9hdFZpZXdbMF0gPSB2Owor
ICAgICAgICBmb3IgKGxldCBieXRlIG9mIGludDhWaWV3KQorICAgICAgICAgICAgdGhpcy5fcHVz
aDgoYnl0ZSk7CisgICAgfQorCisgICAgZG91YmxlKHYpIHsKKyAgICAgICAgaWYgKGlzTmFOKHYp
KQorICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoInVuaW1wbGVtZW50ZWQsIE5hTnMi
KTsKKyAgICAgICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgY2Fubm90IGp1c3QgdmlldyB0aGUgYWN0
dWFsIGJ1ZmZlciBhcyBhIEZsb2F0NjRBcnJheSBzaW5jZSBpdCBuZWVkcyB0byBiZSA0IGJ5dGUg
YWxpZ25lZAorICAgICAgICBsZXQgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDgpOworICAgICAg
ICBsZXQgZmxvYXRWaWV3ID0gbmV3IEZsb2F0NjRBcnJheShidWZmZXIpOworICAgICAgICBsZXQg
aW50OFZpZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIpOworICAgICAgICBmbG9hdFZpZXdbMF0g
PSB2OworICAgICAgICBmb3IgKGxldCBieXRlIG9mIGludDhWaWV3KQorICAgICAgICAgICAgdGhp
cy5fcHVzaDgoYnl0ZSk7CisgICAgfQorCisgICAgdmFydWludDMyKHYpIHsKKyAgICAgICAgYXNz
ZXJ0LmlzTnVtYmVyKHYpOworICAgICAgICBpZiAodiA8IHZhcnVpbnQzMk1pbiB8fCB2YXJ1aW50
MzJNYXggPCB2KQorICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEludmFsaWQgdmFy
dWludDMyICR7dn0gcmFuZ2UgaXMgWyR7dmFydWludDMyTWlufSwgJHt2YXJ1aW50MzJNYXh9XWAp
OworICAgICAgICB3aGlsZSAodiA+PSAweDgwKSB7CisgICAgICAgICAgICB0aGlzLnVpbnQ4KDB4
ODAgfCAodiAmIDB4N0YpKTsKKyAgICAgICAgICAgIHYgPj4+PSA3OworICAgICAgICB9CisgICAg
ICAgIHRoaXMudWludDgodik7CisgICAgfQorICAgIHZhcmludDMyKHYpIHsKKyAgICAgICAgYXNz
ZXJ0LmlzTnVtYmVyKHYpOworICAgICAgICBpZiAodiA8IHZhcmludDMyTWluIHx8IHZhcmludDMy
TWF4IDwgdikKKyAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGBJbnZhbGlkIHZhcmlu
dDMyICR7dn0gcmFuZ2UgaXMgWyR7dmFyaW50MzJNaW59LCAke3ZhcmludDMyTWF4fV1gKTsKKyAg
ICAgICAgZG8geworICAgICAgICAgICAgY29uc3QgYiA9IHYgJiAweDdGOworICAgICAgICAgICAg
diA+Pj0gNzsKKyAgICAgICAgICAgIGlmICgodiA9PT0gMCAmJiAoKGIgJiAweDQwKSA9PT0gMCkp
IHx8ICh2ID09PSAtMSAmJiAoKGIgJiAweDQwKSA9PT0gMHg0MCkpKSB7CisgICAgICAgICAgICAg
ICAgdGhpcy51aW50OChiICYgMHg3Rik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICB0aGlzLnVpbnQ4KDB4ODAgfCBiKTsKKyAgICAgICAgfSB3aGls
ZSAodHJ1ZSk7CisgICAgfQorICAgIHZhcnVpbnQ2NCh2KSB7CisgICAgICAgIGFzc2VydC5pc051
bWJlcih2KTsKKyAgICAgICAgaWYgKHYgPCB2YXJ1aW50MzJNaW4gfHwgdmFydWludDMyTWF4IDwg
dikKKyAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGB1bmltcGxlbWVudGVkOiB2YXJ1
aW50NjQgbGFyZ2VyIHRoYW4gMzItYml0YCk7CisgICAgICAgIHRoaXMudmFydWludDMyKHYpOyAv
LyBGSVhNRSBpbXBsZW1lbnQgNjQtYml0IHZhcnt1fWludCBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIwCisgICAgfQorICAgIHZhcmludDY0KHYpIHsKKyAgICAg
ICAgYXNzZXJ0LmlzTnVtYmVyKHYpOworICAgICAgICBpZiAodiA8IHZhcmludDMyTWluIHx8IHZh
cmludDMyTWF4IDwgdikKKyAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGB1bmltcGxl
bWVudGVkOiB2YXJpbnQ2NCBsYXJnZXIgdGhhbiAzMi1iaXRgKTsKKyAgICAgICAgdGhpcy52YXJp
bnQzMih2KTsgLy8gRklYTUUgaW1wbGVtZW50IDY0LWJpdCB2YXJ7dX1pbnQgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMAorICAgIH0KKyAgICB2YXJ1aW50MSh2
KSB7CisgICAgICAgIGlmICh2ICE9PSAwICYmIHYgIT09IDEpCisgICAgICAgICAgICB0aHJvdyBu
ZXcgUmFuZ2VFcnJvcihgSW52YWxpZCB2YXJ1aW50MSAke3Z9IHJhbmdlIGlzIFswLCAxXWApOwor
ICAgICAgICB0aGlzLnZhcnVpbnQzMih2KTsKKyAgICB9CisgICAgdmFyaW50Nyh2KSB7CisgICAg
ICAgIGlmICh2IDwgdmFyaW50N01pbiB8fCB2YXJpbnQ3TWF4IDwgdikKKyAgICAgICAgICAgIHRo
cm93IG5ldyBSYW5nZUVycm9yKGBJbnZhbGlkIHZhcmludDcgJHt2fSByYW5nZSBpcyBbJHt2YXJp
bnQ3TWlufSwgJHt2YXJpbnQ3TWF4fV1gKTsKKyAgICAgICAgdGhpcy52YXJpbnQzMih2KTsKKyAg
ICB9CisgICAgdmFydWludDcodikgeworICAgICAgICBpZiAodiA8IHZhcnVpbnQzMk1pbiB8fCB2
YXJ1aW50N01heCA8IHYpCisgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihgSW52YWxp
ZCB2YXJ1aW50NyAke3Z9IHJhbmdlIGlzIFske3ZhcnVpbnQzMk1pbn0sICR7dmFydWludDdNYXh9
XWApOworICAgICAgICB0aGlzLnZhcnVpbnQzMih2KTsKKyAgICB9CisgICAgYmxvY2tfdHlwZSh2
KSB7CisgICAgICAgIGlmICghV0FTTS5pc1ZhbGlkQmxvY2tUeXBlKHYpKQorICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGJsb2NrIHR5cGUgJHt2fWApOworICAgICAgICB0aGlz
LnZhcmludDcoV0FTTS50eXBlVmFsdWVbdl0pOworICAgIH0KKyAgICBzdHJpbmcoc3RyKSB7Cisg
ICAgICAgIGxldCBwYXRjaCA9IHRoaXMubmV3UGF0Y2hhYmxlKCJ2YXJ1aW50MzIiKTsKKyAgICAg
ICAgZm9yIChjb25zdCBjaGFyIG9mIHN0cikgeworICAgICAgICAgICAgLy8gRW5jb2RlIFVURi04
IDIwMDMgY29kZSBwb2ludHMuCisgICAgICAgICAgICBjb25zdCBjb2RlID0gY2hhci5jb2RlUG9p
bnRBdCgpOworICAgICAgICAgICAgaWYgKGNvZGUgPD0gMHgwMDdGKSB7CisgICAgICAgICAgICAg
ICAgY29uc3QgdXRmOCA9IGNvZGU7CisgICAgICAgICAgICAgICAgcGF0Y2gudWludDgodXRmOCk7
CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvZGUgPD0gMHgwN0ZGKSB7CisgICAgICAgICAgICAg
ICAgY29uc3QgdXRmOCA9IDB4ODBDMCB8ICgoY29kZSAmIDB4N0MwKSA+PiA2KSB8ICgoY29kZSAm
IDB4M0YpIDw8IDgpOworICAgICAgICAgICAgICAgIHBhdGNoLnVpbnQxNih1dGY4KTsKKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAoY29kZSA8PSAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICBjb25z
dCB1dGY4ID0gMHg4MDgwRTAgfCAoKGNvZGUgJiAweEYwMDApID4+IDEyKSB8ICgoY29kZSAmIDB4
RkMwKSA8PCAyKSB8ICgoY29kZSAmIDB4M0YpIDw8IDE2KTsKKyAgICAgICAgICAgICAgICBwYXRj
aC51aW50MjQodXRmOCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvZGUgPD0gMHgxMEZGRkYp
IHsKKyAgICAgICAgICAgICAgICBjb25zdCB1dGY4ID0gKDB4ODA4MDgwRjAgfCAoKGNvZGUgJiAw
eDFDMDAwMCkgPj4gMTgpIHwgKChjb2RlICYgMHgzRjAwMCkgPj4gNCkgfCAoKGNvZGUgJiAweEZD
MCkgPDwgMTApIHwgKChjb2RlICYgMHgzRikgPDwgMjQpKSA+Pj4gMDsKKyAgICAgICAgICAgICAg
ICBwYXRjaC51aW50MzIodXRmOCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWRseSBsYXJnZSBVVEYtOCBjaGFyYWN0ZXIgY29k
ZSBwb2ludCAnJHtjaGFyfScgMHgke2NvZGUudG9TdHJpbmcoMTYpfWApOworICAgICAgICB9Cisg
ICAgICAgIHBhdGNoLmFwcGx5KCk7CisgICAgfQorCisgICAgLy8gR2V0dGVycy4KKyAgICBnZXRT
aXplKCkgeyByZXR1cm4gdGhpcy5fdXNlZDsgfQorICAgIGdldFVpbnQ4KGF0KSB7CisgICAgICAg
IF9nZXR0ZXJSYW5nZUNoZWNrKHRoaXMsIGF0LCAxKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2J1
ZlthdF07CisgICAgfQorICAgIGdldFVpbnQxNihhdCkgeworICAgICAgICBfZ2V0dGVyUmFuZ2VD
aGVjayh0aGlzLCBhdCwgMik7CisgICAgICAgIHJldHVybiB0aGlzLl9idWZbYXRdIHwgKHRoaXMu
X2J1ZlthdCArIDFdIDw8IDgpOworICAgIH0KKyAgICBnZXRVaW50MjQoYXQpIHsKKyAgICAgICAg
X2dldHRlclJhbmdlQ2hlY2sodGhpcywgYXQsIDMpOworICAgICAgICByZXR1cm4gdGhpcy5fYnVm
W2F0XSB8ICh0aGlzLl9idWZbYXQgKyAxXSA8PCA4KSB8ICh0aGlzLl9idWZbYXQgKyAyXSA8PCAx
Nik7CisgICAgfQorICAgIGdldFVpbnQzMihhdCkgeworICAgICAgICBfZ2V0dGVyUmFuZ2VDaGVj
ayh0aGlzLCBhdCwgNCk7CisgICAgICAgIHJldHVybiAodGhpcy5fYnVmW2F0XSB8ICh0aGlzLl9i
dWZbYXQgKyAxXSA8PCA4KSB8ICh0aGlzLl9idWZbYXQgKyAyXSA8PCAxNikgfCAodGhpcy5fYnVm
W2F0ICsgM10gPDwgMjQpKSA+Pj4gMDsKKyAgICB9CisgICAgZ2V0VmFydWludDMyKGF0KSB7Cisg
ICAgICAgIGxldCB2ID0gMDsKKyAgICAgICAgbGV0IHNoaWZ0ID0gMDsKKyAgICAgICAgbGV0IGJ5
dGUgPSAwOworICAgICAgICBkbyB7CisgICAgICAgICAgICBieXRlID0gdGhpcy5nZXRVaW50OChh
dCsrKTsKKyAgICAgICAgICAgICsrcmVhZDsKKyAgICAgICAgICAgIHYgPSAodiB8ICgoYnl0ZSAm
IDB4N0YpIDw8IHNoaWZ0KSA+Pj4gMCkgPj4+IDA7CisgICAgICAgICAgICBzaGlmdCArPSA3Owor
ICAgICAgICB9IHdoaWxlICgoYnl0ZSAmIDB4ODApICE9PSAwKTsKKyAgICAgICAgaWYgKHNoaWZ0
IC0gNyA+IDMyKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcihgU2hpZnRpbmcgdG9vIG11Y2ggYXQgJHth
dH1gKTsKKyAgICAgICAgaWYgKChzaGlmdCA9PSAzNSkgJiYgKChieXRlICYgMHhGMCkgIT0gMCkp
IHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBub24tc2lnbmlmaWNhbnQgdmFydWludDMyIGJp
dHMgaW4gbGFzdCBieXRlIDB4JHtieXRlLnRvU3RyaW5nKDE2KX1gKTsKKyAgICAgICAgcmV0dXJu
IHsgdmFsdWU6IHYsIG5leHQ6IGF0IH07CisgICAgfQorICAgIGdldFZhcmludDMyKGF0KSB7Cisg
ICAgICAgIGxldCB2ID0gMDsKKyAgICAgICAgbGV0IHNoaWZ0ID0gMDsKKyAgICAgICAgbGV0IGJ5
dGUgPSAwOworICAgICAgICBkbyB7CisgICAgICAgICAgICBieXRlID0gdGhpcy5nZXRVaW50OChh
dCsrKTsKKyAgICAgICAgICAgIHYgPSAodiB8ICgoYnl0ZSAmIDB4N0YpIDw8IHNoaWZ0KSA+Pj4g
MCkgPj4+IDA7CisgICAgICAgICAgICBzaGlmdCArPSA3OworICAgICAgICB9IHdoaWxlICgoYnl0
ZSAmIDB4ODApICE9PSAwKTsKKyAgICAgICAgaWYgKHNoaWZ0IC0gNyA+IDMyKSB0aHJvdyBuZXcg
UmFuZ2VFcnJvcihgU2hpZnRpbmcgdG9vIG11Y2ggYXQgJHthdH1gKTsKKyAgICAgICAgaWYgKChz
aGlmdCA9PSAzNSkgJiYgKCgoYnl0ZSA8PCAyNikgPj4gMzApICE9ICgoYnl0ZSA8PCAyNSkgPj4g
MzEpKSkgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIG5vbi1zaWduaWZpY2FudCB2YXJpbnQz
MiBiaXRzIGluIGxhc3QgYnl0ZSAweCR7Ynl0ZS50b1N0cmluZygxNil9YCk7CisgICAgICAgIGlm
ICgoYnl0ZSAmIDB4NDApID09PSAweDQwKSB7CisgICAgICAgICAgICBjb25zdCBzZXh0ID0gc2hp
ZnQgPCAzMiA/IDMyIC0gc2hpZnQgOiAwOworICAgICAgICAgICAgdiA9ICh2IDw8IHNleHQpID4+
IHNleHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHYsIG5leHQ6IGF0IH07
CisgICAgfQorICAgIGdldFZhcnVpbnQxKGF0KSB7CisgICAgICAgIGNvbnN0IHJlcyA9IHRoaXMu
Z2V0VmFydWludDMyKGF0KTsKKyAgICAgICAgaWYgKHJlcy52YWx1ZSAhPT0gMCAmJiByZXMudmFs
dWUgIT09IDEpIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYSB2YXJ1aW50MSwgZ290IHZhbHVl
ICR7cmVzLnZhbHVlfWApOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICBnZXRWYXJ1
aW50NyhhdCkgeworICAgICAgICBjb25zdCByZXMgPSB0aGlzLmdldFZhcnVpbnQzMihhdCk7Cisg
ICAgICAgIGlmIChyZXMudmFsdWUgPiB2YXJ1aW50N01heCkgdGhyb3cgbmV3IEVycm9yKGBFeHBl
Y3RlZCBhIHZhcnVpbnQ3LCBnb3QgdmFsdWUgJHtyZXMudmFsdWV9YCk7CisgICAgICAgIHJldHVy
biByZXM7CisgICAgfQorICAgIGdldFN0cmluZyhhdCkgeworICAgICAgICBjb25zdCBzaXplID0g
dGhpcy5nZXRWYXJ1aW50MzIoYXQpOworICAgICAgICBjb25zdCBsYXN0ID0gc2l6ZS5uZXh0ICsg
c2l6ZS52YWx1ZTsKKyAgICAgICAgbGV0IGkgPSBzaXplLm5leHQ7CisgICAgICAgIGxldCBzdHIg
PSAiIjsKKyAgICAgICAgd2hpbGUgKGkgPCBsYXN0KSB7CisgICAgICAgICAgICAvLyBEZWNvZGUg
VVRGLTggMjAwMyBjb2RlIHBvaW50cy4KKyAgICAgICAgICAgIGNvbnN0IHBlZWsgPSB0aGlzLmdl
dFVpbnQ4KGkpOworICAgICAgICAgICAgbGV0IGNvZGU7CisgICAgICAgICAgICBpZiAoKHBlZWsg
JiAweDgwKSA9PT0gMHgwKSB7CisgICAgICAgICAgICAgICAgY29uc3QgdXRmOCA9IHRoaXMuZ2V0
VWludDgoaSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxKHV0ZjggJiAweDgwLCAweDAwKTsK
KyAgICAgICAgICAgICAgICBpICs9IDE7CisgICAgICAgICAgICAgICAgY29kZSA9IHV0Zjg7Cisg
ICAgICAgICAgICB9IGVsc2UgaWYgKChwZWVrICYgMHhFMCkgPT09IDB4QzApIHsKKyAgICAgICAg
ICAgICAgICBjb25zdCB1dGY4ID0gdGhpcy5nZXRVaW50MTYoaSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxKHV0ZjggJiAweEMwRTAsIDB4ODBDMCk7CisgICAgICAgICAgICAgICAgaSArPSAy
OworICAgICAgICAgICAgICAgIGNvZGUgPSAoKHV0ZjggJiAweDFGKSA8PCA2KSB8ICgodXRmOCAm
IDB4M0YwMCkgPj4gOCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKChwZWVrICYgMHhGMCkgPT09
IDB4RTApIHsKKyAgICAgICAgICAgICAgICBjb25zdCB1dGY4ID0gdGhpcy5nZXRVaW50MjQoaSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxKHV0ZjggJiAweEMwQzBGMCwgMHg4MDgwRTApOwor
ICAgICAgICAgICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgICAgICBjb2RlID0gKCh1dGY4ICYg
MHhGKSA8PCAxMikgfCAoKHV0ZjggJiAweDNGMDApID4+IDIpIHwgKCh1dGY4ICYgMHgzRjAwMDAp
ID4+IDE2KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoKHBlZWsgJiAweEY4KSA9PT0gMHhGMCkg
eworICAgICAgICAgICAgICAgIGNvbnN0IHV0ZjggPSB0aGlzLmdldFVpbnQzMihpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXEoKHV0ZjggJiAweEMwQzBDMEY4KSB8IDAsIDB4ODA4MDgwRjAg
fCAwKTsKKyAgICAgICAgICAgICAgICBpICs9IDQ7CisgICAgICAgICAgICAgICAgY29kZSA9ICgo
dXRmOCAmIDB4NykgPDwgMTgpIHwgKCh1dGY4ICYgMHgzRjAwKSA8PCA0KSB8ICgodXRmOCAmIDB4
M0YwMDAwKSA+PiAxMCkgfCAoKHV0ZjggJiAweDNGMDAwMDAwKSA+PiAyNCk7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWRseSBs
YXJnZSBVVEYtOCBpbml0aWFsIGJ5dGUgMHgke3BlZWsudG9TdHJpbmcoMTYpfWApOworICAgICAg
ICAgICAgc3RyICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNvZGUpOworICAgICAgICB9CisgICAg
ICAgIGlmIChpICE9PSBsYXN0KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTdHJpbmcg
ZGVjb2RpbmcgcmVhZCB1cCB0byAke2l9LCBleHBlY3RlZCAke2xhc3R9LCBVVEYtOCBkZWNvZGlu
ZyB3YXMgdG9vIGdyZWVkeWApOworICAgICAgICByZXR1cm4gc3RyOworICAgIH0KK307CisKK2Ns
YXNzIFBhdGNoYWJsZUxvd0xldmVsQmluYXJ5IGV4dGVuZHMgTG93TGV2ZWxCaW5hcnkgeworICAg
IGNvbnN0cnVjdG9yKHR5cGUsIGxvd0xldmVsQmluYXJ5KSB7CisgICAgICAgIHN1cGVyKCk7Cisg
ICAgICAgIHRoaXMudHlwZSA9IHR5cGU7CisgICAgICAgIHRoaXMudGFyZ2V0ID0gbG93TGV2ZWxC
aW5hcnk7CisgICAgICAgIHRoaXMuX2J1ZmZlcmVkX2J5dGVzID0gMDsKKyAgICB9CisgICAgX3B1
c2g4KHYpIHsgKyt0aGlzLl9idWZmZXJlZF9ieXRlczsgc3VwZXIuX3B1c2g4KHYpOyB9CisgICAg
YXBwbHkoKSB7CisgICAgICAgIHRoaXMudGFyZ2V0W3RoaXMudHlwZV0odGhpcy5fYnVmZmVyZWRf
Ynl0ZXMpOworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2J1ZmZlcmVkX2J5dGVz
OyArK2kpCisgICAgICAgICAgICB0aGlzLnRhcmdldC51aW50OCh0aGlzLl9idWZbaV0pOworICAg
IH0KK307CisKK0xvd0xldmVsQmluYXJ5LnZhcnVpbnQzMk1pbiA9IDA7CitMb3dMZXZlbEJpbmFy
eS52YXJpbnQ3TWluID0gLTBiMTAwMDAwMDsKK0xvd0xldmVsQmluYXJ5LnZhcmludDdNYXggPSAw
YjExMTExMTsKK0xvd0xldmVsQmluYXJ5LnZhcnVpbnQ3TWF4ID0gMGIxMTExMTExOworTG93TGV2
ZWxCaW5hcnkudmFydWludDMyTWF4ID0gKCgoKDEgPDwgMzEpID4+PiAwKSAtIDEpICogMikgKyAx
OworTG93TGV2ZWxCaW5hcnkudmFyaW50MzJNaW4gPSAtKCgxIDw8IDMxKSA+Pj4gMCk7CitMb3dM
ZXZlbEJpbmFyeS52YXJpbnQzMk1heCA9ICgoMSA8PCAzMSkgLSAxKSA+Pj4gMDsKK0xvd0xldmVs
QmluYXJ5LnZhckJpdHNNYXggPSA1OworCisKKy8vIEJ1aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnku
anMKK2NvbnN0IEJ1aWxkV2ViQXNzZW1ibHkgPSB7fTsKK3sKKyAgICBjb25zdCBwdXQgPSAoYmlu
LCB0eXBlLCB2YWx1ZSkgPT4gYmluW3R5cGVdKHZhbHVlKTsKKworICAgIGNvbnN0IHB1dFJlc2l6
YWJsZUxpbWl0cyA9IChiaW4sIGluaXRpYWwsIG1heGltdW0pID0+IHsKKyAgICAgICAgYXNzZXJ0
LnRydXRoeSh0eXBlb2YgaW5pdGlhbCA9PT0gIm51bWJlciIsICJXZSBleHBlY3QgJ2luaXRpYWwn
IHRvIGJlIGFuIGludGVnZXIiKTsKKyAgICAgICAgbGV0IGhhc01heGltdW0gPSAwOworICAgICAg
ICBpZiAodHlwZW9mIG1heGltdW0gPT09ICJudW1iZXIiKSB7CisgICAgICAgICAgICBoYXNNYXhp
bXVtID0gMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydC50cnV0aHkodHlw
ZW9mIG1heGltdW0gPT09ICJ1bmRlZmluZWQiLCAiV2UgZXhwZWN0ICdtYXhpbXVtJyB0byBiZSBh
biBpbnRlZ2VyIGlmIGl0J3MgZGVmaW5lZCIpOworICAgICAgICB9CisKKyAgICAgICAgcHV0KGJp
biwgInZhcnVpbnQxIiwgaGFzTWF4aW11bSk7CisgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIi
LCBpbml0aWFsKTsKKyAgICAgICAgaWYgKGhhc01heGltdW0pCisgICAgICAgICAgICBwdXQoYmlu
LCAidmFydWludDMyIiwgbWF4aW11bSk7CisgICAgfTsKKworICAgIGNvbnN0IHB1dFRhYmxlID0g
KGJpbiwge2luaXRpYWwsIG1heGltdW0sIGVsZW1lbnR9KSA9PiB7CisgICAgICAgIGFzc2VydC50
cnV0aHkoV0FTTS5pc1ZhbGlkVHlwZShlbGVtZW50KSwgIldlIGV4cGVjdCAnZWxlbWVudCcgdG8g
YmUgYSB2YWxpZCB0eXBlLiBJdCB3YXM6ICIgKyBlbGVtZW50KTsKKyAgICAgICAgcHV0KGJpbiwg
InZhcmludDciLCBXQVNNLnR5cGVWYWx1ZVtlbGVtZW50XSk7CisKKyAgICAgICAgcHV0UmVzaXph
YmxlTGltaXRzKGJpbiwgaW5pdGlhbCwgbWF4aW11bSk7CisgICAgfTsKKworICAgIGNvbnN0IHZh
bHVlVHlwZSA9IFdBU00uZGVzY3JpcHRpb24udHlwZS5pMzIudHlwZQorCisgICAgY29uc3QgcHV0
R2xvYmFsVHlwZSA9IChiaW4sIGdsb2JhbCkgPT4geworICAgICAgICBwdXQoYmluLCB2YWx1ZVR5
cGUsIFdBU00udHlwZVZhbHVlW2dsb2JhbC50eXBlXSk7CisgICAgICAgIHB1dChiaW4sICJ2YXJ1
aW50MSIsIGdsb2JhbC5tdXRhYmlsaXR5KTsKKyAgICB9OworCisgICAgY29uc3QgcHV0T3AgPSAo
YmluLCBvcCkgPT4geworICAgICAgICBwdXQoYmluLCAidWludDgiLCBvcC52YWx1ZSk7CisgICAg
ICAgIGlmIChvcC5hcmd1bWVudHMubGVuZ3RoICE9PSAwKQorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKGBVbmltcGxlbWVudGVkOiBhcmd1bWVudHNgKTsgLy8gRklYTUUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjcwNgorCisgICAgICAgIHN3aXRjaCAob3Au
bmFtZSkgeworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkg
PCBvcC5pbW1lZGlhdGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgdHlw
ZSA9IFdBU00uZGVzY3JpcHRpb24ub3Bjb2RlW29wLm5hbWVdLmltbWVkaWF0ZVtpXS50eXBlCisg
ICAgICAgICAgICAgICAgaWYgKCFiaW5bdHlwZV0pCisgICAgICAgICAgICAgICAgICAgIHRocm93
IG5ldyBUeXBlRXJyb3IoYFVua25vd24gdHlwZTogJHt0eXBlfSBpbiBvcDogJHtvcC5uYW1lfWAp
OworICAgICAgICAgICAgICAgIHB1dChiaW4sIHR5cGUsIG9wLmltbWVkaWF0ZXNbaV0pOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgImkzMi5jb25zdCI6
IHsKKyAgICAgICAgICAgIGFzc2VydC5lcShvcC5pbW1lZGlhdGVzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBsZXQgaW1tID0gb3AuaW1tZWRpYXRlc1swXTsKKyAgICAgICAgICAgIC8vIERvIGEg
c3RhdGljIGNhc3QgdG8gbWFrZSBsYXJnZSBpbnQzMnMgc2lnbmVkLgorICAgICAgICAgICAgaWYg
KGltbSA+PSAyICoqIDMxKQorICAgICAgICAgICAgICAgIGltbSA9IGltbSAtICgyICoqIDMyKTsK
KyAgICAgICAgICAgIHB1dChiaW4sICJ2YXJpbnQzMiIsIGltbSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBjYXNlICJicl90YWJsZSI6CisgICAgICAgICAgICBwdXQo
YmluLCAidmFydWludDMyIiwgb3AuaW1tZWRpYXRlcy5sZW5ndGggLSAxKTsKKyAgICAgICAgICAg
IGZvciAobGV0IGltbSBvZiBvcC5pbW1lZGlhdGVzKQorICAgICAgICAgICAgICAgIHB1dChiaW4s
ICJ2YXJ1aW50MzIiLCBpbW0pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
OworCisgICAgY29uc3QgcHV0SW5pdEV4cHIgPSAoYmluLCBleHByKSA9PiB7CisgICAgICAgIHB1
dE9wKGJpbiwgeyB2YWx1ZTogV0FTTS5kZXNjcmlwdGlvbi5vcGNvZGVbZXhwci5vcF0udmFsdWUs
IG5hbWU6IGV4cHIub3AsIGltbWVkaWF0ZXM6IFtleHByLmluaXRWYWx1ZV0sIGFyZ3VtZW50czog
W10gfSk7CisgICAgICAgIHB1dE9wKGJpbiwgeyB2YWx1ZTogV0FTTS5kZXNjcmlwdGlvbi5vcGNv
ZGUuZW5kLnZhbHVlLCBuYW1lOiAiZW5kIiwgaW1tZWRpYXRlczogW10sIGFyZ3VtZW50czogW10g
fSk7CisgICAgfTsKKworICAgIGNvbnN0IGVtaXR0ZXJzID0geworICAgICAgICBUeXBlOiAoc2Vj
dGlvbiwgYmluKSA9PiB7CisgICAgICAgICAgICBwdXQoYmluLCAidmFydWludDMyIiwgc2VjdGlv
bi5kYXRhLmxlbmd0aCk7CisgICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHNlY3Rpb24u
ZGF0YSkgeworICAgICAgICAgICAgICAgIHB1dChiaW4sICJ2YXJpbnQ3IiwgV0FTTS50eXBlVmFs
dWVbImZ1bmMiXSk7CisgICAgICAgICAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQzMiIsIGVudHJ5
LnBhcmFtcy5sZW5ndGgpOworICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGFyYW0gb2YgZW50
cnkucGFyYW1zKQorICAgICAgICAgICAgICAgICAgICBwdXQoYmluLCAidmFyaW50NyIsIFdBU00u
dHlwZVZhbHVlW3BhcmFtXSk7CisgICAgICAgICAgICAgICAgaWYgKGVudHJ5LnJldCA9PT0gInZv
aWQiKQorICAgICAgICAgICAgICAgICAgICBwdXQoYmluLCAidmFydWludDEiLCAwKTsKKyAgICAg
ICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQx
IiwgMSk7CisgICAgICAgICAgICAgICAgICAgIHB1dChiaW4sICJ2YXJpbnQ3IiwgV0FTTS50eXBl
VmFsdWVbZW50cnkucmV0XSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICB9LAorICAgICAgICBJbXBvcnQ6IChzZWN0aW9uLCBiaW4pID0+IHsKKyAgICAgICAgICAg
IHB1dChiaW4sICJ2YXJ1aW50MzIiLCBzZWN0aW9uLmRhdGEubGVuZ3RoKTsKKyAgICAgICAgICAg
IGZvciAoY29uc3QgZW50cnkgb2Ygc2VjdGlvbi5kYXRhKSB7CisgICAgICAgICAgICAgICAgcHV0
KGJpbiwgInN0cmluZyIsIGVudHJ5Lm1vZHVsZSk7CisgICAgICAgICAgICAgICAgcHV0KGJpbiwg
InN0cmluZyIsIGVudHJ5LmZpZWxkKTsKKyAgICAgICAgICAgICAgICBwdXQoYmluLCAidWludDgi
LCBXQVNNLmV4dGVybmFsS2luZFZhbHVlW2VudHJ5LmtpbmRdKTsKKyAgICAgICAgICAgICAgICBz
d2l0Y2ggKGVudHJ5LmtpbmQpIHsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OiB0aHJvdyBuZXcg
RXJyb3IoYEltcGxlbWVudGF0aW9uIHByb2JsZW06IHVuZXhwZWN0ZWQga2luZCAke2VudHJ5Lmtp
bmR9YCk7CisgICAgICAgICAgICAgICAgY2FzZSAiRnVuY3Rpb24iOiB7CisgICAgICAgICAgICAg
ICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBlbnRyeS50eXBlKTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhc2UgIlRh
YmxlIjogeworICAgICAgICAgICAgICAgICAgICBwdXRUYWJsZShiaW4sIGVudHJ5LnRhYmxlRGVz
Y3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgY2FzZSAiTWVtb3J5IjogeworICAgICAgICAgICAgICAgICAgICBs
ZXQge2luaXRpYWwsIG1heGltdW19ID0gZW50cnkubWVtb3J5RGVzY3JpcHRpb247CisgICAgICAg
ICAgICAgICAgICAgIHB1dFJlc2l6YWJsZUxpbWl0cyhiaW4sIGluaXRpYWwsIG1heGltdW0pOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAg
ICAgICAgIGNhc2UgIkdsb2JhbCI6CisgICAgICAgICAgICAgICAgICAgIHB1dEdsb2JhbFR5cGUo
YmluLCBlbnRyeS5nbG9iYWxEZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAg
ICBGdW5jdGlvbjogKHNlY3Rpb24sIGJpbikgPT4geworICAgICAgICAgICAgcHV0KGJpbiwgInZh
cnVpbnQzMiIsIHNlY3Rpb24uZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgZm9yIChjb25zdCBz
aWduYXR1cmUgb2Ygc2VjdGlvbi5kYXRhKQorICAgICAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1
aW50MzIiLCBzaWduYXR1cmUpOworICAgICAgICB9LAorCisgICAgICAgIFRhYmxlOiAoc2VjdGlv
biwgYmluKSA9PiB7CisgICAgICAgICAgICBwdXQoYmluLCAidmFydWludDMyIiwgc2VjdGlvbi5k
YXRhLmxlbmd0aCk7CisgICAgICAgICAgICBmb3IgKGNvbnN0IHt0YWJsZURlc2NyaXB0aW9ufSBv
ZiBzZWN0aW9uLmRhdGEpIHsKKyAgICAgICAgICAgICAgICBwdXRUYWJsZShiaW4sIHRhYmxlRGVz
Y3JpcHRpb24pOworICAgICAgICAgICAgfQorICAgICAgICB9LAorCisgICAgICAgIE1lbW9yeTog
KHNlY3Rpb24sIGJpbikgPT4geworICAgICAgICAgICAgLy8gRmxhZ3MsIGN1cnJlbnRseSBjYW4g
b25seSBiZSBbMCwxXQorICAgICAgICAgICAgcHV0KGJpbiwgInZhcnVpbnQxIiwgc2VjdGlvbi5k
YXRhLmxlbmd0aCk7CisgICAgICAgICAgICBmb3IgKGNvbnN0IG1lbW9yeSBvZiBzZWN0aW9uLmRh
dGEpIHsKKyAgICAgICAgICAgICAgICBwdXQoYmluLCAidmFydWludDMyIiwgbWVtb3J5Lm1heCA/
IDEgOiAwKTsKKyAgICAgICAgICAgICAgICBwdXQoYmluLCAidmFydWludDMyIiwgbWVtb3J5Lmlu
aXRpYWwpOworICAgICAgICAgICAgICAgIGlmIChtZW1vcnkubWF4KQorICAgICAgICAgICAgICAg
ICAgICBwdXQoYmluLCAidmFydWludDMyIiwgbWVtb3J5Lm1heCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0sCisKKyAgICAgICAgR2xvYmFsOiAoc2VjdGlvbiwgYmluKSA9PiB7CisgICAgICAg
ICAgICBwdXQoYmluLCAidmFydWludDMyIiwgc2VjdGlvbi5kYXRhLmxlbmd0aCk7CisgICAgICAg
ICAgICBmb3IgKGNvbnN0IGdsb2JhbCBvZiBzZWN0aW9uLmRhdGEpIHsKKyAgICAgICAgICAgICAg
ICBwdXRHbG9iYWxUeXBlKGJpbiwgZ2xvYmFsKTsKKyAgICAgICAgICAgICAgICBwdXRJbml0RXhw
cihiaW4sIGdsb2JhbCkKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAgICBFeHBv
cnQ6IChzZWN0aW9uLCBiaW4pID0+IHsKKyAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIi
LCBzZWN0aW9uLmRhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2Yg
c2VjdGlvbi5kYXRhKSB7CisgICAgICAgICAgICAgICAgcHV0KGJpbiwgInN0cmluZyIsIGVudHJ5
LmZpZWxkKTsKKyAgICAgICAgICAgICAgICBwdXQoYmluLCAidWludDgiLCBXQVNNLmV4dGVybmFs
S2luZFZhbHVlW2VudHJ5LmtpbmRdKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGVudHJ5Lmtp
bmQpIHsKKyAgICAgICAgICAgICAgICBjYXNlICJHbG9iYWwiOgorICAgICAgICAgICAgICAgIGNh
c2UgIkZ1bmN0aW9uIjoKKyAgICAgICAgICAgICAgICBjYXNlICJNZW1vcnkiOgorICAgICAgICAg
ICAgICAgIGNhc2UgIlRhYmxlIjoKKyAgICAgICAgICAgICAgICAgICAgcHV0KGJpbiwgInZhcnVp
bnQzMiIsIGVudHJ5LmluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKGBJbXBsZW1lbnRhdGlvbiBwcm9ibGVt
OiB1bmV4cGVjdGVkIGtpbmQgJHtlbnRyeS5raW5kfWApOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgU3RhcnQ6IChzZWN0aW9uLCBiaW4pID0+
IHsKKyAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBzZWN0aW9uLmRhdGFbMF0pOwor
ICAgICAgICB9LAorICAgICAgICBFbGVtZW50OiAoc2VjdGlvbiwgYmluKSA9PiB7CisgICAgICAg
ICAgICBjb25zdCBkYXRhID0gc2VjdGlvbi5kYXRhOworICAgICAgICAgICAgcHV0KGJpbiwgInZh
cnVpbnQzMiIsIGRhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgIGZvciAoY29uc3Qge3RhYmxlSW5k
ZXgsIG9mZnNldCwgZnVuY3Rpb25JbmRpY2VzfSBvZiBkYXRhKSB7CisgICAgICAgICAgICAgICAg
cHV0KGJpbiwgInZhcnVpbnQzMiIsIHRhYmxlSW5kZXgpOworCisgICAgICAgICAgICAgICAgbGV0
IGluaXRFeHByOworICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb2Zmc2V0ID09PSAibnVtYmVy
IikKKyAgICAgICAgICAgICAgICAgICAgaW5pdEV4cHIgPSB7b3A6ICJpMzIuY29uc3QiLCBpbml0
VmFsdWU6IG9mZnNldH07CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICBpbml0RXhwciA9IG9mZnNldDsKKyAgICAgICAgICAgICAgICBwdXRJbml0RXhwcihiaW4sIGlu
aXRFeHByKTsKKworICAgICAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBmdW5jdGlv
bkluZGljZXMubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZ1bmN0aW9uSW5k
ZXggb2YgZnVuY3Rpb25JbmRpY2VzKQorICAgICAgICAgICAgICAgICAgICBwdXQoYmluLCAidmFy
dWludDMyIiwgZnVuY3Rpb25JbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisKKyAg
ICAgICAgQ29kZTogKHNlY3Rpb24sIGJpbikgPT4geworICAgICAgICAgICAgcHV0KGJpbiwgInZh
cnVpbnQzMiIsIHNlY3Rpb24uZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgZm9yIChjb25zdCBm
dW5jIG9mIHNlY3Rpb24uZGF0YSkgeworICAgICAgICAgICAgICAgIGxldCBmdW5jQmluID0gYmlu
Lm5ld1BhdGNoYWJsZSgidmFydWludDMyIik7CisgICAgICAgICAgICAgICAgY29uc3QgbG9jYWxD
b3VudCA9IGZ1bmMubG9jYWxzLmxlbmd0aCAtIGZ1bmMucGFyYW1ldGVyQ291bnQ7CisgICAgICAg
ICAgICAgICAgcHV0KGZ1bmNCaW4sICJ2YXJ1aW50MzIiLCBsb2NhbENvdW50KTsKKyAgICAgICAg
ICAgICAgICBmb3IgKGxldCBpID0gZnVuYy5wYXJhbWV0ZXJDb3VudDsgaSA8IGZ1bmMubG9jYWxz
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHB1dChmdW5jQmluLCAidmFydWlu
dDMyIiwgMSk7CisgICAgICAgICAgICAgICAgICAgIHB1dChmdW5jQmluLCAidmFyaW50NyIsIFdB
U00udHlwZVZhbHVlW2Z1bmMubG9jYWxzW2ldXSk7CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgZm9yIChjb25zdCBvcCBvZiBmdW5jLmNvZGUpCisgICAgICAgICAgICAgICAg
ICAgIHB1dE9wKGZ1bmNCaW4sIG9wKTsKKworICAgICAgICAgICAgICAgIGZ1bmNCaW4uYXBwbHko
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAgICBEYXRhOiAoc2VjdGlvbiwg
YmluKSA9PiB7CisgICAgICAgICAgICBwdXQoYmluLCAidmFydWludDMyIiwgc2VjdGlvbi5kYXRh
Lmxlbmd0aCk7CisgICAgICAgICAgICBmb3IgKGNvbnN0IGRhdHVtIG9mIHNlY3Rpb24uZGF0YSkg
eworICAgICAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBkYXR1bS5pbmRleCk7Cisg
ICAgICAgICAgICAgICAgLy8gRklYTUUgYWxsb3cgY29tcGxleCBpbml0X2V4cHIgaGVyZS4gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTcwMAorICAgICAgICAgICAg
ICAgIC8vIEZvciBub3cgd2Ugb25seSBoYW5kbGUgaTMyLmNvbnN0IGFzIG9mZnNldC4KKyAgICAg
ICAgICAgICAgICBwdXQoYmluLCAidWludDgiLCBXQVNNLmRlc2NyaXB0aW9uLm9wY29kZVsiaTMy
LmNvbnN0Il0udmFsdWUpOworICAgICAgICAgICAgICAgIHB1dChiaW4sIFdBU00uZGVzY3JpcHRp
b24ub3Bjb2RlWyJpMzIuY29uc3QiXS5pbW1lZGlhdGVbMF0udHlwZSwgZGF0dW0ub2Zmc2V0KTsK
KyAgICAgICAgICAgICAgICBwdXQoYmluLCAidWludDgiLCBXQVNNLmRlc2NyaXB0aW9uLm9wY29k
ZVsiZW5kIl0udmFsdWUpOworICAgICAgICAgICAgICAgIHB1dChiaW4sICJ2YXJ1aW50MzIiLCBk
YXR1bS5kYXRhLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBieXRlIG9mIGRh
dHVtLmRhdGEpCisgICAgICAgICAgICAgICAgICAgIHB1dChiaW4sICJ1aW50OCIsIGJ5dGUpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgIH07CisKKyAgICBCdWlsZFdlYkFzc2VtYmx5
LkJpbmFyeSA9IChwcmVhbWJsZSwgc2VjdGlvbnMpID0+IHsKKyAgICAgICAgbGV0IHdhc21CaW4g
PSBuZXcgTG93TGV2ZWxCaW5hcnkoKTsKKyAgICAgICAgZm9yIChjb25zdCBwIG9mIFdBU00uZGVz
Y3JpcHRpb24ucHJlYW1ibGUpCisgICAgICAgICAgICBwdXQod2FzbUJpbiwgcC50eXBlLCBwcmVh
bWJsZVtwLm5hbWVdKTsKKyAgICAgICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHNlY3Rpb25zKSB7
CisgICAgICAgICAgICBwdXQod2FzbUJpbiwgV0FTTS5zZWN0aW9uRW5jb2RpbmdUeXBlLCBzZWN0
aW9uLmlkKTsKKyAgICAgICAgICAgIGxldCBzZWN0aW9uQmluID0gd2FzbUJpbi5uZXdQYXRjaGFi
bGUoInZhcnVpbnQzMiIpOworICAgICAgICAgICAgY29uc3QgZW1pdHRlciA9IGVtaXR0ZXJzW3Nl
Y3Rpb24ubmFtZV07CisgICAgICAgICAgICBpZiAoZW1pdHRlcikKKyAgICAgICAgICAgICAgICBl
bWl0dGVyKHNlY3Rpb24sIHNlY3Rpb25CaW4pOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICAgICAgLy8gVW5rbm93biBzZWN0aW9uLgorICAgICAgICAgICAgICAgIHB1dChzZWN0aW9u
QmluLCAic3RyaW5nIiwgc2VjdGlvbi5uYW1lKTsKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0
IGJ5dGUgb2Ygc2VjdGlvbi5kYXRhKQorICAgICAgICAgICAgICAgICAgICBwdXQoc2VjdGlvbkJp
biwgInVpbnQ4IiwgYnl0ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWN0aW9uQmlu
LmFwcGx5KCk7CisgICAgICAgIH0KKyAgICAgICAgd2FzbUJpbi50cmltKCk7CisgICAgICAgIHJl
dHVybiB3YXNtQmluOworICAgIH07Cit9CisKKworY29uc3QgTExCID0gTG93TGV2ZWxCaW5hcnk7
CisKK2NvbnN0IF90b0phdmFTY3JpcHROYW1lID0gbmFtZSA9PiB7CisgICAgY29uc3QgY2FtZWxD
YXNlID0gbmFtZS5yZXBsYWNlKC8oW15hLXowLTldLikvZywgYyA9PiBjWzFdLnRvVXBwZXJDYXNl
KCkpOworICAgIGNvbnN0IENhbWVsQ2FzZSA9IGNhbWVsQ2FzZS5jaGFyQXQoMCkudG9VcHBlckNh
c2UoKSArIGNhbWVsQ2FzZS5zbGljZSgxKTsKKyAgICByZXR1cm4gQ2FtZWxDYXNlOworfTsKKwor
Y29uc3QgX2lzVmFsaWRWYWx1ZSA9ICh2YWx1ZSwgdHlwZSkgPT4geworICAgIHN3aXRjaCAodHlw
ZSkgeworICAgIC8vIFdlIGFsbG93IGJvdGggc2lnbmVkIGFuZCB1bnNpZ25lZCBudW1iZXJzLgor
ICAgIGNhc2UgImkzMiI6IHJldHVybiBNYXRoLnJvdW5kKHZhbHVlKSA9PT0gdmFsdWUgJiYgTExC
LnZhcmludDMyTWluIDw9IHZhbHVlICYmIHZhbHVlIDw9IExMQi52YXJ1aW50MzJNYXg7CisgICAg
Y2FzZSAiaTY0IjogcmV0dXJuIHRydWU7IC8vIEZJWE1FIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjM0MjAgNjQtYml0IHZhbHVlcworICAgIGNhc2UgImYzMiI6IHJl
dHVybiB0eXBlb2YodmFsdWUpID09PSAibnVtYmVyIiAmJiBpc0Zpbml0ZSh2YWx1ZSk7CisgICAg
Y2FzZSAiZjY0IjogcmV0dXJuIHR5cGVvZih2YWx1ZSkgPT09ICJudW1iZXIiICYmIGlzRmluaXRl
KHZhbHVlKTsKKyAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoYEltcGxlbWVudGF0aW9uIHBy
b2JsZW06IHVua25vd24gdHlwZSAke3R5cGV9YCk7CisgICAgfQorfTsKK2NvbnN0IF91bmtub3du
U2VjdGlvbklkID0gMDsKKworY29uc3QgX25vcm1hbGl6ZUZ1bmN0aW9uU2lnbmF0dXJlID0gKHBh
cmFtcywgcmV0KSA9PiB7CisgICAgYXNzZXJ0LmlzQXJyYXkocGFyYW1zKTsKKyAgICBmb3IgKGNv
bnN0IHAgb2YgcGFyYW1zKQorICAgICAgICBhc3NlcnQudHJ1dGh5KFdBU00uaXNWYWxpZFZhbHVl
VHlwZShwKSwgYFR5cGUgcGFyYW1ldGVyICR7cH0gbmVlZHMgYSB2YWxpZCB2YWx1ZSB0eXBlYCk7
CisgICAgaWYgKHR5cGVvZihyZXQpID09PSAidW5kZWZpbmVkIikKKyAgICAgICAgcmV0ID0gInZv
aWQiOworICAgIGFzc2VydC5pc05vdEFycmF5KHJldCwgYE11bHRpcGxlIHJldHVybiB2YWx1ZXMg
bm90IHN1cHBvcnRlZCBieSBXZWJBc3NlbWJseSB5ZXRgKTsKKyAgICBhc3NlcnQudHJ1dGh5KFdB
U00uaXNWYWxpZEJsb2NrVHlwZShyZXQpLCBgVHlwZSByZXR1cm4gJHtyZXR9IG11c3QgYmUgdmFs
aWQgYmxvY2sgdHlwZWApOworICAgIHJldHVybiBbcGFyYW1zLCByZXRdOworfTsKKworY29uc3Qg
X2Vycm9ySGFuZGxpbmdQcm94eUZvciA9IGJ1aWxkZXIgPT4gYnVpbGRlclsiX19pc1Byb3h5Il0g
PyBidWlsZGVyIDogbmV3IFByb3h5KGJ1aWxkZXIsIHsKKyAgICBnZXQ6ICh0YXJnZXQsIHByb3Bl
cnR5LCByZWNlaXZlcikgPT4geworICAgICAgICBpZiAocHJvcGVydHkgPT09ICJfX2lzUHJveHki
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmICh0YXJnZXRbcHJvcGVydHld
ID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFdlYkFzc2VtYmx5
IGJ1aWxkZXIgcmVjZWl2ZWQgdW5rbm93biBwcm9wZXJ0eSAnJHtwcm9wZXJ0eX0nYCk7CisgICAg
ICAgIHJldHVybiB0YXJnZXRbcHJvcGVydHldOworICAgIH0KK30pOworCitjb25zdCBfbWF5YmVS
ZWdpc3RlclR5cGUgPSAoYnVpbGRlciwgdHlwZSkgPT4geworICAgIGNvbnN0IHR5cGVTZWN0aW9u
ID0gYnVpbGRlci5fZ2V0U2VjdGlvbigiVHlwZSIpOworICAgIGlmICh0eXBlb2YodHlwZSkgPT09
ICJudW1iZXIiKSB7CisgICAgICAgIC8vIFR5cGUgbnVtYmVycyBhbHJlYWR5IHJlZmVyIHRvIHRo
ZSB0eXBlIHNlY3Rpb24sIG5vIG5lZWQgdG8gcmVnaXN0ZXIgdGhlbS4KKyAgICAgICAgaWYgKGJ1
aWxkZXIuX2NoZWNrZWQpIHsKKyAgICAgICAgICAgIGFzc2VydC5pc05vdFVuZGVmKHR5cGVTZWN0
aW9uLCBgQ2FuIG5vdCB1c2UgdHlwZSAke3R5cGV9IGlmIGEgdHlwZSBzZWN0aW9uIGlzIG5vdCBw
cmVzZW50YCk7CisgICAgICAgICAgICBhc3NlcnQuaXNOb3RVbmRlZih0eXBlU2VjdGlvbi5kYXRh
W3R5cGVdLCBgVHlwZSAke3R5cGV9IGRvZXMgbm90IGV4aXN0IGluIHR5cGUgc2VjdGlvbmApOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiB0eXBlOworICAgIH0KKyAgICBhc3NlcnQuaGFzT2Jq
ZWN0UHJvcGVydHkodHlwZSwgInBhcmFtcyIsIGBFeHBlY3RlZCB0eXBlIHRvIGJlIGEgbnVtYmVy
IG9yIG9iamVjdCB3aXRoICdwYXJhbXMnIGFuZCBvcHRpb25hbGx5ICdyZXQnIGZpZWxkc2ApOwor
ICAgIGNvbnN0IFtwYXJhbXMsIHJldF0gPSBfbm9ybWFsaXplRnVuY3Rpb25TaWduYXR1cmUodHlw
ZS5wYXJhbXMsIHR5cGUucmV0KTsKKyAgICBhc3NlcnQuaXNOb3RVbmRlZih0eXBlU2VjdGlvbiwg
YENhbiBub3QgYWRkIHR5cGUgaWYgYSB0eXBlIHNlY3Rpb24gaXMgbm90IHByZXNlbnRgKTsKKyAg
ICAvLyBUcnkgcmV1c2luZyBhbiBlcXVpdmFsZW50IHR5cGUgZnJvbSB0aGUgdHlwZSBzZWN0aW9u
LgorICAgIHR5cGVzOgorICAgIGZvciAobGV0IGkgPSAwOyBpICE9PSB0eXBlU2VjdGlvbi5kYXRh
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIGNvbnN0IHQgPSB0eXBlU2VjdGlvbi5kYXRhW2ldOwor
ICAgICAgICBpZiAodC5yZXQgPT09IHJldCAmJiBwYXJhbXMubGVuZ3RoID09PSB0LnBhcmFtcy5s
ZW5ndGgpIHsKKyAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqICE9PSB0LnBhcmFtcy5sZW5n
dGg7ICsraikgeworICAgICAgICAgICAgICAgIGlmIChwYXJhbXNbal0gIT09IHQucGFyYW1zW2pd
KQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZSB0eXBlczsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIHR5cGUgPSBpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
CisgICAgaWYgKHR5cGVvZih0eXBlKSAhPT0gIm51bWJlciIpIHsKKyAgICAgICAgLy8gQ291bGRu
J3QgcmV1c2UgYSBwcmUtZXhpc3RpbmcgdHlwZSwgcmVnaXN0ZXIgdGhpcyB0eXBlIGluIHRoZSB0
eXBlIHNlY3Rpb24uCisgICAgICAgIHR5cGVTZWN0aW9uLmRhdGEucHVzaCh7IHBhcmFtczogcGFy
YW1zLCByZXQ6IHJldCB9KTsKKyAgICAgICAgdHlwZSA9IHR5cGVTZWN0aW9uLmRhdGEubGVuZ3Ro
IC0gMTsKKyAgICB9CisgICAgcmV0dXJuIHR5cGU7Cit9OworCitjb25zdCBfaW1wb3J0RnVuY3Rp
b25Db250aW51YXRpb24gPSAoYnVpbGRlciwgc2VjdGlvbiwgbmV4dEJ1aWxkZXIpID0+IHsKKyAg
ICByZXR1cm4gKG1vZHVsZSwgZmllbGQsIHR5cGUpID0+IHsKKyAgICAgICAgYXNzZXJ0LmlzU3Ry
aW5nKG1vZHVsZSwgYEltcG9ydCBmdW5jdGlvbiBtb2R1bGUgc2hvdWxkIGJlIGEgc3RyaW5nLCBn
b3QgIiR7bW9kdWxlfSJgKTsKKyAgICAgICAgYXNzZXJ0LmlzU3RyaW5nKGZpZWxkLCBgSW1wb3J0
IGZ1bmN0aW9uIGZpZWxkIHNob3VsZCBiZSBhIHN0cmluZywgZ290ICIke2ZpZWxkfSJgKTsKKyAg
ICAgICAgY29uc3QgdHlwZVNlY3Rpb24gPSBidWlsZGVyLl9nZXRTZWN0aW9uKCJUeXBlIik7Cisg
ICAgICAgIHR5cGUgPSBfbWF5YmVSZWdpc3RlclR5cGUoYnVpbGRlciwgdHlwZSk7CisgICAgICAg
IHNlY3Rpb24uZGF0YS5wdXNoKHsgZmllbGQ6IGZpZWxkLCB0eXBlOiB0eXBlLCBraW5kOiAiRnVu
Y3Rpb24iLCBtb2R1bGU6IG1vZHVsZSB9KTsKKyAgICAgICAgLy8gSW1wb3J0cyBhbHNvIGNvdW50
IGluIHRoZSBmdW5jdGlvbiBpbmRleCBzcGFjZS4gTWFwIHRoZW0gYXMgb2JqZWN0cyB0byBhdm9p
ZCBjbGFzaGluZyB3aXRoIENvZGUgZnVuY3Rpb25zJyBuYW1lcy4KKyAgICAgICAgYnVpbGRlci5f
cmVnaXN0ZXJGdW5jdGlvblRvSW5kZXhTcGFjZSh7IG1vZHVsZTogbW9kdWxlLCBmaWVsZDogZmll
bGQgfSk7CisgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKG5leHRCdWlsZGVy
KTsKKyAgICB9OworfTsKKworY29uc3QgX2ltcG9ydE1lbW9yeUNvbnRpbnVhdGlvbiA9IChidWls
ZGVyLCBzZWN0aW9uLCBuZXh0QnVpbGRlcikgPT4geworICAgIHJldHVybiAobW9kdWxlLCBmaWVs
ZCwge2luaXRpYWwsIG1heGltdW19KSA9PiB7CisgICAgICAgIGFzc2VydC5pc1N0cmluZyhtb2R1
bGUsIGBJbXBvcnQgTWVtb3J5IG1vZHVsZSBzaG91bGQgYmUgYSBzdHJpbmcsIGdvdCAiJHttb2R1
bGV9ImApOworICAgICAgICBhc3NlcnQuaXNTdHJpbmcoZmllbGQsIGBJbXBvcnQgTWVtb3J5IGZp
ZWxkIHNob3VsZCBiZSBhIHN0cmluZywgZ290ICIke2ZpZWxkfSJgKTsKKyAgICAgICAgc2VjdGlv
bi5kYXRhLnB1c2goe21vZHVsZSwgZmllbGQsIGtpbmQ6ICJNZW1vcnkiLCBtZW1vcnlEZXNjcmlw
dGlvbjoge2luaXRpYWwsIG1heGltdW19fSk7CisgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGlu
Z1Byb3h5Rm9yKG5leHRCdWlsZGVyKTsKKyAgICB9OworfTsKKworY29uc3QgX2ltcG9ydFRhYmxl
Q29udGludWF0aW9uID0gKGJ1aWxkZXIsIHNlY3Rpb24sIG5leHRCdWlsZGVyKSA9PiB7CisgICAg
cmV0dXJuIChtb2R1bGUsIGZpZWxkLCB7aW5pdGlhbCwgbWF4aW11bSwgZWxlbWVudH0pID0+IHsK
KyAgICAgICAgYXNzZXJ0LmlzU3RyaW5nKG1vZHVsZSwgYEltcG9ydCBUYWJsZSBtb2R1bGUgc2hv
dWxkIGJlIGEgc3RyaW5nLCBnb3QgIiR7bW9kdWxlfSJgKTsKKyAgICAgICAgYXNzZXJ0LmlzU3Ry
aW5nKGZpZWxkLCBgSW1wb3J0IFRhYmxlIGZpZWxkIHNob3VsZCBiZSBhIHN0cmluZywgZ290ICIk
e2ZpZWxkfSJgKTsKKyAgICAgICAgc2VjdGlvbi5kYXRhLnB1c2goe21vZHVsZSwgZmllbGQsIGtp
bmQ6ICJUYWJsZSIsIHRhYmxlRGVzY3JpcHRpb246IHtpbml0aWFsLCBtYXhpbXVtLCBlbGVtZW50
fX0pOworICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihuZXh0QnVpbGRlcik7
CisgICAgfTsKK307CisKK2NvbnN0IF9leHBvcnRGdW5jdGlvbkNvbnRpbnVhdGlvbiA9IChidWls
ZGVyLCBzZWN0aW9uLCBuZXh0QnVpbGRlcikgPT4geworICAgIHJldHVybiAoZmllbGQsIGluZGV4
LCB0eXBlKSA9PiB7CisgICAgICAgIGFzc2VydC5pc1N0cmluZyhmaWVsZCwgYEV4cG9ydCBmdW5j
dGlvbiBmaWVsZCBzaG91bGQgYmUgYSBzdHJpbmcsIGdvdCAiJHtmaWVsZH0iYCk7CisgICAgICAg
IGNvbnN0IHR5cGVTZWN0aW9uID0gYnVpbGRlci5fZ2V0U2VjdGlvbigiVHlwZSIpOworICAgICAg
ICBpZiAodHlwZW9mKHR5cGUpICE9PSAidW5kZWZpbmVkIikgeworICAgICAgICAgICAgLy8gRXhw
b3J0cyBjYW4gbGVhdmUgdGhlIHR5cGUgdW5zcGVjaWZpZWQsIGxldHRpbmcgdGhlIENvZGUgYnVp
bGRlciBwYXRjaCB0aGVtIHVwIGxhdGVyLgorICAgICAgICAgICAgdHlwZSA9IF9tYXliZVJlZ2lz
dGVyVHlwZShidWlsZGVyLCB0eXBlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdlIGNhbid0
IGNoZWNrIG11Y2ggYWJvdXQgImluZGV4IiBoZXJlIGJlY2F1c2UgdGhlIENvZGUgc2VjdGlvbiBz
dWNjZWVkcyB0aGUgRXhwb3J0IHNlY3Rpb24uIE1vcmUgd29yayBpcyBkb25lIGF0IENvZGUoKS5F
bmQoKSB0aW1lLgorICAgICAgICBzd2l0Y2ggKHR5cGVvZihpbmRleCkpIHsKKyAgICAgICAgY2Fz
ZSAic3RyaW5nIjogYnJlYWs7IC8vIEFzc3VtZSBpdCdzIGEgZnVuY3Rpb24gbmFtZSB3aGljaCB3
aWxsIGJlIHJldmVhbGVkIGluIHRoZSBDb2RlIHNlY3Rpb24uCisgICAgICAgIGNhc2UgIm51bWJl
ciI6IGJyZWFrOyAvLyBBc3N1bWUgaXQncyBhIG51bWJlciBpbiB0aGUgImZ1bmN0aW9uIGluZGV4
IHNwYWNlIi4KKyAgICAgICAgY2FzZSAib2JqZWN0IjoKKyAgICAgICAgICAgIC8vIFJlLWV4cG9y
dGluZyBhbiBpbXBvcnQuCisgICAgICAgICAgICBhc3NlcnQuaGFzT2JqZWN0UHJvcGVydHkoaW5k
ZXgsICJtb2R1bGUiLCBgUmUtZXhwb3J0aW5nICIke2ZpZWxkfSIgZnJvbSBhbiBpbXBvcnRgKTsK
KyAgICAgICAgICAgIGFzc2VydC5oYXNPYmplY3RQcm9wZXJ0eShpbmRleCwgImZpZWxkIiwgYFJl
LWV4cG9ydGluZyAiJHtmaWVsZH0iIGZyb20gYW4gaW1wb3J0YCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAidW5kZWZpbmVkIjoKKyAgICAgICAgICAgIC8vIEFzc3VtZSBpdCdz
IHRoZSBzYW1lIGFzIHRoZSBmaWVsZCAoaS5lLiBpdCdzIG5vdCBiZWluZyByZW5hbWVkKS4KKyAg
ICAgICAgICAgIGluZGV4ID0gZmllbGQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDogdGhyb3cgbmV3IEVycm9yKGBFeHBvcnQgc2VjdGlvbidzIGluZGV4IG11c3QgYmUgYSBz
dHJpbmcgb3IgYSBudW1iZXIsIGdvdCAke2luZGV4fWApOworICAgICAgICB9CisKKyAgICAgICAg
Y29uc3QgY29ycmVzcG9uZGluZ0ltcG9ydCA9IGJ1aWxkZXIuX2dldEZ1bmN0aW9uRnJvbUluZGV4
U3BhY2UoaW5kZXgpOworICAgICAgICBjb25zdCBpbXBvcnRTZWN0aW9uID0gYnVpbGRlci5fZ2V0
U2VjdGlvbigiSW1wb3J0Iik7CisgICAgICAgIGlmICh0eXBlb2YoaW5kZXgpID09PSAib2JqZWN0
IikgeworICAgICAgICAgICAgLy8gUmUtZXhwb3J0aW5nIGFuIGltcG9ydCB1c2luZyBpdHMgbW9k
dWxlK2ZpZWxkIG5hbWUuCisgICAgICAgICAgICBhc3NlcnQuaXNOb3RVbmRlZihjb3JyZXNwb25k
aW5nSW1wb3J0LCBgUmUtZXhwb3J0aW5nICIke2ZpZWxkfSIgY291bGRuJ3QgZmluZCBpbXBvcnQg
ZnJvbSBtb2R1bGUgIiR7aW5kZXgubW9kdWxlfSIgZmllbGQgIiR7aW5kZXguZmllbGR9ImApOwor
ICAgICAgICAgICAgaW5kZXggPSBjb3JyZXNwb25kaW5nSW1wb3J0OworICAgICAgICAgICAgaWYg
KHR5cGVvZih0eXBlKSA9PT0gInVuZGVmaW5lZCIpCisgICAgICAgICAgICAgICAgdHlwZSA9IGlt
cG9ydFNlY3Rpb24uZGF0YVtpbmRleF0udHlwZTsKKyAgICAgICAgICAgIGlmIChidWlsZGVyLl9j
aGVja2VkKQorICAgICAgICAgICAgICAgIGFzc2VydC5lcSh0eXBlLCBpbXBvcnRTZWN0aW9uLmRh
dGFbaW5kZXhdLnR5cGUsIGBSZS1leHBvcnRpbmcgaW1wb3J0ICIke2ltcG9ydFNlY3Rpb24uZGF0
YVtpbmRleF0uZmllbGR9IiBhcyAiJHtmaWVsZH0iIGhhcyBtaXNtYXRjaGluZyB0eXBlYCk7Cisg
ICAgICAgIH0gZWxzZSBpZiAodHlwZW9mKGNvcnJlc3BvbmRpbmdJbXBvcnQpICE9PSAidW5kZWZp
bmVkIikgeworICAgICAgICAgICAgLy8gUmUtZXhwb3J0aW5nIGFuIGltcG9ydCB1c2luZyBpdHMg
aW5kZXguCisgICAgICAgICAgICBsZXQgZXhwb3J0ZWRJbXBvcnQ7CisgICAgICAgICAgICBmb3Ig
KGNvbnN0IGkgb2YgaW1wb3J0U2VjdGlvbi5kYXRhKSB7CisgICAgICAgICAgICAgICAgaWYgKGku
bW9kdWxlID09PSBjb3JyZXNwb25kaW5nSW1wb3J0Lm1vZHVsZSAmJiBpLmZpZWxkID09PSBjb3Jy
ZXNwb25kaW5nSW1wb3J0LmZpZWxkKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cG9ydGVkSW1w
b3J0ID0gaTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHR5cGVvZih0eXBlKSA9PT0gInVuZGVmaW5l
ZCIpCisgICAgICAgICAgICAgICAgdHlwZSA9IGV4cG9ydGVkSW1wb3J0LnR5cGU7CisgICAgICAg
ICAgICBpZiAoYnVpbGRlci5fY2hlY2tlZCkKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXEodHlw
ZSwgZXhwb3J0ZWRJbXBvcnQudHlwZSwgYFJlLWV4cG9ydGluZyBpbXBvcnQgIiR7ZXhwb3J0ZWRJ
bXBvcnQuZmllbGR9IiBhcyAiJHtmaWVsZH0iIGhhcyBtaXNtYXRjaGluZyB0eXBlYCk7CisgICAg
ICAgIH0KKyAgICAgICAgc2VjdGlvbi5kYXRhLnB1c2goeyBmaWVsZDogZmllbGQsIHR5cGU6IHR5
cGUsIGtpbmQ6ICJGdW5jdGlvbiIsIGluZGV4OiBpbmRleCB9KTsKKyAgICAgICAgcmV0dXJuIF9l
cnJvckhhbmRsaW5nUHJveHlGb3IobmV4dEJ1aWxkZXIpOworICAgIH07Cit9OworCitjb25zdCBf
bm9ybWFsaXplTXV0YWJpbGl0eSA9IChtdXRhYmlsaXR5KSA9PiB7CisgICAgaWYgKG11dGFiaWxp
dHkgPT09ICJtdXRhYmxlIikKKyAgICAgICAgcmV0dXJuIDE7CisgICAgZWxzZSBpZiAobXV0YWJp
bGl0eSA9PT0gImltbXV0YWJsZSIpCisgICAgICAgIHJldHVybiAwOworICAgIGVsc2UKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKGBtdXRhYmlsaXR5IHNob3VsZCBiZSBlaXRoZXIgIm11dGFibGUi
IG9yICJpbW11dGFibGUiLCBidXQgZ290ICR7bXV0YWJpbGl0eX1gKTsKK307CisKK2NvbnN0IF9l
eHBvcnRHbG9iYWxDb250aW51YXRpb24gPSAoYnVpbGRlciwgc2VjdGlvbiwgbmV4dEJ1aWxkZXIp
ID0+IHsKKyAgICByZXR1cm4gKGZpZWxkLCBpbmRleCkgPT4geworICAgICAgICBhc3NlcnQuaXNO
dW1iZXIoaW5kZXgsIGBHbG9iYWwgZXhwb3J0cyBvbmx5IHN1cHBvcnQgbnVtYmVyIGluZGljZXMg
cmlnaHQgbm93YCk7CisgICAgICAgIHNlY3Rpb24uZGF0YS5wdXNoKHsgZmllbGQsIGtpbmQ6ICJH
bG9iYWwiLCBpbmRleCB9KTsKKyAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3Io
bmV4dEJ1aWxkZXIpOworICAgIH0KK307CisKK2NvbnN0IF9leHBvcnRNZW1vcnlDb250aW51YXRp
b24gPSAoYnVpbGRlciwgc2VjdGlvbiwgbmV4dEJ1aWxkZXIpID0+IHsKKyAgICByZXR1cm4gKGZp
ZWxkLCBpbmRleCkgPT4geworICAgICAgICBhc3NlcnQuaXNOdW1iZXIoaW5kZXgsIGBNZW1vcnkg
ZXhwb3J0cyBvbmx5IHN1cHBvcnQgbnVtYmVyIGluZGljZXNgKTsKKyAgICAgICAgc2VjdGlvbi5k
YXRhLnB1c2goe2ZpZWxkLCBraW5kOiAiTWVtb3J5IiwgaW5kZXh9KTsKKyAgICAgICAgcmV0dXJu
IF9lcnJvckhhbmRsaW5nUHJveHlGb3IobmV4dEJ1aWxkZXIpOworICAgIH0KK307CisKK2NvbnN0
IF9leHBvcnRUYWJsZUNvbnRpbnVhdGlvbiA9IChidWlsZGVyLCBzZWN0aW9uLCBuZXh0QnVpbGRl
cikgPT4geworICAgIHJldHVybiAoZmllbGQsIGluZGV4KSA9PiB7CisgICAgICAgIGFzc2VydC5p
c051bWJlcihpbmRleCwgYFRhYmxlIGV4cG9ydHMgb25seSBzdXBwb3J0IG51bWJlciBpbmRpY2Vz
YCk7CisgICAgICAgIHNlY3Rpb24uZGF0YS5wdXNoKHtmaWVsZCwga2luZDogIlRhYmxlIiwgaW5k
ZXh9KTsKKyAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IobmV4dEJ1aWxkZXIp
OworICAgIH0KK307CisKK2NvbnN0IF9pbXBvcnRHbG9iYWxDb250aW51YXRpb24gPSAoYnVpbGRl
ciwgc2VjdGlvbiwgbmV4dEJ1aWxkZXIpID0+IHsKKyAgICByZXR1cm4gKCkgPT4geworICAgICAg
ICBjb25zdCBnbG9iYWxCdWlsZGVyID0geworICAgICAgICAgICAgRW5kOiAoKSA9PiBuZXh0QnVp
bGRlcgorICAgICAgICB9OworICAgICAgICBmb3IgKGxldCBvcCBvZiBXQVNNLmRlc2NyaXB0aW9u
LnZhbHVlX3R5cGUpIHsKKyAgICAgICAgICAgIGdsb2JhbEJ1aWxkZXJbX3RvSmF2YVNjcmlwdE5h
bWUob3ApXSA9IChtb2R1bGUsIGZpZWxkLCBtdXRhYmlsaXR5KSA9PiB7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmlzU3RyaW5nKG1vZHVsZSwgYEltcG9ydCBnbG9iYWwgbW9kdWxlIHNob3VsZCBi
ZSBhIHN0cmluZywgZ290ICIke21vZHVsZX0iYCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lmlz
U3RyaW5nKGZpZWxkLCBgSW1wb3J0IGdsb2JhbCBmaWVsZCBzaG91bGQgYmUgYSBzdHJpbmcsIGdv
dCAiJHtmaWVsZH0iYCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmlzU3RyaW5nKG11dGFiaWxp
dHksIGBJbXBvcnQgZ2xvYmFsIG11dGFiaWxpdHkgc2hvdWxkIGJlIGEgc3RyaW5nLCBnb3QgIiR7
bXV0YWJpbGl0eX0iYCk7CisgICAgICAgICAgICAgICAgc2VjdGlvbi5kYXRhLnB1c2goeyBnbG9i
YWxEZXNjcmlwdGlvbjogeyB0eXBlOiBvcCwgbXV0YWJpbGl0eTogX25vcm1hbGl6ZU11dGFiaWxp
dHkobXV0YWJpbGl0eSkgfSwgbW9kdWxlLCBmaWVsZCwga2luZDogIkdsb2JhbCIgfSk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IoZ2xvYmFsQnVpbGRlcik7
CisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGlu
Z1Byb3h5Rm9yKGdsb2JhbEJ1aWxkZXIpOworICAgIH07Cit9OworCitjb25zdCBfY2hlY2tTdGFj
a0FyZ3MgPSAob3AsIHBhcmFtKSA9PiB7CisgICAgZm9yIChsZXQgZXhwZWN0IG9mIHBhcmFtKSB7
CisgICAgICAgIGlmIChXQVNNLmlzVmFsaWRUeXBlKGV4cGVjdCkpIHsKKyAgICAgICAgICAgIC8v
IEZJWE1FIGltcGxlbWVudCBzdGFjayBjaGVja3MgZm9yIGFyZ3VtZW50cy4gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgLy8gSGFuZGxlIG91ciBvd24gbWV0YS10eXBlcy4KKyAgICAgICAgICAgIHN3aXRj
aCAoZXhwZWN0KSB7CisgICAgICAgICAgICBjYXNlICJhZGRyIjogYnJlYWs7IC8vIEZJWE1FIGlt
cGxlbWVudCBhZGRyLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYz
NDIxCisgICAgICAgICAgICBjYXNlICJhbnkiOiBicmVhazsgLy8gRklYTUUgaW1wbGVtZW50IGFu
eS4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAg
ICAgICAgY2FzZSAiYm9vbCI6IGJyZWFrOyAvLyBGSVhNRSBpbXBsZW1lbnQgYm9vbC4gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICAgICAgY2Fz
ZSAiY2FsbCI6IGJyZWFrOyAvLyBGSVhNRSBpbXBsZW1lbnQgY2FsbCBzdGFjayBhcmd1bWVudCBj
aGVja3MgYmFzZWQgb24gZnVuY3Rpb24gc2lnbmF0dXJlLiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgICAgICBjYXNlICJnbG9iYWwiOiBicmVh
azsgLy8gRklYTUUgaW1wbGVtZW50IGdsb2JhbC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICAgICAgY2FzZSAibG9jYWwiOiBicmVhazsgLy8g
RklYTUUgaW1wbGVtZW50IGxvY2FsLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYzNDIxCisgICAgICAgICAgICBjYXNlICJwcmV2IjogYnJlYWs7IC8vIEZJWE1FIGlt
cGxlbWVudCBwcmV2LCBjaGVja2luZyBmb3Igd2hldGV2ZXIgdGhlIHByZXZpb3VzIHZhbHVlIHdh
cy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAg
ICAgICAgY2FzZSAic2l6ZSI6IGJyZWFrOyAvLyBGSVhNRSBpbXBsZW1lbnQgc2l6ZS4gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICAgICAgZGVm
YXVsdDogdGhyb3cgbmV3IEVycm9yKGBJbXBsZW1lbnRhdGlvbiBwcm9ibGVtOiB1bmhhbmRsZWQg
bWV0YS10eXBlICIke2V4cGVjdH0iIG9uICIke29wfSJgKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0KK30KKworY29uc3QgX2NoZWNrU3RhY2tSZXR1cm4gPSAob3AsIHJldCkgPT4g
eworICAgIGZvciAobGV0IGV4cGVjdCBvZiByZXQpIHsKKyAgICAgICAgaWYgKFdBU00uaXNWYWxp
ZFR5cGUoZXhwZWN0KSkgeworICAgICAgICAgICAgLy8gRklYTUUgaW1wbGVtZW50IHN0YWNrIGNo
ZWNrcyBmb3IgcmV0dXJuLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYzNDIxCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBIYW5kbGUgb3VyIG93biBt
ZXRhLXR5cGVzLgorICAgICAgICAgICAgc3dpdGNoIChleHBlY3QpIHsKKyAgICAgICAgICAgIGNh
c2UgImFueSI6IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiYm9vbCI6IGJyZWFrOyAvLyBGSVhN
RSBpbXBsZW1lbnQgYm9vbC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MzQyMQorICAgICAgICAgICAgY2FzZSAiY2FsbCI6IGJyZWFrOyAvLyBGSVhNRSBpbXBsZW1l
bnQgY2FsbCBzdGFjayByZXR1cm4gY2hlY2sgYmFzZWQgb24gZnVuY3Rpb24gc2lnbmF0dXJlLiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgICAg
ICBjYXNlICJjb250cm9sIjogYnJlYWs7IC8vIEZJWE1FIGltcGxlbWVudCBjb250cm9sLiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgICAgICBj
YXNlICJnbG9iYWwiOiBicmVhazsgLy8gRklYTUUgaW1wbGVtZW50IGdsb2JhbC4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICAgICAgY2FzZSAi
bG9jYWwiOiBicmVhazsgLy8gRklYTUUgaW1wbGVtZW50IGxvY2FsLiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgICAgICBjYXNlICJwcmV2Ijog
YnJlYWs7IC8vIEZJWE1FIGltcGxlbWVudCBwcmV2LCBjaGVja2luZyBmb3Igd2hldGV2ZXIgdGhl
IHBhcmFtZXRlciB0eXBlIHdhcy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MzQyMQorICAgICAgICAgICAgY2FzZSAic2l6ZSI6IGJyZWFrOyAvLyBGSVhNRSBpbXBs
ZW1lbnQgc2l6ZS4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQy
MQorICAgICAgICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKGBJbXBsZW1lbnRhdGlvbiBw
cm9ibGVtOiB1bmhhbmRsZWQgbWV0YS10eXBlICIke2V4cGVjdH0iIG9uICIke29wfSJgKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK307CisKK2NvbnN0IF9jaGVja0ltbXMgPSAo
b3AsIGltbXMsIGV4cGVjdGVkSW1tcywgcmV0KSA9PiB7CisgICAgY29uc3QgbWluRXhwZWN0ZWRJ
bW1zID0gZXhwZWN0ZWRJbW1zLmZpbHRlcihpID0+IGkudHlwZS5zbGljZSgtMSkgIT09ICcqJyku
bGVuZ3RoOworICAgIGlmIChtaW5FeHBlY3RlZEltbXMgIT09IGV4cGVjdGVkSW1tcy5sZW5ndGgp
CisgICAgICAgIGFzc2VydC5nZShpbW1zLmxlbmd0aCwgbWluRXhwZWN0ZWRJbW1zLCBgIiR7b3B9
IiBleHBlY3RzIGF0IGxlYXN0ICR7bWluRXhwZWN0ZWRJbW1zfSBpbW1lZGlhdGUke21pbkV4cGVj
dGVkSW1tcyAhPT0gMSA/ICdzJyA6ICcnfSwgZ290ICR7aW1tcy5sZW5ndGh9YCk7CisgICAgZWxz
ZQorICAgICAgICAgYXNzZXJ0LmVxKGltbXMubGVuZ3RoLCBtaW5FeHBlY3RlZEltbXMsIGAiJHtv
cH0iIGV4cGVjdHMgZXhhY3RseSAke21pbkV4cGVjdGVkSW1tc30gaW1tZWRpYXRlJHttaW5FeHBl
Y3RlZEltbXMgIT09IDEgPyAncycgOiAnJ30sIGdvdCAke2ltbXMubGVuZ3RofWApOworICAgIGZv
ciAobGV0IGlkeCA9IDA7IGlkeCAhPT0gZXhwZWN0ZWRJbW1zLmxlbmd0aDsgKytpZHgpIHsKKyAg
ICAgICAgY29uc3QgZ290ID0gaW1tc1tpZHhdOworICAgICAgICBjb25zdCBleHBlY3QgPSBleHBl
Y3RlZEltbXNbaWR4XTsKKyAgICAgICAgc3dpdGNoIChleHBlY3QubmFtZSkgeworICAgICAgICBj
YXNlICJmdW5jdGlvbl9pbmRleCI6CisgICAgICAgICAgICBhc3NlcnQudHJ1dGh5KF9pc1ZhbGlk
VmFsdWUoZ290LCAiaTMyIikgJiYgZ290ID49IDAsIGBJbnZhbGlkIHZhbHVlIG9uICR7b3B9OiBn
b3QgIiR7Z290fSIsIGV4cGVjdGVkIG5vbi1uZWdhdGl2ZSBpMzJgKTsKKyAgICAgICAgICAgIC8v
IEZJWE1FIGNoZWNrIGZ1bmN0aW9uIGluZGljZXMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJs
b2NhbF9pbmRleCI6IGJyZWFrOyAvLyBpbXByb3ZlIGNoZWNraW5nIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgY2FzZSAiZ2xvYmFsX2luZGV4
IjogYnJlYWs7IC8vIGltcHJvdmUgY2hlY2tpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICBjYXNlICJ0eXBlX2luZGV4IjogYnJlYWs7IC8v
IGltcHJvdmUgY2hlY2tpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MzQyMQorICAgICAgICBjYXNlICJ2YWx1ZSI6CisgICAgICAgICAgICBhc3NlcnQudHJ1dGh5
KF9pc1ZhbGlkVmFsdWUoZ290LCByZXRbMF0pLCBgSW52YWxpZCB2YWx1ZSBvbiAke29wfTogZ290
ICIke2dvdH0iLCBleHBlY3RlZCAke3JldFswXX1gKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlICJmbGFncyI6IGJyZWFrOyAvLyBpbXByb3ZlIGNoZWNraW5nIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgY2FzZSAib2Zmc2V0
IjogYnJlYWs7IC8vIGltcHJvdmUgY2hlY2tpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICAgICAgLy8gQ29udHJvbDoKKyAgICAgICAgY2Fz
ZSAiZGVmYXVsdF90YXJnZXQiOiBicmVhazsgLy8gaW1wcm92ZSBjaGVja2luZyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgIGNhc2UgInJlbGF0
aXZlX2RlcHRoIjogYnJlYWs7IC8vIGltcHJvdmUgY2hlY2tpbmcgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMQorICAgICAgICBjYXNlICJzaWciOgorICAgICAg
ICAgICAgYXNzZXJ0LnRydXRoeShXQVNNLmlzVmFsaWRCbG9ja1R5cGUoaW1tc1tpZHhdKSwgYElu
dmFsaWQgYmxvY2sgdHlwZSBvbiAke29wfTogIiR7aW1tc1tpZHhdfSJgKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlICJ0YXJnZXRfY291bnQiOiBicmVhazsgLy8gaW1wcm92ZSBj
aGVja2luZyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisg
ICAgICAgIGNhc2UgInRhcmdldF90YWJsZSI6IGJyZWFrOyAvLyBpbXByb3ZlIGNoZWNraW5nIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjEKKyAgICAgICAgY2Fz
ZSAicmVzZXJ2ZWQiOiBicmVhazsgLy8gaW1wcm92ZSBjaGVja2luZyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIxCisgICAgICAgIGRlZmF1bHQ6IHRocm93IG5l
dyBFcnJvcihgSW1wbGVtZW50YXRpb24gcHJvYmxlbTogdW5oYW5kbGVkIGltbWVkaWF0ZSAiJHtl
eHBlY3QubmFtZX0iIG9uICIke29wfSJgKTsKKyAgICAgICAgfQorICAgIH0KK307CisKK2NvbnN0
IF9jcmVhdGVGdW5jdGlvbkJ1aWxkZXIgPSAoZnVuYywgYnVpbGRlciwgcHJldmlvdXNCdWlsZGVy
KSA9PiB7CisgICAgbGV0IGZ1bmN0aW9uQnVpbGRlciA9IHt9OworICAgIGZvciAoY29uc3Qgb3Ag
aW4gV0FTTS5kZXNjcmlwdGlvbi5vcGNvZGUpIHsKKyAgICAgICAgY29uc3QgbmFtZSA9IF90b0ph
dmFTY3JpcHROYW1lKG9wKTsKKyAgICAgICAgY29uc3QgdmFsdWUgPSBXQVNNLmRlc2NyaXB0aW9u
Lm9wY29kZVtvcF0udmFsdWU7CisgICAgICAgIGNvbnN0IHJldCA9IFdBU00uZGVzY3JpcHRpb24u
b3Bjb2RlW29wXVsicmV0dXJuIl07CisgICAgICAgIGNvbnN0IHBhcmFtID0gV0FTTS5kZXNjcmlw
dGlvbi5vcGNvZGVbb3BdLnBhcmFtZXRlcjsKKyAgICAgICAgY29uc3QgaW1tID0gV0FTTS5kZXNj
cmlwdGlvbi5vcGNvZGVbb3BdLmltbWVkaWF0ZTsKKworICAgICAgICBjb25zdCBjaGVja1N0YWNr
QXJncyA9IGJ1aWxkZXIuX2NoZWNrZWQgPyBfY2hlY2tTdGFja0FyZ3MgOiAoKSA9PiB7fTsKKyAg
ICAgICAgY29uc3QgY2hlY2tTdGFja1JldHVybiA9IGJ1aWxkZXIuX2NoZWNrZWQgPyBfY2hlY2tT
dGFja1JldHVybiA6ICgpID0+IHt9OworICAgICAgICBjb25zdCBjaGVja0ltbXMgPSBidWlsZGVy
Ll9jaGVja2VkID8gX2NoZWNrSW1tcyA6ICgpID0+IHt9OworCisgICAgICAgIGZ1bmN0aW9uQnVp
bGRlcltuYW1lXSA9ICguLi5hcmdzKSA9PiB7CisgICAgICAgICAgICBsZXQgbmV4dEJ1aWxkZXI7
CisgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgbmV4dEJ1aWxkZXIgPSBmdW5jdGlvbkJ1aWxkZXI7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICJFbmQiOgorICAgICAgICAgICAgICAgIG5leHRC
dWlsZGVyID0gcHJldmlvdXNCdWlsZGVyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSAiQmxvY2siOgorICAgICAgICAgICAgY2FzZSAiTG9vcCI6CisgICAgICAgICAg
ICBjYXNlICJJZiI6CisgICAgICAgICAgICAgICAgbmV4dEJ1aWxkZXIgPSBfY3JlYXRlRnVuY3Rp
b25CdWlsZGVyKGZ1bmMsIGJ1aWxkZXIsIGZ1bmN0aW9uQnVpbGRlcik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFBhc3NpbmcgYSBmdW5j
dGlvbiBhcyB0aGUgYXJndW1lbnQgaXMgYSB3YXkgdG8gbmVzdCBibG9ja3MgbGV4aWNhbGx5Lgor
ICAgICAgICAgICAgY29uc3QgY29udGludWF0aW9uID0gYXJnc1thcmdzLmxlbmd0aCAtIDFdOwor
ICAgICAgICAgICAgY29uc3QgaGFzQ29udGludWF0aW9uID0gdHlwZW9mKGNvbnRpbnVhdGlvbikg
PT09ICJmdW5jdGlvbiI7CisgICAgICAgICAgICBjb25zdCBpbW1zID0gaGFzQ29udGludWF0aW9u
ID8gYXJncy5zbGljZSgwLCAtMSkgOiBhcmdzOyAvLyBGSVhNRTogYWxsb3cgcGFzc2luZyBpbiBz
dGFjayB2YWx1ZXMsIGFzLWlmIGNvZGUgd2VyZSBhIHN0YWNrIG1hY2hpbmUuIEp1c3QgY2hlY2sg
Zm9yIGEgYnVpbGRlciB0byB0aGlzIGZ1bmN0aW9uLCBhbmQgZHJvcC4gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMgorICAgICAgICAgICAgY2hlY2tJbW1zKG9w
LCBpbW1zLCBpbW0sIHJldCk7CisgICAgICAgICAgICBjaGVja1N0YWNrQXJncyhvcCwgcGFyYW0p
OworICAgICAgICAgICAgY2hlY2tTdGFja1JldHVybihvcCwgcmV0KTsKKyAgICAgICAgICAgIGNv
bnN0IHN0YWNrQXJncyA9IFtdOyAvLyBGSVhNRSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYyNzA2CisgICAgICAgICAgICBmdW5jLmNvZGUucHVzaCh7IG5hbWU6IG9w
LCB2YWx1ZTogdmFsdWUsIGFyZ3VtZW50czogc3RhY2tBcmdzLCBpbW1lZGlhdGVzOiBpbW1zIH0p
OworICAgICAgICAgICAgaWYgKGhhc0NvbnRpbnVhdGlvbikKKyAgICAgICAgICAgICAgICByZXR1
cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihjb250aW51YXRpb24obmV4dEJ1aWxkZXIpLkVuZCgp
KTsKKyAgICAgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKG5leHRCdWlsZGVy
KTsKKyAgICAgICAgfTsKKyAgICB9OworCisgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlG
b3IoZnVuY3Rpb25CdWlsZGVyKTsKK30KKworY29uc3QgX2NyZWF0ZUZ1bmN0aW9uID0gKHNlY3Rp
b24sIGJ1aWxkZXIsIHByZXZpb3VzQnVpbGRlcikgPT4geworICAgIHJldHVybiAoLi4uYXJncykg
PT4geworICAgICAgICBjb25zdCBuYW1lT2Zmc2V0ID0gKHR5cGVvZihhcmdzWzBdKSA9PT0gInN0
cmluZyIpID4+PiAwOworICAgICAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSBuYW1lT2Zmc2V0ID8g
YXJnc1swXSA6IHVuZGVmaW5lZDsKKyAgICAgICAgbGV0IHNpZ25hdHVyZSA9IGFyZ3NbMCArIG5h
bWVPZmZzZXRdOworICAgICAgICBjb25zdCBsb2NhbHMgPSBhcmdzWzEgKyBuYW1lT2Zmc2V0XSA9
PT0gdW5kZWZpbmVkID8gW10gOiBhcmdzWzEgKyBuYW1lT2Zmc2V0XTsKKyAgICAgICAgZm9yIChj
b25zdCBsb2NhbCBvZiBsb2NhbHMpCisgICAgICAgICAgICBhc3NlcnQudHJ1dGh5KFdBU00uaXNW
YWxpZFZhbHVlVHlwZShsb2NhbCksIGBUeXBlIG9mIGxvY2FsOiAke2xvY2FsfSBuZWVkcyB0byBi
ZSBhIHZhbGlkIHZhbHVlIHR5cGVgKTsKKworICAgICAgICBpZiAodHlwZW9mKHNpZ25hdHVyZSkg
PT09ICJ1bmRlZmluZWQiKQorICAgICAgICAgICAgc2lnbmF0dXJlID0geyBwYXJhbXM6IFtdIH07
CisKKyAgICAgICAgbGV0IHR5cGU7CisgICAgICAgIGxldCBwYXJhbXM7CisgICAgICAgIGlmICh0
eXBlb2Ygc2lnbmF0dXJlID09PSAib2JqZWN0IikgeworICAgICAgICAgICAgYXNzZXJ0Lmhhc09i
amVjdFByb3BlcnR5KHNpZ25hdHVyZSwgInBhcmFtcyIsIGBFeHBlY3QgZnVuY3Rpb24gc2lnbmF0
dXJlIHRvIGJlIGFuIG9iamVjdCB3aXRoIGEgInBhcmFtcyIgZmllbGQsIGdvdCAiJHtzaWduYXR1
cmV9ImApOworICAgICAgICAgICAgbGV0IHJldDsKKyAgICAgICAgICAgIChbcGFyYW1zLCByZXRd
ID0gX25vcm1hbGl6ZUZ1bmN0aW9uU2lnbmF0dXJlKHNpZ25hdHVyZS5wYXJhbXMsIHNpZ25hdHVy
ZS5yZXQpKTsKKyAgICAgICAgICAgIHNpZ25hdHVyZSA9IHtwYXJhbXMsIHJldH07CisgICAgICAg
ICAgICB0eXBlID0gX21heWJlUmVnaXN0ZXJUeXBlKGJ1aWxkZXIsIHNpZ25hdHVyZSk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhc3NlcnQudHJ1dGh5KHR5cGVvZiBzaWduYXR1cmUg
PT09ICJudW1iZXIiKTsKKyAgICAgICAgICAgIGNvbnN0IHR5cGVTZWN0aW9uID0gYnVpbGRlci5f
Z2V0U2VjdGlvbigiVHlwZSIpOworICAgICAgICAgICAgYXNzZXJ0LnRydXRoeSghIXR5cGVTZWN0
aW9uKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgYWxsb3cgaW5kaWNlcyB0aGF0
IGV4Y2VlZCB0aGlzIHRvIGJlIGFibGUgdG8KKyAgICAgICAgICAgIC8vIHRlc3QgSlNDcyB2YWxp
ZGF0b3IgaXMgY29ycmVjdC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NTc4NgorICAgICAgICAgICAgYXNzZXJ0LnRydXRoeShzaWduYXR1cmUgPCB0eXBlU2VjdGlv
bi5kYXRhLmxlbmd0aCk7CisgICAgICAgICAgICB0eXBlID0gc2lnbmF0dXJlOworICAgICAgICAg
ICAgc2lnbmF0dXJlID0gdHlwZVNlY3Rpb24uZGF0YVtzaWduYXR1cmVdOworICAgICAgICAgICAg
YXNzZXJ0Lmhhc09iamVjdFByb3BlcnR5KHNpZ25hdHVyZSwgInBhcmFtcyIsIGBFeHBlY3QgZnVu
Y3Rpb24gc2lnbmF0dXJlIHRvIGJlIGFuIG9iamVjdCB3aXRoIGEgInBhcmFtcyIgZmllbGQsIGdv
dCAiJHtzaWduYXR1cmV9ImApOworICAgICAgICAgICAgcGFyYW1zID0gc2lnbmF0dXJlLnBhcmFt
czsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGZ1bmMgPSB7CisgICAgICAgICAgICBuYW1l
OiBmdW5jdGlvbk5hbWUsCisgICAgICAgICAgICB0eXBlLAorICAgICAgICAgICAgc2lnbmF0dXJl
OiBzaWduYXR1cmUsCisgICAgICAgICAgICBsb2NhbHM6IHBhcmFtcy5jb25jYXQobG9jYWxzKSwg
Ly8gUGFyYW1ldGVycyBhcmUgdGhlIGZpcnN0IGxvY2Fscy4KKyAgICAgICAgICAgIHBhcmFtZXRl
ckNvdW50OiBwYXJhbXMubGVuZ3RoLAorICAgICAgICAgICAgY29kZTogW10KKyAgICAgICAgfTsK
KworICAgICAgICBjb25zdCBmdW5jdGlvblNlY3Rpb24gPSBidWlsZGVyLl9nZXRTZWN0aW9uKCJG
dW5jdGlvbiIpOworICAgICAgICBpZiAoZnVuY3Rpb25TZWN0aW9uKQorICAgICAgICAgICAgZnVu
Y3Rpb25TZWN0aW9uLmRhdGEucHVzaChmdW5jLnR5cGUpOworCisgICAgICAgIHNlY3Rpb24uZGF0
YS5wdXNoKGZ1bmMpOworICAgICAgICBidWlsZGVyLl9yZWdpc3RlckZ1bmN0aW9uVG9JbmRleFNw
YWNlKGZ1bmN0aW9uTmFtZSk7CisKKyAgICAgICAgcmV0dXJuIF9jcmVhdGVGdW5jdGlvbkJ1aWxk
ZXIoZnVuYywgYnVpbGRlciwgcHJldmlvdXNCdWlsZGVyKTsKKyAgICB9Cit9OworCitjbGFzcyBC
dWlsZGVyIHsKKyAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgdGhpcy5zZXRDaGVja2VkKHRy
dWUpOworICAgICAgICBsZXQgcHJlYW1ibGUgPSB7fTsKKyAgICAgICAgZm9yIChjb25zdCBwIG9m
IFdBU00uZGVzY3JpcHRpb24ucHJlYW1ibGUpCisgICAgICAgICAgICBwcmVhbWJsZVtwLm5hbWVd
ID0gcC52YWx1ZTsKKyAgICAgICAgdGhpcy5zZXRQcmVhbWJsZShwcmVhbWJsZSk7CisgICAgICAg
IHRoaXMuX3NlY3Rpb25zID0gW107CisgICAgICAgIHRoaXMuX2Z1bmN0aW9uSW5kZXhTcGFjZSA9
IG5ldyBNYXAoKTsKKyAgICAgICAgdGhpcy5fZnVuY3Rpb25JbmRleFNwYWNlQ291bnQgPSAwOwor
ICAgICAgICB0aGlzLl9yZWdpc3RlclNlY3Rpb25CdWlsZGVycygpOworICAgIH0KKyAgICBzZXRD
aGVja2VkKGNoZWNrZWQpIHsKKyAgICAgICAgdGhpcy5fY2hlY2tlZCA9IGNoZWNrZWQ7CisgICAg
ICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICBzZXRQcmVhbWJsZShwKSB7CisgICAgICAgIHRo
aXMuX3ByZWFtYmxlID0gT2JqZWN0LmFzc2lnbih0aGlzLl9wcmVhbWJsZSB8fCB7fSwgcCk7Cisg
ICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICBfZnVuY3Rpb25JbmRleFNwYWNlS2V5SGFz
aChvYmopIHsKKyAgICAgICAgLy8gV2UgZG9uJ3QgbmVlZCBhIGZ1bGwgaGFzaCwganVzdCBzb21l
dGhpbmcgdGhhdCBoYXMgYSBkZWZpbmVkIG9yZGVyIGZvciBNYXAuIE9iamVjdHMgd2UgaW5zZXJ0
IGFyZW4ndCBuZXN0ZWQuCisgICAgICAgIGlmICh0eXBlb2Yob2JqKSAhPT0gJ29iamVjdCcpCisg
ICAgICAgICAgICByZXR1cm4gb2JqOworICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMo
b2JqKS5zb3J0KCk7CisgICAgICAgIGxldCBlbnRyaWVzID0gW107CisgICAgICAgIGZvciAobGV0
IGsgaW4ga2V5cykKKyAgICAgICAgICAgIGVudHJpZXMucHVzaChbaywgb2JqW2tdXSk7CisgICAg
ICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShlbnRyaWVzKTsKKyAgICB9CisgICAgX3JlZ2lzdGVy
RnVuY3Rpb25Ub0luZGV4U3BhY2UobmFtZSkgeworICAgICAgICBpZiAodHlwZW9mKG5hbWUpID09
PSAidW5kZWZpbmVkIikgeworICAgICAgICAgICAgLy8gUmVnaXN0ZXJpbmcgYSBuYW1lbGVzcyBm
dW5jdGlvbiBzdGlsbCBhZGRzIGl0IHRvIHRoZSBmdW5jdGlvbiBpbmRleCBzcGFjZS4gUmVnaXN0
ZXIgaXQgYXMgc29tZXRoaW5nIHRoYXQgY2FuJ3Qgbm9ybWFsbHkgYmUgcmVnaXN0ZXJlZC4KKyAg
ICAgICAgICAgIG5hbWUgPSB7fTsKKyAgICAgICAgfQorICAgICAgICBjb25zdCB2YWx1ZSA9IHRo
aXMuX2Z1bmN0aW9uSW5kZXhTcGFjZUNvdW50Kys7CisgICAgICAgIC8vIENvbGxpc2lvbnMgYXJl
IGZpbmU6IHdlJ2xsIHNpbXBseSBjb3VudCB0aGUgZnVuY3Rpb24gYW5kIGZvcmdldCB0aGUgcHJl
dmlvdXMgb25lLgorICAgICAgICB0aGlzLl9mdW5jdGlvbkluZGV4U3BhY2Uuc2V0KHRoaXMuX2Z1
bmN0aW9uSW5kZXhTcGFjZUtleUhhc2gobmFtZSksIHZhbHVlKTsKKyAgICAgICAgLy8gTWFwIGl0
IGJvdGggd2F5cywgdGhlIG51bWJlciBzcGFjZSBpcyBkaXN0aW5jdCBmcm9tIHRoZSBuYW1lIHNw
YWNlLgorICAgICAgICB0aGlzLl9mdW5jdGlvbkluZGV4U3BhY2Uuc2V0KHRoaXMuX2Z1bmN0aW9u
SW5kZXhTcGFjZUtleUhhc2godmFsdWUpLCBuYW1lKTsKKyAgICB9CisgICAgX2dldEZ1bmN0aW9u
RnJvbUluZGV4U3BhY2UobmFtZSkgeworICAgICAgICByZXR1cm4gdGhpcy5fZnVuY3Rpb25JbmRl
eFNwYWNlLmdldCh0aGlzLl9mdW5jdGlvbkluZGV4U3BhY2VLZXlIYXNoKG5hbWUpKTsKKyAgICB9
CisgICAgX3JlZ2lzdGVyU2VjdGlvbkJ1aWxkZXJzKCkgeworICAgICAgICBmb3IgKGNvbnN0IHNl
Y3Rpb24gaW4gV0FTTS5kZXNjcmlwdGlvbi5zZWN0aW9uKSB7CisgICAgICAgICAgICBzd2l0Y2gg
KHNlY3Rpb24pIHsKKyAgICAgICAgICAgIGNhc2UgIlR5cGUiOgorICAgICAgICAgICAgICAgIHRo
aXNbc2VjdGlvbl0gPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgcyA9
IHRoaXMuX2FkZFNlY3Rpb24oc2VjdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJ1
aWxkZXIgPSB0aGlzOworICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlQnVpbGRlciA9IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIEVuZDogKCkgPT4gYnVpbGRlciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIEZ1bmM6IChwYXJhbXMsIHJldCkgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtwYXJhbXMsIHJldF0gPSBfbm9ybWFsaXplRnVuY3Rpb25TaWduYXR1cmUocGFy
YW1zLCByZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuZGF0YS5wdXNoKHsgcGFy
YW1zOiBwYXJhbXMsIHJldDogcmV0IH0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKHR5cGVCdWlsZGVyKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKHR5cGVCdWlsZGVyKTsKKyAgICAgICAgICAg
ICAgICB9OworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICJJbXBv
cnQiOgorICAgICAgICAgICAgICAgIHRoaXNbc2VjdGlvbl0gPSBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgY29uc3QgcyA9IHRoaXMuX2FkZFNlY3Rpb24oc2VjdGlvbik7CisgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGltcG9ydEJ1aWxkZXIgPSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBFbmQ6ICgpID0+IHRoaXMsCisgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAg
ICAgICAgICAgICAgIGltcG9ydEJ1aWxkZXIuR2xvYmFsID0gX2ltcG9ydEdsb2JhbENvbnRpbnVh
dGlvbih0aGlzLCBzLCBpbXBvcnRCdWlsZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgaW1wb3J0
QnVpbGRlci5GdW5jdGlvbiA9IF9pbXBvcnRGdW5jdGlvbkNvbnRpbnVhdGlvbih0aGlzLCBzLCBp
bXBvcnRCdWlsZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgaW1wb3J0QnVpbGRlci5NZW1vcnkg
PSBfaW1wb3J0TWVtb3J5Q29udGludWF0aW9uKHRoaXMsIHMsIGltcG9ydEJ1aWxkZXIpOworICAg
ICAgICAgICAgICAgICAgICBpbXBvcnRCdWlsZGVyLlRhYmxlID0gX2ltcG9ydFRhYmxlQ29udGlu
dWF0aW9uKHRoaXMsIHMsIGltcG9ydEJ1aWxkZXIpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihpbXBvcnRCdWlsZGVyKTsKKyAgICAgICAgICAgICAg
ICB9OworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICJGdW5jdGlv
biI6CisgICAgICAgICAgICAgICAgdGhpc1tzZWN0aW9uXSA9IGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICBjb25zdCBzID0gdGhpcy5fYWRkU2VjdGlvbihzZWN0aW9uKTsKKyAgICAg
ICAgICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25CdWlsZGVyID0geworICAgICAgICAgICAgICAg
ICAgICAgICAgRW5kOiAoKSA9PiB0aGlzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogYWRkIGFiaWxpdHkgdG8gYWRkIHRoaXMgd2l0aCB3aGF0ZXZlci4KKyAgICAgICAgICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlG
b3IoZnVuY3Rpb25CdWlsZGVyKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgICAgICBjYXNlICJUYWJsZSI6CisgICAgICAgICAgICAgICAgdGhp
c1tzZWN0aW9uXSA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBjb25zdCBzID0g
dGhpcy5fYWRkU2VjdGlvbihzZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFi
bGVCdWlsZGVyID0geworICAgICAgICAgICAgICAgICAgICAgICAgRW5kOiAoKSA9PiB0aGlzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgVGFibGU6ICh7aW5pdGlhbCwgbWF4aW11bSwgZWxlbWVu
dH0pID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLmRhdGEucHVzaCh7dGFibGVE
ZXNjcmlwdGlvbjoge2luaXRpYWwsIG1heGltdW0sIGVsZW1lbnR9fSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IodGFibGVCdWlsZGVy
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IodGFibGVCdWls
ZGVyKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICBjYXNlICJNZW1vcnkiOgorICAgICAgICAgICAgICAgIHRoaXNbc2VjdGlvbl0gPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgcyA9IHRoaXMuX2FkZFNlY3Rp
b24oc2VjdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lbW9yeUJ1aWxkZXIgPSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBFbmQ6ICgpID0+IHRoaXMsCisgICAgICAgICAgICAg
ICAgICAgICAgICBJbml0aWFsTWF4UGFnZXM6IChpbml0aWFsLCBtYXgpID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzLmRhdGEucHVzaCh7IGluaXRpYWwsIG1heCB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihtZW1v
cnlCdWlsZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3Io
bWVtb3J5QnVpbGRlcik7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKworICAgICAgICAgICAgY2FzZSAiR2xvYmFsIjoKKyAgICAgICAgICAgICAgICB0aGlzW3Nl
Y3Rpb25dID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHMgPSB0aGlz
Ll9hZGRTZWN0aW9uKHNlY3Rpb24pOworICAgICAgICAgICAgICAgICAgICBjb25zdCBnbG9iYWxC
dWlsZGVyID0geworICAgICAgICAgICAgICAgICAgICAgICAgRW5kOiAoKSA9PiB0aGlzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgR2V0R2xvYmFsOiAodHlwZSwgaW5pdFZhbHVlLCBtdXRhYmls
aXR5KSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5kYXRhLnB1c2goeyB0eXBl
LCBvcDogImdldF9nbG9iYWwiLCBtdXRhYmlsaXR5OiBfbm9ybWFsaXplTXV0YWJpbGl0eShtdXRh
YmlsaXR5KSwgaW5pdFZhbHVlIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKGdsb2JhbEJ1aWxkZXIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICBm
b3IgKGxldCBvcCBvZiBXQVNNLmRlc2NyaXB0aW9uLnZhbHVlX3R5cGUpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGdsb2JhbEJ1aWxkZXJbX3RvSmF2YVNjcmlwdE5hbWUob3ApXSA9IChpbml0
VmFsdWUsIG11dGFiaWxpdHkpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLmRh
dGEucHVzaCh7IHR5cGU6IG9wLCBvcDogb3AgKyAiLmNvbnN0IiwgbXV0YWJpbGl0eTogX25vcm1h
bGl6ZU11dGFiaWxpdHkobXV0YWJpbGl0eSksIGluaXRWYWx1ZSB9KTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihnbG9iYWxCdWlsZGVy
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IoZ2xvYmFsQnVp
bGRlcik7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICAgICAgY2FzZSAiRXhwb3J0IjoKKyAgICAgICAgICAgICAgICB0aGlzW3NlY3Rpb25dID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHMgPSB0aGlzLl9hZGRTZWN0
aW9uKHNlY3Rpb24pOworICAgICAgICAgICAgICAgICAgICBjb25zdCBleHBvcnRCdWlsZGVyID0g
eworICAgICAgICAgICAgICAgICAgICAgICAgRW5kOiAoKSA9PiB0aGlzLAorICAgICAgICAgICAg
ICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICBleHBvcnRCdWlsZGVyLkdsb2JhbCA9IF9l
eHBvcnRHbG9iYWxDb250aW51YXRpb24odGhpcywgcywgZXhwb3J0QnVpbGRlcik7CisgICAgICAg
ICAgICAgICAgICAgIGV4cG9ydEJ1aWxkZXIuRnVuY3Rpb24gPSBfZXhwb3J0RnVuY3Rpb25Db250
aW51YXRpb24odGhpcywgcywgZXhwb3J0QnVpbGRlcik7CisgICAgICAgICAgICAgICAgICAgIGV4
cG9ydEJ1aWxkZXIuTWVtb3J5ID0gX2V4cG9ydE1lbW9yeUNvbnRpbnVhdGlvbih0aGlzLCBzLCBl
eHBvcnRCdWlsZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgZXhwb3J0QnVpbGRlci5UYWJsZSA9
IF9leHBvcnRUYWJsZUNvbnRpbnVhdGlvbih0aGlzLCBzLCBleHBvcnRCdWlsZGVyKTsKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3IoZXhwb3J0QnVpbGRl
cik7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICAgICAgY2FzZSAiU3RhcnQiOgorICAgICAgICAgICAgICAgIHRoaXNbc2VjdGlvbl0gPSBmdW5j
dGlvbihmdW5jdGlvbkluZGV4T3JOYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHMg
PSB0aGlzLl9hZGRTZWN0aW9uKHNlY3Rpb24pOworICAgICAgICAgICAgICAgICAgICBjb25zdCBz
dGFydEJ1aWxkZXIgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICBFbmQ6ICgpID0+IHRoaXMs
CisgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yo
ZnVuY3Rpb25JbmRleE9yTmFtZSkgIT09ICJudW1iZXIiICYmIHR5cGVvZihmdW5jdGlvbkluZGV4
T3JOYW1lKSAhPT0gInN0cmluZyIpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoYFN0YXJ0IHNlY3Rpb24ncyBmdW5jdGlvbiBpbmRleCAgbXVzdCBlaXRoZXIgYmUgYSBu
dW1iZXIgb3IgYSBzdHJpbmdgKTsKKyAgICAgICAgICAgICAgICAgICAgcy5kYXRhLnB1c2goZnVu
Y3Rpb25JbmRleE9yTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBfZXJyb3JIYW5k
bGluZ1Byb3h5Rm9yKHN0YXJ0QnVpbGRlcik7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAiRWxlbWVudCI6CisgICAgICAgICAg
ICAgICAgdGhpc1tzZWN0aW9uXSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJZb3UncmUgZG9pbmcgaXQgd3JvbmcuIFRoaXMgZWxlbWVudCBkb2VzIG5v
dCB0YWtlIGFyZ3VtZW50cy4gWW91IG11c3QgY2hhaW4gdGhlIGNhbGwgd2l0aCBhbm90aGVyIEVs
ZW1lbnQoKSIpOworCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHMgPSB0aGlzLl9hZGRTZWN0
aW9uKHNlY3Rpb24pOworICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50QnVpbGRlciA9
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEVuZDogKCkgPT4gdGhpcywKKyAgICAgICAgICAg
ICAgICAgICAgICAgIEVsZW1lbnQ6ICh7dGFibGVJbmRleCA9IDAsIG9mZnNldCwgZnVuY3Rpb25J
bmRpY2VzfSkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuZGF0YS5wdXNoKHt0
YWJsZUluZGV4LCBvZmZzZXQsIGZ1bmN0aW9uSW5kaWNlc30pOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKGVsZW1lbnRCdWlsZGVyKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfTsKKworICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxpbmdQcm94eUZvcihlbGVtZW50QnVp
bGRlcik7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICAgICAgY2FzZSAiQ29kZSI6CisgICAgICAgICAgICAgICAgdGhpc1tzZWN0aW9uXSA9IGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBjb25zdCBzID0gdGhpcy5fYWRkU2VjdGlv
bihzZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgYnVpbGRlciA9IHRoaXM7Cisg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvZGVCdWlsZGVyID0gIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIEVuZDogKCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdl
IG5vdyBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byByZW1hcCB0aGUgZXhwb3J0IHNlY3Rpb24n
cyAidHlwZSIgYW5kICJpbmRleCIgYWNjb3JkaW5nIHRvIHRoZSBDb2RlIHNlY3Rpb24gd2UgYXJl
IGN1cnJlbnRseSBlbmRpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHlw
ZVNlY3Rpb24gPSBidWlsZGVyLl9nZXRTZWN0aW9uKCJUeXBlIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgaW1wb3J0U2VjdGlvbiA9IGJ1aWxkZXIuX2dldFNlY3Rpb24oIklt
cG9ydCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cG9ydFNlY3Rpb24g
PSBidWlsZGVyLl9nZXRTZWN0aW9uKCJFeHBvcnQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBzdGFydFNlY3Rpb24gPSBidWlsZGVyLl9nZXRTZWN0aW9uKCJTdGFydCIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvZGVTZWN0aW9uID0gczsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhwb3J0U2VjdGlvbikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGUgb2YgZXhwb3J0U2VjdGlvbi5kYXRhKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5raW5kICE9PSAiRnVu
Y3Rpb24iIHx8IHR5cGVvZihlLnR5cGUpICE9PSAidW5kZWZpbmVkIikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mKGUuaW5kZXgpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0
ZWQgZXhwb3J0IGluZGV4ICIke2UuaW5kZXh9ImApOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2FzZSAic3RyaW5nIjogeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gYnVpbGRlci5fZ2V0RnVuY3Rpb25Gcm9tSW5kZXhT
cGFjZShlLmluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQuaXNOdW1iZXIoaW5kZXgsIGBFeHBvcnQgc2VjdGlvbiBjb250YWlucyB1bmRlZmluZWQg
ZnVuY3Rpb24gIiR7ZS5pbmRleH0iYCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZS5pbmRleCA9IGluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSAvLyBGYWxsdGhyb3VnaC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgIm51bWJlciI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBpbmRleCA9IGJ1aWxkZXIuX2dldEZ1bmN0aW9uRnJvbUluZGV4U3BhY2UoZS5p
bmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1aWxk
ZXIuX2NoZWNrZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydC5pc05vdFVuZGVmKGluZGV4LCBgRXhwb3J0ICIke2UuZmllbGR9IiBkb2VzIG5vdCBj
b3JyZXNwb25kIHRvIGEgZGVmaW5lZCB2YWx1ZSBpbiB0aGUgZnVuY3Rpb24gaW5kZXggc3BhY2Vg
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1bmRlZmluZWQiOgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5pbXBsZW1l
bnRlZDogRnVuY3Rpb24oKS5FbmQoKSB3aXRoIHVuZGVmaW5lZCBleHBvcnQgaW5kZXhgKTsgLy8g
RklYTUUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YoZS50eXBlKSA9PT0gInVuZGVmaW5l
ZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIG11
c3QgYmUgYSBmdW5jdGlvbiBleHBvcnQgZnJvbSB0aGUgQ29kZSBzZWN0aW9uIChyZS1leHBvcnRz
IHdlcmUgaGFuZGxlZCBlYXJsaWVyKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgZnVuY3Rpb25JbmRleFNwYWNlT2Zmc2V0ID0gMDsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW1wb3J0U2VjdGlvbikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHtraW5kfSBvZiBp
bXBvcnRTZWN0aW9uLmRhdGEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChraW5kID09PSAiRnVuY3Rpb24iKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrZnVuY3Rpb25JbmRleFNwYWNlT2Zm
c2V0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uSW5kZXggPSBlLmluZGV4IC0gZnVu
Y3Rpb25JbmRleFNwYWNlT2Zmc2V0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGUudHlwZSA9IGNvZGVTZWN0aW9uLmRhdGFbZnVuY3Rpb25JbmRleF0udHlwZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoc3RhcnRTZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gc3RhcnRTZWN0aW9uLmRhdGFbMF07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXBwZWQgPSBidWlsZGVyLl9nZXRGdW5jdGlv
bkZyb21JbmRleFNwYWNlKHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCFidWlsZGVyLl9jaGVja2VkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAodHlwZW9mKG1hcHBlZCkgPT09ICJ1bmRlZmluZWQiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1hcHBlZCA9IHN0YXJ0OyAvLyBJbiB1bmNoZWNrZWQg
bW9kZSwgc2ltcGx5IHVzZSB3aGF0IHdhcyBwcm92aWRlZCBpZiBpdCdzIG5vbnNlbnNpY2FsLgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmlzQShzdGFydCwgIm51
bWJlciIpOyAvLyBJdCBjYW4ndCBiZSB0b28gbm9uc2Vuc2ljYWwsIG90aGVyd2lzZSB3ZSBjYW4n
dCBjcmVhdGUgYSBiaW5hcnkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGFydFNlY3Rpb24uZGF0YVswXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5
cGVvZihtYXBwZWQpID09PSAidW5kZWZpbmVkIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFN0YXJ0IHNlY3Rpb24gcmVmZXJzIHRvIG5v
bi1leGlzdGFudCBmdW5jdGlvbiAnJHtzdGFydH0nYCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodHlwZW9mKHN0YXJ0KSA9PT0gInN0cmluZyIgfHwgdHlwZW9mKHN0
YXJ0KSA9PT0gIm9iamVjdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhcnRTZWN0aW9uLmRhdGFbMF0gPSBtYXBwZWQ7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRSBpbiBjaGVja2VkIG1vZGUsIHRlc3QgdGhhdCB0aGUgdHlw
ZSBpcyBhY2NlcHRhYmxlIGZvciBzdGFydCBmdW5jdGlvbi4gV2UgcHJvYmFibHkgd2FudCBfcmVn
aXN0ZXJGdW5jdGlvblRvSW5kZXhTcGFjZSB0byBhbHNvIHJlZ2lzdGVyIHR5cGVzIHBlciBpbmRl
eC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTY1OAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5
Rm9yKGJ1aWxkZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAg
ICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICBjb2RlQnVpbGRlci5GdW5jdGlvbiA9IF9j
cmVhdGVGdW5jdGlvbihzLCBidWlsZGVyLCBjb2RlQnVpbGRlcik7CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKGNvZGVCdWlsZGVyKTsKKyAgICAgICAg
ICAgICAgICB9OworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICJE
YXRhIjoKKyAgICAgICAgICAgICAgICB0aGlzW3NlY3Rpb25dID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IHMgPSB0aGlzLl9hZGRTZWN0aW9uKHNlY3Rpb24pOworICAg
ICAgICAgICAgICAgICAgICBjb25zdCBkYXRhQnVpbGRlciA9IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIEVuZDogKCkgPT4gdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgIFNlZ21lbnQ6
IGRhdGEgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5pc0FycmF5KGRh
dGEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZGF0dW0gb2YgZGF0
YSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuaXNOdW1iZXIoZGF0
dW0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZ2UoZGF0dW0sIDAp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQubGUoZGF0dW0sIDB4ZmYp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzLmRhdGEucHVzaCh7IGRhdGE6IGRhdGEsIGluZGV4OiAwLCBvZmZzZXQ6IDAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRoaXNTZWdtZW50ID0gcy5kYXRhW3MuZGF0
YS5sZW5ndGggLSAxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWdtZW50
QnVpbGRlciA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5kOiAoKSA9PiBk
YXRhQnVpbGRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXg6IGluZGV4
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcShpbmRl
eCwgMCk7IC8vIExpbmVhciBtZW1vcnkgaW5kZXggbXVzdCBiZSB6ZXJvIGluIE1WUC4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNTZWdtZW50LmluZGV4ID0gaW5kZXg7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2Vycm9ySGFuZGxp
bmdQcm94eUZvcihzZWdtZW50QnVpbGRlcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldDogb2Zmc2V0ID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FIGFsbG93IGNv
bXBsZXggaW5pdF9leHByIGhlcmUuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjU3MDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5p
c051bWJlcihvZmZzZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
c1NlZ21lbnQub2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5nUHJveHlGb3Ioc2VnbWVudEJ1aWxkZXIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5n
UHJveHlGb3Ioc2VnbWVudEJ1aWxkZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhh
bmRsaW5nUHJveHlGb3IoZGF0YUJ1aWxkZXIpOworICAgICAgICAgICAgICAgIH07CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAg
dGhpc1tzZWN0aW9uXSA9ICgpID0+IHsgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHNlY3Rpb24g
dHlwZSAiJHtzZWN0aW9ufSJgKTsgfTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuVW5rbm93biA9IGZ1bmN0aW9uKG5hbWUp
IHsKKyAgICAgICAgICAgIGNvbnN0IHMgPSB0aGlzLl9hZGRTZWN0aW9uKG5hbWUpOworICAgICAg
ICAgICAgY29uc3QgYnVpbGRlciA9IHRoaXM7CisgICAgICAgICAgICBjb25zdCB1bmtub3duQnVp
bGRlciA9ICB7CisgICAgICAgICAgICAgICAgRW5kOiAoKSA9PiBidWlsZGVyLAorICAgICAgICAg
ICAgICAgIEJ5dGU6IGIgPT4geworICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXEoYiAmIDB4
RkYsIGIsIGBVbmtub3duIHNlY3Rpb24gZXhwZWN0ZWQgYnl0ZSwgZ290OiAiJHtifSJgKTsKKyAg
ICAgICAgICAgICAgICAgICAgcy5kYXRhLnB1c2goYik7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBfZXJyb3JIYW5kbGluZ1Byb3h5Rm9yKHVua25vd25CdWlsZGVyKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIF9lcnJvckhhbmRsaW5n
UHJveHlGb3IodW5rbm93bkJ1aWxkZXIpOworICAgICAgICB9OworICAgIH0KKyAgICBfYWRkU2Vj
dGlvbihuYW1lT3JOdW1iZXIsIGV4dHJhT2JqZWN0KSB7CisgICAgICAgIGNvbnN0IG5hbWUgPSB0
eXBlb2YobmFtZU9yTnVtYmVyKSA9PT0gInN0cmluZyIgPyBuYW1lT3JOdW1iZXIgOiAiIjsKKyAg
ICAgICAgY29uc3QgbnVtYmVyID0gdHlwZW9mKG5hbWVPck51bWJlcikgPT09ICJudW1iZXIiID8g
bmFtZU9yTnVtYmVyIDogKFdBU00uZGVzY3JpcHRpb24uc2VjdGlvbltuYW1lXSA/IFdBU00uZGVz
Y3JpcHRpb24uc2VjdGlvbltuYW1lXS52YWx1ZSA6IF91bmtub3duU2VjdGlvbklkKTsKKyAgICAg
ICAgaWYgKHRoaXMuX2NoZWNrZWQpIHsKKyAgICAgICAgICAgIC8vIENoZWNrIHVuaXF1ZW5lc3Mu
CisgICAgICAgICAgICBmb3IgKGNvbnN0IHMgb2YgdGhpcy5fc2VjdGlvbnMpCisgICAgICAgICAg
ICAgICAgaWYgKG51bWJlciAhPT0gX3Vua25vd25TZWN0aW9uSWQpCisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydC5mYWxzeShzLm5hbWUgPT09IG5hbWUgJiYgcy5pZCA9PT0gbnVtYmVyLCBgQ2Fu
bm90IGhhdmUgdHdvIHNlY3Rpb25zIHdpdGggdGhlIHNhbWUgbmFtZSAiJHtuYW1lfSIgYW5kIElE
ICR7bnVtYmVyfWApOworICAgICAgICAgICAgLy8gQ2hlY2sgb3JkZXJpbmcuCisgICAgICAgICAg
ICBpZiAoKG51bWJlciAhPT0gX3Vua25vd25TZWN0aW9uSWQpICYmICh0aGlzLl9zZWN0aW9ucy5s
ZW5ndGggIT09IDApKSB7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuX3NlY3Rp
b25zLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0
aGlzLl9zZWN0aW9uc1tpXS5pZCA9PT0gX3Vua25vd25TZWN0aW9uSWQpCisgICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmxlKHRoaXMu
X3NlY3Rpb25zW2ldLmlkLCBudW1iZXIsIGBCYWQgc2VjdGlvbiBvcmRlcmluZzogIiR7dGhpcy5f
c2VjdGlvbnNbaV0ubmFtZX0iIGNhbm5vdCBwcmVjZWRlICIke25hbWV9ImApOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgY29uc3QgcyA9IE9iamVjdC5hc3NpZ24oeyBuYW1lOiBuYW1lLCBpZDog
bnVtYmVyLCBkYXRhOiBbXSB9LCBleHRyYU9iamVjdCB8fCB7fSk7CisgICAgICAgIHRoaXMuX3Nl
Y3Rpb25zLnB1c2gocyk7CisgICAgICAgIHJldHVybiBzOworICAgIH0KKyAgICBfZ2V0U2VjdGlv
bihuYW1lT3JOdW1iZXIpIHsKKyAgICAgICAgc3dpdGNoICh0eXBlb2YobmFtZU9yTnVtYmVyKSkg
eworICAgICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoYEltcGxlbWVudGF0aW9uIHByb2Js
ZW06IGNhbiBub3QgZ2V0IHNlY3Rpb24gIiR7bmFtZU9yTnVtYmVyfSJgKTsKKyAgICAgICAgY2Fz
ZSAic3RyaW5nIjoKKyAgICAgICAgICAgIGZvciAoY29uc3QgcyBvZiB0aGlzLl9zZWN0aW9ucykK
KyAgICAgICAgICAgICAgICBpZiAocy5uYW1lID09PSBuYW1lT3JOdW1iZXIpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBzOworICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAg
ICAgY2FzZSAibnVtYmVyIjoKKyAgICAgICAgICAgIGZvciAoY29uc3QgcyBvZiB0aGlzLl9zZWN0
aW9ucykKKyAgICAgICAgICAgICAgICBpZiAocy5pZCA9PT0gbmFtZU9yTnVtYmVyKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gczsKKyAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgb3B0aW1pemUoKSB7CisgICAgICAgIC8vIEZJWE1FIEFkZCBt
b3JlIG9wdGltaXphdGlvbnMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjM0MjQKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIGpzb24oKSB7CisgICAg
ICAgIGNvbnN0IG9iaiA9IHsKKyAgICAgICAgICAgIHByZWFtYmxlOiB0aGlzLl9wcmVhbWJsZSwK
KyAgICAgICAgICAgIHNlY3Rpb246IHRoaXMuX3NlY3Rpb25zCisgICAgICAgIH07CisgICAgICAg
IC8vIEpTT04uc3RyaW5naWZ5IHNlcmlhbGl6ZXMgLTAuMCBhcyAwLjAuCisgICAgICAgIGNvbnN0
IHJlcGxhY2VyID0gKGtleSwgdmFsdWUpID0+IHsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0g
MC4wICYmIDEuMCAvIHZhbHVlID09PSAtSW5maW5pdHkpCisgICAgICAgICAgICAgICAgcmV0dXJu
ICJORUdBVElWRV9aRVJPIjsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfTsK
KyAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaiwgcmVwbGFjZXIpOworICAgIH0KKyAg
ICBBc21KUygpIHsKKyAgICAgICAgInVzZSBhc20iOyAvLyBGb3Igc3BlZWQuCisgICAgICAgIC8v
IEZJWE1FIENyZWF0ZSBhbiBhc20uanMgZXF1aXZhbGVudCBzdHJpbmcgd2hpY2ggY2FuIGJlIGV2
YWwnZC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyNQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoImFzbS5qcyBub3QgaW1wbGVtZW50ZWQgeWV0Iik7CisgICAg
fQorICAgIFdlYkFzc2VtYmx5KCkgeyByZXR1cm4gQnVpbGRXZWJBc3NlbWJseS5CaW5hcnkodGhp
cy5fcHJlYW1ibGUsIHRoaXMuX3NlY3Rpb25zKTsgfQorfTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjU5NTNlZjM4MzI1ODA5OTQwNWE3MzVmMzY1NjEy
MTZlZWMzNWNlNi4uMWRiOWE0YmJiMWIxMjFjZGFlMTkyMGE1NmNkZmFkNTI3MmQ5NjA3MCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM5MDAsNiArMzkw
MCw3IEBAIHdhc20vaWZyYW1lLXBhcmVudC1wb3N0bWVzc2FnZS5odG1sIFsgU2tpcCBdCiB3YXNt
L3dpbmRvdy1wb3N0bWVzc2FnZS5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dhc20vd2FzbV9zdHJlYW1faW5zdGFudGlhdGVfdGVzdC5odG1sICBbIFNraXAg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL3dhc21fc3RyZWFtX2NvbXBp
bGVfdGVzdC5odG1sICBbIFNraXAgXQoraHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvYWxsb3ctd2FzbS1hZnRlci13aW5kb3ctb3Blbi5odG1sIFsgU2tpcCBdCiAKICMg
QW5pbWF0ZWQgaW1hZ2UgdGhyb3R0bGluZyBiZWhhdmVzIGRpZmZlcmVudGx5IG9uIFdLMS4KIHN2
Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN2Zy1pbWFnZS1vdXRzaWRlLXZpZXdwb3J0LXBhdXNlZC5o
dG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>