<?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>77585</bug_id>
          
          <creation_ts>2012-02-01 17:16:25 -0800</creation_ts>
          <short_desc>Remove [DelegatingPrototypeGetOwnPropertySlot], [HasCustomIndexGetter], [HasIndexSetter], [JSConstructorTemplate] and [NonEmpty] from code generators</short_desc>
          <delta_ts>2012-02-01 20:18:14 -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>WebCore JavaScript</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>
          
          <blocked>77393</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>547508</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-01 17:16:25 -0800</bug_when>
    <thetext>We can remove [DelegatingPrototypeGetOwnPropertySlot], [HasCustomIndexGetter], [HasIndexSetter], [JSConstructorTemplate] and [NonEmpty] from code generators, since they are not used by no IDL files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547512</commentid>
    <comment_count>1</comment_count>
      <attachid>125050</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-01 17:19:40 -0800</bug_when>
    <thetext>Created attachment 125050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547538</commentid>
    <comment_count>2</comment_count>
      <attachid>125056</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-01 17:56:02 -0800</bug_when>
    <thetext>Created attachment 125056
patch for commit

added run-bindings-tests results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547586</commentid>
    <comment_count>3</comment_count>
      <attachid>125056</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-01 19:25:18 -0800</bug_when>
    <thetext>Comment on attachment 125056
patch for commit

Clearing flags on attachment: 125056

Committed r106528: &lt;http://trac.webkit.org/changeset/106528&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125050</attachid>
            <date>2012-02-01 17:19:40 -0800</date>
            <delta_ts>2012-02-01 17:53:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77585-20120202101939.patch</filename>
            <type>text/plain</type>
            <size>19486</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFiZWExNGVhYzFkYTcz
