<?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>139625</bug_id>
          
          <creation_ts>2014-12-14 02:49:01 -0800</creation_ts>
          <short_desc>Event construction helpers should return Ref instead of PassRefPtr.</short_desc>
          <delta_ts>2014-12-14 04:22:54 -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>UI Events</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1055486</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-14 02:49:01 -0800</bug_when>
    <thetext>We should change all FooEvent::create*() functions to return Ref instead of PassRefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055490</commentid>
    <comment_count>1</comment_count>
      <attachid>243266</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-14 03:06:38 -0800</bug_when>
    <thetext>Created attachment 243266
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055493</commentid>
    <comment_count>2</comment_count>
      <attachid>243266</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-14 04:22:50 -0800</bug_when>
    <thetext>Comment on attachment 243266
Patch

Clearing flags on attachment: 243266

Committed r177264: &lt;http://trac.webkit.org/changeset/177264&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055494</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-14 04:22:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243266</attachid>
            <date>2014-12-14 03:06:38 -0800</date>
            <delta_ts>2014-12-14 04:22:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139625.diff</filename>
            <type>text/plain</type>
            <size>87061</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1MDJhZjJkLi45ZjQxNTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTEy
IEBACiAyMDE0LTEyLTE0ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAorICAg
ICAgICBFdmVudCBjb25zdHJ1Y3Rpb24gaGVscGVycyBzaG91bGQgcmV0dXJuIFJlZiBpbnN0ZWFk
IG9mIFBhc3NSZWZQdHIuCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzk2MjU+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIGFs
bCB0aGUgRm9vRXZlbnQ6OmNyZWF0ZSgpIGNvbnN0cnVjdGlvbiBoZWxwZXJzIHRvIHJldHVybiBS
ZWY8Rm9vRXZlbnQ+CisgICAgICAgIGluc3RlYWQgb2YgUGFzc1JlZlB0cjxGb29FdmVudD4uCisK
KyAgICAgICAgVGhpcyBhbGxvd3MgdGhlIGNvbXBpbGVyIHRvIG9taXQgbnVsbCBjaGVja3MgYXQg
ZWFjaCBjYWxsIHNpdGUsIHNpbmNlIHdlIGtub3cKKyAgICAgICAgdGhhdCB0aGVzZSBmdW5jdGlv
bnMgYWx3YXlzIHJldHVybiB2YWxpZCBvYmplY3RzLgorCisgICAgICAgICogTW9kdWxlcy9haXJw
bGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleU1lc3NhZ2VFdmVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlNZXNzYWdlRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAg
ICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleU5lZWRlZEV2ZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUtleU5lZWRlZEV2ZW50OjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVs
ZXMvZ2FtZXBhZC9HYW1lcGFkRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRFdmVu
dDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdl
RXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlZlcnNpb25DaGFuZ2VFdmVudDo6Y3JlYXRl
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGlldWkvVUlSZXF1ZXN0RXZlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VUlSZXF1ZXN0RXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9p
bmRpZXVpL1VJUmVxdWVzdEV2ZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtRXZlbnQ6
OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50
Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja0V2ZW50OjpjcmVhdGUpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50Lmg6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GVG9uZUNoYW5nZUV2ZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQ6OmNyZWF0ZSk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GVG9uZUNoYW5nZUV2ZW50Lmg6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50Lmg6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSVENJY2VDYW5kaWRhdGVFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZUV2ZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhl
c2lzRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhl
c2lzRXZlbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUHJvY2Vzc2luZ0V2ZW50OjpjcmVhdGUp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQ6OmNyZWF0ZSk6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5oOgorICAgICAgICAo
V2ViQ29yZTo6Q2xvc2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vQW5pbWF0aW9uRXZl
bnQuaDoKKyAgICAgICAgKiBkb20vQXV0b2NvbXBsZXRlRXJyb3JFdmVudC5oOgorICAgICAgICAq
IGRvbS9CZWZvcmVMb2FkRXZlbnQuaDoKKyAgICAgICAgKiBkb20vQmVmb3JlVGV4dEluc2VydGVk
RXZlbnQuaDoKKyAgICAgICAgKiBkb20vQmVmb3JlVW5sb2FkRXZlbnQuaDoKKyAgICAgICAgKiBk
b20vQ2xpcGJvYXJkRXZlbnQuaDoKKyAgICAgICAgKiBkb20vQ29tcG9zaXRpb25FdmVudC5oOgor
ICAgICAgICAqIGRvbS9DdXN0b21FdmVudC5oOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25F
dmVudC5oOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50Lmg6CisgICAgICAg
ICogZG9tL0Vycm9yRXZlbnQuaDoKKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9Gb2N1c0V2ZW50Lmg6CisgICAg
ICAgICogZG9tL0hhc2hDaGFuZ2VFdmVudC5oOgorICAgICAgICAqIGRvbS9LZXlib2FyZEV2ZW50
Lmg6CisgICAgICAgICogZG9tL01lc3NhZ2VFdmVudC5oOgorICAgICAgICAqIGRvbS9Nb3VzZUV2
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTaW11bGF0ZWRNb3VzZUV2ZW50OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9N
b3VzZUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZUV2ZW50OjpjcmVhdGUpOgorICAg
ICAgICAqIGRvbS9NdXRhdGlvbkV2ZW50Lmg6CisgICAgICAgICogZG9tL092ZXJmbG93RXZlbnQu
aDoKKyAgICAgICAgKiBkb20vUGFnZVRyYW5zaXRpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9Q
b3BTdGF0ZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcFN0YXRlRXZlbnQ6OmNyZWF0
ZSk6CisgICAgICAgICogZG9tL1BvcFN0YXRlRXZlbnQuaDoKKyAgICAgICAgKiBkb20vUHJvZ3Jl
c3NFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBkb20vVGV4dEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRFdmVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRFdmVudDo6Y3JlYXRlRm9yUGxhaW5UZXh0
UGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEV2ZW50OjpjcmVhdGVGb3JGcmFnbWVudFBh
c3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRFdmVudDo6Y3JlYXRlRm9yRHJvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0RXZlbnQ6OmNyZWF0ZUZvckRpY3RhdGlvbik6CisgICAgICAgICog
ZG9tL1RleHRFdmVudC5oOgorICAgICAgICAqIGRvbS9Ub3VjaEV2ZW50Lmg6CisgICAgICAgICog
ZG9tL1RyYW5zaXRpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9VSUV2ZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpVSUV2ZW50OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9XZWJLaXRBbmltYXRp
b25FdmVudC5oOgorICAgICAgICAqIGRvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaDoKKyAgICAg
ICAgKiBkb20vV2hlZWxFdmVudC5oOgorICAgICAgICAqIGh0bWwvTWVkaWFLZXlFdmVudC5oOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50Lmg6CisgICAgICAgICogaHRt
bC90cmFjay9UcmFja0V2ZW50Lmg6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUV2ZW50OjpjcmVhdGUpOgorICAgICAgICAqIHN0
b3JhZ2UvU3RvcmFnZUV2ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1pvb21FdmVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHWm9vbUV2ZW50OjpjcmVhdGUpOgorICAgICAgICAqIHhtbC9YTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKToKKworMjAxNC0xMi0xNCAgQW5kcmVhcyBLbGluZyAg
PGFrbGluZ0BhcHBsZS5jb20+CisKICAgICAgICAgRml4IGJ1aWxkIGV2ZW4gbW9yZS4gTm90IGEg
c3Ryb25nIHBlcmZvcm1hbmNlIGhlcmUuCiAKICAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9G
b250LmNwcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJL
aXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5oCmluZGV4
IDQ5M2JkNjYuLmVjZTNkZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWly
cGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5
RXZlbnQuaApAQCAtNDQsMTkgKzQ0LDE5IEBAIGNsYXNzIFdlYktpdFBsYXliYWNrVGFyZ2V0QXZh
aWxhYmlsaXR5RXZlbnQgOiBwdWJsaWMgRXZlbnQgewogcHVibGljOgogICAgIH5XZWJLaXRQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50KCkgeyB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50PiBjcmVhdGUoKQorICAgIHN0
YXRpYyBSZWY8V2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudD4gY3JlYXRlKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0UGxheWJhY2tUYXJnZXRB
dmFpbGFiaWxpdHlFdmVudCk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYktpdFBs
YXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFdlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBhdmFpbGFibGUpCisgICAgc3RhdGljIFJl
ZjxXZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50PiBjcmVhdGUoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgYXZhaWxhYmxlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50KGV2
ZW50VHlwZSwgYXZhaWxhYmxlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYktp
dFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQoZXZlbnRUeXBlLCBhdmFpbGFibGUpKTsK
ICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRQbGF5YmFja1RhcmdldEF2YWls
YWJpbGl0eUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0
IFdlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnRJbml0JiBpbml0aWFsaXplcikK
KyAgICBzdGF0aWMgUmVmPFdlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQ+IGNy
ZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgV2ViS2l0UGxheWJhY2tU
YXJnZXRBdmFpbGFiaWxpdHlFdmVudEluaXQmIGluaXRpYWxpemVyKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50
KGV2ZW50VHlwZSwgaW5pdGlhbGl6ZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudChldmVudFR5cGUsIGluaXRpYWxp
emVyKSk7CiAgICAgfQogCiAgICAgU3RyaW5nIGF2YWlsYWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJu
IG1fYXZhaWxhYmlsaXR5OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5TWVzc2FnZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5TWVzc2FnZUV2ZW50LmgKaW5kZXggYWMzNTIwMy4u
YmY1ODZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9NZWRpYUtleU1lc3NhZ2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvTWVkaWFLZXlNZXNzYWdlRXZlbnQuaApAQCAtNDUsMTQgKzQ1LDE0IEBAIGNs
YXNzIE1lZGlhS2V5TWVzc2FnZUV2ZW50IDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5NZWRpYUtleU1lc3NhZ2VFdmVudCgpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8
TWVkaWFLZXlNZXNzYWdlRXZlbnQ+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxNZWRpYUtleU1l
c3NhZ2VFdmVudD4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
TWVkaWFLZXlNZXNzYWdlRXZlbnQpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRp
YUtleU1lc3NhZ2VFdmVudCk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFL
ZXlNZXNzYWdlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IE1l
ZGlhS2V5TWVzc2FnZUV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCisgICAgc3RhdGljIFJlZjxNZWRp
YUtleU1lc3NhZ2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3Qg
TWVkaWFLZXlNZXNzYWdlRXZlbnRJbml0JiBpbml0aWFsaXplcikKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgTWVkaWFLZXlNZXNzYWdlRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIp
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFLZXlNZXNzYWdlRXZlbnQodHlw
ZSwgaW5pdGlhbGl6ZXIpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2
ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5TmVlZGVkRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlOZWVkZWRFdmVudC5oCmluZGV4
IGE5OGU5MTguLjg4MDZiYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvTWVkaWFLZXlOZWVkZWRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlOZWVkZWRFdmVudC5oCkBAIC00MywxNCArNDMs
MTQgQEAgY2xhc3MgTWVkaWFLZXlOZWVkZWRFdmVudCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6
CiAgICAgdmlydHVhbCB+TWVkaWFLZXlOZWVkZWRFdmVudCgpOwogCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8TWVkaWFLZXlOZWVkZWRFdmVudD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPE1lZGlh
S2V5TmVlZGVkRXZlbnQ+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IE1lZGlhS2V5TmVlZGVkRXZlbnQpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBN
ZWRpYUtleU5lZWRlZEV2ZW50KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRp
YUtleU5lZWRlZEV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBN
ZWRpYUtleU5lZWRlZEV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCisgICAgc3RhdGljIFJlZjxNZWRp
YUtleU5lZWRlZEV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBN
ZWRpYUtleU5lZWRlZEV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE1lZGlhS2V5TmVlZGVkRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFLZXlOZWVkZWRFdmVudCh0eXBlLCBp
bml0aWFsaXplcikpOwogICAgIH0KIAogICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJ
bnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2FtZXBhZC9HYW1lcGFkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Ft
ZXBhZC9HYW1lcGFkRXZlbnQuaAppbmRleCAxNDJkMmU0Li44MWViNDZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZEV2ZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5oCkBAIC00NSwxOSArNDUsMTkg
QEAgY2xhc3MgR2FtZXBhZEV2ZW50IDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKICAgICB+R2Ft
ZXBhZEV2ZW50KCkgeyB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHYW1lcGFkRXZlbnQ+IGNy
ZWF0ZSgpCisgICAgc3RhdGljIFJlZjxHYW1lcGFkRXZlbnQ+IGNyZWF0ZSgpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdhbWVwYWRFdmVudCk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEdhbWVwYWRFdmVudCk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8R2FtZXBhZEV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEdh
bWVwYWQmIGdhbWVwYWQpCisgICAgc3RhdGljIFJlZjxHYW1lcGFkRXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgR2FtZXBhZCYgZ2FtZXBhZCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2FtZXBhZEV2ZW50KGV2ZW50VHlwZSwgZ2FtZXBhZCkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHYW1lcGFkRXZlbnQoZXZlbnRUeXBlLCBn
YW1lcGFkKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8R2FtZXBhZEV2ZW50PiBj
cmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IEdhbWVwYWRFdmVudElu
aXQmIGluaXRpYWxpemVyKQorICAgIHN0YXRpYyBSZWY8R2FtZXBhZEV2ZW50PiBjcmVhdGUoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IEdhbWVwYWRFdmVudEluaXQmIGluaXRp
YWxpemVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHYW1lcGFkRXZlbnQo
ZXZlbnRUeXBlLCBpbml0aWFsaXplcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBH
YW1lcGFkRXZlbnQoZXZlbnRUeXBlLCBpbml0aWFsaXplcikpOwogICAgIH0KIAogICAgIEdhbWVw
YWQqIGdhbWVwYWQoKSBjb25zdCB7IHJldHVybiBtX2dhbWVwYWQuZ2V0KCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVu
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2
ZW50LmgKaW5kZXggYzhkMjAwOC4uMWIyZGQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmgKQEAgLTM4LDkg
KzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJREJWZXJzaW9uQ2hhbmdlRXZl
bnQgOiBwdWJsaWMgRXZlbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlZl
cnNpb25DaGFuZ2VFdmVudD4gY3JlYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBvbGRWZXJzaW9uID0g
MCwgdW5zaWduZWQgbG9uZyBsb25nIG5ld1ZlcnNpb24gPSAwLCBJbmRleGVkREI6OlZlcnNpb25O
dWxsbmVzcyBuZXdWZXJzaW9uTnVsbG5lc3MgPSBJbmRleGVkREI6OlZlcnNpb25OdWxsbmVzczo6
TnVsbCwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUgPSBBdG9taWNTdHJpbmcoKSkKKyAg
ICBzdGF0aWMgUmVmPElEQlZlcnNpb25DaGFuZ2VFdmVudD4gY3JlYXRlKHVuc2lnbmVkIGxvbmcg
bG9uZyBvbGRWZXJzaW9uID0gMCwgdW5zaWduZWQgbG9uZyBsb25nIG5ld1ZlcnNpb24gPSAwLCBJ
bmRleGVkREI6OlZlcnNpb25OdWxsbmVzcyBuZXdWZXJzaW9uTnVsbG5lc3MgPSBJbmRleGVkREI6
OlZlcnNpb25OdWxsbmVzczo6TnVsbCwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUgPSBB
dG9taWNTdHJpbmcoKSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCVmVy
c2lvbkNoYW5nZUV2ZW50KG9sZFZlcnNpb24sIG5ld1ZlcnNpb24sIG5ld1ZlcnNpb25OdWxsbmVz
cywgZXZlbnRUeXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQlZlcnNpb25D
aGFuZ2VFdmVudChvbGRWZXJzaW9uLCBuZXdWZXJzaW9uLCBuZXdWZXJzaW9uTnVsbG5lc3MsIGV2
ZW50VHlwZSkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfklEQlZlcnNpb25DaGFuZ2VFdmVudCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kaWV1aS9VSVJlcXVlc3RFdmVudC5j
cHAKaW5kZXggYzE5ZmViMC4uYTRjMWVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGlldWkvVUlSZXF1ZXN0RXZlbnQuY3BwCkBAIC0zNiwxOSArMzYsMTkgQEAgVUlSZXF1
ZXN0RXZlbnRJbml0OjpVSVJlcXVlc3RFdmVudEluaXQoKQogewogfQogICAgIAotUGFzc1JlZlB0
cjxVSVJlcXVlc3RFdmVudD4gVUlSZXF1ZXN0RXZlbnQ6OmNyZWF0ZSgpCitSZWY8VUlSZXF1ZXN0
RXZlbnQ+IFVJUmVxdWVzdEV2ZW50OjpjcmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVUlSZXF1ZXN0RXZlbnQpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVJUmVxdWVzdEV2
ZW50KTsKIH0KICAgICAKLVBhc3NSZWZQdHI8VUlSZXF1ZXN0RXZlbnQ+IFVJUmVxdWVzdEV2ZW50
OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBVSVJlcXVlc3RFdmVudElu
aXQmIGluaXRpYWxpemVyKQorUmVmPFVJUmVxdWVzdEV2ZW50PiBVSVJlcXVlc3RFdmVudDo6Y3Jl
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgVUlSZXF1ZXN0RXZlbnRJbml0JiBp
bml0aWFsaXplcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVJUmVxdWVzdEV2ZW50KHR5
cGUsIGluaXRpYWxpemVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVUlSZXF1ZXN0RXZl
bnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKIH0KIAotUGFzc1JlZlB0cjxVSVJlcXVlc3RFdmVudD4g
VUlSZXF1ZXN0RXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgYnVi
YmxlcywgYm9vbCBjYW5jZWxhYmxlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywgaW50
IGRldGFpbCwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVjZWl2ZXIpCitSZWY8VUlSZXF1ZXN0
RXZlbnQ+IFVJUmVxdWVzdEV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBi
b29sIGJ1YmJsZXMsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZp
ZXcsIGludCBkZXRhaWwsIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlY2VpdmVyKQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgVUlSZXF1ZXN0RXZlbnQodHlwZSwgYnViYmxlcywgY2FuY2Vs
YWJsZSwgdmlldywgZGV0YWlsLCByZWNlaXZlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFVJUmVxdWVzdEV2ZW50KHR5cGUsIGJ1YmJsZXMsIGNhbmNlbGFibGUsIHZpZXcsIGRldGFpbCwg
cmVjZWl2ZXIpKTsKIH0KIAogVUlSZXF1ZXN0RXZlbnQ6OlVJUmVxdWVzdEV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgY29uc3QgVUlSZXF1ZXN0RXZlbnRJbml0JiBpbml0aWFsaXplcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kaWV1aS9VSVJlcXVlc3RFdmVu
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmgKaW5k
ZXggZDgzYWU0ZS4uN2FkYzRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRpZXVpL1VJUmVxdWVzdEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRp
ZXVpL1VJUmVxdWVzdEV2ZW50LmgKQEAgLTQxLDEwICs0MSwxMCBAQCBzdHJ1Y3QgVUlSZXF1ZXN0
RXZlbnRJbml0IDogcHVibGljIFVJRXZlbnRJbml0IHsKIAogY2xhc3MgVUlSZXF1ZXN0RXZlbnQg
OiBwdWJsaWMgVUlFdmVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VUlSZXF1
ZXN0RXZlbnQ+IGNyZWF0ZSgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVJUmVxdWVzdEV2ZW50
PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGJ1YmJsZXMsIGJvb2wgY2Fu
Y2VsYWJsZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBpbnQgZGV0YWlsLCBQYXNzUmVmUHRy
PEV2ZW50VGFyZ2V0PiByZWNlaXZlcik7CisgICAgc3RhdGljIFJlZjxVSVJlcXVlc3RFdmVudD4g
Y3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxVSVJlcXVlc3RFdmVudD4gY3JlYXRlKGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQ
dHI8QWJzdHJhY3RWaWV3PiwgaW50IGRldGFpbCwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVj
ZWl2ZXIpOwogICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVJUmVxdWVzdEV2ZW50PiBjcmVh
dGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFVJUmVxdWVzdEV2ZW50SW5p
dCYpOworICAgIHN0YXRpYyBSZWY8VUlSZXF1ZXN0RXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgVUlSZXF1ZXN0RXZlbnRJbml0Jik7CiAgICAgCiAgICAg
dmlydHVhbCB+VUlSZXF1ZXN0RXZlbnQoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1FdmVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuY3BwCmluZGV4IDkyZjZi
YjEuLmNiYzAyNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmNwcApAQCAtMzcsMTkgKzM3LDE5IEBAIE1lZGlhU3Ry
ZWFtRXZlbnRJbml0OjpNZWRpYVN0cmVhbUV2ZW50SW5pdCgpCiB7CiB9CiAKLVBhc3NSZWZQdHI8
TWVkaWFTdHJlYW1FdmVudD4gTWVkaWFTdHJlYW1FdmVudDo6Y3JlYXRlKCkKK1JlZjxNZWRpYVN0
cmVhbUV2ZW50PiBNZWRpYVN0cmVhbUV2ZW50OjpjcmVhdGUoKQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgTWVkaWFTdHJlYW1FdmVudCk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVk
aWFTdHJlYW1FdmVudCk7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFTdHJlYW1FdmVudD4gTWVkaWFT
dHJlYW1FdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtKQorUmVm
PE1lZGlhU3RyZWFtRXZlbnQ+IE1lZGlhU3RyZWFtRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW0+IHN0cmVhbSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhU3Ry
ZWFtRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBzdHJlYW0pKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVN0cmVhbUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2Vs
YWJsZSwgc3RyZWFtKSk7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFTdHJlYW1FdmVudD4gTWVkaWFT
dHJlYW1FdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgTWVkaWFT
dHJlYW1FdmVudEluaXQmIGluaXRpYWxpemVyKQorUmVmPE1lZGlhU3RyZWFtRXZlbnQ+IE1lZGlh
U3RyZWFtRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IE1lZGlh
U3RyZWFtRXZlbnRJbml0JiBpbml0aWFsaXplcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IE1lZGlhU3RyZWFtRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBNZWRpYVN0cmVhbUV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CiB9CiAKIE1lZGlh
U3RyZWFtRXZlbnQ6Ok1lZGlhU3RyZWFtRXZlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuaAppbmRleCBiYWQzOTRlLi5i
NjE1MjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtRXZlbnQuaApAQCAtNDMsOSArNDMsOSBAQCBjbGFzcyBNZWRpYVN0cmVhbUV2
ZW50IDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NZWRpYVN0cmVhbUV2
ZW50KCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUV2ZW50PiBjcmVhdGUo
KTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUV2ZW50PiBjcmVhdGUoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtPik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1F
dmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgTWVkaWFTdHJlYW1F
dmVudEluaXQmIGluaXRpYWxpemVyKTsKKyAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtRXZlbnQ+
IGNyZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1FdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbT4pOworICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1FdmVudD4g
Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgTWVkaWFTdHJlYW1FdmVudElu
aXQmIGluaXRpYWxpemVyKTsKIAogICAgIE1lZGlhU3RyZWFtKiBzdHJlYW0oKSBjb25zdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrRXZlbnQuY3BwCmluZGV4IDZkODg0ZmMuLmVmZWJlYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2tFdmVudC5jcHAKQEAgLTM3LDE5ICszNywxOSBAQCBNZWRpYVN0cmVhbVRyYWNrRXZlbnRJ
bml0OjpNZWRpYVN0cmVhbVRyYWNrRXZlbnRJbml0KCkKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrRXZlbnQ+IE1lZGlhU3RyZWFtVHJhY2tFdmVudDo6Y3JlYXRlKCkKK1JlZjxN
ZWRpYVN0cmVhbVRyYWNrRXZlbnQ+IE1lZGlhU3RyZWFtVHJhY2tFdmVudDo6Y3JlYXRlKCkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhU3RyZWFtVHJhY2tFdmVudCk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFTdHJlYW1UcmFja0V2ZW50KTsKIH0KIAotUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrRXZlbnQ+IE1lZGlhU3RyZWFtVHJhY2tFdmVudDo6Y3JlYXRlKGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwg
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiB0cmFjaykKK1JlZjxNZWRpYVN0cmVhbVRyYWNr
RXZlbnQ+IE1lZGlhU3RyZWFtVHJhY2tFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbVRyYWNrPiB0cmFjaykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhU3RyZWFt
VHJhY2tFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHRyYWNrKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFTdHJlYW1UcmFja0V2ZW50KHR5cGUsIGNhbkJ1YmJsZSwg
Y2FuY2VsYWJsZSwgdHJhY2spKTsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrRXZl
bnQ+IE1lZGlhU3RyZWFtVHJhY2tFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgY29uc3QgTWVkaWFTdHJlYW1UcmFja0V2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCitSZWY8TWVk
aWFTdHJlYW1UcmFja0V2ZW50PiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQ6OmNyZWF0ZShjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tFdmVudEluaXQmIGluaXRp
YWxpemVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJlYW1UcmFja0V2ZW50
KHR5cGUsIGluaXRpYWxpemVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFTdHJl
YW1UcmFja0V2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CiB9CiAKIE1lZGlhU3RyZWFtVHJhY2tF
dmVudDo6TWVkaWFTdHJlYW1UcmFja0V2ZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC5oCmluZGV4IGIw
ODE4YWIuLmQ4NzUxNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuaApAQCAtNDQsOSArNDQsOSBAQCBj
bGFzcyBNZWRpYVN0cmVhbVRyYWNrRXZlbnQgOiBwdWJsaWMgRXZlbnQgewogcHVibGljOgogICAg
IHZpcnR1YWwgfk1lZGlhU3RyZWFtVHJhY2tFdmVudCgpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFja0V2ZW50PiBjcmVhdGUoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1U
cmFjaz4pOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tFdmVudD4gY3Jl
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgTWVkaWFTdHJlYW1UcmFja0V2ZW50
SW5pdCYgaW5pdGlhbGl6ZXIpOworICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1UcmFja0V2ZW50
PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtVHJhY2tFdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPik7CisgICAgc3RhdGljIFJlZjxNZWRpYVN0
cmVhbVRyYWNrRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IE1l
ZGlhU3RyZWFtVHJhY2tFdmVudEluaXQmIGluaXRpYWxpemVyKTsKIAogICAgIE1lZGlhU3RyZWFt
VHJhY2sqIHRyYWNrKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlRvbmVDaGFuZ2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZUb25lQ2hhbmdlRXZlbnQuY3BwCmluZGV4IDUy
NmVmMmMuLmNmMzdkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDRFRNRlRvbmVDaGFuZ2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GVG9uZUNoYW5nZUV2ZW50LmNwcApAQCAtMzIsMjAgKzMy
LDIwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxSVENEVE1GVG9uZUNo
YW5nZUV2ZW50PiBSVENEVE1GVG9uZUNoYW5nZUV2ZW50OjpjcmVhdGUoKQorUmVmPFJUQ0RUTUZU
b25lQ2hhbmdlRXZlbnQ+IFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQ6OmNyZWF0ZSgpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBSVENEVE1GVG9uZUNoYW5nZUV2ZW50KTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSVENEVE1GVG9uZUNoYW5nZUV2ZW50KTsKIH0KIAotUGFzc1JlZlB0cjxS
VENEVE1GVG9uZUNoYW5nZUV2ZW50PiBSVENEVE1GVG9uZUNoYW5nZUV2ZW50OjpjcmVhdGUoY29u
c3QgU3RyaW5nJiB0b25lKQorUmVmPFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQ+IFJUQ0RUTUZUb25l
Q2hhbmdlRXZlbnQ6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHRvbmUpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBSVENEVE1GVG9uZUNoYW5nZUV2ZW50KHRvbmUpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBSVENEVE1GVG9uZUNoYW5nZUV2ZW50KHRvbmUpKTsKIH0KIAotUGFzc1JlZlB0
cjxSVENEVE1GVG9uZUNoYW5nZUV2ZW50PiBSVENEVE1GVG9uZUNoYW5nZUV2ZW50OjpjcmVhdGUo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBSVENEVE1GVG9uZUNoYW5nZUV2ZW50SW5p
dCYgaW5pdGlhbGl6ZXIpCitSZWY8UlRDRFRNRlRvbmVDaGFuZ2VFdmVudD4gUlRDRFRNRlRvbmVD
aGFuZ2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgUlRDRFRN
RlRvbmVDaGFuZ2VFdmVudEluaXQmIGluaXRpYWxpemVyKQogewogICAgIEFTU0VSVF9VTlVTRUQo
dHlwZSwgdHlwZSA9PSBldmVudE5hbWVzKCkudG9uZWNoYW5nZUV2ZW50KTsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQoaW5pdGlhbGl6ZXIpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENEVE1GVG9uZUNoYW5nZUV2ZW50KGluaXRpYWxpemVyKSk7
CiB9CiAKIFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQ6OlJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GVG9u
ZUNoYW5nZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RU
TUZUb25lQ2hhbmdlRXZlbnQuaAppbmRleCAwNjkzZGI2Li4wMWYzNmE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZUb25lQ2hhbmdlRXZlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZUb25lQ2hh
bmdlRXZlbnQuaApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBSVENEVE1GVG9uZUNoYW5nZUV2ZW50
IDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SVENEVE1GVG9uZUNoYW5n
ZUV2ZW50KCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENEVE1GVG9uZUNoYW5nZUV2ZW50
PiBjcmVhdGUoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENEVE1GVG9uZUNoYW5nZUV2ZW50
PiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0b25lKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENE
VE1GVG9uZUNoYW5nZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25z
dCBSVENEVE1GVG9uZUNoYW5nZUV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpOworICAgIHN0YXRpYyBS
ZWY8UlRDRFRNRlRvbmVDaGFuZ2VFdmVudD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxSVENE
VE1GVG9uZUNoYW5nZUV2ZW50PiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0b25lKTsKKyAgICBzdGF0
aWMgUmVmPFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcm
IHR5cGUsIGNvbnN0IFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnRJbml0JiBpbml0aWFsaXplcik7CiAK
ICAgICBjb25zdCBTdHJpbmcmIHRvbmUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVudC5jcHAKaW5k
ZXggMTM2NTgxMy4uNjFjOTg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRXZlbnQuY3BwCkBAIC0zMiwxNyArMzIs
MTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFJUQ0RhdGFDaGFubmVs
RXZlbnQ+IFJUQ0RhdGFDaGFubmVsRXZlbnQ6OmNyZWF0ZSgpCitSZWY8UlRDRGF0YUNoYW5uZWxF
dmVudD4gUlRDRGF0YUNoYW5uZWxFdmVudDo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFJUQ0RhdGFDaGFubmVsRXZlbnQpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJU
Q0RhdGFDaGFubmVsRXZlbnQpOwogfQogCi1QYXNzUmVmUHRyPFJUQ0RhdGFDaGFubmVsRXZlbnQ+
IFJUQ0RhdGFDaGFubmVsRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJv
b2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQdHI8UlRDRGF0YUNoYW5uZWw+
IGNoYW5uZWwpCitSZWY8UlRDRGF0YUNoYW5uZWxFdmVudD4gUlRDRGF0YUNoYW5uZWxFdmVudDo6
Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2Fu
Y2VsYWJsZSwgUGFzc1JlZlB0cjxSVENEYXRhQ2hhbm5lbD4gY2hhbm5lbCkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFJUQ0RhdGFDaGFubmVsRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5j
ZWxhYmxlLCBjaGFubmVsKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRGF0YUNoYW5u
ZWxFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIGNoYW5uZWwpKTsKIH0KIAotCiBS
VENEYXRhQ2hhbm5lbEV2ZW50OjpSVENEYXRhQ2hhbm5lbEV2ZW50KCkKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWxFdmVu
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2
ZW50LmgKaW5kZXggNDFiMDAzNi4uYjMyMmMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmgKQEAgLTM3LDgg
KzM3LDggQEAgY2xhc3MgUlRDRGF0YUNoYW5uZWxFdmVudCA6IHB1YmxpYyBFdmVudCB7CiBwdWJs
aWM6CiAgICAgdmlydHVhbCB+UlRDRGF0YUNoYW5uZWxFdmVudCgpOwogCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8UlRDRGF0YUNoYW5uZWxFdmVudD4gY3JlYXRlKCk7Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8UlRDRGF0YUNoYW5uZWxFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxSVENEYXRhQ2hh
bm5lbD4pOworICAgIHN0YXRpYyBSZWY8UlRDRGF0YUNoYW5uZWxFdmVudD4gY3JlYXRlKCk7Cisg
ICAgc3RhdGljIFJlZjxSVENEYXRhQ2hhbm5lbEV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBQYXNzUmVmUHRyPFJU
Q0RhdGFDaGFubmVsPik7CiAKICAgICBSVENEYXRhQ2hhbm5lbCogY2hhbm5lbCgpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNh
bmRpZGF0ZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
SWNlQ2FuZGlkYXRlRXZlbnQuY3BwCmluZGV4IDFjMjhlNTguLjE3OGM1ZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRXZlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlk
YXRlRXZlbnQuY3BwCkBAIC0zMywxNCArMzMsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1QYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZUV2ZW50PiBSVENJY2VDYW5kaWRhdGVFdmVudDo6
Y3JlYXRlKCkKK1JlZjxSVENJY2VDYW5kaWRhdGVFdmVudD4gUlRDSWNlQ2FuZGlkYXRlRXZlbnQ6
OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSVENJY2VDYW5kaWRhdGVFdmVu
dCk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDSWNlQ2FuZGlkYXRlRXZlbnQpOwogfQog
Ci1QYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZUV2ZW50PiBSVENJY2VDYW5kaWRhdGVFdmVudDo6
Y3JlYXRlKGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQdHI8UlRDSWNl
Q2FuZGlkYXRlPiBjYW5kaWRhdGUpCitSZWY8UlRDSWNlQ2FuZGlkYXRlRXZlbnQ+IFJUQ0ljZUNh
bmRpZGF0ZUV2ZW50OjpjcmVhdGUoYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFz
c1JlZlB0cjxSVENJY2VDYW5kaWRhdGU+IGNhbmRpZGF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFJUQ0ljZUNhbmRpZGF0ZUV2ZW50KGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgY2FuZGlk
YXRlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDSWNlQ2FuZGlkYXRlRXZlbnQoY2Fu
QnViYmxlLCBjYW5jZWxhYmxlLCBjYW5kaWRhdGUpKTsKIH0KIAogUlRDSWNlQ2FuZGlkYXRlRXZl
bnQ6OlJUQ0ljZUNhbmRpZGF0ZUV2ZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaAppbmRleCA0NjY2MzY4
Li5kZjkwYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0ljZUNhbmRpZGF0ZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENJY2VDYW5kaWRhdGVFdmVudC5oCkBAIC0zNyw4ICszNyw4IEBAIGNsYXNzIFJU
Q0ljZUNhbmRpZGF0ZUV2ZW50IDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5SVENJY2VDYW5kaWRhdGVFdmVudCgpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDSWNl
Q2FuZGlkYXRlRXZlbnQ+IGNyZWF0ZSgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ0ljZUNh
bmRpZGF0ZUV2ZW50PiBjcmVhdGUoYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFz
c1JlZlB0cjxSVENJY2VDYW5kaWRhdGU+KTsKKyAgICBzdGF0aWMgUmVmPFJUQ0ljZUNhbmRpZGF0
ZUV2ZW50PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVmPFJUQ0ljZUNhbmRpZGF0ZUV2ZW50PiBj
cmVhdGUoYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxSVENJY2VD
YW5kaWRhdGU+KTsKIAogICAgIFJUQ0ljZUNhbmRpZGF0ZSogY2FuZGlkYXRlKCkgY29uc3Q7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNp
c0V2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNp
c0V2ZW50LmNwcAppbmRleCBiNTEwZDgzLi4yZmMzMDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCkBAIC0zMCwx
NCArMzAsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAotUGFzc1JlZlB0cjxTcGVl
Y2hTeW50aGVzaXNFdmVudD4gU3BlZWNoU3ludGhlc2lzRXZlbnQ6OmNyZWF0ZSgpCitSZWY8U3Bl
ZWNoU3ludGhlc2lzRXZlbnQ+IFNwZWVjaFN5bnRoZXNpc0V2ZW50OjpjcmVhdGUoKQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU3BlZWNoU3ludGhlc2lzRXZlbnQoKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU3BlZWNoU3ludGhlc2lzRXZlbnQoKSk7CiB9CiAKLVBhc3NSZWZQdHI8
U3BlZWNoU3ludGhlc2lzRXZlbnQ+IFNwZWVjaFN5bnRoZXNpc0V2ZW50OjpjcmVhdGUoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCB1bnNpZ25lZCBsb25nIGNoYXJJbmRleCwgZmxvYXQgZWxhcHNl
ZFRpbWUsIGNvbnN0IFN0cmluZyYgbmFtZSkKK1JlZjxTcGVlY2hTeW50aGVzaXNFdmVudD4gU3Bl
ZWNoU3ludGhlc2lzRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIHVuc2ln
bmVkIGxvbmcgY2hhckluZGV4LCBmbG9hdCBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBuYW1l
KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlZWNoU3ludGhlc2lzRXZlbnQodHlwZSwg
Y2hhckluZGV4LCBlbGFwc2VkVGltZSwgbmFtZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNwZWVjaFN5bnRoZXNpc0V2ZW50KHR5cGUsIGNoYXJJbmRleCwgZWxhcHNlZFRpbWUsIG5hbWUp
KTsKIH0KIAogU3BlZWNoU3ludGhlc2lzRXZlbnQ6OlNwZWVjaFN5bnRoZXNpc0V2ZW50KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVu
dC5oCmluZGV4IGY5N2E4YjkuLmI1MDk2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaApAQCAtMzUsOCArMzUsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBTcGVlY2hTeW50aGVzaXNFdmVudCA6IHB1
YmxpYyBFdmVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3BlZWNoU3ludGhl
c2lzRXZlbnQ+IGNyZWF0ZSgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwZWVjaFN5bnRoZXNp
c0V2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCB1bnNpZ25lZCBsb25nIGNo
YXJJbmRleCwgZmxvYXQgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgc3Rh
dGljIFJlZjxTcGVlY2hTeW50aGVzaXNFdmVudD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxT
cGVlY2hTeW50aGVzaXNFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgdW5z
aWduZWQgbG9uZyBjaGFySW5kZXgsIGZsb2F0IGVsYXBzZWRUaW1lLCBjb25zdCBTdHJpbmcmIG5h
bWUpOwogICAgIAogICAgIHVuc2lnbmVkIGxvbmcgY2hhckluZGV4KCkgY29uc3QgeyByZXR1cm4g
bV9jaGFySW5kZXg7IH0KICAgICBmbG9hdCBlbGFwc2VkVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZWxhcHNlZFRpbWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudC5jcHAKaW5kZXggYmU4ZmVjZS4uODIzODdjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdF
dmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nl
c3NpbmdFdmVudC5jcHAKQEAgLTMzLDE0ICszMywxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVBhc3NSZWZQdHI8QXVkaW9Qcm9jZXNzaW5nRXZlbnQ+IEF1ZGlvUHJvY2Vzc2luZ0V2ZW50
OjpjcmVhdGUoKQorUmVmPEF1ZGlvUHJvY2Vzc2luZ0V2ZW50PiBBdWRpb1Byb2Nlc3NpbmdFdmVu
dDo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEF1ZGlvUHJvY2Vzc2luZ0V2
ZW50KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1Byb2Nlc3NpbmdFdmVudCk7CiB9
CiAKLVBhc3NSZWZQdHI8QXVkaW9Qcm9jZXNzaW5nRXZlbnQ+IEF1ZGlvUHJvY2Vzc2luZ0V2ZW50
OjpjcmVhdGUoUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gaW5wdXRCdWZmZXIsIFBhc3NSZWZQdHI8
QXVkaW9CdWZmZXI+IG91dHB1dEJ1ZmZlciwgZG91YmxlIHBsYXliYWNrVGltZSkKK1JlZjxBdWRp
b1Byb2Nlc3NpbmdFdmVudD4gQXVkaW9Qcm9jZXNzaW5nRXZlbnQ6OmNyZWF0ZShQYXNzUmVmUHRy
PEF1ZGlvQnVmZmVyPiBpbnB1dEJ1ZmZlciwgUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gb3V0cHV0
QnVmZmVyLCBkb3VibGUgcGxheWJhY2tUaW1lKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
QXVkaW9Qcm9jZXNzaW5nRXZlbnQoaW5wdXRCdWZmZXIsIG91dHB1dEJ1ZmZlciwgcGxheWJhY2tU
aW1lKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9Qcm9jZXNzaW5nRXZlbnQoaW5w
dXRCdWZmZXIsIG91dHB1dEJ1ZmZlciwgcGxheWJhY2tUaW1lKSk7CiB9CiAKIEF1ZGlvUHJvY2Vz
c2luZ0V2ZW50OjpBdWRpb1Byb2Nlc3NpbmdFdmVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmgKaW5kZXggOTZjODhm
My4uODA3NDBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1Byb2Nlc3NpbmdFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Qcm9jZXNzaW5nRXZlbnQuaApAQCAtMzYsOCArMzYsOCBAQCBjbGFzcyBBdWRpb0J1
ZmZlcjsKICAgICAKIGNsYXNzIEF1ZGlvUHJvY2Vzc2luZ0V2ZW50IDogcHVibGljIEV2ZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdWRpb1Byb2Nlc3NpbmdFdmVudD4gY3Jl
YXRlKCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXVkaW9Qcm9jZXNzaW5nRXZlbnQ+IGNyZWF0
ZShQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyPiBpbnB1dEJ1ZmZlciwgUGFzc1JlZlB0cjxBdWRpb0J1
ZmZlcj4gb3V0cHV0QnVmZmVyLCBkb3VibGUgcGxheWJhY2tUaW1lKTsKKyAgICBzdGF0aWMgUmVm
PEF1ZGlvUHJvY2Vzc2luZ0V2ZW50PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVmPEF1ZGlvUHJv
Y2Vzc2luZ0V2ZW50PiBjcmVhdGUoUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gaW5wdXRCdWZmZXIs
IFBhc3NSZWZQdHI8QXVkaW9CdWZmZXI+IG91dHB1dEJ1ZmZlciwgZG91YmxlIHBsYXliYWNrVGlt
ZSk7CiAgICAgCiAgICAgdmlydHVhbCB+QXVkaW9Qcm9jZXNzaW5nRXZlbnQoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db21wbGV0
aW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVk
aW9Db21wbGV0aW9uRXZlbnQuY3BwCmluZGV4IDdkYjVkNzguLmVkZDhmYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0NvbXBsZXRpb25FdmVudC5jcHAKQEAgLTMzLDE0ICszMywxNCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVBhc3NSZWZQdHI8T2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50PiBPZmZsaW5l
QXVkaW9Db21wbGV0aW9uRXZlbnQ6OmNyZWF0ZSgpCitSZWY8T2ZmbGluZUF1ZGlvQ29tcGxldGlv
bkV2ZW50PiBPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQ6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudCk7CiB9CiAKLVBhc3NS
ZWZQdHI8T2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50PiBPZmZsaW5lQXVkaW9Db21wbGV0aW9u
RXZlbnQ6OmNyZWF0ZShQYXNzUmVmUHRyPEF1ZGlvQnVmZmVyPiByZW5kZXJlZEJ1ZmZlcikKK1Jl
ZjxPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQ+IE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVu
dDo6Y3JlYXRlKFBhc3NSZWZQdHI8QXVkaW9CdWZmZXI+IHJlbmRlcmVkQnVmZmVyKQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50KHJlbmRlcmVk
QnVmZmVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2ZmbGluZUF1ZGlvQ29tcGxldGlv
bkV2ZW50KHJlbmRlcmVkQnVmZmVyKSk7CiB9CiAKIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVu
dDo6T2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5o
CmluZGV4IDcyYTdiNzkuLmVkMjRmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaApAQCAt
MzYsOCArMzYsOCBAQCBjbGFzcyBBdWRpb0J1ZmZlcjsKICAgICAKIGNsYXNzIE9mZmxpbmVBdWRp
b0NvbXBsZXRpb25FdmVudCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8T2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50PiBjcmVhdGUoKTsKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQ+IGNyZWF0ZShQYXNzUmVm
UHRyPEF1ZGlvQnVmZmVyPiByZW5kZXJlZEJ1ZmZlcik7CisgICAgc3RhdGljIFJlZjxPZmZsaW5l
QXVkaW9Db21wbGV0aW9uRXZlbnQ+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8T2ZmbGluZUF1
ZGlvQ29tcGxldGlvbkV2ZW50PiBjcmVhdGUoUGFzc1JlZlB0cjxBdWRpb0J1ZmZlcj4gcmVuZGVy
ZWRCdWZmZXIpOwogICAgIAogICAgIHZpcnR1YWwgfk9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVu
dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvQ2xv
c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQu
aAppbmRleCBmZGE1MWQ4Li44OGZmZjM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvQ2xvc2VFdmVudC5oCkBAIC01MCwxOSArNTAsMTkgQEAgc3RydWN0IENsb3Nl
RXZlbnRJbml0IDogcHVibGljIEV2ZW50SW5pdCB7CiAKIGNsYXNzIENsb3NlRXZlbnQgOiBwdWJs
aWMgRXZlbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsb3NlRXZlbnQ+IGNy
ZWF0ZSgpCisgICAgc3RhdGljIFJlZjxDbG9zZUV2ZW50PiBjcmVhdGUoKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDbG9zZUV2ZW50KCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBDbG9zZUV2ZW50KCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PENsb3NlRXZlbnQ+IGNyZWF0ZShib29sIHdhc0NsZWFuLCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBj
b25zdCBTdHJpbmcmIHJlYXNvbikKKyAgICBzdGF0aWMgUmVmPENsb3NlRXZlbnQ+IGNyZWF0ZShi
b29sIHdhc0NsZWFuLCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xvc2VFdmVudCh3YXNDbGVhbiwg
Y29kZSwgcmVhc29uKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENsb3NlRXZlbnQo
d2FzQ2xlYW4sIGNvZGUsIHJlYXNvbikpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PENsb3NlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IENsb3Nl
RXZlbnRJbml0JiBpbml0aWFsaXplcikKKyAgICBzdGF0aWMgUmVmPENsb3NlRXZlbnQ+IGNyZWF0
ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IENsb3NlRXZlbnRJbml0JiBpbml0aWFs
aXplcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2xvc2VFdmVudCh0eXBl
LCBpbml0aWFsaXplcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDbG9zZUV2ZW50
KHR5cGUsIGluaXRpYWxpemVyKSk7CiAgICAgfQogCiAgICAgYm9vbCB3YXNDbGVhbigpIGNvbnN0
IHsgcmV0dXJuIG1fd2FzQ2xlYW47IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9B
bmltYXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0FuaW1hdGlvbkV2ZW50LmgKaW5k
ZXggZmJmMTMwNi4uNzM5NzAwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0FuaW1h
dGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0FuaW1hdGlvbkV2ZW50LmgKQEAg
LTM5LDE3ICszOSwxNyBAQCBzdHJ1Y3QgQW5pbWF0aW9uRXZlbnRJbml0IDogcHVibGljIEV2ZW50
SW5pdCB7CiAKIGNsYXNzIEFuaW1hdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBbmltYXRpb25FdmVudD4gY3JlYXRlKCkKKyAg
ICBzdGF0aWMgUmVmPEFuaW1hdGlvbkV2ZW50PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBBbmltYXRpb25FdmVudCk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEFuaW1hdGlvbkV2ZW50KTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QW5p
bWF0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKQorICAgIHN0YXRpYyBSZWY8QW5p
bWF0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBBbmltYXRpb25FdmVudCh0eXBlLCBhbmltYXRpb25OYW1lLCBlbGFw
c2VkVGltZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBbmltYXRpb25FdmVudCh0
eXBlLCBhbmltYXRpb25OYW1lLCBlbGFwc2VkVGltZSkpOwogICAgIH0KLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxBbmltYXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Y29uc3QgQW5pbWF0aW9uRXZlbnRJbml0JiBpbml0aWFsaXplcikKKyAgICBzdGF0aWMgUmVmPEFu
aW1hdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBBbmlt
YXRpb25FdmVudEluaXQmIGluaXRpYWxpemVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBBbmltYXRpb25FdmVudCh0eXBlLCBpbml0aWFsaXplcikpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBBbmltYXRpb25FdmVudCh0eXBlLCBpbml0aWFsaXplcikpOwogICAg
IH0KIAogICAgIHZpcnR1YWwgfkFuaW1hdGlvbkV2ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQXV0b2NvbXBsZXRlRXJyb3JFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaAppbmRleCA0OTNlYjRmLi4yOTE5N2VkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXV0b2NvbXBsZXRlRXJyb3JFdmVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9BdXRvY29tcGxldGVFcnJvckV2ZW50LmgKQEAgLTM4LDE5ICszOCwx
OSBAQCBzdHJ1Y3QgQXV0b2NvbXBsZXRlRXJyb3JFdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJbml0
IHsKIAogY2xhc3MgQXV0b2NvbXBsZXRlRXJyb3JFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXV0b2NvbXBsZXRlRXJyb3JFdmVudD4g
Y3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEF1dG9jb21wbGV0ZUVycm9yRXZlbnQ+IGNyZWF0ZSgp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEF1dG9jb21wbGV0ZUVycm9yRXZl
bnQpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEF1dG9jb21wbGV0ZUVycm9yRXZl
bnQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHJlYXNvbikKKyAgICBzdGF0aWMgUmVmPEF1dG9jb21w
bGV0ZUVycm9yRXZlbnQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHJlYXNvbikKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXV0b2NvbXBsZXRlRXJyb3JFdmVudChyZWFzb24pKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXV0b2NvbXBsZXRlRXJyb3JFdmVudChyZWFz
b24pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdXRvY29tcGxldGVFcnJvckV2
ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IEF1dG9jb21w
bGV0ZUVycm9yRXZlbnRJbml0JiBpbml0aWFsaXplcikKKyAgICBzdGF0aWMgUmVmPEF1dG9jb21w
bGV0ZUVycm9yRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29u
c3QgQXV0b2NvbXBsZXRlRXJyb3JFdmVudEluaXQmIGluaXRpYWxpemVyKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdXRvY29tcGxldGVFcnJvckV2ZW50KGV2ZW50VHlwZSwg
aW5pdGlhbGl6ZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXV0b2NvbXBsZXRl
RXJyb3JFdmVudChldmVudFR5cGUsIGluaXRpYWxpemVyKSk7CiAgICAgfQogCiAgICAgY29uc3Qg
U3RyaW5nJiByZWFzb24oKSBjb25zdCB7IHJldHVybiBtX3JlYXNvbjsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0JlZm9yZUxvYWRFdmVudC5oCmluZGV4IDc5MzczZGYuLjBkOTViYjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVMb2FkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQmVmb3JlTG9hZEV2ZW50LmgKQEAgLTQyLDE5ICs0MiwxOSBAQCBzdHJ1Y3QgQmVmb3JlTG9h
ZEV2ZW50SW5pdCA6IHB1YmxpYyBFdmVudEluaXQgewogCiBjbGFzcyBCZWZvcmVMb2FkRXZlbnQg
ZmluYWwgOiBwdWJsaWMgRXZlbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJl
Zm9yZUxvYWRFdmVudD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEJlZm9yZUxvYWRFdmVudD4g
Y3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmVmb3JlTG9hZEV2
ZW50KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmVmb3JlTG9hZEV2ZW50KTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCZWZvcmVMb2FkRXZlbnQ+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIHVybCkKKyAgICBzdGF0aWMgUmVmPEJlZm9yZUxvYWRFdmVudD4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgdXJsKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCZWZv
cmVMb2FkRXZlbnQodXJsKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJlZm9yZUxv
YWRFdmVudCh1cmwpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCZWZvcmVMb2Fk
RXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEJlZm9yZUxvYWRF
dmVudEluaXQmIGluaXRpYWxpemVyKQorICAgIHN0YXRpYyBSZWY8QmVmb3JlTG9hZEV2ZW50PiBj
cmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBCZWZvcmVMb2FkRXZlbnRJbml0
JiBpbml0aWFsaXplcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmVmb3Jl
TG9hZEV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEJlZm9yZUxvYWRFdmVudCh0eXBlLCBpbml0aWFsaXplcikpOwogICAgIH0KIAogICAgIGNv
bnN0IFN0cmluZyYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgKaW5kZXggMWU0YjM1ZC4uMzQ4M2ExMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgKQEAgLTM0
LDkgKzM0LDkgQEAgY2xhc3MgQmVmb3JlVGV4dEluc2VydGVkRXZlbnQgZmluYWwgOiBwdWJsaWMg
RXZlbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KCk7
CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudD4gY3JlYXRl
KGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICBzdGF0aWMgUmVmPEJlZm9yZVRleHRJbnNlcnRlZEV2
ZW50PiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0ZXh0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCh0ZXh0KSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KHRleHQpKTsKICAgICB9CiAK
ICAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlVW5sb2FkRXZlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVVbmxvYWRFdmVudC5oCmluZGV4IDU4NzY2OTYuLmFl
ZjkwYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVVbmxvYWRFdmVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVVbmxvYWRFdmVudC5oCkBAIC0zMyw5ICsz
Myw5IEBAIGNsYXNzIEJlZm9yZVVubG9hZEV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5CZWZvcmVVbmxvYWRFdmVudCgpOwogCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8QmVmb3JlVW5sb2FkRXZlbnQ+IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxCZWZv
cmVVbmxvYWRFdmVudD4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQmVmb3JlVW5sb2FkRXZlbnQpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCZWZv
cmVVbmxvYWRFdmVudCk7CiAgICAgfQogCiAgICAgU3RyaW5nIHJldHVyblZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gbV9yZXR1cm5WYWx1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0NsaXBib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkRXZlbnQuaApp
bmRleCBkYjg0YzQzLi4wZjE2YTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
cGJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkRXZlbnQuaApA
QCAtMzQsMTMgKzM0LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIHZpcnR1YWwgfkNsaXBib2FyZEV2ZW50KCk7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8Q2xpcGJvYXJkRXZlbnQ+IGNyZWF0ZSgpCisgICAgICAgIHN0YXRpYyBSZWY8Q2xpcGJvYXJk
RXZlbnQ+IGNyZWF0ZSgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQ2xpcGJvYXJkRXZlbnQpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xp
cGJvYXJkRXZlbnQpOwogICAgICAgICB9Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBi
b2FyZEV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gY2xpcGJv
YXJkQXJnKQorICAgICAgICBzdGF0aWMgUmVmPENsaXBib2FyZEV2ZW50PiBjcmVhdGUoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJn
LCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gY2xpcGJvYXJkQXJnKQogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENsaXBib2FyZEV2ZW50KHR5cGUsIGNhbkJ1YmJs
ZUFyZywgY2FuY2VsYWJsZUFyZywgY2xpcGJvYXJkQXJnKSk7CisgICAgICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDbGlwYm9hcmRFdmVudCh0eXBlLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFi
bGVBcmcsIGNsaXBib2FyZEFyZykpOwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCBEYXRh
VHJhbnNmZXIqIGludGVybmFsRGF0YVRyYW5zZmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9kYXRhVHJhbnNmZXIuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b21wb3NpdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zaXRpb25FdmVudC5o
CmluZGV4IGZkMWRkOTYuLmQ3ZDlmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b21wb3NpdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2l0aW9uRXZl
bnQuaApAQCAtMzksMTkgKzM5LDE5IEBAIHN0cnVjdCBDb21wb3NpdGlvbkV2ZW50SW5pdCA6IFVJ
RXZlbnRJbml0IHsKIAogY2xhc3MgQ29tcG9zaXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBVSUV2
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb21wb3NpdGlvbkV2ZW50PiBj
cmVhdGUoKQorICAgIHN0YXRpYyBSZWY8Q29tcG9zaXRpb25FdmVudD4gY3JlYXRlKCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ29tcG9zaXRpb25FdmVudCk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IENvbXBvc2l0aW9uRXZlbnQpOwogICAgIH0KIAotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENvbXBvc2l0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBjb25zdCBTdHJpbmcmIGRh
dGEpCisgICAgc3RhdGljIFJlZjxDb21wb3NpdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywgY29uc3QgU3RyaW5n
JiBkYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb21wb3NpdGlvbkV2
ZW50KHR5cGUsIHZpZXcsIGRhdGEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29t
cG9zaXRpb25FdmVudCh0eXBlLCB2aWV3LCBkYXRhKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8Q29tcG9zaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgY29uc3QgQ29tcG9zaXRpb25FdmVudEluaXQmIGluaXRpYWxpemVyKQorICAgIHN0YXRpYyBS
ZWY8Q29tcG9zaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29u
c3QgQ29tcG9zaXRpb25FdmVudEluaXQmIGluaXRpYWxpemVyKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDb21wb3NpdGlvbkV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENvbXBvc2l0aW9uRXZlbnQodHlwZSwgaW5pdGlh
bGl6ZXIpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5Db21wb3NpdGlvbkV2ZW50KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9DdXN0b21FdmVudC5oCmluZGV4IGEzYWUyOGIuLjk5NDBmYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
dXN0b21FdmVudC5oCkBAIC00MiwxNCArNDIsMTQgQEAgY2xhc3MgQ3VzdG9tRXZlbnQgZmluYWwg
OiBwdWJsaWMgRXZlbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkN1c3RvbUV2ZW50KCk7CiAK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDdXN0b21FdmVudD4gY3JlYXRlKCkKKyAgICBzdGF0aWMg
UmVmPEN1c3RvbUV2ZW50PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBDdXN0b21FdmVudCk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1c3RvbUV2
ZW50KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDdXN0b21FdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgQ3VzdG9tRXZlbnRJbml0JiBpbml0aWFs
aXplcikKKyAgICBzdGF0aWMgUmVmPEN1c3RvbUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBjb25zdCBDdXN0b21FdmVudEluaXQmIGluaXRpYWxpemVyKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDdXN0b21FdmVudCh0eXBlLCBpbml0aWFsaXplcikp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXN0b21FdmVudCh0eXBlLCBpbml0aWFs
aXplcikpOwogICAgIH0KIAogICAgIHZvaWQgaW5pdEN1c3RvbUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgY29uc3QgRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUmIGRldGFpbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlTW90aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5oCmluZGV4IGY3OGEyOWUuLjllYTVkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VN
b3Rpb25FdmVudC5oCkBAIC0zNSwxMyArMzUsMTMgQEAgY2xhc3MgRGV2aWNlTW90aW9uRGF0YTsK
IGNsYXNzIERldmljZU1vdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25FdmVudCgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PERldmljZU1vdGlvbkV2ZW50PiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8RGV2aWNlTW90aW9u
RXZlbnQ+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERldmlj
ZU1vdGlvbkV2ZW50KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGV2aWNlTW90aW9u
RXZlbnQpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZXZpY2VNb3Rpb25FdmVudD4g
Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VNb3Rpb25EYXRhKiBk
ZXZpY2VNb3Rpb25EYXRhKQorICAgIHN0YXRpYyBSZWY8RGV2aWNlTW90aW9uRXZlbnQ+IGNyZWF0
ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRGV2aWNlTW90aW9uRGF0YSogZGV2aWNl
TW90aW9uRGF0YSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGV2aWNlTW90
aW9uRXZlbnQoZXZlbnRUeXBlLCBkZXZpY2VNb3Rpb25EYXRhKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERldmljZU1vdGlvbkV2ZW50KGV2ZW50VHlwZSwgZGV2aWNlTW90aW9uRGF0
YSkpOwogICAgIH0KIAogICAgIHZvaWQgaW5pdERldmljZU1vdGlvbkV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIERldmljZU1vdGlv
bkRhdGEqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCmlu
ZGV4IDJlN2Q5NDEuLmUwNDRlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uRXZlbnQuaApAQCAtMzUsMTMgKzM1LDEzIEBAIGNsYXNzIERldmljZU9yaWVudGF0aW9u
RGF0YTsKIGNsYXNzIERldmljZU9yaWVudGF0aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQg
ewogcHVibGljOgogICAgIHZpcnR1YWwgfkRldmljZU9yaWVudGF0aW9uRXZlbnQoKTsKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkV2ZW50PiBjcmVhdGUoKQorICAgIHN0
YXRpYyBSZWY8RGV2aWNlT3JpZW50YXRpb25FdmVudD4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgRGV2aWNlT3JpZW50YXRpb25FdmVudCk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IERldmljZU9yaWVudGF0aW9uRXZlbnQpOwogICAgIH0KLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIERldmljZU9yaWVudGF0aW9uRGF0YSogb3JpZW50YXRpb24p
CisgICAgc3RhdGljIFJlZjxEZXZpY2VPcmllbnRhdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIERldmljZU9yaWVudGF0aW9uRGF0YSogb3JpZW50YXRpb24p
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERldmljZU9yaWVudGF0aW9uRXZl
bnQoZXZlbnRUeXBlLCBvcmllbnRhdGlvbikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50KGV2ZW50VHlwZSwgb3JpZW50YXRpb24pKTsKICAgICB9
CiAKICAgICB2b2lkIGluaXREZXZpY2VPcmllbnRhdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIERldmljZU9yaWVudGF0aW9u
RGF0YSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmgKaW5kZXggYjUxZDdhNi4uMDFjNjEwMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXJyb3JFdmVudC5oCkBAIC00NywxNyArNDcsMTcgQEAgc3RydWN0IEVycm9yRXZl
bnRJbml0IDogcHVibGljIEV2ZW50SW5pdCB7CiAKIGNsYXNzIEVycm9yRXZlbnQgZmluYWwgOiBw
dWJsaWMgRXZlbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEVycm9yRXZlbnQ+
IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxFcnJvckV2ZW50PiBjcmVhdGUoKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFcnJvckV2ZW50KTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRXJyb3JFdmVudCk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEVy
cm9yRXZlbnQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlcikKKyAgICBz
dGF0aWMgUmVmPEVycm9yRXZlbnQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51
bWJlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXJyb3JFdmVudChtZXNz
YWdlLCBmaWxlTmFtZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEVycm9yRXZlbnQobWVzc2FnZSwgZmlsZU5hbWUsIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlcikpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFcnJvckV2ZW50
PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBFcnJvckV2ZW50SW5pdCYg
aW5pdGlhbGl6ZXIpCisgICAgc3RhdGljIFJlZjxFcnJvckV2ZW50PiBjcmVhdGUoY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlLCBjb25zdCBFcnJvckV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEVycm9yRXZlbnQodHlwZSwgaW5pdGlhbGl6
ZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXJyb3JFdmVudCh0eXBlLCBpbml0
aWFsaXplcikpOwogICAgIH0KICAgICB2aXJ0dWFsIH5FcnJvckV2ZW50KCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
LmgKaW5kZXggNjdmNDI2ZS4uYTdjOGNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKQEAgLTgzLDE4ICs4Mywx
OCBAQCBwdWJsaWM6CiAgICAgICAgIENIQU5HRSAgICAgICAgICAgICAgPSAzMjc2OAogICAgIH07
CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFdmVudD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVm
PEV2ZW50PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFdmVu
dCk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV2ZW50KTsKICAgICB9Ci0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8RXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUpCisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFJlZjxFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJs
ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV2ZW50PiBjcmVhdGUoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyKQorICAgIHN0
YXRpYyBSZWY8RXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEV2
ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+RXZlbnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Gb2N1c0V2ZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRm9jdXNFdmVudC5oCmluZGV4IGY4MDg4YTguLjdlODRkZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Gb2N1c0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0ZvY3VzRXZlbnQuaApAQCAtNDEsMTkgKzQxLDE5IEBAIHN0cnVjdCBGb2N1c0V2ZW50SW5p
dCA6IHB1YmxpYyBVSUV2ZW50SW5pdCB7CiAKIGNsYXNzIEZvY3VzRXZlbnQgZmluYWwgOiBwdWJs
aWMgVUlFdmVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Rm9jdXNFdmVudD4g
Y3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPEZvY3VzRXZlbnQ+IGNyZWF0ZSgpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvY3VzRXZlbnQpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBGb2N1c0V2ZW50KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxG
b2N1c0V2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywgaW50IGRl
dGFpbCwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCkKKyAgICBzdGF0aWMg
UmVmPEZvY3VzRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2Fu
QnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBp
bnQgZGV0YWlsLCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiByZWxhdGVkVGFyZ2V0KQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb2N1c0V2ZW50KHR5cGUsIGNhbkJ1YmJsZSwg
Y2FuY2VsYWJsZSwgdmlldywgZGV0YWlsLCByZWxhdGVkVGFyZ2V0KSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEZvY3VzRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCB2
aWV3LCBkZXRhaWwsIHJlbGF0ZWRUYXJnZXQpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxGb2N1c0V2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBG
b2N1c0V2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCisgICAgc3RhdGljIFJlZjxGb2N1c0V2ZW50PiBj
cmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBGb2N1c0V2ZW50SW5pdCYgaW5p
dGlhbGl6ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvY3VzRXZlbnQo
dHlwZSwgaW5pdGlhbGl6ZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRm9jdXNF
dmVudCh0eXBlLCBpbml0aWFsaXplcikpOwogICAgIH0KIAogICAgIHZpcnR1YWwgRXZlbnRUYXJn
ZXQqIHJlbGF0ZWRUYXJnZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JlbGF0ZWRUYXJn
ZXQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9IYXNoQ2hhbmdlRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9IYXNoQ2hhbmdlRXZlbnQuaAppbmRleCA3ZTJhYjUz
Li5lMjY3NjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vSGFzaENoYW5nZUV2ZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0hhc2hDaGFuZ2VFdmVudC5oCkBAIC0zNywxOSAr
MzcsMTkgQEAgc3RydWN0IEhhc2hDaGFuZ2VFdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJbml0IHsK
IAogY2xhc3MgSGFzaENoYW5nZUV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIYXNoQ2hhbmdlRXZlbnQ+IGNyZWF0ZSgpCisgICAgc3Rh
dGljIFJlZjxIYXNoQ2hhbmdlRXZlbnQ+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEhhc2hDaGFuZ2VFdmVudCk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEhhc2hDaGFuZ2VFdmVudCk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SGFz
aENoYW5nZUV2ZW50PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBvbGRVUkwsIGNvbnN0IFN0cmluZyYg
bmV3VVJMKQorICAgIHN0YXRpYyBSZWY8SGFzaENoYW5nZUV2ZW50PiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiBvbGRVUkwsIGNvbnN0IFN0cmluZyYgbmV3VVJMKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBIYXNoQ2hhbmdlRXZlbnQob2xkVVJMLCBuZXdVUkwpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSGFzaENoYW5nZUV2ZW50KG9sZFVSTCwgbmV3VVJMKSk7CiAg
ICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SGFzaENoYW5nZUV2ZW50PiBjcmVhdGUoY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBIYXNoQ2hhbmdlRXZlbnRJbml0JiBpbml0aWFs
aXplcikKKyAgICBzdGF0aWMgUmVmPEhhc2hDaGFuZ2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgY29uc3QgSGFzaENoYW5nZUV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhhc2hDaGFuZ2VFdmVudCh0eXBlLCBp
bml0aWFsaXplcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIYXNoQ2hhbmdlRXZl
bnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKICAgICB9CiAKICAgICB2b2lkIGluaXRIYXNoQ2hhbmdl
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIGNvbnN0IFN0cmluZyYgb2xkVVJMLCBjb25zdCBTdHJpbmcmIG5ld1VSTCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5oCmluZGV4IDM3MTJlODMuLjdhODc3N2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaApAQCAtNTcsMTkgKzU3LDE5IEBAIHB1YmxpYzoKICAg
ICAgICAgLy8gRE9NX0tFWV9MT0NBVElPTl9KT1lTVElDSyAgID0gMHgwNQogICAgIH07CiAgICAg
ICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGNyZWF0ZSgpCisgICAg
c3RhdGljIFJlZjxLZXlib2FyZEV2ZW50PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBLZXlib2FyZEV2ZW50KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgS2V5Ym9hcmRFdmVudCk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8S2V5Ym9h
cmRFdmVudD4gY3JlYXRlKGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgcGxhdGZvcm1FdmVu
dCwgQWJzdHJhY3RWaWV3KiB2aWV3KQorICAgIHN0YXRpYyBSZWY8S2V5Ym9hcmRFdmVudD4gY3Jl
YXRlKGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgcGxhdGZvcm1FdmVudCwgQWJzdHJhY3RW
aWV3KiB2aWV3KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBLZXlib2FyZEV2
ZW50KHBsYXRmb3JtRXZlbnQsIHZpZXcpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
S2V5Ym9hcmRFdmVudChwbGF0Zm9ybUV2ZW50LCB2aWV3KSk7CiAgICAgfQogCi0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgY29uc3QgS2V5Ym9hcmRFdmVudEluaXQmIGluaXRpYWxpemVyKQorICAgIHN0YXRpYyBSZWY8
S2V5Ym9hcmRFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgS2V5
Ym9hcmRFdmVudEluaXQmIGluaXRpYWxpemVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBLZXlib2FyZEV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEtleWJvYXJkRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKICAgICB9
CiAKICAgICB2aXJ0dWFsIH5LZXlib2FyZEV2ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWVzc2FnZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50
LmgKaW5kZXggY2JhNGMxZi4uOWViMzlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L01lc3NhZ2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaApA
QCAtNTMsMzMgKzUzLDMzIEBAIHN0cnVjdCBNZXNzYWdlRXZlbnRJbml0IDogcHVibGljIEV2ZW50
SW5pdCB7CiAKIGNsYXNzIE1lc3NhZ2VFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVzc2FnZUV2ZW50PiBjcmVhdGUoKQorICAgIHN0
YXRpYyBSZWY8TWVzc2FnZUV2ZW50PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBNZXNzYWdlRXZlbnQpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBN
ZXNzYWdlRXZlbnQpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZXNzYWdlRXZlbnQ+
IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRBcnJheT4gcG9ydHMsIGNvbnN0IERl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBkYXRhID0gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoKSwg
Y29uc3QgU3RyaW5nJiBvcmlnaW4gPSBTdHJpbmcoKSwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJ
ZCA9IFN0cmluZygpLCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiBzb3VyY2UgPSAwKQorICAgIHN0
YXRpYyBSZWY8TWVzc2FnZUV2ZW50PiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0
QXJyYXk+IHBvcnRzLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZGF0YSA9IERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlKCksIGNvbnN0IFN0cmluZyYgb3JpZ2luID0gU3RyaW5nKCksIGNv
bnN0IFN0cmluZyYgbGFzdEV2ZW50SWQgPSBTdHJpbmcoKSwgUGFzc1JlZlB0cjxFdmVudFRhcmdl
dD4gc291cmNlID0gMCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVzc2Fn
ZUV2ZW50KGRhdGEsIG9yaWdpbiwgbGFzdEV2ZW50SWQsIHNvdXJjZSwgV1RGOjptb3ZlKHBvcnRz
KSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZXNzYWdlRXZlbnQoZGF0YSwgb3Jp
Z2luLCBsYXN0RXZlbnRJZCwgc291cmNlLCBXVEY6Om1vdmUocG9ydHMpKSk7CiAgICAgfQotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE1lc3NhZ2VFdmVudD4gY3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxN
ZXNzYWdlUG9ydEFycmF5PiBwb3J0cywgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luID0gU3RyaW5nKCksIGNvbnN0IFN0cmluZyYgbGFz
dEV2ZW50SWQgPSBTdHJpbmcoKSwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gc291cmNlID0gMCkK
KyAgICBzdGF0aWMgUmVmPE1lc3NhZ2VFdmVudD4gY3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxNZXNz
YWdlUG9ydEFycmF5PiBwb3J0cywgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRh
dGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luID0gU3RyaW5nKCksIGNvbnN0IFN0cmluZyYgbGFzdEV2
ZW50SWQgPSBTdHJpbmcoKSwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gc291cmNlID0gMCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVzc2FnZUV2ZW50KGRhdGEsIG9yaWdp
biwgbGFzdEV2ZW50SWQsIHNvdXJjZSwgV1RGOjptb3ZlKHBvcnRzKSkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBNZXNzYWdlRXZlbnQoZGF0YSwgb3JpZ2luLCBsYXN0RXZlbnRJZCwg
c291cmNlLCBXVEY6Om1vdmUocG9ydHMpKSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PE1lc3NhZ2VFdmVudD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiBv
cmlnaW4gPSBTdHJpbmcoKSkKKyAgICBzdGF0aWMgUmVmPE1lc3NhZ2VFdmVudD4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4gPSBTdHJpbmcoKSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVzc2FnZUV2ZW50KGRhdGEsIG9yaWdpbikp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZXNzYWdlRXZlbnQoZGF0YSwgb3JpZ2lu
KSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lc3NhZ2VFdmVudD4gY3JlYXRlKFBh
c3NSZWZQdHI8QmxvYj4gZGF0YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4gPSBTdHJpbmcoKSkKKyAg
ICBzdGF0aWMgUmVmPE1lc3NhZ2VFdmVudD4gY3JlYXRlKFBhc3NSZWZQdHI8QmxvYj4gZGF0YSwg
Y29uc3QgU3RyaW5nJiBvcmlnaW4gPSBTdHJpbmcoKSkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgTWVzc2FnZUV2ZW50KGRhdGEsIG9yaWdpbikpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBNZXNzYWdlRXZlbnQoZGF0YSwgb3JpZ2luKSk7CiAgICAgfQotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE1lc3NhZ2VFdmVudD4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+IGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luID0gU3RyaW5nKCkpCisgICAgc3RhdGljIFJl
ZjxNZXNzYWdlRXZlbnQ+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBkYXRhLCBjb25z
dCBTdHJpbmcmIG9yaWdpbiA9IFN0cmluZygpKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBNZXNzYWdlRXZlbnQoZGF0YSwgb3JpZ2luKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE1lc3NhZ2VFdmVudChkYXRhLCBvcmlnaW4pKTsKICAgICB9Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8TWVzc2FnZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBjb25zdCBNZXNzYWdlRXZlbnRJbml0JiBpbml0aWFsaXplcikKKyAgICBzdGF0aWMgUmVmPE1l
c3NhZ2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgTWVzc2Fn
ZUV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IE1lc3NhZ2VFdmVudCh0eXBlLCBpbml0aWFsaXplcikpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBNZXNzYWdlRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKICAgICB9CiAgICAg
dmlydHVhbCB+TWVzc2FnZUV2ZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAppbmRl
eCAxODc1MDg5Li43YjdjYmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VF
dmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCkBAIC00Nywx
MiArNDcsMTIgQEAgTW91c2VFdmVudEluaXQ6Ok1vdXNlRXZlbnRJbml0KCkKIHsKIH0KIAotUGFz
c1JlZlB0cjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBjb25zdCBNb3VzZUV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCitSZWY8TW91c2VFdmVu
dD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgTW91
c2VFdmVudEluaXQmIGluaXRpYWxpemVyKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTW91
c2VFdmVudCh0eXBlLCBpbml0aWFsaXplcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1v
dXNlRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKIH0KIAotUGFzc1JlZlB0cjxNb3VzZUV2ZW50
PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NS
ZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50
LCBpbnQgZGV0YWlsLCBQYXNzUmVmUHRyPE5vZGU+IHJlbGF0ZWRUYXJnZXQpCitSZWY8TW91c2VF
dmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQ
YXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBl
dmVudCwgaW50IGRldGFpbCwgUGFzc1JlZlB0cjxOb2RlPiByZWxhdGVkVGFyZ2V0KQogewogICAg
IEFTU0VSVChldmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCB8fCBldmVu
dC5idXR0b24oKSAhPSBOb0J1dHRvbik7CiAKQEAgLTY5LDcgKzY5LDcgQEAgUGFzc1JlZlB0cjxN
b3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIFBhc3NSZWYKICAgICAgICAgcmVsYXRlZFRhcmdldCk7CiB9CiAKLVBhc3NSZWZQdHI8TW91
c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9v
bCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgUGFzc1JlZlB0
cjxBYnN0cmFjdFZpZXc+IHZpZXcsCitSZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgZG91YmxlIHRpbWVzdGFtcCwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsCiAgICAg
aW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdl
WSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIGludCBtb3ZlbWVudFgsIGludCBtb3Zl
bWVudFksCkBAIC04Niw3ICs4Niw3IEBAIFBhc3NSZWZQdHI8TW91c2VFdmVudD4gTW91c2VFdmVu
dDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJiCiAgICAgICAg
IGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXksIGJ1dHRvbiwgcmVsYXRlZFRhcmdl
dCwgMCwgZmFsc2UpOwogfQogCi1QYXNzUmVmUHRyPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNy
ZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNl
bGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LAor
UmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIFBh
c3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LAogICAgIGludCBkZXRhaWwsIGludCBzY3JlZW5Y
LCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKICAgICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLApAQCAtOTQsNyArOTQsNyBA
QCBQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYgogICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXks
IGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLAogICAg
IFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQsIFBhc3NSZWZQdHI8RGF0YVRy
YW5zZmVyPiBkYXRhVHJhbnNmZXIsIGJvb2wgaXNTaW11bGF0ZWQpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBNb3VzZUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0
YW1wLCB2aWV3LAorICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vdXNlRXZlbnQodHlwZSwgY2Fu
QnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIHZpZXcsCiAgICAgICAgIGRldGFpbCwgc2Ny
ZWVuWCwgc2NyZWVuWSwgcGFnZVgsIHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAg
ICAgICAgIG1vdmVtZW50WCwgbW92ZW1lbnRZLApAQCAtMjU3LDkgKzI1Nyw5IEBAIFBhc3NSZWZQ
dHI8RXZlbnQ+IE1vdXNlRXZlbnQ6OmNsb25lRm9yKEhUTUxJRnJhbWVFbGVtZW50KiBpZnJhbWUp
IGNvbnN0CiAgICAgcmV0dXJuIGNsb25lZE1vdXNlRXZlbnQucmVsZWFzZSgpOwogfQogCi1QYXNz
UmVmUHRyPFNpbXVsYXRlZE1vdXNlRXZlbnQ+IFNpbXVsYXRlZE1vdXNlRXZlbnQ6OmNyZWF0ZShj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZp
ZXcsIFBhc3NSZWZQdHI8RXZlbnQ+IHVuZGVybHlpbmdFdmVudCwgRWxlbWVudCogdGFyZ2V0KQor
UmVmPFNpbXVsYXRlZE1vdXNlRXZlbnQ+IFNpbXVsYXRlZE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcs
IFBhc3NSZWZQdHI8RXZlbnQ+IHVuZGVybHlpbmdFdmVudCwgRWxlbWVudCogdGFyZ2V0KQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2ltdWxhdGVkTW91c2VFdmVudChldmVudFR5cGUsIHZp
ZXcsIHVuZGVybHlpbmdFdmVudCwgdGFyZ2V0KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U2ltdWxhdGVkTW91c2VFdmVudChldmVudFR5cGUsIHZpZXcsIHVuZGVybHlpbmdFdmVudCwgdGFy
Z2V0KSk7CiB9CiAKIFNpbXVsYXRlZE1vdXNlRXZlbnQ6On5TaW11bGF0ZWRNb3VzZUV2ZW50KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTW91c2VFdmVudC5oCmluZGV4IDFmYThhM2EuLjlkZWI4MDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L01vdXNlRXZlbnQuaApAQCAtNDgsMTIgKzQ4LDEyIEBAIHN0cnVjdCBNb3VzZUV2ZW50SW5pdCA6
IHB1YmxpYyBVSUV2ZW50SW5pdCB7CiAKIGNsYXNzIE1vdXNlRXZlbnQgOiBwdWJsaWMgTW91c2VS
ZWxhdGVkRXZlbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+
IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNb3VzZUV2ZW50KTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTW91c2VFdmVudCk7CiAgICAgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFBhc3NSZWZQdHI8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgUGFz
c1JlZlB0cjxBYnN0cmFjdFZpZXc+LAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91
c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUs
IGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgUGFzc1JlZlB0cjxBYnN0cmFjdFZp
ZXc+LAogICAgICAgICBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBw
YWdlWCwgaW50IHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGludCBt
b3ZlbWVudFgsIGludCBtb3ZlbWVudFksCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5
LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sCiAgICAgICAgIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+
IHJlbGF0ZWRUYXJnZXQpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8
TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgUGFzc1JlZlB0cjxBYnN0cmFj
dFZpZXc+LAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgZG91YmxlIHRpbWVzdGFtcCwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LAogICAgICAgICBp
bnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZ
LAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGludCBtb3ZlbWVudFgsIGludCBt
b3ZlbWVudFksCkBAIC02OSw5ICs2OSw5IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBjdHJsS2V5
LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9y
dCBidXR0b24sCiAgICAgICAgIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQs
IFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiwgYm9vbCBpc1NpbXVsYXRlZCA9IGZhbHNlKTsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+IGNyZWF0ZShj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBpbnQgZGV0YWlsLCBQYXNzUmVmUHRyPE5vZGU+IHJl
bGF0ZWRUYXJnZXQpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4g
Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0
Vmlldz4sIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGludCBkZXRhaWwsIFBhc3NSZWZQdHI8
Tm9kZT4gcmVsYXRlZFRhcmdldCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNb3VzZUV2ZW50
PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IE1vdXNlRXZlbnRJ
bml0Jik7CisgICAgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGNvbnN0IE1vdXNlRXZlbnRJbml0Jik7CiAKICAgICB2aXJ0dWFsIH5N
b3VzZUV2ZW50KCk7CiAKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBTaW11
bGF0ZWRNb3VzZUV2ZW50IGZpbmFsIDogcHVibGljIE1vdXNlRXZlbnQgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNpbXVsYXRlZE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBQYXNzUmVmUHRy
PEV2ZW50PiB1bmRlcmx5aW5nRXZlbnQsIEVsZW1lbnQqIHRhcmdldCk7CisgICAgc3RhdGljIFJl
ZjxTaW11bGF0ZWRNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiwgUGFzc1JlZlB0cjxFdmVudD4gdW5kZXJseWlu
Z0V2ZW50LCBFbGVtZW50KiB0YXJnZXQpOwogICAgIHZpcnR1YWwgflNpbXVsYXRlZE1vdXNlRXZl
bnQoKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlv
bkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25FdmVudC5oCmluZGV4IDRkMDUz
MTQuLjU4ZjZjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkV2ZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uRXZlbnQuaApAQCAtMzksMTUgKzM5
LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFJFTU9WQUwgICAgICAgICA9
IDMKICAgICAgICAgfTsKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNdXRhdGlvbkV2ZW50
PiBjcmVhdGUoKQorICAgICAgICBzdGF0aWMgUmVmPE11dGF0aW9uRXZlbnQ+IGNyZWF0ZSgpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTXV0YXRpb25FdmVudCk7
CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNdXRhdGlvbkV2ZW50KTsKICAgICAg
ICAgfQogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPE11dGF0aW9uRXZlbnQ+IGNyZWF0ZShj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBQYXNzUmVmUHRyPE5vZGU+
IHJlbGF0ZWROb2RlID0gMCwKKyAgICAgICAgc3RhdGljIFJlZjxNdXRhdGlvbkV2ZW50PiBjcmVh
dGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgUGFzc1JlZlB0cjxO
b2RlPiByZWxhdGVkTm9kZSA9IDAsCiAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHByZXZWYWx1
ZSA9IFN0cmluZygpLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlID0gU3RyaW5nKCksIGNvbnN0IFN0
cmluZyYgYXR0ck5hbWUgPSBTdHJpbmcoKSwgdW5zaWduZWQgc2hvcnQgYXR0ckNoYW5nZSA9IDAp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTXV0YXRpb25FdmVu
dCh0eXBlLCBjYW5CdWJibGUsIGZhbHNlLCByZWxhdGVkTm9kZSwgcHJldlZhbHVlLCBuZXdWYWx1
ZSwgYXR0ck5hbWUsIGF0dHJDaGFuZ2UpKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE11dGF0aW9uRXZlbnQodHlwZSwgY2FuQnViYmxlLCBmYWxzZSwgcmVsYXRlZE5vZGUsIHBy
ZXZWYWx1ZSwgbmV3VmFsdWUsIGF0dHJOYW1lLCBhdHRyQ2hhbmdlKSk7CiAgICAgICAgIH0KIAog
ICAgICAgICB2b2lkIGluaXRNdXRhdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxOb2RlPiByZWxhdGVk
Tm9kZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9PdmVyZmxvd0V2ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vT3ZlcmZsb3dFdmVudC5oCmluZGV4IGQ0Y2QzMzcuLjIwZWRjODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9PdmVyZmxvd0V2ZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL092ZXJmbG93RXZlbnQuaApAQCAtNDYsMTcgKzQ2LDE3IEBAIHB1Ymxp
YzoKICAgICAgICAgQk9USCAgICAgICA9IDIKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8T3ZlcmZsb3dFdmVudD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPE92ZXJmbG93RXZlbnQ+
IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE92ZXJmbG93RXZl
bnQpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPdmVyZmxvd0V2ZW50KTsKICAgICB9
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8T3ZlcmZsb3dFdmVudD4gY3JlYXRlKGJvb2wgaG9yaXpv
bnRhbE92ZXJmbG93Q2hhbmdlZCwgYm9vbCBob3Jpem9udGFsT3ZlcmZsb3csIGJvb2wgdmVydGlj
YWxPdmVyZmxvd0NoYW5nZWQsIGJvb2wgdmVydGljYWxPdmVyZmxvdykKKyAgICBzdGF0aWMgUmVm
PE92ZXJmbG93RXZlbnQ+IGNyZWF0ZShib29sIGhvcml6b250YWxPdmVyZmxvd0NoYW5nZWQsIGJv
b2wgaG9yaXpvbnRhbE92ZXJmbG93LCBib29sIHZlcnRpY2FsT3ZlcmZsb3dDaGFuZ2VkLCBib29s
IHZlcnRpY2FsT3ZlcmZsb3cpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE92
ZXJmbG93RXZlbnQoaG9yaXpvbnRhbE92ZXJmbG93Q2hhbmdlZCwgaG9yaXpvbnRhbE92ZXJmbG93
LCB2ZXJ0aWNhbE92ZXJmbG93Q2hhbmdlZCwgdmVydGljYWxPdmVyZmxvdykpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBPdmVyZmxvd0V2ZW50KGhvcml6b250YWxPdmVyZmxvd0NoYW5n
ZWQsIGhvcml6b250YWxPdmVyZmxvdywgdmVydGljYWxPdmVyZmxvd0NoYW5nZWQsIHZlcnRpY2Fs
T3ZlcmZsb3cpKTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8T3ZlcmZsb3dFdmVudD4g
Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgT3ZlcmZsb3dFdmVudEluaXQm
IGluaXRpYWxpemVyKQorICAgIHN0YXRpYyBSZWY8T3ZlcmZsb3dFdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgT3ZlcmZsb3dFdmVudEluaXQmIGluaXRpYWxpemVy
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPdmVyZmxvd0V2ZW50KHR5cGUs
IGluaXRpYWxpemVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE92ZXJmbG93RXZl
bnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKICAgICB9CiAKICAgICB2b2lkIGluaXRPdmVyZmxvd0V2
ZW50KHVuc2lnbmVkIHNob3J0IG9yaWVudCwgYm9vbCBob3Jpem9udGFsT3ZlcmZsb3csIGJvb2wg
dmVydGljYWxPdmVyZmxvdyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGFnZVRy
YW5zaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1BhZ2VUcmFuc2l0aW9uRXZlbnQu
aAppbmRleCA4ODgzZGM0Li4zMjdhZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
UGFnZVRyYW5zaXRpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QYWdlVHJhbnNp
dGlvbkV2ZW50LmgKQEAgLTM4LDE3ICszOCwxNyBAQCBzdHJ1Y3QgUGFnZVRyYW5zaXRpb25FdmVu
dEluaXQgOiBwdWJsaWMgRXZlbnRJbml0IHsKIAogY2xhc3MgUGFnZVRyYW5zaXRpb25FdmVudCBm
aW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UGFn
ZVRyYW5zaXRpb25FdmVudD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPFBhZ2VUcmFuc2l0aW9u
RXZlbnQ+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBhZ2VU
cmFuc2l0aW9uRXZlbnQpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYWdlVHJhbnNp
dGlvbkV2ZW50KTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UGFnZVRyYW5zaXRpb25F
dmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBwZXJzaXN0ZWQpCisg
ICAgc3RhdGljIFJlZjxQYWdlVHJhbnNpdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIHBlcnNpc3RlZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgUGFnZVRyYW5zaXRpb25FdmVudCh0eXBlLCBwZXJzaXN0ZWQpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUGFnZVRyYW5zaXRpb25FdmVudCh0eXBlLCBwZXJzaXN0ZWQpKTsK
ICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UGFnZVRyYW5zaXRpb25FdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgUGFnZVRyYW5zaXRpb25FdmVudEluaXQm
IGluaXRpYWxpemVyKQorICAgIHN0YXRpYyBSZWY8UGFnZVRyYW5zaXRpb25FdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgUGFnZVRyYW5zaXRpb25FdmVudEluaXQm
IGluaXRpYWxpemVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQYWdlVHJh
bnNpdGlvbkV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFBhZ2VUcmFuc2l0aW9uRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKICAgICB9CiAK
ICAgICB2aXJ0dWFsIH5QYWdlVHJhbnNpdGlvbkV2ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUG9wU3RhdGVFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9wU3Rh
dGVFdmVudC5jcHAKaW5kZXggMGZmNTIzOC4uZGZmYTQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1BvcFN0YXRlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3BT
dGF0ZUV2ZW50LmNwcApAQCAtNjQsMTkgKzY0LDE5IEBAIFBvcFN0YXRlRXZlbnQ6On5Qb3BTdGF0
ZUV2ZW50KCkKIHsKIH0KIAotUGFzc1JlZlB0cjxQb3BTdGF0ZUV2ZW50PiBQb3BTdGF0ZUV2ZW50
OjpjcmVhdGUoKQorUmVmPFBvcFN0YXRlRXZlbnQ+IFBvcFN0YXRlRXZlbnQ6OmNyZWF0ZSgpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3BTdGF0ZUV2ZW50KTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBQb3BTdGF0ZUV2ZW50KTsKIH0KIAotUGFzc1JlZlB0cjxQb3BTdGF0ZUV2ZW50
PiBQb3BTdGF0ZUV2ZW50OjpjcmVhdGUoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IHNlcmlhbGl6ZWRTdGF0ZSwgUGFzc1JlZlB0cjxIaXN0b3J5PiBoaXN0b3J5KQorUmVmPFBvcFN0
YXRlRXZlbnQ+IFBvcFN0YXRlRXZlbnQ6OmNyZWF0ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gc2VyaWFsaXplZFN0YXRlLCBQYXNzUmVmUHRyPEhpc3Rvcnk+IGhpc3RvcnkpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3BTdGF0ZUV2ZW50KHNlcmlhbGl6ZWRTdGF0ZSwg
aGlzdG9yeSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBvcFN0YXRlRXZlbnQoc2VyaWFs
aXplZFN0YXRlLCBoaXN0b3J5KSk7CiB9CiAKLVBhc3NSZWZQdHI8UG9wU3RhdGVFdmVudD4gUG9w
U3RhdGVFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgUG9wU3Rh
dGVFdmVudEluaXQmIGluaXRpYWxpemVyKQorUmVmPFBvcFN0YXRlRXZlbnQ+IFBvcFN0YXRlRXZl
bnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFBvcFN0YXRlRXZlbnRJ
bml0JiBpbml0aWFsaXplcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcFN0YXRlRXZl
bnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQb3BTdGF0
ZUV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CiB9CiAKIEV2ZW50SW50ZXJmYWNlIFBvcFN0YXRl
RXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Qb3BTdGF0ZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9wU3RhdGVFdmVudC5o
CmluZGV4IGI2NzYyN2MuLmExZTE5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3BTdGF0ZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1BvcFN0YXRlRXZlbnQuaApA
QCAtNDQsOSArNDQsOSBAQCBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBQb3BT
dGF0ZUV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Q
b3BTdGF0ZUV2ZW50KCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UG9wU3RhdGVFdmVudD4gY3Jl
YXRlKCk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UG9wU3RhdGVFdmVudD4gY3JlYXRlKFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxIaXN0b3J5Pik7Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8UG9wU3RhdGVFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmlu
ZyYsIGNvbnN0IFBvcFN0YXRlRXZlbnRJbml0Jik7CisgICAgc3RhdGljIFJlZjxQb3BTdGF0ZUV2
ZW50PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVmPFBvcFN0YXRlRXZlbnQ+IGNyZWF0ZShQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SGlzdG9yeT4pOworICAg
IHN0YXRpYyBSZWY8UG9wU3RhdGVFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYsIGNv
bnN0IFBvcFN0YXRlRXZlbnRJbml0Jik7CiAKICAgICBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gc2VyaWFsaXplZFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zZXJpYWxpemVkU3Rh
dGU7IH0KICAgICBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgc3RhdGUoKSBjb25zdCB7
IHJldHVybiBtX3N0YXRlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvZ3Jl
c3NFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2dyZXNzRXZlbnQuaAppbmRleCBmOWYx
ZDQ1Li4wNWVjNzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvZ3Jlc3NFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9ncmVzc0V2ZW50LmgKQEAgLTQwLDE3ICs0
MCwxNyBAQCBzdHJ1Y3QgUHJvZ3Jlc3NFdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJbml0IHsKIAog
Y2xhc3MgUHJvZ3Jlc3NFdmVudCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8UHJvZ3Jlc3NFdmVudD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPFByb2dy
ZXNzRXZlbnQ+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBy
b2dyZXNzRXZlbnQpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm9ncmVzc0V2ZW50
KTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvZ3Jlc3NFdmVudD4gY3JlYXRlKGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBsZW5ndGhDb21wdXRhYmxlLCB1bnNpZ25lZCBs
b25nIGxvbmcgbG9hZGVkLCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWwpCisgICAgc3RhdGljIFJl
ZjxQcm9ncmVzc0V2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGxl
bmd0aENvbXB1dGFibGUsIHVuc2lnbmVkIGxvbmcgbG9uZyBsb2FkZWQsIHVuc2lnbmVkIGxvbmcg
bG9uZyB0b3RhbCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHJvZ3Jlc3NF
dmVudCh0eXBlLCBsZW5ndGhDb21wdXRhYmxlLCBsb2FkZWQsIHRvdGFsKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFByb2dyZXNzRXZlbnQodHlwZSwgbGVuZ3RoQ29tcHV0YWJsZSwg
bG9hZGVkLCB0b3RhbCkpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9ncmVzc0V2
ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBQcm9ncmVzc0V2ZW50
SW5pdCYgaW5pdGlhbGl6ZXIpCisgICAgc3RhdGljIFJlZjxQcm9ncmVzc0V2ZW50PiBjcmVhdGUo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBQcm9ncmVzc0V2ZW50SW5pdCYgaW5pdGlh
bGl6ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2dyZXNzRXZlbnQo
dHlwZSwgaW5pdGlhbGl6ZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHJvZ3Jl
c3NFdmVudCh0eXBlLCBpbml0aWFsaXplcikpOwogICAgIH0KIAogICAgIGJvb2wgbGVuZ3RoQ29t
cHV0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoQ29tcHV0YWJsZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VGV4dEV2ZW50LmNwcAppbmRleCA0YTMxNDExLi42OTY0NGE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVGV4dEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2
ZW50LmNwcApAQCAtMzIsMzQgKzMyLDM0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFz
c1JlZlB0cjxUZXh0RXZlbnQ+IFRleHRFdmVudDo6Y3JlYXRlKCkKK1JlZjxUZXh0RXZlbnQ+IFRl
eHRFdmVudDo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHRFdmVudCk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dEV2ZW50KTsKIH0KIAotUGFzc1JlZlB0cjxU
ZXh0RXZlbnQ+IFRleHRFdmVudDo6Y3JlYXRlKFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3
LCBjb25zdCBTdHJpbmcmIGRhdGEsIFRleHRFdmVudElucHV0VHlwZSBpbnB1dFR5cGUpCitSZWY8
VGV4dEV2ZW50PiBUZXh0RXZlbnQ6OmNyZWF0ZShQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmll
dywgY29uc3QgU3RyaW5nJiBkYXRhLCBUZXh0RXZlbnRJbnB1dFR5cGUgaW5wdXRUeXBlKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dEV2ZW50KHZpZXcsIGRhdGEsIGlucHV0VHlwZSkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRFdmVudCh2aWV3LCBkYXRhLCBpbnB1dFR5
cGUpKTsKIH0KIAotUGFzc1JlZlB0cjxUZXh0RXZlbnQ+IFRleHRFdmVudDo6Y3JlYXRlRm9yUGxh
aW5UZXh0UGFzdGUoUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsIGNvbnN0IFN0cmluZyYg
ZGF0YSwgYm9vbCBzaG91bGRTbWFydFJlcGxhY2UpCitSZWY8VGV4dEV2ZW50PiBUZXh0RXZlbnQ6
OmNyZWF0ZUZvclBsYWluVGV4dFBhc3RlKFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBj
b25zdCBTdHJpbmcmIGRhdGEsIGJvb2wgc2hvdWxkU21hcnRSZXBsYWNlKQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgVGV4dEV2ZW50KHZpZXcsIGRhdGEsIDAsIHNob3VsZFNtYXJ0UmVwbGFj
ZSwgZmFsc2UsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dEV2ZW50KHZpZXcsIGRhdGEsIDAsIHNob3VsZFNt
YXJ0UmVwbGFjZSwgZmFsc2UsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1
b3RlKSk7CiB9CiAKLVBhc3NSZWZQdHI8VGV4dEV2ZW50PiBUZXh0RXZlbnQ6OmNyZWF0ZUZvckZy
YWdtZW50UGFzdGUoUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsIFBhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gZGF0YSwgYm9vbCBzaG91bGRTbWFydFJlcGxhY2UsIGJvb2wgc2hvdWxk
TWF0Y2hTdHlsZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxvY2txdW90ZUhhbmRsaW5n
KQorUmVmPFRleHRFdmVudD4gVGV4dEV2ZW50OjpjcmVhdGVGb3JGcmFnbWVudFBhc3RlKFBhc3NS
ZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRh
dGEsIGJvb2wgc2hvdWxkU21hcnRSZXBsYWNlLCBib29sIHNob3VsZE1hdGNoU3R5bGUsIE1haWxC
bG9ja3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFRleHRFdmVudCh2aWV3LCAiIiwgZGF0YSwgc2hvdWxkU21hcnRSZXBsYWNl
LCBzaG91bGRNYXRjaFN0eWxlLCBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVGV4dEV2ZW50KHZpZXcsICIiLCBkYXRhLCBzaG91bGRTbWFydFJlcGxh
Y2UsIHNob3VsZE1hdGNoU3R5bGUsIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpKTsKIH0KIAotUGFz
c1JlZlB0cjxUZXh0RXZlbnQ+IFRleHRFdmVudDo6Y3JlYXRlRm9yRHJvcChQYXNzUmVmUHRyPEFi
c3RyYWN0Vmlldz4gdmlldywgY29uc3QgU3RyaW5nJiBkYXRhKQorUmVmPFRleHRFdmVudD4gVGV4
dEV2ZW50OjpjcmVhdGVGb3JEcm9wKFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBjb25z
dCBTdHJpbmcmIGRhdGEpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0RXZlbnQodmll
dywgZGF0YSwgVGV4dEV2ZW50SW5wdXREcm9wKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VGV4dEV2ZW50KHZpZXcsIGRhdGEsIFRleHRFdmVudElucHV0RHJvcCkpOwogfQogCi1QYXNzUmVm
UHRyPFRleHRFdmVudD4gVGV4dEV2ZW50OjpjcmVhdGVGb3JEaWN0YXRpb24oUGFzc1JlZlB0cjxB
YnN0cmFjdFZpZXc+IHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgVmVjdG9yPERpY3Rh
dGlvbkFsdGVybmF0aXZlPiYgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKQorUmVmPFRleHRFdmVudD4g
VGV4dEV2ZW50OjpjcmVhdGVGb3JEaWN0YXRpb24oUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZp
ZXcsIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZl
PiYgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4
dEV2ZW50KHZpZXcsIGRhdGEsIGRpY3RhdGlvbkFsdGVybmF0aXZlcykpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFRleHRFdmVudCh2aWV3LCBkYXRhLCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMp
KTsKIH0KIAogVGV4dEV2ZW50OjpUZXh0RXZlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1RleHRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5oCmluZGV4
IGFlZjU3M2EuLmRmMDhiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmgKQEAgLTQwLDEyICs0MCwx
MiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgVGV4dEV2ZW50IGZpbmFsIDogcHVi
bGljIFVJRXZlbnQgewogICAgIHB1YmxpYzoKIAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxU
ZXh0RXZlbnQ+IGNyZWF0ZSgpOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0RXZlbnQ+
IGNyZWF0ZShQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sIGNvbnN0IFN0cmluZyYgZGF0YSwgVGV4
dEV2ZW50SW5wdXRUeXBlID0gVGV4dEV2ZW50SW5wdXRLZXlib2FyZCk7Ci0gICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFRleHRFdmVudD4gY3JlYXRlRm9yUGxhaW5UZXh0UGFzdGUoUGFzc1JlZlB0
cjxBYnN0cmFjdFZpZXc+LCBjb25zdCBTdHJpbmcmIGRhdGEsIGJvb2wgc2hvdWxkU21hcnRSZXBs
YWNlKTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dEV2ZW50PiBjcmVhdGVGb3JGcmFn
bWVudFBhc3RlKFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiwgUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBkYXRhLCBib29sIHNob3VsZFNtYXJ0UmVwbGFjZSwgYm9vbCBzaG91bGRNYXRjaFN0
eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nKTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
VGV4dEV2ZW50PiBjcmVhdGVGb3JEcm9wKFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiwgY29uc3Qg
U3RyaW5nJiBkYXRhKTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dEV2ZW50PiBjcmVh
dGVGb3JEaWN0YXRpb24oUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBjb25zdCBTdHJpbmcmIGRh
dGEsIGNvbnN0IFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGRpY3RhdGlvbkFsdGVybmF0
aXZlcyk7CisgICAgICAgIHN0YXRpYyBSZWY8VGV4dEV2ZW50PiBjcmVhdGUoKTsKKyAgICAgICAg
c3RhdGljIFJlZjxUZXh0RXZlbnQ+IGNyZWF0ZShQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sIGNv
bnN0IFN0cmluZyYgZGF0YSwgVGV4dEV2ZW50SW5wdXRUeXBlID0gVGV4dEV2ZW50SW5wdXRLZXli
b2FyZCk7CisgICAgICAgIHN0YXRpYyBSZWY8VGV4dEV2ZW50PiBjcmVhdGVGb3JQbGFpblRleHRQ
YXN0ZShQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sIGNvbnN0IFN0cmluZyYgZGF0YSwgYm9vbCBz
aG91bGRTbWFydFJlcGxhY2UpOworICAgICAgICBzdGF0aWMgUmVmPFRleHRFdmVudD4gY3JlYXRl
Rm9yRnJhZ21lbnRQYXN0ZShQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sIFBhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gZGF0YSwgYm9vbCBzaG91bGRTbWFydFJlcGxhY2UsIGJvb2wgc2hvdWxk
TWF0Y2hTdHlsZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyk7CisgICAgICAgIHN0YXRpYyBSZWY8
VGV4dEV2ZW50PiBjcmVhdGVGb3JEcm9wKFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiwgY29uc3Qg
U3RyaW5nJiBkYXRhKTsKKyAgICAgICAgc3RhdGljIFJlZjxUZXh0RXZlbnQ+IGNyZWF0ZUZvckRp
Y3RhdGlvbihQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sIGNvbnN0IFN0cmluZyYgZGF0YSwgY29u
c3QgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKTsK
IAogICAgICAgICB2aXJ0dWFsIH5UZXh0RXZlbnQoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVu
dC5oCmluZGV4IGFhMDY3OTUuLmJjZjA5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ub3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuaApAQCAt
NDAsOSArNDAsOSBAQCBjbGFzcyBUb3VjaEV2ZW50IGZpbmFsIDogcHVibGljIE1vdXNlUmVsYXRl
ZEV2ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Ub3VjaEV2ZW50KCk7CiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxUb3VjaEV2ZW50PiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8VG91Y2hF
dmVudD4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVG91Y2hF
dmVudCk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRvdWNoRXZlbnQpOwogICAgIH0K
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUb3VjaEV2ZW50PiBjcmVhdGUoVG91Y2hMaXN0KiB0b3Vj
aGVzLCAKICAgICAgICAgICAgIFRvdWNoTGlzdCogdGFyZ2V0VG91Y2hlcywgVG91Y2hMaXN0KiBj
aGFuZ2VkVG91Y2hlcywgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlv
bkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50LmgKaW5kZXggM2Vh
ZGIyMi4uNDJhOGZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYW5zaXRpb25F
dmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmFuc2l0aW9uRXZlbnQuaApAQCAtNDEs
MTcgKzQxLDE3IEBAIHN0cnVjdCBUcmFuc2l0aW9uRXZlbnRJbml0IDogcHVibGljIEV2ZW50SW5p
dCB7CiAKIGNsYXNzIFRyYW5zaXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VHJhbnNpdGlvbkV2ZW50PiBjcmVhdGUoKQorICAg
IHN0YXRpYyBSZWY8VHJhbnNpdGlvbkV2ZW50PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUcmFuc2l0aW9uRXZlbnQpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUcmFuc2l0aW9uRXZlbnQpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxU
cmFuc2l0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0
cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNl
dWRvRWxlbWVudCkKKyAgICBzdGF0aWMgUmVmPFRyYW5zaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSBl
bGFwc2VkVGltZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50KQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBUcmFuc2l0aW9uRXZlbnQodHlwZSwgcHJvcGVydHlOYW1lLCBl
bGFwc2VkVGltZSwgcHNldWRvRWxlbWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBUcmFuc2l0aW9uRXZlbnQodHlwZSwgcHJvcGVydHlOYW1lLCBlbGFwc2VkVGltZSwgcHNldWRv
RWxlbWVudCkpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUcmFuc2l0aW9uRXZlbnQ+
IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFRyYW5zaXRpb25FdmVudElu
aXQmIGluaXRpYWxpemVyKQorICAgIHN0YXRpYyBSZWY8VHJhbnNpdGlvbkV2ZW50PiBjcmVhdGUo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBUcmFuc2l0aW9uRXZlbnRJbml0JiBpbml0
aWFsaXplcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVHJhbnNpdGlvbkV2
ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRy
YW5zaXRpb25FdmVudCh0eXBlLCBpbml0aWFsaXplcikpOwogICAgIH0KIAogICAgIHZpcnR1YWwg
flRyYW5zaXRpb25FdmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKaW5kZXggZjlmZTE0NC4uNjY5MGZl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVUlFdmVudC5oCkBAIC00MSwxNyArNDEsMTcgQEAgc3RydWN0IFVJRXZlbnRJ
bml0IDogcHVibGljIEV2ZW50SW5pdCB7CiAKIGNsYXNzIFVJRXZlbnQgOiBwdWJsaWMgRXZlbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVJRXZlbnQ+IGNyZWF0ZSgpCisgICAg
c3RhdGljIFJlZjxVSUV2ZW50PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBVSUV2ZW50KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVUlFdmVudCk7
CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVJRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQ
dHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBpbnQgZGV0YWlsKQorICAgIHN0YXRpYyBSZWY8VUlFdmVu
dD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wg
Y2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsIGludCBkZXRhaWwpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVJRXZlbnQodHlwZSwgY2FuQnViYmxl
LCBjYW5jZWxhYmxlLCB2aWV3LCBkZXRhaWwpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgVUlFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHZpZXcsIGRldGFpbCkpOwog
ICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxVSUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBjb25zdCBVSUV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCisgICAgc3RhdGlj
IFJlZjxVSUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBVSUV2
ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFVJRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgVUlFdmVudCh0eXBlLCBpbml0aWFsaXplcikpOwogICAgIH0KICAgICB2aXJ0dWFsIH5VSUV2
ZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25F
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmgKaW5kZXgg
MmEzMTdmNC4uZGJjOTc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdEFu
aW1hdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2
ZW50LmgKQEAgLTM5LDE3ICszOSwxNyBAQCBzdHJ1Y3QgV2ViS2l0QW5pbWF0aW9uRXZlbnRJbml0
IDogcHVibGljIEV2ZW50SW5pdCB7CiAKIGNsYXNzIFdlYktpdEFuaW1hdGlvbkV2ZW50IGZpbmFs
IDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRB
bmltYXRpb25FdmVudD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPFdlYktpdEFuaW1hdGlvbkV2
ZW50PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRB
bmltYXRpb25FdmVudCk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYktpdEFuaW1h
dGlvbkV2ZW50KTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9u
RXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgYW5p
bWF0aW9uTmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKQorICAgIHN0YXRpYyBSZWY8V2ViS2l0QW5p
bWF0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRBbmltYXRpb25FdmVudCh0eXBlLCBhbmltYXRpb25OYW1l
LCBlbGFwc2VkVGltZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJLaXRBbmlt
YXRpb25FdmVudCh0eXBlLCBhbmltYXRpb25OYW1lLCBlbGFwc2VkVGltZSkpOwogICAgIH0KLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgY29uc3QgV2ViS2l0QW5pbWF0aW9uRXZlbnRJbml0JiBpbml0aWFs
aXplcikKKyAgICBzdGF0aWMgUmVmPFdlYktpdEFuaW1hdGlvbkV2ZW50PiBjcmVhdGUoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJLaXRBbmltYXRpb25FdmVudEluaXQmIGluaXRp
YWxpemVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRBbmltYXRp
b25FdmVudCh0eXBlLCBpbml0aWFsaXplcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXZWJLaXRBbmltYXRpb25FdmVudCh0eXBlLCBpbml0aWFsaXplcikpOwogICAgIH0KIAogICAg
IHZpcnR1YWwgfldlYktpdEFuaW1hdGlvbkV2ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50LmgKaW5kZXggYzFkZjM3Mi4uYWZkOTc0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaApAQCAtNDAsMTcgKzQwLDE3IEBAIHN0
cnVjdCBXZWJLaXRUcmFuc2l0aW9uRXZlbnRJbml0IDogcHVibGljIEV2ZW50SW5pdCB7CiAKIGNs
YXNzIFdlYktpdFRyYW5zaXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0VHJhbnNpdGlvbkV2ZW50PiBjcmVhdGUoKQor
ICAgIHN0YXRpYyBSZWY8V2ViS2l0VHJhbnNpdGlvbkV2ZW50PiBjcmVhdGUoKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRUcmFuc2l0aW9uRXZlbnQpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJLaXRUcmFuc2l0aW9uRXZlbnQpOwogICAgIH0KLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRUcmFuc2l0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxh
cHNlZFRpbWUsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudCkKKyAgICBzdGF0aWMgUmVmPFdl
YktpdFRyYW5zaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5n
JiBwc2V1ZG9FbGVtZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJL
aXRUcmFuc2l0aW9uRXZlbnQodHlwZSwgcHJvcGVydHlOYW1lLCBlbGFwc2VkVGltZSwgcHNldWRv
RWxlbWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJLaXRUcmFuc2l0aW9u
RXZlbnQodHlwZSwgcHJvcGVydHlOYW1lLCBlbGFwc2VkVGltZSwgcHNldWRvRWxlbWVudCkpOwog
ICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRUcmFuc2l0aW9uRXZlbnQ+IGNyZWF0
ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFdlYktpdFRyYW5zaXRpb25FdmVudElu
aXQmIGluaXRpYWxpemVyKQorICAgIHN0YXRpYyBSZWY8V2ViS2l0VHJhbnNpdGlvbkV2ZW50PiBj
cmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJLaXRUcmFuc2l0aW9uRXZl
bnRJbml0JiBpbml0aWFsaXplcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V2ViS2l0VHJhbnNpdGlvbkV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYktpdFRyYW5zaXRpb25FdmVudCh0eXBlLCBpbml0aWFsaXplcikp
OwogICAgIH0KIAogICAgIHZpcnR1YWwgfldlYktpdFRyYW5zaXRpb25FdmVudCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XaGVlbEV2ZW50LmgKaW5kZXggOTRjY2Y0My4uNWQxNWJiZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxF
dmVudC5oCkBAIC01NCwxOSArNTQsMTkgQEAgcHVibGljOgogICAgICAgICBET01fREVMVEFfUEFH
RQogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXaGVlbEV2ZW50PiBjcmVhdGUoKQor
ICAgIHN0YXRpYyBSZWY8V2hlZWxFdmVudD4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgV2hlZWxFdmVudCk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdoZWVsRXZlbnQpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdoZWVsRXZlbnQ+
IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFdoZWVsRXZlbnRJbml0JiBp
bml0aWFsaXplcikKKyAgICBzdGF0aWMgUmVmPFdoZWVsRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGNvbnN0IFdoZWVsRXZlbnRJbml0JiBpbml0aWFsaXplcikKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2hlZWxFdmVudCh0eXBlLCBpbml0aWFsaXpl
cikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXaGVlbEV2ZW50KHR5cGUsIGluaXRp
YWxpemVyKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2hlZWxFdmVudD4gY3Jl
YXRlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIFBhc3NSZWZQdHI8QWJzdHJhY3RW
aWV3PiB2aWV3KQorICAgIHN0YXRpYyBSZWY8V2hlZWxFdmVudD4gY3JlYXRlKGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgZXZlbnQsIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXaGVlbEV2ZW50KGV2ZW50LCB2aWV3KSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdoZWVsRXZlbnQoZXZlbnQsIHZpZXcpKTsK
ICAgICB9CiAKICAgICB2b2lkIGluaXRXaGVlbEV2ZW50KGludCByYXdEZWx0YVgsIGludCByYXdE
ZWx0YVksIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFLZXlFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUtleUV2
ZW50LmgKaW5kZXggODBhZWYwYy4uNzc0ZGUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9NZWRpYUtleUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUtleUV2
ZW50LmgKQEAgLTQ5LDE0ICs0OSwxNCBAQCBjbGFzcyBNZWRpYUtleUV2ZW50IGZpbmFsIDogcHVi
bGljIEV2ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NZWRpYUtleUV2ZW50KCk7CiAKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUtleUV2ZW50PiBjcmVhdGUoKQorICAgIHN0YXRpYyBS
ZWY8TWVkaWFLZXlFdmVudD4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgTWVkaWFLZXlFdmVudCk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlh
S2V5RXZlbnQpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhS2V5RXZlbnQ+
IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IE1lZGlhS2V5RXZlbnRJbml0
JiBpbml0aWFsaXplcikKKyAgICBzdGF0aWMgUmVmPE1lZGlhS2V5RXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IE1lZGlhS2V5RXZlbnRJbml0JiBpbml0aWFsaXpl
cikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFLZXlFdmVudCh0eXBl
LCBpbml0aWFsaXplcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUtleUV2
ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCBFdmVudEludGVy
ZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmgKaW5kZXggZDc1MjlmMC4uMjA1NjVlNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5oCkBA
IC0zOCwxNyArMzgsMTcgQEAgc3RydWN0IFdlYkdMQ29udGV4dEV2ZW50SW5pdCA6IHB1YmxpYyBF
dmVudEluaXQgewogCiBjbGFzcyBXZWJHTENvbnRleHRFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViR0xDb250ZXh0RXZlbnQ+IGNy
ZWF0ZSgpCisgICAgc3RhdGljIFJlZjxXZWJHTENvbnRleHRFdmVudD4gY3JlYXRlKCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViR0xDb250ZXh0RXZlbnQpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTENvbnRleHRFdmVudCk7CiAgICAgfQotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYkdMQ29udGV4dEV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBjb25zdCBTdHJpbmcm
IHN0YXR1c01lc3NhZ2UpCisgICAgc3RhdGljIFJlZjxXZWJHTENvbnRleHRFdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgY29uc3QgU3RyaW5nJiBzdGF0dXNNZXNzYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJHTENvbnRleHRFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUs
IHN0YXR1c01lc3NhZ2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR0xDb250
ZXh0RXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBzdGF0dXNNZXNzYWdlKSk7CiAg
ICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkdMQ29udGV4dEV2ZW50PiBjcmVhdGUoY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJHTENvbnRleHRFdmVudEluaXQmIGluaXRp
YWxpemVyKQorICAgIHN0YXRpYyBSZWY8V2ViR0xDb250ZXh0RXZlbnQ+IGNyZWF0ZShjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFdlYkdMQ29udGV4dEV2ZW50SW5pdCYgaW5pdGlhbGl6
ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkdMQ29udGV4dEV2ZW50
KHR5cGUsIGluaXRpYWxpemVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdM
Q29udGV4dEV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfldl
YkdMQ29udGV4dEV2ZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVHJhY2tFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0V2ZW50LmgK
aW5kZXggYWFlN2Q4Mi4uY2E0MDgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UcmFja0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0V2
ZW50LmgKQEAgLTQzLDE0ICs0MywxNCBAQCBjbGFzcyBUcmFja0V2ZW50IGZpbmFsIDogcHVibGlj
IEV2ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UcmFja0V2ZW50KCk7CiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxUcmFja0V2ZW50PiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8VHJhY2tF
dmVudD4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVHJhY2tF
dmVudCk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRyYWNrRXZlbnQpOwogICAgIH0K
IAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRyYWNrRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGNvbnN0IFRyYWNrRXZlbnRJbml0JiBpbml0aWFsaXplcikKKyAgICBzdGF0
aWMgUmVmPFRyYWNrRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0
IFRyYWNrRXZlbnRJbml0JiBpbml0aWFsaXplcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgVHJhY2tFdmVudCh0eXBlLCBpbml0aWFsaXplcikpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUcmFja0V2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CiAgICAgfQogCiAg
ICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuY3BwCmluZGV4IGU3ZDczZDUuLmVk
MTE3MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5jcHAKQEAgLTM1LDkg
KzM1LDkgQEAgU3RvcmFnZUV2ZW50SW5pdDo6U3RvcmFnZUV2ZW50SW5pdCgpCiB7CiB9CiAKLVBh
c3NSZWZQdHI8U3RvcmFnZUV2ZW50PiBTdG9yYWdlRXZlbnQ6OmNyZWF0ZSgpCitSZWY8U3RvcmFn
ZUV2ZW50PiBTdG9yYWdlRXZlbnQ6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTdG9yYWdlRXZlbnQpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VFdmVudCk7
CiB9CiAKIFN0b3JhZ2VFdmVudDo6U3RvcmFnZUV2ZW50KCkKQEAgLTQ4LDE0ICs0OCwxNCBAQCBT
dG9yYWdlRXZlbnQ6On5TdG9yYWdlRXZlbnQoKQogewogfQogCi1QYXNzUmVmUHRyPFN0b3JhZ2VF
dmVudD4gU3RvcmFnZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdW
YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmwsIFN0b3JhZ2UqIHN0b3JhZ2VBcmVhKQorUmVmPFN0b3Jh
Z2VFdmVudD4gU3RvcmFnZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBu
ZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmwsIFN0b3JhZ2UqIHN0b3JhZ2VBcmVhKQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU3RvcmFnZUV2ZW50KHR5cGUsIGtleSwgb2xkVmFsdWUsIG5l
d1ZhbHVlLCB1cmwsIHN0b3JhZ2VBcmVhKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Rv
cmFnZUV2ZW50KHR5cGUsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCB1cmwsIHN0b3JhZ2VBcmVh
KSk7CiB9CiAKLVBhc3NSZWZQdHI8U3RvcmFnZUV2ZW50PiBTdG9yYWdlRXZlbnQ6OmNyZWF0ZShj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0b3JhZ2VFdmVudEluaXQmIGluaXRpYWxp
emVyKQorUmVmPFN0b3JhZ2VFdmVudD4gU3RvcmFnZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBjb25zdCBTdG9yYWdlRXZlbnRJbml0JiBpbml0aWFsaXplcikKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFN0b3JhZ2VFdmVudCh0eXBlLCBpbml0aWFsaXplcikpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VFdmVudCh0eXBlLCBpbml0aWFsaXplcikp
OwogfQogCiBTdG9yYWdlRXZlbnQ6OlN0b3JhZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJp
bmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybCwgU3RvcmFnZSogc3RvcmFnZUFyZWEpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuaAppbmRleCA3ODNhNjI2Li45NjJhNDI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmgKQEAgLTQ1LDkgKzQ1LDkgQEAgc3Ry
dWN0IFN0b3JhZ2VFdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJbml0IHsKIAogY2xhc3MgU3RvcmFn
ZUV2ZW50IDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dG9yYWdlRXZlbnQ+IGNyZWF0ZSgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0b3JhZ2VFdmVu
dD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBrZXksIGNv
bnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBTdG9yYWdlKiBzdG9yYWdlQXJlYSk7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3Rv
cmFnZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgU3RvcmFnZUV2ZW50
SW5pdCYpOworICAgIHN0YXRpYyBSZWY8U3RvcmFnZUV2ZW50PiBjcmVhdGUoKTsKKyAgICBzdGF0
aWMgUmVmPFN0b3JhZ2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3
VmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsLCBTdG9yYWdlKiBzdG9yYWdlQXJlYSk7CisgICAgc3Rh
dGljIFJlZjxTdG9yYWdlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBT
dG9yYWdlRXZlbnRJbml0Jik7CiAgICAgdmlydHVhbCB+U3RvcmFnZUV2ZW50KCk7CiAKICAgICBj
b25zdCBTdHJpbmcmIGtleSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5OyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHWm9vbUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Wm9vbUV2ZW50LmgKaW5kZXggNGQxYmYxOC4uYTAzYWJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1pvb21FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdab29t
RXZlbnQuaApAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNW
R1pvb21FdmVudCA6IHB1YmxpYyBVSUV2ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTVkdab29tRXZlbnQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdab29t
RXZlbnQpOyB9CisgICAgc3RhdGljIFJlZjxTVkdab29tRXZlbnQ+IGNyZWF0ZSgpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHWm9vbUV2ZW50KTsgfQogCiAgICAgLy8gJ1NWR1pvb21FdmVudCcg
ZnVuY3Rpb25zCiAgICAgRmxvYXRSZWN0IHpvb21SZWN0U2NyZWVuKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgKaW5kZXggNGQ1
ODE1MC4uOTY3MDI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuaApAQCAtMzMsMTMgKzMzLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50IDogcHVibGljIFByb2dyZXNzRXZl
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudD4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50KTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBib29sIGxlbmd0aENvbXB1dGFibGUgPSBmYWxzZSwgdW5zaWduZWQgbG9uZyBsb25nIGxv
YWRlZCA9IDAsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbCA9IDApCisgICAgc3RhdGljIFJlZjxY
TUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgbGVuZ3RoQ29tcHV0YWJsZSA9IGZhbHNlLCB1bnNpZ25lZCBsb25nIGxvbmcgbG9h
ZGVkID0gMCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsID0gMCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50KHR5cGUsIGxlbmd0
aENvbXB1dGFibGUsIGxvYWRlZCwgdG90YWwpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50KHR5cGUsIGxlbmd0aENvbXB1dGFibGUsIGxv
YWRlZCwgdG90YWwpKTsKICAgICB9CiAKICAgICAvLyBUaG9zZSAyIHN5bm9ueW1zIGFyZSBpbmNs
dWRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIEZpcmVmb3guCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNDlhOWMzNC4uYmVmZDc4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjI1
Miw3ICsyMjUyLDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRJbml0aWFsRm9jdXMoYm9vbCBmb3J3YXJk
LCBib29sIGlzS2V5Ym9hcmRFdmVudFZhbGlkLCBjb25zdCBXZWIKICAgICBpZiAoaXNLZXlib2Fy
ZEV2ZW50VmFsaWQgJiYgZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpLZXlEb3duKSB7CiAgICAg
ICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwbGF0Zm9ybUV2ZW50KHBsYXRmb3JtKGV2ZW50KSk7
CiAgICAgICAgIHBsYXRmb3JtRXZlbnQuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3Jt
RXZlbnQ6OlJhd0tleURvd24pOwotICAgICAgICBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNl
dEluaXRpYWxGb2N1cyhmb3J3YXJkID8gRm9jdXNEaXJlY3Rpb25Gb3J3YXJkIDogRm9jdXNEaXJl
Y3Rpb25CYWNrd2FyZCwgS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBsYXRmb3JtRXZlbnQsIGZyYW1l
LmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCkpLmdldCgpKTsKKyAgICAgICAgbV9wYWdlLT5mb2N1
c0NvbnRyb2xsZXIoKS5zZXRJbml0aWFsRm9jdXMoZm9yd2FyZCA/IEZvY3VzRGlyZWN0aW9uRm9y
d2FyZCA6IEZvY3VzRGlyZWN0aW9uQmFja3dhcmQsICZLZXlib2FyZEV2ZW50OjpjcmVhdGUocGxh
dGZvcm1FdmVudCwgZnJhbWUuZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSkuZ2V0KCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>