<?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>127797</bug_id>
          
          <creation_ts>2014-01-28 14:15:46 -0800</creation_ts>
          <short_desc>Make DOM attributes appear to be faux accessor properties</short_desc>
          <delta_ts>2014-01-29 13:14:40 -0800</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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>127825</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>aestes</cc>
    
    <cc>alecflett</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>philipj</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>973089</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-01-28 14:15:46 -0800</bug_when>
    <thetext>Make DOM attributes appear to be faux accessor properties</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973098</commentid>
    <comment_count>1</comment_count>
      <attachid>222490</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-01-28 14:23:41 -0800</bug_when>
    <thetext>Created attachment 222490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973103</commentid>
    <comment_count>2</comment_count>
      <attachid>222490</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-28 14:29:27 -0800</bug_when>
    <thetext>Comment on attachment 222490
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:2336
&gt; +                    if ($interfaceName eq &quot;DOMWindow&quot; &amp;&amp; $className eq &quot;JSblah&quot;) {
&gt; +                        # FIXME: This branch never executes and should be removed.

You&apos;re not inspiring confidence here.  What&apos;s &quot;JSblah&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973120</commentid>
    <comment_count>3</comment_count>
      <attachid>222495</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-01-28 14:46:46 -0800</bug_when>
    <thetext>Created attachment 222495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973228</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-01-28 17:08:40 -0800</bug_when>
    <thetext>Committed r162987: &lt;http://trac.webkit.org/changeset/162987&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973267</commentid>
    <comment_count>5</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-01-28 20:00:20 -0800</bug_when>
    <thetext>This broke Release builds, as indicated by the three EWS failures. Also see &lt;http://build.webkit.org/builders/Apple%20MountainLion%20Release%20%28Build%29/builds/17668/steps/compile-webkit/logs/stdio&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973272</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-28 20:10:28 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 127825</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973280</commentid>
    <comment_count>7</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-01-28 20:22:28 -0800</bug_when>
    <thetext>Mountain Lion probably has an older version of Perl. You need to dereference your array references on all the calls to push().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973424</commentid>
    <comment_count>8</comment_count>
      <attachid>222586</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-01-29 11:27:38 -0800</bug_when>
    <thetext>Created attachment 222586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973445</commentid>
    <comment_count>9</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-01-29 12:29:03 -0800</bug_when>
    <thetext>Committed r163035: &lt;http://trac.webkit.org/changeset/163035&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973453</commentid>
    <comment_count>10</comment_count>
      <attachid>222586</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-01-29 13:14:40 -0800</bug_when>
    <thetext>Comment on attachment 222586
Patch

Clearing review flag because this was committed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222490</attachid>
            <date>2014-01-28 14:23:41 -0800</date>
            <delta_ts>2014-01-28 14:46:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127797-20140128142340.patch</filename>
            <type>text/plain</type>
            <size>60845</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
N2IzNGUwMDE0NjI4ODJkOGYwNDJmNzhhMGRlYzQ1N2JkYjk5MmZiLi40NzcyNTFmOWU3YzM0NjBj
NDk3YmNiMzcyNGI1NDQ5NGRjOGVhZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxNC0wMS0yOCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgRE9NIGF0dHJpYnV0ZXMgYXBwZWFyIHRvIGJlIGZhdXggYWNjZXNzb3Ig
cHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI3Nzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGZsYWcgc28gd2UgY2FuIGlkZW50aWZ5IHdoaWNoIHByb3BlcnRpZXMgc2hvdWxkIGhh
dmUgdGhlIG9sZAorICAgICAgICBjdXN0b20gcHJvcGVydHkgc2VtYW50aWNzIHZzLiB0aGUgbmV3
IGZhdXggYWNjZXNzb3JzLiBVcGRhdGUgdGhlCisgICAgICAgIGluc3BlY3RvciBwcm90b2NvbCBh
Y2NvcmRpbmdseS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5q
czoKKyAgICAgICAgKC4pOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpKU09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBy
dW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHA6CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVz
Y3JpcHRvcjo6c2V0Q3VzdG9tRGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0
eURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5U2xvdC5oOgorCiAyMDE0
LTAxLTI4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBKZXR0aXNv
biBERkcgY29kZSB3aGVuIG5laXRoZXIgYnJlYWtwb2ludHMgb3IgdGhlIHByb2ZpbGVyIGFyZSBh
Y3RpdmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMGJlMmFlNTQ3ZDM1MjBmMzNiYjJlYzgzYjQxM2U2NjkyNmYy
NjYxNS4uN2YyZGNlMGY4NWY0ZDBmOTkyMTAzMTQ3NmVjMWMxYTgzNzE2YmIxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTAxLTI4ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgTWFrZSBET00gYXR0cmlidXRlcyBhcHBlYXIgdG8gYmUgZmF1eCBh
Y2Nlc3NvciBwcm9wZXJ0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjc3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZWZhY3RvciB0aGUgYmluZGluZ3MgZ2VuZXJhdG9yLCBhbmQgbWFrZSBzdXJl
IHdlIGVtaXQKKyAgICAgICAgdGhlIEN1c3RvbUFjY2Vzc29yIGZsYWcgb24gcHJvcGVydGllcyB0
aGF0IHNob3VsZCAKKyAgICAgICAgYXBwZWFyIHRvIGJlIGFjY2Vzc29ycy4KKworICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVH
ZXRPd25Qcm9wZXJ0eVNsb3RCb2R5KToKKyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlc0hhc2hU
YWJsZSk6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKwogMjAxNC0wMS0yOCAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihy
MTYyODM3KTogNSUgcmVncmVzc2lvbiBvbiBodG1sNS1mdWxsLXJlbmRlciBhbmQgMyUgcmVncmVz
c2lvbiBpbiBEb1lvdUV2ZW5CZW5jaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKaW5kZXggN2JmZjdmNmQ0MTU5ODgy
OGQ4N2U5OGMzZDQ1ZDlhZDU5NzljMzVhNS4uMzA0NDIyNGQ4YWVhZDE2ZmIzZTQ5ZTMxODNmZjk3
NDE0NDA4YjczNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCkBAIC0zNTAsNiArMzUwLDE4IEBAIEluamVjdGVk
U2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLmhhc093blByb3BlcnR5KCJnZXQiKSAmJiBkZXNj
cmlwdG9yLmhhc093blByb3BlcnR5KCJzZXQiKSAmJiAhZGVzY3JpcHRvci5nZXQgJiYgIWRlc2Ny
aXB0b3Iuc2V0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3QgYWxsIGJpbmRpbmdz
IHByb3ZpZGUgcHJvcGVyIGRlc2NyaXB0b3JzLiBGYWxsIGJhY2sgdG8gdGhlIHdyaXRhYmxlLCBj
b25maWd1cmFibGUgcHJvcGVydHkuCisgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IgPSB7IG5hbWU6IG5hbWUsIHZhbHVl
OiBvYmplY3RbbmFtZV0sIHdyaXRhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgZW51
bWVyYWJsZTogZmFsc2V9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvID09PSBv
YmplY3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IuaXNPd24g
PSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3JzLnB1c2goZGVz
Y3JpcHRvcik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gU2lsZW50IGNhdGNoLgorICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHZhciBkZXNjcmlwdG9yID0ge307CiAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3Iu
dmFsdWUgPSBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmlu
ZGV4IDY5MTBiN2UwNGZhYjE1ZjY2NWJkOTc2MmNiNWI2ZmM2MWNkMmZkNDYuLjJiNjdhMWQ5ZWVk
ODRlOTk1NmY4YmI5NjgzODRjODRjYWVhNTNjZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5jcHAKQEAgLTI0MjEsNiArMjQyMSw4IEBAIGJvb2wgSlNPYmplY3Q6
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoc2xvdC5pc0FjY2Vzc29y
KCkpCiAgICAgICAgIGRlc2NyaXB0b3Iuc2V0QWNjZXNzb3JEZXNjcmlwdG9yKHNsb3QuZ2V0dGVy
U2V0dGVyKCksIHNsb3QuYXR0cmlidXRlcygpKTsKKyAgICBlbHNlIGlmIChzbG90LmF0dHJpYnV0
ZXMoKSAmIEN1c3RvbUFjY2Vzc29yKQorICAgICAgICBkZXNjcmlwdG9yLnNldEN1c3RvbURlc2Ny
aXB0b3Ioc2xvdC5hdHRyaWJ1dGVzKCkpOwogICAgIGVsc2UKICAgICAgICAgZGVzY3JpcHRvci5z
ZXREZXNjcmlwdG9yKHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdC5hdHRy
aWJ1dGVzKCkpOwogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHAKaW5kZXggMWRkMzU2MDVjOTAwMjhm
NmM0MzYyNDg5YjBjODgzNTNhNmExYzZmZS4uZDdhZjUyMzQxODBkOWVkZjgxNjI1NjJmOWM0OTU1
MTY5NzBiYjVhNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
cGVydHlEZXNjcmlwdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm9wZXJ0eURlc2NyaXB0b3IuY3BwCkBAIC0xMTUsNiArMTE1LDE2IEBAIHZvaWQgUHJvcGVydHlE
ZXNjcmlwdG9yOjpzZXREZXNjcmlwdG9yKEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0
ZXMpCiAgICAgfQogfQogCit2b2lkIFByb3BlcnR5RGVzY3JpcHRvcjo6c2V0Q3VzdG9tRGVzY3Jp
cHRvcih1bnNpZ25lZCBhdHRyaWJ1dGVzKQoreworICAgIG1fYXR0cmlidXRlcyA9IGF0dHJpYnV0
ZXMgfCBBY2Nlc3NvciB8IEN1c3RvbUFjY2Vzc29yOworICAgIG1fYXR0cmlidXRlcyAmPSB+UmVh
ZE9ubHk7CisgICAgbV9zZWVuQXR0cmlidXRlcyA9IEVudW1lcmFibGVQcmVzZW50IHwgQ29uZmln
dXJhYmxlUHJlc2VudDsKKyAgICBzZXRHZXR0ZXIoanNVbmRlZmluZWQoKSk7CisgICAgc2V0U2V0
dGVyKGpzVW5kZWZpbmVkKCkpOworICAgIG1fdmFsdWUgPSBKU1ZhbHVlKCk7Cit9CisKIHZvaWQg
UHJvcGVydHlEZXNjcmlwdG9yOjpzZXRBY2Nlc3NvckRlc2NyaXB0b3IoR2V0dGVyU2V0dGVyKiBh
Y2Nlc3NvciwgdW5zaWduZWQgYXR0cmlidXRlcykKIHsKICAgICBBU1NFUlQoYXR0cmlidXRlcyAm
IEFjY2Vzc29yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5RGVzY3JpcHRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVy
dHlEZXNjcmlwdG9yLmgKaW5kZXggMmNjOTVmYjIxY2U0YzkwNGUwODA1MTdjM2E0YTNkNzUyMTAy
MDk3NS4uODRlMjcwMGFjZjc5M2FlYWYwODI2YTI0MWRjNTk2NTM4ZmIxNTc0OCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmgKQEAg
LTYzLDYgKzYzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTT2JqZWN0KiBzZXR0ZXJP
YmplY3QoKSBjb25zdDsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRVbmRlZmlu
ZWQoKTsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXREZXNjcmlwdG9yKEpTVmFs
dWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOworICAgICAgICBKU19FWFBPUlRfUFJJVkFU
RSB2b2lkIHNldEN1c3RvbURlc2NyaXB0b3IodW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAg
IEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0QWNjZXNzb3JEZXNjcmlwdG9yKEdldHRlclNldHRl
ciogYWNjZXNzb3IsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAgICBKU19FWFBPUlRfUFJJ
VkFURSB2b2lkIHNldFdyaXRhYmxlKGJvb2wpOwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2
b2lkIHNldEVudW1lcmFibGUoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3BlcnR5U2xvdC5oCmluZGV4IGFlOTM0NTVhNDg0NzgzNzg0NzZjNDNhMjUxMmM4NThmNjQ4
NTZjYTYuLmQ5MzhmYTMxNjQ1YWYyNmI3NTg1MTRkYjZiMjQ3OGYxODNlOWVlZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCkBAIC00MSw2ICs0MSw3
IEBAIGVudW0gQXR0cmlidXRlIHsKICAgICBEb250RGVsZXRlICAgPSAxIDw8IDMsICAvLyBwcm9w
ZXJ0eSBjYW4ndCBiZSBkZWxldGVkCiAgICAgRnVuY3Rpb24gICAgID0gMSA8PCA0LCAgLy8gcHJv
cGVydHkgaXMgYSBmdW5jdGlvbiAtIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAg
IEFjY2Vzc29yICAgICA9IDEgPDwgNSwgIC8vIHByb3BlcnR5IGlzIGEgZ2V0dGVyL3NldHRlcgor
ICAgIEN1c3RvbUFjY2Vzc29yID0gMSA8PCA2LAogfTsKIAogY2xhc3MgUHJvcGVydHlTbG90IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KaW5kZXggNmI5N2Q1MzI0Zjg3MDE3YTA3NjdhODhlZjRhMmM4MjJmYTRkM2QwYi4uMzE4OTZj
ODZjNzg3MWNhNzg1N2IyZmI3ZjQ0OTUxZGI3OGU2YmY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTM5OCw3ICszOTgs
NyBAQCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5CiAKICAgICBpZiAoJGludGVy
ZmFjZU5hbWUgZXEgIk5hbWVkTm9kZU1hcCIgb3IgJGludGVyZmFjZU5hbWUgPX4gL15IVE1MXHcq
Q29sbGVjdGlvbiQvKSB7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIg
ICAgJHtuYW1lc3BhY2VNYXliZX1KU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+cHJvdG90eXBl
KCk7XG4iKTsKLSAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAo
cHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8JHtuYW1lc3BhY2VNYXliZX1KU09iamVjdCo+KGFz
T2JqZWN0KHByb3RvKSktPmhhc1Byb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSkpXG4iKTsKKyAg
ICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAocHJvdG8uaXNPYmpl
Y3QoKSAmJiBqc0Nhc3Q8JHtuYW1lc3BhY2VNYXliZX1KU09iamVjdCo+KHByb3RvKS0+aGFzUHJv
cGVydHkoZXhlYywgcHJvcGVydHlOYW1lKSlcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9w
ZXJ0eVNsb3RJbXBsLCAiICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiIpOwogICAgIH0KIApAQCAt
MTE3NCw5ICsxMTc0LDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgfQogfQogCi1zdWIgR2Vu
ZXJhdGVBdHRyaWJ1dGVzSGFzaFRhYmxlKCQkKQorc3ViIEdlbmVyYXRlQXR0cmlidXRlc0hhc2hU
YWJsZQogewotICAgIG15ICgkb2JqZWN0LCAkaW50ZXJmYWNlKSA9IEBfOworICAgIG15ICgkb2Jq
ZWN0LCAkaW50ZXJmYWNlLCAkaGFzaEtleXMsICRoYXNoU3BlY2lhbHMsICRoYXNoVmFsdWUxLCAk
aGFzaFZhbHVlMiwgJGNvbmRpdGlvbmFscywgJGVudHJpZXMpID0gQF87CiAKICAgICAjIEZJWE1F
OiBUaGVzZSBzaG91bGQgYmUgZnVuY3Rpb25zIG9uICRpbnRlcmZhY2UuCiAgICAgbXkgJGludGVy
ZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOwpAQCAtMTE4OCwyMSArMTE4OCwxMCBAQCBzdWIg
R2VuZXJhdGVBdHRyaWJ1dGVzSGFzaFRhYmxlKCQkKQogCiAgICAgcmV0dXJuIDAgIGlmICEkbnVt
QXR0cmlidXRlczsKIAotICAgIG15ICRoYXNoU2l6ZSA9ICRudW1BdHRyaWJ1dGVzOwotICAgIG15
ICRoYXNoTmFtZSA9ICRjbGFzc05hbWUgLiAiVGFibGUiOwotCi0gICAgbXkgQGhhc2hLZXlzID0g
KCk7Ci0gICAgbXkgQGhhc2hTcGVjaWFscyA9ICgpOwotICAgIG15IEBoYXNoVmFsdWUxID0gKCk7
Ci0gICAgbXkgQGhhc2hWYWx1ZTIgPSAoKTsKLSAgICBteSAlY29uZGl0aW9uYWxzID0gKCk7Ci0K
LSAgICBteSBAZW50cmllcyA9ICgpOwotCiAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRp
bnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7CiAgICAgICAgIG5leHQgaWYgKCRhdHRyaWJ1dGUtPmlz
U3RhdGljKTsKICAgICAgICAgbXkgJG5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7
Ci0gICAgICAgIHB1c2goQGhhc2hLZXlzLCAkbmFtZSk7CisgICAgICAgIHB1c2goJGhhc2hLZXlz
LCAkbmFtZSk7CiAKICAgICAgICAgbXkgQHNwZWNpYWxzID0gKCk7CiAgICAgICAgICMgQXMgcGVy
IFdlYiBJREwgc3BlY2lmaWNhdGlvbiwgY29uc3RydWN0b3IgcHJvcGVydGllcyBvbiB0aGUgRUNN
QVNjcmlwdCBnbG9iYWwgb2JqZWN0IHNob3VsZCBiZQpAQCAtMTIxMSw0MyArMTIwMCwzOSBAQCBz
dWIgR2VuZXJhdGVBdHRyaWJ1dGVzSGFzaFRhYmxlKCQkKQogICAgICAgICBwdXNoKEBzcGVjaWFs
cywgIkRvbnREZWxldGUiKSB1bmxlc3MgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkRlbGV0YWJsZSJ9IHx8ICRpc19nbG9iYWxfY29uc3RydWN0b3IpOwogICAg
ICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnRFbnVtIikgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdEVudW1lcmFibGUifSB8fCAkaXNfZ2xvYmFsX2Nv
bnN0cnVjdG9yKTsKICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJSZWFkT25seSIpIGlmIElzUmVh
ZG9ubHkoJGF0dHJpYnV0ZSk7CisgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiQ3VzdG9tQWNjZXNz
b3IiKSB1bmxlc3MgJGlzX2dsb2JhbF9jb25zdHJ1Y3RvcjsKICAgICAgICAgbXkgJHNwZWNpYWwg
PSAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAiLCBAc3BlY2lhbHMpIDogIjAiOwotICAgICAg
ICBwdXNoKEBoYXNoU3BlY2lhbHMsICRzcGVjaWFsKTsKKyAgICAgICAgcHVzaCgkaGFzaFNwZWNp
YWxzLCAkc3BlY2lhbCk7CiAKICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRl
ck5hbWUoJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICBw
dXNoKEBoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKKyAgICAgICAgcHVzaCgkaGFzaFZhbHVlMSwgJGdl
dHRlcik7CiAKICAgICAgICAgaWYgKElzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKLSAgICAgICAg
ICAgIHB1c2goQGhhc2hWYWx1ZTIsICIwIik7CisgICAgICAgICAgICBwdXNoKCRoYXNoVmFsdWUy
LCAiMCIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0
dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUp
OwotICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgJHNldHRlcik7CisgICAgICAgICAgICBw
dXNoKCRoYXNoVmFsdWUyLCAkc2V0dGVyKTsKICAgICAgICAgfQogCiAgICAgICAgIG15ICRjb25k
aXRpb25hbCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNv
bmRpdGlvbmFsIn07CiAgICAgICAgIGlmICgkY29uZGl0aW9uYWwpIHsKLSAgICAgICAgICAgICRj
b25kaXRpb25hbHN7JG5hbWV9ID0gJGNvbmRpdGlvbmFsOworICAgICAgICAgICAgJGNvbmRpdGlv
bmFscy0+eyRuYW1lfSA9ICAkY29uZGl0aW9uYWw7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBp
ZiAoISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb0ludGVyZmFjZU9iamVjdCJ9
KSB7Ci0gICAgICAgIHB1c2goQGhhc2hLZXlzLCAiY29uc3RydWN0b3IiKTsKKyAgICAgICAgcHVz
aCgkaGFzaEtleXMsICJjb25zdHJ1Y3RvciIpOwogICAgICAgICBteSAkZ2V0dGVyID0gImpzIiAu
ICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9yIjsKLSAgICAgICAgcHVzaChAaGFzaFZhbHVl
MSwgJGdldHRlcik7CisgICAgICAgIHB1c2goJGhhc2hWYWx1ZTEsICRnZXR0ZXIpOwogICAgICAg
ICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcGxhY2VhYmxlQ29uc3Ry
dWN0b3IifSkgewogICAgICAgICAgICAgbXkgJHNldHRlciA9ICJzZXRKUyIgLiAkaW50ZXJmYWNl
TmFtZSAuICJDb25zdHJ1Y3RvciI7Ci0gICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkc2V0
dGVyKTsKLSAgICAgICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgIkRvbnRFbnVtIHwgRG9udERl
bGV0ZSIpOworICAgICAgICAgICAgcHVzaCgkaGFzaFZhbHVlMiwgJHNldHRlcik7CisgICAgICAg
ICAgICBwdXNoKCRoYXNoU3BlY2lhbHMsICJEb250RW51bSB8IERvbnREZWxldGUiKTsKICAgICAg
ICAgfSBlbHNlIHsgICAgICAgICAgICAKLSAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICIw
Iik7Ci0gICAgICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsICJEb250RW51bSB8IFJlYWRPbmx5
Iik7CisgICAgICAgICAgICBwdXNoKCRoYXNoVmFsdWUyLCAiMCIpOworICAgICAgICAgICAgcHVz
aCgkaGFzaFNwZWNpYWxzLCAiRG9udEVudW0gfCBSZWFkT25seSIpOwogICAgICAgICB9CiAgICAg
fQotCi0gICAgJG9iamVjdC0+R2VuZXJhdGVIYXNoVGFibGUoJGhhc2hOYW1lLCAkaGFzaFNpemUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXEBoYXNoS2V5cywgXEBoYXNoU3BlY2lh
bHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXEBoYXNoVmFsdWUxLCBcQGhhc2hW
YWx1ZTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCVjb25kaXRpb25hbHMpOwog
ICAgIHJldHVybiAkbnVtQXR0cmlidXRlczsKIH0KIApAQCAtMTU4NSwxMCArMTU3MCwyNCBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG51c2lu
ZyBuYW1lc3BhY2UgSlNDO1xuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIm5hbWVzcGFj
ZSBXZWJDb3JlIHtcblxuIik7CiAKLSAgICBteSAkbnVtQXR0cmlidXRlcyA9IEdlbmVyYXRlQXR0
cmlidXRlc0hhc2hUYWJsZSgkb2JqZWN0LCAkaW50ZXJmYWNlKTsKKyAgICBteSBAaGFzaEtleXMg
PSAoKTsKKyAgICBteSBAaGFzaFZhbHVlMSA9ICgpOworICAgIG15IEBoYXNoVmFsdWUyID0gKCk7
CisgICAgbXkgQGhhc2hTcGVjaWFscyA9ICgpOworICAgIG15ICVjb25kaXRpb25hbHMgPSAoKTsK
KyAgICBteSAkaGFzaE5hbWUgPSAkY2xhc3NOYW1lIC4gIlRhYmxlIjsKKworICAgIG15ICRudW1B
dHRyaWJ1dGVzID0gR2VuZXJhdGVBdHRyaWJ1dGVzSGFzaFRhYmxlKCRvYmplY3QsICRpbnRlcmZh
Y2UsCisgICAgICAgIFxAaGFzaEtleXMsIFxAaGFzaFNwZWNpYWxzLAorICAgICAgICBcQGhhc2hW
YWx1ZTEsIFxAaGFzaFZhbHVlMiwKKyAgICAgICAgXCVjb25kaXRpb25hbHMpOwogCiAgICAgbXkg
JG51bUNvbnN0YW50cyA9IEB7JGludGVyZmFjZS0+Y29uc3RhbnRzfTsKICAgICBteSAkbnVtRnVu
Y3Rpb25zID0gQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9OworICAgICRvYmplY3QtPkdlbmVyYXRl
SGFzaFRhYmxlKCRoYXNoTmFtZSwgJG51bUF0dHJpYnV0ZXMsCisgICAgICAgIFxAaGFzaEtleXMs
IFxAaGFzaFNwZWNpYWxzLAorICAgICAgICBcQGhhc2hWYWx1ZTEsIFxAaGFzaFZhbHVlMiwKKyAg
ICAgICAgXCVjb25kaXRpb25hbHMpOwogCiAgICAgIyAtIEFkZCBhbGwgY29uc3RhbnRzCiAgICAg
aWYgKCEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9JbnRlcmZhY2VPYmplY3Qi
fSkgewpAQCAtMTY4OSwxMyArMTY4OCwxMyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
CiAgICAgIyAtIEFkZCBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cyB0byBhIGhhc2h0YWJsZSBkZWZp
bml0aW9uCiAgICAgbXkgJGhhc2hTaXplID0gJG51bUZ1bmN0aW9ucyArICRudW1Db25zdGFudHM7
Ci0gICAgbXkgJGhhc2hOYW1lID0gJGNsYXNzTmFtZSAuICJQcm90b3R5cGVUYWJsZSI7CisgICAg
JGhhc2hOYW1lID0gJGNsYXNzTmFtZSAuICJQcm90b3R5cGVUYWJsZSI7CiAKLSAgICBteSBAaGFz
aEtleXMgPSAoKTsKLSAgICBteSBAaGFzaFZhbHVlMSA9ICgpOwotICAgIG15IEBoYXNoVmFsdWUy
ID0gKCk7Ci0gICAgbXkgQGhhc2hTcGVjaWFscyA9ICgpOwotICAgIG15ICVjb25kaXRpb25hbHMg
PSAoKTsKKyAgICBAaGFzaEtleXMgPSAoKTsKKyAgICBAaGFzaFZhbHVlMSA9ICgpOworICAgIEBo
YXNoVmFsdWUyID0gKCk7CisgICAgQGhhc2hTcGVjaWFscyA9ICgpOworICAgICVjb25kaXRpb25h
bHMgPSAoKTsKIAogICAgICMgRklYTUU6IHdlIHNob3VsZCBub3QgbmVlZCBhIGZ1bmN0aW9uIGZv
ciBldmVyeSBjb25zdGFudC4KICAgICBmb3JlYWNoIG15ICRjb25zdGFudCAoQHskaW50ZXJmYWNl
LT5jb25zdGFudHN9KSB7CkBAIC0xOTcwLDggKzE5NjksMTQgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KIAogICAgICAgICAgICAgaWYgKCEkYXR0cmlidXRlLT5pc1N0YXRpYyB8fCAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0NvbnN0cnVjdG9yJC8pIHsKICAgICAgICAgICAg
ICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzID0g
anNDYXN0PCRjbGFzc05hbWUqPihKU1ZhbHVlOjpkZWNvZGUoc2xvdEJhc2UpKTtcbiIpOwotICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0odGhp
c1ZhbHVlKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAke2NsYXNzTmFtZX0qIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PCRjbGFzc05hbWUqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFjYXN0ZWRUaGlzKSB7XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGlmIChKU0RPTVdpbmRvd1NoZWxs
KiBzaGVsbCA9IGpzRHluYW1pY0Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKSlcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgICAgIGNhc3RlZFRoaXMgPSBzaGVsbC0+d2luZG93KCk7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CisgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFj
YXN0ZWRUaGlzKVxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOwogICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8JGNsYXNzTmFtZSo+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpO1xuIik7CkBAIC0yMTQy
LDcgKzIxNDcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBpZiAoISRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb0ludGVyZmFjZU9iamVjdCJ9KSB7CiAg
ICAgICAgICAgICBteSAkY29uc3RydWN0b3JGdW5jdGlvbk5hbWUgPSAianMiIC4gJGludGVyZmFj
ZU5hbWUgLiAiQ29uc3RydWN0b3IiOwogCi0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IkVuY29kZWRKU1ZhbHVlICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
KVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7
Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKVxuIik7CiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJET01XaW5kb3ciKSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgJHtjbGFzc05hbWV9KiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PCRjbGFzc05hbWUq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4iKTsKQEAgLTIxNTIsOCArMjE1Nyw2IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgfVxuIik7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogZG9tT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDwkY2xhc3NOYW1lKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7Ci0g
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFkb21PYmplY3QpXG4i
KTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmICghZG9tT2JqZWN0KVxuIik7CiAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
XG4iKTsKQEAgLTIxNjcsMjY4ICsyMTcwLDI2OSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgICAgICB9CiAK
KyAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXBsYWNlYWJs
ZUNvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvckZ1bmN0aW9uTmFt
ZSA9ICJzZXRKUyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7CiAKLSAgICAgICAg
IyBDaGVjayBpZiB3ZSBoYXZlIGFueSB3cml0YWJsZSBhdHRyaWJ1dGVzCi0gICAgICAgIG15ICRo
YXNSZWFkV3JpdGVQcm9wZXJ0aWVzID0gMDsKLSAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRl
IChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7Ci0gICAgICAgICAgICAkaGFzUmVhZFdyaXRl
UHJvcGVydGllcyA9IDEgaWYgIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkgJiYgISRhdHRyaWJ1dGUt
PmlzU3RhdGljOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y29uc3Ry
dWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSlcbiIpOworICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KTsiKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8JHtjbGFzc05hbWV9Kj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpO1xuIik7CisgICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRP
TVdpbmRvdyIpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAo
IWNhc3RlZFRoaXMpIHtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICAgICBpZiAoSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSBqc0R5bmFtaWNDYXN0PEpTRE9N
V2luZG93U2hlbGwqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpXG4iKTsKKyAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgICAgIGNhc3RlZFRoaXMgPSBzaGVs
bC0+d2luZG93KCk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICB9XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmICghY2FzdGVkVGhpcykge1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOworICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgfVxuIik7CisgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNoZWNrU2VjdXJpdHkifSkgeworICAgICAgICAgICAgICAgIGlm
ICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgeworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dB
Y2Nlc3NUb0RPTVdpbmRvdyhleGVjLCBjYXN0ZWRUaGlzLT5pbXBsKCkpKVxuIik7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaWYgKCFzaG91bGRBbGxvd0FjY2Vzc1RvRnJhbWUoZXhlYywgY2FzdGVkVGhpcy0+aW1w
bCgpLmZyYW1lKCkpKVxuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQt
aW4gY29uc3RydWN0b3JcbiIpOworCisgICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEg
IkRPTVdpbmRvdyIpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBj
YXN0ZWRUaGlzLT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmNv
bnN0cnVjdG9yLCB2YWx1ZSk7XG4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgZGllICJObyB3YXkgdG8gaGFuZGxlIGludGVyZmFjZSB3aXRoIFJlcGxhY2VhYmxlQ29u
c3RydWN0b3IgZXh0ZW5kZWQgYXR0cmlidXRlOiAkaW50ZXJmYWNlTmFtZSI7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgIH0K
KyAgICB9CisgICAgbXkgJGhhc0N1c3RvbVNldHRlciA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b21OYW1lZFNldHRlciJ9CisgICAgICAgICAgICAgICAgICAgICAgICAg
IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21JbmRleGVkU2V0dGVy
In07CiAKLSAgICAgICAgbXkgJG92ZXJyaWRlc1B1dEltcGxlbWVudGF0aW9uID0gSW5zdGFuY2VP
dmVycmlkZXNQdXRJbXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlKTsKLSAgICAgICAgbXkgJGhhc1Nl
dHRlciA9ICRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzOworICAgIGlmICgkaGFzQ3VzdG9tU2V0dGVy
KSB7CisgICAgICAgIGlmICghJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bVB1dEZ1bmN0aW9uIn0pIHsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAk
e2NsYXNzTmFtZX06OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KVxu
Iik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0ganNDYXN0
PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7XG4i
KTsKKyAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tSW5kZXhlZFNldHRlciJ9KSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgdW5zaWduZWQgaW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpO1xuIik7CisgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGluZGV4ICE9IFByb3BlcnR5
TmFtZTo6Tm90QW5JbmRleCkge1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIHRoaXNPYmplY3QtPmluZGV4U2V0dGVyKGV4ZWMsIGluZGV4LCB2YWx1ZSk7
XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJu
O1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkN1c3RvbU5hbWVkU2V0dGVyIn0pIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBpZiAodGhpc09iamVjdC0+cHV0RGVsZWdhdGUoZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCkpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgcmV0dXJuO1xuIik7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgaWYgKCRo
YXNTZXR0ZXIgfHwgJG92ZXJyaWRlc1B1dEltcGxlbWVudGF0aW9uKSB7Ci0gICAgICAgICAgICBp
ZiAoJG92ZXJyaWRlc1B1dEltcGxlbWVudGF0aW9uKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90
KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworCisgICAg
ICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUluZGV4
ZWRTZXR0ZXIifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFt
ZWRTZXR0ZXIifSkgeworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAk
e2NsYXNzTmFtZX06OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KVxuIik7CiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
JHtjbGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7
XG4iKTsKICAgICAgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkN1c3RvbUluZGV4ZWRTZXR0ZXIifSkgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7
XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGlu
ZGV4ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCkge1xuIik7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChpbmRleCA8PSBNQVhfQVJSQVlfSU5ERVgp
IHtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAg
VU5VU0VEX1BBUkFNKHNob3VsZFRocm93KTtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhpc09iamVjdC0+aW5kZXhTZXR0ZXIoZXhlYywgaW5k
ZXgsIHZhbHVlKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAgICAgcmV0dXJuO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIH1cbiIpOwogICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAgIGlm
ICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRTZXR0ZXIifSkg
eworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpbmRleCk7XG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgUHV0UHJvcGVydHlTbG90
IHNsb3QodGhpc09iamVjdCwgc2hvdWxkVGhyb3cpO1xuIik7CiAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICh0aGlzT2JqZWN0LT5wdXREZWxlZ2F0ZShleGVj
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KSlcbiIpOwogICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7CiAgICAgICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFzZTo6cHV0KHRo
aXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpO1xuIik7Ci0KKyAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjpwdXRCeUluZGV4KGNlbGws
IGV4ZWMsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpO1xuIik7CiAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorCisgICAgIyBDaGVjayBpZiB3ZSBoYXZlIGFueSB3cml0YWJsZSBhdHRyaWJ1dGVzCisg
ICAgbXkgJGhhc1JlYWRXcml0ZVByb3BlcnRpZXMgPSAwOworICAgIGZvcmVhY2ggbXkgJGF0dHJp
YnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICAkaGFzUmVhZFdyaXRl
UHJvcGVydGllcyA9IDEgaWYgIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkgJiYgISRhdHRyaWJ1dGUt
PmlzU3RhdGljOworCisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEg
IkV2ZW50TGlzdGVuZXIiKSB7CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU0V2ZW50TGlz
dGVuZXIuaCJ9ID0gMTsKKyAgICAgICAgfQorICAgIH0KIAotICAgICAgICAgICAgICAgIGlmICgk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9IHx8
ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZFNldHRlciJ9KSB7
Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFt
ZX06OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlu
ZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KVxuIik7Ci0gICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVjdCA9IGpzQ2FzdDwk
e2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8o
KSk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b21JbmRleGVkU2V0dGVyIn0pIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChpbmRleCA8PSBNQVhfQVJSQVlfSU5ERVgp
IHtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIFVOVVNFRF9QQVJBTShzaG91bGRUaHJvdyk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICB0aGlzT2JqZWN0LT5pbmRleFNldHRlcihl
eGVjLCBpbmRleCwgdmFsdWUpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7CisgICAgaWYgKCRoYXNSZWFkV3JpdGVQ
cm9wZXJ0aWVzKSB7CisgICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNl
LT5hdHRyaWJ1dGVzfSkgeworICAgICAgICAgICAgaWYgKCFJc1JlYWRvbmx5KCRhdHRyaWJ1dGUp
KSB7CisgICAgICAgICAgICAgICAgbXkgJG5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5h
bWU7CisgICAgICAgICAgICAgICAgbXkgJHR5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5
cGU7CisgICAgICAgICAgICAgICAgbXkgJHB1dEZ1bmN0aW9uTmFtZSA9IEdldEF0dHJpYnV0ZVNl
dHRlck5hbWUoJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAg
ICAgICAgICAgIG15ICRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lID0gJGNvZGVHZW5lcmF0b3ItPldL
X3VjZmlyc3QoJG5hbWUpOworICAgICAgICAgICAgICAgIG15ICRzZXR0ZXJSYWlzZXNFeGNlcHRp
b24gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTZXR0ZXJS
YWlzZXNFeGNlcHRpb24ifTsKKworICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVDb25kaXRp
b25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRh
dHRyaWJ1dGUtPnNpZ25hdHVyZSk7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIjaWYgJHthdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRhdHRyaWJ1dGVDb25k
aXRpb25hbFN0cmluZzsKKworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9p
ZCAke3B1dEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9i
amVjdCAqLywgRW5jb2RlZEpTVmFsdWUiKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiB0aGlzVmFsdWUiKSBpZiAhJGF0dHJpYnV0ZS0+aXNTdGF0aWM7CisgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSlc
biIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkVmFsdWUpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKGV4ZWMpO1xuIik7CisgICAgICAgICAgICAgICAgaWYg
KCEkYXR0cmlidXRlLT5pc1N0YXRpYykgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PCR7
Y2xhc3NOYW1lfSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghY2FzdGVkVGhpcykg
e1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgaWYgKEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0ganNEeW5hbWljQ2FzdDxKU0RPTVdpbmRv
d1NoZWxsKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKVxuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgICAgIGNhc3RlZFRoaXMgPSBz
aGVsbC0+d2luZG93KCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIH1cbiIpOwogICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
ICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1l
ZFNldHRlciJ9KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShleGVjLCBp
bmRleCk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KHRoaXNPYmplY3QsIHNob3VsZFRocm93KTtcbiIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKHRoaXNP
YmplY3QtPnB1dERlbGVnYXRlKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpKVxuIik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0
dXJuO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
ICghY2FzdGVkVGhpcykge1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ2hlY2tTZWN1cml0eSJ9ICYmICEkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJEb05vdENoZWNrU2VjdXJpdHkifSkgeworICAgICAgICAgICAgICAgICAgICBp
ZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRB
bGxvd0FjY2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMtPmltcGwoKSkpXG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGlmICghc2hvdWxkQWxsb3dBY2Nlc3NUb0ZyYW1lKGV4ZWMsIGNh
c3RlZFRoaXMtPmltcGwoKS5mcmFtZSgpKSlcbiIpOwogICAgICAgICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFzZTo6cHV0QnlJ
bmRleChjZWxsLCBleGVjLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTtcbiIpOwotICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmICgkaGFzUmVhZFdyaXRl
UHJvcGVydGllcykgewotICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHsk
aW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoIUlzUmVh
ZG9ubHkoJGF0dHJpYnV0ZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRuYW1lID0g
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwotICAgICAgICAgICAgICAgICAgICAgICAgbXkg
JHR5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBteSAkcHV0RnVuY3Rpb25OYW1lID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJm
YWNlTmFtZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBteSAkaW1wbFNldHRlckZ1bmN0aW9uTmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0
KCRuYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRzZXR0ZXJSYWlzZXNFeGNlcHRp
b24gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTZXR0ZXJS
YWlzZXNFeGNlcHRpb24ifTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0
ZUNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxT
dHJpbmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiI2lmICR7YXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmd9XG4iKSBp
ZiAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmc7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke3B1dEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUiKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiIHRoaXNWYWx1ZSIpIGlmICEk
YXR0cmlidXRlLT5pc1N0YXRpYzsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpXG4iKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRWYWx1ZSk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShleGVjKTtcbiIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCEkYXR0cmlidXRlLT5pc1N0YXRpYykgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8JHtjbGFzc05hbWV9Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJET01XaW5kb3ciKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmICghY2FzdGVkVGhpcykge1xuIik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBpZiAoSlNE
T01XaW5kb3dTaGVsbCogc2hlbGwgPSBqc0R5bmFtaWNDYXN0PEpTRE9NV2luZG93U2hlbGwqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgICAgICBjYXN0ZWRUaGlzID0gc2hl
bGwtPndpbmRvdygpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIH1cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAo
IWNhc3RlZFRoaXMpIHtcbiIpOworICAgICAgICAgICAgICAgIGlmIChIYXNDdXN0b21TZXR0ZXIo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMpKSB7CisgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGNhc3RlZFRoaXMtPnNldCRpbXBsU2V0
dGVyRnVuY3Rpb25OYW1lKGV4ZWMsIHZhbHVlKTtcbiIpOworICAgICAgICAgICAgICAgIH0gZWxz
aWYgKCR0eXBlIGVxICJFdmVudExpc3RlbmVyIikgeworICAgICAgICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyJKU0V2ZW50TGlzdGVuZXIuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKGV4ZWMpO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgIG15ICR3aW5kb3dFdmVudExpc3RlbmVyID0gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNXaW5kb3dFdmVudExpc3RlbmVyIn07CisgICAg
ICAgICAgICAgICAgICAgIGlmICgkd2luZG93RXZlbnRMaXN0ZW5lcikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCA9IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpO1xuIik7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
JGludGVyZmFjZU5hbWUmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCgoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIG9yICgkaW50
ZXJmYWNlTmFtZSBlcSAiV29ya2VyR2xvYmFsU2NvcGUiKSkgYW5kICRuYW1lIGVxICJvbmVycm9y
IikgeworICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siSlNFcnJvckhhbmRs
ZXIuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGltcGwuc2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoY3JlYXRlSlNFcnJvckhhbmRsZXIo
ZXhlYywgdmFsdWUsIGNhc3RlZFRoaXMpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRl
QXR0cmlidXRlRXZlbnRMaXN0ZW5lckNhbGwoJGNsYXNzTmFtZSwgJGltcGxTZXR0ZXJGdW5jdGlv
bk5hbWUsICR3aW5kb3dFdmVudExpc3RlbmVyKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0Nv
bnN0cnVjdG9yJC8pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGNvbnN0cnVjdG9yVHlwZSA9
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgJGNvbnN0
cnVjdG9yVHlwZSA9fiBzL0NvbnN0cnVjdG9yJC8vOworICAgICAgICAgICAgICAgICAgICAjICRj
b25zdHJ1Y3RvclR5cGUgfj0gL0NvbnN0cnVjdG9yJC8gaW5kaWNhdGVzIHRoYXQgaXQgaXMgTmFt
ZWRDb25zdHJ1Y3Rvci4KKyAgICAgICAgICAgICAgICAgICAgIyBXZSBkbyBub3QgZ2VuZXJhdGUg
dGhlIGhlYWRlciBmaWxlIGZvciBOYW1lZENvbnN0cnVjdG9yIG9mIGNsYXNzIFhYWFgsCisgICAg
ICAgICAgICAgICAgICAgICMgc2luY2Ugd2UgZ2VuZXJhdGUgdGhlIE5hbWVkQ29uc3RydWN0b3Ig
ZGVjbGFyYXRpb24gaW50byB0aGUgaGVhZGVyIGZpbGUgb2YgY2xhc3MgWFhYWC4KKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRjb25zdHJ1Y3RvclR5cGUgbmUgImFueSIgYW5kICRjb25zdHJ1Y3Rv
clR5cGUgIX4gL05hbWVkJC8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFkZFRvSW1wbElu
Y2x1ZGVzKCJKUyIgLiAkY29uc3RydWN0b3JUeXBlIC4gIi5oIiwgJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgLy8g
U2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3JcbiIpOworICAgICAgICAgICAgICAgICAg
ICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgJiYgJGNsYXNzTmFtZSBlcSAiSlNi
bGFoIikgeworICAgICAgICAgICAgICAgICAgICAgICAgIyBGSVhNRTogVGhpcyBicmFuY2ggbmV2
ZXIgZXhlY3V0ZXMgYW5kIHNob3VsZCBiZSByZW1vdmVkLgorICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgY2FzdGVkVGhpcy0+cHV0RGlyZWN0KGV4ZWMtPnZt
KCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jb25zdHJ1Y3RvciwgdmFsdWUpO1xuIik7CisgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBjYXN0ZWRUaGlzLT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgSWRlbnRp
ZmllcihleGVjLCBcIiRuYW1lXCIpLCB2YWx1ZSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlJlcGxhY2VhYmxlIn0pIHsKKyAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gb2JqZWN0XG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgY2FzdGVkVGhpcy0+
cHV0RGlyZWN0KGV4ZWMtPnZtKCksIElkZW50aWZpZXIoZXhlYywgXCIkbmFtZVwiKSwgdmFsdWUp
O1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCEkYXR0cmlidXRlLT5pc1N0YXRpYykgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgJGltcGxUeXBlJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpO1xu
Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKSBpZiAkc2V0dGVyUmFpc2Vz
RXhjZXB0aW9uOworCisgICAgICAgICAgICAgICAgICAgICMgSWYgdGhlICJTdHJpY3RUeXBlQ2hl
Y2tpbmciIGV4dGVuZGVkIGF0dHJpYnV0ZSBpcyBwcmVzZW50LCBhbmQgdGhlIGF0dHJpYnV0ZSdz
IHR5cGUgaXMgYW4KKyAgICAgICAgICAgICAgICAgICAgIyBpbnRlcmZhY2UgdHlwZSwgdGhlbiBp
ZiB0aGUgaW5jb21pbmcgdmFsdWUgZG9lcyBub3QgaW1wbGVtZW50IHRoYXQgaW50ZXJmYWNlLCBh
IFR5cGVFcnJvcgorICAgICAgICAgICAgICAgICAgICAjIGlzIHRocm93biByYXRoZXIgdGhhbiBz
aWxlbnRseSBwYXNzaW5nIE5VTEwgdG8gdGhlIEMrKyBjb2RlLgorICAgICAgICAgICAgICAgICAg
ICAjIFBlciB0aGUgV2ViIElETCBhbmQgRUNNQVNjcmlwdCBzcGVjaWZpY2F0aW9ucywgaW5jb21p
bmcgdmFsdWVzIGNhbiBhbHdheXMgYmUgY29udmVydGVkIHRvCisgICAgICAgICAgICAgICAgICAg
ICMgYm90aCBzdHJpbmdzIGFuZCBudW1iZXJzLCBzbyBkbyBub3QgdGhyb3cgVHlwZUVycm9yIGlm
IHRoZSBhdHRyaWJ1dGUgaXMgb2YgdGhlc2UgdHlwZXMuCisgICAgICAgICAgICAgICAgICAgIGlm
ICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTdHJpY3RUeXBl
Q2hlY2tpbmcifSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siPHJ1
bnRpbWUvRXJyb3IuaD4ifSA9IDE7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIG15ICRhcmdU
eXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCRhcmdUeXBlKSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghdmFsdWUu
aXNVbmRlZmluZWRPck51bGwoKSAmJiAhdmFsdWUuaW5oZXJpdHMoSlMke2FyZ1R5cGV9OjppbmZv
KCkpKSB7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1cml0eSJ9ICYmICEkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEb05vdENoZWNrU2VjdXJp
dHkifSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBl
cSAiRE9NV2luZG93IikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NU
b0RPTVdpbmRvdyhleGVjLCBjYXN0ZWRUaGlzLT5pbXBsKCkpKVxuIik7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFzaG91bGRBbGxvd0FjY2Vzc1RvRnJhbWUoZXhl
YywgY2FzdGVkVGhpcy0+aW1wbCgpLmZyYW1lKCkpKVxuIik7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICB9O1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEhhc0N1
c3RvbVNldHRlcigkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcykpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBjYXN0
ZWRUaGlzLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShleGVjLCB2YWx1ZSk7XG4iKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCR0eXBlIGVxICJFdmVudExpc3RlbmVyIikg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTRXZlbnRMaXN0
ZW5lci5oIn0gPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIFVOVVNFRF9QQVJBTShleGVjKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG15ICR3aW5kb3dFdmVudExpc3RlbmVyID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNXaW5kb3dFdmVudExpc3RlbmVyIn07Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKCR3aW5kb3dFdmVudExpc3RlbmVyKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKTtcbiIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW50ZXJmYWNlTmFtZSYgaW1wbCA9IGNhc3RlZFRo
aXMtPmltcGwoKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKCRpbnRl
cmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSBvciAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckds
b2JhbFNjb3BlIikpIGFuZCAkbmFtZSBlcSAib25lcnJvciIpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siSlNFcnJvckhhbmRsZXIuaCJ9ID0gMTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1w
bC5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShjcmVhdGVKU0Vycm9ySGFuZGxlcihleGVjLCB2
YWx1ZSwgY2FzdGVkVGhpcykpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
IEdlbmVyYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lckNhbGwoJGNsYXNzTmFtZSwgJGltcGxTZXR0
ZXJGdW5jdGlvbk5hbWUsICR3aW5kb3dFdmVudExpc3RlbmVyKSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25zdHJ1Y3RvciQvKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbXkgJGNvbnN0cnVjdG9yVHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
dHlwZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29uc3RydWN0b3JUeXBlID1+IHMv
Q29uc3RydWN0b3IkLy87Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAkY29uc3RydWN0
b3JUeXBlIH49IC9Db25zdHJ1Y3RvciQvIGluZGljYXRlcyB0aGF0IGl0IGlzIE5hbWVkQ29uc3Ry
dWN0b3IuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBXZSBkbyBub3QgZ2VuZXJhdGUg
dGhlIGhlYWRlciBmaWxlIGZvciBOYW1lZENvbnN0cnVjdG9yIG9mIGNsYXNzIFhYWFgsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIyBzaW5jZSB3ZSBnZW5lcmF0ZSB0aGUgTmFtZWRDb25z
dHJ1Y3RvciBkZWNsYXJhdGlvbiBpbnRvIHRoZSBoZWFkZXIgZmlsZSBvZiBjbGFzcyBYWFhYLgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkY29uc3RydWN0b3JUeXBlIG5lICJhbnki
IGFuZCAkY29uc3RydWN0b3JUeXBlICF+IC9OYW1lZCQvKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyIgLiAkY29uc3RydWN0b3JUeXBlIC4g
Ii5oIiwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0
aW9uYWwifSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0
LWluIGNvbnN0cnVjdG9yXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGlu
dGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgJiYgJGNsYXNzTmFtZSBlcSAiSlNibGFoIikgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEZJWE1FOiBUaGlzIGJyYW5jaCBuZXZl
ciBleGVjdXRlcyBhbmQgc2hvdWxkIGJlIHJlbW92ZWQuCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGNhc3RlZFRoaXMtPnB1dERpcmVjdChl
eGVjLT52bSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY29uc3RydWN0b3IsIHZhbHVlKTtcbiIp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGNhc3RlZFRoaXMtPnB1dERp
cmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVyKGV4ZWMsIFwiJG5hbWVcIiksIHZhbHVlKTtcbiIp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJl
cGxhY2VhYmxlIn0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBvYmplY3RcbiIpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGNhc3RlZFRoaXMtPnB1
dERpcmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVyKGV4ZWMsIFwiJG5hbWVcIiksIHZhbHVlKTtc
biIpOwotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoISRhdHRyaWJ1dGUtPmlzU3RhdGljKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsVHlwZSYgaW1wbCA9
IGNhc3RlZFRoaXMtPmltcGwoKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDtcbiIpIGlmICRzZXR0ZXJSYWlzZXNFeGNlcHRpb247Ci0KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAjIElmIHRoZSAiU3RyaWN0VHlwZUNoZWNraW5nIiBleHRl
bmRlZCBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgYW5kIHRoZSBhdHRyaWJ1dGUncyB0eXBlIGlzIGFu
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbnRlcmZhY2UgdHlwZSwgdGhlbiBpZiB0
aGUgaW5jb21pbmcgdmFsdWUgZG9lcyBub3QgaW1wbGVtZW50IHRoYXQgaW50ZXJmYWNlLCBhIFR5
cGVFcnJvcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaXMgdGhyb3duIHJhdGhlciB0
aGFuIHNpbGVudGx5IHBhc3NpbmcgTlVMTCB0byB0aGUgQysrIGNvZGUuCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIyBQZXIgdGhlIFdlYiBJREwgYW5kIEVDTUFTY3JpcHQgc3BlY2lmaWNh
dGlvbnMsIGluY29taW5nIHZhbHVlcyBjYW4gYWx3YXlzIGJlIGNvbnZlcnRlZCB0bwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICMgYm90aCBzdHJpbmdzIGFuZCBudW1iZXJzLCBzbyBkbyBu
b3QgdGhyb3cgVHlwZUVycm9yIGlmIHRoZSBhdHRyaWJ1dGUgaXMgb2YgdGhlc2UgdHlwZXMuCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IlN0cmljdFR5cGVDaGVja2luZyJ9KSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IjxydW50aW1lL0Vycm9yLmg+In0gPSAx
OwotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRhcmdUeXBlID0gJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT50eXBlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJGFyZ1R5cGUpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXZh
bHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIXZhbHVlLmluaGVyaXRzKEpTJHthcmdUeXBlfTo6
aW5mbygpKSkge1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIHJldHVybjtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgfTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgIiAuIEdldE5hdGl2ZVR5cGVGcm9t
U2lnbmF0dXJlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSkgLiAiIG5hdGl2ZVZhbHVlKCIgLiBKU1Zh
bHVlVG9OYXRpdmUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAidmFsdWUiKSAuICIpO1xuIik7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKVxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOworICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAiIC4gR2V0TmF0aXZlVHlwZUZyb21TaWduYXR1cmUo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlKSAuICIgbmF0aXZlVmFsdWUoIiAuIEpTVmFsdWVUb05hdGl2
ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsICJ2YWx1ZSIpIC4gIik7XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KVxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBy
ZXR1cm47XG4iKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVy
YXRvci0+SXNFbnVtVHlwZSgkdHlwZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbXkgQGVudW1WYWx1ZXMgPSAkY29kZUdlbmVyYXRvci0+VmFsaWRFbnVtVmFsdWVzKCR0eXBl
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgQGVudW1DaGVja3MgPSAoKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBteSAkZW51bVZhbHVlIChA
ZW51bVZhbHVlcykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
ZW51bUNoZWNrcywgIm5hdGl2ZVZhbHVlICE9IFwiJGVudW1WYWx1ZVwiIik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaCAoQGltcGxDb250ZW50LCAiICAgIGlmICgiIC4gam9pbigiICYmICIsIEBlbnVtQ2hlY2tz
KSAuICIpXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCAoQGltcGxD
b250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgk
dHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG15IEBlbnVtVmFsdWVzID0gJGNvZGVH
ZW5lcmF0b3ItPlZhbGlkRW51bVZhbHVlcygkdHlwZSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBteSBAZW51bUNoZWNrcyA9ICgpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBt
eSAkZW51bVZhbHVlIChAZW51bVZhbHVlcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGVudW1DaGVja3MsICJuYXRpdmVWYWx1ZSAhPSBcIiRlbnVtVmFsdWVcIiIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCAoQGlt
cGxDb250ZW50LCAiICAgIGlmICgiIC4gam9pbigiICYmICIsIEBlbnVtQ2hlY2tzKSAuICIpXG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggKEBpbXBsQ29udGVudCwgIiAgICAgICAg
cmV0dXJuO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICgkc3ZnUHJvcGVydHlPckxpc3RQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChp
bXBsLmlzUmVhZE9ubHkoKSkge1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIE5P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUik7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IH1cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRl
c3siRXhjZXB0aW9uQ29kZS5oIn0gPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICRzdmdQcm9wZXJ0eU9yTGlzdFByb3BlcnR5VHlwZSYgcG9kSW1wbCA9IGltcGwucHJvcGVy
dHlSZWZlcmVuY2UoKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
JHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlIGVxICJmbG9hdCIpIHsgIyBTcGVjaWFsIGNh
c2UgZm9yIEpTU1ZHTnVtYmVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBwb2RJbXBsID0gbmF0aXZlVmFsdWU7XG4iKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHBvZEltcGwuc2V0JGltcGxT
ZXR0ZXJGdW5jdGlvbk5hbWUobmF0aXZlVmFsdWUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiLCBlYyIpIGlmICRzZXR0ZXJSYWlzZXNF
eGNlcHRpb247Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIik7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7XG4iKSBpZiAk
c2V0dGVyUmFpc2VzRXhjZXB0aW9uOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc3ZnUHJvcGVydHlUeXBlKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHNldHRlclJhaXNlc0V4
Y2VwdGlvbikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGlmICghZWMpXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgaW1wbC5jb21taXRD
aGFuZ2UoKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBpbXBsLmNvbW1pdENoYW5nZSgpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eU9yTGlzdFByb3BlcnR5VHlwZSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoaW1wbC5pc1Jl
YWRPbmx5KCkpIHtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJFeGNlcHRpb25Db2RlLmgifSA9IDE7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAkc3ZnUHJvcGVydHlPckxpc3RQcm9wZXJ0eVR5cGUmIHBvZEltcGwgPSBpbXBsLnByb3Bl
cnR5UmVmZXJlbmNlKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc3ZnUHJv
cGVydHlPckxpc3RQcm9wZXJ0eVR5cGUgZXEgImZsb2F0IikgeyAjIFNwZWNpYWwgY2FzZSBmb3Ig
SlNTVkdOdW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBwb2RJbXBsID0gbmF0aXZlVmFsdWU7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgcG9kSW1wbC5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShuYXRpdmVWYWx1ZSIp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiLCBlYyIp
IGlmICRzZXR0ZXJSYWlzZXNFeGNlcHRpb247CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTtcbiIpIGlm
ICRzZXR0ZXJSYWlzZXNFeGNlcHRpb247CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICgkc2V0dGVyUmFpc2VzRXhjZXB0aW9uKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghZWMpXG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIGltcGwuY29tbWl0Q2hhbmdlKCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAoJGZ1bmN0
aW9uTmFtZSwgQGFyZ3VtZW50cykgPSAkY29kZUdlbmVyYXRvci0+U2V0dGVyRXhwcmVzc2lvbihc
JWltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKSBhbmQgbm90ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+dHlwZSBlcSAiQXJyYXlCdWZmZXIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBhcmd1bWVudHMsICJuYXRpdmVWYWx1ZS5nZXQoKSIpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAYXJndW1lbnRzLCAibmF0aXZlVmFsdWUiKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50
ZWRCeSJ9KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkaW1wbGVt
ZW50ZWRCeSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Iklt
cGxlbWVudGVkQnkifTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBs
SW5jbHVkZXN7IiR7aW1wbGVtZW50ZWRCeX0uaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgIiZpbXBsIikgaWYgISRhdHRyaWJ1
dGUtPmlzU3RhdGljOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSA9ICIke2ltcGxlbWVudGVkQnl9Ojoke2Z1bmN0aW9uTmFtZX0iOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5pc1N0YXRpYykgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICIke2lu
dGVyZmFjZU5hbWV9Ojoke2Z1bmN0aW9uTmFtZX0iOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uTmFtZSA9ICJpbXBsLiR7ZnVuY3Rpb25OYW1lfSI7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNoaWZ0
KEBhcmd1bWVudHMsIEdlbmVyYXRlQ2FsbFdpdGgoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifSwgXEBpbXBsQ29udGVudCwgIiIpKTsKLQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsICJlYyIpIGlmICRz
ZXR0ZXJSYWlzZXNFeGNlcHRpb247Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICR7ZnVuY3Rpb25OYW1lfSgiIC4gam9pbigiLCAiLCBAYXJn
dW1lbnRzKSAuICIpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7XG4iKSBpZiAkc2V0
dGVyUmFpc2VzRXhjZXB0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBpbXBsLmNvbW1pdENoYW5nZSgpO1xuIik7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgbXkgKCRmdW5jdGlv
bk5hbWUsIEBhcmd1bWVudHMpID0gJGNvZGVHZW5lcmF0b3ItPlNldHRlckV4cHJlc3Npb24oXCVp
bXBsSW5jbHVkZXMsICRpbnRlcmZhY2VOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkYXR0cmlidXRl
LT5zaWduYXR1cmUtPnR5cGUpIGFuZCBub3QgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlIGVx
ICJBcnJheUJ1ZmZlciIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBhcmd1
bWVudHMsICJuYXRpdmVWYWx1ZS5nZXQoKSIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsICJuYXRp
dmVWYWx1ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Iklt
cGxlbWVudGVkQnkifSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRpbXBsZW1l
bnRlZEJ5ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1w
bGVtZW50ZWRCeSJ9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
IiR7aW1wbGVtZW50ZWRCeX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNoaWZ0KEBhcmd1bWVudHMsICImaW1wbCIpIGlmICEkYXR0cmlidXRlLT5pc1N0YXRpYzsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gIiR7aW1wbGVtZW50ZWRC
eX06OiR7ZnVuY3Rpb25OYW1lfSI7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgk
YXR0cmlidXRlLT5pc1N0YXRpYykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmdW5j
dGlvbk5hbWUgPSAiJHtpbnRlcmZhY2VOYW1lfTo6JHtmdW5jdGlvbk5hbWV9IjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uTmFtZSA9ICJpbXBsLiR7ZnVuY3Rpb25OYW1lfSI7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxu
XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlm
XG4iKSBpZiAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmc7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIik7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAo
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcGxhY2VhYmxlQ29uc3RydWN0b3Ii
fSkgewotICAgICAgICAgICAgbXkgJGNvbnN0cnVjdG9yRnVuY3Rpb25OYW1lID0gInNldEpTIiAu
ICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9yIjsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2hpZnQoQGFyZ3VtZW50cywgR2VuZXJhdGVDYWxsV2l0aCgkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9LCBcQGltcGxDb250ZW50LCAiIikp
OwogCi0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjb25zdHJ1Y3RvckZ1
bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKVxuIik7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOyIpOwot
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDwke2NsYXNzTmFtZX0qPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7XG4iKTsKLSAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93
IikgewotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghY2FzdGVk
VGhpcykge1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IGlmIChKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IGpzRHluYW1pY0Nhc3Q8SlNET01XaW5kb3dT
aGVsbCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSlcbiIpOwotICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgY2FzdGVkVGhpcyA9IHNoZWxsLT53aW5k
b3coKTtcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIp
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYg
KCFjYXN0ZWRUaGlzKSB7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICB9XG4iKTsKLSAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1cml0eSJ9KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCRpbnRl
cmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1Rv
RE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMtPmltcGwoKSkpXG4iKTsKLSAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBp
ZiAoIXNob3VsZEFsbG93QWNjZXNzVG9GcmFtZShleGVjLCBjYXN0ZWRUaGlzLT5pbXBsKCkuZnJh
bWUoKSkpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGFyZ3VtZW50cywgImVj
IikgaWYgJHNldHRlclJhaXNlc0V4Y2VwdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICR7ZnVuY3Rpb25OYW1lfSgiIC4gam9pbigiLCAiLCBAYXJn
dW1lbnRzKSAuICIpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpO1xuIikgaWYgJHNldHRlclJhaXNl
c0V4Y2VwdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7Ci0g
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIC8vIFNo
YWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yXG4iKTsKLQotICAgICAgICAgICAgaWYgKCRp
bnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgY2FzdGVkVGhpcy0+cHV0RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5jb25zdHJ1Y3RvciwgdmFsdWUpO1xuIik7Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIGRpZSAiTm8gd2F5IHRvIGhhbmRsZSBpbnRlcmZhY2Ugd2l0
aCBSZXBsYWNlYWJsZUNvbnN0cnVjdG9yIGV4dGVuZGVkIGF0dHJpYnV0ZTogJGludGVyZmFjZU5h
bWUiOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGF0dHJpYnV0ZUNv
bmRpdGlvbmFsU3RyaW5nOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4i
KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4i
KTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBiY2I4NWFiN2Y0YTIzZWVmNWNhY2ViZDM0
ODdiNjAyYjJkYmM2N2MuLjQ5M2E4YjI3N2ZkZWQ5MWEyY2NiYjAzOTM5MTY0MjJmMTE4NjgyZTAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wMS0yOCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJA
YXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgRE9NIGF0dHJpYnV0ZXMgYXBwZWFyIHRvIGJlIGZh
dXggYWNjZXNzb3IgcHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI3Nzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlc2UgcHJvcGVydGllcyBub3cgc2hvdyB1cCBhcyBhY2Nlc3NvcnMg
aW4gdGhlc2UgdGVzdHMKKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9yZXBsYWNlYWJsZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3JlcGxhY2VhYmxlLmh0bWw6
CisgICAgICAgICoganMvZG9tL2dldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQ6
CisgICAgICAgICoganMvcmVzb3VyY2VzL2dldE93blByb3BlcnR5RGVzY3JpcHRvci5qczoKKwog
MjAxNC0wMS0yOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
UmViYXNlIGZhc3QvcmVwYWludC9iYWNrZ3JvdW5kLXNob3J0aGFuZC13aXRoLWdyYWRpZW50LWFu
ZC1oZWlnaHQtY2hhbmdlcy5odG1sIGFmdGVyIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL3IxNjI5
NDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXBsYWNlYWJsZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVwbGFjZWFibGUtZXhw
ZWN0ZWQudHh0CmluZGV4IGQ5ZTE2OGQ3MzZlN2ViZTkyYmQ0YTcyNTdhNGEzYjExM2FmYTg2Zjcu
LjU5MmI0OWY4MmMwMTZmZjNhYmVlOTY5YTcyY2IzY2MzNTk5Njg3ZTggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXBsYWNlYWJsZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3JlcGxhY2VhYmxlLWV4cGVjdGVkLnR4dApAQCAt
Myw3ICszLDcgQEAgVGVzdHMgdGhhdCBSZXBsYWNlYWJsZSBhdHRyaWJ1dGVzIGFyZSB3cml0YWJs
ZQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih3aW5kb3csICJpbm5lckhlaWdodCIpLndyaXRhYmxlIGlzIHRydWUKK1BB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICJpbm5lckhlaWdodCIp
Lmhhc093blByb3BlcnR5KCJnZXQiKSBpcyB0cnVlCiBQQVNTIHdpbmRvdy5pbm5lckhlaWdodCBp
cyA0MgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVwbGFjZWFibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy9yZXBsYWNlYWJsZS5odG1sCmluZGV4IDM4OGNjYWY1NzJlZDdmNDQzODU0
MTllNDQ5N2E2NzgwZTE4MjhmN2UuLmQwN2VkMDRjYjU0YmM3NzY2MDYxODQzZjIzMjJlZDU2MGI4
OTVkMWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXBsYWNlYWJs
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXBsYWNlYWJsZS5odG1s
CkBAIC00LDcgKzQsNyBAQAogCiBkZXNjcmlwdGlvbignVGVzdHMgdGhhdCBSZXBsYWNlYWJsZSBh
dHRyaWJ1dGVzIGFyZSB3cml0YWJsZScpOwogCi1zaG91bGRCZVRydWUoJ09iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAiaW5uZXJIZWlnaHQiKS53cml0YWJsZScpOworc2hv
dWxkQmVUcnVlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgImlubmVy
SGVpZ2h0IikuaGFzT3duUHJvcGVydHkoImdldCIpJyk7CiAKIHdpbmRvdy5pbm5lckhlaWdodCA9
IDQyOwogc2hvdWxkQmUoJ3dpbmRvdy5pbm5lckhlaWdodCcsICc0MicpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL2dldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4
dAppbmRleCA1Mjk5NGYyMmM4ODZkNjQxMzY2MGJmYzMwZTE5YWE3YTgyY2NkZThhLi4xZTg3Mjcy
MWZhZWZjZTQ0NDQ3NjI5MzE1ZmFhZDdhNDA2MjljNTMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9qcy9kb20vZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9qcy9kb20vZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dApAQCAt
MTI5LDkgKzEyOSwxMCBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnWE1MSHR0cFJlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnZwogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1hNTEh0dHBSZXF1ZXN0JykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnWE1MSHR0cFJlcXVlc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnWE1MSHR0cFJlcXVlc3QnKS5j
b25maWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ2xlbmd0aCcpLnZhbHVlIGlzIGdsb2JhbC5sZW5ndGgKLVBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdsZW5ndGgnKS5oYXNPd25Qcm9wZXJ0eSgn
Z2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdsZW5ndGgnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdsZW5ndGgnKS5nZXQgaXMgdW5kZWZp
bmVkCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnbGVuZ3Ro
Jykuc2V0IGlzIHVuZGVmaW5lZAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ2xlbmd0aCcpLmhhc093blByb3BlcnR5KCd2YWx1ZScpIGlzIGZhbHNlCitQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnbGVuZ3RoJykuaGFzT3du
UHJvcGVydHkoJ3dyaXRhYmxlJykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdsZW5ndGgnKS5lbnVtZXJhYmxlIGlzIHRydWUKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdsZW5ndGgnKS5jb25maWd1cmFi
bGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
IDApLnZhbHVlIGlzIGdsb2JhbFswXQpAQCAtMTM5LDkgKzE0MCwxMCBAQCBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAwKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0Jykg
aXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsIDAp
Lmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgMCkuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgMCkuY29uZmlndXJhYmxlIGlzIGZhbHNl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ2RpdicpLCAnbGVuZ3RoJykudmFsdWUgaXMgMQotUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYn
KSwgJ2xlbmd0aCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdk
aXYnKSwgJ2xlbmd0aCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCdkaXYnKSwgJ2xlbmd0aCcpLmdldCBpcyB1bmRlZmluZWQKK1BBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JyksICds
ZW5ndGgnKS5zZXQgaXMgdW5kZWZpbmVkCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpLCAnbGVuZ3RoJykuaGFz
T3duUHJvcGVydHkoJ3ZhbHVlJykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JyksICdsZW5ndGgn
KS5oYXNPd25Qcm9wZXJ0eSgnd3JpdGFibGUnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYnKSwg
J2xlbmd0aCcpLmVudW1lcmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYnKSwgJ2xlbmd0aCcp
LmNvbmZpZ3VyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYnKSwgMCkudmFsdWUgaXMgZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpWzBdCkBAIC0xNTQsOSArMTU2LDEwIEBA
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50
c0J5Q2xhc3NOYW1lKCdwYXNzJyksIDApCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncGFzcycpLCAwKS5oYXNPd25Q
cm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNzJyksIDApLmVudW1lcmFi
bGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50
LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3MnKSwgMCkuY29uZmlndXJhYmxlIGlzIGZhbHNl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZSgncGFzcycpLCAnbGVuZ3RoJykudmFsdWUgaXMgZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeUNsYXNzTmFtZSgncGFzcycpLmxlbmd0aAotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3MnKSwgJ2xl
bmd0aCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3Mn
KSwgJ2xlbmd0aCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUo
J3Bhc3MnKSwgJ2xlbmd0aCcpLmdldCBpcyB1bmRlZmluZWQKK1BBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNzJyks
ICdsZW5ndGgnKS5zZXQgaXMgdW5kZWZpbmVkCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncGFzcycpLCAnbGVuZ3Ro
JykuaGFzT3duUHJvcGVydHkoJ3ZhbHVlJykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNzJyks
ICdsZW5ndGgnKS5oYXNPd25Qcm9wZXJ0eSgnd3JpdGFibGUnKSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05h
bWUoJ3Bhc3MnKSwgJ2xlbmd0aCcpLmVudW1lcmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bh
c3MnKSwgJ2xlbmd0aCcpLmNvbmZpZ3VyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGNhbnZhc1BpeGVsQXJyYXksICdsZW5ndGgnKS52YWx1ZSBpcyBj
YW52YXNQaXhlbEFycmF5Lmxlbmd0aApAQCAtMTY5LDkgKzE3MiwxMCBAQCBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY2FudmFzUGl4ZWxBcnJheSwgMCkuaGFzT3duUHJvcGVy
dHkoJ2dldCcpCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY2FudmFzUGl4
ZWxBcnJheSwgMCkuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY2FudmFzUGl4ZWxBcnJheSwgMCkuZW51bWVyYWJsZSBp
cyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY2FudmFzUGl4ZWxB
cnJheSwgMCkuY29uZmlndXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3Ioc2VsZWN0LCAnbGVuZ3RoJykudmFsdWUgaXMgc2VsZWN0Lmxlbmd0aAotUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGVjdCwgJ2xlbmd0aCcpLmhhc093
blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHNlbGVjdCwgJ2xlbmd0aCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQor
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGVjdCwgJ2xlbmd0aCcpLmdl
dCBpcyB1bmRlZmluZWQKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxl
Y3QsICdsZW5ndGgnKS5zZXQgaXMgdW5kZWZpbmVkCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3Ioc2VsZWN0LCAnbGVuZ3RoJykuaGFzT3duUHJvcGVydHkoJ3ZhbHVlJykgaXMg
ZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxlY3QsICdsZW5n
dGgnKS5oYXNPd25Qcm9wZXJ0eSgnd3JpdGFibGUnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGVjdCwgJ2xlbmd0aCcpLmVudW1lcmFibGUgaXMgdHJ1
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGVjdCwgJ2xlbmd0aCcp
LmNvbmZpZ3VyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKHNlbGVjdCwgMCkudmFsdWUgaXMgc2VsZWN0WzBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZXNvdXJjZXMvZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmpzIGIvTGF5b3V0VGVzdHMv
anMvcmVzb3VyY2VzL2dldE93blByb3BlcnR5RGVzY3JpcHRvci5qcwppbmRleCAxNjM0OGQxMzA4
ZTE2ZWYxMzdkOGU0NTUyMWFhZTg2YTY2NzM1ZTU1Li4wYjUxZmM0NGU2YTgyYzU4M2ZhNjBmYjU5
ZmFkYTUwM2QwYTliNzNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuanMKQEAgLTQ0LDE5ICs0NCwxOSBAQCBkZXNjcmlwdG9y
U2hvdWxkQmUoImdsb2JhbCIsICInTmFOJyIsIHt3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6
IGZhbHNlLCBjb25maQogZGVzY3JpcHRvclNob3VsZEJlKCJnbG9iYWwiLCAiJ0luZmluaXR5JyIs
IHt3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IGZhbHNl
LCB2YWx1ZToiSW5maW5pdHkifSk7CiBkZXNjcmlwdG9yU2hvdWxkQmUoImdsb2JhbCIsICInd2lu
ZG93JyIsIHt3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTog
ZmFsc2UsIHZhbHVlOiJnbG9iYWwifSk7CiBkZXNjcmlwdG9yU2hvdWxkQmUoImdsb2JhbCIsICIn
WE1MSHR0cFJlcXVlc3QnIiwge3dyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSwgY29u
ZmlndXJhYmxlOiB0cnVlLCB2YWx1ZToiWE1MSHR0cFJlcXVlc3QifSk7Ci1kZXNjcmlwdG9yU2hv
dWxkQmUoImdsb2JhbCIsICInbGVuZ3RoJyIsIHt3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTog
dHJ1ZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgdmFsdWU6Imdsb2JhbC5sZW5ndGgifSk7CitkZXNj
cmlwdG9yU2hvdWxkQmUoImdsb2JhbCIsICInbGVuZ3RoJyIsIHtnZXQ6IHVuZGVmaW5lZCwgc2V0
OiB1bmRlZmluZWQsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFsc2V9KTsKIGRl
c2NyaXB0b3JTaG91bGRCZSgiZ2xvYmFsIiwgIjAiLCB7d3JpdGFibGU6IHRydWUsIGVudW1lcmFi
bGU6IGZhbHNlLCBjb25maWd1cmFibGU6IGZhbHNlLCB2YWx1ZToiZ2xvYmFsWzBdIn0pOwotZGVz
Y3JpcHRvclNob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JykiLCAi
J2xlbmd0aCciLCB7d3JpdGFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFi
bGU6IGZhbHNlLCB2YWx1ZToiMSJ9KTsKK2Rlc2NyaXB0b3JTaG91bGRCZSgiZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpIiwgIidsZW5ndGgnIiwge2dldDogdW5kZWZpbmVkLCBz
ZXQ6IHVuZGVmaW5lZCwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiBmYWxzZX0pOwog
ZGVzY3JpcHRvclNob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2Jyki
LCAiMCIsIHt3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTog
ZmFsc2UsIHZhbHVlOiJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JylbMF0ifSk7
CiBkZXNjcmlwdG9yU2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bh
c3MnKSIsICIwIiwge3dyaXRhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJh
YmxlOiBmYWxzZSwgdmFsdWU6ImRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3Mn
KVswXSJ9KTsKLWRlc2NyaXB0b3JTaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZSgncGFzcycpIiwgIidsZW5ndGgnIiwge3dyaXRhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTog
dHJ1ZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgdmFsdWU6ImRvY3VtZW50LmdldEVsZW1lbnRzQnlD
bGFzc05hbWUoJ3Bhc3MnKS5sZW5ndGgifSk7CitkZXNjcmlwdG9yU2hvdWxkQmUoImRvY3VtZW50
LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3MnKSIsICInbGVuZ3RoJyIsIHtnZXQ6IHVuZGVm
aW5lZCwgc2V0OiB1bmRlZmluZWQsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFs
c2V9KTsKIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKIHZh
ciBjYW52YXNQaXhlbEFycmF5ID0gY2FudmFzLmdldENvbnRleHQoIjJkIikuY3JlYXRlSW1hZ2VE
YXRhKDEwLDEwKS5kYXRhOwogZGVzY3JpcHRvclNob3VsZEJlKCJjYW52YXNQaXhlbEFycmF5Iiwg
IidsZW5ndGgnIiwge3dyaXRhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJh
YmxlOiBmYWxzZSwgdmFsdWU6ImNhbnZhc1BpeGVsQXJyYXkubGVuZ3RoIn0pOwogZGVzY3JpcHRv
clNob3VsZEJlKCJjYW52YXNQaXhlbEFycmF5IiwgIjAiLCB7d3JpdGFibGU6IHRydWUsIGVudW1l
cmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFsc2UsIHZhbHVlOiJjYW52YXNQaXhlbEFycmF5
WzBdIn0pOwogdmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOwog
c2VsZWN0LmlubmVySFRNTCA9ICI8b3B0aW9uPmZvbzwvb3B0aW9uPiI7Ci1kZXNjcmlwdG9yU2hv
dWxkQmUoInNlbGVjdCIsICInbGVuZ3RoJyIsIHt3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6
IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFsc2UsIHZhbHVlOiJzZWxlY3QubGVuZ3RoIn0pOworZGVz
Y3JpcHRvclNob3VsZEJlKCJzZWxlY3QiLCAiJ2xlbmd0aCciLCB7Z2V0OiB1bmRlZmluZWQsIHNl
dDogdW5kZWZpbmVkLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IGZhbHNlfSk7CiBk
ZXNjcmlwdG9yU2hvdWxkQmUoInNlbGVjdCIsICIwIiwge3dyaXRhYmxlOiB0cnVlLCBlbnVtZXJh
YmxlOiB0cnVlLCBjb25maWd1cmFibGU6IGZhbHNlLCB2YWx1ZToic2VsZWN0WzBdIn0pOwogCiB2
YXIgb2JqZWN0V2l0aEdldHRlciA9IHt9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222495</attachid>
            <date>2014-01-28 14:46:46 -0800</date>
            <delta_ts>2014-01-29 11:26:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127797-20140128144645.patch</filename>
            <type>text/plain</type>
            <size>122847</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
N2IzNGUwMDE0NjI4ODJkOGYwNDJmNzhhMGRlYzQ1N2JkYjk5MmZiLi4zZmRjMjM0ZjFkZmI1OWRi
YTM3NTQwNjhiNzNmOWRjYzcyOWU2N2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNC0wMS0yOCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgRE9NIGF0dHJpYnV0ZXMgYXBwZWFyIHRvIGJlIGZhdXggYWNjZXNzb3Ig
cHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI3Nzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGZsYWcgc28gd2UgY2FuIGlkZW50aWZ5IHdoaWNoIHByb3BlcnRpZXMgc2hvdWxkIGhh
dmUgdGhlIG9sZAorICAgICAgICBjdXN0b20gcHJvcGVydHkgc2VtYW50aWNzIHZzLiB0aGUgbmV3
IGZhdXggYWNjZXNzb3JzLiBVcGRhdGUgdGhlCisgICAgICAgIGluc3BlY3RvciBwcm90b2NvbCBh
Y2NvcmRpbmdseS4KKworICAgICAgICBUaGVzZSBmYXV4IGFjY2Vzc29ycyBwcm9kdWNlIGRlc2Ny
aXB0b3JzIHdpdGggImdldCIgYW5kICJzZXQiCisgICAgICAgIHByb3BlcnRpZXMsIGJ1dCBib3Ro
IHZhbHVlcyBhcmUgdW5kZWZpbmVkIHNvIGNhbid0IGJlIHVzZWQKKyAgICAgICAgZGlyZWN0bHku
IEEgZmV3IGN1c3RvbSBwcm9wZXJ0aWVzIGFjdHVhbGx5IHJlcXVpcmUgdGhlaXIKKyAgICAgICAg
ZXhpc3RpbmcgbWFnaWNhbCBiZWhhdmlvdXIsIHNvIHdlIG5vdyBoYXZlIGEgZmxhZyB0byAKKyAg
ICAgICAgZGlzdGluZ3Vpc2ggdGhlIGV4cGVjdGVkIG91dHB1dC4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qczoKKyAgICAgICAgKC4pOgorICAgICAgICAqIHJ1
bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHA6
CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6c2V0Q3VzdG9tRGVzY3JpcHRvcik6
CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBydW50
aW1lL1Byb3BlcnR5U2xvdC5oOgorCiAyMDE0LTAxLTI4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBKZXR0aXNvbiBERkcgY29kZSB3aGVuIG5laXRoZXIgYnJlYWtw
b2ludHMgb3IgdGhlIHByb2ZpbGVyIGFyZSBhY3RpdmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJlMmFlNTQ3
ZDM1MjBmMzNiYjJlYzgzYjQxM2U2NjkyNmYyNjYxNS4uN2YyZGNlMGY4NWY0ZDBmOTkyMTAzMTQ3
NmVjMWMxYTgzNzE2YmIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTAxLTI4
ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBET00gYXR0
cmlidXRlcyBhcHBlYXIgdG8gYmUgZmF1eCBhY2Nlc3NvciBwcm9wZXJ0aWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3OTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciB0aGUgYmluZGlu
Z3MgZ2VuZXJhdG9yLCBhbmQgbWFrZSBzdXJlIHdlIGVtaXQKKyAgICAgICAgdGhlIEN1c3RvbUFj
Y2Vzc29yIGZsYWcgb24gcHJvcGVydGllcyB0aGF0IHNob3VsZCAKKyAgICAgICAgYXBwZWFyIHRv
IGJlIGFjY2Vzc29ycy4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5KToKKyAgICAg
ICAgKEdlbmVyYXRlQXR0cmlidXRlc0hhc2hUYWJsZSk6CisgICAgICAgIChHZW5lcmF0ZUltcGxl
bWVudGF0aW9uKToKKwogMjAxNC0wMS0yOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTYyODM3KTogNSUgcmVncmVzc2lvbiBvbiBodG1s
NS1mdWxsLXJlbmRlciBhbmQgMyUgcmVncmVzc2lvbiBpbiBEb1lvdUV2ZW5CZW5jaApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJj
ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3Vy
Y2UuanMKaW5kZXggN2JmZjdmNmQ0MTU5ODgyOGQ4N2U5OGMzZDQ1ZDlhZDU5NzljMzVhNS4uMzA0
NDIyNGQ4YWVhZDE2ZmIzZTQ5ZTMxODNmZjk3NDE0NDA4YjczNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCkBA
IC0zNTAsNiArMzUwLDE4IEBAIEluamVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLmhh
c093blByb3BlcnR5KCJnZXQiKSAmJiBkZXNjcmlwdG9yLmhhc093blByb3BlcnR5KCJzZXQiKSAm
JiAhZGVzY3JpcHRvci5nZXQgJiYgIWRlc2NyaXB0b3Iuc2V0KSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBOb3QgYWxsIGJpbmRpbmdzIHByb3ZpZGUgcHJvcGVyIGRlc2NyaXB0b3JzLiBG
YWxsIGJhY2sgdG8gdGhlIHdyaXRhYmxlLCBjb25maWd1cmFibGUgcHJvcGVydHkuCisgICAgICAg
ICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2Ny
aXB0b3IgPSB7IG5hbWU6IG5hbWUsIHZhbHVlOiBvYmplY3RbbmFtZV0sIHdyaXRhYmxlOiBmYWxz
ZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogZmFsc2V9OworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChvID09PSBvYmplY3QpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlc2NyaXB0b3IuaXNPd24gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlc2NyaXB0b3JzLnB1c2goZGVzY3JpcHRvcik7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2lsZW50
IGNhdGNoLgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGNh
dGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgIHZhciBkZXNjcmlwdG9yID0ge307CiAgICAg
ICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IudmFsdWUgPSBlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDY5MTBiN2UwNGZhYjE1ZjY2NWJkOTc2MmNi
NWI2ZmM2MWNkMmZkNDYuLjJiNjdhMWQ5ZWVkODRlOTk1NmY4YmI5NjgzODRjODRjYWVhNTNjZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTI0MjEs
NiArMjQyMSw4IEBAIGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBpZiAoc2xvdC5pc0FjY2Vzc29yKCkpCiAgICAgICAgIGRlc2NyaXB0b3Iuc2V0QWNj
ZXNzb3JEZXNjcmlwdG9yKHNsb3QuZ2V0dGVyU2V0dGVyKCksIHNsb3QuYXR0cmlidXRlcygpKTsK
KyAgICBlbHNlIGlmIChzbG90LmF0dHJpYnV0ZXMoKSAmIEN1c3RvbUFjY2Vzc29yKQorICAgICAg
ICBkZXNjcmlwdG9yLnNldEN1c3RvbURlc2NyaXB0b3Ioc2xvdC5hdHRyaWJ1dGVzKCkpOwogICAg
IGVsc2UKICAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHNsb3QuZ2V0VmFsdWUoZXhl
YywgcHJvcGVydHlOYW1lKSwgc2xvdC5hdHRyaWJ1dGVzKCkpOwogICAgIHJldHVybiB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlw
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRv
ci5jcHAKaW5kZXggMWRkMzU2MDVjOTAwMjhmNmM0MzYyNDg5YjBjODgzNTNhNmExYzZmZS4uZDdh
ZjUyMzQxODBkOWVkZjgxNjI1NjJmOWM0OTU1MTY5NzBiYjVhNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuY3BwCkBAIC0xMTUs
NiArMTE1LDE2IEBAIHZvaWQgUHJvcGVydHlEZXNjcmlwdG9yOjpzZXREZXNjcmlwdG9yKEpTVmFs
dWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiAgICAgfQogfQogCit2b2lkIFByb3BlcnR5
RGVzY3JpcHRvcjo6c2V0Q3VzdG9tRGVzY3JpcHRvcih1bnNpZ25lZCBhdHRyaWJ1dGVzKQorewor
ICAgIG1fYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXMgfCBBY2Nlc3NvciB8IEN1c3RvbUFjY2Vzc29y
OworICAgIG1fYXR0cmlidXRlcyAmPSB+UmVhZE9ubHk7CisgICAgbV9zZWVuQXR0cmlidXRlcyA9
IEVudW1lcmFibGVQcmVzZW50IHwgQ29uZmlndXJhYmxlUHJlc2VudDsKKyAgICBzZXRHZXR0ZXIo
anNVbmRlZmluZWQoKSk7CisgICAgc2V0U2V0dGVyKGpzVW5kZWZpbmVkKCkpOworICAgIG1fdmFs
dWUgPSBKU1ZhbHVlKCk7Cit9CisKIHZvaWQgUHJvcGVydHlEZXNjcmlwdG9yOjpzZXRBY2Nlc3Nv
ckRlc2NyaXB0b3IoR2V0dGVyU2V0dGVyKiBhY2Nlc3NvciwgdW5zaWduZWQgYXR0cmlidXRlcykK
IHsKICAgICBBU1NFUlQoYXR0cmlidXRlcyAmIEFjY2Vzc29yKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmgKaW5kZXggMmNjOTVmYjIx
Y2U0YzkwNGUwODA1MTdjM2E0YTNkNzUyMTAyMDk3NS4uODRlMjcwMGFjZjc5M2FlYWYwODI2YTI0
MWRjNTk2NTM4ZmIxNTc0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlEZXNjcmlwdG9yLmgKQEAgLTYzLDYgKzYzLDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIEpTT2JqZWN0KiBzZXR0ZXJPYmplY3QoKSBjb25zdDsKICAgICAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBzZXRVbmRlZmluZWQoKTsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBzZXREZXNjcmlwdG9yKEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMp
OworICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHNldEN1c3RvbURlc2NyaXB0b3IodW5z
aWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0QWNj
ZXNzb3JEZXNjcmlwdG9yKEdldHRlclNldHRlciogYWNjZXNzb3IsIHVuc2lnbmVkIGF0dHJpYnV0
ZXMpOwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHNldFdyaXRhYmxlKGJvb2wpOwog
ICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHNldEVudW1lcmFibGUoYm9vbCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCmluZGV4IGFlOTM0NTVh
NDg0NzgzNzg0NzZjNDNhMjUxMmM4NThmNjQ4NTZjYTYuLmQ5MzhmYTMxNjQ1YWYyNmI3NTg1MTRk
YjZiMjQ3OGYxODNlOWVlZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3BlcnR5U2xvdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5U2xvdC5oCkBAIC00MSw2ICs0MSw3IEBAIGVudW0gQXR0cmlidXRlIHsKICAgICBEb250
RGVsZXRlICAgPSAxIDw8IDMsICAvLyBwcm9wZXJ0eSBjYW4ndCBiZSBkZWxldGVkCiAgICAgRnVu
Y3Rpb24gICAgID0gMSA8PCA0LCAgLy8gcHJvcGVydHkgaXMgYSBmdW5jdGlvbiAtIG9ubHkgdXNl
ZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIEFjY2Vzc29yICAgICA9IDEgPDwgNSwgIC8vIHBy
b3BlcnR5IGlzIGEgZ2V0dGVyL3NldHRlcgorICAgIEN1c3RvbUFjY2Vzc29yID0gMSA8PCA2LAog
fTsKIAogY2xhc3MgUHJvcGVydHlTbG90IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNmI5N2Q1MzI0Zjg3MDE3YTA3Njdh
ODhlZjRhMmM4MjJmYTRkM2QwYi4uZmQ0YTk3NDE2Yzk1MTgxOTY4MTNhNmYyMDQ2M2UzMGUzZTY4
YWFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KQEAgLTM5OCw3ICszOTgsNyBAQCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0
eVNsb3RCb2R5CiAKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5hbWVkTm9kZU1hcCIgb3Ig
JGludGVyZmFjZU5hbWUgPX4gL15IVE1MXHcqQ29sbGVjdGlvbiQvKSB7CiAgICAgICAgIHB1c2go
QGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgJHtuYW1lc3BhY2VNYXliZX1KU1ZhbHVlIHBy
b3RvID0gdGhpc09iamVjdC0+cHJvdG90eXBlKCk7XG4iKTsKLSAgICAgICAgcHVzaChAZ2V0T3du
UHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8JHtu
YW1lc3BhY2VNYXliZX1KU09iamVjdCo+KGFzT2JqZWN0KHByb3RvKSktPmhhc1Byb3BlcnR5KGV4
ZWMsIHByb3BlcnR5TmFtZSkpXG4iKTsKKyAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90
SW1wbCwgIiAgICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8JHtuYW1lc3BhY2VNYXli
ZX1KU09iamVjdCo+KHByb3RvKS0+aGFzUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lKSlcbiIp
OwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICByZXR1cm4g
ZmFsc2U7XG5cbiIpOwogICAgIH0KIApAQCAtMTE3NCw5ICsxMTc0LDkgQEAgc3ViIEdlbmVyYXRl
SGVhZGVyCiAgICAgfQogfQogCi1zdWIgR2VuZXJhdGVBdHRyaWJ1dGVzSGFzaFRhYmxlKCQkKQor
c3ViIEdlbmVyYXRlQXR0cmlidXRlc0hhc2hUYWJsZQogewotICAgIG15ICgkb2JqZWN0LCAkaW50
ZXJmYWNlKSA9IEBfOworICAgIG15ICgkb2JqZWN0LCAkaW50ZXJmYWNlLCAkaGFzaEtleXMsICRo
YXNoU3BlY2lhbHMsICRoYXNoVmFsdWUxLCAkaGFzaFZhbHVlMiwgJGNvbmRpdGlvbmFscywgJGVu
dHJpZXMpID0gQF87CiAKICAgICAjIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgZnVuY3Rpb25zIG9u
ICRpbnRlcmZhY2UuCiAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOwpA
QCAtMTE4OCwyMSArMTE4OCwxMCBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVzSGFzaFRhYmxlKCQk
KQogCiAgICAgcmV0dXJuIDAgIGlmICEkbnVtQXR0cmlidXRlczsKIAotICAgIG15ICRoYXNoU2l6
ZSA9ICRudW1BdHRyaWJ1dGVzOwotICAgIG15ICRoYXNoTmFtZSA9ICRjbGFzc05hbWUgLiAiVGFi
bGUiOwotCi0gICAgbXkgQGhhc2hLZXlzID0gKCk7Ci0gICAgbXkgQGhhc2hTcGVjaWFscyA9ICgp
OwotICAgIG15IEBoYXNoVmFsdWUxID0gKCk7Ci0gICAgbXkgQGhhc2hWYWx1ZTIgPSAoKTsKLSAg
ICBteSAlY29uZGl0aW9uYWxzID0gKCk7Ci0KLSAgICBteSBAZW50cmllcyA9ICgpOwotCiAgICAg
Zm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7CiAgICAg
ICAgIG5leHQgaWYgKCRhdHRyaWJ1dGUtPmlzU3RhdGljKTsKICAgICAgICAgbXkgJG5hbWUgPSAk
YXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7Ci0gICAgICAgIHB1c2goQGhhc2hLZXlzLCAkbmFt
ZSk7CisgICAgICAgIHB1c2goJGhhc2hLZXlzLCAkbmFtZSk7CiAKICAgICAgICAgbXkgQHNwZWNp
YWxzID0gKCk7CiAgICAgICAgICMgQXMgcGVyIFdlYiBJREwgc3BlY2lmaWNhdGlvbiwgY29uc3Ry
dWN0b3IgcHJvcGVydGllcyBvbiB0aGUgRUNNQVNjcmlwdCBnbG9iYWwgb2JqZWN0IHNob3VsZCBi
ZQpAQCAtMTIxMSw0MyArMTIwMCwzOSBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVzSGFzaFRhYmxl
KCQkKQogICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnREZWxldGUiKSB1bmxlc3MgKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGV0YWJsZSJ9IHx8ICRp
c19nbG9iYWxfY29uc3RydWN0b3IpOwogICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnRFbnVt
IikgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdEVu
dW1lcmFibGUifSB8fCAkaXNfZ2xvYmFsX2NvbnN0cnVjdG9yKTsKICAgICAgICAgcHVzaChAc3Bl
Y2lhbHMsICJSZWFkT25seSIpIGlmIElzUmVhZG9ubHkoJGF0dHJpYnV0ZSk7CisgICAgICAgIHB1
c2goQHNwZWNpYWxzLCAiQ3VzdG9tQWNjZXNzb3IiKSB1bmxlc3MgJGlzX2dsb2JhbF9jb25zdHJ1
Y3RvcjsKICAgICAgICAgbXkgJHNwZWNpYWwgPSAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAi
LCBAc3BlY2lhbHMpIDogIjAiOwotICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsICRzcGVjaWFs
KTsKKyAgICAgICAgcHVzaCgkaGFzaFNwZWNpYWxzLCAkc3BlY2lhbCk7CiAKICAgICAgICAgbXkg
JGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZU5hbWUsICRjbGFzc05h
bWUsICRhdHRyaWJ1dGUpOwotICAgICAgICBwdXNoKEBoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKKyAg
ICAgICAgcHVzaCgkaGFzaFZhbHVlMSwgJGdldHRlcik7CiAKICAgICAgICAgaWYgKElzUmVhZG9u
bHkoJGF0dHJpYnV0ZSkpIHsKLSAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICIwIik7Cisg
ICAgICAgICAgICBwdXNoKCRoYXNoVmFsdWUyLCAiMCIpOwogICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZU5h
bWUsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVl
MiwgJHNldHRlcik7CisgICAgICAgICAgICBwdXNoKCRoYXNoVmFsdWUyLCAkc2V0dGVyKTsKICAg
ICAgICAgfQogCiAgICAgICAgIG15ICRjb25kaXRpb25hbCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsIn07CiAgICAgICAgIGlmICgkY29u
ZGl0aW9uYWwpIHsKLSAgICAgICAgICAgICRjb25kaXRpb25hbHN7JG5hbWV9ID0gJGNvbmRpdGlv
bmFsOworICAgICAgICAgICAgJGNvbmRpdGlvbmFscy0+eyRuYW1lfSA9ICAkY29uZGl0aW9uYWw7
CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJOb0ludGVyZmFjZU9iamVjdCJ9KSB7Ci0gICAgICAgIHB1c2goQGhhc2hLZXlzLCAi
Y29uc3RydWN0b3IiKTsKKyAgICAgICAgcHVzaCgkaGFzaEtleXMsICJjb25zdHJ1Y3RvciIpOwog
ICAgICAgICBteSAkZ2V0dGVyID0gImpzIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9y
IjsKLSAgICAgICAgcHVzaChAaGFzaFZhbHVlMSwgJGdldHRlcik7CisgICAgICAgIHB1c2goJGhh
c2hWYWx1ZTEsICRnZXR0ZXIpOwogICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IlJlcGxhY2VhYmxlQ29uc3RydWN0b3IifSkgewogICAgICAgICAgICAgbXkgJHNl
dHRlciA9ICJzZXRKUyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7Ci0gICAgICAg
ICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkc2V0dGVyKTsKLSAgICAgICAgICAgIHB1c2goQGhhc2hT
cGVjaWFscywgIkRvbnRFbnVtIHwgRG9udERlbGV0ZSIpOworICAgICAgICAgICAgcHVzaCgkaGFz
aFZhbHVlMiwgJHNldHRlcik7CisgICAgICAgICAgICBwdXNoKCRoYXNoU3BlY2lhbHMsICJEb250
RW51bSB8IERvbnREZWxldGUiKTsKICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAKLSAgICAg
ICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICIwIik7Ci0gICAgICAgICAgICBwdXNoKEBoYXNoU3Bl
Y2lhbHMsICJEb250RW51bSB8IFJlYWRPbmx5Iik7CisgICAgICAgICAgICBwdXNoKCRoYXNoVmFs
dWUyLCAiMCIpOworICAgICAgICAgICAgcHVzaCgkaGFzaFNwZWNpYWxzLCAiRG9udEVudW0gfCBS
ZWFkT25seSIpOwogICAgICAgICB9CiAgICAgfQotCi0gICAgJG9iamVjdC0+R2VuZXJhdGVIYXNo
VGFibGUoJGhhc2hOYW1lLCAkaGFzaFNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXEBoYXNoS2V5cywgXEBoYXNoU3BlY2lhbHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXEBoYXNoVmFsdWUxLCBcQGhhc2hWYWx1ZTIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXCVjb25kaXRpb25hbHMpOwogICAgIHJldHVybiAkbnVtQXR0cmlidXRlczsKIH0K
IApAQCAtMTU4NSwxMCArMTU3MCwyNCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
IHB1c2goQGltcGxDb250ZW50LCAiXG51c2luZyBuYW1lc3BhY2UgSlNDO1xuXG4iKTsKICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIm5hbWVzcGFjZSBXZWJDb3JlIHtcblxuIik7CiAKLSAgICBteSAk
bnVtQXR0cmlidXRlcyA9IEdlbmVyYXRlQXR0cmlidXRlc0hhc2hUYWJsZSgkb2JqZWN0LCAkaW50
ZXJmYWNlKTsKKyAgICBteSBAaGFzaEtleXMgPSAoKTsKKyAgICBteSBAaGFzaFZhbHVlMSA9ICgp
OworICAgIG15IEBoYXNoVmFsdWUyID0gKCk7CisgICAgbXkgQGhhc2hTcGVjaWFscyA9ICgpOwor
ICAgIG15ICVjb25kaXRpb25hbHMgPSAoKTsKKyAgICBteSAkaGFzaE5hbWUgPSAkY2xhc3NOYW1l
IC4gIlRhYmxlIjsKKworICAgIG15ICRudW1BdHRyaWJ1dGVzID0gR2VuZXJhdGVBdHRyaWJ1dGVz
SGFzaFRhYmxlKCRvYmplY3QsICRpbnRlcmZhY2UsCisgICAgICAgIFxAaGFzaEtleXMsIFxAaGFz
aFNwZWNpYWxzLAorICAgICAgICBcQGhhc2hWYWx1ZTEsIFxAaGFzaFZhbHVlMiwKKyAgICAgICAg
XCVjb25kaXRpb25hbHMpOwogCiAgICAgbXkgJG51bUNvbnN0YW50cyA9IEB7JGludGVyZmFjZS0+
Y29uc3RhbnRzfTsKICAgICBteSAkbnVtRnVuY3Rpb25zID0gQHskaW50ZXJmYWNlLT5mdW5jdGlv
bnN9OworICAgICRvYmplY3QtPkdlbmVyYXRlSGFzaFRhYmxlKCRoYXNoTmFtZSwgJG51bUF0dHJp
YnV0ZXMsCisgICAgICAgIFxAaGFzaEtleXMsIFxAaGFzaFNwZWNpYWxzLAorICAgICAgICBcQGhh
c2hWYWx1ZTEsIFxAaGFzaFZhbHVlMiwKKyAgICAgICAgXCVjb25kaXRpb25hbHMpOwogCiAgICAg
IyAtIEFkZCBhbGwgY29uc3RhbnRzCiAgICAgaWYgKCEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiTm9JbnRlcmZhY2VPYmplY3QifSkgewpAQCAtMTY4OSwxMyArMTY4OCwxMyBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgIyAtIEFkZCBmdW5jdGlvbnMgYW5kIGNv
bnN0YW50cyB0byBhIGhhc2h0YWJsZSBkZWZpbml0aW9uCiAgICAgbXkgJGhhc2hTaXplID0gJG51
bUZ1bmN0aW9ucyArICRudW1Db25zdGFudHM7Ci0gICAgbXkgJGhhc2hOYW1lID0gJGNsYXNzTmFt
ZSAuICJQcm90b3R5cGVUYWJsZSI7CisgICAgJGhhc2hOYW1lID0gJGNsYXNzTmFtZSAuICJQcm90
b3R5cGVUYWJsZSI7CiAKLSAgICBteSBAaGFzaEtleXMgPSAoKTsKLSAgICBteSBAaGFzaFZhbHVl
MSA9ICgpOwotICAgIG15IEBoYXNoVmFsdWUyID0gKCk7Ci0gICAgbXkgQGhhc2hTcGVjaWFscyA9
ICgpOwotICAgIG15ICVjb25kaXRpb25hbHMgPSAoKTsKKyAgICBAaGFzaEtleXMgPSAoKTsKKyAg
ICBAaGFzaFZhbHVlMSA9ICgpOworICAgIEBoYXNoVmFsdWUyID0gKCk7CisgICAgQGhhc2hTcGVj
aWFscyA9ICgpOworICAgICVjb25kaXRpb25hbHMgPSAoKTsKIAogICAgICMgRklYTUU6IHdlIHNo
b3VsZCBub3QgbmVlZCBhIGZ1bmN0aW9uIGZvciBldmVyeSBjb25zdGFudC4KICAgICBmb3JlYWNo
IG15ICRjb25zdGFudCAoQHskaW50ZXJmYWNlLT5jb25zdGFudHN9KSB7CkBAIC0xOTcwLDggKzE5
NjksMTQgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAgaWYgKCEk
YXR0cmlidXRlLT5pc1N0YXRpYyB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0Nv
bnN0cnVjdG9yJC8pIHsKICAgICAgICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRP
TVdpbmRvdyIpIHsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
JHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzID0ganNDYXN0PCRjbGFzc05hbWUqPihKU1ZhbHVlOjpk
ZWNvZGUoc2xvdEJhc2UpKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTtcbiIpOworICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PCRjbGFzc05hbWUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFjYXN0
ZWRUaGlzKSB7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIGlmIChKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IGpzRHluYW1pY0Nhc3Q8SlNET01X
aW5kb3dTaGVsbCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSlcbiIpOworICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgICAgIGNhc3RlZFRoaXMgPSBz
aGVsbC0+d2luZG93KCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgfVxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFjYXN0ZWRUaGlzKVxuIik7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjKTtcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8JGNsYXNzTmFtZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIp
OwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFS
QU0oc2xvdEJhc2UpO1xuIik7CkBAIC0yMTQyLDcgKzIxNDcsNyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICBpZiAoISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJOb0ludGVyZmFjZU9iamVjdCJ9KSB7CiAgICAgICAgICAgICBteSAkY29uc3RydWN0b3JGdW5j
dGlvbk5hbWUgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwogCi0gICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7Y29uc3RydWN0b3JG
dW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwog
ICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CiAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBkb21PYmplY3Qg
PSBqc0R5bmFtaWNDYXN0PCRjbGFzc05hbWUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
XG4iKTsKQEAgLTIxNTIsOCArMjE1Nyw2IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CiAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xh
c3NOYW1lfSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDwkY2xhc3NOYW1lKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgaWYgKCFkb21PYmplY3QpXG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghZG9t
T2JqZWN0KVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKQEAgLTIxNjcsMjY4ICsyMTcwLDI2NSBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ9XG5cbiIpOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJSZXBsYWNlYWJsZUNvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgICAg
IG15ICRjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZSA9ICJzZXRKUyIgLiAkaW50ZXJmYWNlTmFtZSAu
ICJDb25zdHJ1Y3RvciI7CiAKLSAgICAgICAgIyBDaGVjayBpZiB3ZSBoYXZlIGFueSB3cml0YWJs
ZSBhdHRyaWJ1dGVzCi0gICAgICAgIG15ICRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzID0gMDsKLSAg
ICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7
Ci0gICAgICAgICAgICAkaGFzUmVhZFdyaXRlUHJvcGVydGllcyA9IDEgaWYgIUlzUmVhZG9ubHko
JGF0dHJpYnV0ZSkgJiYgISRhdHRyaWJ1dGUtPmlzU3RhdGljOworICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ2b2lkICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSlcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTVmFsdWUgdmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsiKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8JHtj
bGFzc05hbWV9Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CisgICAgICAgICAg
ICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIWNhc3RlZFRoaXMpIHtcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBpZiAoSlNET01XaW5kb3dTaGVsbCog
c2hlbGwgPSBqc0R5bmFtaWNDYXN0PEpTRE9NV2luZG93U2hlbGwqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSkpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAgICAgICAgIGNhc3RlZFRoaXMgPSBzaGVsbC0+d2luZG93KCk7XG4iKTsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghY2FzdGVkVGhpcykge1xuIik7Cisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVy
bjtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CisgICAg
ICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNoZWNrU2VjdXJp
dHkifSkgeworICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93
IikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIUJp
bmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhleGVjLCBjYXN0ZWRU
aGlzLT5pbXBsKCkpKVxuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFzaG91bGRBbGxvd0FjY2Vzc1Rv
RnJhbWUoZXhlYywgY2FzdGVkVGhpcy0+aW1wbCgpLmZyYW1lKCkpKVxuIik7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1
cm47XG4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3JcbiIpOworCisgICAgICAg
ICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBjYXN0ZWRUaGlzLT5wdXREaXJlY3QoZXhlYy0+dm0o
KSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmNvbnN0cnVjdG9yLCB2YWx1ZSk7XG4iKTsKKyAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZGllICJObyB3YXkgdG8gaGFuZGxlIGlu
dGVyZmFjZSB3aXRoIFJlcGxhY2VhYmxlQ29uc3RydWN0b3IgZXh0ZW5kZWQgYXR0cmlidXRlOiAk
aW50ZXJmYWNlTmFtZSI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIn1cblxuIik7CiAgICAgICAgIH0KKyAgICB9CisgICAgbXkgJGhhc0N1c3RvbVNldHRl
ciA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZFNldHRlciJ9
CisgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b21JbmRleGVkU2V0dGVyIn07CiAKLSAgICAgICAgbXkgJG92ZXJyaWRlc1B1
dEltcGxlbWVudGF0aW9uID0gSW5zdGFuY2VPdmVycmlkZXNQdXRJbXBsZW1lbnRhdGlvbigkaW50
ZXJmYWNlKTsKLSAgICAgICAgbXkgJGhhc1NldHRlciA9ICRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVz
OworICAgIGlmICgkaGFzQ3VzdG9tU2V0dGVyKSB7CisgICAgICAgIGlmICghJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVB1dEZ1bmN0aW9uIn0pIHsKKyAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnB1dChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1
ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIntcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFz
c05hbWV9KiB0aGlzT2JqZWN0ID0ganNDYXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7Cisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsIGluZm8oKSk7XG4iKTsKKyAgICAgICAgICAgIGlmICgkaW50ZXJmYWNl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9KSB7CisgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdW5zaWduZWQgaW5kZXggPSBwcm9wZXJ0
eU5hbWUuYXNJbmRleCgpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaWYgKGluZGV4ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCkge1xuIik7CisgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHRoaXNPYmplY3QtPmluZGV4
U2V0dGVyKGV4ZWMsIGluZGV4LCB2YWx1ZSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgfVxuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAo
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkU2V0dGVyIn0pIHsK
KyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAodGhpc09iamVjdC0+
cHV0RGVsZWdhdGUoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCkpXG4iKTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7CisgICAg
ICAgICAgICB9CiAKLSAgICAgICAgaWYgKCRoYXNTZXR0ZXIgfHwgJG92ZXJyaWRlc1B1dEltcGxl
bWVudGF0aW9uKSB7Ci0gICAgICAgICAgICBpZiAoJG92ZXJyaWRlc1B1dEltcGxlbWVudGF0aW9u
KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1l
fTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ9XG5cbiIpOworCisgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUluZGV4ZWRTZXR0ZXIifSB8fCAkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRTZXR0ZXIifSkgeworICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnB1dEJ5SW5kZXgoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBi
b29sIHNob3VsZFRocm93KVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNz
TmFtZX0qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7XG4iKTsKICAgICAgICAgICAgICAgICBpZiAoJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUluZGV4ZWRTZXR0ZXIifSkgewot
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB1bnNpZ25lZCBpbmRl
eCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgaWYgKGluZGV4ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRl
eCkge1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
IChpbmRleCA8PSBNQVhfQVJSQVlfSU5ERVgpIHtcbiIpOworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgVU5VU0VEX1BBUkFNKHNob3VsZFRocm93KTtcbiIp
OwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhpc09i
amVjdC0+aW5kZXhTZXR0ZXIoZXhlYywgaW5kZXgsIHZhbHVlKTtcbiIpOwogICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7CiAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwogICAgICAgICAgICAg
ICAgIH0KKwogICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tTmFtZWRTZXR0ZXIifSkgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6
ZnJvbShleGVjLCBpbmRleCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgUHV0UHJvcGVydHlTbG90IHNsb3QodGhpc09iamVjdCwgc2hvdWxkVGhyb3cp
O1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICh0
aGlzT2JqZWN0LT5wdXREZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KSlc
biIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0
dXJuO1xuIik7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgQmFzZTo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpO1xuIik7Ci0KKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIGV4ZWMsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhy
b3cpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogCi0gICAgICAgICAgICAgICAgaWYgKCRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21JbmRleGVkU2V0dGVyIn0gfHwg
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkU2V0dGVyIn0pIHsK
LSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1l
fTo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5k
ZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpXG4iKTsKLSAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0ganNDYXN0PCR7
Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygp
KTtcbiIpOwotICAgICAgICAgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbUluZGV4ZWRTZXR0ZXIifSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGluZGV4IDw9IE1BWF9BUlJBWV9JTkRFWCkg
e1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgVU5VU0VEX1BBUkFNKHNob3VsZFRocm93KTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHRoaXNPYmplY3QtPmluZGV4U2V0dGVyKGV4
ZWMsIGluZGV4LCB2YWx1ZSk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAjIENoZWNrIGlmIHdlIGhhdmUg
YW55IHdyaXRhYmxlIGF0dHJpYnV0ZXMKKyAgICBteSAkaGFzUmVhZFdyaXRlUHJvcGVydGllcyA9
IDA7CisgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9
KSB7CisgICAgICAgICRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzID0gMSBpZiAhSXNSZWFkb25seSgk
YXR0cmlidXRlKSAmJiAhJGF0dHJpYnV0ZS0+aXNTdGF0aWM7CisKKyAgICAgICAgaWYgKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIpIHsKKyAgICAgICAgICAg
ICRpbXBsSW5jbHVkZXN7IkpTRXZlbnRMaXN0ZW5lci5oIn0gPSAxOworICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKCRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzKSB7CisgICAgICAgIGZvcmVhY2gg
bXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICAgICAg
aWYgKCFJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CisgICAgICAgICAgICAgICAgbXkgJG5hbWUg
PSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgICAgICAgICAgbXkgJHR5cGUg
PSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgICAgICAgICAgbXkgJHB1dEZ1
bmN0aW9uTmFtZSA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZU5hbWUsICRjbGFz
c05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgICAgIG15ICRpbXBsU2V0dGVyRnVuY3Rp
b25OYW1lID0gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJG5hbWUpOworICAgICAgICAgICAg
ICAgIG15ICRzZXR0ZXJSYWlzZXNFeGNlcHRpb24gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJTZXR0ZXJSYWlzZXNFeGNlcHRpb24ifTsKKworICAgICAgICAg
ICAgICAgIG15ICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5H
ZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CisgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHthdHRyaWJ1dGVDb25kaXRpb25hbFN0
cmluZ31cbiIpIGlmICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZzsKKworICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke3B1dEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUiKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiB0aGlzVmFsdWUiKSBpZiAhJGF0dHJp
YnV0ZS0+aXNTdGF0aWM7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAie1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpO1xuIik7Cisg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKGV4ZWMp
O1xuIik7CisgICAgICAgICAgICAgICAgaWYgKCEkYXR0cmlidXRlLT5pc1N0YXRpYykgeworICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PCR7Y2xhc3NOYW1lfSo+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUg
ZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGlmICghY2FzdGVkVGhpcykge1xuIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgaWYgKEpTRE9NV2luZG93U2hlbGwqIHNoZWxs
ID0ganNEeW5hbWljQ2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpKVxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAgICAgICAgIGNhc3RlZFRoaXMgPSBzaGVsbC0+d2luZG93KCk7XG4iKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwogICAgICAgICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZFNldHRlciJ9KSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
ID0gSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpbmRleCk7XG4iKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KHRoaXNP
YmplY3QsIHNob3VsZFRocm93KTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaWYgKHRoaXNPYmplY3QtPnB1dERlbGVnYXRlKGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpKVxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7CisgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghY2FzdGVkVGhpcykge1xuIik7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICByZXR1cm47XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgfVxuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1cml0eSJ9ICYmICEkYXR0cmli
dXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEb05vdENoZWNrU2VjdXJpdHki
fSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRv
dyIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
ICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNh
c3RlZFRoaXMtPmltcGwoKSkpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghc2hvdWxk
QWxsb3dBY2Nlc3NUb0ZyYW1lKGV4ZWMsIGNhc3RlZFRoaXMtPmltcGwoKS5mcmFtZSgpKSlcbiIp
OwogICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgQmFzZTo6cHV0QnlJbmRleChjZWxsLCBleGVjLCBpbmRleCwgdmFsdWUs
IHNob3VsZFRocm93KTtcbiIpOwotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIn1cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICByZXR1cm47XG4iKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9CiAKLSAg
ICAgICAgICAgIGlmICgkaGFzUmVhZFdyaXRlUHJvcGVydGllcykgewotICAgICAgICAgICAgICAg
IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgewotICAg
ICAgICAgICAgICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIG15ICRuYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwot
ICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHR5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUt
PnR5cGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBteSAkcHV0RnVuY3Rpb25OYW1lID0gR2V0
QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0
ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBteSAkaW1wbFNldHRlckZ1bmN0aW9uTmFtZSA9
ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRuYW1lKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG15ICRzZXR0ZXJSYWlzZXNFeGNlcHRpb24gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJTZXR0ZXJSYWlzZXNFeGNlcHRpb24ifTsKLQotICAgICAgICAg
ICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5l
cmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7YXR0cmli
dXRlQ29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmc7
Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke3B1
dEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAq
LywgRW5jb2RlZEpTVmFsdWUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiIHRoaXNWYWx1ZSIpIGlmICEkYXR0cmlidXRlLT5pc1N0YXRpYzsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAie1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7XG4iKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJB
TShleGVjKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkYXR0cmlidXRlLT5p
c1N0YXRpYykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8JHtjbGFzc05h
bWV9Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghY2Fz
dGVkVGhpcykge1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICBpZiAoSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSBqc0R5bmFt
aWNDYXN0PEpTRE9NV2luZG93U2hlbGwqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpXG4i
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgICAgICBjYXN0ZWRUaGlzID0gc2hlbGwtPndpbmRvdygpO1xuIik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIWNhc3RlZFRoaXMpIHtcbiIpOworICAgICAgICAg
ICAgICAgIGlmIChIYXNDdXN0b21TZXR0ZXIoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMpKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGNhc3RlZFRoaXMtPnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKGV4ZWMsIHZhbHVlKTtc
biIpOworICAgICAgICAgICAgICAgIH0gZWxzaWYgKCR0eXBlIGVxICJFdmVudExpc3RlbmVyIikg
eworICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU0V2ZW50TGlzdGVuZXIuaCJ9
ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VE
X1BBUkFNKGV4ZWMpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIG15ICR3aW5kb3dFdmVudExp
c3RlbmVyID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNX
aW5kb3dFdmVudExpc3RlbmVyIn07CisgICAgICAgICAgICAgICAgICAgIGlmICgkd2luZG93RXZl
bnRMaXN0ZW5lcikgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNhc3RlZFRoaXMtPmdsb2Jh
bE9iamVjdCgpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGludGVyZmFjZU5hbWUmIGltcGwgPSBjYXN0ZWRU
aGlzLT5pbXBsKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCgoJGludGVyZmFjZU5h
bWUgZXEgIkRPTVdpbmRvdyIpIG9yICgkaW50ZXJmYWNlTmFtZSBlcSAiV29ya2VyR2xvYmFsU2Nv
cGUiKSkgYW5kICRuYW1lIGVxICJvbmVycm9yIikgeworICAgICAgICAgICAgICAgICAgICAgICAg
JGltcGxJbmNsdWRlc3siSlNFcnJvckhhbmRsZXIuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGltcGwuc2V0JGltcGxTZXR0ZXJGdW5jdGlv
bk5hbWUoY3JlYXRlSlNFcnJvckhhbmRsZXIoZXhlYywgdmFsdWUsIGNhc3RlZFRoaXMpKTtcbiIp
OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lckNhbGwoJGNs
YXNzTmFtZSwgJGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUsICR3aW5kb3dFdmVudExpc3RlbmVyKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2lmICgkYXR0cmli
dXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0NvbnN0cnVjdG9yJC8pIHsKKyAgICAgICAgICAgICAg
ICAgICAgbXkgJGNvbnN0cnVjdG9yVHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsK
KyAgICAgICAgICAgICAgICAgICAgJGNvbnN0cnVjdG9yVHlwZSA9fiBzL0NvbnN0cnVjdG9yJC8v
OworICAgICAgICAgICAgICAgICAgICAjICRjb25zdHJ1Y3RvclR5cGUgfj0gL0NvbnN0cnVjdG9y
JC8gaW5kaWNhdGVzIHRoYXQgaXQgaXMgTmFtZWRDb25zdHJ1Y3Rvci4KKyAgICAgICAgICAgICAg
ICAgICAgIyBXZSBkbyBub3QgZ2VuZXJhdGUgdGhlIGhlYWRlciBmaWxlIGZvciBOYW1lZENvbnN0
cnVjdG9yIG9mIGNsYXNzIFhYWFgsCisgICAgICAgICAgICAgICAgICAgICMgc2luY2Ugd2UgZ2Vu
ZXJhdGUgdGhlIE5hbWVkQ29uc3RydWN0b3IgZGVjbGFyYXRpb24gaW50byB0aGUgaGVhZGVyIGZp
bGUgb2YgY2xhc3MgWFhYWC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRjb25zdHJ1Y3RvclR5
cGUgbmUgImFueSIgYW5kICRjb25zdHJ1Y3RvclR5cGUgIX4gL05hbWVkJC8pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyIgLiAkY29uc3RydWN0b3JUeXBl
IC4gIi5oIiwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29u
ZGl0aW9uYWwifSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0
b3JcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBjYXN0
ZWRUaGlzLT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgSWRlbnRpZmllcihleGVjLCBcIiRuYW1lXCIp
LCB2YWx1ZSk7XG4iKTsKKworICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcGxhY2VhYmxlIn0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQt
aW4gb2JqZWN0XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgY2FzdGVkVGhpcy0+cHV0RGlyZWN0KGV4ZWMtPnZtKCksIElkZW50aWZpZXIoZXhlYywgXCIk
bmFtZVwiKSwgdmFsdWUpO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCEkYXR0cmlidXRlLT5pc1N0YXRpYykgeworICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxUeXBlJiBpbXBsID0gY2FzdGVk
VGhpcy0+aW1wbCgpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKSBp
ZiAkc2V0dGVyUmFpc2VzRXhjZXB0aW9uOworCisgICAgICAgICAgICAgICAgICAgICMgSWYgdGhl
ICJTdHJpY3RUeXBlQ2hlY2tpbmciIGV4dGVuZGVkIGF0dHJpYnV0ZSBpcyBwcmVzZW50LCBhbmQg
dGhlIGF0dHJpYnV0ZSdzIHR5cGUgaXMgYW4KKyAgICAgICAgICAgICAgICAgICAgIyBpbnRlcmZh
Y2UgdHlwZSwgdGhlbiBpZiB0aGUgaW5jb21pbmcgdmFsdWUgZG9lcyBub3QgaW1wbGVtZW50IHRo
YXQgaW50ZXJmYWNlLCBhIFR5cGVFcnJvcgorICAgICAgICAgICAgICAgICAgICAjIGlzIHRocm93
biByYXRoZXIgdGhhbiBzaWxlbnRseSBwYXNzaW5nIE5VTEwgdG8gdGhlIEMrKyBjb2RlLgorICAg
ICAgICAgICAgICAgICAgICAjIFBlciB0aGUgV2ViIElETCBhbmQgRUNNQVNjcmlwdCBzcGVjaWZp
Y2F0aW9ucywgaW5jb21pbmcgdmFsdWVzIGNhbiBhbHdheXMgYmUgY29udmVydGVkIHRvCisgICAg
ICAgICAgICAgICAgICAgICMgYm90aCBzdHJpbmdzIGFuZCBudW1iZXJzLCBzbyBkbyBub3QgdGhy
b3cgVHlwZUVycm9yIGlmIHRoZSBhdHRyaWJ1dGUgaXMgb2YgdGhlc2UgdHlwZXMuCisgICAgICAg
ICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJTdHJpY3RUeXBlQ2hlY2tpbmcifSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJGlt
cGxJbmNsdWRlc3siPHJ1bnRpbWUvRXJyb3IuaD4ifSA9IDE7CisKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG15ICRhcmdUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCRhcmdU
eXBlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmICghdmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhdmFsdWUuaW5oZXJpdHMoSlMk
e2FyZ1R5cGV9OjppbmZvKCkpKSB7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBy
ZXR1cm47XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICB9XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1
cml0eSJ9ICYmICEkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJE
b05vdENoZWNrU2VjdXJpdHkifSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk
aW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hv
dWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhleGVjLCBjYXN0ZWRUaGlzLT5pbXBsKCkpKVxuIik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFzaG91bGRBbGxvd0Fj
Y2Vzc1RvRnJhbWUoZXhlYywgY2FzdGVkVGhpcy0+aW1wbCgpLmZyYW1lKCkpKVxuIik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9O1xuIik7CiAgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKEhhc0N1c3RvbVNldHRlcigkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcykpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBjYXN0ZWRUaGlzLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShleGVjLCB2
YWx1ZSk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCR0eXBlIGVxICJF
dmVudExpc3RlbmVyIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IkpTRXZlbnRMaXN0ZW5lci5oIn0gPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShleGVjKTtcbiIpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG15ICR3aW5kb3dFdmVudExpc3RlbmVyID0gJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNXaW5kb3dFdmVudExpc3RlbmVy
In07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR3aW5kb3dFdmVudExpc3RlbmVy
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW50ZXJmYWNlTmFtZSYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgoKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSBvciAoJGludGVyZmFjZU5h
bWUgZXEgIldvcmtlckdsb2JhbFNjb3BlIikpIGFuZCAkbmFtZSBlcSAib25lcnJvciIpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siSlNFcnJvckhhbmRs
ZXIuaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgaW1wbC5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShjcmVhdGVKU0Vycm9y
SGFuZGxlcihleGVjLCB2YWx1ZSwgY2FzdGVkVGhpcykpO1xuIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsIEdlbmVyYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lckNhbGwoJGNsYXNz
TmFtZSwgJGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUsICR3aW5kb3dFdmVudExpc3RlbmVyKSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25zdHJ1Y3RvciQvKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGNvbnN0cnVjdG9yVHlwZSA9ICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+dHlwZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29uc3Ry
dWN0b3JUeXBlID1+IHMvQ29uc3RydWN0b3IkLy87Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIyAkY29uc3RydWN0b3JUeXBlIH49IC9Db25zdHJ1Y3RvciQvIGluZGljYXRlcyB0aGF0IGl0
IGlzIE5hbWVkQ29uc3RydWN0b3IuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBXZSBk
byBub3QgZ2VuZXJhdGUgdGhlIGhlYWRlciBmaWxlIGZvciBOYW1lZENvbnN0cnVjdG9yIG9mIGNs
YXNzIFhYWFgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzaW5jZSB3ZSBnZW5lcmF0
ZSB0aGUgTmFtZWRDb25zdHJ1Y3RvciBkZWNsYXJhdGlvbiBpbnRvIHRoZSBoZWFkZXIgZmlsZSBv
ZiBjbGFzcyBYWFhYLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkY29uc3RydWN0
b3JUeXBlIG5lICJhbnkiIGFuZCAkY29uc3RydWN0b3JUeXBlICF+IC9OYW1lZCQvKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyIgLiAkY29u
c3RydWN0b3JUeXBlIC4gIi5oIiwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ29uZGl0aW9uYWwifSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIC8vIFNo
YWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yXG4iKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgJiYgJGNsYXNzTmFtZSBl
cSAiSlNibGFoIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEZJWE1FOiBU
aGlzIGJyYW5jaCBuZXZlciBleGVjdXRlcyBhbmQgc2hvdWxkIGJlIHJlbW92ZWQuCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGNhc3RlZFRo
aXMtPnB1dERpcmVjdChleGVjLT52bSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY29uc3RydWN0
b3IsIHZhbHVlKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGNh
c3RlZFRoaXMtPnB1dERpcmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVyKGV4ZWMsIFwiJG5hbWVc
IiksIHZhbHVlKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlJlcGxhY2VhYmxlIn0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBvYmplY3Rc
biIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGNhc3RlZFRoaXMtPnB1dERpcmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVyKGV4ZWMsIFwiJG5h
bWVcIiksIHZhbHVlKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISRhdHRyaWJ1dGUtPmlzU3RhdGljKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRp
bXBsVHlwZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTtcbiIpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpIGlmICRzZXR0ZXJSYWlzZXNFeGNl
cHRpb247Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIElmIHRoZSAiU3RyaWN0VHlw
ZUNoZWNraW5nIiBleHRlbmRlZCBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgYW5kIHRoZSBhdHRyaWJ1
dGUncyB0eXBlIGlzIGFuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbnRlcmZhY2Ug
dHlwZSwgdGhlbiBpZiB0aGUgaW5jb21pbmcgdmFsdWUgZG9lcyBub3QgaW1wbGVtZW50IHRoYXQg
aW50ZXJmYWNlLCBhIFR5cGVFcnJvcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaXMg
dGhyb3duIHJhdGhlciB0aGFuIHNpbGVudGx5IHBhc3NpbmcgTlVMTCB0byB0aGUgQysrIGNvZGUu
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBQZXIgdGhlIFdlYiBJREwgYW5kIEVDTUFT
Y3JpcHQgc3BlY2lmaWNhdGlvbnMsIGluY29taW5nIHZhbHVlcyBjYW4gYWx3YXlzIGJlIGNvbnZl
cnRlZCB0bwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYm90aCBzdHJpbmdzIGFuZCBu
dW1iZXJzLCBzbyBkbyBub3QgdGhyb3cgVHlwZUVycm9yIGlmIHRoZSBhdHRyaWJ1dGUgaXMgb2Yg
dGhlc2UgdHlwZXMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN0cmljdFR5cGVDaGVja2luZyJ9KSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IjxydW50aW1l
L0Vycm9yLmg+In0gPSAxOwotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRh
cmdUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJGFyZ1R5cGUp
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpZiAoIXZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIXZhbHVlLmluaGVyaXRz
KEpTJHthcmdUeXBlfTo6aW5mbygpKSkge1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfTtcbiIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgIiAuIEdl
dE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSkgLiAiIG5hdGl2
ZVZhbHVlKCIgLiBKU1ZhbHVlVG9OYXRpdmUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAidmFsdWUi
KSAuICIpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKVxuIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOworICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAiIC4gR2V0TmF0aXZlVHlw
ZUZyb21TaWduYXR1cmUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKSAuICIgbmF0aXZlVmFsdWUoIiAu
IEpTVmFsdWVUb05hdGl2ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsICJ2YWx1ZSIpIC4gIik7XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKVxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICgkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgkdHlwZSkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXkgQGVudW1WYWx1ZXMgPSAkY29kZUdlbmVyYXRvci0+VmFsaWRF
bnVtVmFsdWVzKCR0eXBlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgQGVu
dW1DaGVja3MgPSAoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCBt
eSAkZW51bVZhbHVlIChAZW51bVZhbHVlcykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAZW51bUNoZWNrcywgIm5hdGl2ZVZhbHVlICE9IFwiJGVudW1WYWx1ZVwi
Iik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaCAoQGltcGxDb250ZW50LCAiICAgIGlmICgiIC4gam9pbigiICYm
ICIsIEBlbnVtQ2hlY2tzKSAuICIpXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaCAoQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRv
ci0+SXNFbnVtVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG15IEBlbnVt
VmFsdWVzID0gJGNvZGVHZW5lcmF0b3ItPlZhbGlkRW51bVZhbHVlcygkdHlwZSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBteSBAZW51bUNoZWNrcyA9ICgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgZm9yZWFjaCBteSAkZW51bVZhbHVlIChAZW51bVZhbHVlcykgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGVudW1DaGVja3MsICJuYXRpdmVWYWx1ZSAhPSBcIiRlbnVt
VmFsdWVcIiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaCAoQGltcGxDb250ZW50LCAiICAgIGlmICgiIC4gam9pbigiICYmICIsIEBlbnVt
Q2hlY2tzKSAuICIpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc3ZnUHJvcGVydHlPckxpc3RQcm9wZXJ0eVR5
cGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5
cGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGlmIChpbXBsLmlzUmVhZE9ubHkoKSkge1xuIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc2V0RE9NRXhj
ZXB0aW9uKGV4ZWMsIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUik7XG4iKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBy
ZXR1cm47XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIH1cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJGltcGxJbmNsdWRlc3siRXhjZXB0aW9uQ29kZS5oIn0gPSAxOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICRzdmdQcm9wZXJ0eU9yTGlzdFByb3BlcnR5VHlwZSYgcG9kSW1w
bCA9IGltcGwucHJvcGVydHlSZWZlcmVuY2UoKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlIGVxICJmbG9hdCIp
IHsgIyBTcGVjaWFsIGNhc2UgZm9yIEpTU1ZHTnVtYmVyCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBwb2RJbXBsID0gbmF0aXZlVmFs
dWU7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHBv
ZEltcGwuc2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUobmF0aXZlVmFsdWUiKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiLCBlYyIpIGlm
ICRzZXR0ZXJSYWlzZXNFeGNlcHRpb247Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIik7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHNldERPTUV4Y2VwdGlvbihleGVj
LCBlYyk7XG4iKSBpZiAkc2V0dGVyUmFpc2VzRXhjZXB0aW9uOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc3Zn
UHJvcGVydHlUeXBlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
JHNldHRlclJhaXNlc0V4Y2VwdGlvbikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghZWMpXG4iKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgaW1wbC5jb21taXRDaGFuZ2UoKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXBsLmNvbW1pdENoYW5nZSgpO1xuIik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eU9yTGlzdFBy
b3BlcnR5VHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5
cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBpZiAoaW1wbC5pc1JlYWRPbmx5KCkpIHtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgTk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJFeGNlcHRpb25Db2RlLmgifSA9IDE7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAkc3ZnUHJvcGVydHlPckxpc3RQcm9wZXJ0eVR5cGUmIHBvZElt
cGwgPSBpbXBsLnByb3BlcnR5UmVmZXJlbmNlKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkc3ZnUHJvcGVydHlPckxpc3RQcm9wZXJ0eVR5cGUgZXEgImZsb2F0IikgeyAjIFNw
ZWNpYWwgY2FzZSBmb3IgSlNTVkdOdW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBwb2RJbXBsID0gbmF0aXZlVmFsdWU7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcG9kSW1wbC5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFt
ZShuYXRpdmVWYWx1ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiLCBlYyIpIGlmICRzZXR0ZXJSYWlzZXNFeGNlcHRpb247CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIpO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIGVjKTtcbiIpIGlmICRzZXR0ZXJSYWlzZXNFeGNlcHRpb247CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc2V0dGVyUmFpc2VzRXhjZXB0aW9u
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmICghZWMpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIGltcGwuY29tbWl0Q2hhbmdlKCk7XG4iKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBteSAoJGZ1bmN0aW9uTmFtZSwgQGFyZ3VtZW50cykgPSAkY29kZUdlbmVyYXRvci0+U2V0
dGVyRXhwcmVzc2lvbihcJWltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklz
VHlwZWRBcnJheVR5cGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKSBhbmQgbm90ICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBlcSAiQXJyYXlCdWZmZXIiKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsICJuYXRpdmVWYWx1ZS5nZXQo
KSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAYXJndW1lbnRzLCAibmF0aXZlVmFsdWUi
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBteSAkaW1wbGVtZW50ZWRCeSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7aW1wbGVtZW50ZWRCeX0uaCJ9ID0gMTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgIiZpbXBs
IikgaWYgISRhdHRyaWJ1dGUtPmlzU3RhdGljOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICIke2ltcGxlbWVudGVkQnl9Ojoke2Z1bmN0aW9uTmFt
ZX0iOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRl
LT5pc1N0YXRpYykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSA9ICIke2ludGVyZmFjZU5hbWV9Ojoke2Z1bmN0aW9uTmFtZX0iOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJpbXBsLiR7ZnVuY3Rpb25OYW1lfSI7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNoaWZ0KEBhcmd1bWVudHMsIEdlbmVyYXRlQ2FsbFdpdGgoJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifSwgXEBpbXBsQ29udGVu
dCwgIiIpKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBhcmd1bWVu
dHMsICJlYyIpIGlmICRzZXR0ZXJSYWlzZXNFeGNlcHRpb247Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7ZnVuY3Rpb25OYW1lfSgiIC4g
am9pbigiLCAiLCBAYXJndW1lbnRzKSAuICIpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBl
Yyk7XG4iKSBpZiAkc2V0dGVyUmFpc2VzRXhjZXB0aW9uOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbXBsLmNvbW1pdENoYW5nZSgpO1xu
Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAg
ICAgbXkgKCRmdW5jdGlvbk5hbWUsIEBhcmd1bWVudHMpID0gJGNvZGVHZW5lcmF0b3ItPlNldHRl
ckV4cHJlc3Npb24oXCVpbXBsSW5jbHVkZXMsICRpbnRlcmZhY2VOYW1lLCAkYXR0cmlidXRlKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5
VHlwZSgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUpIGFuZCBub3QgJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT50eXBlIGVxICJBcnJheUJ1ZmZlciIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBhcmd1bWVudHMsICJuYXRpdmVWYWx1ZS5nZXQoKSIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBh
cmd1bWVudHMsICJuYXRpdmVWYWx1ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG15ICRpbXBsZW1lbnRlZEJ5ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9OworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICRpbXBsSW5jbHVkZXN7IiR7aW1wbGVtZW50ZWRCeX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNoaWZ0KEBhcmd1bWVudHMsICImaW1wbCIpIGlmICEkYXR0cmlidXRl
LT5pc1N0YXRpYzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0g
IiR7aW1wbGVtZW50ZWRCeX06OiR7ZnVuY3Rpb25OYW1lfSI7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5pc1N0YXRpYykgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiJHtpbnRlcmZhY2VOYW1lfTo6JHtmdW5jdGlvbk5h
bWV9IjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJpbXBsLiR7ZnVuY3Rpb25OYW1lfSI7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAifVxuXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiI2VuZGlmXG4iKSBpZiAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmc7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIik7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LQotICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcGxhY2Vh
YmxlQ29uc3RydWN0b3IifSkgewotICAgICAgICAgICAgbXkgJGNvbnN0cnVjdG9yRnVuY3Rpb25O
YW1lID0gInNldEpTIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9yIjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgR2VuZXJhdGVDYWxsV2l0aCgkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9LCBcQGlt
cGxDb250ZW50LCAiIikpOwogCi0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQg
JHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKVxuIik7
Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOyIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFz
c05hbWV9KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDwke2NsYXNzTmFtZX0qPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4iKTsKLSAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFt
ZSBlcSAiRE9NV2luZG93IikgewotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmICghY2FzdGVkVGhpcykge1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIGlmIChKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IGpzRHluYW1pY0Nh
c3Q8SlNET01XaW5kb3dTaGVsbCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSlcbiIpOwot
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgY2FzdGVkVGhp
cyA9IHNoZWxsLT53aW5kb3coKTtcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIH1cbiIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgaWYgKCFjYXN0ZWRUaGlzKSB7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7Ci0gICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7Ci0gICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKLSAgICAgICAgICAgIGlmICgkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1cml0eSJ9KSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91
bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMtPmltcGwoKSkpXG4iKTsK
LSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBpZiAoIXNob3VsZEFsbG93QWNjZXNzVG9GcmFtZShleGVjLCBjYXN0ZWRU
aGlzLT5pbXBsKCkuZnJhbWUoKSkpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGFyZ3VtZW50cywgImVjIikgaWYgJHNldHRlclJhaXNlc0V4Y2VwdGlvbjsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7ZnVuY3Rpb25OYW1lfSgiIC4g
am9pbigiLCAiLCBAYXJndW1lbnRzKSAuICIpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpO1xuIikg
aWYgJHNldHRlclJhaXNlc0V4Y2VwdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAg
cmV0dXJuO1xuIik7Ci0gICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yXG4iKTsKLQotICAg
ICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7Ci0gICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgY2FzdGVkVGhpcy0+cHV0RGlyZWN0KGV4ZWMt
PnZtKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jb25zdHJ1Y3RvciwgdmFsdWUpO1xuIik7Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGRpZSAiTm8gd2F5IHRvIGhhbmRs
ZSBpbnRlcmZhY2Ugd2l0aCBSZXBsYWNlYWJsZUNvbnN0cnVjdG9yIGV4dGVuZGVkIGF0dHJpYnV0
ZTogJGludGVyZmFjZU5hbWUiOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
fVxuXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikg
aWYgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nOworICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiXG4iKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAifVxuXG4iKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZl
RE9NT2JqZWN0LmNwcAppbmRleCBjNDA5YTM3MDEwYjNjMWUzMWYxZjIyMDAwNmZkNzBlMGFhMjZm
YTIyLi4yYjBlMTVkMTY1ZWQxOGQ4NTU2ZTU4ODAwYWI5ZTgzYTFlM2VmYmY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9N
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RBY3RpdmVET01PYmpl
Y3RUYWJsZVZhbHVlc1tdID0KIHsKLSAgICB7ICJleGNpdGluZ0F0dHIiLCBEb250RGVsZXRlIHwg
UmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEFjdGl2ZURPTU9iamVjdEV4Y2l0aW5nQXR0ciksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisg
ICAgeyAiZXhjaXRpbmdBdHRyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgQ3VzdG9tQWNjZXNz
b3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdEFjdGl2ZURPTU9iamVjdEV4Y2l0aW5nQXR0ciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCiAgICAgeyAi
Y29uc3RydWN0b3IiLCBEb250RW51bSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RBY3RpdmVET01P
YmplY3RDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgMCwgMCB9CiB9
OwpAQCAtMTQ1LDEzICsxNDUsMTEgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2Jq
ZWN0RXhjaXRpbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUKIH0KIAogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdEFjdGl2ZURPTU9iamVjdCogZG9tT2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOwotICAgIGlmICghZG9tT2JqZWN0KQotICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKICAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dB
Y2Nlc3NUb0RPTVdpbmRvdyhleGVjLCBkb21PYmplY3QtPmltcGwoKSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmdldENvbnN0cnVjdG9yKGV4ZWMtPnZtKCksIGRv
bU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuY3BwCmluZGV4IGFlOTI4YTliYTFkMTc5NDQ4YmYzODEyNWJjNTE1ZDc2NTY4OTI4MGUuLjMy
NWVmMmI3NTJkMDA4YmFlNGQzOWE5NTAzZTlhZmI0YTdkMzk0YjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyLmNwcApAQCAtMTQ0LDEzICsxNDQsMTEgQEAgYm9vbCBKU1Rlc3RD
dXN0b21OYW1lZEdldHRlcjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3QKICAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0
aGlzT2JqZWN0LCBleGVjLCBpbmRleCwgc2xvdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKLSAgICBpZiAoIWRvbU9iamVjdCkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RDdXN0b21OYW1lZEdldHRl
cjo6Z2V0Q29uc3RydWN0b3IoZXhlYy0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYjdiODQ5MzIw
NGQ5NTNiNjBkYjQ5NzFlZmIxMmZkZTk2NjEzZmEyNC4uMGVmZjQ4YmRlODNlOTYyZTk3YjEwNzU0
OTdjZDE4NGYzYTdlYzllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcApA
QCAtMzYsOCArMzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBIYXNo
VGFibGVWYWx1ZSBKU1Rlc3RFdmVudENvbnN0cnVjdG9yVGFibGVWYWx1ZXNbXSA9CiB7Ci0gICAg
eyAiYXR0cjEiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEV2ZW50Q29uc3Ry
dWN0b3JBdHRyMSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KDApIH0sCi0gICAgeyAiYXR0cjIiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIE5v
SW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisgICAgeyAiYXR0cjEiLCBEb250
RGVsZXRlIHwgUmVhZE9ubHkgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RXZlbnRDb25z
dHJ1Y3RvckF0dHIxKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSwKKyAgICB7ICJhdHRyMiIsIERvbnREZWxldGUgfCBSZWFkT25seSB8
IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjIpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAog
ICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVudW0gfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RXZl
bnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCAw
LCAwIH0KIH07CkBAIC0xOTMsMTMgKzE5MywxMSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVu
dENvbnN0cnVjdG9yQXR0cjIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90Qgog
fQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU1Rlc3RFdmVudENvbnN0cnVjdG9yKiBk
b21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3IqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwotICAgIGlmICghZG9tT2JqZWN0KQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdG9yKGV4ZWMtPnZtKCksIGRvbU9i
amVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKaW5k
ZXggYzgwNjk4YmJiYjgwMGE5OTkwZjZmMjE5YWYxYWI1ZDNlNjJlOGMxZS4uZTA2ZTcxYjE0MWEy
ZDIyZGY2MTEwNDdhMjU4NTI0NGUzZTA2OTE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3Bw
CkBAIC0xNjksMTMgKzE2OSwxMSBAQCBib29sIEpTVGVzdEV2ZW50VGFyZ2V0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZQogICAgIHJldHVy
biBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIGV4ZWMsIGluZGV4
LCBzbG90KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50VGFyZ2V0Q29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNUZXN0RXZlbnRUYXJnZXQqIGRvbU9iamVj
dCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXQqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOwotICAgIGlmICghZG9tT2JqZWN0KQotICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEV2ZW50
VGFyZ2V0OjpnZXRDb25zdHJ1Y3RvcihleGVjLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVj
dCgpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKaW5kZXggZGViYzhlMTk1MzRmZDZjMjE3
ODczMDA3OTkxMDZlOTRjOTUwODZmMC4uNWI2MWZjMTY2ZTk1NGRhNjFkZjU2MmE5ZWRiMGFiMGY1
MDBhMTAwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RXhjZXB0
aW9uVGFibGVWYWx1ZXNbXSA9CiB7Ci0gICAgeyAibmFtZSIsIERvbnREZWxldGUgfCBSZWFkT25s
eSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0RXhjZXB0aW9uTmFtZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisgICAgeyAibmFtZSIsIERvbnREZWxl
dGUgfCBSZWFkT25seSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RFeGNlcHRpb25OYW1l
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
MCkgfSwKICAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9ubHksIE5vSW50cmlu
c2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCAw
LCAwIH0KIH07CkBAIC0xMzMsMTMgKzEzMywxMSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNl
cHRpb25OYW1lKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuYwog
fQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgSlNUZXN0RXhjZXB0aW9uKiBkb21PYmplY3QgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdEV4Y2VwdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0g
ICAgaWYgKCFkb21PYmplY3QpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RXhjZXB0aW9uOjpnZXRDb25zdHJ1
Y3RvcihleGVjLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAppbmRleCBjYzMyNjQ3ZDY3OWEyNDc2
MWM3ZGI0NWY5MzUxMWIxNjk0MTJkNGI2Li40NTM3YmU4ZDUzZWY2ZmFmMmQ4NTU4NTc1Zjc5N2Y4
MzY2YjZkMTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCkBA
IC0xMTcsMTMgKzExNywxMSBAQCBib29sIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmdldE93
blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqCiAgICAgcmV0dXJuIGdl
dFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLCBCYXNlPihleGVjLCBK
U1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmpl
Y3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwotICAgIGlmICghZG9t
T2JqZWN0KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmdldENvbnN0cnVj
dG9yKGV4ZWMtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlLmNwcAppbmRleCBhNDA3NzU3NWFkYzk4YWE4MmJiOTUxZjMyMzk4NmQyNTQxYTRh
YTI2Li41NWYwNWJjYzRhOWRmYTZjYTI2MDUzNDI2ZTI3YjZlODQ4OGQ5N2RhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlLmNwcApAQCAtNTIsMjggKzUyLDI4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0
YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJbnRlcmZhY2VUYWJsZVZhbHVlc1tdID0K
IHsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7
ICJpbXBsZW1lbnRzU3RyMSIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50
ZXJmYWNlSW1wbGVtZW50c1N0cjEpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAorICAgIHsgImltcGxlbWVudHNTdHIxIiwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5IHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZUlt
cGxlbWVudHNTdHIxKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5B
QkxFKENvbmRpdGlvbjIzKQotICAgIHsgImltcGxlbWVudHNTdHIyIiwgRG9udERlbGV0ZSwgTm9J
bnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1l
bnRzU3RyMikgfSwKKyAgICB7ICJpbXBsZW1lbnRzU3RyMiIsIERvbnREZWxldGUgfCBDdXN0b21B
Y2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjIpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RJbnRl
cmZhY2VJbXBsZW1lbnRzU3RyMikgfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikg
fHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgImltcGxlbWVudHNTdHIzIiwgRG9udERlbGV0
ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjMpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RJbnRlcmZhY2VJ
bXBsZW1lbnRzU3RyMykgfSwKKyAgICB7ICJpbXBsZW1lbnRzU3RyMyIsIERvbnREZWxldGUgfCBD
dXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjMpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMykgfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRp
b24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgImltcGxlbWVudHNOb2RlIiwgRG9u
dERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RJbnRl
cmZhY2VJbXBsZW1lbnRzTm9kZSkgfSwKKyAgICB7ICJpbXBsZW1lbnRzTm9kZSIsIERvbnREZWxl
dGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzTm9kZSkgfSwKICNlbmRpZgogI2lmIEVOQUJMRShD
b25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHsgInN1cHBsZW1lbnRhbFN0
cjEiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZVN1cHBsZW1l
bnRhbFN0cjEpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPigwKSB9LAorICAgIHsgInN1cHBsZW1lbnRhbFN0cjEiLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFs
U3RyMSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KDApIH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25k
aXRpb24xMikKLSAgICB7ICJzdXBwbGVtZW50YWxTdHIyIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5z
aWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRh
bFN0cjIpIH0sCisgICAgeyAic3VwcGxlbWVudGFsU3RyMiIsIERvbnREZWxldGUgfCBDdXN0b21B
Y2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMiksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIpIH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9u
MTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICB7ICJzdXBwbGVtZW50YWxTdHIzIiwgRG9u
dERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMpIH0sCisgICAgeyAic3VwcGxlbWVudGFsU3RyMyIsIERv
bnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlU3VwcGxlbWVu
dGFsU3RyMyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMpIH0sCiAjZW5kaWYKICNp
ZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICB7ICJzdXBw
bGVtZW50YWxOb2RlIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlU3VwcGxlbWVu
dGFsTm9kZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUpIH0sCisgICAgeyAic3Vw
cGxlbWVudGFsTm9kZSIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMs
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5v
ZGUpIH0sCiAjZW5kaWYKICAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9ubHks
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKICAgICB7IDAsIDAsIE5vSW50
cmluc2ljLCAwLCAwIH0KQEAgLTQzMywxMyArNDMzLDExIEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBzCiAKICNlbmRpZgogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdEludGVyZmFjZSogZG9tT2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOwotICAgIGlmICghZG9tT2JqZWN0KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEludGVyZmFjZTo6
Z2V0Q29uc3RydWN0b3IoZXhlYy0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXgg
YjdiODhjOGM3MDM5MzJkM2FhNDU1Y2NmNDk1YmNmMzMwZTJlNjI3Yy4uOTIxZWVmOWY2YjIwZDc2
ZDU4ODFmY2ZiMDk4NDIzMzVlYWIxM2UzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtMTI4LDEzICsxMjgsMTEgQEAgYm9vbCBKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXQKICAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIsIEJhc2U+KGV4ZWMsIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUYWJs
ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGRvbU9i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgaWYgKCFkb21PYmplY3QpCi0gICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Z2V0Q29uc3RydWN0b3IoZXhlYy0+dm0o
KSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggNDc2MjkyMDhiN2ExOWZlNDQyOTk5NmMyZWMxYTAwNTFmZTYx
ZjhhNC4uZjQ2ZWQwZGJlZGM1N2M5OTA2NjI2ZmQ5ZjBhODFjYzZhMDRiMzdiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcApAQCAtMTY0LDEzICsxNjQsMTEgQEAgYm9vbCBK
U1Rlc3ROYW1lZENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVj
dCwgRXhlY1N0YXRlKiBleGUKICAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdE5h
bWVkQ29uc3RydWN0b3IsIEJhc2U+KGV4ZWMsIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JUYWJsZSwg
dGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIEpTVGVzdE5hbWVkQ29uc3RydWN0b3IqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
Ci0gICAgaWYgKCFkb21PYmplY3QpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0b3IoZXhlYy0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9kZS5jcHAKaW5kZXggMjhmMjRiNjljZDljYTM5ODdkZjlmMjM0ZGEwODFlMjJiMTIz
ZjMzMy4uMzI4NmZmMWRlZGM3Njg2OWY3NzZmYjE3MGJmZDYyZWU5MDNjOTllZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2Rl
LmNwcApAQCAtMTIxLDEzICsxMjEsMTEgQEAgYm9vbCBKU1Rlc3ROb2RlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU4KICAgICBy
ZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdE5vZGUsIEJhc2U+KGV4ZWMsIEpTVGVzdE5v
ZGVUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0Tm9kZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUganNUZXN0Tm9kZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdE5v
ZGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9kZSo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgaWYgKCFkb21PYmplY3QpCi0gICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0
Tm9kZTo6Z2V0Q29uc3RydWN0b3IoZXhlYy0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3Qo
KSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDg2ZTllZmY2Mzc4NTc5YzNhY2M5NzUyMzg1N2M5YmI4
MjAwNzNmZGEuLmI2OTVjMWIxYzEzZjY1ZmFjNzE0ZmJkMWQyNWYxNTRmMWU1ZWZjN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouY3BwCkBAIC03Nyw1MyArNzcsNTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqVGFibGVWYWx1ZXNbXSA9CiB7Ci0gICAgeyAi
cmVhZE9ubHlMb25nQXR0ciIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2Jq
UmVhZE9ubHlMb25nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCi0gICAgeyAicmVhZE9ubHlTdHJpbmdBdHRyIiwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0dHIpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAot
ICAgIHsgInJlYWRPbmx5VGVzdE9iakF0dHIiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIE5vSW50
cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAorICAgIHsgInJlYWRPbmx5TG9uZ0F0
dHIiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMs
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqUmVhZE9ubHlMb25nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisgICAgeyAicmVhZE9ubHlTdHJpbmdBdHRyIiwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5IHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlYWRP
bmx5U3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0sCisgICAgeyAicmVhZE9ubHlUZXN0T2JqQXR0ciIsIERvbnREZWxl
dGUgfCBSZWFkT25seSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWFkT25seVRl
c3RPYmpBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oMCkgfSwKICAgICB7ICJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZyIsIERvbnRF
bnVtLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9y
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0T2JqVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcikgfSwKLSAg
ICB7ICJlbnVtQXR0ciIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakVudW1BdHRyKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqRW51bUF0dHIpIH0sCi0gICAgeyAiYnl0ZUF0dHIiLCBEb250RGVsZXRlLCBOb0ludHJp
bnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpCeXRlQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakJ5dGVBdHRyKSB9LAotICAgIHsgIm9jdGV0QXR0
ciIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iak9jdGV0QXR0ciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iak9jdGV0
QXR0cikgfSwKLSAgICB7ICJzaG9ydEF0dHIiLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpT
aG9ydEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RPYmpTaG9ydEF0dHIpIH0sCi0gICAgeyAidW5zaWduZWRTaG9ydEF0
dHIiLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0ciksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dE9ialVuc2lnbmVkU2hvcnRBdHRyKSB9LAotICAgIHsgImxvbmdBdHRyIiwgRG9udERlbGV0ZSwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqTG9uZ0F0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpMb25nQXR0cikgfSwKLSAgICB7ICJs
b25nTG9uZ0F0dHIiLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpMb25nTG9uZ0F0dHIpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RPYmpMb25nTG9uZ0F0dHIpIH0sCi0gICAgeyAidW5zaWduZWRMb25nTG9uZ0F0dHIiLCBE
b250RGVsZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9i
alVuc2lnbmVkTG9uZ0xvbmdBdHRyKSB9LAotICAgIHsgInN0cmluZ0F0dHIiLCBEb250RGVsZXRl
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpTdHJpbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqU3RyaW5nQXR0cikgfSwKLSAg
ICB7ICJ0ZXN0T2JqQXR0ciIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialRlc3RPYmpBdHRy
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0T2JqVGVzdE9iakF0dHIpIH0sCi0gICAgeyAiWE1MT2JqQXR0ciIsIERvbnREZWxl
dGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ialhNTE9iakF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKSB9LAot
ICAgIHsgImNyZWF0ZSIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNyZWF0ZSksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dE9iakNyZWF0ZSkgfSwKLSAgICB7ICJyZWZsZWN0ZWRTdHJpbmdBdHRyIiwgRG9udERlbGV0ZSwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxlY3RlZFN0
cmluZ0F0dHIpIH0sCi0gICAgeyAicmVmbGVjdGVkSW50ZWdyYWxBdHRyIiwgRG9udERlbGV0ZSwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqUmVmbGVjdGVk
SW50ZWdyYWxBdHRyKSB9LAotICAgIHsgInJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyIiwg
RG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cikgfSwKLSAgICB7ICJyZWZs
ZWN0ZWRCb29sZWFuQXR0ciIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZEJv
b2xlYW5BdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIpIH0sCi0gICAgeyAicmVm
bGVjdGVkVVJMQXR0ciIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0
dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKSB9LAotICAgIHsgInJlZmxlY3RlZFN0cmlu
Z0F0dHIiLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cikgfSwKLSAgICB7ICJyZWZsZWN0ZWRDdXN0b21J
bnRlZ3JhbEF0dHIiLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21J
bnRlZ3JhbEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIpIH0sCi0g
ICAgeyAicmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIiLCBEb250RGVsZXRlLCBOb0ludHJpbnNp
YywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3Rv
bUJvb2xlYW5BdHRyKSB9LAotICAgIHsgInJlZmxlY3RlZEN1c3RvbVVSTEF0dHIiLCBEb250RGVs
ZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqUmVm
bGVjdGVkQ3VzdG9tVVJMQXR0cikgfSwKLSAgICB7ICJ0eXBlZEFycmF5QXR0ciIsIERvbnREZWxl
dGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ialR5cGVkQXJyYXlBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0
dHIpIH0sCi0gICAgeyAiYXR0cldpdGhHZXR0ZXJFeGNlcHRpb24iLCBEb250RGVsZXRlLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakF0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKSB9LAotICAgIHsgImF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIiwgRG9udERl
bGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24pLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpB
dHRyV2l0aFNldHRlckV4Y2VwdGlvbikgfSwKLSAgICB7ICJzdHJpbmdBdHRyV2l0aEdldHRlckV4
Y2VwdGlvbiIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0T2JqU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pIH0sCi0g
ICAgeyAic3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iLCBEb250RGVsZXRlLCBOb0ludHJp
bnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialN0cmluZ0F0
dHJXaXRoU2V0dGVyRXhjZXB0aW9uKSB9LAotICAgIHsgImN1c3RvbUF0dHIiLCBEb250RGVsZXRl
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpDdXN0b21BdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQ3VzdG9tQXR0cikgfSwKLSAg
ICB7ICJ3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUiLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRy
aWJ1dGUpIH0sCi0gICAgeyAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUiLCBE
b250RGVsZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJp
YnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKSB9LAot
ICAgIHsgIndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyIsIERvbnREZWxldGUsIE5vSW50
cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialdpdGhT
Y3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcykgfSwKLSAgICB7ICJ3aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZVJhaXNlcyIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMpIH0sCi0gICAgeyAid2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZSIsIERvbnREZWxldGUsIE5vSW50
cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1
dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0
cmlidXRlKSB9LAotICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVBdHRyaWJ1dGVSYWlzZXMiLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcykg
fSwKLSAgICB7ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNw
YWNlc0F0dHJpYnV0ZSIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1
dGUpIH0sCi0gICAgeyAid2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSIs
IERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3Rh
Y2tBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0
cmlidXRlKSB9LAorICAgIHsgImVudW1BdHRyIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29y
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpFbnVtQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakVudW1BdHRyKSB9LAorICAgIHsg
ImJ5dGVBdHRyIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpC
eXRlQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdE9iakJ5dGVBdHRyKSB9LAorICAgIHsgIm9jdGV0QXR0ciIsIERvbnRE
ZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqT2N0ZXRBdHRyKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
T2JqT2N0ZXRBdHRyKSB9LAorICAgIHsgInNob3J0QXR0ciIsIERvbnREZWxldGUgfCBDdXN0b21B
Y2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU2hvcnRBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqU2hvcnRBdHRyKSB9
LAorICAgIHsgInVuc2lnbmVkU2hvcnRBdHRyIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29y
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialVuc2lnbmVkU2hv
cnRBdHRyKSB9LAorICAgIHsgImxvbmdBdHRyIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29y
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpMb25nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakxvbmdBdHRyKSB9LAorICAgIHsg
ImxvbmdMb25nQXR0ciIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMs
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqTG9uZ0xvbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyKSB9LAorICAgIHsgInVuc2ln
bmVkTG9uZ0xvbmdBdHRyIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNp
YywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRy
KSB9LAorICAgIHsgInN0cmluZ0F0dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5v
SW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ialN0cmluZ0F0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyKSB9LAorICAgIHsg
InRlc3RPYmpBdHRyIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpUZXN0T2JqQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKSB9LAorICAgIHsgIlhNTE9iakF0
dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialhNTE9iakF0
dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKSB9LAorICAgIHsgImNyZWF0ZSIsIERvbnREZWxldGUg
fCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ3JlYXRlKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQ3JlYXRl
KSB9LAorICAgIHsgInJlZmxlY3RlZFN0cmluZ0F0dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNj
ZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRTdHJpbmdBdHRyKSB9LAorICAgIHsgInJlZmxlY3RlZEludGVncmFsQXR0ciIsIERvbnRE
ZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxB
dHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKSB9LAorICAgIHsgInJlZmxlY3Rl
ZFVuc2lnbmVkSW50ZWdyYWxBdHRyIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxl
Y3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKSB9LAorICAgIHsgInJlZmxlY3RlZEJvb2xlYW5BdHRy
IiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRC
b29sZWFuQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKSB9LAorICAgIHsgInJl
ZmxlY3RlZFVSTEF0dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2lj
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9ialJlZmxlY3RlZFVSTEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKSB9LAorICAg
IHsgInJlZmxlY3RlZFN0cmluZ0F0dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5v
SW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJp
bmdBdHRyKSB9LAorICAgIHsgInJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ciIsIERvbnREZWxl
dGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdy
YWxBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKSB9LAorICAgIHsg
InJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29y
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJl
ZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKSB9LAorICAgIHsgInJlZmxlY3RlZEN1c3RvbVVSTEF0
dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3Rl
ZEN1c3RvbVVSTEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKSB9LAorICAg
IHsgInR5cGVkQXJyYXlBdHRyIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJp
bnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpUeXBlZEFycmF5QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialR5cGVkQXJyYXlBdHRyKSB9LAorICAg
IHsgImF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29y
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakF0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uKSB9LAorICAgIHsgImF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIiwg
RG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpBdHRyV2l0aFNldHRl
ckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKSB9LAorICAgIHsg
InN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vz
c29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKSB9LAorICAgIHsgInN0cmluZ0F0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJp
bnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialN0cmluZ0F0
dHJXaXRoU2V0dGVyRXhjZXB0aW9uKSB9LAorICAgIHsgImN1c3RvbUF0dHIiLCBEb250RGVsZXRl
IHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakN1c3RvbUF0dHIpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpD
dXN0b21BdHRyKSB9LAorICAgIHsgIndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZSIsIERvbnREZWxl
dGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmli
dXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlKSB9LAorICAgIHsgIndpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vz
c29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKSB9LAorICAgIHsg
IndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nl
c3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSB9LAorICAgIHsgIndpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFj
Y2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0
ZVJhaXNlcyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFp
c2VzKSB9LAorICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVB
dHRyaWJ1dGUiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RP
YmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKSB9LAor
ICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVS
YWlzZXMiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFp
c2VzKSB9LAorICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVX
aXRoU3BhY2VzQXR0cmlidXRlIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJp
bnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNl
c0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0
U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKSB9LAorICAgIHsgIndpdGhTY3JpcHRBcmd1bWVudHNB
bmRDYWxsU3RhY2tBdHRyaWJ1dGUiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50
cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKSB9LAogI2lmIEVO
QUJMRShDb25kaXRpb24xKQotICAgIHsgImNvbmRpdGlvbmFsQXR0cjEiLCBEb250RGVsZXRlLCBO
b0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRy
MSkgfSwKKyAgICB7ICJjb25kaXRpb25hbEF0dHIxIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vz
c29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyMSkgfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29u
ZGl0aW9uMikKLSAgICB7ICJjb25kaXRpb25hbEF0dHIyIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5z
aWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyMiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIpIH0sCisg
ICAgeyAiY29uZGl0aW9uYWxBdHRyMiIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9J
bnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIp
IH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIp
Ci0gICAgeyAiY29uZGl0aW9uYWxBdHRyMyIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjMpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKSB9LAorICAgIHsgImNv
bmRpdGlvbmFsQXR0cjMiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2lj
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9iakNvbmRpdGlvbmFsQXR0cjMpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKSB9LAogI2Vu
ZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCiAgICAgeyAiY29uZGl0aW9uYWxBdHRyNCIsIERv
bnRFbnVtLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IpIH0sCkBAIC0xMzQsMjYgKzEzNCwyNiBA
QCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqVGFibGVWYWx1ZXNbXSA9CiAj
aWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQogICAgIHsgImNvbmRp
dGlvbmFsQXR0cjYiLCBEb250RW51bSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNv
bnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKSB9LAogI2Vu
ZGlmCi0gICAgeyAiY2FjaGVkQXR0cmlidXRlMSIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9J
bnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCi0gICAgeyAiY2FjaGVkQXR0cmlidXRl
MiIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ2FjaGVkQXR0cmlidXRl
MiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KDApIH0sCi0gICAgeyAiYW55QXR0cmlidXRlIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2Jq
QW55QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKSB9LAotICAgIHsgImNvbnRlbnRE
b2N1bWVudCIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29udGVudERv
Y3VtZW50KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oMCkgfSwKLSAgICB7ICJtdXRhYmxlUG9pbnQiLCBEb250RGVsZXRlLCBOb0ludHJpbnNp
YywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpNdXRhYmxlUG9pbnQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQpIH0sCi0gICAgeyAiaW1t
dXRhYmxlUG9pbnQiLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpJbW11dGFibGVQb2ludCks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9iakltbXV0YWJsZVBvaW50KSB9LAotICAgIHsgInN0cmF3YmVycnkiLCBEb250RGVs
ZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpTdHJhd2JlcnJ5KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqU3RyYXdiZXJyeSkgfSwK
LSAgICB7ICJzdHJpY3RGbG9hdCIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialN0cmljdEZs
b2F0KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqU3RyaWN0RmxvYXQpIH0sCi0gICAgeyAiZGVzY3JpcHRpb24iLCBEb250
RGVsZXRlIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakRlc2NyaXB0aW9uKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKLSAgICB7
ICJpZCIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iaklkKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqSWQpIH0sCi0g
ICAgeyAiaGFzaCIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqSGFzaCks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDAp
IH0sCi0gICAgeyAicmVwbGFjZWFibGVBdHRyaWJ1dGUiLCBEb250RGVsZXRlLCBOb0ludHJpbnNp
YywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRl
KSB9LAotICAgIHsgIm51bGxhYmxlRG91YmxlQXR0cmlidXRlIiwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCi0gICAgeyAi
bnVsbGFibGVMb25nQXR0cmlidXRlIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNp
YywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAotICAgIHsgIm51bGxhYmxlQm9vbGVhbkF0
dHJpYnV0ZSIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTnVsbGFibGVC
b29sZWFuQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oMCkgfSwKLSAgICB7ICJudWxsYWJsZVN0cmluZ0F0dHJpYnV0ZSIsIERv
bnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1
dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PigwKSB9LAotICAgIHsgIm51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlIiwgRG9udERlbGV0
ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RP
YmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSkgfSwKLSAgICB7ICJudWxsYWJsZVN0cmlu
Z1ZhbHVlIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1ZSks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9iak51bGxhYmxlU3RyaW5nVmFsdWUpIH0sCi0gICAgeyAiYXR0cmlidXRlIiwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpBdHRyaWJ1dGUpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAotICAgIHsg
ImF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMs
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRo
UmVzZXJ2ZWRFbnVtVHlwZSkgfSwKKyAgICB7ICJjYWNoZWRBdHRyaWJ1dGUxIiwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5IHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNhY2hlZEF0dHJp
YnV0ZTEpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPigwKSB9LAorICAgIHsgImNhY2hlZEF0dHJpYnV0ZTIiLCBEb250RGVsZXRlIHwgUmVhZE9u
bHkgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMiksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0s
CisgICAgeyAiYW55QXR0cmlidXRlIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUpIH0sCisgICAg
eyAiY29udGVudERvY3VtZW50IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgQ3VzdG9tQWNjZXNz
b3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9iakNvbnRlbnREb2N1bWVudCksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisgICAgeyAibXV0YWJsZVBv
aW50IiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpNdXRhYmxl
UG9pbnQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQpIH0sCisgICAgeyAiaW1tdXRhYmxlUG9pbnQi
LCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakltbXV0YWJsZVBv
aW50KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqSW1tdXRhYmxlUG9pbnQpIH0sCisgICAgeyAic3RyYXdiZXJyeSIsIERv
bnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU3RyYXdiZXJyeSksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
VGVzdE9ialN0cmF3YmVycnkpIH0sCisgICAgeyAic3RyaWN0RmxvYXQiLCBEb250RGVsZXRlIHwg
Q3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialN0cmljdEZsb2F0KSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqU3Ry
aWN0RmxvYXQpIH0sCisgICAgeyAiZGVzY3JpcHRpb24iLCBEb250RGVsZXRlIHwgUmVhZE9ubHkg
fCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqRGVzY3JpcHRpb24pLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAorICAgIHsg
ImlkIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpJZCksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
VGVzdE9iaklkKSB9LAorICAgIHsgImhhc2giLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBDdXN0
b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqSGFzaCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisgICAgeyAicmVwbGFjZWFibGVB
dHRyaWJ1dGUiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJl
cGxhY2VhYmxlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUpIH0sCisg
ICAgeyAibnVsbGFibGVEb3VibGVBdHRyaWJ1dGUiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBD
dXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTnVsbGFibGVEb3VibGVBdHRyaWJ1dGUpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9
LAorICAgIHsgIm51bGxhYmxlTG9uZ0F0dHJpYnV0ZSIsIERvbnREZWxldGUgfCBSZWFkT25seSB8
IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1dGUpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9
LAorICAgIHsgIm51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZSIsIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRyaWJ1
dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PigwKSB9LAorICAgIHsgIm51bGxhYmxlU3RyaW5nQXR0cmlidXRlIiwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5IHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iak51bGxhYmxlU3RyaW5nQXR0
cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oMCkgfSwKKyAgICB7ICJudWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSIsIERvbnRE
ZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFi
bGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSkgfSwK
KyAgICB7ICJudWxsYWJsZVN0cmluZ1ZhbHVlIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29y
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1ZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqTnVsbGFibGVT
dHJpbmdWYWx1ZSkgfSwKKyAgICB7ICJhdHRyaWJ1dGUiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkg
fCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQXR0cmlidXRlKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKKyAgICB7ICJh
dHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3Nv
ciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RP
YmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSkgfSwKICAgICB7ICJjb25zdHJ1Y3RvciIs
IERvbnRFbnVtIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNvbnN0cnVjdG9yKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKICAg
ICB7IDAsIDAsIE5vSW50cmluc2ljLCAwLCAwIH0KIH07CkBAIC0xMzA3LDEzICsxMzA3LDExIEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU1Rlc3RPYmoqIGRvbU9iamVjdCA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsK
LSAgICBpZiAoIWRvbU9iamVjdCkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RPYmo6OmdldENvbnN0cnVjdG9y
KGV4ZWMtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCmluZGV4IDE0NWQ0OWE4Nzk4YjFi
ODM1ZThmM2JkZmNmYmViY2JjNTczZmMzOGMuLjEzNDg2MmQwODYxY2EyZmQ5ZTI3YWM4OGNmMmQ2
OTUzN2I3YTBlZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cy5jcHAKQEAgLTE5MiwxMyArMTkyLDExIEBAIGJvb2wgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yczo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0CiAgICAg
cmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLCBC
YXNlPihleGVjLCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzVGFibGUsIHRoaXNPYmplY3Qs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiBkb21PYmplY3QgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOwotICAgIGlmICghZG9tT2JqZWN0KQotICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnM6OmdldENvbnN0cnVjdG9yKGV4ZWMtPnZtKCksIGRvbU9iamVjdC0+
Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAppbmRleCA0ZmNmOWU2NGRjYjIxODAzZjc5Y2Ez
MzQyNDY5MjlkYWFiY2VkMTYzLi4wNGRlYWYxMGEyMGE1Zjg1MGQ2ODVjYjU3MDgzZTRmMGMwN2U1
MjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlLmNwcApAQCAtMzksMTEgKzM5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZVRhYmxlVmFsdWVzW10gPQogewotICAgIHsgInZhbHVlIiwgRG9udERlbGV0ZSwgTm9J
bnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZSkgfSwKLSAgICB7ICJyZWFkb25seVZhbHVl
IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKLSAgICB7ICJjYWNoZWRWYWx1ZSIsIERvbnRE
ZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZh
bHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUpIH0s
Ci0gICAgeyAicG9ydHMiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKLSAgICB7ICJjYWNoZWRSZWFkb25s
eVZhbHVlIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKKyAgICB7ICJ2YWx1ZSIs
IERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlVmFsdWUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VWYWx1ZSkgfSwKKyAgICB7ICJyZWFkb25seVZhbHVlIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
IHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZVJlYWRvbmx5VmFsdWUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9LAorICAgIHsgImNhY2hlZFZhbHVlIiwgRG9udERlbGV0ZSB8
IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VDYWNoZWRWYWx1ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hl
ZFZhbHVlKSB9LAorICAgIHsgInBvcnRzIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgQ3VzdG9t
QWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRz
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
MCkgfSwKKyAgICB7ICJjYWNoZWRSZWFkb25seVZhbHVlIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
IHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVu
dW0gfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPigwKSB9LAogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIDAsIDAgfQogfTsKQEAg
LTIwMCwxMyArMjAwLDExIEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUoRXhlY1N0YXRlCiB9CiAKIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKLSAgICBpZiAoIWRvbU9iamVjdCkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKGV4ZWMtPnZtKCksIGRvbU9i
amVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKaW5kZXggYzM4
Nzc1ZmVhOGE0Mzk5MWMwZmI4ZGJiZGExNTUxNjQxOTdmZmY0NS4uZTk0NDIxY2E1ZjdjN2FlMGRk
ZTRjNWY4NjhlOWY1NDA1NTdhNTA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCkBAIC00NywxMiAr
NDcsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFs
dWUgSlNUZXN0VHlwZWRlZnNUYWJsZVZhbHVlc1tdID0KIHsKLSAgICB7ICJ1bnNpZ25lZExvbmdM
b25nQXR0ciIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9u
Z0F0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKSB9LAotICAgIHsgImlt
bXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5
cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNJbW11
dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUpIH0sCi0gICAgeyAiYXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24iLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNBdHRyV2l0aEdldHRlckV4Y2VwdGlvbikgfSwKLSAgICB7
ICJhdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVk
ZWZzQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uKSB9LAotICAgIHsgInN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIiwgRG9u
dERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlv
biksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pIH0sCi0gICAg
eyAic3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iLCBEb250RGVsZXRlLCBOb0ludHJpbnNp
YywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNT
dHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbikgfSwKKyAgICB7ICJ1bnNpZ25lZExvbmdMb25n
QXR0ciIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNV
bnNpZ25lZExvbmdMb25nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIp
IH0sCisgICAgeyAiaW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlIiwgRG9udERlbGV0ZSB8
IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RUeXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVl
KSB9LAorICAgIHsgImF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIiwgRG9udERlbGV0ZSB8IEN1c3Rv
bUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0VHlwZWRlZnNBdHRyV2l0aEdldHRlckV4Y2VwdGlvbikgfSwKKyAgICB7ICJhdHRyV2l0
aFNldHRlckV4Y2VwdGlvbiIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5z
aWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFR5cGVkZWZzQXR0cldp
dGhTZXR0ZXJFeGNlcHRpb24pIH0sCisgICAgeyAic3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24iLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzU3Ry
aW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uKSB9LAorICAgIHsgInN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9u
IiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RUeXBlZGVmc1N0cmlu
Z0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0aFNl
dHRlckV4Y2VwdGlvbikgfSwKICAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9u
bHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAogICAgIHsgMCwgMCwgTm9J
bnRyaW5zaWMsIDAsIDAgfQogfTsKQEAgLTI2NiwxMyArMjY2LDExIEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBl
eGVjLCBFbmNvCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNUZXN0VHlwZWRlZnMqIGRvbU9iamVjdCA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOwotICAgIGlmICghZG9tT2JqZWN0KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFR5cGVkZWZzOjpnZXRD
b25zdHJ1Y3RvcihleGVjLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0
dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNh
dHRyaWJ1dGUuY3BwCmluZGV4IDI2Mzk3M2ZlMDVkNmYzNjcwYTMxZjIzYWJlOTRkZGFmYTA1ZjQ0
YmMuLmZiYzYyOTlkOGFkOWFkNjFiMWRlNGE3NzE0ZDU4ZGIzMWZkMDZiZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRl
LmNwcApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU2F0dHJpYnV0ZVRhYmxlVmFsdWVzW10gPQogewotICAgIHsgInJl
YWRvbmx5IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc2F0dHJpYnV0ZVJlYWRvbmx5
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
MCkgfSwKKyAgICB7ICJyZWFkb25seSIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IEN1c3RvbUFj
Y2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc2F0dHJpYnV0ZVJlYWRvbmx5KSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKICAgICB7ICJjb25zdHJ1Y3Rv
ciIsIERvbnRFbnVtIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzYXR0cmlidXRlQ29uc3RydWN0b3IpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9
LAogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIDAsIDAgfQogfTsKQEAgLTEzMywxMyArMTMzLDEx
IEBAIEVuY29kZWRKU1ZhbHVlIGpzYXR0cmlidXRlUmVhZG9ubHkoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNhdHRy
aWJ1dGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzYXR0cmli
dXRlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNhdHRyaWJ1dGUqIGRvbU9i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNhdHRyaWJ1dGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOwotICAgIGlmICghZG9tT2JqZWN0KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTYXR0cmlidXRlOjpn
ZXRDb25zdHJ1Y3RvcihleGVjLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U3JlYWRvbmx5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U3JlYWRvbmx5LmNwcAppbmRleCBmNzY2N2Q3MGVmNDU1NjJhZTI4YjA2YmQxNjFjZTQzMjczM2Rm
ZGY2Li5hNTQ5YzkyNDliY2ZlYTUyZTc4MDRjMzUzMWIyYzJiYTRjMjIxMzM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHku
Y3BwCkBAIC0xMTcsMTMgKzExNywxMSBAQCBib29sIEpTcmVhZG9ubHk6OmdldE93blByb3BlcnR5
U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TgogICAgIHJl
dHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNyZWFkb25seSwgQmFzZT4oZXhlYywgSlNyZWFkb25s
eVRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc3JlYWRvbmx5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBqc3JlYWRvbmx5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNyZWFkb25s
eSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU3JlYWRvbmx5Kj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKLSAgICBpZiAoIWRvbU9iamVjdCkKLSAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU3JlYWRv
bmx5OjpnZXRDb25zdHJ1Y3RvcihleGVjLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAwYmNiODVhYjdmNGEyM2VlZjVjYWNlYmQzNDg3YjYwMmIyZGJjNjdj
Li40OTNhOGIyNzdmZGVkOTFhMmNjYmIwMzkzOTE2NDIyZjExODY4MmUwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTQtMDEtMjggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBNYWtlIERPTSBhdHRyaWJ1dGVzIGFwcGVhciB0byBiZSBmYXV4IGFjY2Vzc29yIHBy
b3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyNzc5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZXNlIHByb3BlcnRpZXMgbm93IHNob3cgdXAgYXMgYWNjZXNzb3JzIGluIHRoZXNlIHRlc3Rz
CisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvcmVwbGFjZWFibGUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9yZXBsYWNlYWJsZS5odG1sOgorICAgICAgICAqIGpz
L2RvbS9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpz
L3Jlc291cmNlcy9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuanM6CisKIDIwMTQtMDEtMjggIEFu
dHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlYmFzZSBmYXN0L3Jl
cGFpbnQvYmFja2dyb3VuZC1zaG9ydGhhbmQtd2l0aC1ncmFkaWVudC1hbmQtaGVpZ2h0LWNoYW5n
ZXMuaHRtbCBhZnRlciBodHRwczovL3RyYWMud2Via2l0Lm9yZy9yMTYyOTQ3CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVwbGFjZWFibGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3JlcGxhY2VhYmxlLWV4cGVjdGVkLnR4dAppbmRl
eCBkOWUxNjhkNzM2ZTdlYmU5MmJkNGE3MjU3YTRhM2IxMTNhZmE4NmY3Li41OTJiNDlmODJjMDE2
ZmYzYWJlZTk2OWE3MmNiM2NjMzU5OTY4N2U4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvcmVwbGFjZWFibGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy9yZXBsYWNlYWJsZS1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIFRl
c3RzIHRoYXQgUmVwbGFjZWFibGUgYXR0cmlidXRlcyBhcmUgd3JpdGFibGUKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
d2luZG93LCAiaW5uZXJIZWlnaHQiKS53cml0YWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAiaW5uZXJIZWlnaHQiKS5oYXNPd25Qcm9wZXJ0
eSgiZ2V0IikgaXMgdHJ1ZQogUEFTUyB3aW5kb3cuaW5uZXJIZWlnaHQgaXMgNDIKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3JlcGxhY2VhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
cmVwbGFjZWFibGUuaHRtbAppbmRleCAzODhjY2FmNTcyZWQ3ZjQ0Mzg1NDE5ZTQ0OTdhNjc4MGUx
ODI4ZjdlLi5kMDdlZDA0Y2I1NGJjNzc2NjA2MTg0M2YyMzIyZWQ1NjBiODk1ZDFmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVwbGFjZWFibGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVwbGFjZWFibGUuaHRtbApAQCAtNCw3ICs0LDcg
QEAKIAogZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgUmVwbGFjZWFibGUgYXR0cmlidXRlcyBhcmUg
d3JpdGFibGUnKTsKIAotc2hvdWxkQmVUcnVlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKHdpbmRvdywgImlubmVySGVpZ2h0Iikud3JpdGFibGUnKTsKK3Nob3VsZEJlVHJ1ZSgnT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICJpbm5lckhlaWdodCIpLmhhc093
blByb3BlcnR5KCJnZXQiKScpOwogCiB3aW5kb3cuaW5uZXJIZWlnaHQgPSA0MjsKIHNob3VsZEJl
KCd3aW5kb3cuaW5uZXJIZWlnaHQnLCAnNDInKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L2RvbS9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
anMvZG9tL2dldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQKaW5kZXggNTI5OTRm
MjJjODg2ZDY0MTM2NjBiZmMzMGUxOWFhN2E4MmNjZGU4YS4uMWU4NzI3MjFmYWVmY2U0NDQ0NzYy
OTMxNWZhYWQ3YTQwNjI5YzUzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2dldE93
blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9t
L2dldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQKQEAgLTEyOSw5ICsxMjksMTAg
QEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1hNTEh0dHBS
ZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ2cKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdYTUxIdHRwUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1hN
TEh0dHBSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1hNTEh0dHBSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlz
IHRydWUKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdsZW5n
dGgnKS52YWx1ZSBpcyBnbG9iYWwubGVuZ3RoCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnbGVuZ3RoJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNl
Ci1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnbGVuZ3RoJyku
aGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnbGVuZ3RoJykuZ2V0IGlzIHVuZGVmaW5lZAorUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ2xlbmd0aCcpLnNldCBpcyB1bmRl
ZmluZWQKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdsZW5n
dGgnKS5oYXNPd25Qcm9wZXJ0eSgndmFsdWUnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ2xlbmd0aCcpLmhhc093blByb3BlcnR5KCd3cml0
YWJsZScpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnbGVuZ3RoJykuZW51bWVyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnbGVuZ3RoJykuY29uZmlndXJhYmxlIGlzIGZhbHNlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAwKS52YWx1ZSBpcyBn
bG9iYWxbMF0KQEAgLTEzOSw5ICsxNDAsMTAgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgMCkuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAwKS5oYXNPd25Qcm9wZXJ0
eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsIDApLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsIDApLmNvbmZpZ3VyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdk
aXYnKSwgJ2xlbmd0aCcpLnZhbHVlIGlzIDEKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JyksICdsZW5ndGgnKS5o
YXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JyksICdsZW5ndGgn
KS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JyksICdsZW5n
dGgnKS5nZXQgaXMgdW5kZWZpbmVkCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpLCAnbGVuZ3RoJykuc2V0IGlz
IHVuZGVmaW5lZAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYnKSwgJ2xlbmd0aCcpLmhhc093blByb3BlcnR5KCd2
YWx1ZScpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpLCAnbGVuZ3RoJykuaGFzT3duUHJvcGVy
dHkoJ3dyaXRhYmxlJykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JyksICdsZW5ndGgnKS5lbnVt
ZXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JyksICdsZW5ndGgnKS5jb25maWd1cmFibGUg
aXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JyksIDApLnZhbHVlIGlzIGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdkaXYnKVswXQpAQCAtMTU0LDkgKzE1NiwxMCBAQCBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgn
cGFzcycpLCAwKQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50
LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3MnKSwgMCkuaGFzT3duUHJvcGVydHkoJ3NldCcp
IGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncGFzcycpLCAwKS5lbnVtZXJhYmxlIGlzIHRydWUKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKCdwYXNzJyksIDApLmNvbmZpZ3VyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUo
J3Bhc3MnKSwgJ2xlbmd0aCcpLnZhbHVlIGlzIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05h
bWUoJ3Bhc3MnKS5sZW5ndGgKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihk
b2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNzJyksICdsZW5ndGgnKS5oYXNPd25Q
cm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNzJyksICdsZW5ndGgnKS5o
YXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNzJyksICdsZW5n
dGgnKS5nZXQgaXMgdW5kZWZpbmVkCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncGFzcycpLCAnbGVuZ3RoJykuc2V0
IGlzIHVuZGVmaW5lZAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3MnKSwgJ2xlbmd0aCcpLmhhc093blByb3Bl
cnR5KCd2YWx1ZScpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncGFzcycpLCAnbGVuZ3RoJykuaGFz
T3duUHJvcGVydHkoJ3dyaXRhYmxlJykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNzJyksICds
ZW5ndGgnKS5lbnVtZXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNzJyksICdsZW5ndGgn
KS5jb25maWd1cmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihjYW52YXNQaXhlbEFycmF5LCAnbGVuZ3RoJykudmFsdWUgaXMgY2FudmFzUGl4ZWxBcnJh
eS5sZW5ndGgKQEAgLTE2OSw5ICsxNzIsMTAgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGNhbnZhc1BpeGVsQXJyYXksIDApLmhhc093blByb3BlcnR5KCdnZXQnKQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNhbnZhc1BpeGVsQXJyYXksIDApLmhh
c093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGNhbnZhc1BpeGVsQXJyYXksIDApLmVudW1lcmFibGUgaXMgdHJ1ZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNhbnZhc1BpeGVsQXJyYXksIDApLmNvbmZp
Z3VyYWJsZSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNl
bGVjdCwgJ2xlbmd0aCcpLnZhbHVlIGlzIHNlbGVjdC5sZW5ndGgKLVBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihzZWxlY3QsICdsZW5ndGgnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0
JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxlY3Qs
ICdsZW5ndGgnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxlY3QsICdsZW5ndGgnKS5nZXQgaXMgdW5kZWZpbmVk
CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZWN0LCAnbGVuZ3RoJyku
c2V0IGlzIHVuZGVmaW5lZAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNl
bGVjdCwgJ2xlbmd0aCcpLmhhc093blByb3BlcnR5KCd2YWx1ZScpIGlzIGZhbHNlCitQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZWN0LCAnbGVuZ3RoJykuaGFzT3duUHJv
cGVydHkoJ3dyaXRhYmxlJykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihzZWxlY3QsICdsZW5ndGgnKS5lbnVtZXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxlY3QsICdsZW5ndGgnKS5jb25maWd1cmFibGUg
aXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxlY3QsIDAp
LnZhbHVlIGlzIHNlbGVjdFswXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2Vz
L2dldE93blByb3BlcnR5RGVzY3JpcHRvci5qcyBiL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuanMKaW5kZXggMTYzNDhkMTMwOGUxNmVmMTM3ZDhlNDU1
MjFhYWU4NmE2NjczNWU1NS4uMGI1MWZjNDRlNmE4MmM1ODNmYTYwZmI1OWZhZGE1MDNkMGE5Yjcz
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL2dldE93blByb3BlcnR5RGVz
Y3JpcHRvci5qcworKysgYi9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yLmpzCkBAIC00NCwxOSArNDQsMTkgQEAgZGVzY3JpcHRvclNob3VsZEJlKCJnbG9i
YWwiLCAiJ05hTiciLCB7d3JpdGFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiBmYWxzZSwgY29uZmkK
IGRlc2NyaXB0b3JTaG91bGRCZSgiZ2xvYmFsIiwgIidJbmZpbml0eSciLCB7d3JpdGFibGU6IGZh
bHNlLCBlbnVtZXJhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgdmFsdWU6IkluZmlu
aXR5In0pOwogZGVzY3JpcHRvclNob3VsZEJlKCJnbG9iYWwiLCAiJ3dpbmRvdyciLCB7d3JpdGFi
bGU6IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IGZhbHNlLCB2YWx1ZToi
Z2xvYmFsIn0pOwogZGVzY3JpcHRvclNob3VsZEJlKCJnbG9iYWwiLCAiJ1hNTEh0dHBSZXF1ZXN0
JyIsIHt3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogdHJ1
ZSwgdmFsdWU6IlhNTEh0dHBSZXF1ZXN0In0pOwotZGVzY3JpcHRvclNob3VsZEJlKCJnbG9iYWwi
LCAiJ2xlbmd0aCciLCB7d3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3Vy
YWJsZTogZmFsc2UsIHZhbHVlOiJnbG9iYWwubGVuZ3RoIn0pOworZGVzY3JpcHRvclNob3VsZEJl
KCJnbG9iYWwiLCAiJ2xlbmd0aCciLCB7Z2V0OiB1bmRlZmluZWQsIHNldDogdW5kZWZpbmVkLCBl
bnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IGZhbHNlfSk7CiBkZXNjcmlwdG9yU2hvdWxk
QmUoImdsb2JhbCIsICIwIiwge3dyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSwgY29u
ZmlndXJhYmxlOiBmYWxzZSwgdmFsdWU6Imdsb2JhbFswXSJ9KTsKLWRlc2NyaXB0b3JTaG91bGRC
ZSgiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpIiwgIidsZW5ndGgnIiwge3dy
aXRhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgdmFs
dWU6IjEifSk7CitkZXNjcmlwdG9yU2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCdkaXYnKSIsICInbGVuZ3RoJyIsIHtnZXQ6IHVuZGVmaW5lZCwgc2V0OiB1bmRlZmluZWQs
IGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFsc2V9KTsKIGRlc2NyaXB0b3JTaG91
bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpIiwgIjAiLCB7d3JpdGFi
bGU6IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IGZhbHNlLCB2YWx1ZToi
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpWzBdIn0pOwogZGVzY3JpcHRvclNo
b3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNzJykiLCAiMCIsIHt3
cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFsc2UsIHZh
bHVlOiJkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNzJylbMF0ifSk7Ci1kZXNj
cmlwdG9yU2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3MnKSIs
ICInbGVuZ3RoJyIsIHt3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3Vy
YWJsZTogZmFsc2UsIHZhbHVlOiJkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNz
JykubGVuZ3RoIn0pOworZGVzY3JpcHRvclNob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKCdwYXNzJykiLCAiJ2xlbmd0aCciLCB7Z2V0OiB1bmRlZmluZWQsIHNldDogdW5k
ZWZpbmVkLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IGZhbHNlfSk7CiB2YXIgY2Fu
dmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CiB2YXIgY2FudmFzUGl4ZWxB
cnJheSA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLmNyZWF0ZUltYWdlRGF0YSgxMCwxMCkuZGF0
YTsKIGRlc2NyaXB0b3JTaG91bGRCZSgiY2FudmFzUGl4ZWxBcnJheSIsICInbGVuZ3RoJyIsIHt3
cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFsc2UsIHZh
bHVlOiJjYW52YXNQaXhlbEFycmF5Lmxlbmd0aCJ9KTsKIGRlc2NyaXB0b3JTaG91bGRCZSgiY2Fu
dmFzUGl4ZWxBcnJheSIsICIwIiwge3dyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCBj
b25maWd1cmFibGU6IGZhbHNlLCB2YWx1ZToiY2FudmFzUGl4ZWxBcnJheVswXSJ9KTsKIHZhciBz
ZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKTsKIHNlbGVjdC5pbm5lckhU
TUwgPSAiPG9wdGlvbj5mb288L29wdGlvbj4iOwotZGVzY3JpcHRvclNob3VsZEJlKCJzZWxlY3Qi
LCAiJ2xlbmd0aCciLCB7d3JpdGFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1
cmFibGU6IGZhbHNlLCB2YWx1ZToic2VsZWN0Lmxlbmd0aCJ9KTsKK2Rlc2NyaXB0b3JTaG91bGRC
ZSgic2VsZWN0IiwgIidsZW5ndGgnIiwge2dldDogdW5kZWZpbmVkLCBzZXQ6IHVuZGVmaW5lZCwg
ZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiBmYWxzZX0pOwogZGVzY3JpcHRvclNob3Vs
ZEJlKCJzZWxlY3QiLCAiMCIsIHt3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29u
ZmlndXJhYmxlOiBmYWxzZSwgdmFsdWU6InNlbGVjdFswXSJ9KTsKIAogdmFyIG9iamVjdFdpdGhH
ZXR0ZXIgPSB7fTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222586</attachid>
            <date>2014-01-29 11:27:38 -0800</date>
            <delta_ts>2014-01-29 13:14:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127797-20140129112719.patch</filename>
            <type>text/plain</type>
            <size>122744</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
OWMzNWNiNTgzYmJhMmFiNTc2ZGY4NjdkOTU0ODY0YTEwOTZmMTU2Li45Zjk3YjE3ZTQyMWI0Yjgz
OWE3ZjI1MzA0ZWUwMTQyNDA1YTBhNWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNC0wMS0yOCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgRE9NIGF0dHJpYnV0ZXMgYXBwZWFyIHRvIGJlIGZhdXggYWNjZXNzb3Ig
cHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI3Nzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWljaGFlbCBTYWJvZmYuCisKKyAgICAg
ICAgQWRkIGZsYWcgc28gd2UgY2FuIGlkZW50aWZ5IHdoaWNoIHByb3BlcnRpZXMgc2hvdWxkIGhh
dmUgdGhlIG9sZAorICAgICAgICBjdXN0b20gcHJvcGVydHkgc2VtYW50aWNzIHZzLiB0aGUgbmV3
IGZhdXggYWNjZXNzb3JzLiBVcGRhdGUgdGhlCisgICAgICAgIGluc3BlY3RvciBwcm90b2NvbCBh
Y2NvcmRpbmdseS4KKworICAgICAgICBUaGVzZSBmYXV4IGFjY2Vzc29ycyBwcm9kdWNlIGRlc2Ny
aXB0b3JzIHdpdGggImdldCIgYW5kICJzZXQiCisgICAgICAgIHByb3BlcnRpZXMsIGJ1dCBib3Ro
IHZhbHVlcyBhcmUgdW5kZWZpbmVkIHNvIGNhbid0IGJlIHVzZWQKKyAgICAgICAgZGlyZWN0bHku
IEEgZmV3IGN1c3RvbSBwcm9wZXJ0aWVzIGFjdHVhbGx5IHJlcXVpcmUgdGhlaXIKKyAgICAgICAg
ZXhpc3RpbmcgbWFnaWNhbCBiZWhhdmlvdXIsIHNvIHdlIG5vdyBoYXZlIGEgZmxhZyB0byAKKyAg
ICAgICAgZGlzdGluZ3Vpc2ggdGhlIGV4cGVjdGVkIG91dHB1dC4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qczoKKyAgICAgICAgKC4pOgorICAgICAgICAqIHJ1
bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHA6
CisgICAgICAgIChKU0M6OlByb3BlcnR5RGVzY3JpcHRvcjo6c2V0Q3VzdG9tRGVzY3JpcHRvcik6
CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBydW50
aW1lL1Byb3BlcnR5U2xvdC5oOgorCiAyMDE0LTAxLTI5ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxv
c3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVH
R0VSKSBndWFyZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYmI5MDc1ODJkNzRmYmIxOTA4NGViZjMzMGQ4YzNk
MDNlY2VlOWJlLi5mZGIzNjQzNWU2Y2IxYjc1YTRlNmM2M2RlN2Y2NWViMTJkZGIyYjdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQtMDEtMjggIE9saXZlciBIdW50ICA8b2xpdmVy
QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIERPTSBhdHRyaWJ1dGVzIGFwcGVhciB0byBiZSBm
YXV4IGFjY2Vzc29yIHByb3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNzc5NworCisgICAgICAgIFJldmlld2VkIGJ5IE1pY2hhZWwgU2Fi
b2ZmLgorCisgICAgICAgIFJlZmFjdG9yIHRoZSBiaW5kaW5ncyBnZW5lcmF0b3IsIGFuZCBtYWtl
IHN1cmUgd2UgZW1pdAorICAgICAgICB0aGUgQ3VzdG9tQWNjZXNzb3IgZmxhZyBvbiBwcm9wZXJ0
aWVzIHRoYXQgc2hvdWxkIAorICAgICAgICBhcHBlYXIgdG8gYmUgYWNjZXNzb3JzLgorCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5l
cmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkpOgorICAgICAgICAoR2VuZXJhdGVBdHRyaWJ1dGVz
SGFzaFRhYmxlKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorCiAyMDE0LTAx
LTI5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4ZWQgdGhl
IGlPUyBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0U291cmNlLmpzCmluZGV4IDdiZmY3ZjZkNDE1OTg4MjhkODdlOThjM2Q0
NWQ5YWQ1OTc5YzM1YTUuLjMwNDQyMjRkOGFlYWQxNmZiM2U0OWUzMTgzZmY5NzQxNDQwOGI3MzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRTb3VyY2UuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdFNvdXJjZS5qcwpAQCAtMzUwLDYgKzM1MCwxOCBAQCBJbmplY3RlZFNjcmlwdC5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICBpZiAoZGVzY3JpcHRvci5oYXNPd25Qcm9wZXJ0eSgiZ2V0IikgJiYgZGVzY3JpcHRvci5oYXNP
d25Qcm9wZXJ0eSgic2V0IikgJiYgIWRlc2NyaXB0b3IuZ2V0ICYmICFkZXNjcmlwdG9yLnNldCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90IGFsbCBiaW5kaW5ncyBwcm92aWRlIHBy
b3BlciBkZXNjcmlwdG9ycy4gRmFsbCBiYWNrIHRvIHRoZSB3cml0YWJsZSwgY29uZmlndXJhYmxl
IHByb3BlcnR5LgorICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZXNjcmlwdG9yID0geyBuYW1lOiBuYW1lLCB2YWx1ZTogb2JqZWN0W25h
bWVdLCB3cml0YWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogZmFsc2UsIGVudW1lcmFibGU6IGZh
bHNlfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobyA9PT0gb2JqZWN0KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLmlzT3duID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9ycy5wdXNoKGRlc2NyaXB0b3IpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIFNpbGVudCBjYXRjaC4KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICB2YXIgZGVz
Y3JpcHRvciA9IHt9OwogICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLnZhbHVlID0gZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCA2OTEwYjdl
MDRmYWIxNWY2NjViZDk3NjJjYjViNmZjNjFjZDJmZDQ2Li4yYjY3YTFkOWVlZDg0ZTk5NTZmOGJi
OTY4Mzg0Yzg0Y2FlYTUzY2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuY3BwCkBAIC0yNDIxLDYgKzI0MjEsOCBAQCBib29sIEpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKHNsb3QuaXNBY2Nlc3NvcigpKQogICAgICAg
ICBkZXNjcmlwdG9yLnNldEFjY2Vzc29yRGVzY3JpcHRvcihzbG90LmdldHRlclNldHRlcigpLCBz
bG90LmF0dHJpYnV0ZXMoKSk7CisgICAgZWxzZSBpZiAoc2xvdC5hdHRyaWJ1dGVzKCkgJiBDdXN0
b21BY2Nlc3NvcikKKyAgICAgICAgZGVzY3JpcHRvci5zZXRDdXN0b21EZXNjcmlwdG9yKHNsb3Qu
YXR0cmlidXRlcygpKTsKICAgICBlbHNlCiAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRv
cihzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSksIHNsb3QuYXR0cmlidXRlcygpKTsK
ICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm9wZXJ0eURlc2NyaXB0b3IuY3BwCmluZGV4IDFkZDM1NjA1YzkwMDI4ZjZjNDM2MjQ4OWIw
Yzg4MzUzYTZhMWM2ZmUuLmQ3YWY1MjM0MTgwZDllZGY4MTYyNTYyZjljNDk1NTE2OTcwYmI1YTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3Jp
cHRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNj
cmlwdG9yLmNwcApAQCAtMTE1LDYgKzExNSwxNiBAQCB2b2lkIFByb3BlcnR5RGVzY3JpcHRvcjo6
c2V0RGVzY3JpcHRvcihKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogICAgIH0K
IH0KIAordm9pZCBQcm9wZXJ0eURlc2NyaXB0b3I6OnNldEN1c3RvbURlc2NyaXB0b3IodW5zaWdu
ZWQgYXR0cmlidXRlcykKK3sKKyAgICBtX2F0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzIHwgQWNjZXNz
b3IgfCBDdXN0b21BY2Nlc3NvcjsKKyAgICBtX2F0dHJpYnV0ZXMgJj0gflJlYWRPbmx5OworICAg
IG1fc2VlbkF0dHJpYnV0ZXMgPSBFbnVtZXJhYmxlUHJlc2VudCB8IENvbmZpZ3VyYWJsZVByZXNl
bnQ7CisgICAgc2V0R2V0dGVyKGpzVW5kZWZpbmVkKCkpOworICAgIHNldFNldHRlcihqc1VuZGVm
aW5lZCgpKTsKKyAgICBtX3ZhbHVlID0gSlNWYWx1ZSgpOworfQorCiB2b2lkIFByb3BlcnR5RGVz
Y3JpcHRvcjo6c2V0QWNjZXNzb3JEZXNjcmlwdG9yKEdldHRlclNldHRlciogYWNjZXNzb3IsIHVu
c2lnbmVkIGF0dHJpYnV0ZXMpCiB7CiAgICAgQVNTRVJUKGF0dHJpYnV0ZXMgJiBBY2Nlc3Nvcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2Ny
aXB0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRv
ci5oCmluZGV4IDJjYzk1ZmIyMWNlNGM5MDRlMDgwNTE3YzNhNGEzZDc1MjEwMjA5NzUuLjg0ZTI3
MDBhY2Y3OTNhZWFmMDgyNmEyNDFkYzU5NjUzOGZiMTU3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oCkBAIC02Myw2ICs2Myw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU09iamVjdCogc2V0dGVyT2JqZWN0KCkgY29u
c3Q7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0VW5kZWZpbmVkKCk7CiAgICAg
ICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0RGVzY3JpcHRvcihKU1ZhbHVlIHZhbHVlLCB1
bnNpZ25lZCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRD
dXN0b21EZXNjcmlwdG9yKHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAgICBKU19FWFBPUlRf
UFJJVkFURSB2b2lkIHNldEFjY2Vzc29yRGVzY3JpcHRvcihHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29y
LCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBz
ZXRXcml0YWJsZShib29sKTsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRFbnVt
ZXJhYmxlKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJvcGVydHlTbG90LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNs
b3QuaAppbmRleCBhZTkzNDU1YTQ4NDc4Mzc4NDc2YzQzYTI1MTJjODU4ZjY0ODU2Y2E2Li5kOTM4
ZmEzMTY0NWFmMjZiNzU4NTE0ZGI2YjI0NzhmMTgzZTllZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaApAQCAtNDEsNiArNDEsNyBAQCBlbnVtIEF0
dHJpYnV0ZSB7CiAgICAgRG9udERlbGV0ZSAgID0gMSA8PCAzLCAgLy8gcHJvcGVydHkgY2FuJ3Qg
YmUgZGVsZXRlZAogICAgIEZ1bmN0aW9uICAgICA9IDEgPDwgNCwgIC8vIHByb3BlcnR5IGlzIGEg
ZnVuY3Rpb24gLSBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKICAgICBBY2Nlc3NvciAg
ICAgPSAxIDw8IDUsICAvLyBwcm9wZXJ0eSBpcyBhIGdldHRlci9zZXR0ZXIKKyAgICBDdXN0b21B
Y2Nlc3NvciA9IDEgPDwgNiwKIH07CiAKIGNsYXNzIFByb3BlcnR5U2xvdCB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDZi
OTdkNTMyNGY4NzAxN2EwNzY3YTg4ZWY0YTJjODIyZmE0ZDNkMGIuLjI0MmQ1NTNmYmZkY2U3OTI4
MDFmYTQ4YWQ4MjM3MjViMDg2ZmQ1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0zOTgsNyArMzk4LDcgQEAgc3ViIEdl
bmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keQogCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVx
ICJOYW1lZE5vZGVNYXAiIG9yICRpbnRlcmZhY2VOYW1lID1+IC9eSFRNTFx3KkNvbGxlY3Rpb24k
LykgewogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICR7bmFtZXNw
YWNlTWF5YmV9SlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPnByb3RvdHlwZSgpO1xuIik7Ci0g
ICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKHByb3RvLmlzT2Jq
ZWN0KCkgJiYganNDYXN0PCR7bmFtZXNwYWNlTWF5YmV9SlNPYmplY3QqPihhc09iamVjdChwcm90
bykpLT5oYXNQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpKVxuIik7CisgICAgICAgIHB1c2go
QGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKHByb3RvLmlzT2JqZWN0KCkgJiYganND
YXN0PCR7bmFtZXNwYWNlTWF5YmV9SlNPYmplY3QqPihwcm90byktPmhhc1Byb3BlcnR5KGV4ZWMs
IHByb3BlcnR5TmFtZSkpXG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1w
bCwgIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4iKTsKICAgICB9CiAKQEAgLTExNzQsOSArMTE3
NCw5IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIH0KIH0KIAotc3ViIEdlbmVyYXRlQXR0cmli
dXRlc0hhc2hUYWJsZSgkJCkKK3N1YiBHZW5lcmF0ZUF0dHJpYnV0ZXNIYXNoVGFibGUKIHsKLSAg
ICBteSAoJG9iamVjdCwgJGludGVyZmFjZSkgPSBAXzsKKyAgICBteSAoJG9iamVjdCwgJGludGVy
ZmFjZSwgJGhhc2hLZXlzLCAkaGFzaFNwZWNpYWxzLCAkaGFzaFZhbHVlMSwgJGhhc2hWYWx1ZTIs
ICRjb25kaXRpb25hbHMsICRlbnRyaWVzKSA9IEBfOwogCiAgICAgIyBGSVhNRTogVGhlc2Ugc2hv
dWxkIGJlIGZ1bmN0aW9ucyBvbiAkaW50ZXJmYWNlLgogICAgIG15ICRpbnRlcmZhY2VOYW1lID0g
JGludGVyZmFjZS0+bmFtZTsKQEAgLTExODgsMjEgKzExODgsMTAgQEAgc3ViIEdlbmVyYXRlQXR0
cmlidXRlc0hhc2hUYWJsZSgkJCkKIAogICAgIHJldHVybiAwICBpZiAhJG51bUF0dHJpYnV0ZXM7
CiAKLSAgICBteSAkaGFzaFNpemUgPSAkbnVtQXR0cmlidXRlczsKLSAgICBteSAkaGFzaE5hbWUg
PSAkY2xhc3NOYW1lIC4gIlRhYmxlIjsKLQotICAgIG15IEBoYXNoS2V5cyA9ICgpOwotICAgIG15
IEBoYXNoU3BlY2lhbHMgPSAoKTsKLSAgICBteSBAaGFzaFZhbHVlMSA9ICgpOwotICAgIG15IEBo
YXNoVmFsdWUyID0gKCk7Ci0gICAgbXkgJWNvbmRpdGlvbmFscyA9ICgpOwotCi0gICAgbXkgQGVu
dHJpZXMgPSAoKTsKLQogICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5h
dHRyaWJ1dGVzfSkgewogICAgICAgICBuZXh0IGlmICgkYXR0cmlidXRlLT5pc1N0YXRpYyk7CiAg
ICAgICAgIG15ICRuYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwotICAgICAgICBw
dXNoKEBoYXNoS2V5cywgJG5hbWUpOworICAgICAgICBwdXNoKEAkaGFzaEtleXMsICRuYW1lKTsK
IAogICAgICAgICBteSBAc3BlY2lhbHMgPSAoKTsKICAgICAgICAgIyBBcyBwZXIgV2ViIElETCBz
cGVjaWZpY2F0aW9uLCBjb25zdHJ1Y3RvciBwcm9wZXJ0aWVzIG9uIHRoZSBFQ01BU2NyaXB0IGds
b2JhbCBvYmplY3Qgc2hvdWxkIGJlCkBAIC0xMjExLDQzICsxMjAwLDM5IEBAIHN1YiBHZW5lcmF0
ZUF0dHJpYnV0ZXNIYXNoVGFibGUoJCQpCiAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udERl
bGV0ZSIpIHVubGVzcyAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiRGVsZXRhYmxlIn0gfHwgJGlzX2dsb2JhbF9jb25zdHJ1Y3Rvcik7CiAgICAgICAgIHB1c2go
QHNwZWNpYWxzLCAiRG9udEVudW0iKSBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiTm90RW51bWVyYWJsZSJ9IHx8ICRpc19nbG9iYWxfY29uc3RydWN0b3Ip
OwogICAgICAgICBwdXNoKEBzcGVjaWFscywgIlJlYWRPbmx5IikgaWYgSXNSZWFkb25seSgkYXR0
cmlidXRlKTsKKyAgICAgICAgcHVzaChAc3BlY2lhbHMsICJDdXN0b21BY2Nlc3NvciIpIHVubGVz
cyAkaXNfZ2xvYmFsX2NvbnN0cnVjdG9yOwogICAgICAgICBteSAkc3BlY2lhbCA9IChAc3BlY2lh
bHMgPiAwKSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7Ci0gICAgICAgIHB1c2goQGhh
c2hTcGVjaWFscywgJHNwZWNpYWwpOworICAgICAgICBwdXNoKEAkaGFzaFNwZWNpYWxzLCAkc3Bl
Y2lhbCk7CiAKICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGlu
dGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICBwdXNoKEBoYXNo
VmFsdWUxLCAkZ2V0dGVyKTsKKyAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTEsICRnZXR0ZXIpOwog
CiAgICAgICAgIGlmIChJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7Ci0gICAgICAgICAgICBwdXNo
KEBoYXNoVmFsdWUyLCAiMCIpOworICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICIwIik7
CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRl
U2V0dGVyTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAg
ICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkc2V0dGVyKTsKKyAgICAgICAgICAgIHB1c2goQCRo
YXNoVmFsdWUyLCAkc2V0dGVyKTsKICAgICAgICAgfQogCiAgICAgICAgIG15ICRjb25kaXRpb25h
bCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlv
bmFsIn07CiAgICAgICAgIGlmICgkY29uZGl0aW9uYWwpIHsKLSAgICAgICAgICAgICRjb25kaXRp
b25hbHN7JG5hbWV9ID0gJGNvbmRpdGlvbmFsOworICAgICAgICAgICAgJSRjb25kaXRpb25hbHMt
PnskbmFtZX0gPSAgJGNvbmRpdGlvbmFsOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCEk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9JbnRlcmZhY2VPYmplY3QifSkgewot
ICAgICAgICBwdXNoKEBoYXNoS2V5cywgImNvbnN0cnVjdG9yIik7CisgICAgICAgIHB1c2goQCRo
YXNoS2V5cywgImNvbnN0cnVjdG9yIik7CiAgICAgICAgIG15ICRnZXR0ZXIgPSAianMiIC4gJGlu
dGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwotICAgICAgICBwdXNoKEBoYXNoVmFsdWUxLCAk
Z2V0dGVyKTsKKyAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTEsICRnZXR0ZXIpOwogICAgICAgICBp
ZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcGxhY2VhYmxlQ29uc3RydWN0
b3IifSkgewogICAgICAgICAgICAgbXkgJHNldHRlciA9ICJzZXRKUyIgLiAkaW50ZXJmYWNlTmFt
ZSAuICJDb25zdHJ1Y3RvciI7Ci0gICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkc2V0dGVy
KTsKLSAgICAgICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgIkRvbnRFbnVtIHwgRG9udERlbGV0
ZSIpOworICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICRzZXR0ZXIpOworICAgICAgICAg
ICAgcHVzaChAJGhhc2hTcGVjaWFscywgIkRvbnRFbnVtIHwgRG9udERlbGV0ZSIpOwogICAgICAg
ICB9IGVsc2UgeyAgICAgICAgICAgIAotICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgIjAi
KTsKLSAgICAgICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgIkRvbnRFbnVtIHwgUmVhZE9ubHki
KTsKKyAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUyLCAiMCIpOworICAgICAgICAgICAgcHVz
aChAJGhhc2hTcGVjaWFscywgIkRvbnRFbnVtIHwgUmVhZE9ubHkiKTsKICAgICAgICAgfQogICAg
IH0KLQotICAgICRvYmplY3QtPkdlbmVyYXRlSGFzaFRhYmxlKCRoYXNoTmFtZSwgJGhhc2hTaXpl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxAaGFzaEtleXMsIFxAaGFzaFNwZWNp
YWxzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxAaGFzaFZhbHVlMSwgXEBoYXNo
VmFsdWUyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwlY29uZGl0aW9uYWxzKTsK
ICAgICByZXR1cm4gJG51bUF0dHJpYnV0ZXM7CiB9CiAKQEAgLTE1ODUsMTAgKzE1NzAsMjQgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxudXNp
bmcgbmFtZXNwYWNlIEpTQztcblxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJuYW1lc3Bh
Y2UgV2ViQ29yZSB7XG5cbiIpOwogCi0gICAgbXkgJG51bUF0dHJpYnV0ZXMgPSBHZW5lcmF0ZUF0
dHJpYnV0ZXNIYXNoVGFibGUoJG9iamVjdCwgJGludGVyZmFjZSk7CisgICAgbXkgQGhhc2hLZXlz
ID0gKCk7CisgICAgbXkgQGhhc2hWYWx1ZTEgPSAoKTsKKyAgICBteSBAaGFzaFZhbHVlMiA9ICgp
OworICAgIG15IEBoYXNoU3BlY2lhbHMgPSAoKTsKKyAgICBteSAlY29uZGl0aW9uYWxzID0gKCk7
CisgICAgbXkgJGhhc2hOYW1lID0gJGNsYXNzTmFtZSAuICJUYWJsZSI7CisKKyAgICBteSAkbnVt
QXR0cmlidXRlcyA9IEdlbmVyYXRlQXR0cmlidXRlc0hhc2hUYWJsZSgkb2JqZWN0LCAkaW50ZXJm
YWNlLAorICAgICAgICBcQGhhc2hLZXlzLCBcQGhhc2hTcGVjaWFscywKKyAgICAgICAgXEBoYXNo
VmFsdWUxLCBcQGhhc2hWYWx1ZTIsCisgICAgICAgIFwlY29uZGl0aW9uYWxzKTsKIAogICAgIG15
ICRudW1Db25zdGFudHMgPSBAeyRpbnRlcmZhY2UtPmNvbnN0YW50c307CiAgICAgbXkgJG51bUZ1
bmN0aW9ucyA9IEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfTsKKyAgICAkb2JqZWN0LT5HZW5lcmF0
ZUhhc2hUYWJsZSgkaGFzaE5hbWUsICRudW1BdHRyaWJ1dGVzLAorICAgICAgICBcQGhhc2hLZXlz
LCBcQGhhc2hTcGVjaWFscywKKyAgICAgICAgXEBoYXNoVmFsdWUxLCBcQGhhc2hWYWx1ZTIsCisg
ICAgICAgIFwlY29uZGl0aW9uYWxzKSBpZiAkbnVtQXR0cmlidXRlcyA+IDA7CiAKICAgICAjIC0g
QWRkIGFsbCBjb25zdGFudHMKICAgICBpZiAoISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJOb0ludGVyZmFjZU9iamVjdCJ9KSB7CkBAIC0xNjg5LDEzICsxNjg4LDEzIEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAjIC0gQWRkIGZ1bmN0aW9ucyBhbmQgY29uc3Rh
bnRzIHRvIGEgaGFzaHRhYmxlIGRlZmluaXRpb24KICAgICBteSAkaGFzaFNpemUgPSAkbnVtRnVu
Y3Rpb25zICsgJG51bUNvbnN0YW50czsKLSAgICBteSAkaGFzaE5hbWUgPSAkY2xhc3NOYW1lIC4g
IlByb3RvdHlwZVRhYmxlIjsKKyAgICAkaGFzaE5hbWUgPSAkY2xhc3NOYW1lIC4gIlByb3RvdHlw
ZVRhYmxlIjsKIAotICAgIG15IEBoYXNoS2V5cyA9ICgpOwotICAgIG15IEBoYXNoVmFsdWUxID0g
KCk7Ci0gICAgbXkgQGhhc2hWYWx1ZTIgPSAoKTsKLSAgICBteSBAaGFzaFNwZWNpYWxzID0gKCk7
Ci0gICAgbXkgJWNvbmRpdGlvbmFscyA9ICgpOworICAgIEBoYXNoS2V5cyA9ICgpOworICAgIEBo
YXNoVmFsdWUxID0gKCk7CisgICAgQGhhc2hWYWx1ZTIgPSAoKTsKKyAgICBAaGFzaFNwZWNpYWxz
ID0gKCk7CisgICAgJWNvbmRpdGlvbmFscyA9ICgpOwogCiAgICAgIyBGSVhNRTogd2Ugc2hvdWxk
IG5vdCBuZWVkIGEgZnVuY3Rpb24gZm9yIGV2ZXJ5IGNvbnN0YW50LgogICAgIGZvcmVhY2ggbXkg
JGNvbnN0YW50IChAeyRpbnRlcmZhY2UtPmNvbnN0YW50c30pIHsKQEAgLTE5NzAsOCArMTk2OSwx
NCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICBpZiAoISRhdHRy
aWJ1dGUtPmlzU3RhdGljIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3Ry
dWN0b3IkLykgewogICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2lu
ZG93IikgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2Ns
YXNzTmFtZX0qIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8JGNsYXNzTmFtZSo+KEpTVmFsdWU6OmRlY29k
ZShzbG90QmFzZSkpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8JGNsYXNzTmFtZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIWNhc3RlZFRo
aXMpIHtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgaWYgKEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0ganNEeW5hbWljQ2FzdDxKU0RPTVdpbmRv
d1NoZWxsKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKVxuIik7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgY2FzdGVkVGhpcyA9IHNoZWxs
LT53aW5kb3coKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICB9XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
VU5VU0VEX1BBUkFNKHNsb3RCYXNlKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBpZiAoIWNhc3RlZFRoaXMpXG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpO1xuIik7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDwkY2xhc3NOYW1lKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CiAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShz
bG90QmFzZSk7XG4iKTsKQEAgLTIxNDIsNyArMjE0Nyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgIGlmICghJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5v
SW50ZXJmYWNlT2JqZWN0In0pIHsKICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvckZ1bmN0aW9u
TmFtZSA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7CiAKLSAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgJHtjb25zdHJ1Y3RvckZ1bmN0
aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiRW5jb2RlZEpTVmFsdWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAg
ICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGRvbU9iamVjdCA9IGpz
RHluYW1pY0Nhc3Q8JGNsYXNzTmFtZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIp
OwpAQCAtMjE1Miw4ICsyMTU3LDYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKICAgICAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05h
bWV9KiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PCRjbGFzc05hbWUqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpZiAoIWRvbU9iamVjdClcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFkb21PYmpl
Y3QpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOwpAQCAtMjE2NywyNjggKzIxNzAsMjY1IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
In1cblxuIik7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlJlcGxhY2VhYmxlQ29uc3RydWN0b3IifSkgeworICAgICAgICAgICAgbXkg
JGNvbnN0cnVjdG9yRnVuY3Rpb25OYW1lID0gInNldEpTIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNv
bnN0cnVjdG9yIjsKIAotICAgICAgICAjIENoZWNrIGlmIHdlIGhhdmUgYW55IHdyaXRhYmxlIGF0
dHJpYnV0ZXMKLSAgICAgICAgbXkgJGhhc1JlYWRXcml0ZVByb3BlcnRpZXMgPSAwOwotICAgICAg
ICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKLSAg
ICAgICAgICAgICRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzID0gMSBpZiAhSXNSZWFkb25seSgkYXR0
cmlidXRlKSAmJiAhJGF0dHJpYnV0ZS0+aXNTdGF0aWM7CisgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgInZvaWQgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwor
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOyIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDwke2NsYXNz
TmFtZX0qPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4iKTsKKyAgICAgICAgICAgIGlm
ICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgeworICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGlmICghY2FzdGVkVGhpcykge1xuIik7CisgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGlmIChKU0RPTVdpbmRvd1NoZWxsKiBzaGVs
bCA9IGpzRHluYW1pY0Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAg
ICAgICAgY2FzdGVkVGhpcyA9IHNoZWxsLT53aW5kb3coKTtcbiIpOworICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFjYXN0ZWRUaGlzKSB7XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
O1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xu
Iik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAg
ICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1cml0eSJ9
KSB7CisgICAgICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7
CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghQmluZGlu
Z1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMt
PmltcGwoKSkpXG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXNob3VsZEFsbG93QWNjZXNzVG9GcmFt
ZShleGVjLCBjYXN0ZWRUaGlzLT5pbXBsKCkuZnJhbWUoKSkpXG4iKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtc
biIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3RvclxuIik7CisKKyAgICAgICAgICAg
IGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgeworICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGNhc3RlZFRoaXMtPnB1dERpcmVjdChleGVjLT52bSgpLCBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkuY29uc3RydWN0b3IsIHZhbHVlKTtcbiIpOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkaWUgIk5vIHdheSB0byBoYW5kbGUgaW50ZXJm
YWNlIHdpdGggUmVwbGFjZWFibGVDb25zdHJ1Y3RvciBleHRlbmRlZCBhdHRyaWJ1dGU6ICRpbnRl
cmZhY2VOYW1lIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAifVxuXG4iKTsKICAgICAgICAgfQorICAgIH0KKyAgICBteSAkaGFzQ3VzdG9tU2V0dGVyID0g
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkU2V0dGVyIn0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkN1c3RvbUluZGV4ZWRTZXR0ZXIifTsKIAotICAgICAgICBteSAkb3ZlcnJpZGVzUHV0SW1w
bGVtZW50YXRpb24gPSBJbnN0YW5jZU92ZXJyaWRlc1B1dEltcGxlbWVudGF0aW9uKCRpbnRlcmZh
Y2UpOwotICAgICAgICBteSAkaGFzU2V0dGVyID0gJGhhc1JlYWRXcml0ZVByb3BlcnRpZXM7Cisg
ICAgaWYgKCRoYXNDdXN0b21TZXR0ZXIpIHsKKyAgICAgICAgaWYgKCEkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tUHV0RnVuY3Rpb24ifSkgeworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAie1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFt
ZX0qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iamVjdCwgaW5mbygpKTtcbiIpOworICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21JbmRleGVkU2V0dGVyIn0pIHsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFt
ZS5hc0luZGV4KCk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBpZiAoaW5kZXggIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KSB7XG4iKTsKKyAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhpc09iamVjdC0+aW5kZXhTZXR0
ZXIoZXhlYywgaW5kZXgsIHZhbHVlKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRTZXR0ZXIifSkgeworICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICh0aGlzT2JqZWN0LT5wdXRE
ZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KSlcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAgICAg
ICAgIH0KIAotICAgICAgICBpZiAoJGhhc1NldHRlciB8fCAkb3ZlcnJpZGVzUHV0SW1wbGVtZW50
YXRpb24pIHsKLSAgICAgICAgICAgIGlmICgkb3ZlcnJpZGVzUHV0SW1wbGVtZW50YXRpb24pIHsK
LSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9Ojpw
dXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFzZTo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIn1cblxuIik7CisKKyAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZFNldHRlciJ9KSB7CisgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0QnlJbmRleChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wg
c2hvdWxkVGhyb3cpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1l
fSogdGhpc09iamVjdCA9IGpzQ2FzdDwke2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOwogICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpc09iamVjdCwgaW5mbygpKTtcbiIpOwogICAgICAgICAgICAgICAgIGlmICgkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9KSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHVuc2lnbmVkIGluZGV4ID0g
cHJvcGVydHlOYW1lLmFzSW5kZXgoKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBpZiAoaW5kZXggIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KSB7
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGlu
ZGV4IDw9IE1BWF9BUlJBWV9JTkRFWCkge1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICBVTlVTRURfUEFSQU0oc2hvdWxkVGhyb3cpO1xuIik7CiAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICB0aGlzT2JqZWN0
LT5pbmRleFNldHRlcihleGVjLCBpbmRleCwgdmFsdWUpO1xuIik7CiAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CiAgICAgICAgICAgICAgICAg
fQorCiAgICAgICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDdXN0b21OYW1lZFNldHRlciJ9KSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9t
KGV4ZWMsIGluZGV4KTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlzT2JqZWN0LCBzaG91bGRUaHJvdyk7XG4i
KTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKHRoaXNP
YmplY3QtPnB1dERlbGVnYXRlKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpKVxuIik7
CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47
XG4iKTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBCYXNlOjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7XG4iKTsKLQorICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwgZXhlYywgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7
XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAoJGludGVy
ZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUluZGV4ZWRTZXR0ZXIifSB8fCAkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRTZXR0ZXIifSkgewotICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9Ojpw
dXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwg
SlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91bGRUaHJvdylcbiIpOwotICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFz
c05hbWV9Kj4oY2VsbCk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpO1xu
Iik7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoaW5kZXggPD0gTUFYX0FSUkFZX0lOREVYKSB7XG4i
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBV
TlVTRURfUEFSQU0oc2hvdWxkVGhyb3cpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhpc09iamVjdC0+aW5kZXhTZXR0ZXIoZXhlYywg
aW5kZXgsIHZhbHVlKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOworICAgICMgQ2hlY2sgaWYgd2UgaGF2ZSBhbnkg
d3JpdGFibGUgYXR0cmlidXRlcworICAgIG15ICRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzID0gMDsK
KyAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsK
KyAgICAgICAgJGhhc1JlYWRXcml0ZVByb3BlcnRpZXMgPSAxIGlmICFJc1JlYWRvbmx5KCRhdHRy
aWJ1dGUpICYmICEkYXR0cmlidXRlLT5pc1N0YXRpYzsKKworICAgICAgICBpZiAoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJFdmVudExpc3RlbmVyIikgeworICAgICAgICAgICAgJGlt
cGxJbmNsdWRlc3siSlNFdmVudExpc3RlbmVyLmgifSA9IDE7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBpZiAoJGhhc1JlYWRXcml0ZVByb3BlcnRpZXMpIHsKKyAgICAgICAgZm9yZWFjaCBteSAk
YXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgICAgICBpZiAo
IUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKKyAgICAgICAgICAgICAgICBteSAkbmFtZSA9ICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgICAgICAgICBteSAkdHlwZSA9ICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgICAgICAgICBteSAkcHV0RnVuY3Rp
b25OYW1lID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFt
ZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgbXkgJGltcGxTZXR0ZXJGdW5jdGlvbk5h
bWUgPSAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkbmFtZSk7CisgICAgICAgICAgICAgICAg
bXkgJHNldHRlclJhaXNlc0V4Y2VwdGlvbiA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlNldHRlclJhaXNlc0V4Y2VwdGlvbiJ9OworCisgICAgICAgICAgICAg
ICAgbXkgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVy
YXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2F0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5n
fVxuIikgaWYgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nOworCisgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7cHV0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSIpOworICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiIHRoaXNWYWx1ZSIpIGlmICEkYXR0cmlidXRl
LT5pc1N0YXRpYzsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBK
U1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7XG4iKTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0oZXhlYyk7XG4i
KTsKKyAgICAgICAgICAgICAgICBpZiAoISRhdHRyaWJ1dGUtPmlzU3RhdGljKSB7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8JHtjbGFzc05hbWV9Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAi
RE9NV2luZG93IikgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaWYgKCFjYXN0ZWRUaGlzKSB7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICBpZiAoSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSBq
c0R5bmFtaWNDYXN0PEpTRE9NV2luZG93U2hlbGwqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSkpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICAgICAgY2FzdGVkVGhpcyA9IHNoZWxsLT53aW5kb3coKTtcbiIpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CiAgICAgICAgICAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkU2V0dGVyIn0pIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGluZGV4KTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgUHV0UHJvcGVydHlTbG90IHNsb3QodGhpc09iamVj
dCwgc2hvdWxkVGhyb3cpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBpZiAodGhpc09iamVjdC0+cHV0RGVsZWdhdGUoZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCkpXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFjYXN0ZWRUaGlzKSB7XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHJldHVybjtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICB9XG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5In0gJiYgISRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRvTm90Q2hlY2tTZWN1cml0eSJ9KSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93Iikg
eworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFC
aW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coZXhlYywgY2FzdGVk
VGhpcy0+aW1wbCgpKSlcbiIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFzaG91bGRBbGxv
d0FjY2Vzc1RvRnJhbWUoZXhlYywgY2FzdGVkVGhpcy0+aW1wbCgpLmZyYW1lKCkpKVxuIik7CiAg
ICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIGV4ZWMsIGluZGV4LCB2YWx1ZSwgc2hv
dWxkVGhyb3cpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
fVxuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHJldHVybjtcbiIpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgaWYgKCRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzKSB7Ci0gICAgICAgICAgICAgICAgZm9y
ZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmICghSXNSZWFkb25seSgkYXR0cmlidXRlKSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgbXkgJG5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBteSAkdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlw
ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRwdXRGdW5jdGlvbk5hbWUgPSBHZXRBdHRy
aWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lID0gJGNv
ZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJG5hbWUpOwotICAgICAgICAgICAgICAgICAgICAgICAg
bXkgJHNldHRlclJhaXNlc0V4Y2VwdGlvbiA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlNldHRlclJhaXNlc0V4Y2VwdGlvbiJ9OwotCi0gICAgICAgICAgICAg
ICAgICAgICAgICBteSAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRv
ci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHthdHRyaWJ1dGVD
b25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZzsKLQot
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7cHV0RnVu
Y3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBF
bmNvZGVkSlNWYWx1ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgdGhpc1ZhbHVlIikgaWYgISRhdHRyaWJ1dGUtPmlzU3RhdGljOwotICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSlcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7
XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpT
VmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTtcbiIpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISRhdHRyaWJ1dGUtPmlzU3Rh
dGljKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDwke2NsYXNzTmFtZX0q
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFjYXN0ZWRU
aGlzKSB7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIGlmIChKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IGpzRHluYW1pY0Nh
c3Q8SlNET01XaW5kb3dTaGVsbCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSlcbiIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgICAgIGNhc3RlZFRoaXMgPSBzaGVsbC0+d2luZG93KCk7XG4iKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGlmICghY2FzdGVkVGhpcykge1xuIik7CisgICAgICAgICAgICAg
ICAgaWYgKEhhc0N1c3RvbVNldHRlcigkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcykpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
Y2FzdGVkVGhpcy0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoZXhlYywgdmFsdWUpO1xuIik7
CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoJHR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiKSB7Cisg
ICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTRXZlbnRMaXN0ZW5lci5oIn0gPSAx
OworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFS
QU0oZXhlYyk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHdpbmRvd0V2ZW50TGlzdGVu
ZXIgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU1dpbmRv
d0V2ZW50TGlzdGVuZXIifTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCR3aW5kb3dFdmVudExp
c3RlbmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW50ZXJmYWNlTmFtZSYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoKCgkaW50ZXJmYWNlTmFtZSBl
cSAiRE9NV2luZG93Iikgb3IgKCRpbnRlcmZhY2VOYW1lIGVxICJXb3JrZXJHbG9iYWxTY29wZSIp
KSBhbmQgJG5hbWUgZXEgIm9uZXJyb3IiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyJKU0Vycm9ySGFuZGxlci5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wbC5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFt
ZShjcmVhdGVKU0Vycm9ySGFuZGxlcihleGVjLCB2YWx1ZSwgY2FzdGVkVGhpcykpO1xuIik7Cisg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgR2VuZXJhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyQ2FsbCgkY2xhc3NO
YW1lLCAkaW1wbFNldHRlckZ1bmN0aW9uTmFtZSwgJHdpbmRvd0V2ZW50TGlzdGVuZXIpKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3RydWN0b3IkLykgeworICAgICAgICAgICAgICAgICAg
ICBteSAkY29uc3RydWN0b3JUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOworICAg
ICAgICAgICAgICAgICAgICAkY29uc3RydWN0b3JUeXBlID1+IHMvQ29uc3RydWN0b3IkLy87Cisg
ICAgICAgICAgICAgICAgICAgICMgJGNvbnN0cnVjdG9yVHlwZSB+PSAvQ29uc3RydWN0b3IkLyBp
bmRpY2F0ZXMgdGhhdCBpdCBpcyBOYW1lZENvbnN0cnVjdG9yLgorICAgICAgICAgICAgICAgICAg
ICAjIFdlIGRvIG5vdCBnZW5lcmF0ZSB0aGUgaGVhZGVyIGZpbGUgZm9yIE5hbWVkQ29uc3RydWN0
b3Igb2YgY2xhc3MgWFhYWCwKKyAgICAgICAgICAgICAgICAgICAgIyBzaW5jZSB3ZSBnZW5lcmF0
ZSB0aGUgTmFtZWRDb25zdHJ1Y3RvciBkZWNsYXJhdGlvbiBpbnRvIHRoZSBoZWFkZXIgZmlsZSBv
ZiBjbGFzcyBYWFhYLgorICAgICAgICAgICAgICAgICAgICBpZiAoJGNvbnN0cnVjdG9yVHlwZSBu
ZSAiYW55IiBhbmQgJGNvbnN0cnVjdG9yVHlwZSAhfiAvTmFtZWQkLykgeworICAgICAgICAgICAg
ICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTIiAuICRjb25zdHJ1Y3RvclR5cGUgLiAi
LmgiLCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25kaXRp
b25hbCJ9KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvclxu
Iik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGNhc3RlZFRo
aXMtPnB1dERpcmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVyKGV4ZWMsIFwiJG5hbWVcIiksIHZh
bHVlKTtcbiIpOworCisgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVwbGFjZWFibGUifSkgeworICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBv
YmplY3RcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBj
YXN0ZWRUaGlzLT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgSWRlbnRpZmllcihleGVjLCBcIiRuYW1l
XCIpLCB2YWx1ZSk7XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoISRhdHRyaWJ1dGUtPmlzU3RhdGljKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbFR5cGUmIGltcGwgPSBjYXN0ZWRUaGlz
LT5pbXBsKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpIGlmICRz
ZXR0ZXJSYWlzZXNFeGNlcHRpb247CisKKyAgICAgICAgICAgICAgICAgICAgIyBJZiB0aGUgIlN0
cmljdFR5cGVDaGVja2luZyIgZXh0ZW5kZWQgYXR0cmlidXRlIGlzIHByZXNlbnQsIGFuZCB0aGUg
YXR0cmlidXRlJ3MgdHlwZSBpcyBhbgorICAgICAgICAgICAgICAgICAgICAjIGludGVyZmFjZSB0
eXBlLCB0aGVuIGlmIHRoZSBpbmNvbWluZyB2YWx1ZSBkb2VzIG5vdCBpbXBsZW1lbnQgdGhhdCBp
bnRlcmZhY2UsIGEgVHlwZUVycm9yCisgICAgICAgICAgICAgICAgICAgICMgaXMgdGhyb3duIHJh
dGhlciB0aGFuIHNpbGVudGx5IHBhc3NpbmcgTlVMTCB0byB0aGUgQysrIGNvZGUuCisgICAgICAg
ICAgICAgICAgICAgICMgUGVyIHRoZSBXZWIgSURMIGFuZCBFQ01BU2NyaXB0IHNwZWNpZmljYXRp
b25zLCBpbmNvbWluZyB2YWx1ZXMgY2FuIGFsd2F5cyBiZSBjb252ZXJ0ZWQgdG8KKyAgICAgICAg
ICAgICAgICAgICAgIyBib3RoIHN0cmluZ3MgYW5kIG51bWJlcnMsIHNvIGRvIG5vdCB0aHJvdyBU
eXBlRXJyb3IgaWYgdGhlIGF0dHJpYnV0ZSBpcyBvZiB0aGVzZSB0eXBlcy4KKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IlN0cmljdFR5cGVDaGVja2luZyJ9KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyI8cnVudGltZS9FcnJvci5oPiJ9ID0gMTsKKworICAgICAgICAgICAgICAgICAgICAg
ICAgbXkgJGFyZ1R5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJGFyZ1R5cGUp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
aWYgKCF2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICF2YWx1ZS5pbmhlcml0cyhKUyR7YXJn
VHlwZX06OmluZm8oKSkpIHtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVy
bjtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIH1cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5
In0gJiYgISRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRvTm90
Q2hlY2tTZWN1cml0eSJ9KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpbnRl
cmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRB
bGxvd0FjY2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMtPmltcGwoKSkpXG4iKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXNob3VsZEFsbG93QWNjZXNz
VG9GcmFtZShleGVjLCBjYXN0ZWRUaGlzLT5pbXBsKCkuZnJhbWUoKSkpXG4iKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH07XG4iKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoSGFzQ3VzdG9tU2V0dGVyKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGNhc3RlZFRoaXMtPnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKGV4ZWMsIHZhbHVl
KTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJHR5cGUgZXEgIkV2ZW50
TGlzdGVuZXIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
SlNFdmVudExpc3RlbmVyLmgifSA9IDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKGV4ZWMpO1xuIik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXkgJHdpbmRvd0V2ZW50TGlzdGVuZXIgPSAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU1dpbmRvd0V2ZW50TGlzdGVuZXIifTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHdpbmRvd0V2ZW50TGlzdGVuZXIpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVj
dCgpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbnRlcmZhY2VOYW1lJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCgoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIG9yICgkaW50ZXJmYWNlTmFtZSBl
cSAiV29ya2VyR2xvYmFsU2NvcGUiKSkgYW5kICRuYW1lIGVxICJvbmVycm9yIikgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU0Vycm9ySGFuZGxlci5o
In0gPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpbXBsLnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKGNyZWF0ZUpTRXJyb3JIYW5k
bGVyKGV4ZWMsIHZhbHVlLCBjYXN0ZWRUaGlzKSk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgR2VuZXJhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyQ2FsbCgkY2xhc3NOYW1l
LCAkaW1wbFNldHRlckZ1bmN0aW9uTmFtZSwgJHdpbmRvd0V2ZW50TGlzdGVuZXIpKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2lm
ICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0NvbnN0cnVjdG9yJC8pIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBteSAkY29uc3RydWN0b3JUeXBlID0gJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT50eXBlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb25zdHJ1Y3Rv
clR5cGUgPX4gcy9Db25zdHJ1Y3RvciQvLzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAj
ICRjb25zdHJ1Y3RvclR5cGUgfj0gL0NvbnN0cnVjdG9yJC8gaW5kaWNhdGVzIHRoYXQgaXQgaXMg
TmFtZWRDb25zdHJ1Y3Rvci4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFdlIGRvIG5v
dCBnZW5lcmF0ZSB0aGUgaGVhZGVyIGZpbGUgZm9yIE5hbWVkQ29uc3RydWN0b3Igb2YgY2xhc3Mg
WFhYWCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHNpbmNlIHdlIGdlbmVyYXRlIHRo
ZSBOYW1lZENvbnN0cnVjdG9yIGRlY2xhcmF0aW9uIGludG8gdGhlIGhlYWRlciBmaWxlIG9mIGNs
YXNzIFhYWFguCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRjb25zdHJ1Y3RvclR5
cGUgbmUgImFueSIgYW5kICRjb25zdHJ1Y3RvclR5cGUgIX4gL05hbWVkJC8pIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTIiAuICRjb25zdHJ1
Y3RvclR5cGUgLiAiLmgiLCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDb25kaXRpb25hbCJ9KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgLy8gU2hhZG93
aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3JcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiAmJiAkY2xhc3NOYW1lIGVxICJK
U2JsYWgiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRklYTUU6IFRoaXMg
YnJhbmNoIG5ldmVyIGV4ZWN1dGVzIGFuZCBzaG91bGQgYmUgcmVtb3ZlZC4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgY2FzdGVkVGhpcy0+
cHV0RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jb25zdHJ1Y3Rvciwg
dmFsdWUpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgY2FzdGVk
VGhpcy0+cHV0RGlyZWN0KGV4ZWMtPnZtKCksIElkZW50aWZpZXIoZXhlYywgXCIkbmFtZVwiKSwg
dmFsdWUpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiUmVwbGFjZWFibGUifSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIG9iamVjdFxuIik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgY2Fz
dGVkVGhpcy0+cHV0RGlyZWN0KGV4ZWMtPnZtKCksIElkZW50aWZpZXIoZXhlYywgXCIkbmFtZVwi
KSwgdmFsdWUpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICghJGF0dHJpYnV0ZS0+aXNTdGF0aWMpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxU
eXBlJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgJHNldHRlclJhaXNlc0V4Y2VwdGlv
bjsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgSWYgdGhlICJTdHJpY3RUeXBlQ2hl
Y2tpbmciIGV4dGVuZGVkIGF0dHJpYnV0ZSBpcyBwcmVzZW50LCBhbmQgdGhlIGF0dHJpYnV0ZSdz
IHR5cGUgaXMgYW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGludGVyZmFjZSB0eXBl
LCB0aGVuIGlmIHRoZSBpbmNvbWluZyB2YWx1ZSBkb2VzIG5vdCBpbXBsZW1lbnQgdGhhdCBpbnRl
cmZhY2UsIGEgVHlwZUVycm9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpcyB0aHJv
d24gcmF0aGVyIHRoYW4gc2lsZW50bHkgcGFzc2luZyBOVUxMIHRvIHRoZSBDKysgY29kZS4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAjIFBlciB0aGUgV2ViIElETCBhbmQgRUNNQVNjcmlw
dCBzcGVjaWZpY2F0aW9ucywgaW5jb21pbmcgdmFsdWVzIGNhbiBhbHdheXMgYmUgY29udmVydGVk
IHRvCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBib3RoIHN0cmluZ3MgYW5kIG51bWJl
cnMsIHNvIGRvIG5vdCB0aHJvdyBUeXBlRXJyb3IgaWYgdGhlIGF0dHJpYnV0ZSBpcyBvZiB0aGVz
ZSB0eXBlcy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RyaWN0VHlwZUNoZWNraW5nIn0pIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siPHJ1bnRpbWUvRXJy
b3IuaD4ifSA9IDE7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGFyZ1R5
cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkYXJnVHlwZSkpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmICghdmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhdmFsdWUuaW5oZXJpdHMoSlMk
e2FyZ1R5cGV9OjppbmZvKCkpKSB7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
O1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9O1xuIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAiIC4gR2V0TmF0
aXZlVHlwZUZyb21TaWduYXR1cmUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKSAuICIgbmF0aXZlVmFs
dWUoIiAuIEpTVmFsdWVUb05hdGl2ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsICJ2YWx1ZSIpIC4g
Iik7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpXG4iKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICIgLiBHZXROYXRpdmVUeXBlRnJv
bVNpZ25hdHVyZSgkYXR0cmlidXRlLT5zaWduYXR1cmUpIC4gIiBuYXRpdmVWYWx1ZSgiIC4gSlNW
YWx1ZVRvTmF0aXZlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgInZhbHVlIikgLiAiKTtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIHJldHVybjtcbiIpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCRjb2RlR2VuZXJhdG9yLT5Jc0VudW1UeXBlKCR0eXBlKSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBteSBAZW51bVZhbHVlcyA9ICRjb2RlR2VuZXJhdG9yLT5WYWxpZEVudW1W
YWx1ZXMoJHR5cGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSBAZW51bUNo
ZWNrcyA9ICgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIG15ICRl
bnVtVmFsdWUgKEBlbnVtVmFsdWVzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBlbnVtQ2hlY2tzLCAibmF0aXZlVmFsdWUgIT0gXCIkZW51bVZhbHVlXCIiKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoIChAaW1wbENvbnRlbnQsICIgICAgaWYgKCIgLiBqb2luKCIgJiYgIiwg
QGVudW1DaGVja3MpIC4gIilcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoIChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5J
c0VudW1UeXBlKCR0eXBlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbXkgQGVudW1WYWx1
ZXMgPSAkY29kZUdlbmVyYXRvci0+VmFsaWRFbnVtVmFsdWVzKCR0eXBlKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG15IEBlbnVtQ2hlY2tzID0gKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmb3JlYWNoIG15ICRlbnVtVmFsdWUgKEBlbnVtVmFsdWVzKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAZW51bUNoZWNrcywgIm5hdGl2ZVZhbHVlICE9IFwiJGVudW1WYWx1
ZVwiIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoIChAaW1wbENvbnRlbnQsICIgICAgaWYgKCIgLiBqb2luKCIgJiYgIiwgQGVudW1DaGVj
a3MpIC4gIilcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCAoQGltcGxDb250ZW50
LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eU9yTGlzdFByb3BlcnR5VHlwZSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaWYgKGltcGwuaXNSZWFkT25seSgpKSB7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSKTtcbiIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVy
bjtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgfVxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
aW1wbEluY2x1ZGVzeyJFeGNlcHRpb25Db2RlLmgifSA9IDE7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlJiBwb2RJbXBsID0g
aW1wbC5wcm9wZXJ0eVJlZmVyZW5jZSgpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICgkc3ZnUHJvcGVydHlPckxpc3RQcm9wZXJ0eVR5cGUgZXEgImZsb2F0IikgeyAj
IFNwZWNpYWwgY2FzZSBmb3IgSlNTVkdOdW1iZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHBvZEltcGwgPSBuYXRpdmVWYWx1ZTtc
biIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcG9kSW1w
bC5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShuYXRpdmVWYWx1ZSIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIsIGVjIikgaWYgJHNl
dHRlclJhaXNlc0V4Y2VwdGlvbjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVj
KTtcbiIpIGlmICRzZXR0ZXJSYWlzZXNFeGNlcHRpb247Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9w
ZXJ0eVR5cGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc2V0
dGVyUmFpc2VzRXhjZXB0aW9uKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFlYylcbiIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBp
bXBsLmNvbW1pdENoYW5nZSgpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGltcGwuY29tbWl0Q2hhbmdlKCk7XG4iKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVy
dHlUeXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
IChpbXBsLmlzUmVhZE9ubHkoKSkge1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlIpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkV4Y2VwdGlvbkNvZGUuaCJ9ID0gMTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICRzdmdQcm9wZXJ0eU9yTGlzdFByb3BlcnR5VHlwZSYgcG9kSW1wbCA9
IGltcGwucHJvcGVydHlSZWZlcmVuY2UoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRzdmdQcm9wZXJ0eU9yTGlzdFByb3BlcnR5VHlwZSBlcSAiZmxvYXQiKSB7ICMgU3BlY2lh
bCBjYXNlIGZvciBKU1NWR051bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIHBvZEltcGwgPSBuYXRpdmVWYWx1ZTtcbiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBwb2RJbXBsLnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lKG5h
dGl2ZVZhbHVlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIsIGVjIikgaWYgJHNldHRlclJhaXNlc0V4Y2VwdGlvbjsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIik7XG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBzZXRET01FeGNlcHRpb24oZXhlYywg
ZWMpO1xuIikgaWYgJHNldHRlclJhaXNlc0V4Y2VwdGlvbjsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc3ZnUHJvcGVydHlUeXBlKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzZXR0ZXJSYWlzZXNFeGNlcHRpb24pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
aWYgKCFlYylcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgaW1wbC5jb21taXRDaGFuZ2UoKTtcbiIpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG15ICgkZnVuY3Rpb25OYW1lLCBAYXJndW1lbnRzKSA9ICRjb2RlR2VuZXJhdG9yLT5TZXR0ZXJF
eHByZXNzaW9uKFwlaW1wbEluY2x1ZGVzLCAkaW50ZXJmYWNlTmFtZSwgJGF0dHJpYnV0ZSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNUeXBl
ZEFycmF5VHlwZSgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUpIGFuZCBub3QgJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJBcnJheUJ1ZmZlciIpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGFyZ3VtZW50cywgIm5hdGl2ZVZhbHVlLmdldCgpIik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsICJuYXRpdmVWYWx1ZSIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJJbXBsZW1lbnRlZEJ5In0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG15ICRpbXBsZW1lbnRlZEJ5ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJGltcGxJbmNsdWRlc3siJHtpbXBsZW1lbnRlZEJ5fS5oIn0gPSAxOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaGlmdChAYXJndW1lbnRzLCAiJmltcGwiKSBp
ZiAhJGF0dHJpYnV0ZS0+aXNTdGF0aWM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkZnVuY3Rpb25OYW1lID0gIiR7aW1wbGVtZW50ZWRCeX06OiR7ZnVuY3Rpb25OYW1lfSI7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPmlz
U3RhdGljKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25O
YW1lID0gIiR7aW50ZXJmYWNlTmFtZX06OiR7ZnVuY3Rpb25OYW1lfSI7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25OYW1lID0gImltcGwuJHtmdW5jdGlvbk5hbWV9IjsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgR2VuZXJhdGVDYWxsV2l0aCgkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9LCBcQGltcGxDb250ZW50LCAi
IikpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGFyZ3VtZW50cywg
ImVjIikgaWYgJHNldHRlclJhaXNlc0V4Y2VwdGlvbjsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtmdW5jdGlvbk5hbWV9KCIgLiBqb2lu
KCIsICIsIEBhcmd1bWVudHMpIC4gIik7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTtc
biIpIGlmICRzZXR0ZXJSYWlzZXNFeGNlcHRpb247CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGltcGwuY29tbWl0Q2hhbmdlKCk7XG4iKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBt
eSAoJGZ1bmN0aW9uTmFtZSwgQGFyZ3VtZW50cykgPSAkY29kZUdlbmVyYXRvci0+U2V0dGVyRXhw
cmVzc2lvbihcJWltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBl
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSkgYW5kIG5vdCAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPnR5cGUgZXEgIkFycmF5QnVmZmVyIikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGFyZ3VtZW50cywgIm5hdGl2ZVZhbHVlLmdldCgpIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGFyZ3Vt
ZW50cywgIm5hdGl2ZVZhbHVlIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXkgJGltcGxlbWVudGVkQnkgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJJbXBsZW1lbnRlZEJ5In07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlt
cGxJbmNsdWRlc3siJHtpbXBsZW1lbnRlZEJ5fS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgIiZpbXBsIikgaWYgISRhdHRyaWJ1dGUtPmlz
U3RhdGljOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiJHtp
bXBsZW1lbnRlZEJ5fTo6JHtmdW5jdGlvbk5hbWV9IjsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzaWYgKCRhdHRyaWJ1dGUtPmlzU3RhdGljKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJGZ1bmN0aW9uTmFtZSA9ICIke2ludGVyZmFjZU5hbWV9Ojoke2Z1bmN0aW9uTmFtZX0i
OworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25OYW1lID0gImltcGwuJHtmdW5jdGlvbk5hbWV9IjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ9XG5cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIjZW5kaWZcbiIpIGlmICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZzsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iKTsKLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0g
ICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVwbGFjZWFibGVD
b25zdHJ1Y3RvciJ9KSB7Ci0gICAgICAgICAgICBteSAkY29uc3RydWN0b3JGdW5jdGlvbk5hbWUg
PSAic2V0SlMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOworICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaGlmdChAYXJndW1lbnRzLCBHZW5lcmF0ZUNhbGxXaXRoKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn0sIFxAaW1wbENv
bnRlbnQsICIiKSk7CiAKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2Nv
bnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpXG4iKTsKLSAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRW
YWx1ZSk7Iik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFt
ZX0qIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PCR7Y2xhc3NOYW1lfSo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTtcbiIpOwotICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVx
ICJET01XaW5kb3ciKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
aWYgKCFjYXN0ZWRUaGlzKSB7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgaWYgKEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0ganNEeW5hbWljQ2FzdDxK
U0RPTVdpbmRvd1NoZWxsKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKVxuIik7Ci0gICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgICAgICBjYXN0ZWRUaGlzID0g
c2hlbGwtPndpbmRvdygpO1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgfVxuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpZiAoIWNhc3RlZFRoaXMpIHtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKLSAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKLSAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwotICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5In0pIHsKLSAgICAgICAgICAgICAg
ICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFs
bG93QWNjZXNzVG9ET01XaW5kb3coZXhlYywgY2FzdGVkVGhpcy0+aW1wbCgpKSlcbiIpOwotICAg
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGlmICghc2hvdWxkQWxsb3dBY2Nlc3NUb0ZyYW1lKGV4ZWMsIGNhc3RlZFRoaXMt
PmltcGwoKS5mcmFtZSgpKSlcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAYXJn
dW1lbnRzLCAiZWMiKSBpZiAkc2V0dGVyUmFpc2VzRXhjZXB0aW9uOworICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtmdW5jdGlvbk5hbWV9KCIgLiBqb2lu
KCIsICIsIEBhcmd1bWVudHMpIC4gIik7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7XG4iKSBpZiAk
c2V0dGVyUmFpc2VzRXhjZXB0aW9uOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1
cm47XG4iKTsKLSAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3JcbiIpOwotCi0gICAgICAg
ICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBjYXN0ZWRUaGlzLT5wdXREaXJlY3QoZXhlYy0+dm0o
KSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmNvbnN0cnVjdG9yLCB2YWx1ZSk7XG4iKTsKLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZGllICJObyB3YXkgdG8gaGFuZGxlIGlu
dGVyZmFjZSB3aXRoIFJlcGxhY2VhYmxlQ29uc3RydWN0b3IgZXh0ZW5kZWQgYXR0cmlidXRlOiAk
aW50ZXJmYWNlTmFtZSI7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5c
biIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAk
YXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmc7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJcbiIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ9XG5cbiIpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01P
YmplY3QuY3BwCmluZGV4IGM0MDlhMzcwMTBiM2MxZTMxZjFmMjIwMDA2ZmQ3MGUwYWEyNmZhMjIu
LjJiMGUxNWQxNjVlZDE4ZDg1NTZlNTg4MDBhYjllODNhMWUzZWZiZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEFjdGl2ZURPTU9iamVjdFRh
YmxlVmFsdWVzW10gPQogewotICAgIHsgImV4Y2l0aW5nQXR0ciIsIERvbnREZWxldGUgfCBSZWFk
T25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKKyAgICB7
ICJleGNpdGluZ0F0dHIiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBDdXN0b21BY2Nlc3Nvciwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKICAgICB7ICJjb25z
dHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEFjdGl2ZURPTU9iamVj
dENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSwKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCAwLCAwIH0KIH07CkBA
IC0xNDUsMTMgKzE0NSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RF
eGNpdGluZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZQogfQogCiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgSlNUZXN0QWN0aXZlRE9NT2JqZWN0KiBkb21PYmplY3QgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7Ci0gICAgaWYgKCFkb21PYmplY3QpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOwogICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vz
c1RvRE9NV2luZG93KGV4ZWMsIGRvbU9iamVjdC0+aW1wbCgpKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6Z2V0Q29uc3RydWN0b3IoZXhlYy0+dm0oKSwgZG9tT2Jq
ZWN0LT5nbG9iYWxPYmplY3QoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5j
cHAKaW5kZXggYWU5MjhhOWJhMWQxNzk0NDhiZjM4MTI1YmM1MTVkNzY1Njg5MjgwZS4uMzI1ZWYy
Yjc1MmQwMDhiYWU0ZDM5YTk1MDNlOWFmYjRhN2QzOTRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIuY3BwCkBAIC0xNDQsMTMgKzE0NCwxMSBAQCBib29sIEpTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3Qs
IEV4ZWNTdAogICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNP
YmplY3QsIGV4ZWMsIGluZGV4LCBzbG90KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwot
ICAgIGlmICghZG9tT2JqZWN0KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpn
ZXRDb25zdHJ1Y3RvcihleGVjLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRleCBiN2I4NDkzMjA0ZDk1
M2I2MGRiNDk3MWVmYjEyZmRlOTY2MTNmYTI0Li4wZWZmNDhiZGU4M2U5NjJlOTdiMTA3NTQ5N2Nk
MTg0ZjNhN2VjOWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC0z
Niw4ICszNiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JUYWJsZVZhbHVlc1tdID0KIHsKLSAgICB7ICJh
dHRyMSIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckF0dHIxKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oMCkgfSwKLSAgICB7ICJhdHRyMiIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRy
aW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKKyAgICB7ICJhdHRyMSIsIERvbnREZWxl
dGUgfCBSZWFkT25seSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RFdmVudENvbnN0cnVj
dG9yQXR0cjEpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPigwKSB9LAorICAgIHsgImF0dHIyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgQ3Vz
dG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMiksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCiAgICAg
eyAiY29uc3RydWN0b3IiLCBEb250RW51bSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RFdmVudENv
bnN0cnVjdG9yQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIDAsIDAg
fQogfTsKQEAgLTE5MywxMyArMTkzLDExIEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29u
c3RydWN0b3JBdHRyMihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHNsb3RCCiB9CiAK
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdEV2ZW50Q29uc3RydWN0b3IqIGRvbU9i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgaWYgKCFkb21PYmplY3QpCi0gICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNU
ZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0b3IoZXhlYy0+dm0oKSwgZG9tT2JqZWN0
LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCBj
ODA2OThiYmJiODAwYTk5OTBmNmYyMTlhZjFhYjVkM2U2MmU4YzFlLi5lMDZlNzFiMTQxYTJkMjJk
ZjYxMTA0N2EyNTg1MjQ0ZTNlMDY5MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKQEAg
LTE2OSwxMyArMTY5LDExIEBAIGJvb2wgSlNUZXN0RXZlbnRUYXJnZXQ6OmdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBlCiAgICAgcmV0dXJuIEJh
c2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgZXhlYywgaW5kZXgsIHNs
b3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU1Rlc3RFdmVudFRhcmdldCogZG9tT2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7Ci0gICAgaWYgKCFkb21PYmplY3QpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RXZlbnRUYXJn
ZXQ6OmdldENvbnN0cnVjdG9yKGV4ZWMtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAppbmRleCBkZWJjOGUxOTUzNGZkNmMyMTc4NzMw
MDc5OTEwNmU5NGM5NTA4NmYwLi41YjYxZmMxNjZlOTU0ZGE2MWRmNTYyYTllZGIwYWIwZjUwMGEx
MDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RFeGNlcHRpb25U
YWJsZVZhbHVlc1tdID0KIHsKLSAgICB7ICJuYW1lIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBO
b0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RFeGNlcHRpb25OYW1lKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKKyAgICB7ICJuYW1lIiwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5IHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEV4Y2VwdGlvbk5hbWUpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9
LAogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVudW0gfCBSZWFkT25seSwgTm9JbnRyaW5zaWMs
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
RXhjZXB0aW9uQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIDAsIDAg
fQogfTsKQEAgLTEzMywxMyArMTMzLDExIEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlv
bk5hbWUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jCiB9CiAK
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBKU1Rlc3RFeGNlcHRpb24qIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0RXhjZXB0aW9uKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICgh
ZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBp
ZiAoIWRvbU9iamVjdCkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RFeGNlcHRpb246OmdldENvbnN0cnVjdG9y
KGV4ZWMtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCmluZGV4IGNjMzI2NDdkNjc5YTI0NzYxYzdk
YjQ1ZjkzNTExYjE2OTQxMmQ0YjYuLjQ1MzdiZThkNTNlZjZmYWYyZDg1NTg1NzVmNzk3ZjgzNjZi
NmQxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKQEAgLTEx
NywxMyArMTE3LDExIEBAIGJvb2wgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6Z2V0T3duUHJv
cGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSoKICAgICByZXR1cm4gZ2V0U3Rh
dGljVmFsdWVTbG90PEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUsIEJhc2U+KGV4ZWMsIEpTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGVUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgaWYgKCFkb21PYmpl
Y3QpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6Z2V0Q29uc3RydWN0b3Io
ZXhlYy0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRl
cmZhY2UuY3BwCmluZGV4IGE0MDc3NTc1YWRjOThhYTgyYmI5NTFmMzIzOTg2ZDI1NDFhNGFhMjYu
LjU1ZjA1YmNjNGE5ZGZhNmNhMjYwNTM0MjZlMjdiNmU4NDg4ZDk3ZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRl
cmZhY2UuY3BwCkBAIC01MiwyOCArNTIsMjggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEludGVyZmFjZVRhYmxlVmFsdWVzW10gPQogewog
I2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgImlt
cGxlbWVudHNTdHIxIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZh
Y2VJbXBsZW1lbnRzU3RyMSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisgICAgeyAiaW1wbGVtZW50c1N0cjEiLCBEb250RGVsZXRl
IHwgUmVhZE9ubHkgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlSW1wbGVt
ZW50c1N0cjEpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPigwKSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMjMpCi0gICAgeyAiaW1wbGVtZW50c1N0cjIiLCBEb250RGVsZXRlLCBOb0ludHJp
bnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNT
dHIyKSB9LAorICAgIHsgImltcGxlbWVudHNTdHIyIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vz
c29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMiksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEludGVyZmFj
ZUltcGxlbWVudHNTdHIyKSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMjMpCi0gICAgeyAiaW1wbGVtZW50c1N0cjMiLCBEb250RGVsZXRlLCBO
b0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMyksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEludGVyZmFjZUltcGxl
bWVudHNTdHIzKSB9LAorICAgIHsgImltcGxlbWVudHNTdHIzIiwgRG9udERlbGV0ZSB8IEN1c3Rv
bUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMyksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdElu
dGVyZmFjZUltcGxlbWVudHNTdHIzKSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIy
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi0gICAgeyAiaW1wbGVtZW50c05vZGUiLCBEb250RGVs
ZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzTm9kZSksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEludGVyZmFj
ZUltcGxlbWVudHNOb2RlKSB9LAorICAgIHsgImltcGxlbWVudHNOb2RlIiwgRG9udERlbGV0ZSB8
IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzTm9kZSksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
VGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyAic3VwcGxlbWVudGFsU3RyMSIs
IERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFs
U3RyMSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KDApIH0sCisgICAgeyAic3VwcGxlbWVudGFsU3RyMSIsIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIx
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
MCkgfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjEyKQotICAgIHsgInN1cHBsZW1lbnRhbFN0cjIiLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJ
bnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3Ry
MikgfSwKKyAgICB7ICJzdXBwbGVtZW50YWxTdHIyIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vz
c29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SW50ZXJm
YWNlU3VwcGxlbWVudGFsU3RyMikgfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkg
fHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHsgInN1cHBsZW1lbnRhbFN0cjMiLCBEb250RGVs
ZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SW50ZXJm
YWNlU3VwcGxlbWVudGFsU3RyMykgfSwKKyAgICB7ICJzdXBwbGVtZW50YWxTdHIzIiwgRG9udERl
bGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxT
dHIzKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMykgfSwKICNlbmRpZgogI2lmIEVO
QUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHsgInN1cHBsZW1l
bnRhbE5vZGUiLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxO
b2RlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZSkgfSwKKyAgICB7ICJzdXBwbGVt
ZW50YWxOb2RlIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRl
cmZhY2VTdXBwbGVtZW50YWxOb2RlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZSkg
fSwKICNlbmRpZgogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVudW0gfCBSZWFkT25seSwgTm9J
bnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAogICAgIHsgMCwgMCwgTm9JbnRyaW5z
aWMsIDAsIDAgfQpAQCAtNDMzLDEzICs0MzMsMTEgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHMK
IAogI2VuZGlmCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBkb21PYmplY3QgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7Ci0gICAgaWYgKCFkb21PYmplY3QpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0SW50ZXJmYWNlOjpnZXRD
b25zdHJ1Y3RvcihleGVjLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCBiN2I4
OGM4YzcwMzkzMmQzYWE0NTVjY2Y0OTViY2YzMzBlMmU2MjdjLi45MjFlZWY5ZjZiMjBkNzZkNTg4
MWZjZmIwOTg0MjMzNWVhYjEzZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuY3BwCkBAIC0xMjgsMTMgKzEyOCwxMSBAQCBib29sIEpTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXI6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVj
U3RhdAogICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lciwgQmFzZT4oZXhlYywgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclRhYmxlLCB0
aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogZG9tT2JqZWN0
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBpZiAoIWRvbU9iamVjdCkKLSAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRDb25zdHJ1Y3RvcihleGVjLT52bSgpLCBk
b21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0
cnVjdG9yLmNwcAppbmRleCA0NzYyOTIwOGI3YTE5ZmU0NDI5OTk2YzJlYzFhMDA1MWZlNjFmOGE0
Li5mNDZlZDBkYmVkYzU3Yzk5MDY2MjZmZDlmMGE4MWNjNmEwNGIzN2I5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC0xNjQsMTMgKzE2NCwxMSBAQCBib29sIEpTVGVz
dE5hbWVkQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBF
eGVjU3RhdGUqIGV4ZQogICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0TmFtZWRD
b25zdHJ1Y3RvciwgQmFzZT4oZXhlYywgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvclRhYmxlLCB0aGlz
T2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RO
YW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvciogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
ICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAg
ICBpZiAoIWRvbU9iamVjdCkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjpnZXRD
b25zdHJ1Y3RvcihleGVjLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROb2RlLmNwcAppbmRleCAyOGYyNGI2OWNkOWNhMzk4N2RmOWYyMzRkYTA4MWUyMmIxMjNmMzMz
Li4zMjg2ZmYxZGVkYzc2ODY5Zjc3NmZiMTcwYmZkNjJlZTkwM2M5OWVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3Bw
CkBAIC0xMjEsMTMgKzEyMSwxMSBAQCBib29sIEpTVGVzdE5vZGU6OmdldE93blByb3BlcnR5U2xv
dChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TgogICAgIHJldHVy
biBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0Tm9kZSwgQmFzZT4oZXhlYywgSlNUZXN0Tm9kZVRh
YmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3ROb2RlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3ROb2RlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNUZXN0Tm9kZSog
ZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb2RlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKLSAgICBpZiAoIWRvbU9iamVjdCkKLSAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROb2Rl
OjpnZXRDb25zdHJ1Y3RvcihleGVjLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHAKaW5kZXggODZlOWVmZjYzNzg1NzljM2FjYzk3NTIzODU3YzliYjgyMDA3
M2ZkYS4uYjY5NWMxYjFjMTNmNjVmYWM3MTRmYmQxZDI1ZjE1NGYxZTVlZmM3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5j
cHAKQEAgLTc3LDUzICs3Nyw1MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpUYWJsZVZhbHVlc1tdID0KIHsKLSAgICB7ICJyZWFk
T25seUxvbmdBdHRyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWFk
T25seUxvbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSwKLSAgICB7ICJyZWFkT25seVN0cmluZ0F0dHIiLCBEb250RGVsZXRl
IHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0ciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCi0gICAg
eyAicmVhZE9ubHlUZXN0T2JqQXR0ciIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5z
aWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisgICAgeyAicmVhZE9ubHlMb25nQXR0ciIs
IERvbnREZWxldGUgfCBSZWFkT25seSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpS
ZWFkT25seUxvbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oMCkgfSwKKyAgICB7ICJyZWFkT25seVN0cmluZ0F0dHIiLCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVhZE9ubHlT
dHJpbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oMCkgfSwKKyAgICB7ICJyZWFkT25seVRlc3RPYmpBdHRyIiwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5IHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlYWRPbmx5VGVzdE9i
akF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPigwKSB9LAogICAgIHsgIlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nIiwgRG9udEVudW0s
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9ialRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RPYmpUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKSB9LAotICAgIHsg
ImVudW1BdHRyIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqRW51bUF0dHIpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RP
YmpFbnVtQXR0cikgfSwKLSAgICB7ICJieXRlQXR0ciIsIERvbnREZWxldGUsIE5vSW50cmluc2lj
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9iakJ5dGVBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQnl0ZUF0dHIpIH0sCi0gICAgeyAib2N0ZXRBdHRyIiwg
RG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqT2N0ZXRBdHRyKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqT2N0ZXRBdHRy
KSB9LAotICAgIHsgInNob3J0QXR0ciIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialNob3J0
QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdE9ialNob3J0QXR0cikgfSwKLSAgICB7ICJ1bnNpZ25lZFNob3J0QXR0ciIs
IERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2Jq
VW5zaWduZWRTaG9ydEF0dHIpIH0sCi0gICAgeyAibG9uZ0F0dHIiLCBEb250RGVsZXRlLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpMb25nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakxvbmdBdHRyKSB9LAotICAgIHsgImxvbmdM
b25nQXR0ciIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakxvbmdMb25nQXR0ciksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dE9iakxvbmdMb25nQXR0cikgfSwKLSAgICB7ICJ1bnNpZ25lZExvbmdMb25nQXR0ciIsIERvbnRE
ZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqVW5z
aWduZWRMb25nTG9uZ0F0dHIpIH0sCi0gICAgeyAic3RyaW5nQXR0ciIsIERvbnREZWxldGUsIE5v
SW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ialN0cmluZ0F0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyKSB9LAotICAgIHsg
InRlc3RPYmpBdHRyIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqVGVzdE9iakF0dHIpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RPYmpUZXN0T2JqQXR0cikgfSwKLSAgICB7ICJYTUxPYmpBdHRyIiwgRG9udERlbGV0ZSwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqWE1MT2JqQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialhNTE9iakF0dHIpIH0sCi0gICAg
eyAiY3JlYXRlIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ3JlYXRlKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2Jq
Q3JlYXRlKSB9LAotICAgIHsgInJlZmxlY3RlZFN0cmluZ0F0dHIiLCBEb250RGVsZXRlLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5n
QXR0cikgfSwKLSAgICB7ICJyZWZsZWN0ZWRJbnRlZ3JhbEF0dHIiLCBEb250RGVsZXRlLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRl
Z3JhbEF0dHIpIH0sCi0gICAgeyAicmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIiLCBEb250
RGVsZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
VGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKSB9LAotICAgIHsgInJlZmxlY3Rl
ZEJvb2xlYW5BdHRyIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkQm9vbGVh
bkF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cikgfSwKLSAgICB7ICJyZWZsZWN0
ZWRVUkxBdHRyIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0ciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIpIH0sCi0gICAgeyAicmVmbGVjdGVkU3RyaW5nQXR0
ciIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKSB9LAotICAgIHsgInJlZmxlY3RlZEN1c3RvbUludGVn
cmFsQXR0ciIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVn
cmFsQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cikgfSwKLSAgICB7
ICJyZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
alJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9v
bGVhbkF0dHIpIH0sCi0gICAgeyAicmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciIsIERvbnREZWxldGUs
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRDdXN0b21VUkxBdHRyKSB9LAotICAgIHsgInR5cGVkQXJyYXlBdHRyIiwgRG9udERlbGV0ZSwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqVHlwZWRBcnJheUF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0cikg
fSwKLSAgICB7ICJhdHRyV2l0aEdldHRlckV4Y2VwdGlvbiIsIERvbnREZWxldGUsIE5vSW50cmlu
c2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24pIH0sCi0gICAgeyAiYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iLCBEb250RGVsZXRl
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakF0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uKSB9LAotICAgIHsgInN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbikgfSwKLSAgICB7
ICJzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIsIERvbnREZWxldGUsIE5vSW50cmluc2lj
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9ialN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqU3RyaW5nQXR0cldp
dGhTZXR0ZXJFeGNlcHRpb24pIH0sCi0gICAgeyAiY3VzdG9tQXR0ciIsIERvbnREZWxldGUsIE5v
SW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9iakN1c3RvbUF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKSB9LAotICAgIHsg
IndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZSIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialdp
dGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0
ZSkgfSwKLSAgICB7ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSIsIERvbnRE
ZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRl
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUpIH0sCi0gICAg
eyAid2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5z
aWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqV2l0aFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKSB9LAotICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QXR0cmlidXRlUmFpc2VzIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcykgfSwKLSAgICB7ICJ3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5z
aWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZSks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1
dGUpIH0sCi0gICAgeyAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcyIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSB9LAot
ICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2Vz
QXR0cmlidXRlIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSkg
fSwKLSAgICB7ICJ3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlIiwgRG9u
dERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0
dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1
dGUpIH0sCisgICAgeyAiZW51bUF0dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5v
SW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9iakVudW1BdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqRW51bUF0dHIpIH0sCisgICAgeyAiYnl0
ZUF0dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakJ5dGVB
dHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqQnl0ZUF0dHIpIH0sCisgICAgeyAib2N0ZXRBdHRyIiwgRG9udERlbGV0
ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpPY3RldEF0dHIpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpP
Y3RldEF0dHIpIH0sCisgICAgeyAic2hvcnRBdHRyIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vz
c29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpTaG9ydEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpTaG9ydEF0dHIpIH0sCisg
ICAgeyAidW5zaWduZWRTaG9ydEF0dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5v
SW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0
dHIpIH0sCisgICAgeyAibG9uZ0F0dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5v
SW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9iakxvbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqTG9uZ0F0dHIpIH0sCisgICAgeyAibG9u
Z0xvbmdBdHRyIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpM
b25nTG9uZ0F0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIpIH0sCisgICAgeyAidW5zaWduZWRM
b25nTG9uZ0F0dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
alVuc2lnbmVkTG9uZ0xvbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIpIH0s
CisgICAgeyAic3RyaW5nQXR0ciIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRy
aW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqU3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialN0cmluZ0F0dHIpIH0sCisgICAgeyAidGVz
dE9iakF0dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialRl
c3RPYmpBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIpIH0sCisgICAgeyAiWE1MT2JqQXR0ciIs
IERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqWE1MT2JqQXR0ciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9ialhNTE9iakF0dHIpIH0sCisgICAgeyAiY3JlYXRlIiwgRG9udERlbGV0ZSB8IEN1
c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDcmVhdGUpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpDcmVhdGUpIH0s
CisgICAgeyAicmVmbGVjdGVkU3RyaW5nQXR0ciIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3Nv
ciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxlY3Rl
ZFN0cmluZ0F0dHIpIH0sCisgICAgeyAicmVmbGVjdGVkSW50ZWdyYWxBdHRyIiwgRG9udERlbGV0
ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIpIH0sCisgICAgeyAicmVmbGVjdGVkVW5z
aWduZWRJbnRlZ3JhbEF0dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmlu
c2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqUmVmbGVjdGVk
VW5zaWduZWRJbnRlZ3JhbEF0dHIpIH0sCisgICAgeyAicmVmbGVjdGVkQm9vbGVhbkF0dHIiLCBE
b250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZEJvb2xl
YW5BdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIpIH0sCisgICAgeyAicmVmbGVj
dGVkVVJMQXR0ciIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2Jq
UmVmbGVjdGVkVVJMQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIpIH0sCisgICAgeyAi
cmVmbGVjdGVkU3RyaW5nQXR0ciIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRy
aW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0
dHIpIH0sCisgICAgeyAicmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyIiwgRG9udERlbGV0ZSB8
IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0
dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIpIH0sCisgICAgeyAicmVm
bGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5v
SW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqUmVmbGVj
dGVkQ3VzdG9tQm9vbGVhbkF0dHIpIH0sCisgICAgeyAicmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciIs
IERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkQ3Vz
dG9tVVJMQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIpIH0sCisgICAgeyAi
dHlwZWRBcnJheUF0dHIiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2lj
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9ialR5cGVkQXJyYXlBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0dHIpIH0sCisgICAgeyAi
YXR0cldpdGhHZXR0ZXJFeGNlcHRpb24iLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5v
SW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24pIH0sCisgICAgeyAiYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iLCBEb250
RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhj
ZXB0aW9uKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24pIH0sCisgICAgeyAic3Ry
aW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24iLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3Is
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2Jq
U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pIH0sCisgICAgeyAic3RyaW5nQXR0cldpdGhT
ZXR0ZXJFeGNlcHRpb24iLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2lj
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9ialN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqU3RyaW5nQXR0cldp
dGhTZXR0ZXJFeGNlcHRpb24pIH0sCisgICAgeyAiY3VzdG9tQXR0ciIsIERvbnREZWxldGUgfCBD
dXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ3VzdG9tQXR0ciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakN1c3Rv
bUF0dHIpIH0sCisgICAgeyAid2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlIiwgRG9udERlbGV0ZSB8
IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUpIH0sCisgICAgeyAid2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3Is
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUpIH0sCisgICAgeyAid2l0
aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29y
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RP
YmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpIH0sCisgICAgeyAid2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNz
b3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFp
c2VzKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMp
IH0sCisgICAgeyAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJp
YnV0ZSIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqV2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUpIH0sCisgICAg
eyAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNl
cyIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9i
aldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMp
IH0sCisgICAgeyAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhT
cGFjZXNBdHRyaWJ1dGUiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2lj
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0
cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0
ZVdpdGhTcGFjZXNBdHRyaWJ1dGUpIH0sCisgICAgeyAid2l0aFNjcmlwdEFyZ3VtZW50c0FuZENh
bGxTdGFja0F0dHJpYnV0ZSIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5z
aWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9i
aldpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUpIH0sCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjEpCi0gICAgeyAiY29uZGl0aW9uYWxBdHRyMSIsIERvbnREZWxldGUsIE5vSW50
cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKSB9
LAorICAgIHsgImNvbmRpdGlvbmFsQXR0cjEiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3Is
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0
dHIxKSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRp
b24yKQotICAgIHsgImNvbmRpdGlvbmFsQXR0cjIiLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpDb25kaXRpb25hbEF0dHIyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMikgfSwKKyAgICB7
ICJjb25kaXRpb25hbEF0dHIyIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJp
bnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMikgfSwK
ICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLSAg
ICB7ICJjb25kaXRpb25hbEF0dHIzIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyMyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMpIH0sCisgICAgeyAiY29uZGl0
aW9uYWxBdHRyMyIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyMyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMpIH0sCiAjZW5kaWYK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKICAgICB7ICJjb25kaXRpb25hbEF0dHI0IiwgRG9udEVu
dW0sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcikgfSwKQEAgLTEzNCwyNiArMTM0LDI2IEBAIHN0
YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpUYWJsZVZhbHVlc1tdID0KICNpZiBF
TkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCiAgICAgeyAiY29uZGl0aW9u
YWxBdHRyNiIsIERvbnRFbnVtLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3Ry
dWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IpIH0sCiAjZW5kaWYK
LSAgICB7ICJjYWNoZWRBdHRyaWJ1dGUxIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJp
bnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKLSAgICB7ICJjYWNoZWRBdHRyaWJ1dGUyIiwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkg
fSwKLSAgICB7ICJhbnlBdHRyaWJ1dGUiLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpBbnlB
dHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUpIH0sCi0gICAgeyAiY29udGVudERvY3Vt
ZW50IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb250ZW50RG9jdW1l
bnQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PigwKSB9LAotICAgIHsgIm11dGFibGVQb2ludCIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
ak11dGFibGVQb2ludCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iak11dGFibGVQb2ludCkgfSwKLSAgICB7ICJpbW11dGFi
bGVQb2ludCIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakltbXV0YWJsZVBvaW50KSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqSW1tdXRhYmxlUG9pbnQpIH0sCi0gICAgeyAic3RyYXdiZXJyeSIsIERvbnREZWxldGUs
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9ialN0cmF3YmVycnkpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KSB9LAotICAg
IHsgInN0cmljdEZsb2F0IiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU3RyaWN0RmxvYXQp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RPYmpTdHJpY3RGbG9hdCkgfSwKLSAgICB7ICJkZXNjcmlwdGlvbiIsIERvbnREZWxl
dGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqRGVzY3JpcHRpb24pLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAotICAgIHsgImlk
IiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqSWQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpJZCkgfSwKLSAgICB7
ICJoYXNoIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpIYXNoKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwK
LSAgICB7ICJyZXBsYWNlYWJsZUF0dHJpYnV0ZSIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
alJlcGxhY2VhYmxlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUpIH0s
Ci0gICAgeyAibnVsbGFibGVEb3VibGVBdHRyaWJ1dGUiLCBEb250RGVsZXRlIHwgUmVhZE9ubHks
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKLSAgICB7ICJudWxs
YWJsZUxvbmdBdHRyaWJ1dGUiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
ak51bGxhYmxlTG9uZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCi0gICAgeyAibnVsbGFibGVCb29sZWFuQXR0cmli
dXRlIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpOdWxsYWJsZUJvb2xl
YW5BdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPigwKSB9LAotICAgIHsgIm51bGxhYmxlU3RyaW5nQXR0cmlidXRlIiwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ0F0dHJpYnV0ZSks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDAp
IH0sCi0gICAgeyAibnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUiLCBEb250RGVsZXRlLCBO
b0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iak51
bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKSB9LAotICAgIHsgIm51bGxhYmxlU3RyaW5nVmFs
dWUiLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1ZhbHVlKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1ZSkgfSwKLSAgICB7ICJhdHRyaWJ1dGUiLCBEb250RGVs
ZXRlIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCi0gICAgeyAiYXR0
cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUiLCBEb250RGVsZXRlLCBOb0ludHJpbnNpYywgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpB
dHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNl
cnZlZEVudW1UeXBlKSB9LAorICAgIHsgImNhY2hlZEF0dHJpYnV0ZTEiLCBEb250RGVsZXRlIHwg
UmVhZE9ubHkgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ2FjaGVkQXR0cmlidXRl
MSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KDApIH0sCisgICAgeyAiY2FjaGVkQXR0cmlidXRlMiIsIERvbnREZWxldGUgfCBSZWFkT25seSB8
IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKKyAg
ICB7ICJhbnlBdHRyaWJ1dGUiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmlu
c2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9iakFueUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakFueUF0dHJpYnV0ZSkgfSwKKyAgICB7ICJj
b250ZW50RG9jdW1lbnQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBDdXN0b21BY2Nlc3Nvciwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqQ29udGVudERvY3VtZW50KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKKyAgICB7ICJtdXRhYmxlUG9pbnQi
LCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iak11dGFibGVQb2lu
dCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdE9iak11dGFibGVQb2ludCkgfSwKKyAgICB7ICJpbW11dGFibGVQb2ludCIsIERv
bnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqSW1tdXRhYmxlUG9pbnQp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RPYmpJbW11dGFibGVQb2ludCkgfSwKKyAgICB7ICJzdHJhd2JlcnJ5IiwgRG9udERl
bGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpTdHJhd2JlcnJ5KSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
T2JqU3RyYXdiZXJyeSkgfSwKKyAgICB7ICJzdHJpY3RGbG9hdCIsIERvbnREZWxldGUgfCBDdXN0
b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU3RyaWN0RmxvYXQpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpTdHJpY3RG
bG9hdCkgfSwKKyAgICB7ICJkZXNjcmlwdGlvbiIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IEN1
c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpEZXNjcmlwdGlvbiksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisgICAgeyAiaWQi
LCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iaklkKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
T2JqSWQpIH0sCisgICAgeyAiaGFzaCIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IEN1c3RvbUFj
Y2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpIYXNoKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKKyAgICB7ICJyZXBsYWNlYWJsZUF0dHJp
YnV0ZSIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVwbGFj
ZWFibGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZSkgfSwKKyAgICB7
ICJudWxsYWJsZURvdWJsZUF0dHJpYnV0ZSIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IEN1c3Rv
bUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZSksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisg
ICAgeyAibnVsbGFibGVMb25nQXR0cmlidXRlIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgQ3Vz
dG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iak51bGxhYmxlTG9uZ0F0dHJpYnV0ZSksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisg
ICAgeyAibnVsbGFibGVCb29sZWFuQXR0cmlidXRlIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwg
Q3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZSks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDAp
IH0sCisgICAgeyAibnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUiLCBEb250RGVsZXRlIHwgUmVhZE9u
bHkgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1
dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PigwKSB9LAorICAgIHsgIm51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlIiwgRG9udERlbGV0
ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0
dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKSB9LAorICAg
IHsgIm51bGxhYmxlU3RyaW5nVmFsdWUiLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5v
SW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9iak51bGxhYmxlU3RyaW5nVmFsdWUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpOdWxsYWJsZVN0cmlu
Z1ZhbHVlKSB9LAorICAgIHsgImF0dHJpYnV0ZSIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IEN1
c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAorICAgIHsgImF0dHJp
YnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBO
b0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakF0
dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKSB9LAogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9u
dEVudW0gfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uc3RydWN0b3IpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAogICAgIHsg
MCwgMCwgTm9JbnRyaW5zaWMsIDAsIDAgfQogfTsKQEAgLTEzMDcsMTMgKzEzMDcsMTEgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlMKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdE9iaiogZG9tT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwotICAg
IGlmICghZG9tT2JqZWN0KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE9iajo6Z2V0Q29uc3RydWN0b3IoZXhl
Yy0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggMTQ1ZDQ5YTg3OThiMWI4MzVl
OGYzYmRmY2ZiZWJjYmM1NzNmYzM4Yy4uMTM0ODYyZDA4NjFjYTJmZDllMjdhYzg4Y2YyZDY5NTM3
YjdhMGVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNw
cApAQCAtMTkyLDEzICsxOTIsMTEgQEAgYm9vbCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXQKICAgICByZXR1
cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMsIEJhc2U+
KGV4ZWMsIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNUYWJsZSwgdGhpc09iamVjdCwgcHJv
cGVydHlOYW1lLCBzbG90KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7Ci0gICAgaWYgKCFkb21PYmplY3QpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yczo6Z2V0Q29uc3RydWN0b3IoZXhlYy0+dm0oKSwgZG9tT2JqZWN0LT5nbG9i
YWxPYmplY3QoKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDRmY2Y5ZTY0ZGNiMjE4MDNmNzljYTMzNDI0
NjkyOWRhYWJjZWQxNjMuLjA0ZGVhZjEwYTIwYTVmODUwZDY4NWNiNTcwODNlNGYwYzA3ZTUyNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UuY3BwCkBAIC0zOSwxMSArMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0
aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlVGFibGVWYWx1ZXNbXSA9CiB7Ci0gICAgeyAidmFsdWUiLCBEb250RGVsZXRlLCBOb0ludHJp
bnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZSksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKSB9LAotICAgIHsgInJlYWRvbmx5VmFsdWUiLCBE
b250RGVsZXRlIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZVJlYWRvbmx5VmFsdWUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAotICAgIHsgImNhY2hlZFZhbHVlIiwgRG9udERlbGV0
ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZSkgfSwKLSAg
ICB7ICJwb3J0cyIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlUG9ydHMpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAotICAgIHsgImNhY2hlZFJlYWRvbmx5VmFs
dWUiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAorICAgIHsgInZhbHVlIiwgRG9u
dERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VWYWx1ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZh
bHVlKSB9LAorICAgIHsgInJlYWRvbmx5VmFsdWUiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBD
dXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
UmVhZG9ubHlWYWx1ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0sCisgICAgeyAiY2FjaGVkVmFsdWUiLCBEb250RGVsZXRlIHwgQ3Vz
dG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNh
Y2hlZFZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFs
dWUpIH0sCisgICAgeyAicG9ydHMiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBDdXN0b21BY2Nl
c3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUG9ydHMpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9
LAorICAgIHsgImNhY2hlZFJlYWRvbmx5VmFsdWUiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBD
dXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q2FjaGVkUmVhZG9ubHlWYWx1ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCiAgICAgeyAiY29uc3RydWN0b3IiLCBEb250RW51bSB8
IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25z
dHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KDApIH0sCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgMCwgMCB9CiB9OwpAQCAtMjAw
LDEzICsyMDAsMTEgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZShFeGVjU3RhdGUKIH0KIAogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOwotICAgIGlmICghZG9tT2JqZWN0KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZTo6Z2V0Q29uc3RydWN0b3IoZXhlYy0+dm0oKSwgZG9tT2JqZWN0
LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAppbmRleCBjMzg3NzVm
ZWE4YTQzOTkxYzBmYjhkYmJkYTE1NTE2NDE5N2ZmZjQ1Li5lOTQ0MjFjYTVmN2M3YWUwZGRlNGM1
Zjg2OGU5ZjU0MDU1N2E1MDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKQEAgLTQ3LDEyICs0Nywx
MiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3RUeXBlZGVmc1RhYmxlVmFsdWVzW10gPQogewotICAgIHsgInVuc2lnbmVkTG9uZ0xvbmdB
dHRyIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIpIH0sCi0gICAgeyAiaW1tdXRh
YmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRl
ZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RUeXBlZGVmc0ltbXV0YWJs
ZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkgfSwKLSAgICB7ICJhdHRyV2l0aEdldHRlckV4Y2VwdGlv
biIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKSB9LAotICAgIHsgImF0
dHJXaXRoU2V0dGVyRXhjZXB0aW9uIiwgRG9udERlbGV0ZSwgTm9JbnRyaW5zaWMsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNB
dHRyV2l0aFNldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFR5cGVkZWZzQXR0cldpdGhTZXR0ZXJFeGNl
cHRpb24pIH0sCi0gICAgeyAic3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24iLCBEb250RGVs
ZXRlLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbikgfSwKLSAgICB7ICJz
dHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIsIERvbnREZWxldGUsIE5vSW50cmluc2ljLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5
cGVkZWZzU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RUeXBlZGVmc1N0cmlu
Z0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKSB9LAorICAgIHsgInVuc2lnbmVkTG9uZ0xvbmdBdHRy
IiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RUeXBlZGVmc1Vuc2ln
bmVkTG9uZ0xvbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cikgfSwK
KyAgICB7ICJpbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUiLCBEb250RGVsZXRlIHwgQ3Vz
dG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlw
dFZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUpIH0s
CisgICAgeyAiYXR0cldpdGhHZXR0ZXJFeGNlcHRpb24iLCBEb250RGVsZXRlIHwgQ3VzdG9tQWNj
ZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKSB9LAorICAgIHsgImF0dHJXaXRoU2V0
dGVyRXhjZXB0aW9uIiwgRG9udERlbGV0ZSB8IEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RU
eXBlZGVmc0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNBdHRyV2l0aFNl
dHRlckV4Y2VwdGlvbikgfSwKKyAgICB7ICJzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiIs
IERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNTdHJpbmdB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24pIH0sCisgICAgeyAic3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iLCBE
b250RGVsZXRlIHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0
cldpdGhTZXR0ZXJFeGNlcHRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uKSB9LAogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVudW0gfCBSZWFkT25seSwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCiAgICAgeyAwLCAwLCBOb0ludHJp
bnNpYywgMCwgMCB9CiB9OwpAQCAtMjY2LDEzICsyNjYsMTEgQEAgRW5jb2RlZEpTVmFsdWUganNU
ZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMs
IEVuY28KIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBKU1Rlc3RUeXBlZGVmcyogZG9tT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
Ci0gICAgaWYgKCFkb21PYmplY3QpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0VHlwZWRlZnM6OmdldENvbnN0
cnVjdG9yKGV4ZWMtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmli
dXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJp
YnV0ZS5jcHAKaW5kZXggMjYzOTczZmUwNWQ2ZjM2NzBhMzFmMjNhYmU5NGRkYWZhMDVmNDRiYy4u
ZmJjNjI5OWQ4YWQ5YWQ2MWIxZGU0YTc3MTRkNThkYjMxZmQwNmJkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3Bw
CkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTYXR0cmlidXRlVGFibGVWYWx1ZXNbXSA9CiB7Ci0gICAgeyAicmVhZG9u
bHkiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzYXR0cmlidXRlUmVhZG9ubHkpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9
LAorICAgIHsgInJlYWRvbmx5IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgQ3VzdG9tQWNjZXNz
b3IsIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzYXR0cmlidXRlUmVhZG9ubHkpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAogICAgIHsgImNvbnN0cnVjdG9yIiwg
RG9udEVudW0gfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNhdHRyaWJ1dGVDb25zdHJ1Y3RvciksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCiAg
ICAgeyAwLCAwLCBOb0ludHJpbnNpYywgMCwgMCB9CiB9OwpAQCAtMTMzLDEzICsxMzMsMTEgQEAg
RW5jb2RlZEpTVmFsdWUganNhdHRyaWJ1dGVSZWFkb25seShFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmMKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc2F0dHJpYnV0
ZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNhdHRyaWJ1dGVD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU2F0dHJpYnV0ZSogZG9tT2JqZWN0
ID0ganNEeW5hbWljQ2FzdDxKU2F0dHJpYnV0ZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7Ci0gICAgaWYgKCFkb21PYmplY3QpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNhdHRyaWJ1dGU6OmdldENv
bnN0cnVjdG9yKGV4ZWMtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVh
ZG9ubHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVh
ZG9ubHkuY3BwCmluZGV4IGY3NjY3ZDcwZWY0NTU2MmFlMjhiMDZiZDE2MWNlNDMyNzMzZGZkZjYu
LmE1NDljOTI0OWJjZmVhNTJlNzgwNGMzNTMxYjJjMmJhNGMyMjEzMzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAK
QEAgLTExNywxMyArMTE3LDExIEBAIGJvb2wgSlNyZWFkb25seTo6Z2V0T3duUHJvcGVydHlTbG90
KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOCiAgICAgcmV0dXJu
IGdldFN0YXRpY1ZhbHVlU2xvdDxKU3JlYWRvbmx5LCBCYXNlPihleGVjLCBKU3JlYWRvbmx5VGFi
bGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzcmVhZG9ubHlDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpz
cmVhZG9ubHlDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU3JlYWRvbmx5KiBk
b21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTcmVhZG9ubHkqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOwotICAgIGlmICghZG9tT2JqZWN0KQotICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTcmVhZG9ubHk6
OmdldENvbnN0cnVjdG9yKGV4ZWMtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGE5YTIwYjgxYjQzZjUxZTM2ZTc0YjEyZTNkNmEyMTk0Y2QxZmNkZjcuLjll
NDRmOWI0MjQyNTFjYTQ0NjIyNWIxMWM5NDYwMzM4MDhiOWIwNWIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxNC0wMS0yOCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIE1ha2UgRE9NIGF0dHJpYnV0ZXMgYXBwZWFyIHRvIGJlIGZhdXggYWNjZXNzb3IgcHJvcGVy
dGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3
Nzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWljaGFlbCBTYWJvZmYuCisKKyAgICAgICAgVGhl
c2UgcHJvcGVydGllcyBub3cgc2hvdyB1cCBhcyBhY2Nlc3NvcnMgaW4gdGhlc2UgdGVzdHMKKwor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9yZXBsYWNlYWJsZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9kb20vV2luZG93L3JlcGxhY2VhYmxlLmh0bWw6CisgICAgICAgICoganMvZG9t
L2dldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvcmVz
b3VyY2VzL2dldE93blByb3BlcnR5RGVzY3JpcHRvci5qczoKKwogMjAxNC0wMS0yOSAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBXZWJDcnlwdG8g
dGVzdCB0byB2ZXJpZnkgdGhhdCBCaWdJbnRlZ2VyIGFsbG93cyBmb3IgbGVhZGluZyB6ZXJvZXMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXBsYWNlYWJsZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVwbGFjZWFibGUtZXhwZWN0
ZWQudHh0CmluZGV4IGQ5ZTE2OGQ3MzZlN2ViZTkyYmQ0YTcyNTdhNGEzYjExM2FmYTg2ZjcuLjU5
MmI0OWY4MmMwMTZmZjNhYmVlOTY5YTcyY2IzY2MzNTk5Njg3ZTggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXBsYWNlYWJsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3JlcGxhY2VhYmxlLWV4cGVjdGVkLnR4dApAQCAtMyw3
ICszLDcgQEAgVGVzdHMgdGhhdCBSZXBsYWNlYWJsZSBhdHRyaWJ1dGVzIGFyZSB3cml0YWJsZQog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcih3aW5kb3csICJpbm5lckhlaWdodCIpLndyaXRhYmxlIGlzIHRydWUKK1BBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICJpbm5lckhlaWdodCIpLmhh
c093blByb3BlcnR5KCJnZXQiKSBpcyB0cnVlCiBQQVNTIHdpbmRvdy5pbm5lckhlaWdodCBpcyA0
MgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVwbGFjZWFibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9yZXBsYWNlYWJsZS5odG1sCmluZGV4IDM4OGNjYWY1NzJlZDdmNDQzODU0MTll
NDQ5N2E2NzgwZTE4MjhmN2UuLmQwN2VkMDRjYjU0YmM3NzY2MDYxODQzZjIzMjJlZDU2MGI4OTVk
MWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXBsYWNlYWJsZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXBsYWNlYWJsZS5odG1sCkBA
IC00LDcgKzQsNyBAQAogCiBkZXNjcmlwdGlvbignVGVzdHMgdGhhdCBSZXBsYWNlYWJsZSBhdHRy
aWJ1dGVzIGFyZSB3cml0YWJsZScpOwogCi1zaG91bGRCZVRydWUoJ09iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3Iod2luZG93LCAiaW5uZXJIZWlnaHQiKS53cml0YWJsZScpOworc2hvdWxk
QmVUcnVlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgImlubmVySGVp
Z2h0IikuaGFzT3duUHJvcGVydHkoImdldCIpJyk7CiAKIHdpbmRvdy5pbm5lckhlaWdodCA9IDQy
Owogc2hvdWxkQmUoJ3dpbmRvdy5pbm5lckhlaWdodCcsICc0MicpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL2dldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9qcy9kb20vZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dApp
bmRleCA1Mjk5NGYyMmM4ODZkNjQxMzY2MGJmYzMwZTE5YWE3YTgyY2NkZThhLi4xZTg3MjcyMWZh
ZWZjZTQ0NDQ3NjI5MzE1ZmFhZDdhNDA2MjljNTMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9q
cy9kb20vZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dApAQCAtMTI5
LDkgKzEyOSwxMCBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnWE1MSHR0cFJlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnZwogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1hNTEh0dHBSZXF1ZXN0JykuaGFzT3duUHJvcGVy
dHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnWE1MSHR0cFJlcXVlc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnWE1MSHR0cFJlcXVlc3QnKS5jb25m
aWd1cmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ2xlbmd0aCcpLnZhbHVlIGlzIGdsb2JhbC5sZW5ndGgKLVBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdsZW5ndGgnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0
JykgaXMgZmFsc2UKLVBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdsZW5ndGgnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdsZW5ndGgnKS5nZXQgaXMgdW5kZWZpbmVk
CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnbGVuZ3RoJyku
c2V0IGlzIHVuZGVmaW5lZAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ2xlbmd0aCcpLmhhc093blByb3BlcnR5KCd2YWx1ZScpIGlzIGZhbHNlCitQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnbGVuZ3RoJykuaGFzT3duUHJv
cGVydHkoJ3dyaXRhYmxlJykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdsZW5ndGgnKS5lbnVtZXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdsZW5ndGgnKS5jb25maWd1cmFibGUg
aXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsIDAp
LnZhbHVlIGlzIGdsb2JhbFswXQpAQCAtMTM5LDkgKzE0MCwxMCBAQCBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAwKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMg
ZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsIDApLmhh
c093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgMCkuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgMCkuY29uZmlndXJhYmxlIGlzIGZhbHNlCi1Q
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ2RpdicpLCAnbGVuZ3RoJykudmFsdWUgaXMgMQotUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYnKSwg
J2xlbmd0aCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYn
KSwgJ2xlbmd0aCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdk
aXYnKSwgJ2xlbmd0aCcpLmdldCBpcyB1bmRlZmluZWQKK1BBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JyksICdsZW5n
dGgnKS5zZXQgaXMgdW5kZWZpbmVkCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpLCAnbGVuZ3RoJykuaGFzT3du
UHJvcGVydHkoJ3ZhbHVlJykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JyksICdsZW5ndGgnKS5o
YXNPd25Qcm9wZXJ0eSgnd3JpdGFibGUnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYnKSwgJ2xl
bmd0aCcpLmVudW1lcmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYnKSwgJ2xlbmd0aCcpLmNv
bmZpZ3VyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYnKSwgMCkudmFsdWUgaXMgZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpWzBdCkBAIC0xNTQsOSArMTU2LDEwIEBAIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKCdwYXNzJyksIDApCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncGFzcycpLCAwKS5oYXNPd25Qcm9w
ZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNzJyksIDApLmVudW1lcmFibGUg
aXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3MnKSwgMCkuY29uZmlndXJhYmxlIGlzIGZhbHNlCi1Q
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZSgncGFzcycpLCAnbGVuZ3RoJykudmFsdWUgaXMgZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZSgncGFzcycpLmxlbmd0aAotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3MnKSwgJ2xlbmd0
aCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3MnKSwg
J2xlbmd0aCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bh
c3MnKSwgJ2xlbmd0aCcpLmdldCBpcyB1bmRlZmluZWQKK1BBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNzJyksICds
ZW5ndGgnKS5zZXQgaXMgdW5kZWZpbmVkCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncGFzcycpLCAnbGVuZ3RoJyku
aGFzT3duUHJvcGVydHkoJ3ZhbHVlJykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNzJyksICds
ZW5ndGgnKS5oYXNPd25Qcm9wZXJ0eSgnd3JpdGFibGUnKSBpcyBmYWxzZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUo
J3Bhc3MnKSwgJ2xlbmd0aCcpLmVudW1lcmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3Mn
KSwgJ2xlbmd0aCcpLmNvbmZpZ3VyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGNhbnZhc1BpeGVsQXJyYXksICdsZW5ndGgnKS52YWx1ZSBpcyBjYW52
YXNQaXhlbEFycmF5Lmxlbmd0aApAQCAtMTY5LDkgKzE3MiwxMCBAQCBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoY2FudmFzUGl4ZWxBcnJheSwgMCkuaGFzT3duUHJvcGVydHko
J2dldCcpCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY2FudmFzUGl4ZWxB
cnJheSwgMCkuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoY2FudmFzUGl4ZWxBcnJheSwgMCkuZW51bWVyYWJsZSBpcyB0
cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY2FudmFzUGl4ZWxBcnJh
eSwgMCkuY29uZmlndXJhYmxlIGlzIGZhbHNlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3Ioc2VsZWN0LCAnbGVuZ3RoJykudmFsdWUgaXMgc2VsZWN0Lmxlbmd0aAotUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGVjdCwgJ2xlbmd0aCcpLmhhc093blBy
b3BlcnR5KCdnZXQnKSBpcyBmYWxzZQotUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKHNlbGVjdCwgJ2xlbmd0aCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGVjdCwgJ2xlbmd0aCcpLmdldCBp
cyB1bmRlZmluZWQKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxlY3Qs
ICdsZW5ndGgnKS5zZXQgaXMgdW5kZWZpbmVkCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3Ioc2VsZWN0LCAnbGVuZ3RoJykuaGFzT3duUHJvcGVydHkoJ3ZhbHVlJykgaXMgZmFs
c2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxlY3QsICdsZW5ndGgn
KS5oYXNPd25Qcm9wZXJ0eSgnd3JpdGFibGUnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKHNlbGVjdCwgJ2xlbmd0aCcpLmVudW1lcmFibGUgaXMgdHJ1ZQog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGVjdCwgJ2xlbmd0aCcpLmNv
bmZpZ3VyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHNlbGVjdCwgMCkudmFsdWUgaXMgc2VsZWN0WzBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9yZXNvdXJjZXMvZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmpzIGIvTGF5b3V0VGVzdHMvanMv
cmVzb3VyY2VzL2dldE93blByb3BlcnR5RGVzY3JpcHRvci5qcwppbmRleCAxNjM0OGQxMzA4ZTE2
ZWYxMzdkOGU0NTUyMWFhZTg2YTY2NzM1ZTU1Li4wYjUxZmM0NGU2YTgyYzU4M2ZhNjBmYjU5ZmFk
YTUwM2QwYTliNzNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IuanMKQEAgLTQ0LDE5ICs0NCwxOSBAQCBkZXNjcmlwdG9yU2hv
dWxkQmUoImdsb2JhbCIsICInTmFOJyIsIHt3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IGZh
bHNlLCBjb25maQogZGVzY3JpcHRvclNob3VsZEJlKCJnbG9iYWwiLCAiJ0luZmluaXR5JyIsIHt3
cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IGZhbHNlLCB2
YWx1ZToiSW5maW5pdHkifSk7CiBkZXNjcmlwdG9yU2hvdWxkQmUoImdsb2JhbCIsICInd2luZG93
JyIsIHt3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFs
c2UsIHZhbHVlOiJnbG9iYWwifSk7CiBkZXNjcmlwdG9yU2hvdWxkQmUoImdsb2JhbCIsICInWE1M
SHR0cFJlcXVlc3QnIiwge3dyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSwgY29uZmln
dXJhYmxlOiB0cnVlLCB2YWx1ZToiWE1MSHR0cFJlcXVlc3QifSk7Ci1kZXNjcmlwdG9yU2hvdWxk
QmUoImdsb2JhbCIsICInbGVuZ3RoJyIsIHt3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1
ZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgdmFsdWU6Imdsb2JhbC5sZW5ndGgifSk7CitkZXNjcmlw
dG9yU2hvdWxkQmUoImdsb2JhbCIsICInbGVuZ3RoJyIsIHtnZXQ6IHVuZGVmaW5lZCwgc2V0OiB1
bmRlZmluZWQsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFsc2V9KTsKIGRlc2Ny
aXB0b3JTaG91bGRCZSgiZ2xvYmFsIiwgIjAiLCB7d3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6
IGZhbHNlLCBjb25maWd1cmFibGU6IGZhbHNlLCB2YWx1ZToiZ2xvYmFsWzBdIn0pOwotZGVzY3Jp
cHRvclNob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JykiLCAiJ2xl
bmd0aCciLCB7d3JpdGFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6
IGZhbHNlLCB2YWx1ZToiMSJ9KTsKK2Rlc2NyaXB0b3JTaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoJ2RpdicpIiwgIidsZW5ndGgnIiwge2dldDogdW5kZWZpbmVkLCBzZXQ6
IHVuZGVmaW5lZCwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiBmYWxzZX0pOwogZGVz
Y3JpcHRvclNob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JykiLCAi
MCIsIHt3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFs
c2UsIHZhbHVlOiJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JylbMF0ifSk7CiBk
ZXNjcmlwdG9yU2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3Mn
KSIsICIwIiwge3dyaXRhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxl
OiBmYWxzZSwgdmFsdWU6ImRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3MnKVsw
XSJ9KTsKLWRlc2NyaXB0b3JTaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZSgncGFzcycpIiwgIidsZW5ndGgnIiwge3dyaXRhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogdHJ1
ZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgdmFsdWU6ImRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFz
c05hbWUoJ3Bhc3MnKS5sZW5ndGgifSk7CitkZXNjcmlwdG9yU2hvdWxkQmUoImRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3MnKSIsICInbGVuZ3RoJyIsIHtnZXQ6IHVuZGVmaW5l
ZCwgc2V0OiB1bmRlZmluZWQsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFsc2V9
KTsKIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKIHZhciBj
YW52YXNQaXhlbEFycmF5ID0gY2FudmFzLmdldENvbnRleHQoIjJkIikuY3JlYXRlSW1hZ2VEYXRh
KDEwLDEwKS5kYXRhOwogZGVzY3JpcHRvclNob3VsZEJlKCJjYW52YXNQaXhlbEFycmF5IiwgIids
ZW5ndGgnIiwge3dyaXRhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxl
OiBmYWxzZSwgdmFsdWU6ImNhbnZhc1BpeGVsQXJyYXkubGVuZ3RoIn0pOwogZGVzY3JpcHRvclNo
b3VsZEJlKCJjYW52YXNQaXhlbEFycmF5IiwgIjAiLCB7d3JpdGFibGU6IHRydWUsIGVudW1lcmFi
bGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFsc2UsIHZhbHVlOiJjYW52YXNQaXhlbEFycmF5WzBd
In0pOwogdmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOwogc2Vs
ZWN0LmlubmVySFRNTCA9ICI8b3B0aW9uPmZvbzwvb3B0aW9uPiI7Ci1kZXNjcmlwdG9yU2hvdWxk
QmUoInNlbGVjdCIsICInbGVuZ3RoJyIsIHt3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRy
dWUsIGNvbmZpZ3VyYWJsZTogZmFsc2UsIHZhbHVlOiJzZWxlY3QubGVuZ3RoIn0pOworZGVzY3Jp
cHRvclNob3VsZEJlKCJzZWxlY3QiLCAiJ2xlbmd0aCciLCB7Z2V0OiB1bmRlZmluZWQsIHNldDog
dW5kZWZpbmVkLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IGZhbHNlfSk7CiBkZXNj
cmlwdG9yU2hvdWxkQmUoInNlbGVjdCIsICIwIiwge3dyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxl
OiB0cnVlLCBjb25maWd1cmFibGU6IGZhbHNlLCB2YWx1ZToic2VsZWN0WzBdIn0pOwogCiB2YXIg
b2JqZWN0V2l0aEdldHRlciA9IHt9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>