<?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>59786</bug_id>
          
          <creation_ts>2011-04-29 01:56:25 -0700</creation_ts>
          <short_desc>Remove WCSS</short_desc>
          <delta_ts>2011-07-19 05:49:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>macpherson</cc>
    
    <cc>mjs</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>395174</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-29 01:56:25 -0700</bug_when>
    <thetext>Remove WCSS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395175</commentid>
    <comment_count>1</comment_count>
      <attachid>91652</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-29 02:00:54 -0700</bug_when>
    <thetext>Created attachment 91652
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395575</commentid>
    <comment_count>2</comment_count>
      <attachid>91652</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-29 15:40:28 -0700</bug_when>
    <thetext>Comment on attachment 91652
Patch

Temporarily removing from commit queue, as I&apos;m unsure if this is covered by the decision to remove WML. Please feel free to commit if it really is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395588</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-29 15:51:38 -0700</bug_when>
    <thetext>The most definitive statement I can find is the following from the WCSS specification:

&quot;The WAP CSS specifies a subset of CSS2 [CSS2] and WAP specific extensions. It can be used to style XHTML Basic and WML 2.0 documents, as well as any other XML document.&quot;

Unfortunately, I&apos;m not sure if that&apos;s dispositive.  We might need input from folks who are more familiar with these technologies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423046</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-17 22:59:52 -0700</bug_when>
    <thetext>It sounds like WCSS is different from WML.  We might want to remove WCSS, but we should discuss it separately from WML.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435341</commentid>
    <comment_count>5</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-07-11 17:43:50 -0700</bug_when>
    <thetext>I&apos;m looking forward to this going in. Has there been any progress on the discussion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435349</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-11 17:59:45 -0700</bug_when>
    <thetext>&gt; I&apos;m looking forward to this going in. Has there been any progress on the discussion?

Nope.  Feel free to bring it up on webkit-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436118</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-12 17:44:29 -0700</bug_when>
    <thetext>Has this been landed?  If not, we should land it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436135</commentid>
    <comment_count>8</comment_count>
      <attachid>91652</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-12 18:14:37 -0700</bug_when>
    <thetext>Comment on attachment 91652
Patch

