<?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>44296</bug_id>
          
          <creation_ts>2010-08-19 14:53:48 -0700</creation_ts>
          <short_desc>[chromium] The WebEvent class and associated are deprecated and should be removed</short_desc>
          <delta_ts>2010-08-20 11:12:41 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Jay Civelli">jcivelli</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>266979</commentid>
    <comment_count>0</comment_count>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-08-19 14:53:48 -0700</bug_when>
    <thetext>The WebEvent, WebEventListener, WebMutationEvent and WebEventListenerPrivate have been deprecated and should be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266982</commentid>
    <comment_count>1</comment_count>
      <attachid>64902</attachid>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-08-19 14:57:16 -0700</bug_when>
    <thetext>Created attachment 64902
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267306</commentid>
    <comment_count>2</comment_count>
      <attachid>64902</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-20 11:12:37 -0700</bug_when>
    <thetext>Comment on attachment 64902
Initial patch

Clearing flags on attachment: 64902

Committed r65743: &lt;http://trac.webkit.org/changeset/65743&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267307</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-20 11:12:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64902</attachid>
            <date>2010-08-19 14:57:16 -0700</date>
            <delta_ts>2010-08-20 11:12:37 -0700</delta_ts>
            <desc>Initial patch</desc>
            <filename>remove_deprecated.patch</filename>
            <type>text/plain</type>
            <size>33361</size>
            <attacher name="Jay Civelli">jcivelli</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA2NTcwOSkKKysrIFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wOC0xOSAgSmF5
