<?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>111678</bug_id>
          
          <creation_ts>2013-03-06 21:11:20 -0800</creation_ts>
          <short_desc>Custom Element Refactoring: CustomElementConstructor API shouldn&apos;t bound to HTMLElement</short_desc>
          <delta_ts>2013-03-06 22:34:35 -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>DOM</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>110436</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>haraken</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>849698</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-03-06 21:11:20 -0800</bug_when>
    <thetext>It should be designed on Element, not on HTMLElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849715</commentid>
    <comment_count>1</comment_count>
      <attachid>191916</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-03-06 21:39:37 -0800</bug_when>
    <thetext>Created attachment 191916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849720</commentid>
    <comment_count>2</comment_count>
      <attachid>191916</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-06 21:43:07 -0800</bug_when>
    <thetext>Comment on attachment 191916
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849721</commentid>
    <comment_count>3</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-03-06 21:43:49 -0800</bug_when>
    <thetext>thx!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849749</commentid>
    <comment_count>4</comment_count>
      <attachid>191916</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-06 22:34:32 -0800</bug_when>
    <thetext>Comment on attachment 191916
Patch

Clearing flags on attachment: 191916

Committed r145040: &lt;http://trac.webkit.org/changeset/145040&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849750</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-06 22:34:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191916</attachid>
            <date>2013-03-06 21:39:37 -0800</date>
            <delta_ts>2013-03-06 22:34:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111678-20130307143542.patch</filename>
            <type>text/plain</type>
            <size>29301</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY2MThhNmYwZDY2OGYy