I&apos;m clearing the R+ from this patch.  There&apos;s a thread about this bug on webkit-dev.  (The patch will probably need to be merged to top-of-tree anyway.)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91652</attachid>
            <date>2011-04-29 02:00:54 -0700</date>
            <delta_ts>2011-07-12 18:14:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59786-20110429020053.patch</filename>
            <type>text/plain</type>
            <size>42939</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDg1MzA5
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDQt
MjkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgV0NTUworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk3ODYKKworICAgICAgICAqIGNvbmZp
Z3VyZS5hYzoKKyAgICAgICAgICAgIC0gQWxzbyBjbGVhbiB1cCBzb21lIFdNTCBjb25maWd1cmF0
aW9uIGluZm9ybWF0aW9uIEkgbWlzc2VkCisgICAgICAgICAgICAgIHByZXZpb3VzbHkuCisKIDIw
MTEtMDQtMjggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IGNvbmZpZ3VyZS5hYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBj
b25maWd1cmUuYWMJKHJldmlzaW9uIDg1MzA5KQorKysgY29uZmlndXJlLmFjCSh3b3JraW5nIGNv
cHkpCkBAIC02MTcsMjIgKzYxNyw2IEBAIEFDX0FSR19FTkFCTEUoc3ZnLAogICAgICAgICAgICAg
ICBbXSxbZW5hYmxlX3N2Zz0ieWVzIl0pCiBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3N2Z10pCiAK
LSMgY2hlY2sgd2hldGhlciB0byBlbmFibGUgV01MIHN1cHBvcnQKLUFDX01TR19DSEVDS0lORyhb
d2hldGhlciB0byBlbmFibGUgV01MIHN1cHBvcnRdKQotQUNfQVJHX0VOQUJMRSh3bWwsCi0gICAg
ICAgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS13bWxdLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbZW5hYmxlIHN1cHBvcnQgZm9yIFdNTCBbZGVmYXVsdD1ub11dKSwKLSAg
ICAgICAgICAgICAgW10sW2VuYWJsZV93bWw9Im5vIl0pCi1BQ19NU0dfUkVTVUxUKFskZW5hYmxl
X3dtbF0pCi0KLSMgY2hlY2sgd2hldGhlciB0byBlbmFibGUgV0NTUyBzdXBwb3J0Ci1BQ19NU0df
Q0hFQ0tJTkcoW3doZXRoZXIgdG8gZW5hYmxlIFdDU1Mgc3VwcG9ydF0pCi1BQ19BUkdfRU5BQkxF
KHdjc3MsCi0gICAgICAgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS13Y3NzXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuYWJsZSBzdXBwb3J0IGZvciBXQ1NTIFtkZWZh
dWx0PW5vXV0pLAotICAgICAgICAgICAgICBbXSxbZW5hYmxlX3djc3M9Im5vIl0pCi1BQ19NU0df
UkVTVUxUKFskZW5hYmxlX3djc3NdKQotCiAjIGNoZWNrIHdoZXRoZXIgdG8gZW5hYmxlIFNoYXJl
ZFdvcmtlcnMgc3VwcG9ydAogQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJsZSBTaGFy
ZWRXb3JrZXJzIHN1cHBvcnRdKQogQUNfQVJHX0VOQUJMRShzaGFyZWRfd29ya2VycywKQEAgLTEx
MDksOCArMTA5Myw2IEBAIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfU1ZHX0FTX0lNQUdFXSxbdGUK
IEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfU1ZHX1VTRV0sW3Rlc3QgIiRlbmFibGVfc3ZnX3VzZSIg
PSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0NPVkVSQUdFXSxbdGVzdCAiJGVuYWJs
ZV9jb3ZlcmFnZSIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0ZBU1RfTUFMTE9D
XSxbdGVzdCAiJGVuYWJsZV9mYXN0X21hbGxvYyIgPSAieWVzIl0pCi1BTV9DT05ESVRJT05BTChb
RU5BQkxFX1dNTF0sW3Rlc3QgIiRlbmFibGVfd21sIiA9ICJ5ZXMiXSkKLUFNX0NPTkRJVElPTkFM
KFtFTkFCTEVfV0NTU10sW3Rlc3QgIiRlbmFibGVfd2NzcyIgPSAieWVzIl0pCiBBTV9DT05ESVRJ
T05BTChbRU5BQkxFX1dPUktFUlNdLFt0ZXN0ICIkZW5hYmxlX3dvcmtlcnMiID0gInllcyJdKQog
QU1fQ09ORElUSU9OQUwoW0VOQUJMRV9TSEFSRURfV09SS0VSU10sW3Rlc3QgIiRlbmFibGVfc2hh
cmVkX3dvcmtlcnMiID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwoW1NWR19GTEFHU10sW3Rlc3Qg
IiRzdmdfZmxhZ3MiID0gInllcyJdKQpAQCAtMTIwNiw4ICsxMTg4LDYgQEAgRmVhdHVyZXM6CiAg
U1ZHIGZvcmVpZ24gb2JqZWN0IHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OiAkZW5hYmxlX3N2Z19mb3JlaWduX29iamVjdAogIFNWRyBhcyBpbWFnZSBzdXBwb3J0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9zdmdfYXNfaW1hZ2UKICBT
VkcgdXNlIGVsZW1lbnQgc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6
ICRlbmFibGVfc3ZnX3VzZQotIFdNTCBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV93bWwKLSBXQ1NTIHN1cHBvcnQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfd2NzcwogIFdlYiBB
dWRpbyBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVu
YWJsZV93ZWJfYXVkaW8KICBXZWIgU29ja2V0cyBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA6ICRlbmFibGVfd2ViX3NvY2tldHMKICBXZWIgVGltaW5nIHN1cHBv
cnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfd2ViX3Rp
bWluZwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODUzMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzOSBAQAorMjAxMS0wNC0yOSAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBXQ1NTCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTc4NgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVt
b3ZlcyBXQ1NTLCB3aGljaCBleGlzdGVkIG9ubHkgZm9yIHRoZSBwdXJwb3NlIG9mCisgICAgICAg
IHNlcnZpY2luZyBXTUwuICBXQ1NTIHNlZW1zIHByZXR0eSBvYnNjdXJlLiAgRm9yIGV4YW1wbGUs
IFdDU1MgZG9lcyBub3QKKyAgICAgICAgYXBwZWFyIHRvIGhhdmUgYSBXaWtpcGVkaWEgYXJ0aWNs
ZS4KKworICAgICAgICAqIENvZGVHZW5lcmF0b3JzLnByaToKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgICog
Y3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAqIGNzcy9XQ1NT
VmFsdWVLZXl3b3Jkcy5pbjogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vSW5wdXRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0RWxlbWVudDo6c2FuaXRpemVWYWx1ZUZvclRleHRG
aWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEVsZW1lbnQ6OmhhbmRsZUJlZm9yZVRleHRJ
bnNlcnRlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0RWxlbWVudERhdGE6OklucHV0
RWxlbWVudERhdGEpOgorICAgICAgICAqIGRvbS9JbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBm
ZWF0dXJlcy5wcmk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TWFycXVlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXJxdWVlOjpzdGFydCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmg6CisKIDIwMTEtMDQtMjggIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkJKHJldmlzaW9uIDg1MzA5KQorKysgU291
cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxMSAr
NDUsNiBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICBFWFRSQUNTU1ZB
TFVFUyArPSAkJFBXRC9jc3MvU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbgogfQogCi1jb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfV0NTUz0xKSB7Ci0gICAgRVhUUkFDU1NQUk9QRVJUSUVTICs9ICQkUFdE
L2Nzcy9XQ1NTUHJvcGVydHlOYW1lcy5pbgotICAgIEVYVFJBQ1NTVkFMVUVTICs9ICQkUFdEL2Nz
cy9XQ1NTVmFsdWVLZXl3b3Jkcy5pbgotfQotCiBTVFlMRVNIRUVUU19FTUJFRCA9IFwKICAgICAk
JFBXRC9jc3MvaHRtbC5jc3MgXAogICAgICQkUFdEL2Nzcy9xdWlya3MuY3NzIFwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA4NTMwOSkKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zODksMTQgKzM4OSw2IEBAIHdlYmNvcmVfY3Bw
ZmxhZ3MgKz0gLURFTkFCTEVfU0hBUkVEX1dPUksKIGVuZGlmCiAKICMgLS0tLQotIyBXQ1NTIFN1
cHBvcnQKLSMgLS0tLQotaWYgRU5BQkxFX1dDU1MKLUZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVf
V0NTUz0xCi13ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1dDU1M9MQotZW5kaWYgIyBFTkQg
RU5BQkxFX1dDU1MKLQotIyAtLS0tCiAjIEZpbHRlcnMKICMgLS0tLQogaWYgRU5BQkxFX0ZJTFRF
UlMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA4NTMwOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMSArMjcsNiBAQCBjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICBFWFRSQUNTU1ZBTFVFUyArPSAkJFBXRC9jc3Mv
U1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbgogfQogCi1jb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0NT
Uz0xKSB7Ci0gICAgRVhUUkFDU1NQUk9QRVJUSUVTICs9ICQkUFdEL2Nzcy9XQ1NTUHJvcGVydHlO
YW1lcy5pbgotICAgIEVYVFJBQ1NTVkFMVUVTICs9ICQkUFdEL2Nzcy9XQ1NTVmFsdWVLZXl3b3Jk
cy5pbgotfQotCiBTT1VSQ0VTICs9IFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJ
bWFnZU1hcExpbmsuY3BwIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2xzLmNwcCBcICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQkocmV2aXNpb24gODUzMDkpCisr
KyBTb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5
LDYgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NJTkdMRV9USFJFQURFRAogIWNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9GSUxURVJTPS4pOiBERUZJTkVTICs9IEVOQUJMRV9GSUxURVJTPTEK
ICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWFBBVEg9Lik6IERFRklORVMgKz0gRU5BQkxFX1hQ
QVRIPTEKICMhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1hCTD0uKTogREVGSU5FUyArPSBFTkFC
TEVfWEJMPTEKLSFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0NTUz0uKTogREVGSU5FUyArPSBF
TkFCTEVfV0NTUz0wCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NIQVJFRF9XT1JLRVJTPS4p
OiBERUZJTkVTICs9IEVOQUJMRV9TSEFSRURfV09SS0VSUz0xCiAhY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX1dPUktFUlM9Lik6IERFRklORVMgKz0gRU5BQkxFX1dPUktFUlM9MQogIWNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9YSFRNTE1QPS4pOiBERUZJTkVTICs9IEVOQUJMRV9YSFRNTE1QPTAK
QEAgLTE4NCwxMyArMTgzLDYgQEAgQ09ORklHKGNvbXB1dGVfZGVmYXVsdHMpIHsKICAgICBlcnJv
cigiRG9uZSBjb21wdXRpbmcgZGVmYXVsdHMiKQogfQogCi1jb250YWlucyhERUZJTkVTLCBFTkFC
TEVfV0NTUz0xKSB7Ci0gICAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1hIVE1MTVA9MCkgewot
ICAgICAgICBERUZJTkVTIC09IEVOQUJMRV9YSFRNTE1QPTAKLSAgICAgICAgREVGSU5FUyArPSBF
TkFCTEVfWEhUTUxNUD0xCi0gICAgfQotfQotCiAjIyBGb3J3YXJkIGVuYWJsZWQgZmVhdHVyZSBt
YWNyb3MgdG8gSmF2YVNjcmlwdCBlbmFibGVkIGZlYXR1cmVzIG1hY3JvcwogRkVBVFVSRV9ERUZJ
TkVTX0pBVkFTQ1JJUFQgPSBMQU5HVUFHRV9KQVZBU0NSSVBUPTEKIHY4OiBGRUFUVVJFX0RFRklO
RVNfSkFWQVNDUklQVCArPSBWOF9CSU5ESU5HPTEKQEAgLTIwOCw3ICsyMDAsNiBAQCBjb250YWlu
cyhERUZJTkVTLCBFTkFCTEVfWFBBVEg9MSk6IEZFQVRVCiBjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfWFNMVD0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hTTFQ9MQog
Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX1hCTD0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJ
UFQgKz0gRU5BQkxFX1hCTD0xCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfRklMVEVSUz0xKTog
RkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0ZJTFRFUlM9MQotY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX1dDU1M9MSk6IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVO
QUJMRV9XQ1NTPTEKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YSFRNTE1QPTEpOiBGRUFUVVJF
X0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfWEhUTUxNUD0xCiBjb250YWlucyhERUZJTkVT
LCBFTkFCTEVfU1ZHPTEpOiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZH
PTEKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEpOiBGRUFUVVJFX0RF
RklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAkocmV2aXNpb24gODUzMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTE1LDExICs5MTUsNyBAQCBib29sIENT
U1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIC8vIGlubGluZSB8IGJs
b2NrIHwgbGlzdC1pdGVtIHwgcnVuLWluIHwgaW5saW5lLWJsb2NrIHwgdGFibGUgfAogICAgICAg
ICAvLyBpbmxpbmUtdGFibGUgfCB0YWJsZS1yb3ctZ3JvdXAgfCB0YWJsZS1oZWFkZXItZ3JvdXAg
fCB0YWJsZS1mb290ZXItZ3JvdXAgfCB0YWJsZS1yb3cgfAogICAgICAgICAvLyB0YWJsZS1jb2x1
bW4tZ3JvdXAgfCB0YWJsZS1jb2x1bW4gfCB0YWJsZS1jZWxsIHwgdGFibGUtY2FwdGlvbiB8IGJv
eCB8IGlubGluZS1ib3ggfCBub25lIHwgaW5oZXJpdAotI2lmIEVOQUJMRShXQ1NTKQotICAgICAg
ICBpZiAoKGlkID49IENTU1ZhbHVlSW5saW5lICYmIGlkIDw9IENTU1ZhbHVlV2FwTWFycXVlZSkg
fHwgaWQgPT0gQ1NTVmFsdWVOb25lKQotI2Vsc2UKICAgICAgICAgaWYgKChpZCA+PSBDU1NWYWx1
ZUlubGluZSAmJiBpZCA8PSBDU1NWYWx1ZVdlYmtpdElubGluZUJveCkgfHwgaWQgPT0gQ1NTVmFs
dWVOb25lKQotI2VuZGlmCiAgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAg
ICAgIGJyZWFrOwogCkBAIC0xNTAzLDI4ICsxNDk5LDYgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNl
VmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICBlbHNlCiAgICAgICAgICAgICB2YWxpZFByaW1p
dGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRlRpbWUgfCBGSW50ZWdlciB8IEZOb25OZWcsIG1fc3Ry
aWN0KTsKICAgICAgICAgYnJlYWs7Ci0jaWYgRU5BQkxFKFdDU1MpCi0gICAgY2FzZSBDU1NQcm9w
ZXJ0eVdhcE1hcnF1ZWVEaXI6Ci0gICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUx0ciB8fCBpZCA9
PSBDU1NWYWx1ZVJ0bCkKLSAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVTdHlsZToKLSAgICAgICAg
aWYgKGlkID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NWYWx1ZVNsaWRlIHx8IGlkID09IENT
U1ZhbHVlU2Nyb2xsIHx8IGlkID09IENTU1ZhbHVlQWx0ZXJuYXRlKQotICAgICAgICAgICAgdmFs
aWRQcmltaXRpdmUgPSB0cnVlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1Byb3BlcnR5
V2FwTWFycXVlZUxvb3A6Ci0gICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUluZmluaXRlKQotICAg
ICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXIgfCBGTm9uTmVnLCBt
X3N0cmljdCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVl
U3BlZWQ6Ci0gICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1
ZVNsb3cgfHwgaWQgPT0gQ1NTVmFsdWVGYXN0KQotICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUg
PSB0cnVlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlk
VW5pdCh2YWx1ZSwgRlRpbWUgfCBGSW50ZWdlciB8IEZOb25OZWcsIG1fc3RyaWN0KTsKLSAgICAg
ICAgYnJlYWs7Ci0jZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VXNlckRyYWc6IC8v
IGF1dG8gfCBub25lIHwgZWxlbWVudAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8
IGlkID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NWYWx1ZUVsZW1lbnQpCiAgICAgICAgICAg
ICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CkBAIC0xOTYyLDE0ICsxOTM2LDYgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0
T3ZlcmxpbmU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRVbmRlcmxpbmU6CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSNpZiBFTkFCTEUoV0NTUykKLSAgICBjYXNlIENTU1Byb3BlcnR5V2FwSW5w
dXRGb3JtYXQ6Ci0gICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdhcElucHV0UmVxdWlyZWQ6Ci0gICAgICAgIHBhcnNlZFZh
bHVlID0gcGFyc2VXQ1NTSW5wdXRQcm9wZXJ0eSgpOwotICAgICAgICBicmVhazsKLSNlbmRpZgog
CiAgICAgLy8gQ1NTIFRleHQgTGF5b3V0IE1vZHVsZSBMZXZlbCAzOiBWZXJ0aWNhbCB3cml0aW5n
IHN1cHBvcnQKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0V3JpdGluZ01vZGU6CkBAIC0yMDM2
LDI3ICsyMDAyLDYgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotI2lmIEVOQUJMRShXQ1NTKQotUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZVdDU1NJbnB1dFByb3BlcnR5KCkKLXsKLSAgICBSZWZQdHI8
Q1NTVmFsdWU+IHBhcnNlZFZhbHVlID0gMDsKLSAgICBDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBt
X3ZhbHVlTGlzdC0+Y3VycmVudCgpOwotICAgIFN0cmluZyBpbnB1dFByb3BlcnR5OwotICAgIGlm
ICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORyB8fCB2YWx1ZS0+
dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UKQotICAgICAgICBpbnB1dFByb3Bl
cnR5ID0gU3RyaW5nKHZhbHVlLT5zdHJpbmcpOwotCi0gICAgaWYgKCFpbnB1dFByb3BlcnR5Lmlz
RW1wdHkoKSkKLSAgICAgICBwYXJzZWRWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlQ2FjaGUoKS0+Y3Jl
YXRlVmFsdWUoaW5wdXRQcm9wZXJ0eSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpOwot
Ci0gICAgd2hpbGUgKG1fdmFsdWVMaXN0LT5uZXh0KCkpIHsKLSAgICAvLyBwYXNzIGFsbCBvdGhl
ciB2YWx1ZXMsIGlmIGFueS4gSWYgd2UgZG9uJ3QgZG8gdGhpcywKLSAgICAvLyB0aGUgcGFyc2Vy
IHdpbGwgdGhpbmsgdGhhdCBpdCdzIG5vdCBkb25lIGFuZCB3b24ndCBwcm9jZXNzIHRoaXMgcHJv
cGVydHkKLSAgICB9Ci0KLSAgICByZXR1cm4gcGFyc2VkVmFsdWU7Ci19Ci0jZW5kaWYKLQogdm9p
ZCBDU1NQYXJzZXI6OmFkZEZpbGxWYWx1ZShSZWZQdHI8Q1NTVmFsdWU+JiBsdmFsLCBQYXNzUmVm
UHRyPENTU1ZhbHVlPiBydmFsKQogewogICAgIGlmIChsdmFsKSB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCShyZXZpc2lvbiA4NTMwOSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTUzLDEwICsxNTMsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlU1ZHU3Ryb2tlRGFzaGFycmF5
KCk7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXQ1NTKQotICAgICAgICBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBwYXJzZVdDU1NJbnB1dFByb3BlcnR5KCk7Ci0jZW5kaWYKLQogICAgICAgICAvLyBDU1Mz
IFBhcnNpbmcgUm91dGluZXMgKGZvciBwcm9wZXJ0aWVzIHNwZWNpZmljIHRvIENTUzMpCiAgICAg
ICAgIGJvb2wgcGFyc2VTaGFkb3coaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpOwogICAgICAg
ICBib29sIHBhcnNlQm9yZGVySW1hZ2UoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQsIFJlZlB0
cjxDU1NWYWx1ZT4mKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZU1hcHBpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlTWFwcGluZ3MuaAkocmV2aXNpb24gODUzMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC04NjEsMTEgKzg2
MSw2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1MKICAgICAgICAg
Y2FzZSBUQUJMRV9DQVBUSU9OOgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
VGFibGVDYXB0aW9uOwogICAgICAgICAgICAgYnJlYWs7Ci0jaWYgRU5BQkxFKFdDU1MpCi0gICAg
ICAgIGNhc2UgV0FQX01BUlFVRUU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVXYXBNYXJxdWVlOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKICAgICAgICAgY2FzZSBC
T1g6CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRCb3g7CiAgICAg
ICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAJKHJldmlzaW9uIDg1MzA5KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjA0LDIxICszNjA0LDYgQEAgdm9pZCBDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eURpc3BsYXk6CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMX0FO
RF9QUklNSVRJVkUoZGlzcGxheSwgRGlzcGxheSkKLSNpZiBFTkFCTEUoV0NTUykKLSAgICAgICAg
aWYgKHByaW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1Zh
bHVlV2FwTWFycXVlZSkgewotICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSBXQVAgTWFycXVlZSBz
dHlsZQotICAgICAgICAgICAgbV9zdHlsZS0+c2V0T3ZlcmZsb3dYKE9NQVJRVUVFKTsKLSAgICAg
ICAgICAgIG1fc3R5bGUtPnNldE92ZXJmbG93WShPTUFSUVVFRSk7Ci0gICAgICAgICAgICBtX3N0
eWxlLT5zZXRXaGl0ZVNwYWNlKE5PV1JBUCk7Ci0gICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJx
dWVlRGlyZWN0aW9uKE1MRUZUKTsKLSAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVTcGVl
ZCg4NSk7IC8vIE5vcm1hbCBzcGVlZAotICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZUxv
b3BDb3VudCgxKTsKLSAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVCZWhhdmlvcihNU0NS
T0xMKTsKLQotICAgICAgICAgICAgaWYgKG1fcGFyZW50U3R5bGUpCi0gICAgICAgICAgICAgICAg
bV9zdHlsZS0+c2V0RGlzcGxheShtX3BhcmVudFN0eWxlLT5kaXNwbGF5KCkpOwotICAgICAgICB9
Ci0jZW5kaWYKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ1NTUHJvcGVydHlFbXB0eUNlbGxz
OgogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTF9BTkRfUFJJTUlUSVZFKGVtcHR5
Q2VsbHMsIEVtcHR5Q2VsbHMpCkBAIC01MjQ3LDkgKzUyMzIsNiBAQCB2b2lkIENTU1N0eWxlU2Vs
ZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVMb29w
Q291bnQobV9wYXJlbnRTdHlsZS0+bWFycXVlZUxvb3BDb3VudCgpKTsKICAgICAgICAgbV9zdHls
ZS0+c2V0TWFycXVlZUJlaGF2aW9yKG1fcGFyZW50U3R5bGUtPm1hcnF1ZWVCZWhhdmlvcigpKTsK
ICAgICAgICAgcmV0dXJuOwotI2lmIEVOQUJMRShXQ1NTKQotICAgIGNhc2UgQ1NTUHJvcGVydHlX
YXBNYXJxdWVlTG9vcDoKLSNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVl
UmVwZXRpdGlvbjogewogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChtYXJxdWVl
TG9vcENvdW50LCBNYXJxdWVlTG9vcENvdW50KQogICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVl
KQpAQCAtNTI2MCw5ICs1MjQyLDYgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3Bl
cnR5KGludAogICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZUxvb3BDb3VudChwcmltaXRp
dmVWYWx1ZS0+Z2V0SW50VmFsdWUoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jaWYgRU5B
QkxFKFdDU1MpCi0gICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVTcGVlZDoKLSNlbmRpZgog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlU3BlZWQ6IHsKICAgICAgICAgSEFORExF
X0lOSEVSSVRfQU5EX0lOSVRJQUwobWFycXVlZVNwZWVkLCBNYXJxdWVlU3BlZWQpICAgICAgCiAg
ICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCkBAIC01MzEzLDMwICs1MjkyLDkgQEAgdm9pZCBD
U1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICB9CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0jaWYgRU5BQkxFKFdDU1MpCi0gICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1h
cnF1ZWVTdHlsZToKLSNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlU3R5
bGU6CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMX0FORF9QUklNSVRJVkUobWFy
cXVlZUJlaGF2aW9yLCBNYXJxdWVlQmVoYXZpb3IpICAgICAgCiAgICAgICAgIHJldHVybjsKLSNp
ZiBFTkFCTEUoV0NTUykKLSAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZURpcjoKLSAgICAg
ICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobWFycXVlZURpcmVjdGlvbiwgTWFycXVlZURp
cmVjdGlvbikKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2ZVZhbHVlLT5n
ZXRJZGVudCgpKSB7Ci0gICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVu
dCgpKSB7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlTHRyOgotICAgICAgICAgICAgICAgIG1f
c3R5bGUtPnNldE1hcnF1ZWVEaXJlY3Rpb24oTVJJR0hUKTsKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVSdGw6Ci0gICAgICAgICAgICAgICAgbV9zdHls
ZS0+c2V0TWFycXVlZURpcmVjdGlvbihNTEVGVCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVE
aXJlY3Rpb24oKnByaW1pdGl2ZVZhbHVlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm47Ci0jZW5kaWYKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0TWFycXVlZURpcmVjdGlvbjoKICAgICAgICAgSEFORExFX0lOSEVSSVRf
QU5EX0lOSVRJQUxfQU5EX1BSSU1JVElWRShtYXJxdWVlRGlyZWN0aW9uLCBNYXJxdWVlRGlyZWN0
aW9uKQogICAgICAgICByZXR1cm47CkBAIC01Nzc0LDIyICs1NzMyLDYgQEAgdm9pZCBDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRU
ZXh0U3Ryb2tlOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXM6CiAgICAg
ICAgIHJldHVybjsKLSNpZiBFTkFCTEUoV0NTUykKLSAgICBjYXNlIENTU1Byb3BlcnR5V2FwSW5w
dXRGb3JtYXQ6Ci0gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSAmJiBtX2VsZW1lbnQtPmhhc1Rh
Z05hbWUoV2ViQ29yZTo6aW5wdXRUYWcpKSB7Ci0gICAgICAgICAgICBTdHJpbmcgbWFzayA9IHBy
aW1pdGl2ZVZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpOwotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KG1fZWxlbWVudCktPnNldFdhcElucHV0Rm9ybWF0KG1hc2spOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLQotICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBJbnB1
dFJlcXVpcmVkOgotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUgJiYgbV9lbGVtZW50LT5pc0Zv
cm1Db250cm9sRWxlbWVudCgpKSB7Ci0gICAgICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudCo+KG1fZWxlbWVu
dCk7Ci0gICAgICAgICAgICBib29sIHJlcXVpcmVkID0gcHJpbWl0aXZlVmFsdWUtPmdldFN0cmlu
Z1ZhbHVlKCkgPT0gInRydWUiOwotICAgICAgICAgICAgZWxlbWVudC0+c2V0UmVxdWlyZWQocmVx
dWlyZWQpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSNlbmRpZiAKIAogICAgIC8vIENT
UyBUZXh0IExheW91dCBNb2R1bGUgTGV2ZWwgMzogVmVydGljYWwgd3JpdGluZyBzdXBwb3J0CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyaXRpbmdNb2RlOiB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvV0NTU1ZhbHVlS2V5d29yZHMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL1dDU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiA4NTMwOSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9XQ1NTVmFsdWVLZXl3b3Jkcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMSArMCww
IEBACi0jIHBsYWNlIGhvbGRlciBmb3IgYWxsIFdDU1Mgc3BlY2lmaWMgQ1NTIHZhbHVlIGtleXdv
cmRzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24gODUzMDkp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjMsMTQgKzIzLDYgQEAKIAogI2luY2x1ZGUgIkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50Lmgi
CiAKLSNpZiBFTkFCTEUoV0NTUykKLSNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCi0jaW5j
bHVkZSAiQ1NTUnVsZS5oIgotI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCi0jaW5jbHVkZSAiQ1NT
U3R5bGVSdWxlLmgiCi0jaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgotI2VuZGlmCi0KICNp
bmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJv
bWVDbGllbnQuaCIKQEAgLTE1OCwxNCArMTUwLDYgQEAgc3RhdGljIFN0cmluZyByZXBsYWNlRU9M
QW5kTGltaXRMZW5ndGgoYwogCiBTdHJpbmcgSW5wdXRFbGVtZW50OjpzYW5pdGl6ZVZhbHVlRm9y
VGV4dEZpZWxkKGNvbnN0IElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50LCBjb25zdCBTdHJpbmcm
IHByb3Bvc2VkVmFsdWUpCiB7Ci0jaWYgRU5BQkxFKFdDU1MpCi0gICAgSW5wdXRFbGVtZW50RGF0
YSBkYXRhID0gY29uc3RfY2FzdDxJbnB1dEVsZW1lbnQqPihpbnB1dEVsZW1lbnQpLT5kYXRhKCk7
Ci0gICAgaWYgKCFpc0NvbmZvcm1Ub0lucHV0TWFzayhkYXRhLCBwcm9wb3NlZFZhbHVlKSkgewot
ICAgICAgICBpZiAoaXNDb25mb3JtVG9JbnB1dE1hc2soZGF0YSwgZGF0YS52YWx1ZSgpKSkKLSAg
ICAgICAgICAgIHJldHVybiBkYXRhLnZhbHVlKCk7Ci0gICAgICAgIHJldHVybiBTdHJpbmcoKTsK
LSAgICB9Ci0jZW5kaWYKICAgICByZXR1cm4gcmVwbGFjZUVPTEFuZExpbWl0TGVuZ3RoKGlucHV0
RWxlbWVudCwgcHJvcG9zZWRWYWx1ZSwgc19tYXhpbXVtTGVuZ3RoKTsKIH0KIApAQCAtMTk5LDE4
ICsxODMsNiBAQCB2b2lkIElucHV0RWxlbWVudDo6aGFuZGxlQmVmb3JlVGV4dEluc2VyCiAKICAg
ICAvLyBUcnVuY2F0ZSB0aGUgaW5zZXJ0ZWQgdGV4dCB0byBhdm9pZCB2aW9sYXRpbmcgdGhlIG1h
eExlbmd0aCBhbmQgb3RoZXIgY29uc3RyYWludHMuCiAgICAgQmVmb3JlVGV4dEluc2VydGVkRXZl
bnQqIHRleHRFdmVudCA9IHN0YXRpY19jYXN0PEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50Kj4oZXZl
bnQpOwotI2lmIEVOQUJMRShXQ1NTKQotICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBlbGVtZW50
LT5kb2N1bWVudCgpLT5mcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkudG9Ob3JtYWxp
emVkUmFuZ2UoKTsKLSAgICBTdHJpbmcgY2FuZGlkYXRlU3RyaW5nID0gdG9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUoZWxlbWVudC0+cmVuZGVyZXIoKSktPnRleHQoKTsKLSAgICBpZiAoc2Vs
ZWN0aW9uTGVuZ3RoKQotICAgICAgICBjYW5kaWRhdGVTdHJpbmcucmVwbGFjZShyYW5nZS0+c3Rh
cnRPZmZzZXQoKSwgcmFuZ2UtPmVuZE9mZnNldCgpLCB0ZXh0RXZlbnQtPnRleHQoKSk7Ci0gICAg
ZWxzZQotICAgICAgICBjYW5kaWRhdGVTdHJpbmcuaW5zZXJ0KHRleHRFdmVudC0+dGV4dCgpLCBy
YW5nZS0+c3RhcnRPZmZzZXQoKSk7Ci0gICAgaWYgKCFpc0NvbmZvcm1Ub0lucHV0TWFzayhpbnB1
dEVsZW1lbnQtPmRhdGEoKSwgY2FuZGlkYXRlU3RyaW5nKSkgewotICAgICAgICB0ZXh0RXZlbnQt
PnNldFRleHQoIiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCiAgICAgdGV4dEV2
ZW50LT5zZXRUZXh0KHNhbml0aXplVXNlcklucHV0VmFsdWUoaW5wdXRFbGVtZW50LCB0ZXh0RXZl
bnQtPnRleHQoKSwgYXBwZW5kYWJsZUxlbmd0aCkpOwogfQogCkBAIC0yNjIsMTAgKzIzNCw2IEBA
IElucHV0RWxlbWVudERhdGE6OklucHV0RWxlbWVudERhdGEoKQogICAgICwgbV9tYXhMZW5ndGgo
SW5wdXRFbGVtZW50OjpzX21heGltdW1MZW5ndGgpCiAgICAgLCBtX2NhY2hlZFNlbGVjdGlvblN0
YXJ0KC0xKQogICAgICwgbV9jYWNoZWRTZWxlY3Rpb25FbmQoLTEpCi0jaWYgRU5BQkxFKFdDU1Mp
Ci0gICAgLCBtX2lucHV0Rm9ybWF0TWFzaygiKm0iKQotICAgICwgbV9tYXhJbnB1dENoYXJzQWxs
b3dlZChJbnB1dEVsZW1lbnQ6OnNfbWF4aW11bUxlbmd0aCkKLSNlbmRpZgogewogfQogCkBAIC0y
NzgsMTM3ICsyNDYsNCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIElucHV0RWxlbWVudERhdGE6Om5h
CiAgICAgcmV0dXJuIG1fbmFtZS5pc051bGwoKSA/IGVtcHR5QXRvbSA6IG1fbmFtZTsKIH0KIAot
I2lmIEVOQUJMRShXQ1NTKQotc3RhdGljIGlubGluZSBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1h
dENvZGVzKCkKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY29kZXMs
ICgiQWFOblh4TW0iKSk7Ci0gICAgcmV0dXJuIGNvZGVzOwotfQotCi1zdGF0aWMgdW5zaWduZWQg
Y3Vyc29yUG9zaXRpb25Ub01hc2tJbmRleChjb25zdCBTdHJpbmcmIGlucHV0Rm9ybWF0TWFzaywg
dW5zaWduZWQgY3Vyc29yUG9zaXRpb24pCi17Ci0gICAgVUNoYXIgbWFzazsKLSAgICBpbnQgaW5k
ZXggPSAtMTsKLSAgICBkbyB7Ci0gICAgICAgIG1hc2sgPSBpbnB1dEZvcm1hdE1hc2tbKytpbmRl
eF07Ci0gICAgICAgIGlmIChtYXNrID09ICdcXCcpCi0gICAgICAgICAgICArK2luZGV4OwotICAg
ICAgICBlbHNlIGlmIChtYXNrID09ICcqJyB8fCAoaXNBU0NJSURpZ2l0KG1hc2spICYmIG1hc2sg
IT0gJzAnKSkgewotICAgICAgICAgICAgaW5kZXggPSBpbnB1dEZvcm1hdE1hc2subGVuZ3RoKCkg
LSAxOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9IHdoaWxlIChjdXJzb3JQ
b3NpdGlvbi0tKTsKLQotICAgIHJldHVybiBpbmRleDsKLX0KLQotYm9vbCBJbnB1dEVsZW1lbnQ6
OmlzQ29uZm9ybVRvSW5wdXRNYXNrKGNvbnN0IElucHV0RWxlbWVudERhdGEmIGRhdGEsIGNvbnN0
IFN0cmluZyYgaW5wdXRDaGFycykKLXsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaW5w
dXRDaGFycy5sZW5ndGgoKTsgKytpKQotICAgICAgICBpZiAoIWlzQ29uZm9ybVRvSW5wdXRNYXNr
KGRhdGEsIGlucHV0Q2hhcnNbaV0sIGkpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IHJldHVybiB0cnVlOwotfQotCi1ib29sIElucHV0RWxlbWVudDo6aXNDb25mb3JtVG9JbnB1dE1h
c2soY29uc3QgSW5wdXRFbGVtZW50RGF0YSYgZGF0YSwgVUNoYXIgaW5DaGFyLCB1bnNpZ25lZCBj
dXJzb3JQb3NpdGlvbikKLXsKLSAgICBTdHJpbmcgaW5wdXRGb3JtYXRNYXNrID0gZGF0YS5pbnB1
dEZvcm1hdE1hc2soKTsKLQotICAgIGlmIChpbnB1dEZvcm1hdE1hc2suaXNFbXB0eSgpIHx8IGlu
cHV0Rm9ybWF0TWFzayA9PSAiKk0iIHx8IGlucHV0Rm9ybWF0TWFzayA9PSAiKm0iKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChjdXJzb3JQb3NpdGlvbiA+PSBkYXRhLm1heElucHV0
Q2hhcnNBbGxvd2VkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHVuc2lnbmVkIG1h
c2tJbmRleCA9IGN1cnNvclBvc2l0aW9uVG9NYXNrSW5kZXgoaW5wdXRGb3JtYXRNYXNrLCBjdXJz
b3JQb3NpdGlvbik7Ci0gICAgYm9vbCBvayA9IHRydWU7Ci0gICAgVUNoYXIgbWFzayA9IGlucHV0
Rm9ybWF0TWFza1ttYXNrSW5kZXhdOwotICAgIC8vIE1hdGNoIHRoZSBpbnB1dGVkIGNoYXJhY3Rl
ciB3aXRoIGlucHV0IG1hc2sKLSAgICBzd2l0Y2ggKG1hc2spIHsKLSAgICBjYXNlICdBJzoKLSAg
ICAgICAgb2sgPSAhaXNBU0NJSURpZ2l0KGluQ2hhcikgJiYgIWlzQVNDSUlMb3dlcihpbkNoYXIp
ICYmIGlzQVNDSUlQcmludGFibGUoaW5DaGFyKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAn
YSc6Ci0gICAgICAgIG9rID0gIWlzQVNDSUlEaWdpdChpbkNoYXIpICYmICFpc0FTQ0lJVXBwZXIo
aW5DaGFyKSAmJiBpc0FTQ0lJUHJpbnRhYmxlKGluQ2hhcik7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgJ04nOgotICAgICAgICBvayA9IGlzQVNDSUlEaWdpdChpbkNoYXIpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlICduJzoKLSAgICAgICAgb2sgPSAhaXNBU0NJSUFscGhhKGluQ2hhcikg
JiYgaXNBU0NJSVByaW50YWJsZShpbkNoYXIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlICdY
JzoKLSAgICAgICAgb2sgPSAhaXNBU0NJSUxvd2VyKGluQ2hhcikgJiYgaXNBU0NJSVByaW50YWJs
ZShpbkNoYXIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlICd4JzoKLSAgICAgICAgb2sgPSAh
aXNBU0NJSVVwcGVyKGluQ2hhcikgJiYgaXNBU0NJSVByaW50YWJsZShpbkNoYXIpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlICdNJzoKLSAgICBjYXNlICdtJzoKLSAgICAgICAgb2sgPSBpc0FT
Q0lJUHJpbnRhYmxlKGluQ2hhcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIG9rID0gKG1hc2sgPT0gaW5DaGFyKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAg
cmV0dXJuIG9rOwotfQotCi1TdHJpbmcgSW5wdXRFbGVtZW50Ojp2YWxpZGF0ZUlucHV0TWFzayhJ
bnB1dEVsZW1lbnREYXRhJiBkYXRhLCBTdHJpbmcmIGlucHV0TWFzaykKLXsKLSAgICBpbnB1dE1h
c2sucmVwbGFjZSgiXFxcXCIsICJcXCIpOwotCi0gICAgYm9vbCBpc1ZhbGlkID0gdHJ1ZTsKLSAg
ICBib29sIGhhc1dpbGRjYXJkID0gZmFsc2U7Ci0gICAgdW5zaWduZWQgZXNjYXBlQ2hhckNvdW50
ID0gMDsKLSAgICB1bnNpZ25lZCBtYXNrTGVuZ3RoID0gaW5wdXRNYXNrLmxlbmd0aCgpOwotICAg
IFVDaGFyIGZvcm1hdENvZGU7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1hc2tMZW5n
dGg7ICsraSkgewotICAgICAgICBmb3JtYXRDb2RlID0gaW5wdXRNYXNrW2ldOwotICAgICAgICBp
ZiAoZm9ybWF0Q29kZXMoKS5maW5kKGZvcm1hdENvZGUpID09IC0xKSB7Ci0gICAgICAgICAgICBp
ZiAoZm9ybWF0Q29kZSA9PSAnKicgfHwgKGlzQVNDSUlEaWdpdChmb3JtYXRDb2RlKSAmJiBmb3Jt
YXRDb2RlICE9ICcwJykpIHsKLSAgICAgICAgICAgICAgICAvLyBWYWxpZGF0ZSBjb2RlcyB3aGlj
aCBlbmRzIHdpdGggJypmJyBvciAnbmYnCi0gICAgICAgICAgICAgICAgZm9ybWF0Q29kZSA9IGlu
cHV0TWFza1srK2ldOwotICAgICAgICAgICAgICAgIGlmICgoaSArIDEgIT0gbWFza0xlbmd0aCkg
fHwgZm9ybWF0Q29kZXMoKS5maW5kKGZvcm1hdENvZGUpID09IC0xKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGlzVmFsaWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGhhc1dpbGRjYXJkID0gdHJ1ZTsKLSAgICAg
ICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0Q29kZSA9PSAnXFwnKSB7Ci0gICAgICAgICAgICAgICAg
Ly8gc2tpcCBvdmVyIHRoZSBuZXh0IG1hc2sgY2hhcmFjdGVyCi0gICAgICAgICAgICAgICAgKytp
OwotICAgICAgICAgICAgICAgICsrZXNjYXBlQ2hhckNvdW50OwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBpc1ZhbGlkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIWlzVmFsaWQp
Ci0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICAvLyBjYWxjdWxhdGUgdGhlIG51bWJlciBv
ZiBjaGFyYWN0ZXJzIGFsbG93ZWQgdG8gYmUgZW50ZXJlZCBieSBpbnB1dCBtYXNrCi0gICAgdW5z
aWduZWQgYWxsb3dlZExlbmd0aCA9IG1hc2tMZW5ndGg7Ci0gICAgaWYgKGVzY2FwZUNoYXJDb3Vu
dCkKLSAgICAgICAgYWxsb3dlZExlbmd0aCAtPSBlc2NhcGVDaGFyQ291bnQ7Ci0KLSAgICBpZiAo
aGFzV2lsZGNhcmQpIHsKLSAgICAgICAgZm9ybWF0Q29kZSA9IGlucHV0TWFza1ttYXNrTGVuZ3Ro
IC0gMl07Ci0gICAgICAgIGlmIChmb3JtYXRDb2RlID09ICcqJykKLSAgICAgICAgICAgIGFsbG93
ZWRMZW5ndGggPSBkYXRhLm1heElucHV0Q2hhcnNBbGxvd2VkKCk7Ci0gICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgdW5zaWduZWQgbGVmdExlbiA9IFN0cmluZygmZm9ybWF0Q29kZSkudG9JbnQo
KTsKLSAgICAgICAgICAgIGFsbG93ZWRMZW5ndGggPSBsZWZ0TGVuICsgYWxsb3dlZExlbmd0aCAt
IDI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoYWxsb3dlZExlbmd0aCA8IGRhdGEubWF4
SW5wdXRDaGFyc0FsbG93ZWQoKSkKLSAgICAgICAgZGF0YS5zZXRNYXhJbnB1dENoYXJzQWxsb3dl
ZChhbGxvd2VkTGVuZ3RoKTsKLQotICAgIHJldHVybiBpbnB1dE1hc2s7Ci19Ci0KLSNlbmRpZgot
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCShyZXZpc2lvbiA4NTMwOSkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzIs
MTAgKzcyLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjYWNoZVNlbGVjdGlvbihpbnQg
c3RhcnQsIGludCBlbmQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0KCkgPSAwOwogICAK
LSNpZiBFTkFCTEUoV0NTUykKLSAgICB2aXJ0dWFsIElucHV0RWxlbWVudERhdGEgZGF0YSgpIGNv
bnN0ID0gMDsgCi0jZW5kaWYKLQogICAgIHN0YXRpYyBjb25zdCBpbnQgc19tYXhpbXVtTGVuZ3Ro
OwogICAgIHN0YXRpYyBjb25zdCBpbnQgc19kZWZhdWx0U2l6ZTsKIApAQCAtMTAxLDExICs5Nyw2
IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCBwYXJzZU1heExlbmd0aEF0dHJpYnV0ZShJ
bnB1dEVsZW1lbnREYXRhJiwgSW5wdXRFbGVtZW50KiwgRWxlbWVudCosIEF0dHJpYnV0ZSopOwog
ICAgIHN0YXRpYyB2b2lkIHVwZGF0ZVZhbHVlSWZOZWVkZWQoSW5wdXRFbGVtZW50RGF0YSYsIElu
cHV0RWxlbWVudCopOwogICAgIHN0YXRpYyB2b2lkIG5vdGlmeUZvcm1TdGF0ZUNoYW5nZWQoRWxl
bWVudCopOwotI2lmIEVOQUJMRShXQ1NTKQotICAgIHN0YXRpYyBib29sIGlzQ29uZm9ybVRvSW5w
dXRNYXNrKGNvbnN0IElucHV0RWxlbWVudERhdGEmLCBjb25zdCBTdHJpbmcmKTsKLSAgICBzdGF0
aWMgYm9vbCBpc0NvbmZvcm1Ub0lucHV0TWFzayhjb25zdCBJbnB1dEVsZW1lbnREYXRhJiwgVUNo
YXIsIHVuc2lnbmVkKTsKLSAgICBzdGF0aWMgU3RyaW5nIHZhbGlkYXRlSW5wdXRNYXNrKElucHV0
RWxlbWVudERhdGEmLCBTdHJpbmcmKTsKLSNlbmRpZgogfTsKIAogLy8gSFRNTElucHV0RWxlbWVu
dCBob2xkIHRoaXMgc3RydWN0IGFzIG1lbWJlciB2YXJpYWJsZQpAQCAtMTM4LDE1ICsxMjksNiBA
QCBwdWJsaWM6CiAgICAgaW50IGNhY2hlZFNlbGVjdGlvbkVuZCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2FjaGVkU2VsZWN0aW9uRW5kOyB9CiAgICAgdm9pZCBzZXRDYWNoZWRTZWxlY3Rpb25FbmQoaW50
IHZhbHVlKSB7IG1fY2FjaGVkU2VsZWN0aW9uRW5kID0gdmFsdWU7IH0KIAotI2lmIEVOQUJMRShX
Q1NTKQotICAgIFN0cmluZyBpbnB1dEZvcm1hdE1hc2soKSBjb25zdCB7IHJldHVybiBtX2lucHV0
Rm9ybWF0TWFzazsgfQotICAgIHZvaWQgc2V0SW5wdXRGb3JtYXRNYXNrKGNvbnN0IFN0cmluZyYg
bWFzaykgeyBtX2lucHV0Rm9ybWF0TWFzayA9IG1hc2s7IH0KLSAKLSAgICB1bnNpZ25lZCBtYXhJ
bnB1dENoYXJzQWxsb3dlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4SW5wdXRDaGFyc0FsbG93ZWQ7
IH0KLSAgICB2b2lkIHNldE1heElucHV0Q2hhcnNBbGxvd2VkKHVuc2lnbmVkIG1heExlbmd0aCkg
eyBtX21heElucHV0Q2hhcnNBbGxvd2VkID0gbWF4TGVuZ3RoOyB9Ci0gIAotI2VuZGlmCi0KIHBy
aXZhdGU6CiAgICAgQXRvbWljU3RyaW5nIG1fbmFtZTsKICAgICBTdHJpbmcgbV92YWx1ZTsKQEAg
LTE1NSwxMCArMTM3LDYgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9tYXhMZW5ndGg7CiAgICAgaW50
IG1fY2FjaGVkU2VsZWN0aW9uU3RhcnQ7CiAgICAgaW50IG1fY2FjaGVkU2VsZWN0aW9uRW5kOwot
I2lmIEVOQUJMRShXQ1NTKQotICAgIFN0cmluZyBtX2lucHV0Rm9ybWF0TWFzazsKLSAgICB1bnNp
Z25lZCBtX21heElucHV0Q2hhcnNBbGxvd2VkOwotI2VuZGlmCiB9OwogCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHJldmlzaW9uIDg1MzA5KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTQ0MiwxNyArMTQ0Miw2IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJvbVJl
bmRlcmUKICAgICB9CiB9CiAKLSNpZiBFTkFCTEUoV0NTUykKLQotdm9pZCBIVE1MSW5wdXRFbGVt
ZW50OjpzZXRXYXBJbnB1dEZvcm1hdChTdHJpbmcmIG1hc2spCi17Ci0gICAgU3RyaW5nIHZhbGlk
YXRlTWFzayA9IHZhbGlkYXRlSW5wdXRNYXNrKG1fZGF0YSwgbWFzayk7Ci0gICAgaWYgKCF2YWxp
ZGF0ZU1hc2suaXNFbXB0eSgpKQotICAgICAgICBtX2RhdGEuc2V0SW5wdXRGb3JtYXRNYXNrKHZh
bGlkYXRlTWFzayk7Ci19Ci0KLSNlbmRpZgotCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKIAog
Ym9vbCBIVE1MSW5wdXRFbGVtZW50Ojppc1NwZWVjaEVuYWJsZWQoKSBjb25zdApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgJKHJldmlzaW9uIDg1MzA5KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5
MSwxMCArMTkxLDYgQEAgcHVibGljOgogICAgIEhUTUxPcHRpb25FbGVtZW50KiBzZWxlY3RlZE9w
dGlvbigpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0NTUykKLSAgICB2b2lkIHNldFdh
cElucHV0Rm9ybWF0KFN0cmluZyYgbWFzayk7Ci0jZW5kaWYKLQogICAgIC8vIFRoZXNlIGZ1bmN0
aW9ucyBhcmUgcHVibGljIHNvIHRoZXkgY2FuIGJlIHVzZWQgaW4gSW5wdXRUeXBlIGNsYXNzZXMu
CiAgICAgLy8gT3RoZXJ3aXNlLCB0aGV5IHdvdWxkIGJlIHByaXZhdGUuCiAgICAgQ2hlY2tlZFJh
ZGlvQnV0dG9ucyYgY2hlY2tlZFJhZGlvQnV0dG9ucygpIGNvbnN0OwpAQCAtMzA0LDEwICszMDAs
NiBAQCBwcml2YXRlOgogICAgIEhUTUxEYXRhTGlzdEVsZW1lbnQqIGRhdGFMaXN0KCkgY29uc3Q7
CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXQ1NTKQotICAgIHZpcnR1YWwgSW5wdXRFbGVtZW50RGF0
YSBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9Ci0jZW5kaWYKLQogICAgIElucHV0RWxl
bWVudERhdGEgbV9kYXRhOwogICAgIHNob3J0IG1fbWF4UmVzdWx0czsKICAgICBib29sIG1faXND
aGVja2VkIDogMTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNYXJxdWVl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFycXVl
ZS5jcHAJKHJldmlzaW9uIDg1MzA5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1hcnF1ZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsMTEgKzE1Niw3IEBAIGludCBSZW5k
ZXJNYXJxdWVlOjpjb21wdXRlUG9zaXRpb24oRU1hcnEKIAogdm9pZCBSZW5kZXJNYXJxdWVlOjpz
dGFydCgpCiB7Ci0gICAgaWYgKG1fdGltZXIuaXNBY3RpdmUoKSB8fCBtX2xheWVyLT5yZW5kZXJl
cigpLT5zdHlsZSgpLT5tYXJxdWVlSW5jcmVtZW50KCkuaXNaZXJvKCkKLSNpZiBFTkFCTEUoV0NT
UykgJiYgRU5BQkxFKFhIVE1MTVApCi0gICAgICAgIHx8IChtX2xheWVyLT5yZW5kZXJlcigpLT5k
b2N1bWVudCgpLT5pc1hIVE1MTVBEb2N1bWVudCgpICYmICFtX2xheWVyLT5yZW5kZXJlcigpLT5z
dHlsZSgpLT5tYXJxdWVlTG9vcENvdW50KCkpCi0jZW5kaWYKLSAgICAgICApCisgICAgaWYgKG1f
dGltZXIuaXNBY3RpdmUoKSB8fCBtX2xheWVyLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5tYXJxdWVl
SW5jcmVtZW50KCkuaXNaZXJvKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFdlIG1heSBl
bmQgdXAgcHJvcGFnYXRpbmcgYSBzY3JvbGwgZXZlbnQuIEl0IGlzIGltcG9ydGFudCB0aGF0IHdl
IHN1c3BlbmQgZXZlbnRzIHVudGlsIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDg1MzA5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MywxMiArMTUzLDYgQEAg
UmVuZGVyT2JqZWN0KiBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdAogICAgICAgICBjYXNlIFRB
QkxFX0NFTEw6CiAgICAgICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGFibGVDZWxs
KG5vZGUpOwogICAgICAgICBjYXNlIFRBQkxFX0NBUFRJT046Ci0jaWYgRU5BQkxFKFdDU1MpCi0g
ICAgICAgIC8vIEFzIHBlciB0aGUgc2VjdGlvbiAxNy4xIG9mIHRoZSBzcGVjIFdBUC0yMzktV0NT
Uy0yMDAxMTAyNi1hLnBkZiwgCi0gICAgICAgIC8vIHRoZSBtYXJxdWVlIGJveCBpbmhlcml0cyBh
bmQgZXh0ZW5kcyB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSAKLSAgICAgICAgLy8gcHJpbmNp
cGFsIGJsb2NrIGJveCAoW0NTUzJdIHNlY3Rpb24gOS4yLjEpLgotICAgICAgICBjYXNlIFdBUF9N
QVJRVUVFOgotI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyQmxv
Y2sobm9kZSk7CiAgICAgICAgIGNhc2UgQk9YOgogICAgICAgICBjYXNlIElOTElORV9CT1g6Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaAkocmV2aXNpb24gODUzMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMzkxLDkg
KzM5MSw2IEBAIGVudW0gRURpc3BsYXkgewogICAgIFRBQkxFX0hFQURFUl9HUk9VUCwgVEFCTEVf
Rk9PVEVSX0dST1VQLCBUQUJMRV9ST1csCiAgICAgVEFCTEVfQ09MVU1OX0dST1VQLCBUQUJMRV9D
T0xVTU4sIFRBQkxFX0NFTEwsCiAgICAgVEFCTEVfQ0FQVElPTiwgQk9YLCBJTkxJTkVfQk9YLCAK
LSNpZiBFTkFCTEUoV0NTUykKLSAgICBXQVBfTUFSUVVFRSwKLSNlbmRpZgogICAgIE5PTkUKIH07
CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDg1MzA5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTEtMDQtMjkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
V0NTUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk3
ODYKKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OgorICAgICAgICAqIFNjcmlwdHMv
b2xkLXJ1bi13ZWJraXQtdGVzdHM6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL2ZlYXR1
cmVzLnBtOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
a2l0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
a2l0X3VuaXR0ZXN0LnB5OgorCiAyMDExLTA0LTI4ICBTdGVwaGFuaWUgTGV3aXMgIDxzbGV3aXNA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KSW5kZXg6IFRvb2xz
L1NjcmlwdHMvYnVpbGQtd2Via2l0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvYnVpbGQt
d2Via2l0CShyZXZpc2lvbiA4NTMwOSkKKysrIFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CSh3
b3JraW5nIGNvcHkpCkBAIC0xMTIsNyArMTEyLDYgQEAgbXkgKAogICAgICR0aWxlZEJhY2tpbmdT
dG9yZVN1cHBvcnQsCiAgICAgJHRvdWNoRXZlbnRzU3VwcG9ydCwKICAgICAkdmlkZW9TdXBwb3J0
LAotICAgICR3Y3NzU3VwcG9ydCwKICAgICAkd2ViQXVkaW9TdXBwb3J0LAogICAgICR3ZWJJbnNw
ZWN0b3JTdXBwb3J0LAogICAgICR3ZWJTb2NrZXRzU3VwcG9ydCwKQEAgLTI3MSw5ICsyNzAsNiBA
QCBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gInZpZGVvIiwgZGVzYyA9PiAiVG9n
Z2xlIFZpZGVvIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU8iLCBkZWZh
dWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkdmlkZW9TdXBw
b3J0IH0sCiAKLSAgICB7IG9wdGlvbiA9PiAid2NzcyIsIGRlc2MgPT4gIlRvZ2dsZSBXQ1NTIHN1
cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0NTUyIsIGRlZmF1bHQgPT4gMCwgdmFs
dWUgPT4gXCR3Y3NzU3VwcG9ydCB9LAotCiAgICAgeyBvcHRpb24gPT4gIndlYi1hdWRpbyIsIGRl
c2MgPT4gIlRvZ2dsZSBXZWIgQXVkaW8gc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9XRUJfQVVESU8iLCBkZWZhdWx0ID0+IDAsIHZhbHVlPT4gXCR3ZWJBdWRpb1N1cHBvcnQgfSwK
IApJbmRleDogVG9vbHMvU2NyaXB0cy9vbGQtcnVuLXdlYmtpdC10ZXN0cwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzCShyZXZpc2lvbiA4NTMwOSkKKysr
IFRvb2xzL1NjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHMJKHdvcmtpbmcgY29weSkKQEAgLTU5
MywxMCArNTkzLDYgQEAgaWYgKCFjaGVja1dlYkNvcmVGZWF0dXJlU3VwcG9ydCgiM0QgQ2Fudgog
ICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J2h0dHAvdGVzdHMvY2FudmFzL3dlYmdsJ30gPSAxOwog
fQogCi1pZiAoIWNoZWNrV2ViQ29yZUZlYXR1cmVTdXBwb3J0KCJXQ1NTIiwgMCkpIHsKLSAgICAk
aWdub3JlZERpcmVjdG9yaWVzeydmYXN0L3djc3MnfSA9IDE7Ci19Ci0KIGlmICghY2hlY2tXZWJD
b3JlRmVhdHVyZVN1cHBvcnQoIlhIVE1MTVAiLCAwKSkgewogICAgICRpZ25vcmVkRGlyZWN0b3Jp
ZXN7J2Zhc3QveGh0bWxtcCd9ID0gMTsKIH0KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cGVy
bC9mZWF0dXJlcy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvZmVh
dHVyZXMucG0JKHJldmlzaW9uIDg1MzA5KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL2Zl
YXR1cmVzLnBtCSh3b3JraW5nIGNvcHkpCkBAIC03MSw3ICs3MSw2IEBAIHN1YiBoYXNGZWF0dXJl
KCQkKQogICAgICAgICAiQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmciID0+ICJHcmFwaGljc0xheWVy
IiwKICAgICAgICAgIjNEIFJlbmRlcmluZyIgPT4gIldlYkNvcmVIYXMzRFJlbmRlcmluZyIsCiAg
ICAgICAgICIzRCBDYW52YXMiID0+ICJXZWJHTFNoYWRlciIsCi0gICAgICAgICJXQ1NTIiA9PiAi
cGFyc2VXQ1NTSW5wdXRQcm9wZXJ0eSIsCiAgICAgICAgICJYSFRNTE1QIiA9PiAiaXNYSFRNTE1Q
RG9jdW1lbnQiLAogICAgICk7CiAgICAgbXkgJHN5bWJvbE5hbWUgPSAkc3ltYm9sRm9yRmVhdHVy
ZXskZmVhdHVyZU5hbWV9OwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC93ZWJraXQucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkJKHJldmlzaW9uIDg1MzA5KQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkJKHdvcmtpbmcgY29weSkK
QEAgLTIyNiw3ICsyMjYsNiBAQCBjbGFzcyBXZWJLaXRQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAg
ICAgICAiR3JhcGhpY3NMYXllciI6IFsiY29tcG9zaXRpbmciXSwKICAgICAgICAgICAgICJXZWJD
b3JlSGFzM0RSZW5kZXJpbmciOiBbImFuaW1hdGlvbnMvM2QiLCAidHJhbnNmb3Jtcy8zZCJdLAog
ICAgICAgICAgICAgIldlYkdMU2hhZGVyIjogWyJmYXN0L2NhbnZhcy93ZWJnbCIsICJjb21wb3Np
dGluZy93ZWJnbCIsICJodHRwL3Rlc3RzL2NhbnZhcy93ZWJnbCJdLAotICAgICAgICAgICAgInBh
cnNlV0NTU0lucHV0UHJvcGVydHkiOiBbImZhc3Qvd2NzcyJdLAogICAgICAgICAgICAgImlzWEhU
TUxNUERvY3VtZW50IjogWyJmYXN0L3hodG1sbXAiXSwKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gZGlyZWN0b3JpZXNfZm9yX3N5bWJvbApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC93ZWJraXRfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXRfdW5pdHRlc3QucHkJKHJl
dmlzaW9uIDg1MzA5KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC93ZWJraXRfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDcgQEAgY2xh
c3MgV2ViS2l0UG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VAogCiAgICAgZGVmIHRlc3Rfc2tp
cHBlZF9kaXJlY3Rvcmllc19mb3Jfc3ltYm9scyhzZWxmKToKICAgICAgICAgc3VwcG9ydGVkX3N5
bWJvbHMgPSBbIkdyYXBoaWNzTGF5ZXIiLCAiV2ViQ29yZUhhczNEUmVuZGVyaW5nIiwgImlzWEhU
TUxNUERvY3VtZW50IiwgImZvb1N5bWJvbCJdCi0gICAgICAgIGV4cGVjdGVkX2RpcmVjdG9yaWVz
ID0gc2V0KFsibWF0aG1sIiwgImZhc3QvY2FudmFzL3dlYmdsIiwgImNvbXBvc2l0aW5nL3dlYmds
IiwgImh0dHAvdGVzdHMvY2FudmFzL3dlYmdsIiwgImZhc3Qvd2NzcyJdKQorICAgICAgICBleHBl
Y3RlZF9kaXJlY3RvcmllcyA9IHNldChbIm1hdGhtbCIsICJmYXN0L2NhbnZhcy93ZWJnbCIsICJj
b21wb3NpdGluZy93ZWJnbCIsICJodHRwL3Rlc3RzL2NhbnZhcy93ZWJnbCJdKQogICAgICAgICBy
ZXN1bHRfZGlyZWN0b3JpZXMgPSBzZXQoVGVzdFdlYktpdFBvcnQoc3VwcG9ydGVkX3N5bWJvbHMs
IE5vbmUpLl9za2lwcGVkX3Rlc3RzX2Zvcl91bnN1cHBvcnRlZF9mZWF0dXJlcygpKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdF9kaXJlY3RvcmllcywgZXhwZWN0ZWRfZGlyZWN0b3Jp
ZXMpCiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1MzA5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDQtMjkgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgV0NTUworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk3ODYKKworICAgICAgICAqIGZh
c3Qvd2NzczogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3djc3Mvd2FwLWlucHV0LWZvcm1hdC1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC93Y3NzL3dhcC1pbnB1dC1mb3Jt
YXQueGh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC93Y3NzL3dhcC1pbnB1dC1yZXF1aXJl
ZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC93Y3NzL3dhcC1pbnB1dC1y
ZXF1aXJlZC54aHRtbDogUmVtb3ZlZC4KKwogMjAxMS0wNC0yOCAgQWRhbSBSb2JlbiAgPGFyb2Jl
bkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5za2lwIHNvbWUgdGVzdHMgdGhhdCB3ZXJlIGZhaWxp
bmcgZHVlIHRvIGxvY2FsIGlzc3VlcyBvbiB0aGUgYm90cyB0aGF0IGhhdmUgYmVlbiByZXNvbHZl
ZApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93Y3NzL3dhcC1pbnB1dC1mb3JtYXQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd2Nzcy93YXAtaW5wdXQtZm9ybWF0
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gODUzMDkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3djc3Mv
d2FwLWlucHV0LWZvcm1hdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjkgKzAs
MCBAQAotQXNzdW1lIHRoZSB1c2VyIGlucHV0IHRoZSBmb2xsb3dpbmcgIkFhQmJDY0RkRWVGZkdn
MTIzNDU2IUAjJCVeLC47IiB0byBlYWNoIG9mIHRoZSBpbnB1dCBlbGVtZW50cwotey13YXAtaW5w
dXQtZm9ybWF0OiIqQSI7fSBvbmx5IHRha2VzIHVwcGVyIGxldHRlcnMsIHN5bWJvbHMsIHB1bmN0
dWF0aW9ucwotUEFTUyBkb21WYWx1ZU9mKCJzdGFyX3VwQSIpIGlzICJBQkNERUZHIUAjJCVeLC47
IgotUEFTUyB2aXNpYmxlVmFsdWVPZigic3Rhcl91cEEiKSBpcyAiQUJDREVGRyFAIyQlXiwuOyIK
LXstd2FwLWlucHV0LWZvcm1hdDoiKmEiO30gb25seSB0YWtlcyBsb3dlciBsZXR0ZXJzLCBzeW1i
b2xzLCBwdW5jdHVhdGlvbnMKLVBBU1MgZG9tVmFsdWVPZigic3Rhcl9sb3dhIikgaXMgImFiY2Rl
ZmchQCMkJV4sLjsiCi1QQVNTIHZpc2libGVWYWx1ZU9mKCJzdGFyX2xvd2EiKSBpcyAiYWJjZGVm
ZyFAIyQlXiwuOyIKLXstd2FwLWlucHV0LWZvcm1hdDoiKk4iO30gb25seSB0YWtlcyBudW1iZXJz
IAotUEFTUyBkb21WYWx1ZU9mKCJzdGFyX3VwTiIpIGlzICIxMjM0NTYiCi1QQVNTIHZpc2libGVW
YWx1ZU9mKCJzdGFyX3VwTiIpIGlzICIxMjM0NTYiCi17LXdhcC1pbnB1dC1mb3JtYXQ6IipuIjt9
IG9ubHkgdGFrZXMgbnVtYmVycyAsIHN5bWJhbHMgYW5kIHB1bmN0dWF0aW9ucyAKLVBBU1MgZG9t
VmFsdWVPZigic3Rhcl9sb3duIikgaXMgIjEyMzQ1NiFAIyQlXiwuOyIKLVBBU1MgdmlzaWJsZVZh
bHVlT2YoInN0YXJfbG93biIpIGlzICIxMjM0NTYhQCMkJV4sLjsiCi17LXdhcC1pbnB1dC1mb3Jt
YXQ6IipYIjt9IHRha2VzIHVwcGVyIGxldHRlcnMsbnVtYmVycyxzeW1iYWxzIGFuZCBwdW5jdHVh
dGlvbnMgCi1QQVNTIGRvbVZhbHVlT2YoInN0YXJfdXBYIikgaXMgIkFCQ0RFRkcxMjM0NTYhQCMk
JV4sLjsiCi1QQVNTIHZpc2libGVWYWx1ZU9mKCJzdGFyX3VwWCIpIGlzICJBQkNERUZHMTIzNDU2
IUAjJCVeLC47Igotey13YXAtaW5wdXQtZm9ybWF0OiIqeCI7fSB0YWtlcyBsb3dlciBsZXR0ZXJz
LG51bWJlcnMsc3ltYmFscyBhbmQgcHVuY3R1YXRpb25zIAotUEFTUyBkb21WYWx1ZU9mKCJzdGFy
X2xvd3giKSBpcyAiYWJjZGVmZzEyMzQ1NiFAIyQlXiwuOyIKLVBBU1MgdmlzaWJsZVZhbHVlT2Yo
InN0YXJfbG93eCIpIGlzICJhYmNkZWZnMTIzNDU2IUAjJCVeLC47Igotey13YXAtaW5wdXQtZm9y
bWF0OiIqTSI7fSB0YWtlcyBhbnkgY2hhcmFjdGVyIAotUEFTUyBkb21WYWx1ZU9mKCJzdGFyX3Vw
TSIpIGlzICJBYUJiQ2NEZEVlRmZHZzEyMzQ1NiFAIyQlXiwuOyIKLVBBU1MgdmlzaWJsZVZhbHVl
T2YoInN0YXJfdXBNIikgaXMgIkFhQmJDY0RkRWVGZkdnMTIzNDU2IUAjJCVeLC47Igotey13YXAt
aW5wdXQtZm9ybWF0OiIqbSI7fSB0YWtlcyBhbnkgY2hhcmFjdGVyIAotUEFTUyBkb21WYWx1ZU9m
KCJzdGFyX2xvd20iKSBpcyAiQWFCYkNjRGRFZUZmR2cxMjM0NTYhQCMkJV4sLjsiCi1QQVNTIHZp
c2libGVWYWx1ZU9mKCJzdGFyX2xvd20iKSBpcyAiQWFCYkNjRGRFZUZmR2cxMjM0NTYhQCMkJV4s
LjsiCi17LXdhcC1pbnB1dC1mb3JtYXQ6IjNOIjt9IHRha2VzIDMgbnVtYmVycyAKLVBBU1MgZG9t
VmFsdWVPZigidGhyZWVfTiIpIGlzICIxMjMiCi1QQVNTIHZpc2libGVWYWx1ZU9mKCJ0aHJlZV9O
IikgaXMgIjEyMyIKLSAgICAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3djc3Mvd2FwLWlu
cHV0LWZvcm1hdC54aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3djc3Mvd2Fw
LWlucHV0LWZvcm1hdC54aHRtbAkocmV2aXNpb24gODUzMDkpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L3djc3Mvd2FwLWlucHV0LWZvcm1hdC54aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMjYgKzAs
MCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+Ci08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1dB
UEZPUlVNL0RURCBYSFRNTCBNb2JpbGUgMS4wLy9FTiIgImh0dHA6Ly93d3cud2FwZm9ydW0ub3Jn
L0RURC94aHRtbC1tb2JpbGUxMC5kdGQiPgotCi08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCI+Ci08aGVhZD4KLQotPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLS5zdGFy
X3VwQSAgey13YXAtaW5wdXQtZm9ybWF0OiAiKkEiIDsgfSAgICAvKiB1cHBlciBsZXR0ZXIsIHN5
bWJvbCwgcHVuY3R1YXRpb24sICBOTyBudW1iZXIgKi8KLS5zdGFyX2xvd2Egey13YXAtaW5wdXQt
Zm9ybWF0OiAiKmEiIDsgfSAgICAvKiBsb3dlciBsZXR0ZXIsIHN5bWJvbCwgcHVuY3R1YXRpb24s
ICBOTyBudW1iZXIgKi8KLS5zdGFyX3VwTiAgey13YXAtaW5wdXQtZm9ybWF0OiAiKk4iIDsgfSAg
ICAvKiBudW1iZXIgb25seSAqLwotLnN0YXJfbG93biB7LXdhcC1pbnB1dC1mb3JtYXQ6ICIqbiIg
OyB9ICAgIC8qIG51bWJlciAsIHN5bWJvbCwgcHVuY3R1YXRpb24sIG5vIGxldHRlciAqLwotLnN0
YXJfdXBYICB7LXdhcC1pbnB1dC1mb3JtYXQ6ICIqWCIgOyB9ICAgIC8qIHVwcGVyIGxldHRlciwg
bnVtYmVyLCBzeW1ib2wsIHB1bmN0dWF0aW9uLCBubyBsb3dlciBsZXR0ZXIgKi8KLS5zdGFyX2xv
d3ggey13YXAtaW5wdXQtZm9ybWF0OiAiKngiIDsgfSAgICAvKiBsb3dlciBsZXR0ZXIsIG51bWJl
ciwgc3ltYm9sLCBwdW5jdHVhdGlvbiwgbm8gdXBwZXIgbGV0dGVyICovCi0uc3Rhcl91cE0gIHst
d2FwLWlucHV0LWZvcm1hdDogIipNIiA7IH0gICAgLyogYW55dGhpbmcsIHdpdGggdXBwZXIgYXMg
dGhlIGRlZmF1bHQgaW5wdXQgKi8KLS5zdGFyX2xvd20gey13YXAtaW5wdXQtZm9ybWF0OiAiKm0i
IDsgfSAgICAvKiBhbnl0aGluZywgd2l0aCBsb3dlciBhcyB0aGUgZGVmYXVsdCBpbnB1dCAqLwot
LnRocmVlX04gICB7LXdhcC1pbnB1dC1mb3JtYXQ6ICIzTiIgOyB9ICAgIC8qIHVwIHRvIDMgZGln
aXQgbnVtYmVyICovCi0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotCi08L2hlYWQ+Ci0KLTxib2R5PgotPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPGlucHV0IHR5cGU9
InRleHQiIGlkPSJzdGFyX3VwQSIgIGNsYXNzPSJzdGFyX3VwQSIgLz4KLTxpbnB1dCB0eXBlPSJ0
ZXh0IiBpZD0ic3Rhcl9sb3dhIiBjbGFzcz0ic3Rhcl9sb3dhIiAvPgotPGlucHV0IHR5cGU9InRl
eHQiIGlkPSJzdGFyX3VwTiIgIGNsYXNzPSJzdGFyX3VwTiIgLz4KLTxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0ic3Rhcl9sb3duIiBjbGFzcz0ic3Rhcl9sb3duIiAvPgotPGlucHV0IHR5cGU9InRleHQi
IGlkPSJzdGFyX3VwWCIgIGNsYXNzPSJzdGFyX3VwWCIgLz4KLTxpbnB1dCB0eXBlPSJ0ZXh0IiBp
ZD0ic3Rhcl9sb3d4IiBjbGFzcz0ic3Rhcl9sb3d4IiAvPgotPGlucHV0IHR5cGU9InRleHQiIGlk
PSJzdGFyX3VwTSIgIGNsYXNzPSJzdGFyX3VwTSIgLz4KLTxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
c3Rhcl9sb3dtIiBjbGFzcz0ic3Rhcl9sb3dtIiAvPgotPGlucHV0IHR5cGU9InRleHQiIGlkPSJ0
aHJlZV9OIiAgY2xhc3M9InRocmVlX04iIC8+Ci0KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KLQotZnVuY3Rpb24gZG9tVmFsdWVPZihpZCkgewotICAgIHJldHVybiBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChpZCkudmFsdWU7Ci19Ci1mdW5jdGlvbiB2aXNpYmxlVmFsdWVPZihpZCkg
ewotICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKLSAgICBlbC5mb2N1
cygpOwotICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdTZWxlY3RBbGwnKTsKLSAgICByZXR1cm4g
ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLX0KLQotZnVuY3Rpb24gaW5wdXRL
ZXlzKHN0cikgewotICAgIGlmKCF3aW5kb3cuZXZlbnRTZW5kZXIpCi0gICAgICAgIHJldHVybjsK
LSAgICBmb3IoaSA9IDA7IGkgIT0gc3RyLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGV2ZW50U2Vu
ZGVyLmtleURvd24oc3RyLmNoYXJBdChpKSk7Ci0gICAgfQotfQotCi1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotfQotCi12YXIgc3RyID0gIkFhQmJDY0RkRWVGZkdnMTIzNDU2IUAjJCVeLC47IjsKLQotZGVi
dWcoIkFzc3VtZSB0aGUgdXNlciBpbnB1dCB0aGUgZm9sbG93aW5nIFwiIiArIHN0ciArICJcIiB0
byBlYWNoIG9mIHRoZSBpbnB1dCBlbGVtZW50czxici8+PGJyLz4iKTsKLQotZGVidWcoJzxici8+
ey13YXAtaW5wdXQtZm9ybWF0OiIqQSI7fSBvbmx5IHRha2VzIHVwcGVyIGxldHRlcnMsIHN5bWJv
bHMsIHB1bmN0dWF0aW9uczxici8+Jyk7Ci0KLWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFy
X3VwQSIpLmZvY3VzKCk7Ci1pbnB1dEtleXMoc3RyKTsKLXNob3VsZEJlKCdkb21WYWx1ZU9mKCJz
dGFyX3VwQSIpJywnIkFCQ0RFRkchQCMkJV4sLjsiJyk7Ci1zaG91bGRCZSgndmlzaWJsZVZhbHVl
T2YoInN0YXJfdXBBIiknLCciQUJDREVGRyFAIyQlXiwuOyInKTsKLQotZGVidWcoJzxici8+ey13
YXAtaW5wdXQtZm9ybWF0OiIqYSI7fSBvbmx5IHRha2VzIGxvd2VyIGxldHRlcnMsIHN5bWJvbHMs
IHB1bmN0dWF0aW9uczxiciAvPjxiciAvPicpOwotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0
YXJfbG93YSIpLmZvY3VzKCk7Ci1pbnB1dEtleXMoc3RyKTsKLXNob3VsZEJlKCdkb21WYWx1ZU9m
KCJzdGFyX2xvd2EiKScsICciYWJjZGVmZyFAIyQlXiwuOyInKTsKLXNob3VsZEJlKCd2aXNpYmxl
VmFsdWVPZigic3Rhcl9sb3dhIiknLCAnImFiY2RlZmchQCMkJV4sLjsiJyk7Ci0KLWRlYnVnKCc8
YnIvPnstd2FwLWlucHV0LWZvcm1hdDoiKk4iO30gb25seSB0YWtlcyBudW1iZXJzIDxiciAvPicp
OwotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJfdXBOIikuZm9jdXMoKTsKLWlucHV0S2V5
cyhzdHIpOwotc2hvdWxkQmUoJ2RvbVZhbHVlT2YoInN0YXJfdXBOIiknLCAnIjEyMzQ1NiInKTsK
LXNob3VsZEJlKCd2aXNpYmxlVmFsdWVPZigic3Rhcl91cE4iKScsICciMTIzNDU2IicpOwotCi1k
ZWJ1ZygnPGJyLz57LXdhcC1pbnB1dC1mb3JtYXQ6IipuIjt9IG9ubHkgdGFrZXMgbnVtYmVycyAs
IHN5bWJhbHMgYW5kIHB1bmN0dWF0aW9ucyA8YnIgLz4nKTsKLWRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzdGFyX2xvd24iKS5mb2N1cygpOwotaW5wdXRLZXlzKHN0cik7Ci1zaG91bGRCZSgnZG9t
VmFsdWVPZigic3Rhcl9sb3duIiknLCAnIjEyMzQ1NiFAIyQlXiwuOyInKTsKLXNob3VsZEJlKCd2
aXNpYmxlVmFsdWVPZigic3Rhcl9sb3duIiknLCAnIjEyMzQ1NiFAIyQlXiwuOyInKTsKLQotZGVi
dWcoJzxici8+ey13YXAtaW5wdXQtZm9ybWF0OiIqWCI7fSB0YWtlcyB1cHBlciBsZXR0ZXJzLG51
bWJlcnMsc3ltYmFscyBhbmQgcHVuY3R1YXRpb25zIDxiciAvPicpOwotZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInN0YXJfdXBYIikuZm9jdXMoKTsKLWlucHV0S2V5cyhzdHIpOwotc2hvdWxkQmUo
J2RvbVZhbHVlT2YoInN0YXJfdXBYIiknLCAnIkFCQ0RFRkcxMjM0NTYhQCMkJV4sLjsiJyk7Ci1z
aG91bGRCZSgndmlzaWJsZVZhbHVlT2YoInN0YXJfdXBYIiknLCAnIkFCQ0RFRkcxMjM0NTYhQCMk
JV4sLjsiJyk7Ci0KLWRlYnVnKCc8YnIvPnstd2FwLWlucHV0LWZvcm1hdDoiKngiO30gdGFrZXMg
bG93ZXIgbGV0dGVycyxudW1iZXJzLHN5bWJhbHMgYW5kIHB1bmN0dWF0aW9ucyA8YnIgLz4nKTsK
LWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFyX2xvd3giKS5mb2N1cygpOwotaW5wdXRLZXlz
KHN0cik7Ci1zaG91bGRCZSgnZG9tVmFsdWVPZigic3Rhcl9sb3d4IiknLCAnImFiY2RlZmcxMjM0
NTYhQCMkJV4sLjsiJyk7Ci1zaG91bGRCZSgndmlzaWJsZVZhbHVlT2YoInN0YXJfbG93eCIpJywg
JyJhYmNkZWZnMTIzNDU2IUAjJCVeLC47IicpOwotCi1kZWJ1ZygnPGJyLz57LXdhcC1pbnB1dC1m
b3JtYXQ6IipNIjt9IHRha2VzIGFueSBjaGFyYWN0ZXIgPGJyIC8+Jyk7Ci1kb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3Rhcl91cE0iKS5mb2N1cygpOwotaW5wdXRLZXlzKHN0cik7Ci1zaG91bGRC
ZSgnZG9tVmFsdWVPZigic3Rhcl91cE0iKScsICciQWFCYkNjRGRFZUZmR2cxMjM0NTYhQCMkJV4s
LjsiJyk7Ci1zaG91bGRCZSgndmlzaWJsZVZhbHVlT2YoInN0YXJfdXBNIiknLCAnIkFhQmJDY0Rk
RWVGZkdnMTIzNDU2IUAjJCVeLC47IicpOwotCi1kZWJ1ZygnPGJyLz57LXdhcC1pbnB1dC1mb3Jt
YXQ6IiptIjt9IHRha2VzIGFueSBjaGFyYWN0ZXIgPGJyIC8+Jyk7Ci1kb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgic3Rhcl9sb3dtIikuZm9jdXMoKTsKLWlucHV0S2V5cyhzdHIpOwotc2hvdWxkQmUo
J2RvbVZhbHVlT2YoInN0YXJfbG93bSIpJywgJyJBYUJiQ2NEZEVlRmZHZzEyMzQ1NiFAIyQlXiwu
OyInKTsKLXNob3VsZEJlKCd2aXNpYmxlVmFsdWVPZigic3Rhcl9sb3dtIiknLCAnIkFhQmJDY0Rk
RWVGZkdnMTIzNDU2IUAjJCVeLC47IicpOwotCi1kZWJ1ZygnPGJyLz57LXdhcC1pbnB1dC1mb3Jt
YXQ6IjNOIjt9IHRha2VzIDMgbnVtYmVycyA8YnIgLz4nKTsKLWRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0aHJlZV9OIikuZm9jdXMoKTsKLWlucHV0S2V5cyhzdHIpOwotc2hvdWxkQmUoJ2RvbVZh
bHVlT2YoInRocmVlX04iKScsICciMTIzIicpOwotc2hvdWxkQmUoJ3Zpc2libGVWYWx1ZU9mKCJ0
aHJlZV9OIiknLCAnIjEyMyInKTsKLQotCi08L3NjcmlwdD4KLQotCi08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3djc3Mvd2FwLWlucHV0LXJlcXVpcmVkLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3djc3Mvd2FwLWlucHV0LXJlcXVp
cmVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gODUzMDkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3dj
c3Mvd2FwLWlucHV0LXJlcXVpcmVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0
ICswLDAgQEAKLVRoZXJlIGFyZSB0aHJlZSBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIHRo
ZSBmaXJzdCBvbmUgaXMgcmVxdWlyZWQgYW5kIGJsYW5rLHZhbGlkaXR5LnZhbHVlTWlzc2luZyBz
aG91bGQgYmUgdHJ1ZSwgdGhlIG90aGVyIHR3byBlaXRoZXIgZG9uJ3QgaGF2ZSAtd2FwLWlucHV0
LXJlcXVpcmVkIGFwcGxpZWQsIG9yIHRoZSAtd2FwLWlucHV0LXJlcXVpcmVkIGluZGljYXRlcyBm
YWxzZSwgYW5kIGFyZSBub3QgcmVxdWlyZWQgLgotCi0gIAotU1VDQ0VTUyBTVUNDRVNTIFNVQ0NF
U1MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd2Nzcy93YXAtaW5wdXQtcmVxdWlyZWQueGh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93Y3NzL3dhcC1pbnB1dC1yZXF1aXJlZC54
aHRtbAkocmV2aXNpb24gODUzMDkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3djc3Mvd2FwLWlucHV0
LXJlcXVpcmVkLnhodG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM3ICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCI/PgotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XQVBGT1JVTS9EVEQgWEhU
TUwgTW9iaWxlIDEuMC8vRU4iICJodHRwOi8vd3d3LndhcGZvcnVtLm9yZy9EVEQveGh0bWwtbW9i
aWxlMTAuZHRkIj4KLQotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
PgotCi08aGVhZD4KLTx0aXRsZT5yZXF1aXJlZCBhbmQgYmFzaWMgdmFsdWVNaXNzaW5nPC90aXRs
ZT4KLQotPC9oZWFkPgotCi08Ym9keT4KLTxwPlRoZXJlIGFyZSB0aHJlZSBmb3JtIGNvbnRyb2wg
ZWxlbWVudHMgYmVsb3csIHRoZSBmaXJzdCBvbmUgaXMgcmVxdWlyZWQgYW5kIGJsYW5rLHZhbGlk
aXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgdHJ1ZSwgdGhlIG90aGVyIHR3byBlaXRoZXIgZG9u
J3QgaGF2ZSAtd2FwLWlucHV0LXJlcXVpcmVkIGFwcGxpZWQsIG9yIHRoZSAtd2FwLWlucHV0LXJl
cXVpcmVkIGluZGljYXRlcyBmYWxzZSwgYW5kIGFyZSBub3QgcmVxdWlyZWQgLjwvcD4KLTxpbnB1
dCBuYW1lPSJyZXF1aXJlZCIgc3R5bGU9Ii13YXAtaW5wdXQtcmVxdWlyZWQ6dHJ1ZTsiIC8+Ci08
aW5wdXQgbmFtZT0ibm90X3NwZWNpZmllZCIgLz4KLTx0ZXh0YXJlYSBuYW1lPSJub3RfcmVxdWly
ZWQiIHN0eWxlPSItd2FwLWlucHV0LXJlcXVpcmVkOmZhbHNlOyI+PC90ZXh0YXJlYT4KLTxwIGlk
PSJjb25zb2xlIj4gPC9wPgotCi08c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgotZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAgbWVzc2FnZSArICIgIFxuIjsK
LX0KLQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLQotICAgIHYgPSBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5TmFtZSgicmVxdWlyZWQiKTsKLSAgICBsb2codlswXS52YWxpZGl0eS52YWx1ZU1pc3Np
bmcgID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKLSAKLSAgICB2ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeU5hbWUoIm5vdF9zcGVjaWZpZWQiKTsKLSAgICBsb2coKCF2WzBdLnZhbGlkaXR5LnZh
bHVlTWlzc2luZykgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSIpOwotCi0gICAgdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlOYW1lKCJub3RfcmVxdWlyZWQiKTsKLSAgICBsb2coKCF2WzBdLnZhbGlk
aXR5LnZhbHVlTWlzc2luZykgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSIpOwotCi08L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>