IENpdmVsbGkgIDxqY2l2ZWxsaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZpbmcgdGhlIGRlcHJlY2F0ZWQgY2xhc3Mg
V2ViRXZlbnQgYW5kIGZyaWVuZHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDI5NgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBw
dWJsaWMvV2ViRXZlbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViRXZlbnRMaXN0
ZW5lci5oOiBSZW1vdmVkLgorICAgICAgICAqIHB1YmxpYy9XZWJNdXRhdGlvbkV2ZW50Lmg6IFJl
bW92ZWQuCisgICAgICAgICogcHVibGljL1dlYk5vZGUuaDoKKyAgICAgICAgKiBzcmMvRXZlbnRM
aXN0ZW5lcldyYXBwZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpFdmVudExpc3RlbmVyV3JhcHBl
cjo6d2ViRE9NRXZlbnRMaXN0ZW5lckRlbGV0ZWQpOgorICAgICAgICAqIHNyYy9FdmVudExpc3Rl
bmVyV3JhcHBlci5oOgorICAgICAgICAqIHNyYy9XZWJFdmVudC5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogc3JjL1dlYkV2ZW50TGlzdGVuZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9X
ZWJFdmVudExpc3RlbmVyUHJpdmF0ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogc3JjL1dlYkV2
ZW50TGlzdGVuZXJQcml2YXRlLmg6IFJlbW92ZWQuCisgICAgICAgICogc3JjL1dlYk5vZGUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKToKKwogMjAx
MC0wOC0xOSAgVmluY2VudCBTY2hlaWIgIDxzY2hlaWJAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkocmV2aXNpb24g
NjU2OTgpCisrKyBXZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkod29ya2luZyBjb3B5KQpAQCAt
MTU5LDggKzE1OSw2IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJEcmFnRGF0YS5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYkVkaXRpbmdBY3Rpb24uaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJFbGVtZW50LmgnLAotICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
RXZlbnQuaCcsCi0gICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJFdmVudExpc3RlbmVyLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRmlsZUNob29zZXJDb21wbGV0aW9uLmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViRmlsZUNob29zZXJQYXJhbXMuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJGaWxlSW5mby5oJywKQEAgLTIxMiw3ICsyMTAsNiBAQAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViTWVzc2FnZVBvcnRDaGFubmVsLmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViTWVzc2FnZVBvcnRDaGFubmVsQ2xpZW50LmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViTWltZVJlZ2lzdHJ5LmgnLAotICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViTXV0YXRpb25FdmVudC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk5hbWVkTm9k
ZU1hcC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk5hdmlnYXRpb25UeXBlLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTm9kZS5oJywKQEAgLTQyNCwxMCArNDIxLDYgQEAK
ICAgICAgICAgICAgICAgICAnc3JjL1dlYkVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL1dlYkVudGl0aWVzLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJFbnRpdGllcy5o
JywKLSAgICAgICAgICAgICAgICAnc3JjL1dlYkV2ZW50LmNwcCcsCi0gICAgICAgICAgICAgICAg
J3NyYy9XZWJFdmVudExpc3RlbmVyLmNwcCcsCi0gICAgICAgICAgICAgICAgJ3NyYy9XZWJFdmVu
dExpc3RlbmVyUHJpdmF0ZS5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvV2ViRXZlbnRMaXN0
ZW5lclByaXZhdGUuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJGaWxlQ2hvb3NlckNvbXBs
ZXRpb25JbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJGaWxlQ2hvb3NlckNvbXBs
ZXRpb25JbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViRm9udENhY2hlLmNwcCcsCkBA
IC00NzksNyArNDcyLDYgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhRWxlbWVudC5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCcsCi0gICAg
ICAgICAgICAgICAgJ3NyYy9XZWJNdXRhdGlvbkV2ZW50LmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJOYW1lZE5vZGVNYXAuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk5vZGUu
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk5vZGVDb2xsZWN0aW9uLmNwcCcsCkluZGV4
OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkV2ZW50LmgNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkV2ZW50LmgJKHJldmlzaW9uIDY1Njk4KQorKysgV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDExNiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgot
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0g
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBXZWJFdmVudF9oCi0jZGVmaW5lIFdlYkV2ZW50X2gKLQotI2luY2x1ZGUgIldl
YkNvbW1vbi5oIgotI2luY2x1ZGUgIldlYk5vZGUuaCIKLSNpbmNsdWRlICJXZWJTdHJpbmcuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBFdmVudDsgfQotI2lmIFdFQktJVF9JTVBMRU1F
TlRBVElPTgotbmFtZXNwYWNlIFdURiB7IHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBQYXNz
UmVmUHRyOyB9Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYkV2ZW50
IHsKLXB1YmxpYzoKLSAgICBlbnVtIFBoYXNlVHlwZSB7Ci0gICAgICAgIENhcHR1cmluZ1BoYXNl
ICAgICA9IDEsCi0gICAgICAgIEF0VGFyZ2V0ICAgICAgICAgICA9IDIsCi0gICAgICAgIEJ1YmJs
aW5nUGhhc2UgICAgICA9IDMKLSAgICB9OwotCi0gICAgV2ViRXZlbnQoKSA6IG1fcHJpdmF0ZSgw
KSB7IH0KLSAgICBXZWJFdmVudChjb25zdCBXZWJFdmVudCYgZSkgOiBtX3ByaXZhdGUoMCkgeyBh
c3NpZ24oZSk7IH0KLSAgICBXZWJFdmVudCYgb3BlcmF0b3I9KGNvbnN0IFdlYkV2ZW50JiBlKQot
ICAgIHsKLSAgICAgICAgYXNzaWduKGUpOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQot
Ci0gICAgV0VCS0lUX0FQSSB2b2lkIHJlc2V0KCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2ln
bihjb25zdCBXZWJFdmVudCYpOwotCi0gICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiAh
bV9wcml2YXRlOyB9Ci0KLSAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB0eXBlKCkgY29uc3Q7Ci0g
ICAgV0VCS0lUX0FQSSBXZWJOb2RlIHRhcmdldCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2Vi
Tm9kZSBjdXJyZW50VGFyZ2V0KCkgY29uc3Q7Ci0KLSAgICBXRUJLSVRfQVBJIFBoYXNlVHlwZSBl
dmVudFBoYXNlKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBib29sIGJ1YmJsZXMoKSBjb25zdDsK
LSAgICBXRUJLSVRfQVBJIGJvb2wgY2FuY2VsYWJsZSgpIGNvbnN0OwotCi0gICAgV0VCS0lUX0FQ
SSBib29sIGlzVUlFdmVudCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc01vdXNlRXZl
bnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgaXNNdXRhdGlvbkV2ZW50KCkgY29uc3Q7
Ci0gICAgV0VCS0lUX0FQSSBib29sIGlzS2V5Ym9hcmRFdmVudCgpIGNvbnN0OwotICAgIFdFQktJ
VF9BUEkgYm9vbCBpc1RleHRFdmVudCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc0Nv
bXBvc2l0aW9uRXZlbnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgaXNEcmFnRXZlbnQo
KSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgaXNDbGlwYm9hcmRFdmVudCgpIGNvbnN0Owot
ICAgIFdFQktJVF9BUEkgYm9vbCBpc01lc3NhZ2VFdmVudCgpIGNvbnN0OwotICAgIFdFQktJVF9B
UEkgYm9vbCBpc1doZWVsRXZlbnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgaXNCZWZv
cmVUZXh0SW5zZXJ0ZWRFdmVudCgpIGNvbnN0OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc092ZXJm
bG93RXZlbnQoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIGJvb2wgaXNQYWdlVHJhbnNpdGlvbkV2
ZW50KCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBib29sIGlzUG9wU3RhdGVFdmVudCgpIGNvbnN0
OwotICAgIFdFQktJVF9BUEkgYm9vbCBpc1Byb2dyZXNzRXZlbnQoKSBjb25zdDsKLSAgICBXRUJL
SVRfQVBJIGJvb2wgaXNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoKSBjb25zdDsKLSAgICBX
RUJLSVRfQVBJIGJvb2wgaXNXZWJLaXRBbmltYXRpb25FdmVudCgpIGNvbnN0OwotICAgIFdFQktJ
VF9BUEkgYm9vbCBpc1dlYktpdFRyYW5zaXRpb25FdmVudCgpIGNvbnN0OwotICAgIFdFQktJVF9B
UEkgYm9vbCBpc0JlZm9yZUxvYWRFdmVudCgpIGNvbnN0OwotCi0jaWYgV0VCS0lUX0lNUExFTUVO
VEFUSU9OCi0gICAgV2ViRXZlbnQoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkV2ZW50
PiYpOwotI2VuZGlmCi0KLXByb3RlY3RlZDoKLSAgICB0eXBlZGVmIFdlYkNvcmU6OkV2ZW50IFdl
YkV2ZW50UHJpdmF0ZTsKLSAgICB2b2lkIGFzc2lnbihXZWJFdmVudFByaXZhdGUqKTsKLSAgICBX
ZWJFdmVudFByaXZhdGUqIG1fcHJpdmF0ZTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQq
IHVud3JhcCgpCi0gICAgewotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KG1fcHJpdmF0
ZSk7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3QgVCogY29uc3RVbndy
YXAoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFQqPiht
X3ByaXZhdGUpOwotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYK
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRXZlbnRMaXN0ZW5lci5oDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJFdmVudExpc3RlbmVyLmgJKHJldmlz
aW9uIDY1Njk4KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJFdmVudExpc3RlbmVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0g
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViRXZlbnRMaXN0ZW5lcl9o
Ci0jZGVmaW5lIFdlYkV2ZW50TGlzdGVuZXJfaAotCi0jaW5jbHVkZSAiV2ViQ29tbW9uLmgiCi0K
LSNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KLW5hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgTm9k
ZTsgfQotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBEZXByZWNhdGVkRXZl
bnRMaXN0ZW5lcldyYXBwZXI7Ci1jbGFzcyBXZWJFdmVudDsKLWNsYXNzIFdlYkV2ZW50TGlzdGVu
ZXJQcml2YXRlOwotY2xhc3MgV2ViTm9kZTsKLWNsYXNzIFdlYlN0cmluZzsKLQotY2xhc3MgV2Vi
RXZlbnRMaXN0ZW5lciB7Ci1wdWJsaWM6Ci0gICAgV0VCS0lUX0FQSSBXZWJFdmVudExpc3RlbmVy
KCk7Ci0gICAgV0VCS0lUX0FQSSB2aXJ0dWFsIH5XZWJFdmVudExpc3RlbmVyKCk7Ci0KLSAgICAv
LyBDYWxsZWQgd2hlbiBhbiBldmVudCBpcyByZWNlaXZlZC4KLSAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlRXZlbnQoY29uc3QgV2ViRXZlbnQmKSA9IDA7Ci0KLSNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJ
T04KLSAgICB2b2lkIG5vdGlmeUV2ZW50TGlzdGVuZXJEZWxldGVkKERlcHJlY2F0ZWRFdmVudExp
c3RlbmVyV3JhcHBlciopOwotICAgIERlcHJlY2F0ZWRFdmVudExpc3RlbmVyV3JhcHBlciogY3Jl
YXRlRXZlbnRMaXN0ZW5lcldyYXBwZXIoY29uc3QgV2ViU3RyaW5nJiBldmVudFR5cGUsIGJvb2wg
dXNlQ2FwdHVyZSwgV2ViQ29yZTo6Tm9kZSogbm9kZSk7Ci0gICAgRGVwcmVjYXRlZEV2ZW50TGlz
dGVuZXJXcmFwcGVyKiBnZXRFdmVudExpc3RlbmVyV3JhcHBlcihjb25zdCBXZWJTdHJpbmcmIGV2
ZW50VHlwZSwgYm9vbCB1c2VDYXB0dXJlLCBXZWJDb3JlOjpOb2RlKiBub2RlKTsKLSNlbmRpZgot
Ci1wcml2YXRlOgotICAgIFdlYkV2ZW50TGlzdGVuZXJQcml2YXRlKiBtX3ByaXZhdGU7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCkluZGV4OiBXZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYk11dGF0aW9uRXZlbnQuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViTXV0YXRpb25FdmVudC5oCShyZXZpc2lvbiA2NTY5OCkKKysrIFdlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViTXV0YXRpb25FdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoK
LSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotI2lmbmRlZiBXZWJNdXRhdGlvbkV2ZW50X2gKLSNkZWZpbmUgV2ViTXV0YXRpb25FdmVu
dF9oCi0KLSNpbmNsdWRlICJXZWJFdmVudC5oIgotCi0jaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9O
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIEV2ZW50OyB9Ci0jZW5kaWYKLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWNsYXNzIFdlYk11dGF0aW9uRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewot
cHVibGljOgotICAgIGVudW0gQXR0ckNoYW5nZVR5cGUgewotICAgICAgICBNb2RpZmljYXRpb24g
ICAgPSAxLAotICAgICAgICBBZGRpdGlvbiAgICAgICAgPSAyLAotICAgICAgICBSZW1vdmFsICAg
ICAgICAgPSAzCi0gICAgfTsKLQotICAgIFdFQktJVF9BUEkgV2ViTm9kZSByZWxhdGVkTm9kZSgp
IGNvbnN0OwotICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIHByZXZWYWx1ZSgpIGNvbnN0OwotICAg
IFdFQktJVF9BUEkgV2ViU3RyaW5nIG5ld1ZhbHVlKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBX
ZWJTdHJpbmcgYXR0ck5hbWUoKSBjb25zdDsKLSAgICBXRUJLSVRfQVBJIEF0dHJDaGFuZ2VUeXBl
IGF0dHJDaGFuZ2UoKSBjb25zdDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5k
aWYKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgJKHJldmlzaW9uIDY1Njk4KQorKysg
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDgg
KzQxLDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJET01FdmVudExpc3RlbmVyOwog
Y2xhc3MgV2ViRE9NRXZlbnRMaXN0ZW5lclByaXZhdGU7CiBjbGFzcyBXZWJEb2N1bWVudDsKLWNs
YXNzIFdlYkV2ZW50TGlzdGVuZXI7Ci1jbGFzcyBXZWJFdmVudExpc3RlbmVyUHJpdmF0ZTsKIGNs
YXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViTm9kZUxpc3Q7CiAKQEAgLTEwMSw4ICs5OSw2IEBAIHB1
YmxpYzoKICAgICBXRUJLSVRfQVBJIGJvb2wgaXNFbGVtZW50Tm9kZSgpIGNvbnN0OwogICAgIFdF
QktJVF9BUEkgdm9pZCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IFdlYlN0cmluZyYgZXZlbnRUeXBl
LCBXZWJET01FdmVudExpc3RlbmVyKiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKTsKICAgICBX
RUJLSVRfQVBJIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBXZWJTdHJpbmcmIGV2ZW50
VHlwZSwgV2ViRE9NRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSk7Ci0g
ICAgV0VCS0lUX0FQSSB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgV2ViU3RyaW5nJiBldmVu
dFR5cGUsIFdlYkV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyLCBib29sIHVzZUNhcHR1cmUpOwotICAg
IFdFQktJVF9BUEkgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IFdlYlN0cmluZyYgZXZl
bnRUeXBlLCBXZWJFdmVudExpc3RlbmVyKiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKTsKICAg
ICBXRUJLSVRfQVBJIHZvaWQgc2ltdWxhdGVDbGljaygpOwogICAgIFdFQktJVF9BUEkgV2ViTm9k
ZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWUoY29uc3QgV2ViU3RyaW5nJikgY29uc3Q7CiAKSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvRXZlbnRMaXN0ZW5lcldyYXBwZXIuY3BwDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9FdmVudExpc3RlbmVyV3JhcHBlci5jcHAJKHJl
dmlzaW9uIDY1Njk4KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9FdmVudExpc3RlbmVyV3JhcHBl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDggKzM2LDYgQEAKIAogI2luY2x1ZGUgIldlYkRP
TUV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRE9NRXZlbnRMaXN0ZW5lci5oIgotI2luY2x1ZGUgIldl
YkV2ZW50LmgiCi0jaW5jbHVkZSAiV2ViRXZlbnRMaXN0ZW5lci5oIgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtNzEsMzQgKzY5LDQgQEAgdm9pZCBFdmVudExpc3RlbmVyV3JhcHBlcjo6d2Vi
RE9NRXZlbnRMaQogICAgIG1fd2ViRE9NRXZlbnRMaXN0ZW5lciA9IDA7CiB9CiAKLURlcHJlY2F0
ZWRFdmVudExpc3RlbmVyV3JhcHBlcjo6RGVwcmVjYXRlZEV2ZW50TGlzdGVuZXJXcmFwcGVyKFdl
YkV2ZW50TGlzdGVuZXIqIHdlYkV2ZW50TGlzdGVuZXIpCi0gICAgOiBFdmVudExpc3RlbmVyKEV2
ZW50TGlzdGVuZXI6OkpTRXZlbnRMaXN0ZW5lclR5cGUpCi0gICAgLCBtX3dlYkV2ZW50TGlzdGVu
ZXIod2ViRXZlbnRMaXN0ZW5lcikKLXsKLX0KLQotRGVwcmVjYXRlZEV2ZW50TGlzdGVuZXJXcmFw
cGVyOjp+RGVwcmVjYXRlZEV2ZW50TGlzdGVuZXJXcmFwcGVyKCkKLXsKLSAgICBpZiAobV93ZWJF
dmVudExpc3RlbmVyKQotICAgICAgICBtX3dlYkV2ZW50TGlzdGVuZXItPm5vdGlmeUV2ZW50TGlz
dGVuZXJEZWxldGVkKHRoaXMpOwotfQotCi1ib29sIERlcHJlY2F0ZWRFdmVudExpc3RlbmVyV3Jh
cHBlcjo6b3BlcmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lcikKLXsKLSAgICBy
ZXR1cm4gdGhpcyA9PSAmbGlzdGVuZXI7Ci19Ci0KLXZvaWQgRGVwcmVjYXRlZEV2ZW50TGlzdGVu
ZXJXcmFwcGVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBF
dmVudCogZXZlbnQpCi17Ci0gICAgaWYgKCFtX3dlYkV2ZW50TGlzdGVuZXIpCi0gICAgICAgIHJl
dHVybjsKLSAgICBXZWJFdmVudCB3ZWJFdmVudChldmVudCk7Ci0gICAgbV93ZWJFdmVudExpc3Rl
bmVyLT5oYW5kbGVFdmVudCh3ZWJFdmVudCk7Ci19Ci0KLXZvaWQgRGVwcmVjYXRlZEV2ZW50TGlz
dGVuZXJXcmFwcGVyOjp3ZWJFdmVudExpc3RlbmVyRGVsZXRlZCgpCi17Ci0gICAgbV93ZWJFdmVu
dExpc3RlbmVyID0gMDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vc3JjL0V2ZW50TGlzdGVuZXJXcmFwcGVyLmgNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJL
aXQvY2hyb21pdW0vc3JjL0V2ZW50TGlzdGVuZXJXcmFwcGVyLmgJKHJldmlzaW9uIDY1Njk4KQor
KysgV2ViS2l0L2Nocm9taXVtL3NyYy9FdmVudExpc3RlbmVyV3JhcHBlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Miw3ICs0Miw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFdlYkRPTUV2ZW50TGlzdGVuZXI7Ci1jbGFzcyBXZWJFdmVudExp
c3RlbmVyOwogCiAvLyBGSVhNRTogUmVtb3ZlIHRoZSBEZXByZWNhdGVkRXZlbnRMaXN0ZW5lcldy
YXBwZXIgY2xhc3MgYmVsb3cgb25jZSBDaHJvbWl1bQogLy8gc3dpdGNoZWQgdG8gdXNpbmcgV2Vi
RE9NRXZlbnQuCkBAIC02MCwyMSArNTksNiBAQCBwcml2YXRlOgogICAgIFdlYkRPTUV2ZW50TGlz
dGVuZXIqIG1fd2ViRE9NRXZlbnRMaXN0ZW5lcjsKIH07CiAKLWNsYXNzIERlcHJlY2F0ZWRFdmVu
dExpc3RlbmVyV3JhcHBlciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKLXB1YmxpYzoKLSAgICBE
ZXByZWNhdGVkRXZlbnRMaXN0ZW5lcldyYXBwZXIoV2ViRXZlbnRMaXN0ZW5lciopOwotICAgIH5E
ZXByZWNhdGVkRXZlbnRMaXN0ZW5lcldyYXBwZXIoKTsKLQotICAgIHZpcnR1YWwgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IEV2ZW50TGlzdGVuZXImKTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZl
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50Kik7Ci0KLSAgICB2b2lkIHdlYkV2ZW50
TGlzdGVuZXJEZWxldGVkKCk7Ci0KLXByaXZhdGU6Ci0gICAgV2ViRXZlbnRMaXN0ZW5lciogbV93
ZWJFdmVudExpc3RlbmVyOwotfTsKLQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlm
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV2ZW50LmNwcA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXZlbnQuY3BwCShyZXZpc2lvbiA2NTY5OCkKKysrIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIxOSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0g
KgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkV2ZW50LmgiCi0KLSNpbmNs
dWRlICJFdmVudC5oIgotI2luY2x1ZGUgIk5vZGUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViRXZlbnRQcml2YXRlIDogcHVi
bGljIFdlYkNvcmU6OkV2ZW50IHsKLX07Ci0KLXZvaWQgV2ViRXZlbnQ6OnJlc2V0KCkKLXsKLSAg
ICBhc3NpZ24oMCk7Ci19Ci0KLXZvaWQgV2ViRXZlbnQ6OmFzc2lnbihjb25zdCBXZWJFdmVudCYg
b3RoZXIpCi17Ci0gICAgV2ViRXZlbnRQcml2YXRlKiBwID0gY29uc3RfY2FzdDxXZWJFdmVudFBy
aXZhdGUqPihvdGhlci5tX3ByaXZhdGUpOwotICAgIGlmIChwKQotICAgICAgICBwLT5yZWYoKTsK
LSAgICBhc3NpZ24ocCk7Ci19Ci0KLXZvaWQgV2ViRXZlbnQ6OmFzc2lnbihXZWJFdmVudFByaXZh
dGUqIHApCi17Ci0gICAgLy8gcCBpcyBhbHJlYWR5IHJlZidkIGZvciB1cyBieSB0aGUgY2FsbGVy
Ci0gICAgaWYgKG1fcHJpdmF0ZSkKLSAgICAgICAgbV9wcml2YXRlLT5kZXJlZigpOwotICAgIG1f
cHJpdmF0ZSA9IHA7Ci19Ci0KLVdlYkV2ZW50OjpXZWJFdmVudChjb25zdCBXVEY6OlBhc3NSZWZQ
dHI8V2ViQ29yZTo6RXZlbnQ+JiBldmVudCkKLSAgICA6IG1fcHJpdmF0ZShzdGF0aWNfY2FzdDxX
ZWJFdmVudFByaXZhdGUqPihldmVudC5yZWxlYXNlUmVmKCkpKQotewotfQotCi1XZWJTdHJpbmcg
V2ViRXZlbnQ6OnR5cGUoKSBjb25zdAotewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIHJl
dHVybiBtX3ByaXZhdGUtPnR5cGUoKTsKLX0KLQotV2ViTm9kZSBXZWJFdmVudDo6dGFyZ2V0KCkg
Y29uc3QKLXsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKLSAgICByZXR1cm4gV2ViTm9kZShtX3By
aXZhdGUtPnRhcmdldCgpLT50b05vZGUoKSk7Ci19Ci0KLVdlYk5vZGUgV2ViRXZlbnQ6OmN1cnJl
bnRUYXJnZXQoKSBjb25zdAotewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIHJldHVybiBX
ZWJOb2RlKG1fcHJpdmF0ZS0+Y3VycmVudFRhcmdldCgpLT50b05vZGUoKSk7Ci19Ci0KLVdlYkV2
ZW50OjpQaGFzZVR5cGUgV2ViRXZlbnQ6OmV2ZW50UGhhc2UoKSBjb25zdAotewotICAgIEFTU0VS
VChtX3ByaXZhdGUpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJFdmVudDo6UGhhc2VUeXBl
PihtX3ByaXZhdGUtPmV2ZW50UGhhc2UoKSk7Ci19Ci0KLWJvb2wgV2ViRXZlbnQ6OmJ1YmJsZXMo
KSBjb25zdAotewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIHJldHVybiBtX3ByaXZhdGUt
PmJ1YmJsZXMoKTsKLX0KLQotYm9vbCBXZWJFdmVudDo6Y2FuY2VsYWJsZSgpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y2FuY2VsYWJsZSgp
OwotfQotCi1ib29sIFdlYkV2ZW50Ojppc1VJRXZlbnQoKSBjb25zdAotewotICAgIEFTU0VSVCht
X3ByaXZhdGUpOwotICAgIHJldHVybiBtX3ByaXZhdGUtPmlzVUlFdmVudCgpOwotfQotCi1ib29s
IFdlYkV2ZW50Ojppc01vdXNlRXZlbnQoKSBjb25zdAotewotICAgIEFTU0VSVChtX3ByaXZhdGUp
OwotICAgIHJldHVybiBtX3ByaXZhdGUtPmlzTW91c2VFdmVudCgpOwotfQotCi1ib29sIFdlYkV2
ZW50Ojppc011dGF0aW9uRXZlbnQoKSBjb25zdAotewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwot
ICAgIHJldHVybiBtX3ByaXZhdGUtPmlzTXV0YXRpb25FdmVudCgpOwotfQotCi1ib29sIFdlYkV2
ZW50Ojppc0tleWJvYXJkRXZlbnQoKSBjb25zdAotewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwot
ICAgIHJldHVybiBtX3ByaXZhdGUtPmlzS2V5Ym9hcmRFdmVudCgpOwotfQotCi1ib29sIFdlYkV2
ZW50Ojppc1RleHRFdmVudCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAg
cmV0dXJuIG1fcHJpdmF0ZS0+aXNUZXh0RXZlbnQoKTsKLX0KLQotYm9vbCBXZWJFdmVudDo6aXND
b21wb3NpdGlvbkV2ZW50KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKLSAgICBy
ZXR1cm4gbV9wcml2YXRlLT5pc0NvbXBvc2l0aW9uRXZlbnQoKTsKLX0KLQotYm9vbCBXZWJFdmVu
dDo6aXNEcmFnRXZlbnQoKSBjb25zdAotewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIHJl
dHVybiBtX3ByaXZhdGUtPmlzRHJhZ0V2ZW50KCk7Ci19Ci0KLWJvb2wgV2ViRXZlbnQ6OmlzQ2xp
cGJvYXJkRXZlbnQoKSBjb25zdAotewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIHJldHVy
biBtX3ByaXZhdGUtPmlzQ2xpcGJvYXJkRXZlbnQoKTsKLX0KLQotYm9vbCBXZWJFdmVudDo6aXNN
ZXNzYWdlRXZlbnQoKSBjb25zdAotewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIHJldHVy
biBtX3ByaXZhdGUtPmlzTWVzc2FnZUV2ZW50KCk7Ci19Ci0KLWJvb2wgV2ViRXZlbnQ6OmlzV2hl
ZWxFdmVudCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAgcmV0dXJuIG1f
cHJpdmF0ZS0+aXNXaGVlbEV2ZW50KCk7Ci19Ci0KLWJvb2wgV2ViRXZlbnQ6OmlzQmVmb3JlVGV4
dEluc2VydGVkRXZlbnQoKSBjb25zdAotewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIHJl
dHVybiBtX3ByaXZhdGUtPmlzQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoKTsKLX0KLQotYm9vbCBX
ZWJFdmVudDo6aXNPdmVyZmxvd0V2ZW50KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9wcml2YXRl
KTsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5pc092ZXJmbG93RXZlbnQoKTsKLX0KLQotYm9vbCBX
ZWJFdmVudDo6aXNQYWdlVHJhbnNpdGlvbkV2ZW50KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9w
cml2YXRlKTsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5pc1BhZ2VUcmFuc2l0aW9uRXZlbnQoKTsK
LX0KLQotYm9vbCBXZWJFdmVudDo6aXNQb3BTdGF0ZUV2ZW50KCkgY29uc3QKLXsKLSAgICBBU1NF
UlQobV9wcml2YXRlKTsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5pc1BvcFN0YXRlRXZlbnQoKTsK
LX0KLQotYm9vbCBXZWJFdmVudDo6aXNQcm9ncmVzc0V2ZW50KCkgY29uc3QKLXsKLSAgICBBU1NF
UlQobV9wcml2YXRlKTsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5pc1Byb2dyZXNzRXZlbnQoKTsK
LX0KLQotYm9vbCBXZWJFdmVudDo6aXNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoKSBjb25z
dAotewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIHJldHVybiBtX3ByaXZhdGUtPmlzWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50KCk7Ci19Ci0KLWJvb2wgV2ViRXZlbnQ6OmlzV2ViS2l0
QW5pbWF0aW9uRXZlbnQoKSBjb25zdAotewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIHJl
dHVybiBtX3ByaXZhdGUtPmlzV2ViS2l0QW5pbWF0aW9uRXZlbnQoKTsKLX0KLQotYm9vbCBXZWJF
dmVudDo6aXNXZWJLaXRUcmFuc2l0aW9uRXZlbnQoKSBjb25zdAotewotICAgIEFTU0VSVChtX3By
aXZhdGUpOwotICAgIHJldHVybiBtX3ByaXZhdGUtPmlzV2ViS2l0VHJhbnNpdGlvbkV2ZW50KCk7
Ci19Ci0KLWJvb2wgV2ViRXZlbnQ6OmlzQmVmb3JlTG9hZEV2ZW50KCkgY29uc3QKLXsKLSAgICBB
U1NFUlQobV9wcml2YXRlKTsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5pc0JlZm9yZUxvYWRFdmVu
dCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRXZlbnRMaXN0ZW5lci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkV2ZW50TGlzdGVuZXIuY3BwCShyZXZpc2lvbiA2NTY5OCkKKysrIFdlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRXZlbnRMaXN0ZW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNjQgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoK
LSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudExpc3RlbmVyLmgiCi0K
LSNpbmNsdWRlICJXZWJFdmVudExpc3RlbmVyUHJpdmF0ZS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotV2ViRXZlbnRMaXN0ZW5lcjo6V2ViRXZlbnRMaXN0ZW5lcigpCi0gICAgOiBtX3ByaXZh
dGUobmV3IFdlYkV2ZW50TGlzdGVuZXJQcml2YXRlKHRoaXMpKQotewotfQotCi1XZWJFdmVudExp
c3RlbmVyOjp+V2ViRXZlbnRMaXN0ZW5lcigpCi17Ci0gICAgbV9wcml2YXRlLT53ZWJFdmVudExp
c3RlbmVyRGVsZXRlZCgpOwotICAgIGRlbGV0ZSBtX3ByaXZhdGU7Ci19Ci0KLXZvaWQgV2ViRXZl
bnRMaXN0ZW5lcjo6bm90aWZ5RXZlbnRMaXN0ZW5lckRlbGV0ZWQoRGVwcmVjYXRlZEV2ZW50TGlz
dGVuZXJXcmFwcGVyKiB3cmFwcGVyKQotewotICAgIG1fcHJpdmF0ZS0+ZXZlbnRMaXN0ZW5lckRl
bGV0ZWQod3JhcHBlcik7Ci19Ci0KLURlcHJlY2F0ZWRFdmVudExpc3RlbmVyV3JhcHBlciogV2Vi
RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlRXZlbnRMaXN0ZW5lcldyYXBwZXIoY29uc3QgV2ViU3RyaW5n
JiBldmVudFR5cGUsIGJvb2wgdXNlQ2FwdHVyZSwgTm9kZSogbm9kZSkKLXsKLSAgICByZXR1cm4g
bV9wcml2YXRlLT5jcmVhdGVFdmVudExpc3RlbmVyV3JhcHBlcihldmVudFR5cGUsIHVzZUNhcHR1
cmUsIG5vZGUpOwotfQotCi1EZXByZWNhdGVkRXZlbnRMaXN0ZW5lcldyYXBwZXIqIFdlYkV2ZW50
TGlzdGVuZXI6OmdldEV2ZW50TGlzdGVuZXJXcmFwcGVyKGNvbnN0IFdlYlN0cmluZyYgZXZlbnRU
eXBlLCBib29sIHVzZUNhcHR1cmUsIE5vZGUqIG5vZGUpCi17Ci0gICAgcmV0dXJuIG1fcHJpdmF0
ZS0+Z2V0RXZlbnRMaXN0ZW5lcldyYXBwZXIoZXZlbnRUeXBlLCB1c2VDYXB0dXJlLCBub2RlKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkV2ZW50TGlzdGVuZXJQcml2YXRlLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRXZlbnRMaXN0ZW5lclByaXZhdGUuY3BwCShyZXZpc2lvbiA2NTY5OCkKKysrIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRXZlbnRMaXN0ZW5lclByaXZhdGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDg3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViRXZl
bnRMaXN0ZW5lclByaXZhdGUuaCIKLQotI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJXcmFwcGVyLmgi
Ci0jaW5jbHVkZSAiV2ViRXZlbnRMaXN0ZW5lci5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
V2ViRXZlbnRMaXN0ZW5lclByaXZhdGU6OldlYkV2ZW50TGlzdGVuZXJQcml2YXRlKFdlYkV2ZW50
TGlzdGVuZXIqIHdlYkV2ZW50TGlzdGVuZXIpCi0gICAgOiBtX3dlYkV2ZW50TGlzdGVuZXIod2Vi
RXZlbnRMaXN0ZW5lcikKLXsKLX0KLQotV2ViRXZlbnRMaXN0ZW5lclByaXZhdGU6On5XZWJFdmVu
dExpc3RlbmVyUHJpdmF0ZSgpCi17Ci19Ci0KLURlcHJlY2F0ZWRFdmVudExpc3RlbmVyV3JhcHBl
ciogV2ViRXZlbnRMaXN0ZW5lclByaXZhdGU6OmNyZWF0ZUV2ZW50TGlzdGVuZXJXcmFwcGVyKGNv
bnN0IFdlYlN0cmluZyYgZXZlbnRUeXBlLCBib29sIHVzZUNhcHR1cmUsIE5vZGUqIG5vZGUpCi17
Ci0gICAgRGVwcmVjYXRlZEV2ZW50TGlzdGVuZXJXcmFwcGVyKiBsaXN0ZW5lcldyYXBwZXIgPSBu
ZXcgRGVwcmVjYXRlZEV2ZW50TGlzdGVuZXJXcmFwcGVyKG1fd2ViRXZlbnRMaXN0ZW5lcik7Ci0g
ICAgV2ViRXZlbnRMaXN0ZW5lclByaXZhdGU6Okxpc3RlbmVySW5mbyBsaXN0ZW5lckluZm8oZXZl
bnRUeXBlLCB1c2VDYXB0dXJlLCBsaXN0ZW5lcldyYXBwZXIsIG5vZGUpOwotICAgIG1fbGlzdGVu
ZXJXcmFwcGVycy5hcHBlbmQobGlzdGVuZXJJbmZvKTsKLSAgICByZXR1cm4gbGlzdGVuZXJXcmFw
cGVyOwotfQotCi1EZXByZWNhdGVkRXZlbnRMaXN0ZW5lcldyYXBwZXIqIFdlYkV2ZW50TGlzdGVu
ZXJQcml2YXRlOjpnZXRFdmVudExpc3RlbmVyV3JhcHBlcihjb25zdCBXZWJTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCB1c2VDYXB0dXJlLCBOb2RlKiBub2RlKQotewotICAgIFZlY3RvcjxXZWJFdmVu
dExpc3RlbmVyUHJpdmF0ZTo6TGlzdGVuZXJJbmZvPjo6Y29uc3RfaXRlcmF0b3IgaXRlcjsKLSAg
ICBmb3IgKGl0ZXIgPSBtX2xpc3RlbmVyV3JhcHBlcnMuYmVnaW4oKTsgaXRlciAhPSBtX2xpc3Rl
bmVyV3JhcHBlcnMuZW5kKCk7ICsraXRlcikgewotICAgICAgICBpZiAoaXRlci0+bm9kZSA9PSBu
b2RlKQotICAgICAgICAgIHJldHVybiBpdGVyLT5ldmVudExpc3RlbmVyV3JhcHBlcjsKLSAgICB9
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgV2Vi
RXZlbnRMaXN0ZW5lclByaXZhdGU6OndlYkV2ZW50TGlzdGVuZXJEZWxldGVkKCkKLXsKLSAgICAv
LyBOb3RpZmllcyBhbGwgV2ViRXZlbnRMaXN0ZW5lcldyYXBwZXJzIHRoYXQgd2UgYXJlIGdvaW5n
IGF3YXkgc28gdGhleSBjYW4KLSAgICAvLyBpbnZhbGlkYXRlIHRoZWlyIHBvaW50ZXIgdG8gdXMu
Ci0gICAgVmVjdG9yPFdlYkV2ZW50TGlzdGVuZXJQcml2YXRlOjpMaXN0ZW5lckluZm8+Ojpjb25z
dF9pdGVyYXRvciBpdGVyOwotICAgIGZvciAoaXRlciA9IG1fbGlzdGVuZXJXcmFwcGVycy5iZWdp
bigpOyBpdGVyICE9IG1fbGlzdGVuZXJXcmFwcGVycy5lbmQoKTsgKytpdGVyKQotICAgICAgICBp
dGVyLT5ldmVudExpc3RlbmVyV3JhcHBlci0+d2ViRXZlbnRMaXN0ZW5lckRlbGV0ZWQoKTsKLX0K
LQotdm9pZCBXZWJFdmVudExpc3RlbmVyUHJpdmF0ZTo6ZXZlbnRMaXN0ZW5lckRlbGV0ZWQoRGVw
cmVjYXRlZEV2ZW50TGlzdGVuZXJXcmFwcGVyKiBldmVudExpc3RlbmVyKQotewotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbV9saXN0ZW5lcldyYXBwZXJzLnNpemUoKTsgKytpKSB7Ci0gICAg
ICAgIGlmIChtX2xpc3RlbmVyV3JhcHBlcnNbaV0uZXZlbnRMaXN0ZW5lcldyYXBwZXIgPT0gZXZl
bnRMaXN0ZW5lcikgewotICAgICAgICAgICAgbV9saXN0ZW5lcldyYXBwZXJzLnJlbW92ZShpKTsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkV2ZW50TGlzdGVuZXJQcml2YXRlLmgNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkV2ZW50TGlzdGVuZXJQcml2YXRlLmgJKHJldmlzaW9uIDY1Njk4KQor
KysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFdmVudExpc3RlbmVyUHJpdmF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYkV2ZW50TGlzdGVuZXJQcml2YXRlX2gK
LSNkZWZpbmUgV2ViRXZlbnRMaXN0ZW5lclByaXZhdGVfaAotCi0jaW5jbHVkZSAiV2ViU3RyaW5n
LmgiCi0KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNs
YXNzIE5vZGU7Ci19Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotY2xhc3MgRGVwcmVjYXRlZEV2ZW50TGlzdGVuZXJXcmFwcGVyOwotY2xhc3MgV2Vi
RXZlbnRMaXN0ZW5lcjsKLQotY2xhc3MgV2ViRXZlbnRMaXN0ZW5lclByaXZhdGUgewotcHVibGlj
OgotICAgIFdlYkV2ZW50TGlzdGVuZXJQcml2YXRlKFdlYkV2ZW50TGlzdGVuZXIqIHdlYkV2ZW50
TGlzdGVuZXIpOwotICAgIH5XZWJFdmVudExpc3RlbmVyUHJpdmF0ZSgpOwotCi0gICAgRGVwcmVj
YXRlZEV2ZW50TGlzdGVuZXJXcmFwcGVyKiBjcmVhdGVFdmVudExpc3RlbmVyV3JhcHBlcigKLSAg
ICAgICAgY29uc3QgV2ViU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgdXNlQ2FwdHVyZSwgTm9kZSog
bm9kZSk7Ci0KLSAgICAvLyBHZXRzIHRoZSBEZXByZWNhdGVkRXZlbnRMaXN0ZW5lcldyYXBwZXIg
Zm9yIGEgc3BlY2lmaWMgbm9kZS4KLSAgICAvLyBVc2VkIGJ5IFdlYk5vZGU6OnJlbW92ZUV2ZW50
TGlzdGVuZXIoKS4KLSAgICBEZXByZWNhdGVkRXZlbnRMaXN0ZW5lcldyYXBwZXIqIGdldEV2ZW50
TGlzdGVuZXJXcmFwcGVyKAotICAgICAgICBjb25zdCBXZWJTdHJpbmcmIGV2ZW50VHlwZSwgYm9v
bCB1c2VDYXB0dXJlLCBOb2RlKiBub2RlKTsKLQotICAgIC8vIENhbGxlZCBieSB0aGUgV2ViRXZl
bnRMaXN0ZW5lciB3aGVuIGl0IGlzIGFib3V0IHRvIGJlIGRlbGV0ZWQuCi0gICAgdm9pZCB3ZWJF
dmVudExpc3RlbmVyRGVsZXRlZCgpOwotCi0gICAgLy8gQ2FsbGVkIGJ5IHRoZSBEZXByZWNhdGVk
RXZlbnRMaXN0ZW5lcldyYXBwZXIgd2hlbiBpdCBpcyBhYm91dCB0byBiZSBkZWxldGVkLgotICAg
IHZvaWQgZXZlbnRMaXN0ZW5lckRlbGV0ZWQoRGVwcmVjYXRlZEV2ZW50TGlzdGVuZXJXcmFwcGVy
KiBldmVudExpc3RlbmVyKTsKLQotICAgIHN0cnVjdCBMaXN0ZW5lckluZm8gewotICAgICAgICBM
aXN0ZW5lckluZm8oY29uc3QgV2ViU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgdXNlQ2FwdHVyZSwK
LSAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0ZWRFdmVudExpc3RlbmVyV3JhcHBlciogZXZl
bnRMaXN0ZW5lcldyYXBwZXIsCi0gICAgICAgICAgICAgICAgICAgICBOb2RlKiBub2RlKQotICAg
ICAgICAgICAgOiBldmVudFR5cGUoZXZlbnRUeXBlKQotICAgICAgICAgICAgLCB1c2VDYXB0dXJl
KHVzZUNhcHR1cmUpCi0gICAgICAgICAgICAsIGV2ZW50TGlzdGVuZXJXcmFwcGVyKGV2ZW50TGlz
dGVuZXJXcmFwcGVyKQotICAgICAgICAgICAgLCBub2RlKG5vZGUpCi0gICAgICAgIHsKLSAgICAg
ICAgfQotCi0gICAgICAgIFdlYlN0cmluZyBldmVudFR5cGU7Ci0gICAgICAgIGJvb2wgdXNlQ2Fw
dHVyZTsKLSAgICAgICAgRGVwcmVjYXRlZEV2ZW50TGlzdGVuZXJXcmFwcGVyKiBldmVudExpc3Rl
bmVyV3JhcHBlcjsKLSAgICAgICAgTm9kZSogbm9kZTsKLSAgICB9OwotCi1wcml2YXRlOgotICAg
IFdlYkV2ZW50TGlzdGVuZXIqIG1fd2ViRXZlbnRMaXN0ZW5lcjsKLQotICAgIC8vIFdlIGtlZXAg
YSBsaXN0IG9mIHRoZSB3cmFwcGVyIGZvciB0aGUgV2ViS2l0IEV2ZW50TGlzdGVuZXIsIGl0IGlz
IG5lZWRlZAotICAgIC8vIHRvIGltcGxlbWVudCBXZWJOb2RlOjpyZW1vdmVFdmVudExpc3RlbmVy
KCkuCi0gICAgVmVjdG9yPExpc3RlbmVySW5mbz4gbV9saXN0ZW5lcldyYXBwZXJzOwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJOb2RlLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm9k
ZS5jcHAJKHJldmlzaW9uIDY1Njk4KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJOb2RlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDEsOCArNDEsNiBAQAogI2luY2x1ZGUgIldlYkRPTUV2ZW50
LmgiCiAjaW5jbHVkZSAiV2ViRE9NRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldlYkRvY3Vt
ZW50LmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKLSNpbmNsdWRlICJXZWJFdmVudExpc3RlbmVy
LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCiAjaW5jbHVkZSAiV2ViTm9kZUxpc3QuaCIK
ICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKQEAgLTE2NywyNCArMTY1LDYgQEAgdm9pZCBXZWJOb2Rl
OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0CiAgICAgICAgIGxpc3RlbmVyLT5nZXRFdmVudExp
c3RlbmVyV3JhcHBlcihldmVudFR5cGUsIHVzZUNhcHR1cmUsIG1fcHJpdmF0ZS5nZXQoKSk7CiAg
ICAgbV9wcml2YXRlLT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXJXcmFw
cGVyLCB1c2VDYXB0dXJlKTsKICAgICAvLyBsaXN0ZW5lcldyYXBwZXIgaXMgbm93IGRlbGV0ZWQu
Ci19Ci0KLXZvaWQgV2ViTm9kZTo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBXZWJTdHJpbmcmIGV2
ZW50VHlwZSwgV2ViRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSkKLXsK
LSAgICBEZXByZWNhdGVkRXZlbnRMaXN0ZW5lcldyYXBwZXIqIGxpc3RlbmVyV3JhcHBlciA9Ci0g
ICAgICAgIGxpc3RlbmVyLT5jcmVhdGVFdmVudExpc3RlbmVyV3JhcHBlcihldmVudFR5cGUsIHVz
ZUNhcHR1cmUsIG1fcHJpdmF0ZS5nZXQoKSk7Ci0gICAgLy8gVGhlIGxpc3RlbmVyV3JhcHBlciBp
cyBvbmx5IHJlZmVyZW5jZWQgYnkgdGhlIGFjdHVhbCBOb2RlLiAgT25jZSBpdCBnb2VzCi0gICAg
Ly8gYXdheSwgdGhlIHdyYXBwZXIgbm90aWZpZXMgdGhlIFdlYkV2ZW50TGlzdGVuZXIgc28gaXQg
Y2FuIGNsZWFyIGl0cwotICAgIC8vIHBvaW50ZXIgdG8gaXQuCi0gICAgbV9wcml2YXRlLT5hZGRF
dmVudExpc3RlbmVyKGV2ZW50VHlwZSwgYWRvcHRSZWYobGlzdGVuZXJXcmFwcGVyKSwgdXNlQ2Fw
dHVyZSk7Ci19Ci0KLXZvaWQgV2ViTm9kZTo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBXZWJT
dHJpbmcmIGV2ZW50VHlwZSwgV2ViRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIsIGJvb2wgdXNlQ2Fw
dHVyZSkKLXsKLSAgICBEZXByZWNhdGVkRXZlbnRMaXN0ZW5lcldyYXBwZXIqIGxpc3RlbmVyV3Jh
cHBlciA9Ci0gICAgICAgIGxpc3RlbmVyLT5nZXRFdmVudExpc3RlbmVyV3JhcHBlcihldmVudFR5
cGUsIHVzZUNhcHR1cmUsIG1fcHJpdmF0ZS5nZXQoKSk7Ci0gICAgbV9wcml2YXRlLT5yZW1vdmVF
dmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXJXcmFwcGVyLCB1c2VDYXB0dXJlKTsKLSAg
ICAvLyBsaXN0ZW5lcldyYXBwZXIgaXMgbm93IGRlbGV0ZWQuCiB9CiAKIHZvaWQgV2ViTm9kZTo6
c2ltdWxhdGVDbGljaygpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>