MzE1ZjZiZWRkOWY1YmUxM2ZiZjdmOTllNy4uNGE1MGYwMGUwZjQ3Mzc3Mzg2YmNhNzVjNmYzNWJi
YTQ5MzkyMmUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEzLTAzLTA2ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBDdXN0b20gRWxlbWVu
dHMgUmVmYWN0b3Jpbmc6IEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3RvciBBUEkgc2hvdWxkbid0IGJv
dW5kIHRvIEhUTUxFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTE2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgbGF0ZXN0IEN1c3RvbSBFbGVtZW50cyBzdGFuZGFyZCBzdXBwb3J0cyBu
b24tSFRNTCBjdXN0b20gZWxlbWVudHMuIEV2ZW4gdGhvdWdoIGN1cnJlbnQgaW1wbGVtZW50YXRp
b24KKyAgICAgICAgc3VwcG9ydCBvbmx5IEhUTUwsIGl0J2QgYmUgYmV0dGVyIG9mZiB0byBtYWtl
IEFQSSBnZW5lcmljIGVub3VnaCB0byBzdXBwb3J0IHRoZW0uCisKKyAgICAgICAgVGhpcyBjaGFu
Z2UKKworICAgICAgICAtIGVsaW1pbmF0ZXMgSFRNTEVsZW1lbnQgZnJvbSB0aGUgQVBJIHNpZ25h
dHVyZSBieSByZXBsYWNpbmcgaXQgd2l0aCBFbGVtZW50LCBhbmQKKyAgICAgICAgLSByZW5hbWUg
VjhIVE1MQ3VzdG9tRWxlbWVudCB0byBWOEN1c3RvbUVsZW1lbnQuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBqdXN0IGNoYW5naW5nIHNpZ25hdHVyZXMgYW5kIGEgY2xhc3MgbmFtZS4KKworICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEN1c3RvbUVsZW1l
bnQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIVE1MQ3Vz
dG9tRWxlbWVudC5jcHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmZp
bmRXcmFwcGVyVHlwZU9mKToKKyAgICAgICAgKFdlYkNvcmU6OlY4Q3VzdG9tRWxlbWVudDo6Y3Jl
YXRlV3JhcHBlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhDdXN0b21FbGVtZW50Lmg6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhUTUxDdXN0b21FbGVtZW50
LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFY4Q3VzdG9tRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpWOEN1c3RvbUVsZW1lbnQ6OnRvVjgpOgorICAgICAgICAoV2ViQ29yZTo6
VjhDdXN0b21FbGVtZW50Ojp3cmFwKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDdXN0b21FbGVt
ZW50Ojp3cmFwKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21FbGVtZW50
Q29uc3RydWN0b3JDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDdXN0b21FbGVtZW50
Q29uc3RydWN0b3I6OmNhbGxBc0Z1bmN0aW9uQ2FsbGJhY2spOgorICAgICAgICAqIGRvbS9DdXN0
b21FbGVtZW50Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRWxlbWVu
dENvbnN0cnVjdG9yOjpjcmVhdGVFbGVtZW50KToKKyAgICAgICAgKiBkb20vQ3VzdG9tRWxlbWVu
dENvbnN0cnVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEN1c3RvbUVsZW1l
bnRDb25zdHJ1Y3Rvcik6CisgICAgICAgICogZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21FbGVtZW50UmVnaXN0cnk6OmNvbnN0cnVjdG9yT2Yp
OgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5OjpjcmVhdGVFbGVtZW50
KToKKyAgICAgICAgKiBkb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Lmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKEN1c3RvbUVsZW1lbnRSZWdpc3RyeSk6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDogRW5zdXJlZCB0aGF0IHRoZSBkb2N1bWVudCBpcyBhbiBIVE1MLgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlZ2lzdGVyRWxlbWVudCk6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKHByaW50
V3JhcHBlckZhY3RvcnlDcHBGaWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5pZGw6
IE1vdmVkIGFuIEFQSSB0byBEb2N1bWVudC5pZGwKKwogMjAxMy0wMy0wNiAgUGhpbGlwcGUgTGlh
cmQgIDxwbGlhcmRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1ha2UgUnVsZURhdGEgc3VwcG9y
dCB1cCB0byA4MTkxIHNlbGVjdG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDI4ZGRiZWE1Nzk5NDM0
ZTE1MDNlMDU1ODQ5YjUyOTg5YzI5NGZmNTMuLjQ5ZDY5M2M1ZWQ2N2NhNmIzODI5MjhiYWExMzFm
NGIzMTk2MGIxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEzNjEsNiArMTM2MSw4IEBACiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvVjhDYWxsYmFjay5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9WOENvbGxlY3Rpb24uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOENvbGxl
Y3Rpb24uaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhDdXN0b21FbGVtZW50LmNwcCcs
CisgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhDdXN0b21FbGVtZW50LmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1Y4RE9NQ29uZmlndXJhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L1Y4RE9NQ29uZmlndXJhdGlvbi5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92
OC9WOERPTUFjdGl2aXR5TG9nZ2VyLmgnLApAQCAtMTM3Niw4ICsxMzc4LDYgQEAKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9WOEdDRm9yQ29udGV4dERpc3Bvc2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92
OC9WOEdDRm9yQ29udGV4dERpc3Bvc2UuaCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhI
VE1MQ3VzdG9tRWxlbWVudC5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4SFRNTEN1
c3RvbUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0
eU5hbWUuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFt
ZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9WOEluaXRpYWxpemVyLmNwcCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEN1c3RvbUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDdXN0b21FbGVtZW50LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNWIzNGJlYjc4MDZiNTJmMjJlNjQyN2ZiZGUxYmFiYzkzOTU4OGU5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDdXN0b21FbGVtZW50LmNwcApAQCAt
MCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKENVU1RPTV9FTEVN
RU5UUykKKworI2luY2x1ZGUgIlY4Q3VzdG9tRWxlbWVudC5oIgorCisjaW5jbHVkZSAiQ3VzdG9t
RWxlbWVudEhlbHBlcnMuaCIKKyNpbmNsdWRlICJDdXN0b21FbGVtZW50UmVnaXN0cnkuaCIKKyNp
bmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiVjhDdXN0b21FbGVtZW50Q29uc3RydWN0b3Iu
aCIKKyNpbmNsdWRlICJWOEhUTUxVbmtub3duRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0YXRpYyBXcmFwcGVyVHlwZUluZm8qIGZpbmRXcmFwcGVyVHlwZU9mKHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBjaGFpbikKK3sKKyAgICB3aGlsZSAoIWNoYWluLklzRW1wdHkoKSAmJiBj
aGFpbi0+SXNPYmplY3QoKSkgeworICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNoYWlu
T2JqZWN0ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChjaGFpbik7CisgICAgICAgIGlm
ICh2OFByb3RvdHlwZUludGVybmFsRmllbGRjb3VudCA9PSBjaGFpbk9iamVjdC0+SW50ZXJuYWxG
aWVsZENvdW50KCkpCisgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXcmFwcGVy
VHlwZUluZm8qPihjaGFpbk9iamVjdC0+R2V0QWxpZ25lZFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVs
ZCh2OFByb3RvdHlwZVR5cGVJbmRleCkpOworICAgICAgICBjaGFpbiA9IGNoYWluT2JqZWN0LT5H
ZXRQcm90b3R5cGUoKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwordjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiBWOEN1c3RvbUVsZW1lbnQ6OmNyZWF0ZVdyYXBwZXIoUGFzc1JlZlB0cjxFbGVt
ZW50PiBpbXBsLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCwgdjg6Oklz
b2xhdGUqIGlzb2xhdGUpCit7CisgICAgQVNTRVJUKGltcGwpOworCisgICAgUmVmUHRyPEN1c3Rv
bUVsZW1lbnRDb25zdHJ1Y3Rvcj4gY29uc3RydWN0b3IgPSBDdXN0b21FbGVtZW50UmVnaXN0cnk6
OmNvbnN0cnVjdG9yT2YoaW1wbC5nZXQoKSk7CisgICAgaWYgKCFjb25zdHJ1Y3RvcikgeworICAg
ICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBlclZhbHVlID0gV2ViQ29yZTo6dG9WOCh0
b0hUTUxVbmtub3duRWxlbWVudCh0b0hUTUxFbGVtZW50KGltcGwuZ2V0KCkpKSwgY3JlYXRpb25D
b250ZXh0LCBpc29sYXRlKTsKKyAgICAgICAgaWYgKCF3cmFwcGVyVmFsdWUuSXNFbXB0eSgpICYm
IHdyYXBwZXJWYWx1ZS0+SXNPYmplY3QoKSkKKyAgICAgICAgICAgIHJldHVybiB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+OjpDYXN0KHdyYXBwZXJWYWx1ZSk7CisgICAgICAgIHJldHVybiB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+KCk7CisgICAgfQorCisgICAgLy8gVGhlIGNvbnN0cnVjdG9yIGFuZCBy
ZWdpc3RlcmVkIGxpZmVjeWNsZSBjYWxsYmFja3Mgc2hvdWxkIGJlIHZpc2libGUgb25seSBmcm9t
IG1haW4gd29ybGQuCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkbid0IGJlIG5lZWRlZCBvbmNl
IGVhY2ggY3VzdG9tIGVsZW1lbnQgaGFzIGl0cyBvd24gRnVuY3Rpb25UZW1wbGF0ZQorICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxMzgKKyAgICBpZiAo
IUN1c3RvbUVsZW1lbnRIZWxwZXJzOjppc0ZlYXR1cmVBbGxvd2VkKGNyZWF0aW9uQ29udGV4dC0+
Q3JlYXRpb25Db250ZXh0KCkpKSB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3Jh
cHBlciA9IFY4RE9NV3JhcHBlcjo6Y3JlYXRlV3JhcHBlcihjcmVhdGlvbkNvbnRleHQsICZWOEhU
TUxFbGVtZW50OjppbmZvLCBpbXBsLmdldCgpLCBpc29sYXRlKTsKKyAgICAgICAgaWYgKCF3cmFw
cGVyLklzRW1wdHkoKSkKKyAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6YXNzb2NpYXRlT2JqZWN0
V2l0aFdyYXBwZXIoaW1wbCwgJlY4SFRNTEVsZW1lbnQ6OmluZm8sIHdyYXBwZXIsIGlzb2xhdGUs
IFdyYXBwZXJDb25maWd1cmF0aW9uOjpEZXBlbmRlbnQpOworICAgICAgICByZXR1cm4gd3JhcHBl
cjsKKyAgICB9CisKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0b3JWYWx1ZSA9
IFdlYkNvcmU6OnRvVjgoY29uc3RydWN0b3IuZ2V0KCksIGNyZWF0aW9uQ29udGV4dCwgaXNvbGF0
ZSk7CisgICAgaWYgKGNvbnN0cnVjdG9yVmFsdWUuSXNFbXB0eSgpIHx8ICFjb25zdHJ1Y3RvclZh
bHVlLT5Jc09iamVjdCgpKQorICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pigp
OworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY29uc3RydWN0b3JXYXBwZXIgPSB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGNvbnN0cnVjdG9yVmFsdWUpOworICAgIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gcHJvdG90eXBlID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChjb25z
dHJ1Y3RvcldhcHBlci0+R2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgicHJvdG90eXBlIikpKTsK
KyAgICBXcmFwcGVyVHlwZUluZm8qIHR5cGVJbmZvID0gZmluZFdyYXBwZXJUeXBlT2YocHJvdG90
eXBlKTsKKyAgICBpZiAoIXR5cGVJbmZvKQorICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PigpOworCisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhET01X
cmFwcGVyOjpjcmVhdGVXcmFwcGVyKGNyZWF0aW9uQ29udGV4dCwgdHlwZUluZm8sIGltcGwuZ2V0
KCksIGlzb2xhdGUpOworICAgIGlmICh3cmFwcGVyLklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKTsKKworICAgIHdyYXBwZXItPlNldFByb3RvdHlwZShw
cm90b3R5cGUpOworICAgIFY4RE9NV3JhcHBlcjo6YXNzb2NpYXRlT2JqZWN0V2l0aFdyYXBwZXIo
aW1wbCwgdHlwZUluZm8sIHdyYXBwZXIsIGlzb2xhdGUsIFdyYXBwZXJDb25maWd1cmF0aW9uOjpE
ZXBlbmRlbnQpOworICAgIHJldHVybiB3cmFwcGVyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDdXN0b21FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEN1c3RvbUVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDBkOGI1MTk5YWI0
MmI2ZGNhZmI5ODA4MTQ0NzY2ZGE5NjZkMDM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhDdXN0b21FbGVtZW50LmgKQEAgLTAsMCArMSw4OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgVjhDdXN0b21FbGVtZW50X2gKKyNkZWZpbmUgVjhDdXN0b21FbGVtZW50X2gKKworI2luY2x1
ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgorI2luY2x1ZGUgIlY4
SFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJWOEhUTUxVbmtub3duRWxlbWVudC5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWxl
bWVudDsKKworI2lmIEVOQUJMRShDVVNUT01fRUxFTUVOVFMpCisKK2NsYXNzIFY4Q3VzdG9tRWxl
bWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KEVs
ZW1lbnQqLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCA9IHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4oKSwgdjg6Oklzb2xhdGUqID0gMCk7CisgICAgc3RhdGljIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gd3JhcChFbGVtZW50Kiwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVh
dGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKik7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gY3JlYXRlV3JhcHBlcihQYXNzUmVmUHRyPEVsZW1lbnQ+LCB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+LCB2ODo6SXNvbGF0ZSopOworfTsKKworaW5saW5lIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOEN1c3RvbUVsZW1lbnQ6OnRvVjgoRWxlbWVudCogaW1wbCwgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKiBpc29sYXRlKQor
eworICAgIGlmIChVTkxJS0VMWSghaW1wbCkpCisgICAgICAgIHJldHVybiB2OE51bGxXaXRoQ2hl
Y2soaXNvbGF0ZSk7CisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gRE9NRGF0
YVN0b3JlOjpnZXRXcmFwcGVyKGltcGwsIGlzb2xhdGUpOworICAgIGlmICghd3JhcHBlci5Jc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiB3cmFwcGVyOworICAgIHJldHVybiBWOEN1c3RvbUVsZW1l
bnQ6OndyYXAoaW1wbCwgY3JlYXRpb25Db250ZXh0LCBpc29sYXRlKTsKK30KKworaW5saW5lIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhDdXN0b21FbGVtZW50Ojp3cmFwKEVsZW1lbnQqIGltcGws
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSogaXNv
bGF0ZSkKK3sKKyAgICBBU1NFUlQoaW1wbCk7CisgICAgQVNTRVJUKERPTURhdGFTdG9yZTo6Z2V0
V3JhcHBlcihpbXBsLCBpc29sYXRlKS5Jc0VtcHR5KCkpOworICAgIHJldHVybiBWOEN1c3RvbUVs
ZW1lbnQ6OmNyZWF0ZVdyYXBwZXIoaW1wbCwgY3JlYXRpb25Db250ZXh0LCBpc29sYXRlKTsKK30K
KworI2Vsc2UgLy8gRU5BQkxFKENVU1RPTV9FTEVNRU5UUykKKworY2xhc3MgVjhDdXN0b21FbGVt
ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKEVs
ZW1lbnQqLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCA9IHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4oKSwgdjg6Oklzb2xhdGUqID0gMCk7Cit9OworCitpbmxpbmUgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBIVE1MQ3VzdG9tRWxlbWVudDo6d3JhcChFbGVtZW50KiBpbXBsLCB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCwgdjg6Oklzb2xhdGUqIGlzb2xh
dGUpCit7CisgICAgcmV0dXJuIHdyYXAodG9IVE1MVW5rbm93bkVsZW1lbnQoaW1wbCksIGNyZWF0
aW9uQ29udGV4dCwgaXNvbGF0ZSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX0VMRU1F
TlRTKQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBWOEN1c3RvbUVsZW1l
bnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIVE1MQ3VzdG9t
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhUTUxDdXN0b21FbGVt
ZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDAxNGIwZjIyMjc0ODJkYTY4
NzU0NDhmZjI4ZmYyMTc2MGM0OTM0Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhUTUxDdXN0b21FbGVt
ZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQotCi0jaW5jbHVkZSAiVjhIVE1MQ3VzdG9t
RWxlbWVudC5oIgotCi0jaW5jbHVkZSAiQ3VzdG9tRWxlbWVudEhlbHBlcnMuaCIKLSNpbmNsdWRl
ICJDdXN0b21FbGVtZW50UmVnaXN0cnkuaCIKLSNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgotI2lu
Y2x1ZGUgIlY4Q3VzdG9tRWxlbWVudENvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAiVjhIVE1MVW5r
bm93bkVsZW1lbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgV3JhcHBlclR5
cGVJbmZvKiBmaW5kV3JhcHBlclR5cGVPZih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2hhaW4pCi17
Ci0gICAgd2hpbGUgKCFjaGFpbi5Jc0VtcHR5KCkgJiYgY2hhaW4tPklzT2JqZWN0KCkpIHsKLSAg
ICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjaGFpbk9iamVjdCA9IHY4OjpIYW5kbGU8djg6
Ok9iamVjdD46OkNhc3QoY2hhaW4pOwotICAgICAgICBpZiAodjhQcm90b3R5cGVJbnRlcm5hbEZp
ZWxkY291bnQgPT0gY2hhaW5PYmplY3QtPkludGVybmFsRmllbGRDb3VudCgpKQotICAgICAgICAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V3JhcHBlclR5cGVJbmZvKj4oY2hhaW5PYmplY3Qt
PkdldEFsaWduZWRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhQcm90b3R5cGVUeXBlSW5kZXgp
KTsKLSAgICAgICAgY2hhaW4gPSBjaGFpbk9iamVjdC0+R2V0UHJvdG90eXBlKCk7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhIVE1MQ3VzdG9t
RWxlbWVudDo6Y3JlYXRlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBpbXBsLCB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUp
Ci17Ci0gICAgQVNTRVJUKGltcGwpOwotCi0gICAgUmVmUHRyPEN1c3RvbUVsZW1lbnRDb25zdHJ1
Y3Rvcj4gY29uc3RydWN0b3IgPSBDdXN0b21FbGVtZW50UmVnaXN0cnk6OmNvbnN0cnVjdG9yT2Yo
aW1wbC5nZXQoKSk7Ci0gICAgaWYgKCFjb25zdHJ1Y3RvcikgewotICAgICAgICB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gd3JhcHBlclZhbHVlID0gV2ViQ29yZTo6dG9WOCh0b0hUTUxVbmtub3duRWxl
bWVudChpbXBsLmdldCgpKSwgY3JlYXRpb25Db250ZXh0LCBpc29sYXRlKTsKLSAgICAgICAgaWYg
KCF3cmFwcGVyVmFsdWUuSXNFbXB0eSgpICYmIHdyYXBwZXJWYWx1ZS0+SXNPYmplY3QoKSkKLSAg
ICAgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHdyYXBwZXJWYWx1
ZSk7Ci0gICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KCk7Ci0gICAgfQotCi0g
ICAgLy8gVGhlIGNvbnN0cnVjdG9yIGFuZCByZWdpc3RlcmVkIGxpZmVjeWNsZSBjYWxsYmFja3Mg
c2hvdWxkIGJlIHZpc2libGUgb25seSBmcm9tIG1haW4gd29ybGQuCi0gICAgLy8gRklYTUU6IFRo
aXMgc2hvdWxkbid0IGJlIG5lZWRlZCBvbmNlIGVhY2ggY3VzdG9tIGVsZW1lbnQgaGFzIGl0cyBv
d24gRnVuY3Rpb25UZW1wbGF0ZQotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDgxMzgKLSAgICBpZiAoIUN1c3RvbUVsZW1lbnRIZWxwZXJzOjppc0ZlYXR1
cmVBbGxvd2VkKGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkpKSB7Ci0gICAgICAg
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6Y3JlYXRlV3Jh
cHBlcihjcmVhdGlvbkNvbnRleHQsICZWOEhUTUxFbGVtZW50OjppbmZvLCBpbXBsLmdldCgpLCBp
c29sYXRlKTsKLSAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKLSAgICAgICAgICAgIFY4
RE9NV3JhcHBlcjo6YXNzb2NpYXRlT2JqZWN0V2l0aFdyYXBwZXIoaW1wbCwgJlY4SFRNTEVsZW1l
bnQ6OmluZm8sIHdyYXBwZXIsIGlzb2xhdGUsIFdyYXBwZXJDb25maWd1cmF0aW9uOjpEZXBlbmRl
bnQpOwotICAgICAgICByZXR1cm4gd3JhcHBlcjsKLSAgICB9Ci0KLSAgICB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gY29uc3RydWN0b3JWYWx1ZSA9IFdlYkNvcmU6OnRvVjgoY29uc3RydWN0b3IuZ2V0
KCksIGNyZWF0aW9uQ29udGV4dCwgaXNvbGF0ZSk7Ci0gICAgaWYgKGNvbnN0cnVjdG9yVmFsdWUu
SXNFbXB0eSgpIHx8ICFjb25zdHJ1Y3RvclZhbHVlLT5Jc09iamVjdCgpKQotICAgICAgICByZXR1
cm4gdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
Y29uc3RydWN0b3JXYXBwZXIgPSB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGNvbnN0cnVj
dG9yVmFsdWUpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcHJvdG90eXBlID0gdjg6Okhh
bmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChjb25zdHJ1Y3RvcldhcHBlci0+R2V0KHY4OjpTdHJpbmc6
Ok5ld1N5bWJvbCgicHJvdG90eXBlIikpKTsKLSAgICBXcmFwcGVyVHlwZUluZm8qIHR5cGVJbmZv
ID0gZmluZFdyYXBwZXJUeXBlT2YocHJvdG90eXBlKTsKLSAgICBpZiAoIXR5cGVJbmZvKQotICAg
ICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpOwotCi0gICAgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhET01XcmFwcGVyOjpjcmVhdGVXcmFwcGVyKGNyZWF0aW9u
Q29udGV4dCwgdHlwZUluZm8sIGltcGwuZ2V0KCksIGlzb2xhdGUpOwotICAgIGlmICh3cmFwcGVy
LklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKTsKLQot
ICAgIHdyYXBwZXItPlNldFByb3RvdHlwZShwcm90b3R5cGUpOwotICAgIFY4RE9NV3JhcHBlcjo6
YXNzb2NpYXRlT2JqZWN0V2l0aFdyYXBwZXIoaW1wbCwgdHlwZUluZm8sIHdyYXBwZXIsIGlzb2xh
dGUsIFdyYXBwZXJDb25maWd1cmF0aW9uOjpEZXBlbmRlbnQpOwotICAgIHJldHVybiB3cmFwcGVy
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9N
X0VMRU1FTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIVE1M
Q3VzdG9tRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIVE1MQ3VzdG9t
RWxlbWVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjhiMDViNDEyYWFkNzEw
ODY3YWU3OWRmZDI0MjY1OGRmMmI3ZTc3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SFRNTEN1c3RvbUVs
ZW1lbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFY4SFRNTEN1c3Rv
bUVsZW1lbnRfaAotI2RlZmluZSBWOEhUTUxDdXN0b21FbGVtZW50X2gKLQotI2luY2x1ZGUgIlY4
QmluZGluZy5oIgotI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgotI2luY2x1ZGUgIlY4SFRNTEVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJWOEhUTUxVbmtub3duRWxlbWVudC5oIgotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSFRNTEVsZW1l
bnQ7Ci0KLSNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQotCi1jbGFzcyBWOEhUTUxDdXN0b21F
bGVtZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgo
SFRNTEVsZW1lbnQqLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCA9IHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4oKSwgdjg6Oklzb2xhdGUqID0gMCk7Ci0gICAgc3RhdGljIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcChIVE1MRWxlbWVudCosIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSopOwotCi1wcml2YXRlOgotICAgIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4sIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIHY4OjpJc29sYXRlKik7Ci19OwotCi1p
bmxpbmUgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTEN1c3RvbUVsZW1lbnQ6OnRvVjgoSFRN
TEVsZW1lbnQqIGltcGwsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2
ODo6SXNvbGF0ZSogaXNvbGF0ZSkKLXsKLSAgICBpZiAoVU5MSUtFTFkoIWltcGwpKQotICAgICAg
ICByZXR1cm4gdjhOdWxsV2l0aENoZWNrKGlzb2xhdGUpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gd3JhcHBlciA9IERPTURhdGFTdG9yZTo6Z2V0V3JhcHBlcihpbXBsLCBpc29sYXRlKTsK
LSAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gd3JhcHBlcjsKLSAg
ICByZXR1cm4gVjhIVE1MQ3VzdG9tRWxlbWVudDo6d3JhcChpbXBsLCBjcmVhdGlvbkNvbnRleHQs
IGlzb2xhdGUpOwotfQotCi1pbmxpbmUgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOEhUTUxDdXN0
b21FbGVtZW50Ojp3cmFwKEhUTUxFbGVtZW50KiBpbXBsLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IGNyZWF0aW9uQ29udGV4dCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCi17Ci0gICAgQVNTRVJUKGlt
cGwpOwotICAgIEFTU0VSVChET01EYXRhU3RvcmU6OmdldFdyYXBwZXIoaW1wbCwgaXNvbGF0ZSku
SXNFbXB0eSgpKTsKLSAgICByZXR1cm4gVjhIVE1MQ3VzdG9tRWxlbWVudDo6Y3JlYXRlV3JhcHBl
cihpbXBsLCBjcmVhdGlvbkNvbnRleHQsIGlzb2xhdGUpOwotfQotCi0jZWxzZSAvLyBFTkFCTEUo
Q1VTVE9NX0VMRU1FTlRTKQotCi1jbGFzcyBWOEhUTUxDdXN0b21FbGVtZW50IHsKLXB1YmxpYzoK
LSAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKEhUTUxFbGVtZW50Kiwgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQgPSB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+KCksIHY4OjpJc29sYXRlKiA9IDApOwotfTsKLQotaW5saW5lIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gSFRNTEN1c3RvbUVsZW1lbnQ6OndyYXAoSFRNTEVsZW1lbnQqIGltcGwsIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKLXsK
LSAgICByZXR1cm4gd3JhcCh0b0hUTUxVbmtub3duRWxlbWVudChpbXBsKSwgY3JlYXRpb25Db250
ZXh0LCBpc29sYXRlKTsKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fRUxFTUVOVFMpCi0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFY4SFRNTEN1c3RvbUVsZW1lbnRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9t
RWxlbWVudENvbnN0cnVjdG9yQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3RvckN1c3RvbS5jcHAKaW5kZXggMzQzNzRm
Njc2ODgwYzkyODU0ZjI4ODk0NmE2MzkxNTFhMGIzYjIzNS4uOGVkNzliODVlMDY4NWJlMTA0MDlj
NzVjNTNhNTAyMzhlZTgyZmM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q3VzdG9tRWxlbWVudENvbnN0cnVjdG9yQ3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21FbGVtZW50Q29uc3RydWN0b3JD
dXN0b20uY3BwCkBAIC0zMyw3ICszMyw3IEBACiAKICNpbmNsdWRlICJDdXN0b21FbGVtZW50Q29u
c3RydWN0b3IuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOEhUTUxDdXN0
b21FbGVtZW50LmgiCisjaW5jbHVkZSAiVjhDdXN0b21FbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNDUsMTAgKzQ1LDEwIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEN1
c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvcjo6Y2FsbEFzRnVuY3Rpb25DYWxsYmFjayhjb25zdCB2CiAg
ICAgICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwogCiAgICAgQ3VzdG9tRWxlbWVudENvbnN0cnVj
dG9yKiBpbXBsID0gdG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50ID0gaW1wbC0+Y3JlYXRlRWxlbWVudCgpOworICAgIFJlZlB0cjxFbGVtZW50
PiBlbGVtZW50ID0gaW1wbC0+Y3JlYXRlRWxlbWVudCgpOwogICAgIGlmICghZWxlbWVudCkKICAg
ICAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJuIFY4SFRNTEN1c3RvbUVsZW1l
bnQ6OnRvVjgoZWxlbWVudC5nZXQoKSwgYXJncy5Ib2xkZXIoKSwgYXJncy5HZXRJc29sYXRlKCkp
OworICAgIHJldHVybiBWOEN1c3RvbUVsZW1lbnQ6OnRvVjgoZWxlbWVudC5nZXQoKSwgYXJncy5I
b2xkZXIoKSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudENvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50Q29uc3RydWN0b3IuY3BwCmlu
ZGV4IDE5ODE2MGZlMWE4OWQ3MTExMTJlOGM5ODllNzUwZjMwN2NmMTRmYjQuLmM5NzVkNmM1MzIy
ZjQ1ZjI2NWFiMmQ3YjdiYzk1MzIxNGNlMTAxNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9DdXN0b21FbGVtZW50Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9DdXN0b21FbGVtZW50Q29uc3RydWN0b3IuY3BwCkBAIC01OSw3ICs1OSw3IEBAIEN1c3RvbUVs
ZW1lbnRDb25zdHJ1Y3Rvcjo6fkN1c3RvbUVsZW1lbnRDb25zdHJ1Y3RvcigpCiB7CiB9CiAKLVBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvcjo6Y3JlYXRlRWxl
bWVudCgpIGNvbnN0CitQYXNzUmVmUHRyPEVsZW1lbnQ+IEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rv
cjo6Y3JlYXRlRWxlbWVudCgpIGNvbnN0CiB7CiAgICAgaWYgKCFkb2N1bWVudCgpKQogICAgICAg
ICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50Q29uc3RydWN0
b3IuaAppbmRleCA1MmI3Y2FkYzUwZmNmNWFmODUyYjVlODBhNDY4ZmVhMTEzMmEyYTE4Li44NDRl
MGU4YjNkOTlmMjI5ZmNjMmYyMzM0ZDQwMzUyNTRiNTY0MDgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0N1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvci5oCkBAIC00NCw3ICs0NCw3IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgSFRNTEVsZW1lbnQ7Citj
bGFzcyBFbGVtZW50OwogY2xhc3MgU2NyaXB0U3RhdGU7CiBjbGFzcyBTY3JpcHRWYWx1ZTsKIApA
QCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
OyB9CiAgICAgY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFt
ZTsgfQogCi0gICAgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlRWxlbWVudCgpIGNvbnN0
OworICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlRWxlbWVudCgpIGNvbnN0OwogICAgIAog
cHJpdmF0ZToKICAgICBDdXN0b21FbGVtZW50Q29uc3RydWN0b3IoRG9jdW1lbnQqLCBjb25zdCBR
dWFsaWZpZWROYW1lJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxl
bWVudFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVnaXN0
cnkuY3BwCmluZGV4IDVkOTY0OGI5MmRlZmZmYTU5NjQxOTM0YmMxN2ZmNDBmNGQwZjg4NjAuLmQ4
YjBjZDkwNTUwNjVmMzc4ZGE2NzgxYWViMjAxN2QzYjNhN2E2ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9DdXN0b21FbGVtZW50UmVnaXN0cnkuY3BwCkBAIC0zOCw3ICszOCw3IEBACiAjaW5j
bHVkZSAiQ3VzdG9tRWxlbWVudEhlbHBlcnMuaCIKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUg
IkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJSdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KQEAgLTYyLDcgKzYy
LDcgQEAgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Ojp+Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5KCkKIHsK
IH0KIAotUGFzc1JlZlB0cjxDdXN0b21FbGVtZW50Q29uc3RydWN0b3I+IEN1c3RvbUVsZW1lbnRS
ZWdpc3RyeTo6Y29uc3RydWN0b3JPZihIVE1MRWxlbWVudCogZWxlbWVudCkKK1Bhc3NSZWZQdHI8
Q3VzdG9tRWxlbWVudENvbnN0cnVjdG9yPiBDdXN0b21FbGVtZW50UmVnaXN0cnk6OmNvbnN0cnVj
dG9yT2YoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBSZWZQdHI8Q3VzdG9tRWxlbWVudFJlZ2lz
dHJ5PiBzZWxmID0gZWxlbWVudC0+ZG9jdW1lbnQoKS0+cmVnaXN0cnkoKTsKICAgICBpZiAoIXNl
bGYpCkBAIC0xNTUsNyArMTU1LDcgQEAgUGFzc1JlZlB0cjxDdXN0b21FbGVtZW50Q29uc3RydWN0
b3I+IEN1c3RvbUVsZW1lbnRSZWdpc3RyeTo6ZmluZChjb25zdCBRdWFsaWZpZWQKICAgICByZXR1
cm4gKGZvdW5kICE9IG1fY29uc3RydWN0b3JzLmVuZCgpKSA/IGZvdW5kLT52YWx1ZSA6IDA7CiB9
CiAKLVBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IEN1c3RvbUVsZW1lbnRSZWdpc3RyeTo6Y3JlYXRl
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAorUGFzc1JlZlB0cjxFbGVt
ZW50PiBDdXN0b21FbGVtZW50UmVnaXN0cnk6OmNyZWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSkgY29uc3QKIHsKICAgICBpZiAoUmVmUHRyPEN1c3RvbUVsZW1lbnRDb25zdHJ1
Y3Rvcj4gZm91bmQgPSBmaW5kKG5hbWUpKQogICAgICAgICByZXR1cm4gZm91bmQtPmNyZWF0ZUVs
ZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVn
aXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVnaXN0cnkuaAppbmRl
eCA3YjU4YzEzOTA1NDg4YzRiYTMwZjAwOTNjNmFlNjI5ZDc0ZTA3MzYxLi4yMDgyY2Q3NjIyY2Y2
MmVhYmUxMzZkNmFmYjI3YTRkYWE2MmU3MjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3Rv
bUVsZW1lbnRSZWdpc3RyeS5oCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3RvcjsKIGNsYXNzIERpY3Rpb25hcnk7CiBjbGFz
cyBEb2N1bWVudDsKLWNsYXNzIEhUTUxFbGVtZW50OworY2xhc3MgRWxlbWVudDsKIGNsYXNzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBRdWFsaWZpZWROYW1lOwogCkBAIC02MCwxMCAr
NjAsMTAgQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxDdXN0b21FbGVtZW50Q29uc3RydWN0
b3I+IHJlZ2lzdGVyRWxlbWVudChXZWJDb3JlOjpTY3JpcHRTdGF0ZSosIGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSwgY29uc3QgRGljdGlvbmFyeSYgb3B0aW9ucywgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIFBhc3NSZWZQdHI8Q3VzdG9tRWxlbWVudENvbnN0cnVjdG9yPiBmaW5kKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0OwogICAgIERvY3VtZW50
KiBkb2N1bWVudCgpIGNvbnN0OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q3VzdG9tRWxlbWVu
dENvbnN0cnVjdG9yPiBjb25zdHJ1Y3Rvck9mKEhUTUxFbGVtZW50Kik7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8Q3VzdG9tRWxlbWVudENvbnN0cnVjdG9yPiBjb25zdHJ1Y3Rvck9mKEVsZW1lbnQq
KTsKICAgICAKIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNWYWxpZE5hbWUoY29uc3QgQXRv
bWljU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAwYTdlY2Y2ZjE2ZmM3MGVj
OTZhOWIzYjRlOTgyYTJkYzUwN2YzNTRiLi4zNDhlYzg5NzY2OTk5ZmJiNzE5MDI4Yjg0YjEwYjZj
YjM5MDFkNjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTg0MCw2ICs4NDAsMTEgQEAg
UGFzc1JlZlB0cjxDdXN0b21FbGVtZW50Q29uc3RydWN0b3I+IERvY3VtZW50OjpyZWdpc3RlckVs
ZW1lbnQoV2ViQ29yZTo6U2NyaXB0U3QKIAogUGFzc1JlZlB0cjxDdXN0b21FbGVtZW50Q29uc3Ry
dWN0b3I+IERvY3VtZW50OjpyZWdpc3RlckVsZW1lbnQoV2ViQ29yZTo6U2NyaXB0U3RhdGUqIHN0
YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IERpY3Rpb25hcnkmIG9wdGlvbnMs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIGlmICghaXNIVE1MRG9jdW1lbnQoKSAmJiAhaXNY
SFRNTERvY3VtZW50KCkpIHsKKyAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgfQorCiAgICAgaWYgKCFtX3JlZ2lzdHJ5KQogICAgICAgICBtX3Jl
Z2lzdHJ5ID0gYWRvcHRSZWYobmV3IEN1c3RvbUVsZW1lbnRSZWdpc3RyeSh0aGlzKSk7CiAgICAg
cmV0dXJuIG1fcmVnaXN0cnktPnJlZ2lzdGVyRWxlbWVudChzdGF0ZSwgbmFtZSwgb3B0aW9ucywg
ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggNGQ0ZTlmYjQ5NTI2YTg4NTExYThjNzQy
ZjFiYjY0NzQwYjczOTFhYy4uMGUwNmZjN2YyZDgxOTE2Zjg1MjU1MDA4YjI3OWJjYzU1Y2QzYzA4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0zNTYsNiArMzU2LDExIEBACiAgICAgICAg
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogCisjaWYgZGVmaW5lZChFTkFCTEVfQ1VT
VE9NX0VMRU1FTlRTKSAmJiBFTkFCTEVfQ1VTVE9NX0VMRU1FTlRTCisgICAgW1Y4RW5hYmxlZEF0
UnVudGltZT1jdXN0b21ET01FbGVtZW50cywgQ29uZGl0aW9uYWw9Q1VTVE9NX0VMRU1FTlRTLCBJ
bXBsZW1lbnRlZEFzPXJlZ2lzdGVyRWxlbWVudCwgQ2FsbFdpdGg9U2NyaXB0U3RhdGVdCisgICAg
Q3VzdG9tRWxlbWVudENvbnN0cnVjdG9yIHdlYmtpdFJlZ2lzdGVyKGluIERPTVN0cmluZyBuYW1l
LCBpbiBbT3B0aW9uYWxdIERpY3Rpb25hcnkgb3B0aW9ucykgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CisjZW5kaWYKKwogI2lmIGRlZmluZWQoTEFOR1VBR0VfQ1BQKSAmJiBMQU5HVUFHRV9DUFAKICAg
ICAvLyBFeHRyYSBXZWJDb3JlIG1ldGhvZHMgZXhwb3NlZCB0byBhbGxvdyBjb21waWxlLXRpbWUg
Y2FzdGluZyBpbiBDKysKICAgICBib29sZWFuIGlzSFRNTERvY3VtZW50KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9t
YWtlX25hbWVzLnBsCmluZGV4IDM0MWVhYzBiZWM1YTE3ZjVmZTJlYTgwOWNkZWNhYTA0ODJmNzRi
YjQuLjA0M2EzODI0MDhjYzQxNzAxNmNmNDAyZjY0NzIxNDlmYjk1Y2NkOTYgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9tYWtlX25hbWVzLnBsCkBAIC0xMTcyLDcgKzExNzIsNyBAQCBFTkQKIDsKICAgICB9IGVsc2lm
ICgkd3JhcHBlckZhY3RvcnlUeXBlIGVxICJWOCIpIHsKICAgICAgICAgcHJpbnQgRiA8PEVORAot
I2luY2x1ZGUgIlY4SFRNTEN1c3RvbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJWOEN1c3RvbUVsZW1l
bnQuaCIKICNpbmNsdWRlICJWOCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50LmgiCiAKICNp
bmNsdWRlIDx2OC5oPgpAQCAtMTI3Nyw3ICsxMjc3LDcgQEAgRU5ECiA7CiAgICAgICAgIH0gZWxz
aWYgKCRwYXJhbWV0ZXJze25hbWVzcGFjZX0gZXEgIkhUTUwiKSB7CiAgICAgICAgICAgICBwcmlu
dCBGIDw8RU5ECi0gICAgcmV0dXJuIFY4SFRNTEN1c3RvbUVsZW1lbnQ6OndyYXAoZWxlbWVudCwg
Y3JlYXRpb25Db250ZXh0LCBpc29sYXRlKTsKKyAgICByZXR1cm4gVjhDdXN0b21FbGVtZW50Ojp3
cmFwKGVsZW1lbnQsIGNyZWF0aW9uQ29udGV4dCwgaXNvbGF0ZSk7CiBFTkQKIDsKICAgICAgICAg
fSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmlkbAppbmRleCBlMWY1N2QyYzAx
NmI2MGMwMDc4NGY5MjZlMzJhOTBkYjdiNGU5Nzc4Li4wNzQyN2NmZWIxODI1ODQ3ZWU3ZDJkMzg5
ZTNjODY2OGZkNTg2YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaWRsCkBAIC01
MywxMSArNTMsNiBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGFjdGl2ZUVsZW1l
bnQ7CiAgICAgYm9vbGVhbiBoYXNGb2N1cygpOwogCi0jaWYgZGVmaW5lZChFTkFCTEVfQ1VTVE9N
X0VMRU1FTlRTKSAmJiBFTkFCTEVfQ1VTVE9NX0VMRU1FTlRTCi0gICAgW1Y4RW5hYmxlZEF0UnVu
dGltZT1jdXN0b21ET01FbGVtZW50cywgQ29uZGl0aW9uYWw9Q1VTVE9NX0VMRU1FTlRTLCBJbXBs
ZW1lbnRlZEFzPXJlZ2lzdGVyRWxlbWVudCwgQ2FsbFdpdGg9U2NyaXB0U3RhdGVdCi0gICAgQ3Vz
dG9tRWxlbWVudENvbnN0cnVjdG9yIHdlYmtpdFJlZ2lzdGVyKGluIERPTVN0cmluZyBuYW1lLCBp
biBbT3B0aW9uYWxdIERpY3Rpb25hcnkgb3B0aW9ucykgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0j
ZW5kaWYKLQogICAgIC8vIERlcHJlY2F0ZWQgYXR0cmlidXRlcwogICAgICAgICAgICAgIFtUcmVh
dE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGJnQ29sb3I7CiAgICAgICAg
ICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgZmdDb2xv
cjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>