MTcwNmU3ZmFmNzEwMjE2MjIzZTQ2ZjhmMi4uYTVkOThlY2IzNGY4OTdkNTE1YjRjNzc3NmQzMjQw
NGE4ZmE5YzYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAyLTAxICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgW0RlbGVn
YXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3RdLCBbSGFzQ3VzdG9tSW5kZXhHZXR0ZXJd
LAorICAgICAgICBbSGFzSW5kZXhTZXR0ZXJdLCBbSlNDb25zdHJ1Y3RvclRlbXBsYXRlXSBhbmQg
W05vbkVtcHR5XSBmcm9tIGNvZGUgZ2VuZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgW0RlbGVnYXRpbmdQcm90
b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3RdLCBbSGFzQ3VzdG9tSW5kZXhHZXR0ZXJdLAorICAgICAg
ICBbSGFzSW5kZXhTZXR0ZXJdLCBbSlNDb25zdHJ1Y3RvclRlbXBsYXRlXSBhbmQgW05vbkVtcHR5
XSBmcm9tIGNvZGUgZ2VuZXJhdG9ycywKKyAgICAgICAgc2luY2UgdGhleSBhcmUgbm90IHVzZWQg
Ynkgbm8gSURMIGZpbGVzLgorCisgICAgICAgIE5vIHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZp
b3IuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG06CisgICAg
ICAgIChHZXR0ZXJFeHByZXNzaW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keSk6
CisgICAgICAgIChHZW5lcmF0ZUdldE93blByb3BlcnR5RGVzY3JpcHRvckJvZHkpOgorICAgICAg
ICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6Cisg
ICAgICAgIChJc0NvbnN0cnVjdGFibGUpOgorICAgICAgICAoSXNDb25zdHJ1Y3RvclRlbXBsYXRl
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6CisKIDIwMTIt
MDItMDEgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3Bl
bmJvc3NhLm9yZz4KIAogICAgICAgICBBdm9pZCBjcmVhdGluZyBOYW1lZE5vZGVNYXAgdW5uZWNl
c3NhcmlseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yLnBtCmluZGV4IDJhZDk4ZTZjN2IxM2RiMGRkY2YwZjVhN2M3NTA1OWY0OTUyZTllZjMuLjg2
YTBjYzU1ZmQzOTI1NDA5MWRjM2UxMDEwMTlmM2QzZjA4YzJlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KQEAgLTU0OCwxMSArNTQ4
LDcgQEAgc3ViIEdldHRlckV4cHJlc3Npb24KIAogICAgIG15ICRmdW5jdGlvbk5hbWU7CiAgICAg
aWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlVSTCJ9KSB7
Ci0gICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJOb25FbXB0eSJ9KSB7Ci0gICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gImdldE5vbkVtcHR5
VVJMQXR0cmlidXRlIjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICRmdW5jdGlvbk5h
bWUgPSAiZ2V0VVJMQXR0cmlidXRlIjsKLSAgICAgICAgfQorICAgICAgICAkZnVuY3Rpb25OYW1l
ID0gImdldFVSTEF0dHJpYnV0ZSI7CiAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT50eXBlIGVxICJib29sZWFuIikgewogICAgICAgICAkZnVuY3Rpb25OYW1lID0gImhhc0F0dHJp
YnV0ZSI7CiAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJsb25n
IikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQppbmRleCAyMTM5YTkzZjExMTgyMzVjMDhkNzhmMGFhOTg1ZTQ3YzMyMmM0NmJhLi5h
NTc3NmM3MjRjMTllZDViNzY2YWFiMmViNTQ1YzA5NjYyNzM5MDIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNDMzLDcg
KzQzMyw3IEBAIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkKICAgICAgICAgJiRt
YW51YWxMb29rdXBHZXR0ZXJHZW5lcmF0aW9uKCk7CiAgICAgfQogCi0gICAgaWYgKCRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgeworICAgIGlm
ICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7
CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgYm9vbCBvaztcbiIp
OwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHVuc2lnbmVkIGlu
ZGV4ID0gcHJvcGVydHlOYW1lLnRvVUludDMyKG9rKTtcbiIpOwogCkBAIC00NDQsNyArNDQ0LDcg
QEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keQogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAob2sgJiYg
aW5kZXggPCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmplY3QtPmltcGwoKSkt
Pmxlbmd0aCgpKSB7XG4iKTsKICAgICAgICAgfQotICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgeworICAgICAgICBp
ZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVy
In0pIHsKICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAg
IHNsb3Quc2V0VmFsdWUodGhpc09iamVjdC0+Z2V0QnlJbmRleChleGVjLCBpbmRleCkpO1xuIik7
CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJ
bXBsLCAiICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXNPYmplY3QsIGluZGV4LCBpbmRl
eEdldHRlcik7XG4iKTsKQEAgLTUyNywxMyArNTI3LDEzIEBAIHN1YiBHZW5lcmF0ZUdldE93blBy
b3BlcnR5RGVzY3JpcHRvckJvZHkKICAgICAgICAgJiRtYW51YWxMb29rdXBHZXR0ZXJHZW5lcmF0
aW9uKCk7CiAgICAgfQogICAgIAotICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pIHsKKyAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgewogICAgICAgICBwdXNoKEBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgIGJvb2wgb2s7XG4iKTsKICAgICAgICAgcHVz
aChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICB1bnNpZ25lZCBpbmRleCA9IHBy
b3BlcnR5TmFtZS50b1VJbnQzMihvayk7XG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9ySW1wbCwgIiAgICBpZiAob2sgJiYgaW5kZXggPCBzdGF0aWNfY2FzdDwkaW1w
bENsYXNzTmFtZSo+KHRoaXNPYmplY3QtPmltcGwoKSktPmxlbmd0aCgpKSB7XG4iKTsKLSAgICAg
ICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0
dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4
R2V0dGVyIn0pIHsKKyAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7CiAgICAgICAgICAgICAjIEFzc3VtZSB0aGF0IGlm
IHRoZXJlJ3MgYSBzZXR0ZXIsIHRoZSBpbmRleCB3aWxsIGJlIHdyaXRhYmxlCi0gICAgICAgICAg
ICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhTZXR0ZXIifSB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleFNldHRlciJ9
KSB7CisgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFz
Q3VzdG9tSW5kZXhTZXR0ZXIifSkgewogICAgICAgICAgICAgICAgIHB1c2goQGdldE93blByb3Bl
cnR5RGVzY3JpcHRvckltcGwsICIgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcih0aGlz
T2JqZWN0LT5nZXRCeUluZGV4KGV4ZWMsIGluZGV4KSwgJHtuYW1lc3BhY2VNYXliZX1Eb250RGVs
ZXRlKTtcbiIpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXNoKEBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgICAgICBkZXNjcmlwdG9yLnNldERlc2Ny
aXB0b3IodGhpc09iamVjdC0+Z2V0QnlJbmRleChleGVjLCBpbmRleCksICR7bmFtZXNwYWNlTWF5
YmV9RG9udERlbGV0ZSB8ICR7bmFtZXNwYWNlTWF5YmV9UmVhZE9ubHkpO1xuIik7CkBAIC01NDIs
NyArNTQyLDcgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQm9keQogICAg
ICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgJHtu
YW1lc3BhY2VNYXliZX1Qcm9wZXJ0eVNsb3Qgc2xvdDtcbiIpOwogICAgICAgICAgICAgcHVzaChA
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgc2xvdC5zZXRDdXN0b21JbmRl
eCh0aGlzT2JqZWN0LCBpbmRleCwgaW5kZXhHZXR0ZXIpO1xuIik7CiAgICAgICAgICAgICAjIEFz
c3VtZSB0aGF0IGlmIHRoZXJlJ3MgYSBzZXR0ZXIsIHRoZSBpbmRleCB3aWxsIGJlIHdyaXRhYmxl
Ci0gICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5k
ZXhTZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21J
bmRleFNldHRlciJ9KSB7CisgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhTZXR0ZXIifSkgewogICAgICAgICAgICAgICAgIHB1c2go
QGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVz
Y3JpcHRvcihzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSksICR7bmFtZXNwYWNlTWF5
YmV9RG9udERlbGV0ZSk7XG4iKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgZGVzY3JpcHRv
ci5zZXREZXNjcmlwdG9yKHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwgJHtuYW1l
c3BhY2VNYXliZX1Eb250RGVsZXRlIHwgJHtuYW1lc3BhY2VNYXliZX1SZWFkT25seSk7XG4iKTsK
QEAgLTc1Niw3ICs3NTYsNiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBteSAkaGFzR2V0dGVy
ID0gJG51bUF0dHJpYnV0ZXMgPiAwIAogICAgICAgICAgICAgICAgICB8fCAhJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0KICAgICAgICAgICAgICAgICAg
fHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifQotICAg
ICAgICAgICAgICAgICB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0
b21JbmRleEdldHRlciJ9CiAgICAgICAgICAgICAgICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9CiAgICAgICAgICAgICAgICAgIHx8
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldE93blByb3BlcnR5U2xv
dCJ9CiAgICAgICAgICAgICAgICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkRlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QifQpAQCAtNzY3LDcgKzc2Niw3IEBAIHN1YiBH
ZW5lcmF0ZUhlYWRlcgogICAgIGlmICgkaGFzR2V0dGVyKSB7CiAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxs
KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlND
OjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDOjpKU0NlbGwq
LCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNs
b3QmKTtcbiIpIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdl
dHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4
R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0lu
ZGV4R2V0dGVyIn0pICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNPdmVy
cmlkaW5nTmFtZUdldHRlciJ9OworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDOjpKU0NlbGwqLCBKU0M6OkV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIp
IGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9
KSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzT3ZlcnJpZGluZ05hbWVH
ZXR0ZXIifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blBy
b3BlcnR5U2xvdERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkRlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QifTsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvckRlbGVnYXRlKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2Ny
aXB0b3ImKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRp
bmdHZXRPd25Qcm9wZXJ0eVNsb3QifTsKICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCJ9ID0gMTsKQEAgLTgzMiw3ICs4MzEsNyBAQCBzdWIg
R2VuZXJhdGVIZWFkZXIKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29s
IGRlZmluZU93blByb3BlcnR5KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYs
IGJvb2wgc2hvdWxkVGhyb3cpO1xuIikgaWYgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyI7
CiAKICAgICAjIEN1c3RvbSBnZXRPd25Qcm9wZXJ0eU5hbWVzIGZ1bmN0aW9uCi0gICAgaWYgKCRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldFByb3BlcnR5TmFtZXMifSB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0p
IHsKKyAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0UHJv
cGVydHlOYW1lcyJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4
R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0lu
ZGV4R2V0dGVyIn0pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMg
dm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6OkVudW1lcmF0aW9uTW9kZSBtb2RlID0gSlND
OjpFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTtcbiIpOwogICAgICAgICAkc3RydWN0dXJlRmxh
Z3N7IkpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyJ9ID0gMTsgICAgICAgCiAgICAgfQpA
QCAtOTU0LDcgKzk1Myw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlmICgkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9KSB7CiAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBpbmRleEdldHRlcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgdW5zaWduZWQpO1xuIik7CiAgICAgfQotICAgIGlm
ICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9
IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRl
ciJ9KSB7CisgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVy
aWNJbmRleEdldHRlciJ9KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgSlND
OjpKU1ZhbHVlIGdldEJ5SW5kZXgoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBpbmRleCk7XG4i
KTsKICAgICAgICAgCiAgICAgfQpAQCAtMTA0MywxMSArMTA0Miw5IEBAIHN1YiBHZW5lcmF0ZUhl
YWRlcgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuXG4iKTsKIAogICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbztc
biIpOwotICAgIGlmICgkbnVtRnVuY3Rpb25zID4gMCB8fCAkbnVtQ29uc3RhbnRzID4gMCB8fCAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlR2V0T3du
UHJvcGVydHlTbG90In0pIHsKKyAgICBpZiAoJG51bUZ1bmN0aW9ucyA+IDAgfHwgJG51bUNvbnN0
YW50cyA+IDApIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90RGVsZWdhdGUoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIikgaWYg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZUdldE93
blByb3BlcnR5U2xvdCJ9OwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wg
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpO1xuIikgaWYgJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3Bl
cnR5U2xvdCJ9OwogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90In0gPSAxOwogICAgIH0KICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tTWFya0Z1bmN0aW9uIn0gb3IgJG5lZWRzTWFya0NoaWxkcmVuKSB7
CkBAIC0xMzQwLDcgKzEzMzcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIEFk
ZEluY2x1ZGVzRm9yU1ZHQW5pbWF0ZWRUeXBlKCRpbnRlcmZhY2VOYW1lKSBpZiAkY2xhc3NOYW1l
ID1+IC9eSlNTVkdBbmltYXRlZC87CiAKICAgICAkaW1wbEluY2x1ZGVzeyI8d3RmL0dldFB0ci5o
PiJ9ID0gMTsKLSAgICAkaW1wbEluY2x1ZGVzeyI8cnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5o
PiJ9ID0gMSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRl
ciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0
dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4
R2V0dGVyIn07CisgICAgJGltcGxJbmNsdWRlc3siPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXku
aD4ifSA9IDEgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0
ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhH
ZXR0ZXIifTsKIAogICAgIEFkZEluY2x1ZGVzRm9yVHlwZUluSW1wbCgkaW50ZXJmYWNlTmFtZSk7
CiAKQEAgLTE0OTUsMTYgKzE0OTIsMTEgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KIAotICAgIGlmICgkbnVt
Q29uc3RhbnRzID4gMCB8fCAkbnVtRnVuY3Rpb25zID4gMCB8fCAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlR2V0T3duUHJvcGVydHlTbG90In0pIHsK
KyAgICBpZiAoJG51bUNvbnN0YW50cyA+IDAgfHwgJG51bUZ1bmN0aW9ucyA+IDApIHsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Z2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAk
e2NsYXNzTmFtZX1Qcm90b3R5cGUqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9UHJv
dG90eXBlKj4oY2VsbCk7XG4iKTsKIAotICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9KSB7Ci0g
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAodGhpc09iamVjdC0+Z2V0T3du
UHJvcGVydHlTbG90RGVsZWdhdGUoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSlcbiIpOwotICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7Ci0g
ICAgICAgIH0KLQogICAgICAgICBpZiAoJG51bUNvbnN0YW50cyBlcSAwICYmICRudW1GdW5jdGlv
bnMgZXEgMCkgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEJh
c2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpO1xuIik7ICAgICAgICAKICAgICAgICAgfSBlbHNpZiAoJG51bUNvbnN0YW50cyBlcSAwKSB7
CkBAIC0xNTIwLDExICsxNTEyLDYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKiB0aGlzT2JqZWN0ID0ganNDYXN0PCR7Y2xhc3NO
YW1lfVByb3RvdHlwZSo+KG9iamVjdCk7XG4iKTsKIAotICAgICAgICBpZiAoJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xv
dCJ9KSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAodGhpc09iamVj
dC0+Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRGVsZWdhdGUoZXhlYywgcHJvcGVydHlOYW1lLCBk
ZXNjcmlwdG9yKSlcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHJldHVybiB0cnVlO1xuIik7Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGlmICgkbnVt
Q29uc3RhbnRzIGVxIDAgJiYgJG51bUZ1bmN0aW9ucyBlcSAwKSB7CiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4iKTsgICAgICAg
IAogICAgICAgICB9IGVsc2lmICgkbnVtQ29uc3RhbnRzIGVxIDApIHsKQEAgLTE2NDIsNyArMTYy
OSw2IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgbXkgJGhhc0dldHRlciA9ICRu
dW1BdHRyaWJ1dGVzID4gMCAKICAgICAgICAgICAgICAgICAgfHwgISRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9IAogICAgICAgICAgICAgICAgICB8fCAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9Ci0gICAgICAg
ICAgICAgICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUlu
ZGV4R2V0dGVyIn0KICAgICAgICAgICAgICAgICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0KICAgICAgICAgICAgICAgICAgfHwgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ0dldE93blByb3BlcnR5U2xv
dCJ9CiAgICAgICAgICAgICAgICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkN1c3RvbUdldE93blByb3BlcnR5U2xvdCJ9CkBAIC0xNjY2LDE0ICsxNjUyLDE0IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1c
blxuIik7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgCisgICAgICAgIGlmICgoJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgCiAgICAgICAgICAg
ICAgICAgJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc092ZXJyaWRpbmdO
YW1lR2V0dGVyIn0pIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2Ns
YXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0ganNDYXN0PCR7
Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pO1xuIik7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAocHJvcGVydHlOYW1lIDwg
c3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2JqZWN0LT5pbXBsKCkpLT5sZW5ndGgo
KSkge1xuIik7Ci0gICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgeworICAgICAgICAgICAgaWYgKCRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7CiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdC0+Z2V0QnlJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUpKTtcbiIpOwogICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAg
c2xvdC5zZXRDdXN0b21JbmRleCh0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHRoaXNPYmplY3Qt
PmluZGV4R2V0dGVyKTtcbiIpOwpAQCAtMjA1MywxMiArMjAzOSwxMiBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCgkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pICYmICEkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRQcm9wZXJ0eU5hbWVzIn0pIHsKKyAgICBp
ZiAoKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0p
ICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRQcm9wZXJ0eU5h
bWVzIn0pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6
Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFBy
b3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSlcbiIp
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05h
bWV9Kj4ob2JqZWN0KTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pO1xuIik7Ci0gICAgICAg
IGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0g
fHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVy
In0pIHsKKyAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0lu
ZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJp
Y0luZGV4R2V0dGVyIn0pIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDwke2ltcGxDbGFzc05hbWV9Kj4odGhp
c09iamVjdC0+aW1wbCgpKS0+bGVuZ3RoKCk7ICsraSlcbiIpOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20o
ZXhlYywgaSkpO1xuIik7CiAgICAgICAgIH0KQEAgLTM1OTcsNyArMzU4Myw3IEBAIHN1YiBJc0Nv
bnN0cnVjdGFibGUKIHsKICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKIAotICAgIHJldHVybiAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9IHx8ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tQ29uc3RydWN0b3IifSB8fCAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0NvbnN0cnVjdG9yVGVtcGxhdGUifSB8fCAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvclRlbXBsYXRlIn07CisgICAgcmV0
dXJuICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0g
fHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21Db25zdHJ1Y3RvciJ9
IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0gfHwgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9IHx8ICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yVGVtcGxhdGUifTsKIH0KIAog
c3ViIElzQ29uc3RydWN0b3JUZW1wbGF0ZQpAQCAtMzYwNSw3ICszNTkxLDcgQEAgc3ViIElzQ29u
c3RydWN0b3JUZW1wbGF0ZQogICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwogICAgIG15ICR0ZW1w
bGF0ZSA9IHNoaWZ0OwogCi0gICAgcmV0dXJuICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJKU0NvbnN0cnVjdG9yVGVtcGxhdGUifSAmJiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJKU0NvbnN0cnVjdG9yVGVtcGxhdGUifSBlcSAkdGVtcGxhdGUpIHx8ICgkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvclRlbXBsYXRlIn0gJiYgJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3JUZW1wbGF0ZSJ9IGVxICR0ZW1w
bGF0ZSk7CisgICAgcmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0
cnVjdG9yVGVtcGxhdGUifSAmJiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25z
dHJ1Y3RvclRlbXBsYXRlIn0gZXEgJHRlbXBsYXRlOwogfQogCiAxOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDczZmQxOWI3YmMw
YmI3MjA0YWZiMDk4ZTlhMDNiZjg4NzA1MWNlODkuLmY5ZTNjMmE4YjRlNmRmYmQyMGRlNWE1Y2Fi
YjJjODcwZTUwMWMzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdE9iai5pZGwKQEAgLTU2LDEyICs1NiwxMCBAQCBtb2R1bGUgdGVzdCB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gdW5zaWduZWQgbG9uZyByZWZsZWN0ZWRVbnNpZ25lZElu
dGVncmFsQXR0cjsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIHJlZmxlY3Rl
ZEJvb2xlYW5BdHRyOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5n
IHJlZmxlY3RlZFVSTEF0dHI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgTm9uRW1wdHks
IFVSTF0gRE9NU3RyaW5nIHJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0cjsKICAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0PWN1c3RvbUNvbnRlbnRTdHJpbmdBdHRyXSBET01TdHJpbmcgcmVmbGVjdGVk
U3RyaW5nQXR0cjsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWN1c3RvbUNvbnRlbnRJbnRl
Z3JhbEF0dHJdIGxvbmcgcmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyOwogICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3Q9Y3VzdG9tQ29udGVudEJvb2xlYW5BdHRyXSBib29sZWFuIHJlZmxlY3Rl
ZEN1c3RvbUJvb2xlYW5BdHRyOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Y3VzdG9tQ29u
dGVudFVSTEF0dHIsIFVSTF0gRE9NU3RyaW5nIHJlZmxlY3RlZEN1c3RvbVVSTEF0dHI7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jdXN0b21Db250ZW50Tm9uRW1wdHlVUkxBdHRyLCBOb25F
bXB0eSwgVVJMXSBET01TdHJpbmcgcmVmbGVjdGVkQ3VzdG9tTm9uRW1wdHlVUkxBdHRyOwogCiAg
ICAgICAgIC8vIE1ldGhvZHMKICAgICAgICAgdm9pZCAgICB2b2lkTWV0aG9kKCk7Cg==
</data>
<flag name="review"
          id="126461"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="126462"
          type_id="3"
          status="-"
          setter="haraken"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125056</attachid>
            <date>2012-02-01 17:56:02 -0800</date>
            <delta_ts>2012-02-01 19:25:18 -0800</delta_ts>
            <desc>patch for commit</desc>
            <filename>bug-77585-20120202105600.patch</filename>
            <type>text/plain</type>
            <size>49016</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFiZWExNGVhYzFkYTcz
MTcwNmU3ZmFmNzEwMjE2MjIzZTQ2ZjhmMi4uNWMyM2UxOWMyNDAyYWU0ZWUwYWEwNjZlNmQ0ZjRj
NDE2MDVkNTUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTAyLTAxICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgW0RlbGVn
YXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3RdLCBbSGFzQ3VzdG9tSW5kZXhHZXR0ZXJd
LAorICAgICAgICBbSGFzSW5kZXhTZXR0ZXJdLCBbSlNDb25zdHJ1Y3RvclRlbXBsYXRlXSBhbmQg
W05vbkVtcHR5XSBmcm9tIGNvZGUgZ2VuZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1ODUKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFt
IEJhcnRoLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBbRGVsZWdhdGluZ1Byb3RvdHlw
ZUdldE93blByb3BlcnR5U2xvdF0sIFtIYXNDdXN0b21JbmRleEdldHRlcl0sCisgICAgICAgIFtI
YXNJbmRleFNldHRlcl0sIFtKU0NvbnN0cnVjdG9yVGVtcGxhdGVdIGFuZCBbTm9uRW1wdHldIGZy
b20gY29kZSBnZW5lcmF0b3JzLAorICAgICAgICBzaW5jZSB0aGV5IGFyZSBub3QgdXNlZCBieSBu
byBJREwgZmlsZXMuCisKKyAgICAgICAgTm8gdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4K
KworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAgICAgICAg
KEdldHRlckV4cHJlc3Npb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5KToKKyAg
ICAgICAgKEdlbmVyYXRlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQm9keSk6CisgICAgICAgIChH
ZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAg
ICAgKElzQ29uc3RydWN0YWJsZSk6CisgICAgICAgIChJc0NvbnN0cnVjdG9yVGVtcGxhdGUpOgor
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHA6IFVwZGF0ZWQgdGhl
IHJ1bi1iaW5kaW5ncy10ZXN0cyByZXN1bHRzLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oOiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDogRGl0dG8uCisgICAgICAgICh3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rl
c3Rfb2JqX2dldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NsYXNz
X2luaXQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouaDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDogRGl0
dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbTog
RGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDItMDEgIENhaW8gTWFyY2VsbyBk
ZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAg
ICBBdm9pZCBjcmVhdGluZyBOYW1lZE5vZGVNYXAgdW5uZWNlc3NhcmlseQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCmluZGV4IDJhZDk4ZTZj
N2IxM2RiMGRkY2YwZjVhN2M3NTA1OWY0OTUyZTllZjMuLjg2YTBjYzU1ZmQzOTI1NDA5MWRjM2Ux
MDEwMTlmM2QzZjA4YzJlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3IucG0KQEAgLTU0OCwxMSArNTQ4LDcgQEAgc3ViIEdldHRlckV4cHJl
c3Npb24KIAogICAgIG15ICRmdW5jdGlvbk5hbWU7CiAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlVSTCJ9KSB7Ci0gICAgICAgIGlmICgkYXR0cmli
dXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb25FbXB0eSJ9KSB7Ci0gICAg
ICAgICAgICAkZnVuY3Rpb25OYW1lID0gImdldE5vbkVtcHR5VVJMQXR0cmlidXRlIjsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiZ2V0VVJMQXR0cmlidXRl
IjsKLSAgICAgICAgfQorICAgICAgICAkZnVuY3Rpb25OYW1lID0gImdldFVSTEF0dHJpYnV0ZSI7
CiAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJib29sZWFuIikg
ewogICAgICAgICAkZnVuY3Rpb25OYW1lID0gImhhc0F0dHJpYnV0ZSI7CiAgICAgfSBlbHNpZiAo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJsb25nIikgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAyMTM5YTkz
ZjExMTgyMzVjMDhkNzhmMGFhOTg1ZTQ3YzMyMmM0NmJhLi5hNTc3NmM3MjRjMTllZDViNzY2YWFi
MmViNTQ1YzA5NjYyNzM5MDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNDMzLDcgKzQzMyw3IEBAIHN1YiBHZW5lcmF0
ZUdldE93blByb3BlcnR5U2xvdEJvZHkKICAgICAgICAgJiRtYW51YWxMb29rdXBHZXR0ZXJHZW5l
cmF0aW9uKCk7CiAgICAgfQogCi0gICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgeworICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7CiAgICAgICAgIHB1c2goQGdldE93
blByb3BlcnR5U2xvdEltcGwsICIgICAgYm9vbCBvaztcbiIpOwogICAgICAgICBwdXNoKEBnZXRP
d25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHVuc2lnbmVkIGluZGV4ID0gcHJvcGVydHlOYW1lLnRv
VUludDMyKG9rKTtcbiIpOwogCkBAIC00NDQsNyArNDQ0LDcgQEAgc3ViIEdlbmVyYXRlR2V0T3du
UHJvcGVydHlTbG90Qm9keQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcHVzaChAZ2V0
T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAob2sgJiYgaW5kZXggPCBzdGF0aWNfY2FzdDwk
aW1wbENsYXNzTmFtZSo+KHRoaXNPYmplY3QtPmltcGwoKSktPmxlbmd0aCgpKSB7XG4iKTsKICAg
ICAgICAgfQotICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFz
Q3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJI
YXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgeworICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pIHsKICAgICAgICAgICAgIHB1
c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09i
amVjdC0+Z2V0QnlJbmRleChleGVjLCBpbmRleCkpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICBzbG90LnNl
dEN1c3RvbUluZGV4KHRoaXNPYmplY3QsIGluZGV4LCBpbmRleEdldHRlcik7XG4iKTsKQEAgLTUy
NywxMyArNTI3LDEzIEBAIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5RGVzY3JpcHRvckJvZHkK
ICAgICAgICAgJiRtYW51YWxMb29rdXBHZXR0ZXJHZW5lcmF0aW9uKCk7CiAgICAgfQogICAgIAot
ICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9
IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVy
In0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0
dGVyIn0pIHsKKyAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5k
ZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmlj
SW5kZXhHZXR0ZXIifSkgewogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJ
bXBsLCAiICAgIGJvb2wgb2s7XG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9ySW1wbCwgIiAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS50b1VJbnQzMihv
ayk7XG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAg
ICBpZiAob2sgJiYgaW5kZXggPCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmpl
Y3QtPmltcGwoKSktPmxlbmd0aCgpKSB7XG4iKTsKLSAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pIHsKKyAgICAgICAg
aWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRl
ciJ9KSB7CiAgICAgICAgICAgICAjIEFzc3VtZSB0aGF0IGlmIHRoZXJlJ3MgYSBzZXR0ZXIsIHRo
ZSBpbmRleCB3aWxsIGJlIHdyaXRhYmxlCi0gICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhTZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleFNldHRlciJ9KSB7CisgICAgICAgICAgICBpZiAo
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhTZXR0ZXIifSkg
ewogICAgICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIg
ICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcih0aGlzT2JqZWN0LT5nZXRCeUluZGV4KGV4
ZWMsIGluZGV4KSwgJHtuYW1lc3BhY2VNYXliZX1Eb250RGVsZXRlKTtcbiIpOwogICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JJbXBsLCAiICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3IodGhpc09iamVjdC0+Z2V0
QnlJbmRleChleGVjLCBpbmRleCksICR7bmFtZXNwYWNlTWF5YmV9RG9udERlbGV0ZSB8ICR7bmFt
ZXNwYWNlTWF5YmV9UmVhZE9ubHkpO1xuIik7CkBAIC01NDIsNyArNTQyLDcgQEAgc3ViIEdlbmVy
YXRlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQm9keQogICAgICAgICAgICAgcHVzaChAZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgJHtuYW1lc3BhY2VNYXliZX1Qcm9wZXJ0
eVNsb3Qgc2xvdDtcbiIpOwogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9ySW1wbCwgIiAgICAgICAgc2xvdC5zZXRDdXN0b21JbmRleCh0aGlzT2JqZWN0LCBpbmRleCwg
aW5kZXhHZXR0ZXIpO1xuIik7CiAgICAgICAgICAgICAjIEFzc3VtZSB0aGF0IGlmIHRoZXJlJ3Mg
YSBzZXR0ZXIsIHRoZSBpbmRleCB3aWxsIGJlIHdyaXRhYmxlCi0gICAgICAgICAgICBpZiAoJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhTZXR0ZXIifSB8fCAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleFNldHRlciJ9KSB7CisgICAg
ICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5k
ZXhTZXR0ZXIifSkgewogICAgICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3Jp
cHRvckltcGwsICIgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihzbG90LmdldFZhbHVl
KGV4ZWMsIHByb3BlcnR5TmFtZSksICR7bmFtZXNwYWNlTWF5YmV9RG9udERlbGV0ZSk7XG4iKTsK
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHNsb3Qu
Z2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwgJHtuYW1lc3BhY2VNYXliZX1Eb250RGVsZXRl
IHwgJHtuYW1lc3BhY2VNYXliZX1SZWFkT25seSk7XG4iKTsKQEAgLTc1Niw3ICs3NTYsNiBAQCBz
dWIgR2VuZXJhdGVIZWFkZXIKICAgICBteSAkaGFzR2V0dGVyID0gJG51bUF0dHJpYnV0ZXMgPiAw
IAogICAgICAgICAgICAgICAgICB8fCAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
T21pdENvbnN0cnVjdG9yIn0KICAgICAgICAgICAgICAgICAgfHwgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifQotICAgICAgICAgICAgICAgICB8fCAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9CiAgICAg
ICAgICAgICAgICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVy
aWNJbmRleEdldHRlciJ9CiAgICAgICAgICAgICAgICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbUdldE93blByb3BlcnR5U2xvdCJ9CiAgICAgICAgICAgICAgICAg
IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdHZXRPd25Qcm9w
ZXJ0eVNsb3QifQpAQCAtNzY3LDcgKzc2Niw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlm
ICgkaGFzR2V0dGVyKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtc
biIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3Im
KTtcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICgkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pICYmICEkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNPdmVycmlkaW5nTmFtZUdldHRlciJ9Owor
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXgoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICgkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSAmJiAhJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXIifTsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3Qm
KTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdHZXRP
d25Qcm9wZXJ0eVNsb3QifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvckRlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpIGlmICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3Qi
fTsKICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCJ9ID0gMTsKQEAgLTgzMiw3ICs4MzEsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGRlZmluZU93blByb3BlcnR5KEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYsIGJvb2wgc2hvdWxkVGhyb3cpO1xu
IikgaWYgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyI7CiAKICAgICAjIEN1c3RvbSBnZXRP
d25Qcm9wZXJ0eU5hbWVzIGZ1bmN0aW9uCi0gICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbUdldFByb3BlcnR5TmFtZXMifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pIHsKKyAgICBpZiAoJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0UHJvcGVydHlOYW1lcyJ9IHx8ICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pIHsKICAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgdm9pZCBnZXRPd25Qcm9wZXJ0eU5h
bWVzKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJy
YXkmLCBKU0M6OkVudW1lcmF0aW9uTW9kZSBtb2RlID0gSlNDOjpFeGNsdWRlRG9udEVudW1Qcm9w
ZXJ0aWVzKTtcbiIpOwogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lcyJ9ID0gMTsgICAgICAgCiAgICAgfQpAQCAtOTU0LDcgKzk1Myw3IEBAIHN1
YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJIYXNJbmRleEdldHRlciJ9KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBpbmRleEdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNW
YWx1ZSwgdW5zaWduZWQpO1xuIik7CiAgICAgfQotICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7CisgICAgaWYgKCRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgSlNDOjpKU1ZhbHVlIGdldEJ5SW5kZXgo
SlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBpbmRleCk7XG4iKTsKICAgICAgICAgCiAgICAgfQpA
QCAtMTA0MywxMSArMTA0Miw5IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgfVxuXG4iKTsKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
c3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbztcbiIpOwotICAgIGlmICgkbnVtRnVu
Y3Rpb25zID4gMCB8fCAkbnVtQ29uc3RhbnRzID4gMCB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlR2V0T3duUHJvcGVydHlTbG90In0pIHsKKyAg
ICBpZiAoJG51bUZ1bmN0aW9ucyA+IDAgfHwgJG51bUNvbnN0YW50cyA+IDApIHsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpT
Qzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpKU09iamVjdCosIEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2Ny
aXB0b3ImKTtcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50
aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9OwotICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yRGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6
OlByb3BlcnR5RGVzY3JpcHRvciYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9OwogICAgICAgICAk
c3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90In0gPSAxOwog
ICAgIH0KICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTWFy
a0Z1bmN0aW9uIn0gb3IgJG5lZWRzTWFya0NoaWxkcmVuKSB7CkBAIC0xMzQwLDcgKzEzMzcsNyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIEFkZEluY2x1ZGVzRm9yU1ZHQW5pbWF0
ZWRUeXBlKCRpbnRlcmZhY2VOYW1lKSBpZiAkY2xhc3NOYW1lID1+IC9eSlNTVkdBbmltYXRlZC87
CiAKICAgICAkaW1wbEluY2x1ZGVzeyI8d3RmL0dldFB0ci5oPiJ9ID0gMTsKLSAgICAkaW1wbElu
Y2x1ZGVzeyI8cnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oPiJ9ID0gMSBpZiAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn07CisgICAgJGltcGxJ
bmNsdWRlc3siPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaD4ifSA9IDEgaWYgJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifTsKIAogICAgIEFkZElu
Y2x1ZGVzRm9yVHlwZUluSW1wbCgkaW50ZXJmYWNlTmFtZSk7CiAKQEAgLTE0OTUsMTYgKzE0OTIs
MTEgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ9XG5cbiIpOwogICAgIH0KIAotICAgIGlmICgkbnVtQ29uc3RhbnRzID4gMCB8fCAkbnVt
RnVuY3Rpb25zID4gMCB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0
aW5nUHJvdG90eXBlR2V0T3duUHJvcGVydHlTbG90In0pIHsKKyAgICBpZiAoJG51bUNvbnN0YW50
cyA+IDAgfHwgJG51bUZ1bmN0aW9ucyA+IDApIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJib29sICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIp
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUq
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlKj4oY2VsbCk7XG4iKTsK
IAotICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGlu
Z1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9KSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBpZiAodGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90RGVsZWdhdGUo
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSlcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7Ci0gICAgICAgIH0KLQogICAgICAgICBp
ZiAoJG51bUNvbnN0YW50cyBlcSAwICYmICRudW1GdW5jdGlvbnMgZXEgMCkgewogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xv
dCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7ICAgICAgICAKICAg
ICAgICAgfSBlbHNpZiAoJG51bUNvbnN0YW50cyBlcSAwKSB7CkBAIC0xNTIwLDExICsxNTEyLDYg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJv
dG90eXBlKiB0aGlzT2JqZWN0ID0ganNDYXN0PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSo+KG9iamVj
dCk7XG4iKTsKIAotICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
RGVsZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9KSB7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAodGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yRGVsZWdhdGUoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKSlcbiIpOwotICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7Ci0g
ICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGlmICgkbnVtQ29uc3RhbnRzIGVxIDAgJiYgJG51
bUZ1bmN0aW9ucyBlcSAwKSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBy
ZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4iKTsgICAgICAgIAogICAgICAgICB9IGVsc2lmICgk
bnVtQ29uc3RhbnRzIGVxIDApIHsKQEAgLTE2NDIsNyArMTYyOSw2IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgbXkgJGhhc0dldHRlciA9ICRudW1BdHRyaWJ1dGVzID4gMCAKICAg
ICAgICAgICAgICAgICAgfHwgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRD
b25zdHJ1Y3RvciJ9IAogICAgICAgICAgICAgICAgICB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9Ci0gICAgICAgICAgICAgICAgIHx8ICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0KICAgICAgICAg
ICAgICAgICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0lu
ZGV4R2V0dGVyIn0KICAgICAgICAgICAgICAgICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiRGVsZWdhdGluZ0dldE93blByb3BlcnR5U2xvdCJ9CiAgICAgICAgICAgICAgICAg
IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldE93blByb3BlcnR5
U2xvdCJ9CkBAIC0xNjY2LDE0ICsxNjUyLDE0IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgIH0KIAot
ICAgICAgICBpZiAoKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0
dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhH
ZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5k
ZXhHZXR0ZXIifSkgCisgICAgICAgIGlmICgoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJI
YXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgCiAgICAgICAgICAgICAgICAgJiYgISRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc092ZXJyaWRpbmdOYW1lR2V0dGVyIn0pIHsKICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
JHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0ganNDYXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xu
Iik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBpZiAocHJvcGVydHlOYW1lIDwgc3RhdGljX2Nhc3Q8JGltcGxDbGFz
c05hbWUqPih0aGlzT2JqZWN0LT5pbXBsKCkpLT5sZW5ndGgoKSkge1xuIik7Ci0gICAgICAgICAg
ICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0
ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhH
ZXR0ZXIifSkgeworICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdC0+Z2V0QnlJbmRleChl
eGVjLCBwcm9wZXJ0eU5hbWUpKTtcbiIpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc2xvdC5zZXRDdXN0b21JbmRleCh0
aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHRoaXNPYmplY3QtPmluZGV4R2V0dGVyKTtcbiIpOwpA
QCAtMjA1MywxMiArMjAzOSwxMiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICB9CiAgICAgfQogCi0gICAgaWYgKCgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJI
YXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1
c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFz
TnVtZXJpY0luZGV4R2V0dGVyIn0pICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDdXN0b21HZXRQcm9wZXJ0eU5hbWVzIn0pIHsKKyAgICBpZiAoKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pICYmICEkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRQcm9wZXJ0eU5hbWVzIn0pIHsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlOYW1lcyhK
U09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9w
ZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNz
TmFtZX0qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4ob2JqZWN0KTtcbiIpOwog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXNPYmplY3QsICZzX2luZm8pO1xuIik7Ci0gICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pIHsKKyAgICAgICAgaWYgKCRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pIHsKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBzdGF0aWNfY2FzdDwke2ltcGxDbGFzc05hbWV9Kj4odGhpc09iamVjdC0+aW1wbCgpKS0+bGVu
Z3RoKCk7ICsraSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oZXhlYywgaSkpO1xuIik7CiAgICAg
ICAgIH0KQEAgLTM1OTcsNyArMzU4Myw3IEBAIHN1YiBJc0NvbnN0cnVjdGFibGUKIHsKICAgICBt
eSAkZGF0YU5vZGUgPSBzaGlmdDsKIAotICAgIHJldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkpTQ3VzdG9tQ29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDb25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ik5hbWVkQ29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJKU0NvbnN0cnVjdG9yVGVtcGxhdGUifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDb25zdHJ1Y3RvclRlbXBsYXRlIn07CisgICAgcmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21Db25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkNvbnN0cnVjdG9yVGVtcGxhdGUifTsKIH0KIAogc3ViIElzQ29uc3RydWN0b3JUZW1w
bGF0ZQpAQCAtMzYwNSw3ICszNTkxLDcgQEAgc3ViIElzQ29uc3RydWN0b3JUZW1wbGF0ZQogICAg
IG15ICRkYXRhTm9kZSA9IHNoaWZ0OwogICAgIG15ICR0ZW1wbGF0ZSA9IHNoaWZ0OwogCi0gICAg
cmV0dXJuICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0NvbnN0cnVjdG9yVGVt
cGxhdGUifSAmJiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0NvbnN0cnVjdG9y
VGVtcGxhdGUifSBlcSAkdGVtcGxhdGUpIHx8ICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDb25zdHJ1Y3RvclRlbXBsYXRlIn0gJiYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ29uc3RydWN0b3JUZW1wbGF0ZSJ9IGVxICR0ZW1wbGF0ZSk7CisgICAgcmV0dXJuICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yVGVtcGxhdGUifSAmJiAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvclRlbXBsYXRlIn0gZXEg
JHRlbXBsYXRlOwogfQogCiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKaW5kZXggOWE5ZjNmMTgyZWNm
OGNkMDEwYjQ5M2JjMGE0YmRlYTU3MGM2NTlhOC4uZDgxODcxZmE2Yzg2N2UxYjQ0NTc3NjRlNGI0
YTdiZGQ3ZGU4YjU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCkBAIC0zNDUsMjIgKzM0NSw2IEBA
IHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0UmVmbGVjdGVkVVJMQXR0cihjb25zdCBXZWJET01TdHJp
bmcmIG5ld1JlZmxlY3RlZFVSTEF0dHIpCiAgICAgaW1wbCgpLT5zZXRBdHRyaWJ1dGUoV2ViQ29y
ZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1cmxhdHRyQXR0ciwgbmV3UmVmbGVjdGVkVVJMQXR0cik7
CiB9CiAKLVdlYkRPTVN0cmluZyBXZWJET01UZXN0T2JqOjpyZWZsZWN0ZWROb25FbXB0eVVSTEF0
dHIoKSBjb25zdAotewotICAgIGlmICghaW1wbCgpKQotICAgICAgICByZXR1cm4gV2ViRE9NU3Ry
aW5nKCk7Ci0KLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgV1RGOjpTdHJpbmcmPihpbXBs
KCktPmdldE5vbkVtcHR5VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVk
bm9uZW1wdHl1cmxhdHRyQXR0cikpOwotfQotCi12b2lkIFdlYkRPTVRlc3RPYmo6OnNldFJlZmxl
Y3RlZE5vbkVtcHR5VVJMQXR0cihjb25zdCBXZWJET01TdHJpbmcmIG5ld1JlZmxlY3RlZE5vbkVt
cHR5VVJMQXR0cikKLXsKLSAgICBpZiAoIWltcGwoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
aW1wbCgpLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRub25lbXB0
eXVybGF0dHJBdHRyLCBuZXdSZWZsZWN0ZWROb25FbXB0eVVSTEF0dHIpOwotfQotCiBXZWJET01T
dHJpbmcgV2ViRE9NVGVzdE9iajo6cmVmbGVjdGVkU3RyaW5nQXR0cigpIGNvbnN0CiB7CiAgICAg
aWYgKCFpbXBsKCkpCkBAIC00MjUsMjIgKzQwOSw2IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0
UmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihjb25zdCBXZWJET01TdHJpbmcmIG5ld1JlZmxlY3RlZEN1
CiAgICAgaW1wbCgpLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250
ZW50VVJMQXR0ckF0dHIsIG5ld1JlZmxlY3RlZEN1c3RvbVVSTEF0dHIpOwogfQogCi1XZWJET01T
dHJpbmcgV2ViRE9NVGVzdE9iajo6cmVmbGVjdGVkQ3VzdG9tTm9uRW1wdHlVUkxBdHRyKCkgY29u
c3QKLXsKLSAgICBpZiAoIWltcGwoKSkKLSAgICAgICAgcmV0dXJuIFdlYkRPTVN0cmluZygpOwot
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdURjo6U3RyaW5nJj4oaW1wbCgpLT5nZXRO
b25FbXB0eVVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnROb25F
bXB0eVVSTEF0dHJBdHRyKSk7Ci19Ci0KLXZvaWQgV2ViRE9NVGVzdE9iajo6c2V0UmVmbGVjdGVk
Q3VzdG9tTm9uRW1wdHlVUkxBdHRyKGNvbnN0IFdlYkRPTVN0cmluZyYgbmV3UmVmbGVjdGVkQ3Vz
dG9tTm9uRW1wdHlVUkxBdHRyKQotewotICAgIGlmICghaW1wbCgpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBpbXBsKCktPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNv
bnRlbnROb25FbXB0eVVSTEF0dHJBdHRyLCBuZXdSZWZsZWN0ZWRDdXN0b21Ob25FbXB0eVVSTEF0
dHIpOwotfQotCiBpbnQgV2ViRE9NVGVzdE9iajo6YXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oKSBj
b25zdAogewogICAgIGlmICghaW1wbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAppbmRleCBiM2NjZWEyOTZj
NjNlNDJmMzY2ZWI4OWFhOTMwMjVlZDc1ZTAyNWMzLi42ZjkxMDFkMTIzZmMyZjE0NWIzYzllNmY5
OGRlOTJlMjViZThhNmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaApAQCAtMTA0LDggKzEwNCw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFJlZmxlY3RlZEJvb2xlYW5BdHRyKGJvb2wpOwogICAgIFdlYkRP
TVN0cmluZyByZWZsZWN0ZWRVUkxBdHRyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSZWZsZWN0ZWRV
UkxBdHRyKGNvbnN0IFdlYkRPTVN0cmluZyYpOwotICAgIFdlYkRPTVN0cmluZyByZWZsZWN0ZWRO
b25FbXB0eVVSTEF0dHIoKSBjb25zdDsKLSAgICB2b2lkIHNldFJlZmxlY3RlZE5vbkVtcHR5VVJM
QXR0cihjb25zdCBXZWJET01TdHJpbmcmKTsKICAgICBXZWJET01TdHJpbmcgcmVmbGVjdGVkU3Ry
aW5nQXR0cigpIGNvbnN0OwogICAgIHZvaWQgc2V0UmVmbGVjdGVkU3RyaW5nQXR0cihjb25zdCBX
ZWJET01TdHJpbmcmKTsKICAgICBpbnQgcmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKCkgY29u
c3Q7CkBAIC0xMTQsOCArMTEyLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVmbGVjdGVkQ3Vz
dG9tQm9vbGVhbkF0dHIoYm9vbCk7CiAgICAgV2ViRE9NU3RyaW5nIHJlZmxlY3RlZEN1c3RvbVVS
TEF0dHIoKSBjb25zdDsKICAgICB2b2lkIHNldFJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoY29uc3Qg
V2ViRE9NU3RyaW5nJik7Ci0gICAgV2ViRE9NU3RyaW5nIHJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5
VVJMQXR0cigpIGNvbnN0OwotICAgIHZvaWQgc2V0UmVmbGVjdGVkQ3VzdG9tTm9uRW1wdHlVUkxB
dHRyKGNvbnN0IFdlYkRPTVN0cmluZyYpOwogICAgIGludCBhdHRyV2l0aEdldHRlckV4Y2VwdGlv
bigpIGNvbnN0OwogICAgIHZvaWQgc2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oaW50KTsKICAg
ICBpbnQgYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmou
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdE9iai5jcHAKaW5kZXggOWRlNDk4ZGJkZWZhYTk1ZTcyNWQ5YWU4NGIzZmYzNjllNzBj
NjQ2ZS4uNjNhMzdiNjdiYjA1ZTM3YmE3M2IzNzg3YmM4Zjg0MWIzOWUyNWNmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKQEAgLTg1NSwyNyArODU1LDYgQEAgd2Via2l0X2Rv
bV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX3VybF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IGNvbnN0IGdjaGFyKgogfQogCiBnY2hhcioKLXdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxl
Y3RlZF9ub25fZW1wdHlfdXJsX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKLXsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7Ci0gICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7Ci0gICAgZ2NoYXIqIHJlcyA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+Z2V0
Tm9uRW1wdHlVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRub25lbXB0
eXVybGF0dHJBdHRyKSk7Ci0gICAgcmV0dXJuIHJlczsKLX0KLQotdm9pZAotd2Via2l0X2RvbV90
ZXN0X29ial9zZXRfcmVmbGVjdGVkX25vbl9lbXB0eV91cmxfYXR0cihXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChzZWxm
KTsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgV2ViQ29y
ZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19yZXR1cm5faWZf
ZmFpbCh2YWx1ZSk7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkX3ZhbHVlID0gV1RGOjpTdHJp
bmc6OmZyb21VVEY4KHZhbHVlKTsKLSAgICBpdGVtLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRN
TE5hbWVzOjpyZWZsZWN0ZWRub25lbXB0eXVybGF0dHJBdHRyLCBjb252ZXJ0ZWRfdmFsdWUpOwot
fQotCi1nY2hhcioKIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9zdHJpbmdfYXR0
cihXZWJLaXRET01UZXN0T2JqKiBzZWxmKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNl
bGYsIDApOwpAQCAtOTU1LDI3ICs5MzQsNiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZs
ZWN0ZWRfY3VzdG9tX3VybF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0CiAgICAg
aXRlbS0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFVSTEF0
dHJBdHRyLCBjb252ZXJ0ZWRfdmFsdWUpOwogfQogCi1nY2hhcioKLXdlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X3JlZmxlY3RlZF9jdXN0b21fbm9uX2VtcHR5X3VybF9hdHRyKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7Ci0gICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFdlYkNvcmU6OlRlc3RPYmog
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdjaGFyKiByZXMgPSBjb252ZXJ0VG9V
VEY4U3RyaW5nKGl0ZW0tPmdldE5vbkVtcHR5VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1l
czo6Y3VzdG9tQ29udGVudE5vbkVtcHR5VVJMQXR0ckF0dHIpKTsKLSAgICByZXR1cm4gcmVzOwot
fQotCi12b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZsZWN0ZWRfY3VzdG9tX25vbl9l
bXB0eV91cmxfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
Ci17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6
OmNvcmUoc2VsZik7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7Ci0gICAgV1RGOjpTdHJp
bmcgY29udmVydGVkX3ZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKLSAgICBp
dGVtLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50Tm9uRW1w
dHlVUkxBdHRyQXR0ciwgY29udmVydGVkX3ZhbHVlKTsKLX0KLQogZ2xvbmcKIHdlYmtpdF9kb21f
dGVzdF9vYmpfZ2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYsIEdFcnJvciAqKmVycm9yKQogewpAQCAtMTQ0MCwxMiArMTM5OCwxMCBAQCBlbnVtIHsK
ICAgICBQUk9QX1JFRkxFQ1RFRF9VTlNJR05FRF9JTlRFR1JBTF9BVFRSLAogICAgIFBST1BfUkVG
TEVDVEVEX0JPT0xFQU5fQVRUUiwKICAgICBQUk9QX1JFRkxFQ1RFRF9VUkxfQVRUUiwKLSAgICBQ
Uk9QX1JFRkxFQ1RFRF9OT05fRU1QVFlfVVJMX0FUVFIsCiAgICAgUFJPUF9SRUZMRUNURURfU1RS
SU5HX0FUVFIsCiAgICAgUFJPUF9SRUZMRUNURURfQ1VTVE9NX0lOVEVHUkFMX0FUVFIsCiAgICAg
UFJPUF9SRUZMRUNURURfQ1VTVE9NX0JPT0xFQU5fQVRUUiwKICAgICBQUk9QX1JFRkxFQ1RFRF9D
VVNUT01fVVJMX0FUVFIsCi0gICAgUFJPUF9SRUZMRUNURURfQ1VTVE9NX05PTl9FTVBUWV9VUkxf
QVRUUiwKICAgICBQUk9QX0FUVFJfV0lUSF9HRVRURVJfRVhDRVBUSU9OLAogICAgIFBST1BfQVRU
Ul9XSVRIX1NFVFRFUl9FWENFUFRJT04sCiAgICAgUFJPUF9TVFJJTkdfQVRUUl9XSVRIX0dFVFRF
Ul9FWENFUFRJT04sCkBAIC0xNTQ3LDExICsxNTAzLDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X2Rv
bV90ZXN0X29ial9zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBj
b24KICAgICAgICAgY29yZVNlbGYtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJl
ZmxlY3RlZHVybGF0dHJBdHRyLCBXVEY6OlN0cmluZzo6ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3Ry
aW5nKHZhbHVlKSkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBQUk9QX1JFRkxF
Q1RFRF9OT05fRU1QVFlfVVJMX0FUVFI6Ci0gICAgewotICAgICAgICBjb3JlU2VsZi0+c2V0QXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkbm9uZW1wdHl1cmxhdHRyQXR0ciwg
V1RGOjpTdHJpbmc6OmZyb21VVEY4KGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgfQogICAgIGNhc2UgUFJPUF9SRUZMRUNURURfU1RSSU5HX0FUVFI6CiAg
ICAgewogICAgICAgICBjb3JlU2VsZi0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6
Y3VzdG9tQ29udGVudFN0cmluZ0F0dHJBdHRyLCBXVEY6OlN0cmluZzo6ZnJvbVVURjgoZ192YWx1
ZV9nZXRfc3RyaW5nKHZhbHVlKSkpOwpAQCAtMTU3MiwxMSArMTUyMyw2IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQg
cHJvcF9pZCwgY29uCiAgICAgICAgIGNvcmVTZWxmLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRN
TE5hbWVzOjpjdXN0b21Db250ZW50VVJMQXR0ckF0dHIsIFdURjo6U3RyaW5nOjpmcm9tVVRGOChn
X3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBj
YXNlIFBST1BfUkVGTEVDVEVEX0NVU1RPTV9OT05fRU1QVFlfVVJMX0FUVFI6Ci0gICAgewotICAg
ICAgICBjb3JlU2VsZi0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29u
dGVudE5vbkVtcHR5VVJMQXR0ckF0dHIsIFdURjo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dl
dF9zdHJpbmcodmFsdWUpKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KICAgICBjYXNlIFBST1Bf
QVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJT046CiAgICAgewogICAgICAgICBXZWJDb3JlOjpFeGNl
cHRpb25Db2RlIGVjID0gMDsKQEAgLTE3MzgsMTEgKzE2ODQsNiBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3Bf
aWQsIEdWYQogICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCBjb252ZXJ0VG9VVEY4
U3RyaW5nKGNvcmVTZWxmLT5nZXRVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZs
ZWN0ZWR1cmxhdHRyQXR0cikpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2UgUFJP
UF9SRUZMRUNURURfTk9OX0VNUFRZX1VSTF9BVFRSOgotICAgIHsKLSAgICAgICAgZ192YWx1ZV90
YWtlX3N0cmluZyh2YWx1ZSwgY29udmVydFRvVVRGOFN0cmluZyhjb3JlU2VsZi0+Z2V0Tm9uRW1w
dHlVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRub25lbXB0eXVybGF0
dHJBdHRyKSkpOwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgY2FzZSBQUk9QX1JFRkxFQ1RF
RF9TVFJJTkdfQVRUUjoKICAgICB7CiAgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUs
IGNvbnZlcnRUb1VURjhTdHJpbmcoY29yZVNlbGYtPmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1M
TmFtZXM6OmN1c3RvbUNvbnRlbnRTdHJpbmdBdHRyQXR0cikpKTsKQEAgLTE3NjMsMTEgKzE3MDQs
NiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9wcm9wZXJ0eShHT2JqZWN0
KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYQogICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5n
KHZhbHVlLCBjb252ZXJ0VG9VVEY4U3RyaW5nKGNvcmVTZWxmLT5nZXRVUkxBdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50VVJMQXR0ckF0dHIpKSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KLSAgICBjYXNlIFBST1BfUkVGTEVDVEVEX0NVU1RPTV9OT05fRU1QVFlfVVJM
X0FUVFI6Ci0gICAgewotICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCBjb252ZXJ0
VG9VVEY4U3RyaW5nKGNvcmVTZWxmLT5nZXROb25FbXB0eVVSTEF0dHJpYnV0ZShXZWJDb3JlOjpI
VE1MTmFtZXM6OmN1c3RvbUNvbnRlbnROb25FbXB0eVVSTEF0dHJBdHRyKSkpOwotICAgICAgICBi
cmVhazsKLSAgICB9CiAgICAgY2FzZSBQUk9QX0FUVFJfV0lUSF9HRVRURVJfRVhDRVBUSU9OOgog
ICAgIHsKICAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CkBAIC0yMDM3LDEz
ICsxOTczLDYgQEAgR19NQVhVTE9ORywgLyogbWF4ICovCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLCAvKiBkZWZhdWx0ICovCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KGdvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBST1BfUkVGTEVDVEVEX05PTl9FTVBUWV9VUkxfQVRUUiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInJlZmxlY3RlZC1ub24tZW1wdHkt
dXJsLWF0dHIiLCAvKiBuYW1lICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X29ial9yZWZsZWN0ZWQtbm9uLWVtcHR5LXVy
bC1hdHRyIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdjaGFyKiBU
ZXN0T2JqLnJlZmxlY3RlZC1ub24tZW1wdHktdXJsLWF0dHIiLCAvKiBsb25nZXIgLSBjb3VsZCBk
byB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxf
cHJvcGVydHkoZ29iamVjdENsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUFJPUF9SRUZMRUNURURfU1RSSU5HX0FUVFIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJyZWZsZWN0ZWQtc3RyaW5nLWF0dHIiLCAv
KiBuYW1lICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ0ZXN0X29ial9yZWZsZWN0ZWQtc3RyaW5nLWF0dHIiLCAvKiBzaG9ydCBk
ZXNjcmlwdGlvbiAqLwpAQCAtMjA3NCwxMyArMjAwMyw2IEBAIEdfTUFYTE9ORywgLyogbWF4ICov
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIiLCAvKiBkZWZhdWx0ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBn
X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfUkVGTEVDVEVEX0NVU1RPTV9OT05fRU1QVFlf
VVJMX0FUVFIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3Nw
ZWNfc3RyaW5nKCJyZWZsZWN0ZWQtY3VzdG9tLW5vbi1lbXB0eS11cmwtYXR0ciIsIC8qIG5hbWUg
Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInRlc3Rfb2JqX3JlZmxlY3RlZC1jdXN0b20tbm9uLWVtcHR5LXVybC1hdHRyIiwgLyog
c2hvcnQgZGVzY3JpcHRpb24gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdjaGFyKiBUZXN0T2JqLnJlZmxl
Y3RlZC1jdXN0b20tbm9uLWVtcHR5LXVybC1hdHRyIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0
aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLCAvKiBkZWZhdWx0ICovCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdF
QktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdvYmplY3RDbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBS
T1BfQVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJT04sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnX3BhcmFtX3NwZWNfbG9uZygiYXR0ci13aXRoLWdldHRlci1leGNlcHRpb24i
LCAvKiBuYW1lICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJ0ZXN0X29ial9hdHRyLXdpdGgtZ2V0dGVyLWV4Y2VwdGlvbiIsIC8q
IHNob3J0IGRlc2NyaXB0aW9uICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKaW5kZXgg
N2Q4M2Y5YmYyZjUxYjdjMjAwZmU0NDdiNGY5NDA3YjkyNzM2YTAxNS4uZjExOGRkODgwZDBlNTQ3
MWM3NWZkNWU2MzdlNmE4ODE0ZmY1NWQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmou
aApAQCAtNzU4LDI3ICs3NTgsNiBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X3JlZmxlY3RlZF91cmxfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiAvKioKLSAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3Rl
ZF9ub25fZW1wdHlfdXJsX2F0dHI6Ci0gKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICoK
LSAqIFJldHVybnM6Ci0gKgotKiovCi1XRUJLSVRfQVBJIGdjaGFyKgotd2Via2l0X2RvbV90ZXN0
X29ial9nZXRfcmVmbGVjdGVkX25vbl9lbXB0eV91cmxfYXR0cihXZWJLaXRET01UZXN0T2JqKiBz
ZWxmKTsKLQotLyoqCi0gKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZsZWN0ZWRfbm9uX2Vt
cHR5X3VybF9hdHRyOgotICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEB2YWx1ZTog
QSAjZ2NoYXIKLSAqCi0gKiBSZXR1cm5zOgotICoKLSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9yZWZsZWN0ZWRfbm9uX2VtcHR5X3VybF9hdHRyKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7Ci0KLS8qKgogICogd2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfcmVmbGVjdGVkX3N0cmluZ19hdHRyOgogICogQHNlbGY6IEEgI1dlYktp
dERPTVRlc3RPYmoKICAqCkBAIC04NjMsMjcgKzg0Miw2IEBAIFdFQktJVF9BUEkgdm9pZAogd2Vi
a2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX2N1c3RvbV91cmxfYXR0cihXZWJLaXRET01U
ZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKLSAqIHdlYmtpdF9kb21f
dGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9jdXN0b21fbm9uX2VtcHR5X3VybF9hdHRyOgotICogQHNl
bGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqCi0gKiBSZXR1cm5zOgotICoKLSoqLwotV0VCS0lU
X0FQSSBnY2hhcioKLXdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9jdXN0b21fbm9u
X2VtcHR5X3VybF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwotCi0vKioKLSAqIHdlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3JlZmxlY3RlZF9jdXN0b21fbm9uX2VtcHR5X3VybF9hdHRyOgot
ICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEB2YWx1ZTogQSAjZ2NoYXIKLSAqCi0g
KiBSZXR1cm5zOgotICoKLSoqLwotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9yZWZsZWN0ZWRfY3VzdG9tX25vbl9lbXB0eV91cmxfYXR0cihXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwotCi0vKioKICAqIHdlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uOgogICogQHNlbGY6IEEgI1dlYktpdERP
TVRlc3RPYmoKICAqIEBlcnJvcjogI0dFcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCAwM2Y1NjI1MDMxYTNh
Y2ZiYzFmMzg5YmRkZTQxMTllMGE0OGM1MDVjLi4xODMyMjdlMmE5OWYxMmViMjgyMGY3ZTE0ZTUy
ZmFkZmM1NWMwMWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtOTYsMTIgKzk2LDEwIEBAIHN0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpUYWJsZVZhbHVlc1tdID0KICAgICB7ICJyZWZsZWN0
ZWRVbnNpZ25lZEludGVncmFsQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJ
bnRlZ3JhbEF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRl
Z3JhbEF0dHIsIE5vSW50cmluc2ljIH0sCiAgICAgeyAicmVmbGVjdGVkQm9vbGVhbkF0dHIiLCBE
b250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9i
alJlZmxlY3RlZEJvb2xlYW5BdHRyLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInJlZmxlY3RlZFVS
TEF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIpLCAoaW50cHRyX3Qpc2V0SlNU
ZXN0T2JqUmVmbGVjdGVkVVJMQXR0ciwgTm9JbnRyaW5zaWMgfSwKLSAgICB7ICJyZWZsZWN0ZWRO
b25FbXB0eVVSTEF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0ciks
IChpbnRwdHJfdClzZXRKU1Rlc3RPYmpSZWZsZWN0ZWROb25FbXB0eVVSTEF0dHIsIE5vSW50cmlu
c2ljIH0sCiAgICAgeyAicmVmbGVjdGVkU3RyaW5nQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVj
dGVkU3RyaW5nQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRy
LCBOb0ludHJpbnNpYyB9LAogICAgIHsgInJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ciIsIERv
bnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKSwgKGludHB0cl90KXNldEpT
VGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7
ICJyZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkQ3Vz
dG9tQm9vbGVhbkF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9v
bGVhbkF0dHIsIE5vSW50cmluc2ljIH0sCiAgICAgeyAicmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciIs
IERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciksIChpbnRwdHJfdClzZXRKU1Rl
c3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyLCBOb0ludHJpbnNpYyB9LAotICAgIHsgInJlZmxl
Y3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9t
Tm9uRW1wdHlVUkxBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbU5v
bkVtcHR5VVJMQXR0ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJhdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbiIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pLCAoaW50cHRyX3Qp
c2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIE5vSW50cmluc2ljIH0sCiAgICAg
eyAiYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakF0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uKSwgKGludHB0cl90KXNldEpTVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9u
LCBOb0ludHJpbnNpYyB9LAogICAgIHsgInN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIiwg
RG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiksIChpbnRwdHJfdClz
ZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiwgTm9JbnRyaW5zaWMgfSwK
QEAgLTUyNiwxNiArNTI0LDYgQEAgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnQKIH0KIAogCi1KU1Zh
bHVlIGpzVGVzdE9ialJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQotewotICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwotICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxU
ZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3Ry
aW5nKGV4ZWMsIGltcGwtPmdldE5vbkVtcHR5VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1l
czo6cmVmbGVjdGVkbm9uZW1wdHl1cmxhdHRyQXR0cikpOwotICAgIHJldHVybiByZXN1bHQ7Ci19
Ci0KLQogSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCiB7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3Qoc2xvdEJhc2Up
KTsKQEAgLTU3NiwxNiArNTY0LDYgQEAgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21V
UkxBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QKIH0KIAogCi1K
U1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0cihFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQotewotICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RC
YXNlKSk7Ci0gICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwotICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0
aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBKU1ZhbHVlIHJlc3Vs
dCA9IGpzU3RyaW5nKGV4ZWMsIGltcGwtPmdldE5vbkVtcHR5VVJMQXR0cmlidXRlKFdlYkNvcmU6
OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudE5vbkVtcHR5VVJMQXR0ckF0dHIpKTsKLSAgICByZXR1
cm4gcmVzdWx0OwotfQotCi0KIEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikK
IHsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihh
c09iamVjdChzbG90QmFzZSkpOwpAQCAtOTczLDE0ICs5NTEsNiBAQCB2b2lkIHNldEpTVGVzdE9i
alJlZmxlY3RlZFVSTEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwg
SlNWYWx1ZQogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRy
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCi17
Ci0gICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4odGhp
c09iamVjdCk7Ci0gICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0
ZWRUaGlzLT5pbXBsKCkpOwotICAgIGltcGwtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OnJlZmxlY3RlZG5vbmVtcHR5dXJsYXR0ckF0dHIsIHZhbHVlVG9TdHJpbmdXaXRoTnVsbENo
ZWNrKGV4ZWMsIHZhbHVlKSk7Ci19Ci0KLQogdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJp
bmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2Jq
Kj4odGhpc09iamVjdCk7CkBAIC0xMDEzLDE0ICs5ODMsNiBAQCB2b2lkIHNldEpTVGVzdE9ialJl
ZmxlY3RlZEN1c3RvbVVSTEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVj
dCwgSgogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tTm9uRW1wdHlVUkxB
dHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
Ci17Ci0gICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4o
dGhpc09iamVjdCk7Ci0gICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihj
YXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGltcGwtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1M
TmFtZXM6OmN1c3RvbUNvbnRlbnROb25FbXB0eVVSTEF0dHJBdHRyLCB2YWx1ZVRvU3RyaW5nV2l0
aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOwotfQotCi0KIHZvaWQgc2V0SlNUZXN0T2JqQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2Fz
dDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCA0NWY5ZmI3MzE3Y2IzZjUxMjM3
NWRkNzNhMzIwZDgxMWM5MTVhMmY4Li44OWNjOTMyMjZmYzk2YjY4MzcyZDgzNDc3MmY2MTM0Yjdk
MzVmOTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oCkBAIC0yMjcsOCArMjI3LDYgQEAgSlNDOjpKU1ZhbHVlIGpzVGVzdE9i
alJlZmxlY3RlZEJvb2xlYW5BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25z
dAogdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialJl
ZmxlY3RlZFVSTEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYpOwogdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7Ci1KU0M6OkpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1Zh
bHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVk
Tm9uRW1wdHlVUkxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNW
YWx1ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lkIHNl
dEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0
b21JbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYpOwpAQCAtMjM3LDggKzIzNSw2IEBAIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpS
ZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwK
IHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RP
YmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBj
b25zdCBKU0M6OklkZW50aWZpZXImKTsKIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9t
VVJMQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwot
SlNDOjpKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7Ci12b2lk
IHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0cihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9i
akF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBj
b25zdCBKU0M6OklkZW50aWZpZXImKTsKIHZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsK
IEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgK
aW5kZXggZjA2NGZjZWU1ZDMyYjBkYWNiYzZmMjcwNjU0OWMyYjQzMmZhOTE2Mi4uNTQ3NDU1Njc0
ZGYxOTIyOGZmZGJkOGI0MDE3MWNhNjRiN2JiY2NiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApAQCAtOTcsOCAr
OTcsNiBAQCBlbnVtIHsKIC0gKHZvaWQpc2V0UmVmbGVjdGVkQm9vbGVhbkF0dHI6KEJPT0wpbmV3
UmVmbGVjdGVkQm9vbGVhbkF0dHI7CiAtIChOU1N0cmluZyAqKXJlZmxlY3RlZFVSTEF0dHI7CiAt
ICh2b2lkKXNldFJlZmxlY3RlZFVSTEF0dHI6KE5TU3RyaW5nICopbmV3UmVmbGVjdGVkVVJMQXR0
cjsKLS0gKE5TU3RyaW5nICopcmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyOwotLSAodm9pZClzZXRS
ZWZsZWN0ZWROb25FbXB0eVVSTEF0dHI6KE5TU3RyaW5nICopbmV3UmVmbGVjdGVkTm9uRW1wdHlV
UkxBdHRyOwogLSAoTlNTdHJpbmcgKilyZWZsZWN0ZWRTdHJpbmdBdHRyOwogLSAodm9pZClzZXRS
ZWZsZWN0ZWRTdHJpbmdBdHRyOihOU1N0cmluZyAqKW5ld1JlZmxlY3RlZFN0cmluZ0F0dHI7CiAt
IChpbnQpcmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyOwpAQCAtMTA3LDggKzEwNSw2IEBAIGVu
dW0gewogLSAodm9pZClzZXRSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cjooQk9PTCluZXdSZWZs
ZWN0ZWRDdXN0b21Cb29sZWFuQXR0cjsKIC0gKE5TU3RyaW5nICopcmVmbGVjdGVkQ3VzdG9tVVJM
QXR0cjsKIC0gKHZvaWQpc2V0UmVmbGVjdGVkQ3VzdG9tVVJMQXR0cjooTlNTdHJpbmcgKiluZXdS
ZWZsZWN0ZWRDdXN0b21VUkxBdHRyOwotLSAoTlNTdHJpbmcgKilyZWZsZWN0ZWRDdXN0b21Ob25F
bXB0eVVSTEF0dHI7Ci0tICh2b2lkKXNldFJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0cjoo
TlNTdHJpbmcgKiluZXdSZWZsZWN0ZWRDdXN0b21Ob25FbXB0eVVSTEF0dHI7CiAtIChpbnQpYXR0
cldpdGhHZXR0ZXJFeGNlcHRpb247CiAtICh2b2lkKXNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
OihpbnQpbmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb247CiAtIChpbnQpYXR0cldpdGhTZXR0ZXJF
eGNlcHRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvT2JqQy9ET01UZXN0T2JqLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L09iakMvRE9NVGVzdE9iai5tbQppbmRleCAxOTZkMjRkOWU5M2NkNzUyZTNmMzBmZmY0MjQ2
NTUzNzUwMTQ5YWU3Li5iNGZmNjM4YzdiYjFhYTRhMGEzMmZmMTZiYThhYTM1NWJhODNlOTY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01U
ZXN0T2JqLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpD
L0RPTVRlc3RPYmoubW0KQEAgLTI5MCwxOCArMjkwLDYgQEAKICAgICBJTVBMLT5zZXRBdHRyaWJ1
dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1cmxhdHRyQXR0ciwgbmV3UmVmbGVjdGVk
VVJMQXR0cik7CiB9CiAKLS0gKE5TU3RyaW5nICopcmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyCi17
Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJ
TVBMLT5nZXROb25FbXB0eVVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3Rl
ZG5vbmVtcHR5dXJsYXR0ckF0dHIpOwotfQotCi0tICh2b2lkKXNldFJlZmxlY3RlZE5vbkVtcHR5
VVJMQXR0cjooTlNTdHJpbmcgKiluZXdSZWZsZWN0ZWROb25FbXB0eVVSTEF0dHIKLXsKLSAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+c2V0QXR0cmli
dXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkbm9uZW1wdHl1cmxhdHRyQXR0ciwgbmV3
UmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyKTsKLX0KLQogLSAoTlNTdHJpbmcgKilyZWZsZWN0ZWRT
dHJpbmdBdHRyCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpA
QCAtMzUwLDE4ICszMzgsNiBAQAogICAgIElNUEwtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1M
TmFtZXM6OmN1c3RvbUNvbnRlbnRVUkxBdHRyQXR0ciwgbmV3UmVmbGVjdGVkQ3VzdG9tVVJMQXR0
cik7CiB9CiAKLS0gKE5TU3RyaW5nICopcmVmbGVjdGVkQ3VzdG9tTm9uRW1wdHlVUkxBdHRyCi17
Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJ
TVBMLT5nZXROb25FbXB0eVVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNv
bnRlbnROb25FbXB0eVVSTEF0dHJBdHRyKTsKLX0KLQotLSAodm9pZClzZXRSZWZsZWN0ZWRDdXN0
b21Ob25FbXB0eVVSTEF0dHI6KE5TU3RyaW5nICopbmV3UmVmbGVjdGVkQ3VzdG9tTm9uRW1wdHlV
UkxBdHRyCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAg
IElNUEwtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnROb25F
bXB0eVVSTEF0dHJBdHRyLCBuZXdSZWZsZWN0ZWRDdXN0b21Ob25FbXB0eVVSTEF0dHIpOwotfQot
CiAtIChpbnQpYXR0cldpdGhHZXR0ZXJFeGNlcHRpb24KIHsKICAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggNzNmZDE5YjdiYzBiYjcyMDRhZmIwOThlOWEwM2Jm
ODg3MDUxY2U4OS4uZjllM2MyYThiNGU2ZGZiZDIwZGU1YTVjYWJiMmM4NzBlNTAxYzNhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApA
QCAtNTYsMTIgKzU2LDEwIEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSB1bnNpZ25lZCBsb25nIHJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyOwogICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gcmVmbGVjdGVkQm9vbGVhbkF0dHI7CiAgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgcmVmbGVjdGVkVVJMQXR0cjsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBOb25FbXB0eSwgVVJMXSBET01TdHJpbmcgcmVm
bGVjdGVkTm9uRW1wdHlVUkxBdHRyOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Y3VzdG9t
Q29udGVudFN0cmluZ0F0dHJdIERPTVN0cmluZyByZWZsZWN0ZWRTdHJpbmdBdHRyOwogICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Y3VzdG9tQ29udGVudEludGVncmFsQXR0cl0gbG9uZyByZWZs
ZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jdXN0
b21Db250ZW50Qm9vbGVhbkF0dHJdIGJvb2xlYW4gcmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHI7
CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jdXN0b21Db250ZW50VVJMQXR0ciwgVVJMXSBE
T01TdHJpbmcgcmVmbGVjdGVkQ3VzdG9tVVJMQXR0cjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0PWN1c3RvbUNvbnRlbnROb25FbXB0eVVSTEF0dHIsIE5vbkVtcHR5LCBVUkxdIERPTVN0cmlu
ZyByZWZsZWN0ZWRDdXN0b21Ob25FbXB0eVVSTEF0dHI7CiAKICAgICAgICAgLy8gTWV0aG9kcwog
ICAgICAgICB2b2lkICAgIHZvaWRNZXRob2QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggNjMzNmRlNDYzMTlh
YzJkOWZmYzNkNWVjZWVlZTM3M2JiMTc0NmFkYy4uMzQ1NTdmMmUyZDdlMmFkNmM0YWQwMWQwMTNi
ODYwYjg2YTUyY2M0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKQEAgLTMzMCwyMiArMzMwLDYgQEAgc3RhdGljIHZv
aWQgcmVmbGVjdGVkVVJMQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUs
IHY4OjpMb2NhbDx2ODoKICAgICByZXR1cm47CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gcmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKLXsKLSAgICBJTkNfU1RB
VFMoIkRPTS5UZXN0T2JqLnJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0ci5fZ2V0Iik7Ci0gICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICByZXR1
cm4gdjhTdHJpbmcoaW1wLT5nZXROb25FbXB0eVVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OnJlZmxlY3RlZG5vbmVtcHR5dXJsYXR0ckF0dHIpKTsKLX0KLQotc3RhdGljIHZvaWQgcmVm
bGVjdGVkTm9uRW1wdHlVUkxBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFt
ZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGlu
Zm8pCi17Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5yZWZsZWN0ZWROb25FbXB0eVVSTEF0
dHIuX3NldCIpOwotICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5I
b2xkZXIoKSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DS19WT0lE
KFY4UGFyYW1ldGVyPFdpdGhOdWxsQ2hlY2s+LCB2LCB2YWx1ZSk7Ci0gICAgaW1wLT5zZXRBdHRy
aWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRub25lbXB0eXVybGF0dHJBdHRyLCB2
KTsKLSAgICByZXR1cm47Ci19Ci0KIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVmbGVj
dGVkU3RyaW5nQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0
IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5y
ZWZsZWN0ZWRTdHJpbmdBdHRyLl9nZXQiKTsKQEAgLTQxMCwyMiArMzk0LDYgQEAgc3RhdGljIHZv
aWQgcmVmbGVjdGVkQ3VzdG9tVVJMQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hbWUsIHY4OjpMb2MKICAgICByZXR1cm47CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gcmVmbGVjdGVkQ3VzdG9tTm9uRW1wdHlVUkxBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8
djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKLXsKLSAgICBJ
TkNfU1RBVFMoIkRPTS5UZXN0T2JqLnJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0ci5fZ2V0
Iik7Ci0gICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigp
KTsKLSAgICByZXR1cm4gdjhTdHJpbmcoaW1wLT5nZXROb25FbXB0eVVSTEF0dHJpYnV0ZShXZWJD
b3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnROb25FbXB0eVVSTEF0dHJBdHRyKSk7Ci19Ci0K
LXN0YXRpYyB2b2lkIHJlZmxlY3RlZEN1c3RvbU5vbkVtcHR5VVJMQXR0ckF0dHJTZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQotewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmou
cmVmbGVjdGVkQ3VzdG9tTm9uRW1wdHlVUkxBdHRyLl9zZXQiKTsKLSAgICBUZXN0T2JqKiBpbXAg
PSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFNUUklOR19UT19WOFBB
UkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjxXaXRoTnVsbENoZWNrPiwg
diwgdmFsdWUpOwotICAgIGltcC0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3Vz
dG9tQ29udGVudE5vbkVtcHR5VVJMQXR0ckF0dHIsIHYpOwotICAgIHJldHVybjsKLX0KLQogc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJHZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGlu
Zm8pCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5hdHRyV2l0aEdldHRlckV4Y2VwdGlv
bi5fZ2V0Iik7CkBAIC0xNjEyLDggKzE1ODAsNiBAQCBzdGF0aWMgY29uc3QgQmF0Y2hlZEF0dHJp
YnV0ZSBUZXN0T2JqQXR0cnNbXSA9IHsKICAgICB7InJlZmxlY3RlZEJvb2xlYW5BdHRyIiwgVGVz
dE9iakludGVybmFsOjpyZWZsZWN0ZWRCb29sZWFuQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRl
cm5hbDo6cmVmbGVjdGVkQm9vbGVhbkF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0
YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4
OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAg
ICAvLyBBdHRyaWJ1dGUgJ3JlZmxlY3RlZFVSTEF0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRB
dHRyOiAnVVJMIFJlZmxlY3QnKQogICAgIHsicmVmbGVjdGVkVVJMQXR0ciIsIFRlc3RPYmpJbnRl
cm5hbDo6cmVmbGVjdGVkVVJMQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVj
dGVkVVJMQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFj
Y2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmli
dXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAotICAgIC8vIEF0dHJpYnV0ZSAn
cmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ1VS
TCBOb25FbXB0eSBSZWZsZWN0JykKLSAgICB7InJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0ciIsIFRl
c3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyQXR0ckdldHRlciwgVGVzdE9i
akludGVybmFsOjpyZWZsZWN0ZWROb25FbXB0eVVSTEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRh
dGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRp
Y19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNl
ICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3JlZmxlY3RlZFN0cmluZ0F0dHInIChUeXBlOiAnYXR0
cmlidXRlJyBFeHRBdHRyOiAnUmVmbGVjdCcpCiAgICAgeyJyZWZsZWN0ZWRTdHJpbmdBdHRyIiwg
VGVzdE9iakludGVybmFsOjpyZWZsZWN0ZWRTdHJpbmdBdHRyQXR0ckdldHRlciwgVGVzdE9iaklu
dGVybmFsOjpyZWZsZWN0ZWRTdHJpbmdBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBz
dGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2
ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAg
ICAgLy8gQXR0cmlidXRlICdyZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHInIChUeXBlOiAnYXR0
cmlidXRlJyBFeHRBdHRyOiAnUmVmbGVjdCcpCkBAIC0xNjIyLDggKzE1ODgsNiBAQCBzdGF0aWMg
Y29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBUZXN0T2JqQXR0cnNbXSA9IHsKICAgICB7InJlZmxlY3Rl
ZEN1c3RvbUJvb2xlYW5BdHRyIiwgVGVzdE9iakludGVybmFsOjpyZWZsZWN0ZWRDdXN0b21Cb29s
ZWFuQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkQ3VzdG9tQm9vbGVh
bkF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3ND
b250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4o
djg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3JlZmxl
Y3RlZEN1c3RvbVVSTEF0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnVVJMIFJlZmxl
Y3QnKQogICAgIHsicmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6cmVm
bGVjdGVkQ3VzdG9tVVJMQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVk
Q3VzdG9tVVJMQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6
OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0
cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAotICAgIC8vIEF0dHJpYnV0
ZSAncmVmbGVjdGVkQ3VzdG9tTm9uRW1wdHlVUkxBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0
QXR0cjogJ1VSTCBOb25FbXB0eSBSZWZsZWN0JykKLSAgICB7InJlZmxlY3RlZEN1c3RvbU5vbkVt
cHR5VVJMQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkQ3VzdG9tTm9uRW1wdHlVUkxB
dHRyQXR0ckdldHRlciwgVGVzdE9iakludGVybmFsOjpyZWZsZWN0ZWRDdXN0b21Ob25FbXB0eVVS
TEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3ND
b250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4o
djg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ2F0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCiAgICAg
eyJhdHRyV2l0aEdldHRlckV4Y2VwdGlvbiIsIFRlc3RPYmpJbnRlcm5hbDo6YXR0cldpdGhHZXR0
ZXJFeGNlcHRpb25BdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OmF0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNz
Q29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+
KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdhdHRy
V2l0aFNldHRlckV4Y2VwdGlvbicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>