<?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>69851</bug_id>
          
          <creation_ts>2011-10-11 10:47:31 -0700</creation_ts>
          <short_desc>Rename virtual put to putVirtual</short_desc>
          <delta_ts>2011-10-17 02:09:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>67690</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>abarth</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>paroga</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>481728</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-11 10:47:31 -0700</bug_when>
    <thetext>Since the compiler cannot tell the difference between virtual put and static put, we need to rename virtual put to putVirtual in preparation for adding static put to the MethodTable in ClassInfo.  See also bug 69810.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481738</commentid>
    <comment_count>1</comment_count>
      <attachid>110540</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-11 11:00:39 -0700</bug_when>
    <thetext>Created attachment 110540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481751</commentid>
    <comment_count>2</comment_count>
      <attachid>110540</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-11 11:22:50 -0700</bug_when>
    <thetext>Comment on attachment 110540
Patch

Attachment 110540 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10029580</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482005</commentid>
    <comment_count>3</comment_count>
      <attachid>110540</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-10-11 16:19:53 -0700</bug_when>
    <thetext>Comment on attachment 110540
Patch

Attachment 110540 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10031581</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482031</commentid>
    <comment_count>4</comment_count>
      <attachid>110540</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-10-11 16:46:55 -0700</bug_when>
    <thetext>Comment on attachment 110540
Patch

Attachment 110540 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10029667</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482583</commentid>
    <comment_count>5</comment_count>
      <attachid>110717</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-12 11:54:50 -0700</bug_when>
    <thetext>Created attachment 110717
Fix builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483030</commentid>
    <comment_count>6</comment_count>
      <attachid>110717</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-10-13 00:02:33 -0700</bug_when>
    <thetext>Comment on attachment 110717
Fix builds

Attachment 110717 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10060076</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483287</commentid>
    <comment_count>7</comment_count>
      <attachid>110872</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-13 10:33:45 -0700</bug_when>
    <thetext>Created attachment 110872
Fix windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483728</commentid>
    <comment_count>8</comment_count>
      <attachid>110872</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-10-13 19:21:28 -0700</bug_when>
    <thetext>Comment on attachment 110872
Fix windows

Attachment 110872 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10056387</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484051</commentid>
    <comment_count>9</comment_count>
      <attachid>111026</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-14 10:24:07 -0700</bug_when>
    <thetext>Created attachment 111026
Fix gtk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484075</commentid>
    <comment_count>10</comment_count>
      <attachid>111030</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-14 11:09:21 -0700</bug_when>
    <thetext>Created attachment 111030
Fix gtk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484338</commentid>
    <comment_count>11</comment_count>
      <attachid>111030</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-14 15:09:26 -0700</bug_when>
    <thetext>Comment on attachment 111030
Fix gtk

Rejecting attachment 111030 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ching file Source/WebKit2/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.cpp
patching file Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h
Hunk #1 succeeded at 86 with fuzz 2.
patching file Source/WebKit2/WebProcess/Plugins/Netscape/NPJSObject.cpp
patching file Source/autotools/symbols.filter

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Darin Adler&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/10060688</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484415</commentid>
    <comment_count>12</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-14 17:04:04 -0700</bug_when>
    <thetext>Committed r97532: &lt;http://trac.webkit.org/changeset/97532&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485008</commentid>
    <comment_count>13</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-10-17 02:09:49 -0700</bug_when>
    <thetext>Committed interpreter build fix r97593: &lt;http://trac.webkit.org/changeset/97593&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110540</attachid>
            <date>2011-10-11 11:00:39 -0700</date>
            <delta_ts>2011-10-12 11:54:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69851-20111011110041.patch</filename>
            <type>text/plain</type>
            <size>113246</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcwNjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggNTcxMzM3YWViNjg5MzA5ODJhNzMxNThjNDJiNmNiMmU0
ODYxODhmNi4uZDU4Mzg4M2UxMGYyYTg0ZTRhNjM1NzM1NDcxZjliMmI1MTEyYTBkMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE4MSw3ICsx
ODEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwor
ICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwogCiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
YWxsYmFja09iamVjdEZ1bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKaW5kZXggMjNkMWE4YzI4ODJmOGRhZGU2YWE2ZGViM2I3
YjZmMTUzODRkZWM5MC4uYTZmNDY5YTc1NzU3NmIxNWFkZDQyMzkxYmQyYjFkMTRjNDZhYzNkNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVu
Y3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0
RnVuY3Rpb25zLmgKQEAgLTIwMSw3ICsyMDEsNyBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFy
ZW50Pjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSQog
fQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50Pgotdm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IGZhNjgyZDhmYTJlOTAw
OGMyNjg4MjBmYmU4NDI5ZTFlMDM2MWI5YjQuLjQ2MmU0Mjk1YzU4NmY0N2MxZDBkMmJhNjRkZTgw
YzczOTU1N2RhOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmpl
Y3RSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3Bw
CkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBKU09iamVjdFNldFByb3BlcnR5KEpTQ29udGV4dFJl
ZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGUKICAgICAgICAganNP
YmplY3QtPnB1dFdpdGhBdHRyaWJ1dGVzKGV4ZWMsIG5hbWUsIGpzVmFsdWUsIGF0dHJpYnV0ZXMp
OwogICAgIGVsc2UgewogICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAganNP
YmplY3QtPnB1dChleGVjLCBuYW1lLCBqc1ZhbHVlLCBzbG90KTsKKyAgICAgICAganNPYmplY3Qt
PnB1dFZpcnR1YWwoZXhlYywgbmFtZSwganNWYWx1ZSwgc2xvdCk7CiAgICAgfQogCiAgICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CkBAIC0zMTIsNyArMzEyLDcgQEAgdm9pZCBKU09iamVj
dFNldFByb3BlcnR5QXRJbmRleChKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3Qs
IHVuc2lnbmVkIHAKICAgICBKU09iamVjdCoganNPYmplY3QgPSB0b0pTKG9iamVjdCk7CiAgICAg
SlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCB2YWx1ZSk7CiAgICAgCi0gICAganNPYmplY3Qt
PnB1dChleGVjLCBwcm9wZXJ0eUluZGV4LCBqc1ZhbHVlKTsKKyAgICBqc09iamVjdC0+cHV0Vmly
dHVhbChleGVjLCBwcm9wZXJ0eUluZGV4LCBqc1ZhbHVlKTsKICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpIHsKICAgICAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgICAgICpleGNlcHRp
b24gPSB0b1JlZihleGVjLCBleGVjLT5leGNlcHRpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCAzNjZlNWZlZDBhODMzZmM4MDdhMGNiOGJkODQxMzkwNjc1MmNhMzI3Li42ZjlmZjBm
YzQ4YWU2NWJiYTcyOWIxNGRkYjIxNTdiMDk2ZjJhMjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMDcgQEAKKzIwMTEtMTAtMTEgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgdmlydHVhbCBwdXQgdG8gcHV0Vmly
dHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5h
bWVkIHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRvIHB1dFZpcnR1YWwgaW4gcHJlcHJhdGlvbiBm
b3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGljIHB1dCB0byB0aGUgTWV0aG9kVGFibGUgaW4g
Q2xhc3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAgY29tcGlsZXIgZ2V0cyBtYWQgaWYgdGhlIHZp
cnR1YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZlIHRoZSBzYW1lIAorICAgICAgICBuYW1lLgor
CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxs
YmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjo6OnB1dFZpcnR1YWwpOgorICAg
ICAgICAqIEFQSS9KU09iamVjdFJlZi5jcHA6CisgICAgICAgIChKU09iamVjdFNldFByb3BlcnR5
KToKKyAgICAgICAgKEpTT2JqZWN0U2V0UHJvcGVydHlBdEluZGV4KToKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS5leHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNw
cDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9uOjpwdXRWaXJ0dWFsKToKKyAgICAg
ICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9uOjpwdXQpOgorICAgICAgICAqIGRlYnVnZ2VyL0Rl
YnVnZ2VyQWN0aXZhdGlvbi5oOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpwdXRCeVZhbCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZSk6CisgICAgICAg
ICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6REVGSU5FX1NUVUJfRlVOQ1RJT04p
OgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgIChKU0M6OkFy
Z3VtZW50czo6cHV0VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuaDoKKyAg
ICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6cHV0UHJv
cGVydHkpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY0NvbmNhdCk6CisgICAgICAgIChK
U0M6OmFycmF5UHJvdG9GdW5jUHVzaCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jUmV2
ZXJzZSk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jU2hpZnQpOgorICAgICAgICAoSlND
OjphcnJheVByb3RvRnVuY1NsaWNlKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNTb3J0
KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNTcGxpY2UpOgorICAgICAgICAoSlNDOjph
cnJheVByb3RvRnVuY1VuU2hpZnQpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY0ZpbHRl
cik6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jTWFwKToKKyAgICAgICAgKiBydW50aW1l
L0pTQWN0aXZhdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTQWN0aXZhdGlvbjo6cHV0VmlydHVh
bCk6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1l
L0pTQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpwdXRWaXJ0dWFsKToKKyAgICAg
ICAgKEpTQzo6SlNBcnJheTo6cHV0U2xvd0Nhc2UpOgorICAgICAgICAoSlNDOjpKU0FycmF5Ojpw
dXNoKToKKyAgICAgICAgKEpTQzo6SlNBcnJheTo6c2hpZnRDb3VudCk6CisgICAgICAgIChKU0M6
OkpTQXJyYXk6OnVuc2hpZnRDb3VudCk6CisgICAgICAgICogcnVudGltZS9KU0FycmF5Lmg6Cisg
ICAgICAgICogcnVudGltZS9KU0J5dGVBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQnl0ZUFy
cmF5OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5Lmg6CisgICAg
ICAgICogcnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAoSlNDOjpKU0NlbGw6OnB1dFZpcnR1
YWwpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OnB1dCk6CisgICAgICAgICogcnVudGltZS9KU0Nl
bGwuaDoKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpK
U0Z1bmN0aW9uOjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoK
KyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNH
bG9iYWxPYmplY3Q6OnB1dFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
cHV0V2l0aEF0dHJpYnV0ZXMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTTm90QW5PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU05v
dEFuT2JqZWN0OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTTm90QW5PYmplY3Qu
aDoKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpXYWxr
ZXI6OndhbGspOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpKU09iamVjdDo6cHV0VmlydHVhbCk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXQpOgor
ICAgICAgICAoSlNDOjpKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6cHV0KToKKyAgICAgICAg
KiBydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU1N0YXRp
Y1Njb3BlT2JqZWN0OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0pTU3RhdGljU2Nv
cGVPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0xvb2t1cC5oOgorICAgICAgICAoSlNDOjps
b29rdXBQdXQpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6T2JqZWN0UHJvdG90eXBlOjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1l
L09iamVjdFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBNYXRjaGVzQXJyYXk6OmZpbGxBcnJheUluc3RhbmNl
KToKKyAgICAgICAgKEpTQzo6UmVnRXhwQ29uc3RydWN0b3I6OnB1dFZpcnR1YWwpOgorICAgICAg
ICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4
cE1hdGNoZXNBcnJheS5oOgorICAgICAgICAoSlNDOjpSZWdFeHBNYXRjaGVzQXJyYXk6OnB1dFZp
cnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcDoKKyAgICAgICAgKEpT
Qzo6UmVnRXhwT2JqZWN0OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9i
amVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcDoKKyAgICAgICAgKEpT
Qzo6U3RyaW5nT2JqZWN0OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09i
amVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAg
KEpTQzo6c3RyaW5nUHJvdG9GdW5jU3BsaXQpOgorCiAyMDExLTEwLTEwICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByOTcwNDUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApp
bmRleCA4YTMwODg0ZjJiZjI0MWM1NWE2ODFmNjc2ZWZjMzdiZDdiZWM2Zjc4Li41NTQ5OTlhYzY1
OGQ3ZWU5ZGZhNWEyNzE3ZjU2MDc0OTA4ZWY5NGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKQEAgLTE1Miw3ICsxNTIsNiBAQCBfX1pOM0pTQzEyU3RyaW5nT2Jq
ZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
Uk5TXwogX19aTjNKU0MxMlN0cmluZ09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhl
Y1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTlnZXRP
d25Qcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5T
XzE1RW51bWVyYXRpb25Nb2RlRQogX19aTjNKU0MxMlN0cmluZ09iamVjdDI0Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3Bl
cnR5RGVzY3JpcHRvckUKLV9fWk4zSlNDMTJTdHJpbmdPYmplY3QzcHV0RVBOU185RXhlY1N0YXRl
RVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9f
Wk4zSlNDMTJTdHJpbmdPYmplY3Q2c19pbmZvRQogX19aTjNKU0MxMlN0cmluZ09iamVjdEMyRVJO
U18xMkpTR2xvYmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDMTNKU0ZpbmFsT2JqZWN0
NnNfaW5mb0UKQEAgLTE2MSw2ICsxNjAsNyBAQCBfX1pOM0pTQzEzU2FtcGxpbmdGbGFnczVzdGFy
dEV2CiBfX1pOM0pTQzEzU2FtcGxpbmdGbGFnczdzX2ZsYWdzRQogX19aTjNKU0MxM1N0YXRlbWVu
dE5vZGU2c2V0TG9jRWlpCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxMGdsb2JhbEV4ZWNFdgor
X19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNf
MTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlND
MTRKU0dsb2JhbE9iamVjdDEyZGVmaW5lR2V0dGVyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVu
dGlmaWVyRVBOU184SlNPYmplY3RFagogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTJkZWZpbmVT
ZXR0ZXJFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUE5TXzhKU09iamVjdEVqCiBf
X1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxM2NsZWFyUmFyZURhdGFFUE5TXzZKU0NlbGxFCkBAIC0x
NjksNyArMTY5LDcgQEAgX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTZhZGRTdGF0aWNHbG9iYWxz
RVBOUzBfMThHbG9iYWxQcm9wZXJ0eUluZm9FaQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTdw
dXRXaXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNW
YWx1ZUVqCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNf
OUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pT
QzE0SlNHbG9iYWxPYmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0
ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCi1fX1pOM0pTQzE0
SlNHbG9iYWxPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdK
U1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUgIAorX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0
M3B1dEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNW
YWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Q0aW5p
dEVQTlNfOEpTT2JqZWN0RQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0NnNfaW5mb0UKIF9fWk4z
SlNDMTRKU0dsb2JhbE9iamVjdEQyRXYKQEAgLTI1Niw2ICsyNTYsOCBAQCBfX1pOM0pTQzRZYXJy
MTFZYXJyUGF0dGVybkMxRVJLTlNfN1VTdHJpbmdFYmJQUEtjCiBfX1pOM0pTQzRZYXJyMTFieXRl
Q29tcGlsZUVSTlMwXzExWWFyclBhdHRlcm5FUE4zV1RGMjBCdW1wUG9pbnRlckFsbG9jYXRvckUK
IF9fWk4zSlNDNFlhcnI5aW50ZXJwcmV0RVBOUzBfMTVCeXRlY29kZVBhdHRlcm5FUktOU183VVN0
cmluZ0VqalBpCiBfX1pOM0pTQzRjYWxsRVBOU185RXhlY1N0YXRlRU5TXzdKU1ZhbHVlRU5TXzhD
YWxsVHlwZUVSS05TXzhDYWxsRGF0YUVTMl9SS05TXzdBcmdMaXN0RQorX19aTjNKU0M2SlNDZWxs
MTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVl
RVJOU18xNVB1dFByb3BlcnR5U2xvdEUKK19fWk4zSlNDNkpTQ2VsbDEwcHV0VmlydHVhbEVQTlNf
OUV4ZWNTdGF0ZUVqTlNfN0pTVmFsdWVFCiBfX1pOM0pTQzZKU0NlbGwxMWdldENhbGxEYXRhRVBT
MF9STlNfOENhbGxEYXRhRQogX19aTjNKU0M2SlNDZWxsMTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDNkpTQ2VsbDE0ZGVsZXRlUHJvcGVy
dHlFUE5TXzlFeGVjU3RhdGVFagpAQCAtMjYzLDggKzI2NSw2IEBAIF9fWk4zSlNDNkpTQ2VsbDE2
Z2V0Q29uc3RydWN0RGF0YUVSTlNfMTNDb25zdHJ1Y3REYXRhRQogX19aTjNKU0M2SlNDZWxsMThn
ZXRDYWxsRGF0YVZpcnR1YWxFUk5TXzhDYWxsRGF0YUUKIF9fWk4zSlNDNkpTQ2VsbDE4Z2V0T3du
UHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3Bl
cnR5U2xvdEUKIF9fWk4zSlNDNkpTQ2VsbDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0
YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCi1fX1pOM0pTQzZKU0NlbGwzcHV0RVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUK
LV9fWk4zSlNDNkpTQ2VsbDNwdXRFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRSAgCiBfX1pO
M0pTQzZKU0NlbGw5Z2V0T2JqZWN0RXYKIF9fWk4zSlNDNkpTTG9jazEyRHJvcEFsbExvY2tzQzFF
TlNfMTRKU0xvY2tCZWhhdmlvckUKIF9fWk4zSlNDNkpTTG9jazEyRHJvcEFsbExvY2tzQzFFUE5T
XzlFeGVjU3RhdGVFCkBAIC0zMDUsNiArMzA1LDggQEAgX19aTjNKU0M4RGVidWdnZXIyM3JlY29t
cGlsZUFsbEpTRnVuY3Rpb25zRVBOU18xMkpTR2xvYmFsRGF0YUUKIF9fWk4zSlNDOERlYnVnZ2Vy
NmF0dGFjaEVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDOERlYnVnZ2VyNmRldGFjaEVQ
TlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDOERlYnVnZ2VyRDJFdgorX19aTjNKU0M4SlNP
YmplY3QxMHB1dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pT
VmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQorX19aTjNKU0M4SlNPYmplY3QxMHB1dFZpcnR1
YWxFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRQogX19aTjNKU0M4SlNPYmplY3QxMWhhc0lu
c3RhbmNlRVBOU185RXhlY1N0YXRlRU5TXzdKU1ZhbHVlRVMzXwogX19aTjNKU0M4SlNPYmplY3Qx
MmRlZmluZUdldHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVQUzBfagogX19a
TjNKU0M4SlNPYmplY3QxMmRlZmluZVNldHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRp
ZmllckVQUzBfagpAQCAtMzMwLDggKzMzMiw2IEBAIF9fWk4zSlNDOEpTT2JqZWN0MjFnZXRQcm9w
ZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4CiBf
X1pOM0pTQzhKU09iamVjdDIyZmlsbEdldHRlclByb3BlcnR5U2xvdEVSTlNfMTJQcm9wZXJ0eVNs
b3RFUE5TXzE2V3JpdGVCYXJyaWVyQmFzZUlOU183VW5rbm93bkVFRQogX19aTjNKU0M4SlNPYmpl
Y3QyM2FsbG9jYXRlUHJvcGVydHlTdG9yYWdlRVJOU18xMkpTR2xvYmFsRGF0YUVtbQogX19aTjNK
U0M4SlNPYmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCi1fX1pOM0pTQzhKU09iamVj
dDNwdXRFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1
UHV0UHJvcGVydHlTbG90RQotX19aTjNKU0M4SlNPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRWpO
U183SlNWYWx1ZUUKIF9fWk4zSlNDOEpTT2JqZWN0M3B1dEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNT
dGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RF
CiBfX1pOM0pTQzhKU09iamVjdDZzX2luZm9FCiBfX1pOM0pTQzhKU1N0cmluZzZzX2luZm9FCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRp
b24uY3BwCmluZGV4IDBjZjk3ZjI1OTc3OTg1NjJmMzQ0Yzg2NjlkYTFkN2JjYTRiOWFiYWQuLjkx
OGJkMjgyMTMwNmM1YTcwM2RkNmRjYjdkM2QwOTRjM2M1ZTBiNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCkBAIC03
MCwxNCArNzAsMTQgQEAgYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8RGVidWdnZXJBY3RpdmF0aW9uKj4oY2VsbCktPm1fYWN0aXZhdGlvbi0+Z2V0T3duUHJv
cGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLXZvaWQgRGVidWdnZXJB
Y3RpdmF0aW9uOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgRGVidWdn
ZXJBY3RpdmF0aW9uOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiB2
b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKLSAgICBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24qPihj
ZWxsKS0+bV9hY3RpdmF0aW9uLT5wdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7
CisgICAgc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3RpdmF0aW9uKj4oY2VsbCktPm1fYWN0aXZhdGlv
bi0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAogdm9p
ZCBEZWJ1Z2dlckFjdGl2YXRpb246OnB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyQWN0aXZhdGlvbi5oCmluZGV4IDdhNTVhN2EzOTU4NGFlN2Q5YmI1YWU5NGRjYTAwZDU5ZDU5
NDQ5OTUuLmU3NzA1MTQ0Mjg1YTI1NzU4OTZlYzdhMDIwYzZmNDU1ZWVmNmFjNzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgK
QEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgVVN0cmlu
ZyBjbGFzc05hbWUoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBw
dXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhB
dHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQ
cm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggNTNjZDg4ZDky
ZTA2YmZhNzUwZWEyNDJmOGE0M2YxODYyZjg1MDNiNi4uZWE3OTYxMzNjNzhlOTEwYTZhZDNkZmQ3
N2JkYjEwMzIyNGUwOTE0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJh
dGlvbnMuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwdXRCeVZhbChF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCB1aW50MzJfdCBpbmRleCwKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFycmF5LT5KU0FycmF5OjpwdXQo
ZXhlYywgaW5kZXgsIHZhbHVlKTsKKyAgICAgICAgSlNBcnJheTo6cHV0KGFycmF5LCBleGVjLCBp
bmRleCwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00MDAsNyArNDAwLDcg
QEAgdm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHMo
RXhlY1N0YXRlKiBleGVjLCBKU0FycmF5KgogewogICAgIC8vIFdlIHNob3VsZCBvbmx5IGdldCBo
ZXJlIGlmIGluZGV4IGlzIG91dHNpZGUgdGhlIGV4aXN0aW5nIHZlY3Rvci4KICAgICBBU1NFUlQo
IWFycmF5LT5jYW5TZXRJbmRleChpbmRleCkpOwotICAgIGFycmF5LT5KU0FycmF5OjpwdXQoZXhl
YywgaW5kZXgsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKKyAgICBKU0FycmF5Ojpw
dXQoYXJyYXksIGV4ZWMsIGluZGV4LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9
CiAKIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQdXNoKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU0FycmF5KiBhcnJheSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3Bw
CmluZGV4IGViNzc0NjM2MjJkNDgzN2M0MDM2YzYwMzY0ZWJjOTllMjE3ZjVjN2QuLjBlZjMwODA2
MmVmNWVhMjliMTFkZWU3MWVmYjYyMGQxZjEyMDM4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApAQCAtNzkxLDcgKzc5MSw3IEBA
IEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoUHJvZ3JhbUV4ZWN1dGFibGUqIHByb2dyYW0s
IENhbGxGcmFtZSogY2FsbEZyYW1lLCBTCiAgICAgICAgICAgICBpZiAoSlNPTlBQYXRoLnNpemUo
KSA9PSAxICYmIEpTT05QUGF0aFswXS5tX3R5cGUgPT0gTGl0ZXJhbFBhcnNlcjo6SlNPTlBQYXRo
RW50cnlUeXBlRGVjbGFyZSkgewogICAgICAgICAgICAgICAgIGlmIChnbG9iYWxPYmplY3QtPmhh
c1Byb3BlcnR5KGNhbGxGcmFtZSwgSlNPTlBQYXRoWzBdLm1fcGF0aEVudHJ5TmFtZSkpIHsKICAg
ICAgICAgICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgICAgICAgICAg
ICAgIGdsb2JhbE9iamVjdC0+cHV0KGNhbGxGcmFtZSwgSlNPTlBQYXRoWzBdLm1fcGF0aEVudHJ5
TmFtZSwgSlNPTlBWYWx1ZSwgc2xvdCk7CisgICAgICAgICAgICAgICAgICAgIGdsb2JhbE9iamVj
dC0+cHV0VmlydHVhbChjYWxsRnJhbWUsIEpTT05QUGF0aFswXS5tX3BhdGhFbnRyeU5hbWUsIEpT
T05QVmFsdWUsIHNsb3QpOwogICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAg
ICAgICBnbG9iYWxPYmplY3QtPnB1dFdpdGhBdHRyaWJ1dGVzKGNhbGxGcmFtZSwgSlNPTlBQYXRo
WzBdLm1fcGF0aEVudHJ5TmFtZSwgSlNPTlBWYWx1ZSwgRG9udEVudW0gfCBEb250RGVsZXRlKTsK
ICAgICAgICAgICAgICAgICAvLyB2YXIgZGVjbGFyYXRpb25zIHJldHVybiB1bmRlZmluZWQKQEAg
LTEyNTEsMTQgKzEyNTEsMTQgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhl
Y3V0YWJsZSogZXZhbCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUKICAgICAgICAgICAg
IGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gY29kZUJsb2NrLT52YXJpYWJsZShpKTsKICAgICAg
ICAgICAgIGlmICghdmFyaWFibGVPYmplY3QtPmhhc1Byb3BlcnR5KGNhbGxGcmFtZSwgaWRlbnQp
KSB7CiAgICAgICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgICAgICAg
ICAgdmFyaWFibGVPYmplY3QtPnB1dChjYWxsRnJhbWUsIGlkZW50LCBqc1VuZGVmaW5lZCgpLCBz
bG90KTsKKyAgICAgICAgICAgICAgICB2YXJpYWJsZU9iamVjdC0+cHV0VmlydHVhbChjYWxsRnJh
bWUsIGlkZW50LCBqc1VuZGVmaW5lZCgpLCBzbG90KTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogCiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtRnVuY3Rpb25zOyArK2kpIHsKICAg
ICAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb24gPSBjb2RlQmxvY2stPmZ1bmN0
aW9uRGVjbChpKTsKICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAg
ICAgdmFyaWFibGVPYmplY3QtPnB1dChjYWxsRnJhbWUsIGZ1bmN0aW9uLT5uYW1lKCksIGZ1bmN0
aW9uLT5tYWtlKGNhbGxGcmFtZSwgc2NvcGVDaGFpbiksIHNsb3QpOworICAgICAgICAgICAgdmFy
aWFibGVPYmplY3QtPnB1dFZpcnR1YWwoY2FsbEZyYW1lLCBmdW5jdGlvbi0+bmFtZSgpLCBmdW5j
dGlvbi0+bWFrZShjYWxsRnJhbWUsIHNjb3BlQ2hhaW4pLCBzbG90KTsKICAgICAgICAgfQogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAppbmRleCA0ZWM0MzMwNmM3
OGUxM2JjMzNhYjE5Yzk0MGRkMTYwNjBhMmZmZmVkLi4wYmI0MzJmMTRmMjk2OGU0ZWU3ODlkZGY0
NWU2ZDY3OTA2OTFjMmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFN0dWJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcApA
QCAtMjYxMSw3ICsyNjExLDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0X2J5
X3ZhbCkKICAgICAgICAgICAgIGlmIChqc0FycmF5LT5jYW5TZXRJbmRleChpKSkKICAgICAgICAg
ICAgICAgICBqc0FycmF5LT5zZXRJbmRleCgqZ2xvYmFsRGF0YSwgaSwgdmFsdWUpOwogICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGpzQXJyYXktPkpTQXJyYXk6OnB1dChjYWxsRnJh
bWUsIGksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBKU0FycmF5OjpwdXQoanNBcnJheSwgY2Fs
bEZyYW1lLCBpLCB2YWx1ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXNKU0J5dGVBcnJheShnbG9i
YWxEYXRhLCBiYXNlVmFsdWUpICYmIGFzQnl0ZUFycmF5KGJhc2VWYWx1ZSktPmNhbkFjY2Vzc0lu
ZGV4KGkpKSB7CiAgICAgICAgICAgICBKU0J5dGVBcnJheSoganNCeXRlQXJyYXkgPSBhc0J5dGVB
cnJheShiYXNlVmFsdWUpOwogICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNz
KGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksIFNUVUJfUkVUVVJOX0FERFJFU1MsIEZ1bmN0aW9uUHRy
KGN0aV9vcF9wdXRfYnlfdmFsX2J5dGVfYXJyYXkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXgg
ZmRjNjk5ZThhY2UxNWFhZmNjYjNiNDBlMWE3YjdlNjk4OTIwODEwMC4uMGJjZmNkNmJjYzk4MzZk
Njk3ZTJkMzE4MjUxOGI4NDc3OWM5N2FlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTE4Miw3
ICsxODIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgSlNPYmplY3QqIGFycmF5ID0gY29uc3Ry
dWN0RW1wdHlBcnJheShnbG9iYWxFeGVjKCkpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGFyZ3VtZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGFycmF5LT5wdXQoZ2xvYmFs
RXhlYygpLCBpLCBqc1N0cmluZyhnbG9iYWxFeGVjKCksIGFyZ3VtZW50c1tpXSkpOworICAgICAg
ICAgICAgYXJyYXktPnB1dFZpcnR1YWwoZ2xvYmFsRXhlYygpLCBpLCBqc1N0cmluZyhnbG9iYWxF
eGVjKCksIGFyZ3VtZW50c1tpXSkpOwogICAgICAgICBwdXREaXJlY3QoZ2xvYmFsRGF0YSwgSWRl
bnRpZmllcihnbG9iYWxFeGVjKCksICJhcmd1bWVudHMiKSwgYXJyYXkpOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKaW5kZXggYzQ5NGRhMTMy
YzJhMzA1OTQzMmYyMjIyMTRjOTVjZjA0ZTljNGFiNS4uMDA5NmM3YzYwMTY5YmFjMDE5NjYyZDQx
NWNhNjdmNzA0ZTY1YTA2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJndW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1
bWVudHMuY3BwCkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBBcmd1bWVudHM6OmdldE93blByb3Bl
cnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHkKICAg
ICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2Rl
KTsKIH0KIAotdm9pZCBBcmd1bWVudHM6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGks
IEpTVmFsdWUgdmFsdWUpCit2b2lkIEFyZ3VtZW50czo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIGks
IHZhbHVlKTsKIH0KQEAgLTI4Myw3ICsyODMsNyBAQCB2b2lkIEFyZ3VtZW50czo6cHV0KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlKQogICAg
IEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgSWRlbnRpZmllcihleGVjLCBVU3RyaW5n
OjpudW1iZXIoaSkpLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLXZvaWQgQXJndW1lbnRzOjpwdXQoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgQXJndW1lbnRzOjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmd1bWVudHMuaAppbmRleCA2YjFmYTA4OGJiNTc3YjI5NzU0MzNlMjUxNTYxYTk4YTdmNjc0OWQ2
Li44YjQyM2QyZGNjYzdhZjdmYjAyYzI5NGRkYTBhZGI5OTk2ZDE5NjVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaApAQCAtMTMwLDkgKzEzMCw5IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jiwg
RW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0
VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHN0YXRp
YyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5jcHAKaW5kZXggY2YxNjE2MDNhMzRmMTU5MzM2YmMzOTVlN2RkODI0OWEx
ZjU3ZWNlZC4uZDJlZTVhNDZiNjk2N2EwY2NmZDlhOGVmMWJmMjdlMDVjMjJjNjFjMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAt
MTU0LDcgKzE1NCw3IEBAIHN0YXRpYyBKU1ZhbHVlIGdldFByb3BlcnR5KEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIG9iaiwgdW5zaWduZWQgaW5kZXgpCiBzdGF0aWMgdm9pZCBwdXRQcm9wZXJ0
eShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAg
ICBvYmotPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBvYmotPnB1
dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHN0YXRpYyB1
bnNpZ25lZCBhcmd1bWVudENsYW1wZWRJbmRleEZyb21TdGFydE9yRW5kKEV4ZWNTdGF0ZSogZXhl
YywgaW50IGFyZ3VtZW50LCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIHVuZGVmaW5lZFZhbHVl
ID0gMCkKQEAgLTM1NywxMSArMzU3LDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YXJyYXlQcm90b0Z1bmNDb25jYXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgSlNPYmpl
Y3QqIGN1ck9iamVjdCA9IGN1ckFyZy50b09iamVjdChleGVjKTsKICAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgayA9IDA7IGsgPCBsZW5ndGg7ICsraykgewogICAgICAgICAgICAgICAgIGlmIChK
U1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShleGVjLCBjdXJPYmplY3QsIGspKQotICAgICAgICAgICAg
ICAgICAgICBhcnItPnB1dChleGVjLCBuLCB2KTsKKyAgICAgICAgICAgICAgICAgICAgYXJyLT5w
dXRWaXJ0dWFsKGV4ZWMsIG4sIHYpOwogICAgICAgICAgICAgICAgIG4rKzsKICAgICAgICAgICAg
IH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFyci0+cHV0KGV4ZWMsIG4sIGN1ckFy
Zyk7CisgICAgICAgICAgICBhcnItPnB1dFZpcnR1YWwoZXhlYywgbiwgY3VyQXJnKTsKICAgICAg
ICAgICAgIG4rKzsKICAgICAgICAgfQogICAgICAgICBpZiAoaSA9PSBhcmdDb3VudCkKQEAgLTQx
NSwxMSArNDE1LDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNQdXNoKEV4ZWNTdGF0ZSogZXhlYykKICAgICBmb3IgKHVuc2lnbmVkIG4gPSAwOyBuIDwgZXhl
Yy0+YXJndW1lbnRDb3VudCgpOyBuKyspIHsKICAgICAgICAgLy8gQ2hlY2sgZm9yIGludGVnZXIg
b3ZlcmZsb3c7IHdoZXJlIHNhZmUgd2UgY2FuIGRvIGEgZmFzdCBwdXQgYnkgaW5kZXguCiAgICAg
ICAgIGlmIChsZW5ndGggKyBuID49IGxlbmd0aCkKLSAgICAgICAgICAgIHRoaXNPYmotPnB1dChl
eGVjLCBsZW5ndGggKyBuLCBleGVjLT5hcmd1bWVudChuKSk7CisgICAgICAgICAgICB0aGlzT2Jq
LT5wdXRWaXJ0dWFsKGV4ZWMsIGxlbmd0aCArIG4sIGV4ZWMtPmFyZ3VtZW50KG4pKTsKICAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKICAgICAgICAgICAg
IElkZW50aWZpZXIgcHJvcGVydHlOYW1lKGV4ZWMsIEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50NjRf
dD4obGVuZ3RoKSArIHN0YXRpY19jYXN0PGludDY0X3Q+KG4pKS50b1N0cmluZyhleGVjKSk7Ci0g
ICAgICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywgcHJvcGVydHlOYW1lLCBleGVjLT5hcmd1bWVu
dChuKSwgc2xvdCk7CisgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3Bl
cnR5TmFtZSwgZXhlYy0+YXJndW1lbnQobiksIHNsb3QpOwogICAgICAgICB9CiAgICAgfQogICAg
IEpTVmFsdWUgbmV3TGVuZ3RoKHN0YXRpY19jYXN0PGludDY0X3Q+KGxlbmd0aCkgKyBzdGF0aWNf
Y2FzdDxpbnQ2NF90PihleGVjLT5hcmd1bWVudENvdW50KCkpKTsKQEAgLTQ0MSwxMiArNDQxLDEy
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNSZXZlcnNlKEV4
ZWNTdGF0ZSogZXhlYykKICAgICAgICAgSlNWYWx1ZSBvYmogPSBnZXRQcm9wZXJ0eShleGVjLCB0
aGlzT2JqLCBrKTsKIAogICAgICAgICBpZiAob2JqMikKLSAgICAgICAgICAgIHRoaXNPYmotPnB1
dChleGVjLCBrLCBvYmoyKTsKKyAgICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywg
aywgb2JqMik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRoaXNPYmotPmRlbGV0ZVByb3Bl
cnR5KGV4ZWMsIGspOwogCiAgICAgICAgIGlmIChvYmopCi0gICAgICAgICAgICB0aGlzT2JqLT5w
dXQoZXhlYywgbGsxLCBvYmopOworICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVj
LCBsazEsIG9iaik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRoaXNPYmotPmRlbGV0ZVBy
b3BlcnR5KGV4ZWMsIGxrMSk7CiAgICAgfQpAQCAtNDcxLDcgKzQ3MSw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTaGlmdChFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gMTsgayA8IGxlbmd0
aDsgaysrKSB7CiAgICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgb2JqID0gZ2V0UHJvcGVydHko
ZXhlYywgdGhpc09iaiwgaykpCi0gICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPnB1dChleGVj
LCBrIC0gMSwgb2JqKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChl
eGVjLCBrIC0gMSwgb2JqKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
ICAgIHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGsgLSAxKTsKICAgICAgICAgICAgIH0K
QEAgLTUwMCw3ICs1MDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJv
dG9GdW5jU2xpY2UoRXhlY1N0YXRlKiBleGVjKQogICAgIHVuc2lnbmVkIG4gPSAwOwogICAgIGZv
ciAodW5zaWduZWQgayA9IGJlZ2luOyBrIDwgZW5kOyBrKyssIG4rKykgewogICAgICAgICBpZiAo
SlNWYWx1ZSB2ID0gZ2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwgaykpCi0gICAgICAgICAgICBy
ZXNPYmotPnB1dChleGVjLCBuLCB2KTsKKyAgICAgICAgICAgIHJlc09iai0+cHV0VmlydHVhbChl
eGVjLCBuLCB2KTsKICAgICB9CiAgICAgcmVzT2JqLT5zZXRMZW5ndGgobik7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtNTU5LDggKzU1OSw4IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTb3J0KEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgICAgfQogICAgICAgICAvLyBTd2FwIHRoZW1pbiBhbmQgaQogICAgICAgICBpZiAodGhlbWlu
ID4gaSkgewotICAgICAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMsIGksIG1pbk9iaik7Ci0gICAg
ICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywgdGhlbWluLCBpT2JqKTsKKyAgICAgICAgICAgIHRo
aXNPYmotPnB1dFZpcnR1YWwoZXhlYywgaSwgbWluT2JqKTsKKyAgICAgICAgICAgIHRoaXNPYmot
PnB1dFZpcnR1YWwoZXhlYywgdGhlbWluLCBpT2JqKTsKICAgICAgICAgfQogICAgIH0KICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmopOwpAQCAtNjA3LDcgKzYwNyw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTcGxpY2UoRXhlY1N0YXRlKiBl
eGVjKQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBr
ID0gYmVnaW47IGsgPCBsZW5ndGggLSBkZWxldGVDb3VudDsgKytrKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGlmIChKU1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBrICsgZGVs
ZXRlQ291bnQpKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMsIGsg
KyBhZGRpdGlvbmFsQXJncywgdik7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5w
dXRWaXJ0dWFsKGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncywgdik7CiAgICAgICAgICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5
KGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyk7CiAgICAgICAgICAgICAgICAgfQpAQCAtNjIwLDcg
KzYyMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTcGxp
Y2UoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBrID0gbGVuZ3RoIC0gZGVsZXRlQ291bnQ7IGsgPiBiZWdpbjsgLS1rKSB7
CiAgICAgICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIG9iaiA9IGdldFByb3BlcnR5KGV4ZWMs
IHRoaXNPYmosIGsgKyBkZWxldGVDb3VudCAtIDEpKQotICAgICAgICAgICAgICAgICAgICAgICAg
dGhpc09iai0+cHV0KGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyAtIDEsIG9iaik7CisgICAgICAg
ICAgICAgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGsgKyBhZGRpdGlvbmFs
QXJncyAtIDEsIG9iaik7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJn
cyAtIDEpOwogICAgICAgICAgICAgICAgIH0KQEAgLTYyOCw3ICs2MjgsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3BsaWNlKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICAgICAgfQogICAgIH0KICAgICBmb3IgKHVuc2lnbmVkIGsgPSAwOyBrIDwgYWRkaXRpb25h
bEFyZ3M7ICsraykKLSAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMsIGsgKyBiZWdpbiwgZXhlYy0+
YXJndW1lbnQoayArIDIpKTsKKyAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBrICsg
YmVnaW4sIGV4ZWMtPmFyZ3VtZW50KGsgKyAyKSk7CiAKICAgICBwdXRQcm9wZXJ0eShleGVjLCB0
aGlzT2JqLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihsZW5ndGggLSBk
ZWxldGVDb3VudCArIGFkZGl0aW9uYWxBcmdzKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShyZXN1bHQpOwpAQCAtNjUwLDE0ICs2NTAsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvRnVuY1VuU2hpZnQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IGxlbmd0aDsgayA+IDA7IC0taykgewog
ICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShleGVjLCB0aGlzT2Jq
LCBrIC0gMSkpCi0gICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPnB1dChleGVjLCBrICsgbnJB
cmdzIC0gMSwgdik7CisgICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhl
YywgayArIG5yQXJncyAtIDEsIHYpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICAgICAgdGhpc09iai0+ZGVsZXRlUHJvcGVydHkoZXhlYywgayArIG5yQXJncyAtIDEpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIGZvciAodW5zaWduZWQgayA9IDA7
IGsgPCBuckFyZ3M7ICsraykKLSAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMsIGssIGV4ZWMtPmFy
Z3VtZW50KGspKTsKKyAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBrLCBleGVjLT5h
cmd1bWVudChrKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihsZW5ndGggKyBuckFy
Z3MpOwogICAgIHB1dFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5sZW5ndGgsIHJlc3VsdCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpA
QCAtNjk2LDcgKzY5Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90
b0Z1bmNGaWx0ZXIoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgCiAgICAgICAgICAgICBK
U1ZhbHVlIHJlc3VsdCA9IGNhY2hlZENhbGwuY2FsbCgpOwogICAgICAgICAgICAgaWYgKHJlc3Vs
dC50b0Jvb2xlYW4oZXhlYykpCi0gICAgICAgICAgICAgICAgcmVzdWx0QXJyYXktPnB1dChleGVj
LCBmaWx0ZXJJbmRleCsrLCB2KTsKKyAgICAgICAgICAgICAgICByZXN1bHRBcnJheS0+cHV0Vmly
dHVhbChleGVjLCBmaWx0ZXJJbmRleCsrLCB2KTsKICAgICAgICAgfQogICAgICAgICBpZiAoayA9
PSBsZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdEFycmF5
KTsKQEAgLTcxNyw3ICs3MTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5
UHJvdG9GdW5jRmlsdGVyKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgICAgICBKU1ZhbHVlIHJlc3Vs
dCA9IGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgYXBwbHlUaGlzLCBl
YWNoQXJndW1lbnRzKTsKICAgICAgICAgaWYgKHJlc3VsdC50b0Jvb2xlYW4oZXhlYykpCi0gICAg
ICAgICAgICByZXN1bHRBcnJheS0+cHV0KGV4ZWMsIGZpbHRlckluZGV4KyssIHYpOworICAgICAg
ICAgICAgcmVzdWx0QXJyYXktPnB1dFZpcnR1YWwoZXhlYywgZmlsdGVySW5kZXgrKywgdik7CiAg
ICAgfQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0QXJyYXkpOwogfQpAQCAtNzUy
LDcgKzc1Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNN
YXAoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgY2FjaGVkQ2FsbC5zZXRBcmd1bWVudCgx
LCBqc051bWJlcihrKSk7CiAgICAgICAgICAgICBjYWNoZWRDYWxsLnNldEFyZ3VtZW50KDIsIHRo
aXNPYmopOwogCi0gICAgICAgICAgICByZXN1bHRBcnJheS0+SlNBcnJheTo6cHV0KGV4ZWMsIGss
IGNhY2hlZENhbGwuY2FsbCgpKTsKKyAgICAgICAgICAgIEpTQXJyYXk6OnB1dChyZXN1bHRBcnJh
eSwgZXhlYywgaywgY2FjaGVkQ2FsbC5jYWxsKCkpOwogICAgICAgICB9CiAgICAgfQogICAgIGZv
ciAoOyBrIDwgbGVuZ3RoICYmICFleGVjLT5oYWRFeGNlcHRpb24oKTsgKytrKSB7CkBAIC03NzMs
NyArNzczLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY01h
cChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogCiAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gY2FsbChleGVjLCBmdW5j
dGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBhcHBseVRoaXMsIGVhY2hBcmd1bWVudHMpOwotICAg
ICAgICByZXN1bHRBcnJheS0+cHV0KGV4ZWMsIGssIHJlc3VsdCk7CisgICAgICAgIHJlc3VsdEFy
cmF5LT5wdXRWaXJ0dWFsKGV4ZWMsIGssIHJlc3VsdCk7CiAgICAgfQogCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHRBcnJheSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAppbmRleCA5MGY5MTEwOTQ0ZTE0MTQ1MjEzZDNkMGU5ZTVk
YzIxMzZlZGMzNmE4Li43OWJkNmExNjk1MjIzZmM0N2I2MzExMmNkZjE3ZWUzZTg5NDhiMTI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKQEAg
LTE2OSw3ICsxNjksNyBAQCBib29sIEpTQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudAogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotdm9pZCBKU0FjdGl2YXRpb246OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBz
bG90KQordm9pZCBKU0FjdGl2YXRpb246OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xv
dCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2
YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCmlu
ZGV4IDdiZWQyOWZkMzBjMGI1NmZjMjI3Y2UzOGY2MjNiMDliOTFjMTMzY2IuLjgyMTAwZTA1YTMy
NTNmOTM0NWQzM2Q2Y2Q1NGExMmM2M2IwNzg1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC02NSw3ICs2NSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYs
IEVudW1lcmF0aW9uTW9kZSk7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAppbmRleCAyMTczZmYxNmQ4NGEz
ZTVlOTVjMGI1NGVhNjRmODRhZGExNTFjNDE0Li4yODI1YTBjOTRmYWZmM2FjMzVlNjY3ZmYwOTRi
MzM5NGZjNmM1ZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNw
cApAQCAtMzM0LDcgKzMzNCw3IEBAIGJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVyCiAgICAgcmV0dXJu
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBk
ZXNjcmlwdG9yKTsKIH0KIAotdm9pZCBKU0FycmF5OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYgc2xvdCkKK3ZvaWQgSlNBcnJheTo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90
KTsKIH0KQEAgLTM2Myw3ICszNjMsNyBAQCB2b2lkIEpTQXJyYXk6OnB1dChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLAogICAgIEpT
T2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7
CiB9CiAKLXZvaWQgSlNBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNW
YWx1ZSB2YWx1ZSkKK3ZvaWQgSlNBcnJheTo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIGksIHZhbHVl
KTsKIH0KQEAgLTQwNiw3ICs0MDYsNyBAQCBORVZFUl9JTkxJTkUgdm9pZCBKU0FycmF5OjpwdXRT
bG93Q2FzZShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdQogICAgIGlm
IChpID49IE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgpIHsKICAgICAgICAgaWYgKGkgPiBNQVhfQVJS
QVlfSU5ERVgpIHsKICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAg
ICAgcHV0KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaSksIHZhbHVlLCBzbG90KTsKKyAg
ICAgICAgICAgIHB1dFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgdmFs
dWUsIHNsb3QpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTc4MSw3ICs3
ODEsNyBAQCB2b2lkIEpTQXJyYXk6OnB1c2goRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
KQogICAgIEFycmF5U3RvcmFnZSogc3RvcmFnZSA9IG1fc3RvcmFnZTsKIAogICAgIGlmIChVTkxJ
S0VMWShzdG9yYWdlLT5tX2xlbmd0aCA9PSAweEZGRkZGRkZGdSkpIHsKLSAgICAgICAgcHV0KGV4
ZWMsIHN0b3JhZ2UtPm1fbGVuZ3RoLCB2YWx1ZSk7CisgICAgICAgIHB1dFZpcnR1YWwoZXhlYywg
c3RvcmFnZS0+bV9sZW5ndGgsIHZhbHVlKTsKICAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVh
dGVSYW5nZUVycm9yKGV4ZWMsICJJbnZhbGlkIGFycmF5IGxlbmd0aCIpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTgzNSw3ICs4MzUsNyBAQCB2b2lkIEpTQXJyYXk6OnNoaWZ0Q291bnQo
RXhlY1N0YXRlKiBleGVjLCBpbnQgY291bnQpCiAgICAgICAgICAgICAgICAgUHJvcGVydHlTbG90
IHNsb3QodGhpcyk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBwID0gcHJvdG90eXBlKCk7CiAg
ICAgICAgICAgICAgICAgaWYgKCghcC5pc051bGwoKSkgJiYgKGFzT2JqZWN0KHApLT5nZXRQcm9w
ZXJ0eVNsb3QoZXhlYywgaSwgc2xvdCkpKQotICAgICAgICAgICAgICAgICAgICBwdXQoZXhlYywg
aSwgc2xvdC5nZXRWYWx1ZShleGVjLCBpKSk7CisgICAgICAgICAgICAgICAgICAgIHB1dFZpcnR1
YWwoZXhlYywgaSwgc2xvdC5nZXRWYWx1ZShleGVjLCBpKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIApAQCAtODg0LDcgKzg4NCw3IEBAIHZvaWQgSlNBcnJheTo6dW5zaGlmdENvdW50KEV4
ZWNTdGF0ZSogZXhlYywgaW50IGNvdW50KQogICAgICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBz
bG90KHRoaXMpOwogICAgICAgICAgICAgICAgIEpTVmFsdWUgcCA9IHByb3RvdHlwZSgpOwogICAg
ICAgICAgICAgICAgIGlmICgoIXAuaXNOdWxsKCkpICYmIChhc09iamVjdChwKS0+Z2V0UHJvcGVy
dHlTbG90KGV4ZWMsIGksIHNsb3QpKSkKLSAgICAgICAgICAgICAgICAgICAgcHV0KGV4ZWMsIGks
IHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkpOworICAgICAgICAgICAgICAgICAgICBwdXRWaXJ0dWFs
KGV4ZWMsIGksIHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCmluZGV4IGRi
ZmMxNzExNDI1OGExMzc4MjE4NDNjYjk1NzhiM2E5Y2RkMTZkMzguLjUzNWNjNjNlOTlkNWM2Yzgx
NmE1MTRiMzI0ZmM5MDVmYjY2MDlmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FycmF5LmgKQEAgLTk5LDcgKzk5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwotICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSk7IC8vIEZJWE1FOiBNYWtlIHByb3RlY3RlZCBhbmQgYWRkIHNldEl0ZW0uCisgICAgICAg
IHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSk7IC8vIEZJWE1FOiBNYWtlIHByb3RlY3RlZCBhbmQgYWRkIHNldEl0ZW0uCiAg
ICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0
IENsYXNzSW5mbyBzX2luZm87CkBAIC0xNzEsNyArMTcxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRy
ZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1
dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQ
cm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCmluZGV4IDhhYjQ3
MjZlM2VhMWY1ZjkxMDBmMGI0MDYyMWYzMTQ3N2JkNjM5NmEuLjUwNzM1NDQyNTI3M2ZhMTczYjdh
Y2ZjMzk5ODc1MDRlOGU2ODE3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0J5dGVBcnJheS5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgYm9vbCBKU0J5dGVBcnJheTo6Z2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBw
cm8KICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBl
eGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHNsb3QpOwogfQogCi12
b2lkIEpTQnl0ZUFycmF5OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQg
SlNCeXRlQXJyYXk6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CkBAIC0x
MTQsNyArMTE0LDcgQEAgdm9pZCBKU0J5dGVBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU4KICAgICBKU09iamVjdDo6cHV0
KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCi12b2lk
IEpTQnl0ZUFycmF5OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUpCit2b2lkIEpTQnl0ZUFycmF5OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIHB1dCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4IDQwZjBhYTFhN2I3YTRhZTZmNTMwMjY1NDJk
MTc5NDVhNjU1MWRmMTAuLmZlZTU0ZThkYWY5Y2EyYjBhNWNlNWU5NTZmYjcxNjc2YTZiOWZmYTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaApAQCAtOTMs
OSArOTMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Qzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNs
b3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1
dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6
OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBw
dXQoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSk7
CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQo
SlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlND
OjpKU1ZhbHVlKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUg
bW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ2VsbC5jcHAKaW5kZXggM2Q2MjdlMWZlZGY0NTA1OWUyYmRiNGIxZjNkYmU3YjY2
NzdiNDlmNy4uODNjNTc1MDRkZGRlYTgxMTkwZTcxNjBmYjNmMjNkMGQ4MmNmNTZjOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCkBAIC0xMDgsMjQgKzEwOCwyNCBA
QCBib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEpT
Q2VsbDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwg
SlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBKU0NlbGw6OnB1dFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBKU1Zh
bHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMs
IGlkZW50aWZpZXIsIHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBKU0NlbGw6OnB1dChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgSlNW
YWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIGNlbGwtPnRvT2JqZWN0
KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnB1dChleGVjLCBpZGVudGlmaWVy
LCB2YWx1ZSwgc2xvdCk7CisgICAgY2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpKS0+cHV0VmlydHVhbChleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7
CiB9CiAKLXZvaWQgSlNDZWxsOjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlm
aWVyLCBKU1ZhbHVlIHZhbHVlKQordm9pZCBKU0NlbGw6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIHB1dCh0aGlz
LCBleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSk7CiB9CiAKIHZvaWQgSlNDZWxsOjpwdXQoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFs
dWUpCiB7Ci0gICAgY2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpKS0+cHV0KGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlKTsKKyAgICBjZWxsLT50b09iamVjdChl
eGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5wdXRWaXJ0dWFsKGV4ZWMsIGlkZW50
aWZpZXIsIHZhbHVlKTsKIH0KIAogYm9vbCBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggNzJmNTVhMWIxZjA4M2I0YjU0ZDM0OGFiNGY1MDM3MDI5
YmYzMzRhZi4uNTU1ZDdiYjg1ODIxM2RiNGI2NmVjMDhiNzQ0NTI3MGI4MmE2MzViMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTkxLDkgKzkxLDkgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIC8vIE9iamVjdCBvcGVyYXRpb25zLCB3aXRoIHRoZSB0b09iamVj
dCBvcGVyYXRpb24gaW5jbHVkZWQuCiAgICAgICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZv
KCkgY29uc3Q7CiAgICAgICAgIGNvbnN0IE1ldGhvZFRhYmxlKiBtZXRob2RUYWJsZSgpIGNvbnN0
OwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1
dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25l
ZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29s
IGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4
IDYyZmRmNGY5YjA1YTU0ZWY2N2YxYzdmNDhiMmNlMjI0NGU5MTE5NDYuLjdhOWIxYWQ2OGU2Y2Fi
MWZhNzE4YmZmN2E4ZGNiOGRlMWNiMDIzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0zMDUsNyArMzA1LDcgQEAgdm9pZCBKU0Z1bmN0aW9u
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkm
IHByb3BlcnQKICAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFt
ZXMsIG1vZGUpOwogfQogCi12b2lkIEpTRnVuY3Rpb246OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQordm9pZCBKU0Z1bmN0aW9uOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmlu
ZGV4IDI0MDlkNGVlODVlODJkN2JmMzNlNzFmYjA1OWI5Y2JiY2JmNzQ0ZjYuLjAwZTYwMzE3ZmM4
NGI1YmFkNmIxZTQ0MDI4Yzc1ODAzNDVlZmJjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTE0NCw3ICsxNDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBib29sIGlzSG9zdEZ1bmN0aW9uTm9uSW5saW5lKCkgY29uc3Q7CiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHko
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA2YzY4YjJl
OGEwNzU1NzkwZDEwNjdkNDgzMTA1M2U5NzRkYjNhMzNlLi5kZjE0NmU4MTQ3Zjg1ZmRiZmYxM2M4
YWQ3MDUzZGZiYjRjZTVkNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgdm9pZCBKU0dsb2JhbE9i
amVjdDo6aW5pdChKU09iamVjdCogdGhpc1ZhbHVlKQogICAgIHJlc2V0KHByb3RvdHlwZSgpKTsK
IH0KIAotdm9pZCBKU0dsb2JhbE9iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNs
b3QpCit2b2lkIEpTR2xvYmFsT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOwogfQpAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnB1dFdpdGhB
dHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVyCiAKICAg
ICBKU1ZhbHVlIHZhbHVlQmVmb3JlID0gZ2V0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJv
cGVydHlOYW1lKTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBKU1ZhcmlhYmxlT2Jq
ZWN0OjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgSlNWYXJpYWJs
ZU9iamVjdDo6cHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogICAg
IGlmICghdmFsdWVCZWZvcmUpIHsKICAgICAgICAgSlNWYWx1ZSB2YWx1ZUFmdGVyID0gZ2V0RGly
ZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lKTsKICAgICAgICAgaWYgKHZhbHVl
QWZ0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aAppbmRleCA4N2YwZjRiMTBjYTljNzZiNTQzNTY0OWE3YmQwMmZkMjZkZDU0MGJhLi5jNjNkNDNi
MDBmODc4MTkzYTc5Mjk3ZDFiN2MxNDRkM2Y2NDUwOTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE4Myw3ICsxODMsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0
dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKaW5kZXggZTE0
YTY4YmQ5NGZhMTRlZTBjZDY0ZDBmMzQyN2FhMmNjNDZkYjlkOS4uMzc4N2M5NDllMWE4ZDQzNDlj
NGQyZWQ5YjQ1MWMzYTFjNGNkMDYwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgYm9vbCBKU05vdEFuT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiwKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSlNOb3RBbk9iamVjdDo6cHV0
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBKU05vdEFuT2JqZWN0OjpwdXRWaXJ0
dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgSlNWYWx1
ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBp
ZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7CiB9CkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgSlNOb3RB
bk9iamVjdDo6cHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
LCBKU1ZhbHVlLCBQCiAgICAgQVNTRVJUX1VOVVNFRChleGVjLCBleGVjLT5oYWRFeGNlcHRpb24o
KSk7CiB9CiAKLXZvaWQgSlNOb3RBbk9iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgaSwgSlNWYWx1ZSB2YWx1ZSkKK3ZvaWQgSlNOb3RBbk9iamVjdDo6cHV0VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgcHV0KHRoaXMs
IGV4ZWMsIGksIHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Tm90QW5PYmplY3QuaAppbmRleCBiOGYwZmFhODU2MjI2MjNjMjA3OWM5YzljNzEzN2Q3ZDdiMjg1
MWY3Li4xNmEyNzY4ZGFmYmU5NWQwMjVhMjk5Yjg5NDI4NWFlN2ViNTdlZTM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCkBAIC03NiwxMCArNzYs
MTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAotICAg
ICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsK
ICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3Bl
cnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IDZlZjIxNTYwMGIw
Nzc5OWY1YzE0OTMyNThlOWM5ZjcwNWQ1NmRlOTguLjcxMTNjOGFmOTIwZjRkZmMzNDUzNWY1ZWMw
YjYwYjZhZjc4MDZhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05P
YmplY3QuY3BwCkBAIC03MTUsNyArNzE1LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2Vy
Ojp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSlNB
cnJheSgmbV9leGVjLT5nbG9iYWxEYXRhKCksIGFycmF5KSAmJiBhcnJheS0+Y2FuU2V0SW5kZXgo
aW5kZXhTdGFjay5sYXN0KCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXktPnNldElu
ZGV4KG1fZXhlYy0+Z2xvYmFsRGF0YSgpLCBpbmRleFN0YWNrLmxhc3QoKSwgZmlsdGVyZWRWYWx1
ZSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGFy
cmF5LT5wdXQobV9leGVjLCBpbmRleFN0YWNrLmxhc3QoKSwgZmlsdGVyZWRWYWx1ZSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBhcnJheS0+cHV0VmlydHVhbChtX2V4ZWMsIGluZGV4U3RhY2su
bGFzdCgpLCBmaWx0ZXJlZFZhbHVlKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgaWYgKG1fZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBqc051bGwoKTsKQEAgLTc3OSw3ICs3NzksNyBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxr
ZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJl
ZFZhbHVlLmlzVW5kZWZpbmVkKCkpCiAgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+ZGVsZXRl
UHJvcGVydHkobV9leGVjLCBwcm9wKTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgICAgIG9iamVjdC0+cHV0KG1fZXhlYywgcHJvcCwgZmlsdGVyZWRWYWx1ZSwgc2xvdCk7
CisgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+cHV0VmlydHVhbChtX2V4ZWMsIHByb3AsIGZp
bHRlcmVkVmFsdWUsIHNsb3QpOwogICAgICAgICAgICAgICAgIGlmIChtX2V4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAgICAgICAgICAg
ICAgICAgaW5kZXhTdGFjay5sYXN0KCkrKzsKQEAgLTgxMCw3ICs4MTAsNyBAQCBORVZFUl9JTkxJ
TkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogICAgIH0KICAgICBK
U09iamVjdCogZmluYWxIb2xkZXIgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChtX2V4ZWMpOwogICAg
IFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgIGZpbmFsSG9sZGVyLT5wdXQobV9leGVjLCBtX2V4
ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5lbXB0eUlkZW50aWZpZXIsIG91dFZhbHVl
LCBzbG90KTsKKyAgICBmaW5hbEhvbGRlci0+cHV0VmlydHVhbChtX2V4ZWMsIG1fZXhlYy0+Z2xv
YmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPmVtcHR5SWRlbnRpZmllciwgb3V0VmFsdWUsIHNsb3Qp
OwogICAgIHJldHVybiBjYWxsUmV2aXZlcihmaW5hbEhvbGRlciwganNFbXB0eVN0cmluZyhtX2V4
ZWMpLCBvdXRWYWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmNwcAppbmRleCBmOTRjMTYyYTdmODk2ZDhkYzBjMWIyNjcyY2Q5ODBmYzI4ZWE0YjJiLi5k
ZDI5NWI3NzRlYWEwMTA3NWE4NTY3YzhhN2MxZWI3YjJiNzc4Y2M3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgc3RhdGlj
IHZvaWQgdGhyb3dTZXR0ZXJFcnJvcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgdGhyb3dFcnJvcihl
eGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgInNldHRpbmcgYSBwcm9wZXJ0eSB0aGF0IGhhcyBv
bmx5IGEgZ2V0dGVyIikpOwogfQogCi12b2lkIEpTT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCkKK3ZvaWQgSlNPYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7CiB9CkBAIC0xOTAsNyArMTkwLDcgQEAgdm9pZCBKU09iamVjdDo6cHV0KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUK
ICAgICByZXR1cm47CiB9CiAKLXZvaWQgSlNPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKK3ZvaWQgSlNPYmplY3Q6OnB1dFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOwogfQpAQCAt
MTk4LDcgKzE5OCw3IEBAIHZvaWQgSlNPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHZvaWQgSlNPYmplY3Q6OnB1dChKU0Nl
bGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlKQogewogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgIHN0YXRpY19jYXN0PEpT
T2JqZWN0Kj4oY2VsbCktPnB1dChleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5
TmFtZSksIHZhbHVlLCBzbG90KTsKKyAgICBzdGF0aWNfY2FzdDxKU09iamVjdCo+KGNlbGwpLT5w
dXRWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgdmFs
dWUsIHNsb3QpOwogfQogCiB2b2lkIEpTT2JqZWN0OjpwdXRXaXRoQXR0cmlidXRlcyhKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcywgYm9vbCBjaGVja1JlYWRPbmx5LCBQdXRQcm9w
ZXJ0eVNsb3QmIHNsb3QpCkBAIC03NjMsNyArNzYzLDcgQEAgYm9vbCBKU09iamVjdDo6ZGVmaW5l
T3duUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUKICAgICAgICAgICAgIGlmICghZGVzY3JpcHRvci52YWx1ZSgpKQogICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAg
ICAgICBwdXQoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLnZhbHVlKCksIHNsb3QpOwor
ICAgICAgICAgICAgcHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IudmFs
dWUoKSwgc2xvdCk7CiAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCBjOGYzZGU5N2E3MjQ5YTZk
ZjcwMzkzMjIzMWU4ZDE4MTE5ZDkyMmRmLi5jOWFlY2VhZTEwZDkxYWQ3NTcxZTMxYjJiNzM2MjFk
M2M2ZGVhOWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAg
LTEwNyw5ICsxMDcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEpTR2xvYmFsRGF0YSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcywgYm9v
bCBjaGVja1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpOwpAQCAtODAyLDEwICs4MDIs
MTAgQEAgaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QKIGlubGluZSB2b2lkIEpTVmFsdWU6OnB1dChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGlmIChVTkxJS0VMWSghaXNDZWxs
KCkpKSB7Ci0gICAgICAgIHN5bnRoZXNpemVPYmplY3QoZXhlYyktPnB1dChleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICAgICAgc3ludGhlc2l6ZU9iamVjdChleGVjKS0+cHV0
VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KLSAgICBhc0NlbGwoKS0+cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOworICAgIGFzQ2VsbCgpLT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOwogfQogCiBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXREaXJlY3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYgc2xvdCkKQEAgLTgxOCwxMCArODE4LDEwIEBAIGlubGluZSB2b2lkIEpTVmFs
dWU6OnB1dERpcmVjdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwKIGlubGluZSB2b2lkIEpTVmFsdWU6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoVU5MSUtFTFkoIWlzQ2Vs
bCgpKSkgewotICAgICAgICBzeW50aGVzaXplT2JqZWN0KGV4ZWMpLT5wdXQoZXhlYywgcHJvcGVy
dHlOYW1lLCB2YWx1ZSk7CisgICAgICAgIHN5bnRoZXNpemVPYmplY3QoZXhlYyktPnB1dFZpcnR1
YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0g
ICAgYXNDZWxsKCktPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKKyAgICBhc0NlbGwo
KS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKIH0KIAogQUxXQVlTX0lO
TElORSB2b2lkIEpTT2JqZWN0Ojp2aXNpdENoaWxkcmVuRGlyZWN0KFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Nj
b3BlT2JqZWN0LmNwcAppbmRleCA4ZDBmZGE5MDM3MzIyZGYxNzMwNjVkYzYxY2M5MTRlNTMwMDdi
ZjAyLi43NGY2OTlkOWI5YTliMTc4MWJhZjdiYTI0MDg0ZjQxMDdjYWNkZjIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNw
cApAQCAtNDksNyArNDksNyBAQCBKU09iamVjdCogSlNTdGF0aWNTY29wZU9iamVjdDo6dG9UaGlz
T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gZXhlYy0+Z2xvYmFsVGhp
c1ZhbHVlKCk7CiB9CiAKLXZvaWQgSlNTdGF0aWNTY29wZU9iamVjdDo6cHV0KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIEpTU3RhdGljU2NvcGVPYmplY3Q6OnB1dFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKaW5kZXggZGMyODc3OTVkZDlmMTYwNGY2
YjUxZjI0NmI2Y2E5MmVmOThhMTgwNS4uODU4NWJiZTRiZTI3ZDIwMjkxMzZjZjM0MGIzYTU2MWIz
NWM4NTJiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0
aWNTY29wZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Rh
dGljU2NvcGVPYmplY3QuaApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgSlNDewogICAgICAg
ICB2aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAg
ICAgIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Mb29rdXAuaAppbmRleCA3ODJkYzBmYmM3MGM4M2E5MmFlMTBmMTA0OWFmZmRjMDMyNjk4ODFj
Li44YjBiOGQ5NDcyOGFiNmQ0MmRjZGY4MDUxOTJlZDY1MGY4MjYyNTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Mb29rdXAuaApAQCAtMzUyLDcgKzM1Miw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgIGlubGluZSB2b2lkIGxvb2t1cFB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgY29uc3QgSGFzaFRhYmxlKiB0
YWJsZSwgVGhpc0ltcCogdGhpc09iaiwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogICAgIHsKICAg
ICAgICAgaWYgKCFsb29rdXBQdXQ8VGhpc0ltcD4oZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwg
dGFibGUsIHRoaXNPYmopKQotICAgICAgICAgICAgdGhpc09iai0+UGFyZW50SW1wOjpwdXQoZXhl
YywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7IC8vIG5vdCBmb3VuZDogZm9yd2FyZCB0byBw
YXJlbnQKKyAgICAgICAgICAgIFBhcmVudEltcDo6cHV0KHRoaXNPYmosIGV4ZWMsIHByb3BlcnR5
TmFtZSwgdmFsdWUsIHNsb3QpOyAvLyBub3QgZm91bmQ6IGZvcndhcmQgdG8gcGFyZW50CiAgICAg
fQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IDk5YTViYjIyOGJmMjdlYzFhZDQxYTlkYjQ0
NGUyM2U3NWY4NGY1N2EuLjMyZDZhNzI3ZmNmYWMzMDkzMjQxYmU4N2I3ODEyOWM2MTYzNWI5MTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBl
LmNwcApAQCAtNzUsNyArNzUsNyBAQCB2b2lkIE9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCopCiAgICAgQVNTRVJU
KGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIAotdm9pZCBPYmplY3RQcm90b3R5cGU6OnB1dChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1
ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBPYmplY3RQcm90b3R5cGU6OnB1dFZpcnR1
YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCmluZGV4IGUzOTAwMjJmNjdjNzU0MjA1YmUzMjFl
ZjdjYjA5ZDQ1ZmQ1NWUxNDguLmVhYWMxZDFlODE1MjA5MmZhYzcwYmZlN2M1ZjVlNDVhZGU5ZDg4
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3Rv
dHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlw
ZS5oCkBAIC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgT2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwotICAgICAgICB2
aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29u
c3RydWN0b3IuY3BwCmluZGV4IDU4Njc2OTRiNDBhY2NkZTYwN2MxN2Q1NWY3ZDg4YzYwNTE5MjNl
MzIuLjZiYjg4MWI5OGQ3OTlhNWM1MjM1OTg1YmUxYTgyNWM5ZGM3NzM0MjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKQEAg
LTE0OCwxNCArMTQ4LDE0IEBAIHZvaWQgUmVnRXhwTWF0Y2hlc0FycmF5OjpmaWxsQXJyYXlJbnN0
YW5jZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8PSBsYXN0
TnVtU3VicGF0dGVybnM7ICsraSkgewogICAgICAgICBpbnQgc3RhcnQgPSBkLT5sYXN0T3ZlY3Rv
cigpWzIgKiBpXTsKICAgICAgICAgaWYgKHN0YXJ0ID49IDApCi0gICAgICAgICAgICBKU0FycmF5
OjpwdXQoZXhlYywgaSwganNTdWJzdHJpbmcoZXhlYywgZC0+bGFzdElucHV0LCBzdGFydCwgZC0+
bGFzdE92ZWN0b3IoKVsyICogaSArIDFdIC0gc3RhcnQpKTsKKyAgICAgICAgICAgIEpTQXJyYXk6
OnB1dCh0aGlzLCBleGVjLCBpLCBqc1N1YnN0cmluZyhleGVjLCBkLT5sYXN0SW5wdXQsIHN0YXJ0
LCBkLT5sYXN0T3ZlY3RvcigpWzIgKiBpICsgMV0gLSBzdGFydCkpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBKU0FycmF5OjpwdXQoZXhlYywgaSwganNVbmRlZmluZWQoKSk7CisgICAgICAg
ICAgICBKU0FycmF5OjpwdXQodGhpcywgZXhlYywgaSwganNVbmRlZmluZWQoKSk7CiAgICAgfQog
CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgSlNBcnJheTo6cHV0KGV4ZWMsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5pbmRleCwganNOdW1iZXIoZC0+bGFzdE92ZWN0b3IoKVswXSksIHNs
b3QpOwotICAgIEpTQXJyYXk6OnB1dChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuaW5wdXQs
IGpzU3RyaW5nKGV4ZWMsIGQtPmlucHV0KSwgc2xvdCk7CisgICAgSlNBcnJheTo6cHV0KHRoaXMs
IGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5pbmRleCwganNOdW1iZXIoZC0+bGFzdE92ZWN0
b3IoKVswXSksIHNsb3QpOworICAgIEpTQXJyYXk6OnB1dCh0aGlzLCBleGVjLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkuaW5wdXQsIGpzU3RyaW5nKGV4ZWMsIGQtPmlucHV0KSwgc2xvdCk7CiAKICAg
ICBkZWxldGUgZDsKICAgICBzZXRTdWJjbGFzc0RhdGEoMCk7CkBAIC0yOTIsNyArMjkyLDcgQEAg
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgc2xvdEJhc2UsIGNvbnN0IEkKICAgICByZXR1cm4gYXNSZWdFeHBDb25zdHJ1Y3Rvcihz
bG90QmFzZSktPmdldFJpZ2h0Q29udGV4dChleGVjKTsKIH0KIAotdm9pZCBSZWdFeHBDb25zdHJ1
Y3Rvcjo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIFJlZ0V4cENvbnN0
cnVjdG9yOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAg
cHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKaW5kZXggZDlm
ZGZjZWFjZjU0ZWFlOTEzYWM5NTc5MjhiMTY2ZmM5ZDc5MDNmYy4uOGQ0NDM5MzVhNTg1ZDI2NDNk
ZjYxMTY4OTFmYTdmYmFkY2E4ODliZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBAIC03MSw3ICs3MSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksICZzX2luZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYp
OwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCmluZGV4IGU3NWQ2MjE5
MTVkMjRhNWU4NmI3YTc1NjRhOTI1YTI2ZjA2OTAxMWQuLjhjMjlkOTU2MTYxYWJhNDFkMjQzNWFj
NTU1MDRkYWNlMWRkNzdiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCkBAIC03Niw3ICs3Niw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAgICAgcmV0dXJuIEpTQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihl
eGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgICAgICB9CiAKLSAgICAgICAgdmly
dHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCisgICAgICAgIHZpcnR1YWwg
dm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHYsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICAgICAgewogICAg
ICAgICAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdiwgc2xvdCk7CiAgICAgICAg
IH0KQEAgLTg5LDcgKzg5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBKU0FycmF5
OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2LCBzbG90KTsKICAgICAgICAg
fQogICAgICAgICAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2KQorICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
KQogICAgICAgICB7CiAgICAgICAgICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2
KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHAKaW5kZXggNjYwYjJlMzBhNTRiOTFjOTkwY2FkYWI0YWEyZjY0MzgzNWMxOTU4Yy4u
ZDgwNGRmNDhhNDY1NTkwOWQ2NjYyMzYzZWFjMTcwZjA1MWIzMDkzMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCkBAIC0xNjUsNyArMTY1LDcg
QEAgSlNWYWx1ZSByZWdFeHBPYmplY3RMYXN0SW5kZXgoRXhlY1N0YXRlKiwgSlNWYWx1ZSBzbG90
QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCiAgICAgcmV0dXJuIGFzUmVnRXhwT2JqZWN0KHNsb3RC
YXNlKS0+Z2V0TGFzdEluZGV4KCk7CiB9CiAKLXZvaWQgUmVnRXhwT2JqZWN0OjpwdXQoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgUmVnRXhwT2JqZWN0OjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBPYmplY3QuaAppbmRleCBjMGY4M2Q1NDJjYmRlYmQ5YWVkYmJkODc1YzAxYmJmZThi
MjAzMjM5Li4yZWFiMTBjYzk0ZjhkODM2Y2FlZWUyYjNmOTZlNWU4ZTU5M2YxMWJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApAQCAtNjgsNyArNjgs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZp
cnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90Jik7CiAKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJ
bmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmpl
Y3QuY3BwCmluZGV4IDZkNTQ4Y2Q2ZjFhZjRlMmM2ZGRlOWFmNmY0ZmNmZTg2NzcyMmU3YTEuLmU4
ZmNjODYxNjgzYmM4MjZhN2MyOTdjOWFiNGQxOWQxYWFlZWZmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcApAQCAtNzQsNyArNzQsNyBAQCBi
b29sIFN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcAogICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKLXZvaWQg
U3RyaW5nT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgU3Ry
aW5nT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAg
ICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCA4NzJhMmMxMzNi
NjZhNmQyMTdhYzljOWJlNTY0OWY4MmU1Y2MxMThiLi41NmIzN2NjNDk4MWM5ZDY4NWFhM2I3NTM3
MDY1NGQwZTg0NzhiY2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdPYmplY3QuaApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAg
ICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IDg4ZmIyZTkyMWFlN2RmYTNjMDNhYzgwNmUzMzI5N2Uz
NGJkMmVmMWUuLjE5NDFmNjA0YWJkODgzYmMzYjI2YWM3ODliZTQ3NTg2NDdlNDg0MjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcApA
QCAtODM3LDcgKzgzNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJv
dG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBpZiAoc2VwYXJhdG9yVmFsdWUu
aXNVbmRlZmluZWQoKSkgewogICAgICAgICAgICAgLy8gYS4gQ2FsbCB0aGUgW1tEZWZpbmVPd25Q
cm9wZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzICIwIiwKICAgICAg
ICAgICAgIC8vICAgIFByb3BlcnR5IERlc2NyaXB0b3Ige1tbVmFsdWVdXTogUywgW1tXcml0YWJs
ZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZX0s
IGFuZCBmYWxzZS4KLSAgICAgICAgICAgIHJlc3VsdC0+cHV0KGV4ZWMsIDAsIGpzU3RyaW5nV2l0
aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5wdXQpKTsKKyAgICAgICAgICAgIHJlc3VsdC0+cHV0
VmlydHVhbChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlucHV0
KSk7CiAgICAgICAgICAgICAvLyBiLiBSZXR1cm4gQS4KICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKICAgICAgICAgfQpAQCAtODUwLDcgKzg1MCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBl
eGVjKQogICAgICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1ZV1dOiBT
LCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJs
ZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgogICAgICAgICAgICAgLy8gZC4gUmV0dXJuIEEuCiAgICAg
ICAgICAgICBpZiAocmVnLT5tYXRjaCgqZ2xvYmFsRGF0YSwgaW5wdXQsIDApIDwgMCkKLSAgICAg
ICAgICAgICAgICByZXN1bHQtPnB1dChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0
aGlzVmFsdWUsIGlucHV0KSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4
ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5wdXQpKTsKICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICAgICAgfQogCkBAIC04
ODEsNyArODgxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1
bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAvLyAgICB0aHJvdWdoIHEgKGV4
Y2x1c2l2ZSkuCiAgICAgICAgICAgICAvLyAyLiBDYWxsIHRoZSBbW0RlZmluZU93blByb3BlcnR5
XV0gaW50ZXJuYWwgbWV0aG9kIG9mIEEgd2l0aCBhcmd1bWVudHMgVG9TdHJpbmcobGVuZ3RoQSks
CiAgICAgICAgICAgICAvLyAgICBQcm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFQsIFtb
V3JpdGFibGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06
IHRydWV9LCBhbmQgZmFsc2UuCi0gICAgICAgICAgICByZXN1bHQtPnB1dChleGVjLCByZXN1bHRM
ZW5ndGgsIGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBwb3NpdGlvbiwgbWF0Y2hQb3NpdGlvbiAt
IHBvc2l0aW9uKSk7CisgICAgICAgICAgICByZXN1bHQtPnB1dFZpcnR1YWwoZXhlYywgcmVzdWx0
TGVuZ3RoLCBqc1N1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRpb24sIG1hdGNoUG9zaXRpb24g
LSBwb3NpdGlvbikpOwogICAgICAgICAgICAgLy8gMy4gSW5jcmVtZW50IGxlbmd0aEEgYnkgMS4K
ICAgICAgICAgICAgIC8vIDQuIElmIGxlbmd0aEEgPT0gbGltLCByZXR1cm4gQS4KICAgICAgICAg
ICAgIGlmICgrK3Jlc3VsdExlbmd0aCA9PSBsaW1pdCkKQEAgLTkwMCw3ICs5MDAsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSog
ZXhlYykKICAgICAgICAgICAgICAgICAvLyAgIFRvU3RyaW5nKGxlbmd0aEEpLCBQcm9wZXJ0eSBE
ZXNjcmlwdG9yIHtbW1ZhbHVlXV06IGNhcFtpXSwgW1tXcml0YWJsZV1dOgogICAgICAgICAgICAg
ICAgIC8vICAgdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRy
dWV9LCBhbmQgZmFsc2UuCiAgICAgICAgICAgICAgICAgaW50IHN1YiA9IG92ZWN0b3JbaSAqIDJd
OwotICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0KGV4ZWMsIHJlc3VsdExlbmd0aCwgc3ViIDwg
MCA/IGpzVW5kZWZpbmVkKCkgOiBqc1N1YnN0cmluZyhleGVjLCBpbnB1dCwgc3ViLCBvdmVjdG9y
W2kgKiAyICsgMV0gLSBzdWIpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQtPnB1dFZpcnR1YWwo
ZXhlYywgcmVzdWx0TGVuZ3RoLCBzdWIgPCAwID8ganNVbmRlZmluZWQoKSA6IGpzU3Vic3RyaW5n
KGV4ZWMsIGlucHV0LCBzdWIsIG92ZWN0b3JbaSAqIDIgKyAxXSAtIHN1YikpOwogICAgICAgICAg
ICAgICAgIC8vIGMgSW5jcmVtZW50IGxlbmd0aEEgYnkgMS4KICAgICAgICAgICAgICAgICAvLyBk
IElmIGxlbmd0aEEgPT0gbGltLCByZXR1cm4gQS4KICAgICAgICAgICAgICAgICBpZiAoKytyZXN1
bHRMZW5ndGggPT0gbGltaXQpCkBAIC05MTksNyArOTE5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
IGlmIChzZXBhcmF0b3JWYWx1ZS5pc1VuZGVmaW5lZCgpKSB7CiAgICAgICAgICAgICAvLyBhLiAg
Q2FsbCB0aGUgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGgg
YXJndW1lbnRzICIwIiwKICAgICAgICAgICAgIC8vICAgICBQcm9wZXJ0eSBEZXNjcmlwdG9yIHtb
W1ZhbHVlXV06IFMsIFtbV3JpdGFibGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtb
Q29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCi0gICAgICAgICAgICByZXN1bHQtPnB1
dChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7Cisg
ICAgICAgICAgICByZXN1bHQtPnB1dFZpcnR1YWwoZXhlYywgMCwganNTdHJpbmdXaXRoUmV1c2Uo
ZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOwogICAgICAgICAgICAgLy8gYi4gIFJldHVybiBBLgog
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogICAgICAgICB9CkBA
IC05MzIsNyArOTMyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90
b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAvLyAgICBQcm9wZXJ0eSBE
ZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFMsIFtbV3JpdGFibGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxl
XV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCiAgICAgICAgICAg
ICAvLyBkLiBSZXR1cm4gQS4KICAgICAgICAgICAgIGlmICghc2VwYXJhdG9yLmlzRW1wdHkoKSkK
LSAgICAgICAgICAgICAgICByZXN1bHQtPnB1dChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShl
eGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LT5wdXRWaXJ0
dWFsKGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5wdXQpKTsK
ICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICAgICAgfQog
CkBAIC05NDMsNyArOTQzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQ
cm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICBBU1NFUlQobGltaXQp
OwogCiAgICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LT5wdXQoZXhlYywg
cG9zaXRpb24sIGpzU2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBwb3NpdGlv
bikpOworICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0VmlydHVhbChleGVjLCBwb3NpdGlvbiwg
anNTaW5nbGVDaGFyYWN0ZXJTdWJzdHJpbmcoZXhlYywgaW5wdXQsIHBvc2l0aW9uKSk7CiAgICAg
ICAgICAgICB9IHdoaWxlICgrK3Bvc2l0aW9uIDwgbGltaXQpOwogCiAgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CkBAIC05NjAsNyArOTYwLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgICAgICAgICAvLyAgICB0aHJvdWdoIHEgKGV4Y2x1c2l2ZSkuCiAgICAgICAgICAgICAv
LyAyLiBDYWxsIHRoZSBbW0RlZmluZU93blByb3BlcnR5XV0gaW50ZXJuYWwgbWV0aG9kIG9mIEEg
d2l0aCBhcmd1bWVudHMgVG9TdHJpbmcobGVuZ3RoQSksCiAgICAgICAgICAgICAvLyAgICBQcm9w
ZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFQsIFtbV3JpdGFibGVdXTogdHJ1ZSwgW1tFbnVt
ZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCi0gICAg
ICAgICAgICByZXN1bHQtPnB1dChleGVjLCByZXN1bHRMZW5ndGgsIGpzU3Vic3RyaW5nKGV4ZWMs
IGlucHV0LCBwb3NpdGlvbiwgbWF0Y2hQb3NpdGlvbiAtIHBvc2l0aW9uKSk7CisgICAgICAgICAg
ICByZXN1bHQtPnB1dFZpcnR1YWwoZXhlYywgcmVzdWx0TGVuZ3RoLCBqc1N1YnN0cmluZyhleGVj
LCBpbnB1dCwgcG9zaXRpb24sIG1hdGNoUG9zaXRpb24gLSBwb3NpdGlvbikpOwogICAgICAgICAg
ICAgLy8gMy4gSW5jcmVtZW50IGxlbmd0aEEgYnkgMS4KICAgICAgICAgICAgIC8vIDQuIElmIGxl
bmd0aEEgPT0gbGltLCByZXR1cm4gQS4KICAgICAgICAgICAgIGlmICgrK3Jlc3VsdExlbmd0aCA9
PSBsaW1pdCkKQEAgLTk3Niw3ICs5NzYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAvLyAgICAgdGhyb3Vn
aCBzIChleGNsdXNpdmUpLgogICAgIC8vIDE1LiBDYWxsIHRoZSBbW0RlZmluZU93blByb3BlcnR5
XV0gaW50ZXJuYWwgbWV0aG9kIG9mIEEgd2l0aCBhcmd1bWVudHMgVG9TdHJpbmcobGVuZ3RoQSks
IFByb3BlcnR5IERlc2NyaXB0b3IKICAgICAvLyAgICAge1tbVmFsdWVdXTogVCwgW1tXcml0YWJs
ZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZX0s
IGFuZCBmYWxzZS4KLSAgICByZXN1bHQtPnB1dChleGVjLCByZXN1bHRMZW5ndGgrKywganNTdWJz
dHJpbmcoZXhlYywgaW5wdXQsIHBvc2l0aW9uLCBpbnB1dC5sZW5ndGgoKSAtIHBvc2l0aW9uKSk7
CisgICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIHJlc3VsdExlbmd0aCsrLCBqc1N1YnN0cmlu
ZyhleGVjLCBpbnB1dCwgcG9zaXRpb24sIGlucHV0Lmxlbmd0aCgpIC0gcG9zaXRpb24pKTsKIAog
ICAgIC8vIDE2LiBSZXR1cm4gQS4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nIGIvU291cmNlL0ph
dmFTY3JpcHRHbHVlL0NoYW5nZUxvZwppbmRleCAwYjFiNDU2NTEzMTRmMjQ0ZmU0ZWNiZjUyMWY2
ZWI3MmVhYzIyZjEwLi5jMzczZGJhYmU2NmI4NTYyOWYxMmNlMTFhYWViNjM1YzFjM2FiOTY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0xMC0xMSAgTWFy
ayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSB2
aXJ0dWFsIHB1dCB0byBwdXRWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02OTg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlbmFtZWQgdmlydHVhbCB2ZXJzaW9ucyBvZiBwdXQgdG8gcHV0Vmly
dHVhbCBpbiBwcmVwcmF0aW9uIGZvciAKKyAgICAgICAgYWRkaW5nIHRoZSBzdGF0aWMgcHV0IHRv
IHRoZSBNZXRob2RUYWJsZSBpbiBDbGFzc0luZm8gc2luY2UgdGhlIAorICAgICAgICBjb21waWxl
ciBnZXRzIG1hZCBpZiB0aGUgdmlydHVhbCBhbmQgc3RhdGljIHZlcnNpb25zIGhhdmUgdGhlIHNh
bWUgCisgICAgICAgIG5hbWUuCisKKyAgICAgICAgKiBKU1ZhbHVlV3JhcHBlci5jcHA6CisgICAg
ICAgIChKU1ZhbHVlV3JhcHBlcjo6SlNPYmplY3RTZXRQcm9wZXJ0eSk6CisgICAgICAgICogVXNl
ck9iamVjdEltcC5jcHA6CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjpwdXRWaXJ0dWFsKToKKyAg
ICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6CisKIDIwMTEtMTAtMDggIE1hcmsgSGFobmVuYmVyZyAg
PG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3RhdGljIHZlcnNpb24gb2Yg
SlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9KU1ZhbHVlV3JhcHBlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNWYWx1ZVdy
YXBwZXIuY3BwCmluZGV4IDI3NjgzYmYwODZlOTk4ZjY0MGNkZWUwODJiY2Q4NTgyNDJiNDM2ODYu
LmEwYjc3MGU2YjhkZDhkZjE5YzgzNDBiZWZmZmZkYTkxYWFjZmYzYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1ZhbHVlV3JhcHBlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRHbHVlL0pTVmFsdWVXcmFwcGVyLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgSlNW
YWx1ZVdyYXBwZXI6OkpTT2JqZWN0U2V0UHJvcGVydHkodm9pZCAqZGF0YSwgQ0ZTdHJpbmdSZWYg
cHJvcGVydHlOYW1lLCBKCiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBKU09iamVjdEtKU1ZhbHVl
KChKU1VzZXJPYmplY3QqKWpzVmFsdWUpOwogICAgICAgICBKU09iamVjdCAqb2JqVmFsdWUgPSBw
dHItPkdldFZhbHVlKCkudG9PYmplY3QoZXhlYyk7CiAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBz
bG90OwotICAgICAgICBvYmpWYWx1ZS0+cHV0KGV4ZWMsIENGU3RyaW5nVG9JZGVudGlmaWVyKHBy
b3BlcnR5TmFtZSwgZXhlYyksIHZhbHVlLCBzbG90KTsKKyAgICAgICAgb2JqVmFsdWUtPnB1dFZp
cnR1YWwoZXhlYywgQ0ZTdHJpbmdUb0lkZW50aWZpZXIocHJvcGVydHlOYW1lLCBleGVjKSwgdmFs
dWUsIHNsb3QpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVl
L1VzZXJPYmplY3RJbXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAu
Y3BwCmluZGV4IDdiNjA4OTNhODY4MzJlNzc0OGQ5ZDE2YzM2MDc1NDdmNGIzOWNhZGMuLmRhMTRj
YzNhNTVhMDZkOTA4ZGIzMzQzNThlOTNmNzMyMmY5YjlhNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvVXNlck9iamVjdEltcC5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBib29sIFVzZXJPYmplY3RJ
bXA6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSAqZXhlYywgY29u
c3QgSWRlbgogICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmpl
Y3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLXZvaWQgVXNlck9iamVjdEltcDo6
cHV0KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIFVzZXJPYmplY3RJbXA6OnB1
dFZpcnR1YWwoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1Vz
ZXJPYmplY3RJbXAuaAppbmRleCA2ZGM1OTUxMDRmN2U5MmQwYzU0MjBiY2RlYjk1MTQzYTBlM2Fi
MGIzLi4wOTU1ZmRlZjg2YTM1NzU0ZjZlNzcxYTFjNzhkNTFlN2E1ZTAyOWU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgSlNWYWx1ZSBjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMpOwogICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
LSAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAm
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0
dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dChK
U0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgSlNWYWx1ZSB0b1ByaW1pdGl2ZShFeGVjU3Rh
dGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlIHByZWZlcnJlZFR5cGUgPSBOb1ByZWZlcmVuY2Up
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdhNmFkMWMxMzU5MmJkNDQ4NDc1OTYyNDgzN2YwYzBjNjUz
MTYxM2YuLjczYzZmZDA2NDdkMDk4ZDc4ZGY4NzEwMjVhNzUwNDg4NDM1YzExYzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1OCBAQAorMjAxMS0xMC0xMSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5l
bmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSB2aXJ0dWFsIHB1dCB0byBwdXRWaXJ0
dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTg1
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cy4KKworICAgICAgICBSZW5hbWVkIHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRvIHB1
dFZpcnR1YWwgaW4gcHJlcHJhdGlvbiBmb3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGljIHB1
dCB0byB0aGUgTWV0aG9kVGFibGUgaW4gQ2xhc3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAgY29t
cGlsZXIgZ2V0cyBtYWQgaWYgdGhlIHZpcnR1YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZlIHRo
ZSBzYW1lIAorICAgICAgICBuYW1lLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNET01XaW5kb3c6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6cHV0
VmlydHVhbCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNMb2NhdGlvbjo6cHV0RGVsZWdhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpydW50aW1lT2JqZWN0
Q3VzdG9tUHV0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OnB1dFByb3BlcnR5KToK
KyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbToKKyAgICAgICAgKC1b
V2ViU2NyaXB0T2JqZWN0IHNldFZhbHVlOmZvcktleTpdKToKKyAgICAgICAgKC1bV2ViU2NyaXB0
T2JqZWN0IHNldFdlYlNjcmlwdFZhbHVlQXRJbmRleDp2YWx1ZTpdKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVy
KToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
T2JqOjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmg6CisgICAgICAgICogYnJpZGdlL05QX2pzb2JqZWN0LmNwcDoKKyAgICAgICAgKF9O
UE5fU2V0UHJvcGVydHkpOgorICAgICAgICAqIGJyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1tOgor
ICAgICAgICAoSmF2YUpTT2JqZWN0OjpzZXRNZW1iZXIpOgorICAgICAgICAoSmF2YUpTT2JqZWN0
OjpzZXRTbG90KToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAg
ICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdz
OjpPYmpjRmFsbGJhY2tPYmplY3RJbXA6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9x
dC9xdF9pbnN0YW5jZS5oOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmNwcDoKKyAg
ICAgICAgKEpTQzo6QmluZGluZ3M6OmNvbnZlcnRRVmFyaWFudFRvVmFsdWUpOgorICAgICAgICAq
IGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5Ojpw
dXRWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAgICAq
IGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50
aW1lT2JqZWN0OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3Qu
aDoKKyAgICAgICAgKiBicmlkZ2UvdGVzdHF0YmluZGluZ3MuY3BwOgorICAgICAgICAobWFpbik6
CisKIDIwMTEtMTAtMTAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIE1ha2Ugc3RhdGljIGZ1bmN0aW9ucyBpbiBIVE1MU2VsZWN0RWxlbWVudC5jcHAgbWVtYmVy
IGZ1bmN0aW9ucyBvZiBIVE1MU2VsZWN0RWxlbWVudCBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpp
bmRleCAxZGY0ZDdmZjEyOTUwMGJjN2Y2NzZjMGNiNTE0OGVjOTcyYTA4ZmZhLi4zOWRmMGNiMjY0
MTEwNjBlMTM1YWFlYmFhNDAyNDdhZjY3OTNhYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAt
MTQxLDcgKzE0MSw3IEBAIF9fWk43V2ViQ29yZTEwQ2xpZW50UmVjdEMxRXYKIF9fWk43V2ViQ29y
ZTEwQ3JlZGVudGlhbEMxRVJLTjNXVEY2U3RyaW5nRVM0X05TXzIxQ3JlZGVudGlhbFBlcnNpc3Rl
bmNlRQogX19aTjdXZWJDb3JlMTBDcmVkZW50aWFsQzFFdgogX19aTjdXZWJDb3JlMTBGbG9hdFBv
aW50QzFFUktOU184SW50UG9pbnRFCi1fX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQzcHV0RVBOM0pT
QzlFeGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJv
cGVydHlTbG90RQorX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50MTBwdXRWaXJ0dWFsRVBOM0pTQzlF
eGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJvcGVy
dHlTbG90RQogX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50NnNfaW5mb0UKIF9fWk43V2ViQ29yZTEw
TW91c2VFdmVudDZjcmVhdGVFUktOM1dURjEyQXRvbWljU3RyaW5nRU5TMV8xMFBhc3NSZWZQdHJJ
TlNfOURPTVdpbmRvd0VFRVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZlbnRFaU5TNV9JTlNfNE5vZGVF
RUUKIF9fWk43V2ViQ29yZTEwTW91c2VFdmVudEMxRVJLTjNXVEYxMkF0b21pY1N0cmluZ0ViYk5T
MV8xMFBhc3NSZWZQdHJJTlNfOURPTVdpbmRvd0VFRWlpaWlpYmJiYnROUzVfSU5TXzExRXZlbnRU
YXJnZXRFRUVOUzVfSU5TXzlDbGlwYm9hcmRFRUViCkBAIC04MjksNyArODI5LDcgQEAgX19aTjdX
ZWJDb3JlNkVkaXRvcjZpbmRlbnRFdgogX19aTjdXZWJDb3JlNkVkaXRvcjdDb21tYW5kQzFFdgog
X19aTjdXZWJDb3JlNkVkaXRvcjdjb21tYW5kRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
NkVkaXRvcjdvdXRkZW50RXYKLV9fWk43V2ViQ29yZTZKU05vZGUzcHV0RVBOM0pTQzlFeGVjU3Rh
dGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJvcGVydHlTbG90
RQorX19aTjdXZWJDb3JlNkpTTm9kZTEwcHV0VmlydHVhbEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMx
XzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk43
V2ViQ29yZTZKU05vZGU2c19pbmZvRQogX19aTjdXZWJDb3JlNlJlZ2lvbjV1bml0ZUVSS1MwXwog
X19aTjdXZWJDb3JlNlJlZ2lvbjhzdWJ0cmFjdEVSS1MwXwpAQCAtMTA0Myw3ICsxMDQzLDcgQEAg
X19aTjdXZWJDb3JlOUhUTUxOYW1lczh2aWRlb1RhZ0UKIF9fWk43V2ViQ29yZTlIVE1MTmFtZXM5
aWZyYW1lVGFnRQogX19aTjdXZWJDb3JlOUhUTUxOYW1lczlvYmplY3RUYWdFCiBfX1pON1dlYkNv
cmU5SFRNTE5hbWVzOXNjcmlwdFRhZ0UKLV9fWk43V2ViQ29yZTlKU0VsZW1lbnQzcHV0RVBOM0pT
QzlFeGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJv
cGVydHlTbG90RQorX19aTjdXZWJDb3JlOUpTRWxlbWVudDEwcHV0VmlydHVhbEVQTjNKU0M5RXhl
Y1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5
U2xvdEUKIF9fWk43V2ViQ29yZTlKU0VsZW1lbnQ2c19pbmZvRQogX19aTjdXZWJDb3JlOVBhZ2VD
YWNoZTExc2V0Q2FwYWNpdHlFaQogX19aTjdXZWJDb3JlOVBhZ2VDYWNoZTI3cmVsZWFzZUF1dG9y
ZWxlYXNlZFBhZ2VzTm93RXYKQEAgLTE2ODcsNiArMTY4Nyw3IEBAIF9fWk4zSlNDMTNSdW50aW1l
TWV0aG9kMjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElk
ZW50aWZpCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDZzX2luZm9FCiBfX1pOM0pTQzEzUnVudGlt
ZU1ldGhvZEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRVJOM1dURjZWZWN0
b3JJUE5TXzhCaW5kaW5nczZNZXRob2RFTG0wRUVFCiBfX1pOM0pTQzhCaW5kaW5nczEwUm9vdE9i
amVjdEQxRXYKK19fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTBwdXRWaXJ0dWFsRVBO
U185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3Bl
cnR5U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTFnZXRDYWxsRGF0YUVQ
TlNfNkpTQ2VsbEVSTlNfOENhbGxEYXRhRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmpl
Y3QxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19a
TjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxNGZpbmlzaENyZWF0aW9uRVBOU18xNEpTR2xv
YmFsT2JqZWN0RQpAQCAtMTY5NSw3ICsxNjk2LDYgQEAgX19aTjNKU0M4QmluZGluZ3MxM1J1bnRp
bWVPYmplY3QxOGdldENhbGxEYXRhVmlydHVhbEVSTlNfOENhbGxEYXRhRQogX19aTjNKU0M4Qmlu
ZGluZ3MxM1J1bnRpbWVPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhCaW5kaW5nczEz
UnVudGltZU9iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQ
cm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDOEJpbmRpbmdz
MTNSdW50aW1lT2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVF
UktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQotX19aTjNKU0M4Qmlu
ZGluZ3MxM1J1bnRpbWVPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNS
dW50aW1lT2JqZWN0NnNfaW5mb0UKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0QzJF
UE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFTjNXVEYx
MFBhc3NSZWZQdHJJTlMwXzhJbnN0YW5jZUVFRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVP
YmplY3REMkV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAKaW5kZXggMDRiNWI5NzY1MjdhNGZkMTk1YjQ1YWIyODQ5NTY0ZWFjODVkMmU2OC4u
NjA2OGQ5MjkxMWU1OTJhNzQ5YjdjOTU3OWE5Yjk5ZmMyZGFhMjA4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMzM4LDcgKzMz
OCw3IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByCiAgICAgcmV0dXJuIEJhc2U6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCi12
b2lkIEpTRE9NV2luZG93OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQg
SlNET01XaW5kb3c6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICBpZiAoIWltcGwoKS0+ZnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQ2LDcgKzM0
Niw3IEBAIHZvaWQgSlNET01XaW5kb3c6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2CiAgICAgLy8gT3B0aW1pemF0aW9uOiBhY2Nl
c3MgSmF2YVNjcmlwdCBnbG9iYWwgdmFyaWFibGVzIGRpcmVjdGx5IGJlZm9yZSBpbnZvbHZpbmcg
dGhlIERPTS4KICAgICBpZiAoSlNHbG9iYWxPYmplY3Q6Omhhc093blByb3BlcnR5Rm9yV3JpdGUo
ZXhlYywgcHJvcGVydHlOYW1lKSkgewogICAgICAgICBpZiAoYWxsb3dzQWNjZXNzRnJvbShleGVj
KSkKLSAgICAgICAgICAgIEpTR2xvYmFsT2JqZWN0OjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2
YWx1ZSwgc2xvdCk7CisgICAgICAgICAgICBKU0dsb2JhbE9iamVjdDo6cHV0KHRoaXMsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0zNTQsNyArMzU0LDcgQEAgdm9pZCBKU0RPTVdpbmRvdzo6cHV0KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHYKICAgICAgICAgcmV0dXJu
OwogCiAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCi0gICAgICAgIEJhc2U6OnB1dChl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICAgICAgQmFzZTo6cHV0KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiBib29sIEpTRE9NV2luZG93
OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVs
bC5jcHAKaW5kZXggNmQyNmY5ODVjNzFiNmM0YjgzYjBhMzAyOTg5YjA3ZjBiYTMyN2IxZS4uYTY2
MDVkODI1MDY2YmVkMDlmNjcxZjc2N2I4MmFlMjkwYjVlMGFhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTExNSw5ICsxMTUsOSBA
QCBib29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZQogICAgIHJldHVybiBtX3dpbmRvdy0+Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKLXZv
aWQgSlNET01XaW5kb3dTaGVsbDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2
b2lkIEpTRE9NV2luZG93U2hlbGw6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKLSAgICBtX3dpbmRvdy0+cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOworICAgIG1fd2luZG93LT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnB1dFdpdGhBdHRyaWJ1dGVzKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dTaGVsbC5oCmluZGV4IGI1ZGQzYTZhMTZjMmNkOGE2M2Y5OGEzZjkyNzk4MzUy
YmRmMGQ2NzcuLmE3MmZkMTE4YWRlMzgzZTAyMTY2NGM4YWJlYjBiMjMzZDE1YmJiMmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKQEAgLTgzLDcg
KzgzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlT
bG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQ
dXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVz
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
Qzo6SlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBk
ZWxldGVQcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnR5TmFtZXMoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUg
bW9kZSA9IEpTQzo6RXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCmluZGV4IDk2N2JjNGRhZGFlZjIw
NTE3YTE3MGRiNTdiMTU1YjJmOWRlYWJjODkuLjlhMTE5ZGI2ZTZlNmMzOGM3M2E3MjIwOTA4ZTM5
NTBhYjhhOGY5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9j
YXRpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRp
b25DdXN0b20uY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgYm9vbCBKU0xvY2F0aW9uOjpwdXREZWxl
Z2F0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlMK
ICAgICBjb25zdCBIYXNoRW50cnkqIGVudHJ5ID0gSlNMb2NhdGlvbjo6c19pbmZvLnByb3BIYXNo
VGFibGUoZXhlYyktPmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKCFlbnRyeSkg
ewogICAgICAgICBpZiAoc2FtZURvbWFpbkFjY2VzcykKLSAgICAgICAgICAgIEpTT2JqZWN0Ojpw
dXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgICAgICAgICBKU09iamVj
dDo6cHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4IDE0N2JjMzg2ZTIzYmE5NzA5
MTMwNGYyMDM1ZmVlODY3MzgxMzA1N2UuLmQ2NzNkY2FhNmZhNWRhMzIyZTc2MmUxOTdhNjZlYmI3
OTZkZjU4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2lu
RWxlbWVudEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQ
bHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIGJvb2wgcnVudGlt
ZU9iamVjdEN1c3RvbVB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWCiAgICAgICAgIHJldHVybiAwOwogICAgIGlmICghc2NyaXB0T2JqZWN0LT5o
YXNQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgc2NyaXB0T2JqZWN0LT5wdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cisg
ICAgc2NyaXB0T2JqZWN0LT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA4ZGJlM2VhMDljN2M3ZmJm
NWQ0OWQ3ZTUwZmNmYTFkNDM0ZDE0MGI5Li5lZTBjNjMxNDhlNzA5ZjYxZWExNTE1MmQ2YmI3Mjk5
NTMxNjRhMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTEwMzEsNyArMTAzMSw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIGlmIChhcnJheS0+Y2FuU2V0SW5kZXgoaW5kZXgpKQogICAgICAgICAgICAgYXJyYXktPnNl
dEluZGV4KG1fZXhlYy0+Z2xvYmFsRGF0YSgpLCBpbmRleCwgdmFsdWUpOwogICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBhcnJheS0+cHV0KG1fZXhlYywgaW5kZXgsIHZhbHVlKTsKKyAgICAgICAg
ICAgIGFycmF5LT5wdXRWaXJ0dWFsKG1fZXhlYywgaW5kZXgsIHZhbHVlKTsKICAgICB9CiAKICAg
ICB2b2lkIHB1dFByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5LCBKU1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L1dlYlNjcmlwdE9iamVjdC5tbQppbmRleCBmZjYxM2UyZDhhNWE0NjRiOGYwNWNjODJhM2VjNzJl
N2E4YWEyMzc3Li41MzY4MmM3NTMzMDNlNDUzOGY5ZTlkZWVjYzkxOTU5OWY0MzU3ZjA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQpAQCAt
MzQ5LDcgKzM0OSw3IEBAIHN0YXRpYyB2b2lkIGdldExpc3RGcm9tTlNBcnJheShFeGVjU3RhdGUg
KmV4ZWMsIE5TQXJyYXkgKmFycmF5LCBSb290T2JqZWN0KiByb290CiAgICAgSlNMb2NrIGxvY2so
U2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKIAogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAg
IFtzZWxmIF9pbXBdLT5wdXQoZXhlYywgSWRlbnRpZmllcihleGVjLCBzdHJpbmdUb1VTdHJpbmco
U3RyaW5nKGtleSkpKSwgY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJnZhbHVlLCBPYmpj
T2JqZWN0VHlwZSwgW3NlbGYgX3Jvb3RPYmplY3RdKSwgc2xvdCk7CisgICAgW3NlbGYgX2ltcF0t
PnB1dFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcihleGVjLCBzdHJpbmdUb1VTdHJpbmcoU3RyaW5n
KGtleSkpKSwgY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJnZhbHVlLCBPYmpjT2JqZWN0
VHlwZSwgW3NlbGYgX3Jvb3RPYmplY3RdKSwgc2xvdCk7CiAKICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpIHsKICAgICAgICAgYWRkRXhjZXB0aW9uVG9Db25zb2xlKGV4ZWMpOwpAQCAtNDg2
LDcgKzQ4Niw3IEBAIHN0YXRpYyB2b2lkIGdldExpc3RGcm9tTlNBcnJheShFeGVjU3RhdGUgKmV4
ZWMsIE5TQXJyYXkgKmFycmF5LCBSb290T2JqZWN0KiByb290CiAgICAgQVNTRVJUKCFleGVjLT5o
YWRFeGNlcHRpb24oKSk7CiAKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkp
OwotICAgIFtzZWxmIF9pbXBdLT5wdXQoZXhlYywgaW5kZXgsIGNvbnZlcnRPYmpjVmFsdWVUb1Zh
bHVlKGV4ZWMsICZ2YWx1ZSwgT2JqY09iamVjdFR5cGUsIFtzZWxmIF9yb290T2JqZWN0XSkpOwor
ICAgIFtzZWxmIF9pbXBdLT5wdXRWaXJ0dWFsKGV4ZWMsIGluZGV4LCBjb252ZXJ0T2JqY1ZhbHVl
VG9WYWx1ZShleGVjLCAmdmFsdWUsIE9iamNPYmplY3RUeXBlLCBbc2VsZiBfcm9vdE9iamVjdF0p
KTsKIAogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICBhZGRFeGNlcHRp
b25Ub0NvbnNvbGUoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDlkZmQxMmMxOTA5MDFlM2FiNjc1Njg5NmMyMGFi
OWUzNjM0OWZhZTkuLjhlZGNjMzEyMzk3YmYzY2UwOTlkMWY4ZmJlOWFiZjczYWUwM2NjNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC03OTMsOSArNzkzLDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIEdldHRl
cnMKICAgICBpZiAoJGhhc1NldHRlcikgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xu
Iik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dFZp
cnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpK
U1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4U2V0dGVyIn07CisgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSk7XG4iKSBpZiAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleFNldHRlciJ9OwogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpO1xuIikgaWYg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhTZXR0ZXIifTsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIHB1dERlbGVnYXRlKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1
dFByb3BlcnR5U2xvdCYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
RGVsZWdhdGluZ1B1dEZ1bmN0aW9uIn07CiAgICAgfQpAQCAtMTA1MSw3ICsxMDUxLDcgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTtcbiIgLgogICAgICAg
ICAiICAgIH1cbiIpOwogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJE
ZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24ifSkgewotICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5
U2xvdCYpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2
b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlND
ZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBwdXREZWxlZ2F0ZShKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNs
b3QmKTtcbiIpOwogICAgIH0KQEAgLTE0NzQsNyArMTQ3NCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgfQogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkRlbGVnYXRpbmdQcm90b3R5cGVQdXRGdW5jdGlvbiJ9KSB7Ci0gICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnB1dChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJv
cGVydHlTbG90JiBzbG90KVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAk
e2NsYXNzTmFtZX1Qcm90b3R5cGU6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdClcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwpAQCAt
MTc0Myw3ICsxNzQzLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICBp
ZiAoJGhhc1NldHRlcikgewogICAgICAgICAgICAgaWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b21QdXRGdW5jdGlvbiJ9KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHNsb3QpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQg
JHtjbGFzc05hbWV9OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpXG4i
KTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBzbG90KTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAifVxuXG4iKTsKQEAgLTE3NzQsNyArMTc3NCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleFNldHRlciJ9KSB7Ci0gICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0KEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKVxuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSlcbiIp
OwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5c
biIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcAppbmRleCBjMDI0YTQ1MWQ3OTAzMmZlYTU4ZjRiYTliMjg0OWZiZTUxMDYy
NjhjLi5lNDRkZjkyODJhZTA5NjgwOWVhYmMxMjEyYWM5NjI0ZmFlYzU5NjY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNw
cApAQCAtNzYxLDcgKzc2MSw3IEBAIEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyCiAgICAgcmV0dXJu
IEpTVGVzdE9iajo6Z2V0Q29uc3RydWN0b3IoZXhlYywgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3Qo
KSk7CiB9CiAKLXZvaWQgSlNUZXN0T2JqOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKK3ZvaWQgSlNUZXN0T2JqOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5oCmluZGV4IGMzZDFiMjRjYmIxNzFhNjRmMjY5MjNmODdmYWViNTcxYWQ1YzhkMzMuLjNj
YTMyNmJjNWUzNDUwODYxN2M2ZjlmZmIzYWNiMDVjNzE4NTQ4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTQyLDcg
KzQyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5
cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICB2
aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7
CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFBy
b3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCmluZGV4IDE0ZWZiMTk3NmZmYTc2ODlm
MjNlZjI3MzU1MTQxZjZiZGU2ZDdlMTQuLjQwYWU1MTMzYzY5NzI2MTc2ZWI3OWJjNzVmNWE4MTUy
YzUzMzAzYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcApAQCAtMzM3LDkg
KzMzNyw5IEBAIGJvb2wgX05QTl9TZXRQcm9wZXJ0eShOUFAsIE5QT2JqZWN0KiBvLCBOUElkZW50
aWZpZXIgcHJvcGVydHlOYW1lLCBjb25zdCBOUFZhcmlhCiAKICAgICAgICAgaWYgKGktPmlzU3Ry
aW5nKCkpIHsKICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAg
b2JqLT5pbXAtPnB1dChleGVjLCBpZGVudGlmaWVyRnJvbU5QSWRlbnRpZmllcihleGVjLCBpLT5z
dHJpbmcoKSksIGNvbnZlcnROUFZhcmlhbnRUb1ZhbHVlKGV4ZWMsIHZhcmlhbnQsIHJvb3RPYmpl
Y3QpLCBzbG90KTsKKyAgICAgICAgICAgIG9iai0+aW1wLT5wdXRWaXJ0dWFsKGV4ZWMsIGlkZW50
aWZpZXJGcm9tTlBJZGVudGlmaWVyKGV4ZWMsIGktPnN0cmluZygpKSwgY29udmVydE5QVmFyaWFu
dFRvVmFsdWUoZXhlYywgdmFyaWFudCwgcm9vdE9iamVjdCksIHNsb3QpOwogICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIG9iai0+aW1wLT5wdXQoZXhlYywgaS0+bnVtYmVyKCksIGNvbnZlcnRO
UFZhcmlhbnRUb1ZhbHVlKGV4ZWMsIHZhcmlhbnQsIHJvb3RPYmplY3QpKTsKKyAgICAgICAgICAg
IG9iai0+aW1wLT5wdXRWaXJ0dWFsKGV4ZWMsIGktPm51bWJlcigpLCBjb252ZXJ0TlBWYXJpYW50
VG9WYWx1ZShleGVjLCB2YXJpYW50LCByb290T2JqZWN0KSk7CiAgICAgICAgIGV4ZWMtPmNsZWFy
RXhjZXB0aW9uKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1tIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0KaW5kZXggMWM2ZjFmYmUzMWM2ZDQ2N2JjYjViYmYy
MzVmY2NkNGMwNzUwMTNhNS4uYzRkZDlkNDhlOTFmOTkyZDUwNTgwMjdhNmFiZTQyNTNiNjI3YTkz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0KQEAgLTM0OCw3
ICszNDgsNyBAQCB2b2lkIEphdmFKU09iamVjdDo6c2V0TWVtYmVyKGpzdHJpbmcgbWVtYmVyTmFt
ZSwgam9iamVjdCB2YWx1ZSkgY29uc3QKIAogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRp
b25zT25seSk7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgX2ltcC0+cHV0KGV4ZWMs
IElkZW50aWZpZXIoZXhlYywgSmF2YVN0cmluZyhtZW1iZXJOYW1lKS5pbXBsKCkpLCBjb252ZXJ0
Sk9iamVjdFRvVmFsdWUoZXhlYywgdmFsdWUpLCBzbG90KTsKKyAgICBfaW1wLT5wdXRWaXJ0dWFs
KGV4ZWMsIElkZW50aWZpZXIoZXhlYywgSmF2YVN0cmluZyhtZW1iZXJOYW1lKS5pbXBsKCkpLCBj
b252ZXJ0Sk9iamVjdFRvVmFsdWUoZXhlYywgdmFsdWUpLCBzbG90KTsKIH0KIAogCkBAIC0zOTMs
NyArMzkzLDcgQEAgdm9pZCBKYXZhSlNPYmplY3Q6OnNldFNsb3QoamludCBpbmRleCwgam9iamVj
dCB2YWx1ZSkgY29uc3QKIAogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHJvb3RPYmplY3QtPmdsb2Jh
bE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlv
bnNPbmx5KTsKLSAgICBfaW1wLT5wdXQoZXhlYywgKHVuc2lnbmVkKWluZGV4LCBjb252ZXJ0Sk9i
amVjdFRvVmFsdWUoZXhlYywgdmFsdWUpKTsKKyAgICBfaW1wLT5wdXRWaXJ0dWFsKGV4ZWMsICh1
bnNpZ25lZClpbmRleCwgY29udmVydEpPYmplY3RUb1ZhbHVlKGV4ZWMsIHZhbHVlKSk7CiB9CiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAppbmRleCAyOTRkOTg0
ZGRlMGJiOGE1ZjMwNzQwMDZlNTg1NWI2MGNhNDkxZTZlLi4xZGE4M2NjODliNDkxNDkzZWU5MzNm
YjcyYmRjNjMwYjJiZTlhNmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2Jq
Yy9vYmpjX3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1
bnRpbWUuaApAQCAtMTI2LDcgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CisgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIENhbGxUeXBl
IGdldENhbGxEYXRhVmlydHVhbChDYWxsRGF0YSYpOwogICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
b2JqY19ydW50aW1lLm1tCmluZGV4IDE2MGY3OGYxMGZjYzcxZjg4MDI0YTkyMzRhZTBhMWJlMjNi
MmNiNzcuLjZiOTI2MjE1NDUzNTAyMWM4ZTUyMGE4OGRkMWQyMjRjYjkyMGJhZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTIyNCw3ICsyMjQsNyBA
QCBib29sIE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIE9i
amNGYWxsYmFja09iamVjdEltcDo6cHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQordm9pZCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OnB1
dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9x
dF9pbnN0YW5jZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmgKaW5k
ZXggZmExZmQxZjMzOTI0MmQ1ZTQxNzkyMzA2YmVlNTQ0MGMyZGU5YWVkMC4uZDE0YjNhNDQ3YzA5
YTFiNTBiYThiYzlkNWE1MDljYjFlYzBjNzFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3F0L3F0X2luc3RhbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X2luc3RhbmNlLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFF0SW5zdGFuY2U+IGdldFF0SW5zdGFuY2UoUU9iamVjdCosIFBhc3NSZWZQdHI8Um9vdE9i
amVjdD4sIFFTY3JpcHRFbmdpbmU6OlZhbHVlT3duZXJzaGlwIG93bmVyc2hpcCk7CiAKICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNP
YmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CisgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoSlNPYmplY3QqLCBFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAg
ICB2b2lkIHJlbW92ZUNhY2hlZE1ldGhvZChKU09iamVjdCopOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcXQvcXRfcnVudGltZS5jcHAKaW5kZXggZmMxYzMxMTA1NjgzYmNjNDg1YTMwMTRlOWVmZTlm
N2E2OTA2ODU4Mi4uODIzYWY5ZTdhNjA4MDJkOTY3YWFhZTAwNWE2ZTY1NjNjN2Q1NWE0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcApAQCAtOTYwLDcgKzk2MCw3IEBA
IEpTVmFsdWUgY29udmVydFFWYXJpYW50VG9WYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQ
dHI8Um9vdE9iamVjdD4gcm9vdCwgY29uCiAgICAgICAgICAgICBKU1ZhbHVlIHZhbCA9IGNvbnZl
cnRRVmFyaWFudFRvVmFsdWUoZXhlYywgcm9vdC5nZXQoKSwgaS52YWx1ZSgpKTsKICAgICAgICAg
ICAgIGlmICh2YWwpIHsKICAgICAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAg
ICAgICAgICAgICAgICByZXQtPnB1dChleGVjLCBJZGVudGlmaWVyKGV4ZWMsIHJlaW50ZXJwcmV0
X2Nhc3RfcHRyPGNvbnN0IFVDaGFyICo+KHMuY29uc3REYXRhKCkpLCBzLmxlbmd0aCgpKSwgdmFs
LCBzbG90KTsKKyAgICAgICAgICAgICAgICByZXQtPnB1dFZpcnR1YWwoZXhlYywgSWRlbnRpZmll
cihleGVjLCByZWludGVycHJldF9jYXN0X3B0cjxjb25zdCBVQ2hhciAqPihzLmNvbnN0RGF0YSgp
KSwgcy5sZW5ndGgoKSksIHZhbCwgc2xvdCk7CiAgICAgICAgICAgICAgICAgLy8gIyMjIGVycm9y
IGNhc2U/CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICArK2k7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggODBlMmE4Zjk1MWUxY2U1M2IyZjM2YTZmYjE1NWMy
M2I0OGU4ODliOC4uNDUyNzIyZmY2MGYxNDI0NjFlOTU5MDJiODk4M2Q4NGNmZDliNzU2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBA
IGJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUgKmV4ZWMsIHVuc2lnbmVkIGluCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgaW5kZXgsIHNsb3QpOwogfQogCi12b2lkIFJ1bnRp
bWVBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIFJ1bnRpbWVB
cnJheTo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHB1
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KQEAgLTE2NSw3ICsx
NjUsNyBAQCB2b2lkIFJ1bnRpbWVBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogICAgIEpTT2JqZWN0OjpwdXQodGhpc09i
amVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLXZvaWQgUnVudGlt
ZUFycmF5OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1
ZSkKK3ZvaWQgUnVudGltZUFycmF5OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIGluZGV4LCB2
YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJh
eS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBhM2Q0NDU4
YjZiODhkMzNjOTQzM2Q2MDk5MjY4ZjI0YTM0MDgyN2RmLi5kYzYwZTQ0NjQ2NTg5NmQzOWQ0N2Fl
NWMwMGU2OWJiZGY0YWI5MGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgK
QEAgLTU1LDkgKzU1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQsIFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJv
cGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAg
dmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0
dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwg
UHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlT
bG90Jik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUpOworICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSos
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAg
CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciAmcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9v
YmplY3QuY3BwCmluZGV4IGE4NWY5YTkzNTg0OGMwNTQ3MGU4M2U0MzY3ODg2MTQxNWFkZWFiYzEu
LjVmMjVlYTRiZTQ5ZjRlNmZmYTY1NWI5YWRkNzE2OGU2MTY0MzNhMmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMjE2LDcgKzIxNiw3IEBAIGJvb2wgUnVu
dGltZU9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSAqZXhlYywgY29u
c3QgSWRlbnRpZmllciYKICAgICByZXR1cm4gaW5zdGFuY2UtPmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcih0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCi12b2lkIFJ1
bnRpbWVPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBSdW50
aW1lT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAg
ICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCBmNzMzMDRmODdiYWQ2MzM1YTNjNjE2
ZGFkNzgzM2YwY2VhMTk1ZjFmLi41YmZmM2Y3YjE4NWM2OTRhOWJkNTM5M2Q2ODIxYzdkOTg0ODZi
OTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaApAQCAtNDgsNyArNDgs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQg
cHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwg
UHV0UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICB2
aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lKTsKICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3Rlc3RxdGJpbmRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS90ZXN0cXRiaW5kaW5ncy5jcHAKaW5kZXggNzFmYzliYjY2OTM5NWM0YzA3OWQ4YThm
ZmFjMGNjODgxZDc4NjE2MC4uZTdkNGE2YjllOTJjYTRlYmVmNzZmMmQwNDc2MDlmZDE1Mzg1ODZl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3Rlc3RxdGJpbmRpbmdzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdHF0YmluZGluZ3MuY3BwCkBAIC0xMDQsNyAr
MTA0LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAKICAgICAg
ICAgTXlPYmplY3QqIG15T2JqZWN0ID0gbmV3IE15T2JqZWN0OwogICAgICAgICAKLSAgICAgICAg
Z2xvYmFsLT5wdXQoZXhlYywgSWRlbnRpZmllcigibXlJbnRlcmZhY2UiKSwgSW5zdGFuY2U6OmNy
ZWF0ZVJ1bnRpbWVPYmplY3QoSW5zdGFuY2U6OlF0TGFuZ3VhZ2UsICh2b2lkKilteU9iamVjdCkp
OworICAgICAgICBnbG9iYWwtPnB1dFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcigibXlJbnRlcmZh
Y2UiKSwgSW5zdGFuY2U6OmNyZWF0ZVJ1bnRpbWVPYmplY3QoSW5zdGFuY2U6OlF0TGFuZ3VhZ2Us
ICh2b2lkKilteU9iamVjdCkpOwogICAgICAgICAKICAgICAgICAgCiAgICAgICAgIGlmIChjb2Rl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggYWEwNWY4ZDg1ZWUyZTFhOGU1MGRhYTQxMDlkNzhhZDRj
NTIxNTMyZi4uZTgwN2UwZWM4MWFlOTBkYThmNjlhNWFiY2ZiNTFlYWY1OTZhNjI4ZCAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEwLTExICBNYXJrIEhhaG5lbmJlcmcg
IDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHZpcnR1YWwgcHV0IHRv
IHB1dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY5ODUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVuYW1lZCB2aXJ0dWFsIHZlcnNpb25zIG9mIHB1dCB0byBwdXRWaXJ0dWFsIGluIHByZXBy
YXRpb24gZm9yIAorICAgICAgICBhZGRpbmcgdGhlIHN0YXRpYyBwdXQgdG8gdGhlIE1ldGhvZFRh
YmxlIGluIENsYXNzSW5mbyBzaW5jZSB0aGUgCisgICAgICAgIGNvbXBpbGVyIGdldHMgbWFkIGlm
IHRoZSB2aXJ0dWFsIGFuZCBzdGF0aWMgdmVyc2lvbnMgaGF2ZSB0aGUgc2FtZSAKKyAgICAgICAg
bmFtZS4KKworICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChld2tfdmlld19q
c19vYmplY3RfYWRkKToKKwogMjAxMS0xMC0wOSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ft
c3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gUmVmYWN0b3Igem9vbSByZWxhdGVkIEFQSXMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCBjMTM3NmE5MDA4MmI0YmFhMDJjNmQ5M2Zi
NzA3ZWJiNWU2YWMzMmVjLi4yOTEyMWU4YmY3NWVlNjE0NjAxODdjYmRkOGJkNGVkZTJmMWY5MDFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTM2NTQsNyArMzY1NCw3IEBAIEVp
bmFfQm9vbCBld2tfdmlld19qc19vYmplY3RfYWRkKEV2YXNfT2JqZWN0KiBvLCBFd2tfSlNfT2Jq
ZWN0KiBvYmosIGNvbnN0IGNoYXIqCiAgICAgSlNDOjpJZGVudGlmaWVyIGlkID0gSlNDOjpJZGVu
dGlmaWVyKGV4ZWMsIG9ial9uYW1lKTsKIAogICAgIEpTQzo6UHV0UHJvcGVydHlTbG90IHNsb3Q7
Ci0gICAgd2luZG93LT5wdXQoZXhlYywgaWQsIHJ1bnRpbWVPYmplY3QsIHNsb3QpOworICAgIHdp
bmRvdy0+cHV0VmlydHVhbChleGVjLCBpZCwgcnVudGltZU9iamVjdCwgc2xvdCk7CiAgICAgcmV0
dXJuIEVJTkFfVFJVRTsKICNlbHNlCiAgICAgcmV0dXJuIEVJTkFfRkFMU0U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggZGJjMzM1NmUwMGM0OGFlZjhjNjg4MDdmZDVmZTBmZjliNWM3MjY2OS4uM2ZmOTMz
NjZhYWMxZTIyYzIwNjJkYmYyYjEwOTJiMTQwNmFkZjI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDExLTEwLTExICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHZpcnR1YWwgcHV0IHRvIHB1dFZpcnR1YWwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB2aXJ0
dWFsIHZlcnNpb25zIG9mIHB1dCB0byBwdXRWaXJ0dWFsIGluIHByZXByYXRpb24gZm9yIAorICAg
ICAgICBhZGRpbmcgdGhlIHN0YXRpYyBwdXQgdG8gdGhlIE1ldGhvZFRhYmxlIGluIENsYXNzSW5m
byBzaW5jZSB0aGUgCisgICAgICAgIGNvbXBpbGVyIGdldHMgbWFkIGlmIHRoZSB2aXJ0dWFsIGFu
ZCBzdGF0aWMgdmVyc2lvbnMgaGF2ZSB0aGUgc2FtZSAKKyAgICAgICAgbmFtZS4KKworICAgICAg
ICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAg
ICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpzZXRQcm9wZXJ0eSk6CisK
IDIwMTEtMTAtMDggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5Njk5Ni4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5z
dGFuY2VQcm94eS5tbQppbmRleCA2OTkwZjcwNmU1YjhiZTllYzdjMzMzNWRiYWFmZjdhMjlmNTZm
OTcwLi5kMjVjMmNkM2YyOTViOTE1MWZlM2VmNjVkOTgzMGVhOTYwY2Q4MzVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNl
UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC0xMDYwLDcgKzEwNjAsNyBAQCBib29sIE5ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0UHJvcGVydHkodWludDMyX3Qgb2JqZWN0SUQsIGNvbnN0
IElkZW50aWZpZQogCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGRlbWFyc2hhbFZhbHVlKGV4ZWMsIHZh
bHVlRGF0YSwgdmFsdWVMZW5ndGgpOwogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgIG9i
amVjdC0+cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIG9iamVjdC0+
cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKICAgICAKICAgICBl
eGVjLT5jbGVhckV4Y2VwdGlvbigpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMTA4NSw3ICsxMDg1
LDcgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnNldFByb3BlcnR5KHVpbnQz
Ml90IG9iamVjdElELCB1bnNpZ25lZCBwcm9wZXIKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNz
ZXJ0aW9uc09ubHkpOyAgICAKICAgICAKICAgICBKU1ZhbHVlIHZhbHVlID0gZGVtYXJzaGFsVmFs
dWUoZXhlYywgdmFsdWVEYXRhLCB2YWx1ZUxlbmd0aCk7Ci0gICAgb2JqZWN0LT5wdXQoZXhlYywg
cHJvcGVydHlOYW1lLCB2YWx1ZSk7CisgICAgb2JqZWN0LT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUpOwogICAgIAogICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9uKCk7CiAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUu
Y3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAppbmRleCAwN2YyZGY5ODdk
MmNmZjU2ZGZjOGQ4N2Q3YTVjYWJiNWMxOTY2ZTFhLi43YWQ0YmUzOGY0ZGVlNmVmNGM2ZGI5Njk4
MDQ2YWYyODljMzZiYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKQEAgLTY4OCw3
ICs2ODgsNyBAQCB2b2lkIFFXZWJGcmFtZTo6YWRkVG9KYXZhU2NyaXB0V2luZG93T2JqZWN0KGNv
bnN0IFFTdHJpbmcgJm5hbWUsIFFPYmplY3QgKm9iamVjdAogICAgICAgICAgICAgSlNDOjpCaW5k
aW5nczo6UXRJbnN0YW5jZTo6Z2V0UXRJbnN0YW5jZShvYmplY3QsIHJvb3QsIG93bmVyc2hpcCkt
PmNyZWF0ZVJ1bnRpbWVPYmplY3QoZXhlYyk7CiAKICAgICBKU0M6OlB1dFByb3BlcnR5U2xvdCBz
bG90OwotICAgIHdpbmRvdy0+cHV0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCByZWludGVy
cHJldF9jYXN0X3B0cjxjb25zdCBVQ2hhcio+KG5hbWUuY29uc3REYXRhKCkpLCBuYW1lLmxlbmd0
aCgpKSwgcnVudGltZU9iamVjdCwgc2xvdCk7CisgICAgd2luZG93LT5wdXRWaXJ0dWFsKGV4ZWMs
IEpTQzo6SWRlbnRpZmllcihleGVjLCByZWludGVycHJldF9jYXN0X3B0cjxjb25zdCBVQ2hhcio+
KG5hbWUuY29uc3REYXRhKCkpLCBuYW1lLmxlbmd0aCgpKSwgcnVudGltZU9iamVjdCwgc2xvdCk7
CiAjZWxpZiBVU0UoVjgpCiAgICAgUVNjcmlwdEVuZ2luZSogZW5naW5lID0gZC0+ZnJhbWUtPnNj
cmlwdCgpLT5xdFNjcmlwdEVuZ2luZSgpOwogICAgIGlmICghZW5naW5lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpp
bmRleCA5ZDlmOTQxMTA4YzBkYmIyNzEzYjJlN2QxZjZlZjUyNjEyNWM4YmVlLi5kNDI5YTMxMzVk
ODI5MTkzMGY3MjUyMzJkMTQ4ZWZkMTJmMzM2YmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDExLTEwLTExICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgUmVuYW1lIHZpcnR1YWwgcHV0IHRvIHB1dFZpcnR1YWwKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODUxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB2aXJ0dWFsIHZl
cnNpb25zIG9mIHB1dCB0byBwdXRWaXJ0dWFsIGluIHByZXByYXRpb24gZm9yIAorICAgICAgICBh
ZGRpbmcgdGhlIHN0YXRpYyBwdXQgdG8gdGhlIE1ldGhvZFRhYmxlIGluIENsYXNzSW5mbyBzaW5j
ZSB0aGUgCisgICAgICAgIGNvbXBpbGVyIGdldHMgbWFkIGlmIHRoZSB2aXJ0dWFsIGFuZCBzdGF0
aWMgdmVyc2lvbnMgaGF2ZSB0aGUgc2FtZSAKKyAgICAgICAgbmFtZS4KKworICAgICAgICAqIEFw
aS9xd2ViZnJhbWUuY3BwOgorICAgICAgICAoUVdlYkZyYW1lOjphZGRUb0phdmFTY3JpcHRXaW5k
b3dPYmplY3QpOgorCiAyMDExLTEwLTA3ICBDaGFuZyBTaHUgIDxjc2h1QHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmVtb3ZlIGNvbXBpbGUgdGltZSBmbGFnIEVOQUJMRV9QQVNTV09SRF9FQ0hPCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggMTYxNGRlODc3YzAwZjdhMjc0MmMwNWMyN2QwOTQxMWJkYjkzODI0Zi4uYzQ0
MWRmZTA2ZjExOTkyYjdiNTZjOWRlYjBmY2JhOWM3MmI3ZDJjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDExLTEwLTExICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHZpcnR1YWwgcHV0IHRvIHB1dFZpcnR1YWwKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODUxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB2aXJ0dWFs
IHZlcnNpb25zIG9mIHB1dCB0byBwdXRWaXJ0dWFsIGluIHByZXByYXRpb24gZm9yIAorICAgICAg
ICBhZGRpbmcgdGhlIHN0YXRpYyBwdXQgdG8gdGhlIE1ldGhvZFRhYmxlIGluIENsYXNzSW5mbyBz
aW5jZSB0aGUgCisgICAgICAgIGNvbXBpbGVyIGdldHMgbWFkIGlmIHRoZSB2aXJ0dWFsIGFuZCBz
dGF0aWMgdmVyc2lvbnMgaGF2ZSB0aGUgc2FtZSAKKyAgICAgICAgbmFtZS4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6SlNOUE9iamVjdDo6cHV0VmlydHVhbCk6CisgICAgICAgIChXZWJLaXQ6OkpTTlBPYmpl
Y3Q6OnB1dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmpl
Y3QuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5QSlNPYmplY3Q6OnNldFByb3BlcnR5KToKKwogMjAxMS0x
MC0xMCAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAg
ICAgW1F0XSBGaXggYnVpbGQgd2l0aCBxcmVhbCA9PSBmbG9hdCBvbiBNZWVHbyAxLjIgSGFybWF0
dGFuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE9iamVjdC5jcHAKaW5kZXggZWMxM2UxY2NlOTQ1ZTNlNzFiYWFlMjY3YmI2ZjU3
MzBjMjg3NDUxYi4uMDkwNTBjZWRlNmExMTExM2YyOTdjYjUwMDkyNTJmMGVmYmE5ZDJhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmNwcApAQCAtMzE3LDM1ICszMTcsNDEgQEAgYm9vbCBKU05QT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm8KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSlNOUE9iamVjdDo6cHV0KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKQordm9pZCBKU05QT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0
aGlzLCAmc19pbmZvKTsKLSAgICBpZiAoIW1fbnBPYmplY3QpIHsKKyAgICBwdXQodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKK3ZvaWQgSlNOUE9iamVjdDo6cHV0
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpCit7CisgICAgSlNOUE9iamVj
dCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTTlBPYmplY3QqPihjZWxsKTsKKyAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOworICAgIGlmICghdGhp
c09iamVjdC0+bV9ucE9iamVjdCkgewogICAgICAgICB0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihl
eGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIE5QSWRlbnRpZmllciBucElkZW50
aWZpZXIgPSBucElkZW50aWZpZXJGcm9tSWRlbnRpZmllcihwcm9wZXJ0eU5hbWUpOwogICAgIAot
ICAgIGlmICghbV9ucE9iamVjdC0+X2NsYXNzLT5oYXNQcm9wZXJ0eSB8fCAhbV9ucE9iamVjdC0+
X2NsYXNzLT5oYXNQcm9wZXJ0eShtX25wT2JqZWN0LCBucElkZW50aWZpZXIpKSB7CisgICAgaWYg
KCF0aGlzT2JqZWN0LT5tX25wT2JqZWN0LT5fY2xhc3MtPmhhc1Byb3BlcnR5IHx8ICF0aGlzT2Jq
ZWN0LT5tX25wT2JqZWN0LT5fY2xhc3MtPmhhc1Byb3BlcnR5KHRoaXNPYmplY3QtPm1fbnBPYmpl
Y3QsIG5wSWRlbnRpZmllcikpIHsKICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSB0aHJvdyBh
biBleGNlcHRpb24gaGVyZT8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghbV9u
cE9iamVjdC0+X2NsYXNzLT5zZXRQcm9wZXJ0eSkKKyAgICBpZiAoIXRoaXNPYmplY3QtPm1fbnBP
YmplY3QtPl9jbGFzcy0+c2V0UHJvcGVydHkpCiAgICAgICAgIHJldHVybjsKIAogICAgIE5QVmFy
aWFudCB2YXJpYW50OwotICAgIG1fb2JqZWN0TWFwLT5jb252ZXJ0SlNWYWx1ZVRvTlBWYXJpYW50
KGV4ZWMsIHZhbHVlLCB2YXJpYW50KTsKKyAgICB0aGlzT2JqZWN0LT5tX29iamVjdE1hcC0+Y29u
dmVydEpTVmFsdWVUb05QVmFyaWFudChleGVjLCB2YWx1ZSwgdmFyaWFudCk7CiAKICAgICAvLyBD
YWxsaW5nIE5QQ2xhc3M6OnNldFByb3BlcnR5IHdpbGwgY2FsbCBpbnRvIHBsdWctaW4gY29kZSwg
YW5kIHRoZXJlJ3Mgbm8gdGVsbGluZyB3aGF0IHRoZSBwbHVnLWluIGNhbiBkby4KICAgICAvLyAo
aW5jbHVkaW5nIGRlc3Ryb3lpbmcgdGhlIHBsdWctaW4pLiBCZWNhdXNlIG9mIHRoaXMsIHdlIG1h
a2Ugc3VyZSB0byBrZWVwIHRoZSBwbHVnLWluIGFsaXZlIHVudGlsIAogICAgIC8vIHRoZSBjYWxs
IGhhcyBmaW5pc2hlZC4KLSAgICBOUFJ1bnRpbWVPYmplY3RNYXA6OlBsdWdpblByb3RlY3RvciBw
cm90ZWN0b3IobV9vYmplY3RNYXApOworICAgIE5QUnVudGltZU9iamVjdE1hcDo6UGx1Z2luUHJv
dGVjdG9yIHByb3RlY3Rvcih0aGlzT2JqZWN0LT5tX29iamVjdE1hcCk7CiAKICAgICB7CiAgICAg
ICAgIEpTTG9jazo6RHJvcEFsbExvY2tzIGRyb3BBbGxMb2NrcyhTaWxlbmNlQXNzZXJ0aW9uc09u
bHkpOwotICAgICAgICBtX25wT2JqZWN0LT5fY2xhc3MtPnNldFByb3BlcnR5KG1fbnBPYmplY3Qs
IG5wSWRlbnRpZmllciwgJnZhcmlhbnQpOworICAgICAgICB0aGlzT2JqZWN0LT5tX25wT2JqZWN0
LT5fY2xhc3MtPnNldFByb3BlcnR5KHRoaXNPYmplY3QtPm1fbnBPYmplY3QsIG5wSWRlbnRpZmll
ciwgJnZhcmlhbnQpOwogCiAgICAgICAgIE5QUnVudGltZU9iamVjdE1hcDo6bW92ZUdsb2JhbEV4
Y2VwdGlvblRvRXhlY1N0YXRlKGV4ZWMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAppbmRleCBmM2MyODQzYzI3
Zjg4Yzg0OTY5YTJmY2ZiOTYzNzRhMjNhNDgwMzI2Li4xN2YwOTM3ODA3NGQ1YTkyNmI0ZDA4NGYz
ODE5Y2UwMmUzOTQwMmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKQEAgLTg3LDcgKzg3LDggQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7
CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpT
Qzo6UHV0UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1Zh
bHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpT
Q2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgIHZpcnR1YWwg
Ym9vbCBkZWxldGVQcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKTsKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDOjpF
eGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwCmluZGV4
IGZlMjk3MGViODgyMjI5YzI1NTk0YzcxN2Y2ZDBkZTEzYTliYTA3MzUuLjVjNzk1ZjM2OTQ5NmI5
MjYzOWJiYjY2MDkyZjI5Y2E0NzM5Njc0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAKQEAgLTE4OCw5
ICsxODgsOSBAQCBib29sIE5QSlNPYmplY3Q6OnNldFByb3BlcnR5KE5QSWRlbnRpZmllciBwcm9w
ZXJ0eU5hbWUsIGNvbnN0IE5QVmFyaWFudCogdmFsdWUpCiAgICAgSlNWYWx1ZSBqc1ZhbHVlID0g
bV9vYmplY3RNYXAtPmNvbnZlcnROUFZhcmlhbnRUb0pTVmFsdWUoZXhlYywgbV9vYmplY3RNYXAt
Pmdsb2JhbE9iamVjdCgpLCAqdmFsdWUpOwogICAgIGlmIChpZGVudGlmaWVyUmVwLT5pc1N0cmlu
ZygpKSB7CiAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBtX2pzT2JqZWN0
LT5wdXQoZXhlYywgaWRlbnRpZmllckZyb21JZGVudGlmaWVyUmVwKGV4ZWMsIGlkZW50aWZpZXJS
ZXApLCBqc1ZhbHVlLCBzbG90KTsKKyAgICAgICAgbV9qc09iamVjdC0+cHV0VmlydHVhbChleGVj
LCBpZGVudGlmaWVyRnJvbUlkZW50aWZpZXJSZXAoZXhlYywgaWRlbnRpZmllclJlcCksIGpzVmFs
dWUsIHNsb3QpOwogICAgIH0gZWxzZQotICAgICAgICBtX2pzT2JqZWN0LT5wdXQoZXhlYywgaWRl
bnRpZmllclJlcC0+bnVtYmVyKCksIGpzVmFsdWUpOworICAgICAgICBtX2pzT2JqZWN0LT5wdXRW
aXJ0dWFsKGV4ZWMsIGlkZW50aWZpZXJSZXAtPm51bWJlcigpLCBqc1ZhbHVlKTsKICAgICBleGVj
LT5jbGVhckV4Y2VwdGlvbigpOwogICAgIAogICAgIHJldHVybiB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110717</attachid>
            <date>2011-10-12 11:54:50 -0700</date>
            <delta_ts>2011-10-13 10:33:41 -0700</delta_ts>
            <desc>Fix builds</desc>
            <filename>bug-69851-20111012115451.patch</filename>
            <type>text/plain</type>
            <size>118268</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcyNzQKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5n
ZUxvZwppbmRleCAxMDU5MjljNjk0YTU5YTc3Yjk3ZGQ2Nzc4NWY2NDQ3YjhmYzgzODcyLi5kYzBh
MjgwODk3Y2QwMWNhMjk2MGUxZWEwYWM2OWY5ZDdjNWQ0YmY5IDEwMDY0NAotLS0gYS9DaGFuZ2VM
b2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMTIgIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgdmlydHVh
bCBwdXQgdG8gcHV0VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njk4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWVkIHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRvIHB1dFZpcnR1YWwg
aW4gcHJlcHJhdGlvbiBmb3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGljIHB1dCB0byB0aGUg
TWV0aG9kVGFibGUgaW4gQ2xhc3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAgY29tcGlsZXIgZ2V0
cyBtYWQgaWYgdGhlIHZpcnR1YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZlIHRoZSBzYW1lIAor
ICAgICAgICBuYW1lLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRl
cjoKKwogMjAxMS0xMC0xMiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3Jvbmhh
QGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBGaXggYnVpbGQgd2l0aCBHTGliIDIuMzEKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggYTU2MDM1
YjlhNGQzM2UyOTFiNTYwYTU2NzE2YzMwMmFhZWJhODM0YS4uNDM1M2VhODFmYzgzZjEzMmVlNWUz
NTAwZWQ0MWIyOGEwNzRkZjA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmgKQEAgLTE4MSw3ICsxODEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAg
IAotICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKaW5kZXgg
OGVlMDYwNjI3ZWI0NmJhYTI2ZGFhZGUwZGM0MjE3OWU3ZGQ1YWNiZS4uNTllZmY2ODJlY2MyM2Mz
NDJjZGRhMzUyYTM1MzZjN2U5ZDAwOTllYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTIwMSw3ICsyMDEsNyBA
QCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50Pgot
dm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQordm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnB1dFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RS
ZWYuY3BwCmluZGV4IDRjYzY2YTRkYjMyNTQ1MjY1NDU2YmVkMThhMTU1N2RlZjExY2RiZTYuLmQy
NzBlZDNkMGI0Mjg5ZGE1Y2ZiNTFkYzE2NjE4N2I5ZDY0NGYzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBKU09i
amVjdFNldFByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNT
dHJpbmdSZWYgcHJvcGUKICAgICAgICAganNPYmplY3QtPnB1dFdpdGhBdHRyaWJ1dGVzKGV4ZWMs
IG5hbWUsIGpzVmFsdWUsIGF0dHJpYnV0ZXMpOwogICAgIGVsc2UgewogICAgICAgICBQdXRQcm9w
ZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAganNPYmplY3QtPnB1dChleGVjLCBuYW1lLCBqc1ZhbHVl
LCBzbG90KTsKKyAgICAgICAganNPYmplY3QtPnB1dFZpcnR1YWwoZXhlYywgbmFtZSwganNWYWx1
ZSwgc2xvdCk7CiAgICAgfQogCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CkBAIC0z
MTIsNyArMzEyLDcgQEAgdm9pZCBKU09iamVjdFNldFByb3BlcnR5QXRJbmRleChKU0NvbnRleHRS
ZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIHVuc2lnbmVkIHAKICAgICBKU09iamVjdCoganNP
YmplY3QgPSB0b0pTKG9iamVjdCk7CiAgICAgSlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCB2
YWx1ZSk7CiAgICAgCi0gICAganNPYmplY3QtPnB1dChleGVjLCBwcm9wZXJ0eUluZGV4LCBqc1Zh
bHVlKTsKKyAgICBqc09iamVjdC0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eUluZGV4LCBqc1Zh
bHVlKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKICAgICAgICAgaWYgKGV4Y2Vw
dGlvbikKICAgICAgICAgICAgICpleGNlcHRpb24gPSB0b1JlZihleGVjLCBleGVjLT5leGNlcHRp
b24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBmMmY3Yzc4Y2IzNTViMjVhODU5YjE0
MGQwZmI1OTBmZTQ1YWRmN2MxLi5lNjJhYWJjNzdiYTI4MzY1ZjJiZmQ2OGRkNzgwZWYyMTg3N2Nh
ZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDggQEAKKzIwMTEtMTAt
MTIgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgdmlydHVhbCBwdXQgdG8gcHV0VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWVkIHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRv
IHB1dFZpcnR1YWwgaW4gcHJlcHJhdGlvbiBmb3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGlj
IHB1dCB0byB0aGUgTWV0aG9kVGFibGUgaW4gQ2xhc3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAg
Y29tcGlsZXIgZ2V0cyBtYWQgaWYgdGhlIHZpcnR1YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZl
IHRoZSBzYW1lIAorICAgICAgICBuYW1lLgorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAg
ICAoSlNDOjo6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5jcHA6Cisg
ICAgICAgIChKU09iamVjdFNldFByb3BlcnR5KToKKyAgICAgICAgKEpTT2JqZWN0U2V0UHJvcGVy
dHlBdEluZGV4KToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKyAg
ICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpE
ZWJ1Z2dlckFjdGl2YXRpb246OnB1dFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFj
dGl2YXRpb246OnB1dCk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmg6
CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OnB1
dEJ5VmFsKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAg
IChKU0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3Bw
OgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6CisgICAgICAgICoganNjLmNw
cDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpwdXRWaXJ0dWFs
KToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpwdXRQcm9wZXJ0eSk6CisgICAgICAgIChK
U0M6OmFycmF5UHJvdG9GdW5jQ29uY2F0KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNQ
dXNoKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNSZXZlcnNlKToKKyAgICAgICAgKEpT
Qzo6YXJyYXlQcm90b0Z1bmNTaGlmdCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jU2xp
Y2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NvcnQpOgorICAgICAgICAoSlNDOjph
cnJheVByb3RvRnVuY1NwbGljZSk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jVW5TaGlm
dCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jRmlsdGVyKToKKyAgICAgICAgKEpTQzo6
YXJyYXlQcm90b0Z1bmNNYXApOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNBY3RpdmF0aW9uOjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBydW50
aW1lL0pTQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAg
ICAgIChKU0M6OkpTQXJyYXk6OnB1dFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpKU0FycmF5Ojpw
dXRTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnB1c2gpOgorICAgICAgICAoSlND
OjpKU0FycmF5OjpzaGlmdENvdW50KToKKyAgICAgICAgKEpTQzo6SlNBcnJheTo6dW5zaGlmdENv
dW50KToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pT
Qnl0ZUFycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNCeXRlQXJyYXk6OnB1dFZpcnR1YWwpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2Vs
bC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6cHV0VmlydHVhbCk6CisgICAgICAgIChKU0M6
OkpTQ2VsbDo6cHV0KToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OnB1dFZpcnR1
YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6cHV0Vmly
dHVhbCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpwdXRXaXRoQXR0cmlidXRlcyk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OnB1dFZpcnR1
YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OldhbGtlcjo6d2Fsayk6CisgICAgICAg
ICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRWaXJ0
dWFsKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dCk6CisgICAgICAgIChKU0M6OkpTT2Jq
ZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU1ZhbHVlOjpwdXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2NvcGVPYmplY3Q6OnB1dFZp
cnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6Omxvb2t1cFB1dCk6CisgICAgICAg
ICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RQcm90
b3R5cGU6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OlJlZ0V4cE1hdGNoZXNBcnJheTo6ZmlsbEFycmF5SW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpS
ZWdFeHBDb25zdHJ1Y3Rvcjo6cHV0VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5Lmg6Cisg
ICAgICAgIChKU0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6cHV0VmlydHVhbCk6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OnB1
dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAgICAgICog
cnVudGltZS9TdHJpbmdPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OnB1
dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0Lmg6CisgICAgICAgICog
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1
bmNTcGxpdCk6CisKIDIwMTEtMTAtMTIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8u
bm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgRml4IGJ1aWxkIHdpdGggR0xpYiAy
LjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCBmYWE1ZWMy
OTU2YmMxY2NjNWIzYTg3ZTdkNTlmYzFjYzZjMjQxMzM0Li5kMjY0N2M2MTEyNTVjNjBlZjlhMDk1
YjdiN2Q1OTg1NGE1MjcyNWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKQEAgLTE1Miw3ICsxNTIsNiBAQCBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MThnZXRPd25Q
cm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXwogX19aTjNK
U0MxMlN0cmluZ09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNf
MTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5h
bWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRp
b25Nb2RlRQogX19aTjNKU0MxMlN0cmluZ09iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRv
ckUKLV9fWk4zSlNDMTJTdHJpbmdPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVu
dGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTJTdHJp
bmdPYmplY3Q2c19pbmZvRQogX19aTjNKU0MxMlN0cmluZ09iamVjdEMyRVJOU18xMkpTR2xvYmFs
RGF0YUVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDMTNKU0ZpbmFsT2JqZWN0NnNfaW5mb0UKQEAg
LTE2MSw2ICsxNjAsNyBAQCBfX1pOM0pTQzEzU2FtcGxpbmdGbGFnczVzdGFydEV2CiBfX1pOM0pT
QzEzU2FtcGxpbmdGbGFnczdzX2ZsYWdzRQogX19aTjNKU0MxM1N0YXRlbWVudE5vZGU2c2V0TG9j
RWlpCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxMGdsb2JhbEV4ZWNFdgorX19aTjNKU0MxNEpT
R2xvYmFsT2JqZWN0MTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTRKU0dsb2JhbE9i
amVjdDEyZGVmaW5lR2V0dGVyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVBOU184
SlNPYmplY3RFagogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTJkZWZpbmVTZXR0ZXJFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUE5TXzhKU09iamVjdEVqCiBfX1pOM0pTQzE0SlNH
bG9iYWxPYmplY3QxM2NsZWFyUmFyZURhdGFFUE5TXzZKU0NlbGxFCkBAIC0xNjksNyArMTY5LDcg
QEAgX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTZhZGRTdGF0aWNHbG9iYWxzRVBOUzBfMThHbG9i
YWxQcm9wZXJ0eUluZm9FaQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTdwdXRXaXRoQXR0cmli
dXRlc0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVqCiBfX1pO
M0pTQzE0SlNHbG9iYWxPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxP
YmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRl
bnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCi1fX1pOM0pTQzE0SlNHbG9iYWxPYmpl
Y3QzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18x
NVB1dFByb3BlcnR5U2xvdEUgIAorX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0M3B1dEVQTlNfNkpT
Q2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQ
dXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Q0aW5pdEVQTlNfOEpTT2Jq
ZWN0RQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0NnNfaW5mb0UKIF9fWk4zSlNDMTRKU0dsb2Jh
bE9iamVjdEQyRXYKQEAgLTI1NiwxNCArMjU2LDE0IEBAIF9fWk4zSlNDNFlhcnIxMVlhcnJQYXR0
ZXJuQzFFUktOU183VVN0cmluZ0ViYlBQS2MKIF9fWk4zSlNDNFlhcnIxMWJ5dGVDb21waWxlRVJO
UzBfMTFZYXJyUGF0dGVybkVQTjNXVEYyMEJ1bXBQb2ludGVyQWxsb2NhdG9yRQogX19aTjNKU0M0
WWFycjlpbnRlcnByZXRFUE5TMF8xNUJ5dGVjb2RlUGF0dGVybkVSS05TXzdVU3RyaW5nRWpqUGkK
IF9fWk4zSlNDNGNhbGxFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFTlNfOENhbGxUeXBlRVJL
TlNfOENhbGxEYXRhRVMyX1JLTlNfN0FyZ0xpc3RFCitfX1pOM0pTQzZKU0NlbGwxMHB1dFZpcnR1
YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0
UHJvcGVydHlTbG90RQorX19aTjNKU0M2SlNDZWxsMTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0YXRl
RWpOU183SlNWYWx1ZUUKIF9fWk4zSlNDNkpTQ2VsbDExZ2V0Q2FsbERhdGFFUFMwX1JOU184Q2Fs
bERhdGFFCiBfX1pOM0pTQzZKU0NlbGwxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M2SlNDZWxsMTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4
ZWNTdGF0ZUVqCiBfX1pOM0pTQzZKU0NlbGwxNmdldENvbnN0cnVjdERhdGFFUk5TXzEzQ29uc3Ry
dWN0RGF0YUUKIF9fWk4zSlNDNkpTQ2VsbDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDNkpTQ2Vs
bDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RF
Ci1fX1pOM0pTQzZKU0NlbGwzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5T
XzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKLV9fWk4zSlNDNkpTQ2VsbDNwdXRFUE5T
XzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRSAgCiBfX1pOM0pTQzZKU0NlbGw5Z2V0T2JqZWN0RXYK
IF9fWk4zSlNDNkpTTG9jazEyRHJvcEFsbExvY2tzQzFFTlNfMTRKU0xvY2tCZWhhdmlvckUKIF9f
Wk4zSlNDNkpTTG9jazEyRHJvcEFsbExvY2tzQzFFUE5TXzlFeGVjU3RhdGVFCkBAIC0zMDQsNiAr
MzA0LDggQEAgX19aTjNKU0M4RGVidWdnZXIyM3JlY29tcGlsZUFsbEpTRnVuY3Rpb25zRVBOU18x
MkpTR2xvYmFsRGF0YUUKIF9fWk4zSlNDOERlYnVnZ2VyNmF0dGFjaEVQTlNfMTRKU0dsb2JhbE9i
amVjdEUKIF9fWk4zSlNDOERlYnVnZ2VyNmRldGFjaEVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9f
Wk4zSlNDOERlYnVnZ2VyRDJFdgorX19aTjNKU0M4SlNPYmplY3QxMHB1dFZpcnR1YWxFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlT
bG90RQorX19aTjNKU0M4SlNPYmplY3QxMHB1dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFak5TXzdK
U1ZhbHVlRQogX19aTjNKU0M4SlNPYmplY3QxMWhhc0luc3RhbmNlRVBOU185RXhlY1N0YXRlRU5T
XzdKU1ZhbHVlRVMzXwogX19aTjNKU0M4SlNPYmplY3QxMmRlZmluZUdldHRlckVQTlNfOUV4ZWNT
dGF0ZUVSS05TXzEwSWRlbnRpZmllckVQUzBfagogX19aTjNKU0M4SlNPYmplY3QxMmRlZmluZVNl
dHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVQUzBfagpAQCAtMzI5LDggKzMz
MSw2IEBAIF9fWk4zSlNDOEpTT2JqZWN0MjFnZXRQcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVj
U3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4CiBfX1pOM0pTQzhKU09iamVjdDIyZmlsbEdl
dHRlclByb3BlcnR5U2xvdEVSTlNfMTJQcm9wZXJ0eVNsb3RFUE5TXzE2V3JpdGVCYXJyaWVyQmFz
ZUlOU183VW5rbm93bkVFRQogX19aTjNKU0M4SlNPYmplY3QyM2FsbG9jYXRlUHJvcGVydHlTdG9y
YWdlRVJOU18xMkpTR2xvYmFsRGF0YUVtbQogX19aTjNKU0M4SlNPYmplY3QyNGdldE93blByb3Bl
cnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9w
ZXJ0eURlc2NyaXB0b3JFCi1fX1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFUktO
U18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQotX19aTjNK
U0M4SlNPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRWpOU183SlNWYWx1ZUUKIF9fWk4zSlNDOEpT
T2JqZWN0M3B1dEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVO
U183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDZzX2lu
Zm9FCiBfX1pOM0pTQzhKU1N0cmluZzZzX2luZm9FCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IDdjNzk3ZDNhMzhiNzY0Mzg5MDVl
MTFkYjJlZDBmYzliNDlmZmJiZmMuLjk0OWJiMWRhNGJjOWJhMzE4Mzc4N2U4NWM2MzI3ZGUwZDJm
ZmNjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZGVmCkBAIC0yNzEsMTMgKzI3MSw3IEBAIEVYUE9SVFMKICAgICA/cHJvdGVjdGVkR2xv
YmFsT2JqZWN0Q291bnRASGVhcEBKU0NAQFFBRUlYWgogICAgID9wcm90ZWN0ZWRPYmplY3RDb3Vu
dEBIZWFwQEpTQ0BAUUFFSVhaCiAgICAgP3Byb3RlY3RlZE9iamVjdFR5cGVDb3VudHNASGVhcEBK
U0NAQFFBRT9BVj8kUGFzc093blB0ckBWPyRIYXNoQ291bnRlZFNldEBQQkRVPyRQdHJIYXNoQFBC
REBXVEZAQFU/JEhhc2hUcmFpdHNAUEJEQDJAQFdURkBAQFdURkBAWFoKLSAgICA/cHV0QEpTQ2Vs
bEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBBQVZQ
dXRQcm9wZXJ0eVNsb3RAMkBAWgotICAgID9wdXRASlNDZWxsQEpTQ0BAVUFFWFBBVkV4ZWNTdGF0
ZUAyQElWSlNWYWx1ZUAyQEBaCi0gICAgP3B1dEBKU0dsb2JhbE9iamVjdEBKU0NAQFVBRVhQQVZF
eGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBBQVZQdXRQcm9wZXJ0eVNsb3RA
MkBAWgogICAgID9wdXRASlNPYmplY3RASlNDQEBTQVhQQVZKU0NlbGxAMkBQQVZFeGVjU3RhdGVA
MkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBBQVZQdXRQcm9wZXJ0eVNsb3RAMkBAWgotICAg
ID9wdXRASlNPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQFZK
U1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90QDJAQFoKLSAgICA/cHV0QEpTT2JqZWN0QEpTQ0BA
VUFFWFBBVkV4ZWNTdGF0ZUAyQElWSlNWYWx1ZUAyQEBaCi0gICAgP3B1dEBTdHJpbmdPYmplY3RA
SlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJAQUFWUHV0
UHJvcGVydHlTbG90QDJAQFoKICAgICA/cHV0RGlyZWN0SW50ZXJuYWxASlNPYmplY3RASlNDQEBB
QUVfTkFBVkpTR2xvYmFsRGF0YUAyQEFCVklkZW50aWZpZXJAMkBWSlNWYWx1ZUAyQElfTkFBVlB1
dFByb3BlcnR5U2xvdEAyQFBBVkpTQ2VsbEAyQEBaCiAgICAgP3B1dFdpdGhBdHRyaWJ1dGVzQEpT
R2xvYmFsT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBWSlNW
YWx1ZUAyQElAWgogICAgID9wdXRXaXRoQXR0cmlidXRlc0BKU09iamVjdEBKU0NAQFVBRVhQQVZF
eGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBJQFoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKaW5kZXgg
MGNmOTdmMjU5Nzc5ODU2MmYzNDRjODY2OWRhMWQ3YmNhNGI5YWJhZC4uOTE4YmQyODIxMzA2YzVh
NzAzZGQ2ZGNiN2QzZDA5NGMzYzVlMGI0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKQEAgLTcwLDE0ICs3MCwxNCBA
QCBib29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZWJ1Z2dl
ckFjdGl2YXRpb24qPihjZWxsKS0+bV9hY3RpdmF0aW9uLT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OnB1
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246
OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHZvaWQgRGVidWdnZXJB
Y3RpdmF0aW9uOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90
KQogewotICAgIHN0YXRpY19jYXN0PERlYnVnZ2VyQWN0aXZhdGlvbio+KGNlbGwpLT5tX2FjdGl2
YXRpb24tPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBzdGF0aWNf
Y2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24qPihjZWxsKS0+bV9hY3RpdmF0aW9uLT5wdXRWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiB2b2lkIERlYnVnZ2VyQWN0
aXZhdGlvbjo6cHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9u
LmgKaW5kZXggN2E1NWE3YTM5NTg0YWU3ZDliYjVhZTk0ZGNhMDBkNTlkNTk0NDk5NS4uZTc3MDUx
NDQyODVhMjU3NTg5NmVjN2EwMjBjNmY0NTVlZWY2YWM3NiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtNDUsNyArNDUs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBVU3RyaW5nIGNsYXNzTmFtZSgp
IGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2
aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCBlYjBkOGEzMjJiYmQwODFkZTY2OTAz
MTliZjkyNjg0YjVlNjk0ZDIxLi44NTAzMTY1NTYyZjlhZDlkNmQ0Y2Q0ZjU0ODIxNTViODY0ODhk
NzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAg
LTk2LDcgKzk2LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBiYXNlVmFsdWUsIHVpbnQzMl90IGluZGV4LAogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKLSAgICAgICAgYXJyYXktPkpTQXJyYXk6OnB1dChleGVjLCBpbmRleCwg
dmFsdWUpOworICAgICAgICBKU0FycmF5OjpwdXQoYXJyYXksIGV4ZWMsIGluZGV4LCB2YWx1ZSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM1Nyw3ICszNTcsNyBAQCB2b2lkIERGR19P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kcyhFeGVjU3RhdGUqIGV4
ZWMsIEpTQXJyYXkqCiB7CiAgICAgLy8gV2Ugc2hvdWxkIG9ubHkgZ2V0IGhlcmUgaWYgaW5kZXgg
aXMgb3V0c2lkZSB0aGUgZXhpc3RpbmcgdmVjdG9yLgogICAgIEFTU0VSVCghYXJyYXktPmNhblNl
dEluZGV4KGluZGV4KSk7Ci0gICAgYXJyYXktPkpTQXJyYXk6OnB1dChleGVjLCBpbmRleCwgSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOworICAgIEpTQXJyYXk6OnB1dChhcnJheSwgZXhl
YywgaW5kZXgsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAogRW5jb2RlZEpT
VmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVB1c2goRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTQXJyYXkqIGFycmF5KQpAQCAtMzc0LDEzICsz
NzQsMTMgQEAgRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVBvcChF
eGVjU3RhdGUqLCBKU0FycmF5KiBhcnJheSkKIHZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRCeUlkU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBKU0NlbGwqIGJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSkKIHsKICAgICBQdXRQcm9w
ZXJ0eVNsb3Qgc2xvdCh0cnVlKTsKLSAgICBiYXNlLT5wdXQoZXhlYywgKnByb3BlcnR5TmFtZSwg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOworICAgIGJhc2UtPnB1dFZpcnR1
YWwoZXhlYywgKnByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNs
b3QpOwogfQogCiB2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdChF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNDZWxsKiBiYXNl
LCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Qo
ZmFsc2UpOwotICAgIGJhc2UtPnB1dChleGVjLCAqcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CisgICAgYmFzZS0+cHV0VmlydHVhbChleGVjLCAqcHJv
cGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKIHZv
aWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0KEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU0NlbGwqIGJhc2UsIElkZW50aWZp
ZXIqIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4IGUwMzcwNzA3ODIyNDE5NTY4YTQ5NTgzOWVmZDg5Y2Fi
NDNkNmJmN2YuLmNkODg3ZDVjOGExZjczNmE2MDhmNjM2ZDUyZGNmMDAwNWIzZDIxYTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApA
QCAtNzkxLDcgKzc5MSw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoUHJvZ3JhbUV4
ZWN1dGFibGUqIHByb2dyYW0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBTCiAgICAgICAgICAgICBp
ZiAoSlNPTlBQYXRoLnNpemUoKSA9PSAxICYmIEpTT05QUGF0aFswXS5tX3R5cGUgPT0gTGl0ZXJh
bFBhcnNlcjo6SlNPTlBQYXRoRW50cnlUeXBlRGVjbGFyZSkgewogICAgICAgICAgICAgICAgIGlm
IChnbG9iYWxPYmplY3QtPmhhc1Byb3BlcnR5KGNhbGxGcmFtZSwgSlNPTlBQYXRoWzBdLm1fcGF0
aEVudHJ5TmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7
Ci0gICAgICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+cHV0KGNhbGxGcmFtZSwgSlNPTlBQ
YXRoWzBdLm1fcGF0aEVudHJ5TmFtZSwgSlNPTlBWYWx1ZSwgc2xvdCk7CisgICAgICAgICAgICAg
ICAgICAgIGdsb2JhbE9iamVjdC0+cHV0VmlydHVhbChjYWxsRnJhbWUsIEpTT05QUGF0aFswXS5t
X3BhdGhFbnRyeU5hbWUsIEpTT05QVmFsdWUsIHNsb3QpOwogICAgICAgICAgICAgICAgIH0gZWxz
ZQogICAgICAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPnB1dFdpdGhBdHRyaWJ1dGVzKGNh
bGxGcmFtZSwgSlNPTlBQYXRoWzBdLm1fcGF0aEVudHJ5TmFtZSwgSlNPTlBWYWx1ZSwgRG9udEVu
dW0gfCBEb250RGVsZXRlKTsKICAgICAgICAgICAgICAgICAvLyB2YXIgZGVjbGFyYXRpb25zIHJl
dHVybiB1bmRlZmluZWQKQEAgLTEyNTEsMTQgKzEyNTEsMTQgQEAgSlNWYWx1ZSBJbnRlcnByZXRl
cjo6ZXhlY3V0ZShFdmFsRXhlY3V0YWJsZSogZXZhbCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpT
VmFsdWUKICAgICAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gY29kZUJsb2NrLT52
YXJpYWJsZShpKTsKICAgICAgICAgICAgIGlmICghdmFyaWFibGVPYmplY3QtPmhhc1Byb3BlcnR5
KGNhbGxGcmFtZSwgaWRlbnQpKSB7CiAgICAgICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNs
b3Q7Ci0gICAgICAgICAgICAgICAgdmFyaWFibGVPYmplY3QtPnB1dChjYWxsRnJhbWUsIGlkZW50
LCBqc1VuZGVmaW5lZCgpLCBzbG90KTsKKyAgICAgICAgICAgICAgICB2YXJpYWJsZU9iamVjdC0+
cHV0VmlydHVhbChjYWxsRnJhbWUsIGlkZW50LCBqc1VuZGVmaW5lZCgpLCBzbG90KTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtRnVu
Y3Rpb25zOyArK2kpIHsKICAgICAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb24g
PSBjb2RlQmxvY2stPmZ1bmN0aW9uRGVjbChpKTsKICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xv
dCBzbG90OwotICAgICAgICAgICAgdmFyaWFibGVPYmplY3QtPnB1dChjYWxsRnJhbWUsIGZ1bmN0
aW9uLT5uYW1lKCksIGZ1bmN0aW9uLT5tYWtlKGNhbGxGcmFtZSwgc2NvcGVDaGFpbiksIHNsb3Qp
OworICAgICAgICAgICAgdmFyaWFibGVPYmplY3QtPnB1dFZpcnR1YWwoY2FsbEZyYW1lLCBmdW5j
dGlvbi0+bmFtZSgpLCBmdW5jdGlvbi0+bWFrZShjYWxsRnJhbWUsIHNjb3BlQ2hhaW4pLCBzbG90
KTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHVicy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNw
cAppbmRleCBhOTMwZjU4MmUwOWRiYWY3MWM3NTFiMjVjNWM0ZTc1YTdkMGE5NjIyLi42MmNjMTBk
NzNiNzExYzljYTI5MTg2MmEyM2NkMTcyNzJjOGU0ZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmNwcApAQCAtMjYxMSw3ICsyNjExLDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJ
T04odm9pZCwgb3BfcHV0X2J5X3ZhbCkKICAgICAgICAgICAgIGlmIChqc0FycmF5LT5jYW5TZXRJ
bmRleChpKSkKICAgICAgICAgICAgICAgICBqc0FycmF5LT5zZXRJbmRleCgqZ2xvYmFsRGF0YSwg
aSwgdmFsdWUpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGpzQXJyYXktPkpT
QXJyYXk6OnB1dChjYWxsRnJhbWUsIGksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBKU0FycmF5
OjpwdXQoanNBcnJheSwgY2FsbEZyYW1lLCBpLCB2YWx1ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAo
aXNKU0J5dGVBcnJheShnbG9iYWxEYXRhLCBiYXNlVmFsdWUpICYmIGFzQnl0ZUFycmF5KGJhc2VW
YWx1ZSktPmNhbkFjY2Vzc0luZGV4KGkpKSB7CiAgICAgICAgICAgICBKU0J5dGVBcnJheSoganNC
eXRlQXJyYXkgPSBhc0J5dGVBcnJheShiYXNlVmFsdWUpOwogICAgICAgICAgICAgY3RpUGF0Y2hD
YWxsQnlSZXR1cm5BZGRyZXNzKGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksIFNUVUJfUkVUVVJOX0FE
RFJFU1MsIEZ1bmN0aW9uUHRyKGN0aV9vcF9wdXRfYnlfdmFsX2J5dGVfYXJyYXkpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKaW5kZXggZmRjNjk5ZThhY2UxNWFhZmNjYjNiNDBlMWE3YjdlNjk4OTIwODEw
MC4uMGJjZmNkNmJjYzk4MzZkNjk3ZTJkMzE4MjUxOGI4NDc3OWM5N2FlZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAKQEAgLTE4Miw3ICsxODIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgSlNPYmpl
Y3QqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxFeGVjKCkpOwogICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgICAg
IGFycmF5LT5wdXQoZ2xvYmFsRXhlYygpLCBpLCBqc1N0cmluZyhnbG9iYWxFeGVjKCksIGFyZ3Vt
ZW50c1tpXSkpOworICAgICAgICAgICAgYXJyYXktPnB1dFZpcnR1YWwoZ2xvYmFsRXhlYygpLCBp
LCBqc1N0cmluZyhnbG9iYWxFeGVjKCksIGFyZ3VtZW50c1tpXSkpOwogICAgICAgICBwdXREaXJl
Y3QoZ2xvYmFsRGF0YSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJhcmd1bWVudHMiKSwgYXJy
YXkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJndW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5j
cHAKaW5kZXggYzQ5NGRhMTMyYzJhMzA1OTQzMmYyMjIyMTRjOTVjZjA0ZTljNGFiNS4uMDA5NmM3
YzYwMTY5YmFjMDE5NjYyZDQxNWNhNjdmNzA0ZTY1YTA2YiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBBcmd1
bWVudHM6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVB
cnJheSYgcHJvcGVydHkKICAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBw
cm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAotdm9pZCBBcmd1bWVudHM6OnB1dChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCit2b2lkIEFyZ3VtZW50czo6cHV0Vmly
dHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
cHV0KHRoaXMsIGV4ZWMsIGksIHZhbHVlKTsKIH0KQEAgLTI4Myw3ICsyODMsNyBAQCB2b2lkIEFy
Z3VtZW50czo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBK
U1ZhbHVlIHZhbHVlKQogICAgIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgSWRlbnRp
ZmllcihleGVjLCBVU3RyaW5nOjpudW1iZXIoaSkpLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLXZvaWQg
QXJndW1lbnRzOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgQXJndW1l
bnRzOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAppbmRleCA2YjFmYTA4OGJiNTc3YjI5NzU0MzNl
MjUxNTYxYTk4YTdmNjc0OWQ2Li44YjQyM2QyZGNjYzdhZjdmYjAyYzI5NGRkYTBhZGI5OTk2ZDE5
NjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaApAQCAtMTMw
LDkgKzEzMCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFBy
b3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Q
cm9wZXJ0aWVzKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgdmlydHVhbCBib29s
IGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSk7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggY2YxNjE2MDNhMzRmMTU5
MzM2YmMzOTVlN2RkODI0OWExZjU3ZWNlZC4uZDJlZTVhNDZiNjk2N2EwY2NmZDlhOGVmMWJmMjdl
MDVjMjJjNjFjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
UHJvdG90eXBlLmNwcApAQCAtMTU0LDcgKzE1NCw3IEBAIHN0YXRpYyBKU1ZhbHVlIGdldFByb3Bl
cnR5KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iaiwgdW5zaWduZWQgaW5kZXgpCiBzdGF0
aWMgdm9pZCBwdXRQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBQdXRQcm9w
ZXJ0eVNsb3Qgc2xvdDsKLSAgICBvYmotPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBz
bG90KTsKKyAgICBvYmotPnB1dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xv
dCk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBhcmd1bWVudENsYW1wZWRJbmRleEZyb21TdGFydE9y
RW5kKEV4ZWNTdGF0ZSogZXhlYywgaW50IGFyZ3VtZW50LCB1bnNpZ25lZCBsZW5ndGgsIHVuc2ln
bmVkIHVuZGVmaW5lZFZhbHVlID0gMCkKQEAgLTM1NywxMSArMzU3LDExIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNDb25jYXQoRXhlY1N0YXRlKiBleGVjKQog
ICAgICAgICAgICAgSlNPYmplY3QqIGN1ck9iamVjdCA9IGN1ckFyZy50b09iamVjdChleGVjKTsK
ICAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IDA7IGsgPCBsZW5ndGg7ICsraykgewogICAg
ICAgICAgICAgICAgIGlmIChKU1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShleGVjLCBjdXJPYmplY3Qs
IGspKQotICAgICAgICAgICAgICAgICAgICBhcnItPnB1dChleGVjLCBuLCB2KTsKKyAgICAgICAg
ICAgICAgICAgICAgYXJyLT5wdXRWaXJ0dWFsKGV4ZWMsIG4sIHYpOwogICAgICAgICAgICAgICAg
IG4rKzsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFyci0+
cHV0KGV4ZWMsIG4sIGN1ckFyZyk7CisgICAgICAgICAgICBhcnItPnB1dFZpcnR1YWwoZXhlYywg
biwgY3VyQXJnKTsKICAgICAgICAgICAgIG4rKzsKICAgICAgICAgfQogICAgICAgICBpZiAoaSA9
PSBhcmdDb3VudCkKQEAgLTQxNSwxMSArNDE1LDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgYXJyYXlQcm90b0Z1bmNQdXNoKEV4ZWNTdGF0ZSogZXhlYykKICAgICBmb3IgKHVuc2ln
bmVkIG4gPSAwOyBuIDwgZXhlYy0+YXJndW1lbnRDb3VudCgpOyBuKyspIHsKICAgICAgICAgLy8g
Q2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3c7IHdoZXJlIHNhZmUgd2UgY2FuIGRvIGEgZmFzdCBw
dXQgYnkgaW5kZXguCiAgICAgICAgIGlmIChsZW5ndGggKyBuID49IGxlbmd0aCkKLSAgICAgICAg
ICAgIHRoaXNPYmotPnB1dChleGVjLCBsZW5ndGggKyBuLCBleGVjLT5hcmd1bWVudChuKSk7Cisg
ICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGxlbmd0aCArIG4sIGV4ZWMtPmFy
Z3VtZW50KG4pKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qg
c2xvdDsKICAgICAgICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lKGV4ZWMsIEpTVmFsdWUo
c3RhdGljX2Nhc3Q8aW50NjRfdD4obGVuZ3RoKSArIHN0YXRpY19jYXN0PGludDY0X3Q+KG4pKS50
b1N0cmluZyhleGVjKSk7Ci0gICAgICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywgcHJvcGVydHlO
YW1lLCBleGVjLT5hcmd1bWVudChuKSwgc2xvdCk7CisgICAgICAgICAgICB0aGlzT2JqLT5wdXRW
aXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgZXhlYy0+YXJndW1lbnQobiksIHNsb3QpOwogICAg
ICAgICB9CiAgICAgfQogICAgIEpTVmFsdWUgbmV3TGVuZ3RoKHN0YXRpY19jYXN0PGludDY0X3Q+
KGxlbmd0aCkgKyBzdGF0aWNfY2FzdDxpbnQ2NF90PihleGVjLT5hcmd1bWVudENvdW50KCkpKTsK
QEAgLTQ0MSwxMiArNDQxLDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQ
cm90b0Z1bmNSZXZlcnNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgSlNWYWx1ZSBvYmogPSBn
ZXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBrKTsKIAogICAgICAgICBpZiAob2JqMikKLSAgICAg
ICAgICAgIHRoaXNPYmotPnB1dChleGVjLCBrLCBvYmoyKTsKKyAgICAgICAgICAgIHRoaXNPYmot
PnB1dFZpcnR1YWwoZXhlYywgaywgb2JqMik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRo
aXNPYmotPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGspOwogCiAgICAgICAgIGlmIChvYmopCi0gICAg
ICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywgbGsxLCBvYmopOworICAgICAgICAgICAgdGhpc09i
ai0+cHV0VmlydHVhbChleGVjLCBsazEsIG9iaik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAg
IHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGxrMSk7CiAgICAgfQpAQCAtNDcxLDcgKzQ3
MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTaGlmdChF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBrID0gMTsgayA8IGxlbmd0aDsgaysrKSB7CiAgICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUg
b2JqID0gZ2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwgaykpCi0gICAgICAgICAgICAgICAgICAg
IHRoaXNPYmotPnB1dChleGVjLCBrIC0gMSwgb2JqKTsKKyAgICAgICAgICAgICAgICAgICAgdGhp
c09iai0+cHV0VmlydHVhbChleGVjLCBrIC0gMSwgb2JqKTsKICAgICAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGsgLSAx
KTsKICAgICAgICAgICAgIH0KQEAgLTUwMCw3ICs1MDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU2xpY2UoRXhlY1N0YXRlKiBleGVjKQogICAgIHVuc2ln
bmVkIG4gPSAwOwogICAgIGZvciAodW5zaWduZWQgayA9IGJlZ2luOyBrIDwgZW5kOyBrKyssIG4r
KykgewogICAgICAgICBpZiAoSlNWYWx1ZSB2ID0gZ2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwg
aykpCi0gICAgICAgICAgICByZXNPYmotPnB1dChleGVjLCBuLCB2KTsKKyAgICAgICAgICAgIHJl
c09iai0+cHV0VmlydHVhbChleGVjLCBuLCB2KTsKICAgICB9CiAgICAgcmVzT2JqLT5zZXRMZW5n
dGgobik7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtNTU5LDggKzU1
OSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTb3J0KEV4
ZWNTdGF0ZSogZXhlYykKICAgICAgICAgfQogICAgICAgICAvLyBTd2FwIHRoZW1pbiBhbmQgaQog
ICAgICAgICBpZiAodGhlbWluID4gaSkgewotICAgICAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMs
IGksIG1pbk9iaik7Ci0gICAgICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywgdGhlbWluLCBpT2Jq
KTsKKyAgICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgaSwgbWluT2JqKTsKKyAg
ICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgdGhlbWluLCBpT2JqKTsKICAgICAg
ICAgfQogICAgIH0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmopOwpAQCAtNjA3
LDcgKzYwNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNT
cGxpY2UoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBrID0gYmVnaW47IGsgPCBsZW5ndGggLSBkZWxldGVDb3VudDsgKytr
KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShleGVj
LCB0aGlzT2JqLCBrICsgZGVsZXRlQ291bnQpKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhp
c09iai0+cHV0KGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncywgdik7CisgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncywgdik7
CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNP
YmotPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyk7CiAgICAgICAgICAg
ICAgICAgfQpAQCAtNjIwLDcgKzYyMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YXJyYXlQcm90b0Z1bmNTcGxpY2UoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgZWxzZSB7
CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gbGVuZ3RoIC0gZGVsZXRlQ291bnQ7
IGsgPiBiZWdpbjsgLS1rKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIG9iaiA9
IGdldFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGsgKyBkZWxldGVDb3VudCAtIDEpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyAt
IDEsIG9iaik7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4
ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyAtIDEsIG9iaik7CiAgICAgICAgICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5KGV4ZWMs
IGsgKyBhZGRpdGlvbmFsQXJncyAtIDEpOwogICAgICAgICAgICAgICAgIH0KQEAgLTYyOCw3ICs2
MjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3BsaWNl
KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgfQogICAgIH0KICAgICBmb3IgKHVuc2lnbmVkIGsg
PSAwOyBrIDwgYWRkaXRpb25hbEFyZ3M7ICsraykKLSAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMs
IGsgKyBiZWdpbiwgZXhlYy0+YXJndW1lbnQoayArIDIpKTsKKyAgICAgICAgdGhpc09iai0+cHV0
VmlydHVhbChleGVjLCBrICsgYmVnaW4sIGV4ZWMtPmFyZ3VtZW50KGsgKyAyKSk7CiAKICAgICBw
dXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBq
c051bWJlcihsZW5ndGggLSBkZWxldGVDb3VudCArIGFkZGl0aW9uYWxBcmdzKSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtNjUwLDE0ICs2NTAsMTQgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1VuU2hpZnQoRXhlY1N0YXRlKiBl
eGVjKQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IGxlbmd0
aDsgayA+IDA7IC0taykgewogICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIHYgPSBnZXRQcm9w
ZXJ0eShleGVjLCB0aGlzT2JqLCBrIC0gMSkpCi0gICAgICAgICAgICAgICAgICAgIHRoaXNPYmot
PnB1dChleGVjLCBrICsgbnJBcmdzIC0gMSwgdik7CisgICAgICAgICAgICAgICAgICAgIHRoaXNP
YmotPnB1dFZpcnR1YWwoZXhlYywgayArIG5yQXJncyAtIDEsIHYpOwogICAgICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+ZGVsZXRlUHJvcGVydHkoZXhlYywg
ayArIG5yQXJncyAtIDEpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIGZv
ciAodW5zaWduZWQgayA9IDA7IGsgPCBuckFyZ3M7ICsraykKLSAgICAgICAgdGhpc09iai0+cHV0
KGV4ZWMsIGssIGV4ZWMtPmFyZ3VtZW50KGspKTsKKyAgICAgICAgdGhpc09iai0+cHV0VmlydHVh
bChleGVjLCBrLCBleGVjLT5hcmd1bWVudChrKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051
bWJlcihsZW5ndGggKyBuckFyZ3MpOwogICAgIHB1dFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIHJlc3VsdCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOwpAQCAtNjk2LDcgKzY5Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNGaWx0ZXIoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGNhY2hlZENhbGwuY2FsbCgpOwogICAg
ICAgICAgICAgaWYgKHJlc3VsdC50b0Jvb2xlYW4oZXhlYykpCi0gICAgICAgICAgICAgICAgcmVz
dWx0QXJyYXktPnB1dChleGVjLCBmaWx0ZXJJbmRleCsrLCB2KTsKKyAgICAgICAgICAgICAgICBy
ZXN1bHRBcnJheS0+cHV0VmlydHVhbChleGVjLCBmaWx0ZXJJbmRleCsrLCB2KTsKICAgICAgICAg
fQogICAgICAgICBpZiAoayA9PSBsZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdEFycmF5KTsKQEAgLTcxNyw3ICs3MTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRmlsdGVyKEV4ZWNTdGF0ZSogZXhlYykKIAogICAg
ICAgICBKU1ZhbHVlIHJlc3VsdCA9IGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxs
RGF0YSwgYXBwbHlUaGlzLCBlYWNoQXJndW1lbnRzKTsKICAgICAgICAgaWYgKHJlc3VsdC50b0Jv
b2xlYW4oZXhlYykpCi0gICAgICAgICAgICByZXN1bHRBcnJheS0+cHV0KGV4ZWMsIGZpbHRlcklu
ZGV4KyssIHYpOworICAgICAgICAgICAgcmVzdWx0QXJyYXktPnB1dFZpcnR1YWwoZXhlYywgZmls
dGVySW5kZXgrKywgdik7CiAgICAgfQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
QXJyYXkpOwogfQpAQCAtNzUyLDcgKzc1Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgYXJyYXlQcm90b0Z1bmNNYXAoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgY2FjaGVk
Q2FsbC5zZXRBcmd1bWVudCgxLCBqc051bWJlcihrKSk7CiAgICAgICAgICAgICBjYWNoZWRDYWxs
LnNldEFyZ3VtZW50KDIsIHRoaXNPYmopOwogCi0gICAgICAgICAgICByZXN1bHRBcnJheS0+SlNB
cnJheTo6cHV0KGV4ZWMsIGssIGNhY2hlZENhbGwuY2FsbCgpKTsKKyAgICAgICAgICAgIEpTQXJy
YXk6OnB1dChyZXN1bHRBcnJheSwgZXhlYywgaywgY2FjaGVkQ2FsbC5jYWxsKCkpOwogICAgICAg
ICB9CiAgICAgfQogICAgIGZvciAoOyBrIDwgbGVuZ3RoICYmICFleGVjLT5oYWRFeGNlcHRpb24o
KTsgKytrKSB7CkBAIC03NzMsNyArNzczLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhcnJheVByb3RvRnVuY01hcChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCiAgICAgICAgIEpTVmFsdWUgcmVzdWx0
ID0gY2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBhcHBseVRoaXMsIGVh
Y2hBcmd1bWVudHMpOwotICAgICAgICByZXN1bHRBcnJheS0+cHV0KGV4ZWMsIGssIHJlc3VsdCk7
CisgICAgICAgIHJlc3VsdEFycmF5LT5wdXRWaXJ0dWFsKGV4ZWMsIGssIHJlc3VsdCk7CiAgICAg
fQogCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHRBcnJheSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAppbmRleCA5MGY5MTEwOTQ0
ZTE0MTQ1MjEzZDNkMGU5ZTVkYzIxMzZlZGMzNmE4Li43OWJkNmExNjk1MjIzZmM0N2I2MzExMmNk
ZjE3ZWUzZTg5NDhiMTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QWN0aXZhdGlvbi5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCBib29sIEpTQWN0aXZhdGlvbjo6Z2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBKU0FjdGl2YXRpb246OnB1dChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwg
UHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBKU0FjdGl2YXRpb246OnB1dFZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQWN0aXZhdGlvbi5oCmluZGV4IDdiZWQyOWZkMzBjMGI1NmZjMjI3Y2UzOGY2MjNiMDliOTFj
MTMzY2IuLjgyMTAwZTA1YTMyNTNmOTM0NWQzM2Q2Y2Q1NGExMmM2M2IwNzg1YWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC02NSw3ICs2NSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQ
cm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSk7CiAKLSAgICAgICAgdmlydHVhbCB2
b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1Zh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0
dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVk
IGF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcApp
bmRleCAyMTczZmYxNmQ4NGEzZTVlOTVjMGI1NGVhNjRmODRhZGExNTFjNDE0Li4yODI1YTBjOTRm
YWZmM2FjMzVlNjY3ZmYwOTRiMzM5NGZjNmM1ZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FycmF5LmNwcApAQCAtMzM0LDcgKzMzNCw3IEBAIGJvb2wgSlNBcnJheTo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVyCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhl
YywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotdm9pZCBKU0FycmF5OjpwdXQoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgSlNBcnJheTo6cHV0VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1
ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KQEAgLTM2Myw3ICszNjMsNyBAQCB2b2lkIEpTQXJyYXk6
OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLAogICAgIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLXZvaWQgSlNBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSkKK3ZvaWQgSlNBcnJheTo6cHV0VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgcHV0KHRo
aXMsIGV4ZWMsIGksIHZhbHVlKTsKIH0KQEAgLTQwNiw3ICs0MDYsNyBAQCBORVZFUl9JTkxJTkUg
dm9pZCBKU0FycmF5OjpwdXRTbG93Q2FzZShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpT
VmFsdWUgdmFsdQogICAgIGlmIChpID49IE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgpIHsKICAgICAg
ICAgaWYgKGkgPiBNQVhfQVJSQVlfSU5ERVgpIHsKICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xv
dCBzbG90OwotICAgICAgICAgICAgcHV0KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaSks
IHZhbHVlLCBzbG90KTsKKyAgICAgICAgICAgIHB1dFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcjo6
ZnJvbShleGVjLCBpKSwgdmFsdWUsIHNsb3QpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKQEAgLTc4MSw3ICs3ODEsNyBAQCB2b2lkIEpTQXJyYXk6OnB1c2goRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHZhbHVlKQogICAgIEFycmF5U3RvcmFnZSogc3RvcmFnZSA9IG1fc3RvcmFn
ZTsKIAogICAgIGlmIChVTkxJS0VMWShzdG9yYWdlLT5tX2xlbmd0aCA9PSAweEZGRkZGRkZGdSkp
IHsKLSAgICAgICAgcHV0KGV4ZWMsIHN0b3JhZ2UtPm1fbGVuZ3RoLCB2YWx1ZSk7CisgICAgICAg
IHB1dFZpcnR1YWwoZXhlYywgc3RvcmFnZS0+bV9sZW5ndGgsIHZhbHVlKTsKICAgICAgICAgdGhy
b3dFcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsICJJbnZhbGlkIGFycmF5IGxlbmd0
aCIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTgzNSw3ICs4MzUsNyBAQCB2b2lkIEpT
QXJyYXk6OnNoaWZ0Q291bnQoRXhlY1N0YXRlKiBleGVjLCBpbnQgY291bnQpCiAgICAgICAgICAg
ICAgICAgUHJvcGVydHlTbG90IHNsb3QodGhpcyk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBw
ID0gcHJvdG90eXBlKCk7CiAgICAgICAgICAgICAgICAgaWYgKCghcC5pc051bGwoKSkgJiYgKGFz
T2JqZWN0KHApLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgaSwgc2xvdCkpKQotICAgICAgICAgICAg
ICAgICAgICBwdXQoZXhlYywgaSwgc2xvdC5nZXRWYWx1ZShleGVjLCBpKSk7CisgICAgICAgICAg
ICAgICAgICAgIHB1dFZpcnR1YWwoZXhlYywgaSwgc2xvdC5nZXRWYWx1ZShleGVjLCBpKSk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtODg0LDcgKzg4NCw3IEBAIHZvaWQgSlNBcnJh
eTo6dW5zaGlmdENvdW50KEV4ZWNTdGF0ZSogZXhlYywgaW50IGNvdW50KQogICAgICAgICAgICAg
ICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXMpOwogICAgICAgICAgICAgICAgIEpTVmFsdWUgcCA9
IHByb3RvdHlwZSgpOwogICAgICAgICAgICAgICAgIGlmICgoIXAuaXNOdWxsKCkpICYmIChhc09i
amVjdChwKS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGksIHNsb3QpKSkKLSAgICAgICAgICAgICAg
ICAgICAgcHV0KGV4ZWMsIGksIHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkpOworICAgICAgICAgICAg
ICAgICAgICBwdXRWaXJ0dWFsKGV4ZWMsIGksIHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheS5oCmluZGV4IGRiZmMxNzExNDI1OGExMzc4MjE4NDNjYjk1NzhiM2E5Y2RkMTZkMzgu
LjUzNWNjNjNlOTlkNWM2YzgxNmE1MTRiMzI0ZmM5MDVmYjY2MDlmZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTk5LDcgKzk5LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7IC8vIEZJWE1FOiBNYWtlIHByb3RlY3RlZCBhbmQgYWRk
IHNldEl0ZW0uCisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7IC8vIEZJWE1FOiBNYWtlIHByb3RlY3RlZCBh
bmQgYWRkIHNldEl0ZW0uCiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHN0YXRpYyBK
U19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CkBAIC0xNzEsNyArMTcxLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92
ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmpl
Y3Q6OlN0cnVjdHVyZUZsYWdzOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCeXRlQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuY3BwCmluZGV4IDhhYjQ3MjZlM2VhMWY1ZjkxMDBmMGI0MDYyMWYzMTQ3N2JkNjM5NmEuLjUw
NzM1NDQyNTI3M2ZhMTczYjdhY2ZjMzk5ODc1MDRlOGU2ODE3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgYm9v
bCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBwcm8KICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFt
ZSksIHNsb3QpOwogfQogCi12b2lkIEpTQnl0ZUFycmF5OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYgc2xvdCkKK3ZvaWQgSlNCeXRlQXJyYXk6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7CiB9CkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBKU0J5dGVBcnJheTo6cHV0KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU4K
ICAgICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOwogfQogCi12b2lkIEpTQnl0ZUFycmF5OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCit2b2lkIEpTQnl0ZUFycmF5OjpwdXRW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlKQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4IDQwZjBhYTFh
N2I3YTRhZTZmNTMwMjY1NDJkMTc5NDVhNjU1MWRmMTAuLmZlZTU0ZThkYWY5Y2EyYjBhNWNlNWU5
NTZmYjcxNjc2YTZiOWZmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQnl0ZUFycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
eXRlQXJyYXkuaApAQCAtOTMsOSArOTMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5RGVzY3JpcHRvciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwg
SlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlND
OjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBw
dXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpOwogICAgICAg
ICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0
T3duUHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkm
LCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKaW5kZXggODk3M2RjMzAwNDRmYmZm
NzhmMGYwNjM2MjM4YjlmOGJlMzllOTc5MS4uNjA4MzVhOGIzM2UxN2ZjMjEyODgxYjVmYjAxYjcx
ZWVkMThlNmQxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
ZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCkBA
IC0xMDMsMjQgKzEwMywyNCBAQCBib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaQogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIEpTQ2VsbDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQor
dm9pZCBKU0NlbGw6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAg
ICAgcHV0KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBK
U0NlbGw6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewot
ICAgIGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnB1
dChleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7CisgICAgY2VsbC0+dG9PYmplY3QoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0VmlydHVhbChleGVjLCBpZGVudGlm
aWVyLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLXZvaWQgSlNDZWxsOjpwdXQoRXhlY1N0YXRlKiBleGVj
LCB1bnNpZ25lZCBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlKQordm9pZCBKU0NlbGw6OnB1dFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVl
KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSk7CiB9CiAKIHZvaWQg
SlNDZWxsOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50
aWZpZXIsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgY2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0KGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlKTsKKyAg
ICBjZWxsLT50b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5wdXRW
aXJ0dWFsKGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlKTsKIH0KIAogYm9vbCBKU0NlbGw6OmRlbGV0
ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggMjNmMGZkNWMwZmFmNzU0
OWZlNzYwOGUwZTRlYjBmNTNmMzIwNmJlNy4uZTMxYTFlYmJkNjdhM2FkODRjY2NhMzU5NmI3NmI3
M2I4ZTU0MWE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
ZWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTkw
LDkgKzkwLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8vIE9iamVjdCBvcGVyYXRpb25z
LCB3aXRoIHRoZSB0b09iamVjdCBvcGVyYXRpb24gaW5jbHVkZWQuCiAgICAgICAgIGNvbnN0IENs
YXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3Q7CiAgICAgICAgIGNvbnN0IE1ldGhvZFRhYmxlKiBt
ZXRob2RUYWJsZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7
CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBF
eGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgICAgICAKICAg
ICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uY3BwCmluZGV4IDQ5MzMzMDQ2Y2Q3OWI4OTg1ZGQ3NWZjYWZlNWIxNmNhN2U0M2Nh
MjUuLjlhYzNkNTY0ZmU1OTQ4NTlhMTI0N2MxNmE5ZGM3NjkzYjU2NjBmMjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0zMDAsNyArMzAwLDcg
QEAgdm9pZCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywg
UHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnQKICAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCi12b2lkIEpTRnVuY3Rpb246OnB1dChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBKU0Z1bmN0aW9uOjpwdXRWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5oCmluZGV4IDliOWRhOWNlOWZhYjc1NDcxZGE4Y2Y5YWMxN2ZmYmMwZDc3
M2JjMzYuLmQzMTRjZjExNzRkMGFjZmZiYjMyNDFlZWRkNTM5YmVhYzBkNjZiODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTE0Myw3ICsxNDMsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBib29sIGlzSG9zdEZ1bmN0aW9uTm9uSW5saW5l
KCkgY29uc3Q7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJv
b2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcAppbmRleCAwZmU0MzZkYjcyY2QwNjQwYjM4NTgyMDVmYTQxYjk0MDNlOGY0MDMwLi4yMjVl
NjcxNjFkODE3Zjg4MmNjMzA3OTUwMWNjNGRjZTcyOGRhOTNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0xMzUsNyArMTM1LDcg
QEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6aW5pdChKU09iamVjdCogdGhpc1ZhbHVlKQogICAgIHJl
c2V0KHByb3RvdHlwZSgpKTsKIH0KIAotdm9pZCBKU0dsb2JhbE9iamVjdDo6cHV0KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIEpTR2xvYmFsT2JqZWN0OjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgSlNHbG9i
YWxPYmplY3Q6OnB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVyCiAKICAgICBKU1ZhbHVlIHZhbHVlQmVmb3JlID0gZ2V0RGlyZWN0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lKTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsK
LSAgICBKU1ZhcmlhYmxlT2JqZWN0OjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xv
dCk7CisgICAgSlNWYXJpYWJsZU9iamVjdDo6cHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpOwogICAgIGlmICghdmFsdWVCZWZvcmUpIHsKICAgICAgICAgSlNWYWx1ZSB2
YWx1ZUFmdGVyID0gZ2V0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lKTsK
ICAgICAgICAgaWYgKHZhbHVlQWZ0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAxMTVkNWNiNmJkOTU0ODM3M2FhY2U4MDEzOGM4ZWFm
MjYzYTNhNjc4Li5hN2ZlMTY3Nzc0YWFmZjQ4ZTQwZjFhNDFiODM4ZDNlODMyZWYxM2JlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE4
NCw3ICsxODQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1Zh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
KTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Tm90QW5PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9i
amVjdC5jcHAKaW5kZXggZTE0YTY4YmQ5NGZhMTRlZTBjZDY0ZDBmMzQyN2FhMmNjNDZkYjlkOS4u
Mzc4N2M5NDllMWE4ZDQzNDljNGQyZWQ5YjQ1MWMzYTFjNGNkMDYwZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKQEAgLTg2LDcgKzg2LDcg
QEAgYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQg
SlNOb3RBbk9iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRl
bnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBKU05v
dEFuT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
aWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAg
IHB1dCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7CiB9CkBAIC05Niw3ICs5
Niw3IEBAIHZvaWQgSlNOb3RBbk9iamVjdDo6cHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgLCBKU1ZhbHVlLCBQCiAgICAgQVNTRVJUX1VOVVNFRChleGVjLCBl
eGVjLT5oYWRFeGNlcHRpb24oKSk7CiB9CiAKLXZvaWQgSlNOb3RBbk9iamVjdDo6cHV0KEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSkKK3ZvaWQgSlNOb3RBbk9iamVj
dDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIGksIHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAppbmRleCBiOGYwZmFhODU2MjI2MjNjMjA3
OWM5YzljNzEzN2Q3ZDdiMjg1MWY3Li4xNmEyNzY4ZGFmYmU5NWQwMjVhMjk5Yjg5NDI4NWFlN2Vi
NTdlZTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFu
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5oCkBAIC03NiwxMCArNzYsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURl
c2NyaXB0b3ImKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0
YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCi0gICAgICAgIHZpcnR1YWwg
dm9pZCBwdXQoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAKICAgICAgICAgdmlydHVh
bCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3Bw
CmluZGV4IGQzZmMzNTk5MzFlMDE2OTEwODc1ZmM4ODljYmNmYzI4ODVjM2NjM2UuLjU3NWQxYzFi
MzQxMjIyYjhjNTlhOTA2ZWE1ZmYyNWUxY2NjNTM5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC03MTUsNyArNzE1LDcgQEAgTkVWRVJfSU5M
SU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAg
ICAgICAgICAgaWYgKGlzSlNBcnJheSgmbV9leGVjLT5nbG9iYWxEYXRhKCksIGFycmF5KSAmJiBh
cnJheS0+Y2FuU2V0SW5kZXgoaW5kZXhTdGFjay5sYXN0KCkpKQogICAgICAgICAgICAgICAgICAg
ICAgICAgYXJyYXktPnNldEluZGV4KG1fZXhlYy0+Z2xvYmFsRGF0YSgpLCBpbmRleFN0YWNrLmxh
c3QoKSwgZmlsdGVyZWRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGFycmF5LT5wdXQobV9leGVjLCBpbmRleFN0YWNrLmxhc3QoKSwgZmls
dGVyZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhcnJheS0+cHV0VmlydHVhbCht
X2V4ZWMsIGluZGV4U3RhY2subGFzdCgpLCBmaWx0ZXJlZFZhbHVlKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgaWYgKG1fZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTc3OSw3ICs3NzksNyBAQCBORVZFUl9J
TkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogICAgICAgICAg
ICAgICAgIGlmIChmaWx0ZXJlZFZhbHVlLmlzVW5kZWZpbmVkKCkpCiAgICAgICAgICAgICAgICAg
ICAgIG9iamVjdC0+ZGVsZXRlUHJvcGVydHkobV9leGVjLCBwcm9wKTsKICAgICAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG9iamVjdC0+cHV0KG1fZXhlYywgcHJvcCwgZmls
dGVyZWRWYWx1ZSwgc2xvdCk7CisgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+cHV0VmlydHVh
bChtX2V4ZWMsIHByb3AsIGZpbHRlcmVkVmFsdWUsIHNsb3QpOwogICAgICAgICAgICAgICAgIGlm
IChtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNO
dWxsKCk7CiAgICAgICAgICAgICAgICAgaW5kZXhTdGFjay5sYXN0KCkrKzsKQEAgLTgxMCw3ICs4
MTAsNyBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRl
cmVkKQogICAgIH0KICAgICBKU09iamVjdCogZmluYWxIb2xkZXIgPSBjb25zdHJ1Y3RFbXB0eU9i
amVjdChtX2V4ZWMpOwogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgIGZpbmFsSG9sZGVy
LT5wdXQobV9leGVjLCBtX2V4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5lbXB0eUlk
ZW50aWZpZXIsIG91dFZhbHVlLCBzbG90KTsKKyAgICBmaW5hbEhvbGRlci0+cHV0VmlydHVhbCht
X2V4ZWMsIG1fZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPmVtcHR5SWRlbnRpZmll
ciwgb3V0VmFsdWUsIHNsb3QpOwogICAgIHJldHVybiBjYWxsUmV2aXZlcihmaW5hbEhvbGRlciwg
anNFbXB0eVN0cmluZyhtX2V4ZWMpLCBvdXRWYWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCBhYWNlYzZkNDM3NjcwZWEzZmEwMTAwM2Q3
OGVhMDczM2U0OWUwZTRkLi42Nzk2MDczNjlmMjg3ZmZlYWEzZjIwNmJkMmIwMTFjMmNhY2FiNjI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0xMDgs
NyArMTA4LDcgQEAgc3RhdGljIHZvaWQgdGhyb3dTZXR0ZXJFcnJvcihFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgInNldHRpbmcgYSBw
cm9wZXJ0eSB0aGF0IGhhcyBvbmx5IGEgZ2V0dGVyIikpOwogfQogCi12b2lkIEpTT2JqZWN0Ojpw
dXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgSlNPYmplY3Q6OnB1dFZpcnR1
YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CkBAIC0xOTAsNyArMTkwLDcgQEAgdm9pZCBK
U09iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUKICAgICByZXR1cm47CiB9CiAKLXZvaWQgSlNPYmplY3Q6OnB1dChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKK3Zv
aWQgSlNPYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUpOwogfQpAQCAtMTk4LDcgKzE5OCw3IEBAIHZvaWQgSlNPYmplY3Q6OnB1dChFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHZvaWQg
SlNPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90Owot
ICAgIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2VsbCktPnB1dChleGVjLCBJZGVudGlmaWVyOjpm
cm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHZhbHVlLCBzbG90KTsKKyAgICBzdGF0aWNfY2FzdDxK
U09iamVjdCo+KGNlbGwpLT5wdXRWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywg
cHJvcGVydHlOYW1lKSwgdmFsdWUsIHNsb3QpOwogfQogCiB2b2lkIEpTT2JqZWN0OjpwdXRXaXRo
QXR0cmlidXRlcyhKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcywgYm9vbCBjaGVj
a1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC03NjMsNyArNzYzLDcgQEAgYm9v
bCBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUKICAgICAgICAgICAgIGlmICghZGVzY3JpcHRvci52YWx1ZSgp
KQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgUHV0UHJvcGVydHlT
bG90IHNsb3Q7Ci0gICAgICAgICAgICBwdXQoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
LnZhbHVlKCksIHNsb3QpOworICAgICAgICAgICAgcHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5h
bWUsIGRlc2NyaXB0b3IudmFsdWUoKSwgc2xvdCk7CiAgICAgICAgICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRl
eCAzYWQ3MGM1MGFhZDYxYWQzN2ZjYzJmYTliOTA0YTcwYjM3ZmYzM2IyLi40ZDVlNDg3OGE4YWQ4
NzA1YWQzOGQ2N2NhYWVhZWM3ZGE5ZTIzMjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmgKQEAgLTEwNyw5ICsxMDcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlIHZhbHVlKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0
YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZv
aWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEpTR2xvYmFsRGF0
YSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWdu
ZWQgYXR0cmlidXRlcywgYm9vbCBjaGVja1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
OwpAQCAtODA5LDEwICs4MDksMTAgQEAgaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0KEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QKIGlubGluZSB2
b2lkIEpTVmFsdWU6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGlm
IChVTkxJS0VMWSghaXNDZWxsKCkpKSB7Ci0gICAgICAgIHN5bnRoZXNpemVPYmplY3QoZXhlYykt
PnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICAgICAgc3ludGhlc2l6
ZU9iamVjdChleGVjKS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBhc0NlbGwoKS0+cHV0KGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIGFzQ2VsbCgpLT5wdXRWaXJ0dWFsKGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXRE
aXJlY3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKQEAgLTgyNSwxMCArODI1LDEwIEBA
IGlubGluZSB2b2lkIEpTVmFsdWU6OnB1dERpcmVjdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwKIGlubGluZSB2b2lkIEpTVmFsdWU6OnB1dChFeGVjU3Rh
dGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBp
ZiAoVU5MSUtFTFkoIWlzQ2VsbCgpKSkgewotICAgICAgICBzeW50aGVzaXplT2JqZWN0KGV4ZWMp
LT5wdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CisgICAgICAgIHN5bnRoZXNpemVPYmpl
Y3QoZXhlYyktPnB1dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgYXNDZWxsKCktPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlKTsKKyAgICBhc0NlbGwoKS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
KTsKIH0KIAogQUxXQVlTX0lOTElORSB2b2lkIEpTT2JqZWN0Ojp2aXNpdENoaWxkcmVuRGlyZWN0
KFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcAppbmRleCA4ZDBmZGE5MDM3MzIyZGYxNzMw
NjVkYzYxY2M5MTRlNTMwMDdiZjAyLi43NGY2OTlkOWI5YTliMTc4MWJhZjdiYTI0MDg0ZjQxMDdj
YWNkZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRp
Y1Njb3BlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0
YXRpY1Njb3BlT2JqZWN0LmNwcApAQCAtNDksNyArNDksNyBAQCBKU09iamVjdCogSlNTdGF0aWNT
Y29wZU9iamVjdDo6dG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1
cm4gZXhlYy0+Z2xvYmFsVGhpc1ZhbHVlKCk7CiB9CiAKLXZvaWQgSlNTdGF0aWNTY29wZU9iamVj
dDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIEpTU3RhdGljU2NvcGVP
YmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBw
dXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKaW5kZXgg
ZGMyODc3OTVkZDlmMTYwNGY2YjUxZjI0NmI2Y2E5MmVmOThhMTgwNS4uODU4NWJiZTRiZTI3ZDIw
MjkxMzZjZjM0MGIzYTU2MWIzNWM4NTJiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaApAQCAtNDYsNyArNDYsNyBAQCBuYW1l
c3BhY2UgSlNDewogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0
YXRlKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpOwogCiAgICAgICAgIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAppbmRleCA3ODJkYzBmYmM3MGM4M2E5MmFlMTBm
MTA0OWFmZmRjMDMyNjk4ODFjLi44YjBiOGQ5NDcyOGFiNmQ0MmRjZGY4MDUxOTJlZDY1MGY4MjYy
NTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaApAQCAtMzUyLDcgKzM1
Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGlubGluZSB2b2lkIGxvb2t1cFB1dChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwg
Y29uc3QgSGFzaFRhYmxlKiB0YWJsZSwgVGhpc0ltcCogdGhpc09iaiwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQogICAgIHsKICAgICAgICAgaWYgKCFsb29rdXBQdXQ8VGhpc0ltcD4oZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgdGFibGUsIHRoaXNPYmopKQotICAgICAgICAgICAgdGhpc09iai0+
UGFyZW50SW1wOjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7IC8vIG5vdCBm
b3VuZDogZm9yd2FyZCB0byBwYXJlbnQKKyAgICAgICAgICAgIFBhcmVudEltcDo6cHV0KHRoaXNP
YmosIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOyAvLyBub3QgZm91bmQ6IGZvcndh
cmQgdG8gcGFyZW50CiAgICAgfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IDk5YTViYjIy
OGJmMjdlYzFhZDQxYTlkYjQ0NGUyM2U3NWY4NGY1N2EuLjMyZDZhNzI3ZmNmYWMzMDkzMjQxYmU4
N2I3ODEyOWM2MTYzNWI5MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtNzUsNyArNzUsNyBAQCB2b2lkIE9iamVjdFByb3Rv
dHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9i
amVjdCopCiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIAotdm9pZCBPYmplY3RQ
cm90b3R5cGU6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBPYmplY3RQ
cm90b3R5cGU6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAg
ICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCmluZGV4IGUzOTAw
MjJmNjdjNzU0MjA1YmUzMjFlZjdjYjA5ZDQ1ZmQ1NWUxNDguLmVhYWMxZDFlODE1MjA5MmZhYzcw
YmZlN2M1ZjVlNDVhZGU5ZDg4MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdFByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdFByb3RvdHlwZS5oCkBAIC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgcHJpdmF0ZToKICAgICAgICAgT2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVj
dHVyZSopOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCmluZGV4IDQwZDQ5MTQ2NDRjOTg2M2JjMjQ0
YzFkNGIzMWRjYmJhZGExZWM3MDAuLmMzODBkYTQ2YzZmMTg5ZGY0YTcwYWE5YzI3NjM4ZDNjZTVl
ZWI1ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBD
b25zdHJ1Y3Rvci5jcHAKQEAgLTE0OCwxNCArMTQ4LDE0IEBAIHZvaWQgUmVnRXhwTWF0Y2hlc0Fy
cmF5OjpmaWxsQXJyYXlJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8PSBsYXN0TnVtU3VicGF0dGVybnM7ICsraSkgewogICAgICAgICBpbnQgc3Rh
cnQgPSBkLT5sYXN0T3ZlY3RvcigpWzIgKiBpXTsKICAgICAgICAgaWYgKHN0YXJ0ID49IDApCi0g
ICAgICAgICAgICBKU0FycmF5OjpwdXQoZXhlYywgaSwganNTdWJzdHJpbmcoZXhlYywgZC0+bGFz
dElucHV0LCBzdGFydCwgZC0+bGFzdE92ZWN0b3IoKVsyICogaSArIDFdIC0gc3RhcnQpKTsKKyAg
ICAgICAgICAgIEpTQXJyYXk6OnB1dCh0aGlzLCBleGVjLCBpLCBqc1N1YnN0cmluZyhleGVjLCBk
LT5sYXN0SW5wdXQsIHN0YXJ0LCBkLT5sYXN0T3ZlY3RvcigpWzIgKiBpICsgMV0gLSBzdGFydCkp
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBKU0FycmF5OjpwdXQoZXhlYywgaSwganNVbmRl
ZmluZWQoKSk7CisgICAgICAgICAgICBKU0FycmF5OjpwdXQodGhpcywgZXhlYywgaSwganNVbmRl
ZmluZWQoKSk7CiAgICAgfQogCiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgSlNBcnJh
eTo6cHV0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5pbmRleCwganNOdW1iZXIoZC0+bGFz
dE92ZWN0b3IoKVswXSksIHNsb3QpOwotICAgIEpTQXJyYXk6OnB1dChleGVjLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkuaW5wdXQsIGpzU3RyaW5nKGV4ZWMsIGQtPmlucHV0KSwgc2xvdCk7CisgICAg
SlNBcnJheTo6cHV0KHRoaXMsIGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5pbmRleCwganNO
dW1iZXIoZC0+bGFzdE92ZWN0b3IoKVswXSksIHNsb3QpOworICAgIEpTQXJyYXk6OnB1dCh0aGlz
LCBleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuaW5wdXQsIGpzU3RyaW5nKGV4ZWMsIGQtPmlu
cHV0KSwgc2xvdCk7CiAKICAgICBkZWxldGUgZDsKICAgICBzZXRTdWJjbGFzc0RhdGEoMCk7CkBA
IC0yOTIsNyArMjkyLDcgQEAgSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dChF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IEkKICAgICByZXR1cm4gYXNS
ZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSktPmdldFJpZ2h0Q29udGV4dChleGVjKTsKIH0KIAot
dm9pZCBSZWdFeHBDb25zdHJ1Y3Rvcjo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
Cit2b2lkIFJlZ0V4cENvbnN0cnVjdG9yOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0
cnVjdG9yLmgKaW5kZXggNWUxMzE3NjRkNDkyNWI3MGNiMzg2Njc5Yzc3ZTZhNDAyYTM2MWM0Yy4u
MzFlOTIyMDVkNjkzNjRmNjgwOTVkNmE4MDRiMTM0MzM0Y2E0YjE2YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBAIC03MSw3ICs3
MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdmly
dHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0Vmly
dHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVz
QXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJh
eS5oCmluZGV4IGU3NWQ2MjE5MTVkMjRhNWU4NmI3YTc1NjRhOTI1YTI2ZjA2OTAxMWQuLjhjMjlk
OTU2MTYxYWJhNDFkMjQzNWFjNTU1MDRkYWNlMWRkNzdiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCkBAIC03Niw3ICs3Niw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIEpTQXJyYXk6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgICAg
ICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHYsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKICAgICAgICAgewogICAgICAgICAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
diwgc2xvdCk7CiAgICAgICAgIH0KQEAgLTg5LDcgKzg5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgICAgICBKU0FycmF5OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2
LCBzbG90KTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2KQorICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2KQogICAgICAgICB7CiAgICAgICAgICAgICBwdXQodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCB2KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggNjYwYjJlMzBhNTRiOTFjOTkwY2FkYWI0
YWEyZjY0MzgzNWMxOTU4Yy4uZDgwNGRmNDhhNDY1NTkwOWQ2NjYyMzYzZWFjMTcwZjA1MWIzMDkz
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
CkBAIC0xNjUsNyArMTY1LDcgQEAgSlNWYWx1ZSByZWdFeHBPYmplY3RMYXN0SW5kZXgoRXhlY1N0
YXRlKiwgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCiAgICAgcmV0dXJuIGFz
UmVnRXhwT2JqZWN0KHNsb3RCYXNlKS0+Z2V0TGFzdEluZGV4KCk7CiB9CiAKLXZvaWQgUmVnRXhw
T2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgUmVnRXhwT2Jq
ZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAppbmRleCBjMGY4M2Q1NDJjYmRlYmQ5
YWVkYmJkODc1YzAxYmJmZThiMjAzMjM5Li4yZWFiMTBjYzk0ZjhkODM2Y2FlZWUyYjNmOTZlNWU4
ZTU5M2YxMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmpl
Y3QuaApAQCAtNjgsNyArNjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlw
dG9yJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAg
dmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZv
aWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgc3RhdGljIEpTX0VYUE9S
VERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdPYmplY3QuY3BwCmluZGV4IDZkNTQ4Y2Q2ZjFhZjRlMmM2ZGRlOWFmNmY0
ZmNmZTg2NzcyMmU3YTEuLmU4ZmNjODYxNjgzYmM4MjZhN2MyOTdjOWFiNGQxOWQxYWFlZWZmMzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcApA
QCAtNzQsNyArNzQsNyBAQCBib29sIFN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcAogICAgIHJldHVybiBKU09i
amVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3Jp
cHRvcik7CiB9CiAKLXZvaWQgU3RyaW5nT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYgc2xvdCkKK3ZvaWQgU3RyaW5nT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3Qu
aAppbmRleCA4NzJhMmMxMzNiNjZhNmQyMTdhYzljOWJlNTY0OWY4MmU1Y2MxMThiLi41NmIzN2Nj
NDk4MWM5ZDY4NWFhM2I3NTM3MDY1NGQwZTg0NzhiY2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVh
bChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IDg4ZmIyZTkyMWFlN2Rm
YTNjMDNhYzgwNmUzMzI5N2UzNGJkMmVmMWUuLjE5NDFmNjA0YWJkODgzYmMzYjI2YWM3ODliZTQ3
NTg2NDdlNDg0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nUHJvdG90eXBlLmNwcApAQCAtODM3LDcgKzgzNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBp
ZiAoc2VwYXJhdG9yVmFsdWUuaXNVbmRlZmluZWQoKSkgewogICAgICAgICAgICAgLy8gYS4gQ2Fs
bCB0aGUgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJn
dW1lbnRzICIwIiwKICAgICAgICAgICAgIC8vICAgIFByb3BlcnR5IERlc2NyaXB0b3Ige1tbVmFs
dWVdXTogUywgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25m
aWd1cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KLSAgICAgICAgICAgIHJlc3VsdC0+cHV0KGV4
ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5wdXQpKTsKKyAgICAg
ICAgICAgIHJlc3VsdC0+cHV0VmlydHVhbChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVj
LCB0aGlzVmFsdWUsIGlucHV0KSk7CiAgICAgICAgICAgICAvLyBiLiBSZXR1cm4gQS4KICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICAgICAgfQpAQCAtODUw
LDcgKzg1MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5j
U3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3Jp
cHRvciB7W1tWYWx1ZV1dOiBTLCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0
cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgogICAgICAgICAgICAgLy8g
ZC4gUmV0dXJuIEEuCiAgICAgICAgICAgICBpZiAocmVnLT5tYXRjaCgqZ2xvYmFsRGF0YSwgaW5w
dXQsIDApIDwgMCkKLSAgICAgICAgICAgICAgICByZXN1bHQtPnB1dChleGVjLCAwLCBqc1N0cmlu
Z1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7CisgICAgICAgICAgICAgICAgcmVz
dWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1
ZSwgaW5wdXQpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsK
ICAgICAgICAgfQogCkBAIC04ODEsNyArODgxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAv
LyAgICB0aHJvdWdoIHEgKGV4Y2x1c2l2ZSkuCiAgICAgICAgICAgICAvLyAyLiBDYWxsIHRoZSBb
W0RlZmluZU93blByb3BlcnR5XV0gaW50ZXJuYWwgbWV0aG9kIG9mIEEgd2l0aCBhcmd1bWVudHMg
VG9TdHJpbmcobGVuZ3RoQSksCiAgICAgICAgICAgICAvLyAgICBQcm9wZXJ0eSBEZXNjcmlwdG9y
IHtbW1ZhbHVlXV06IFQsIFtbV3JpdGFibGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUs
IFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCi0gICAgICAgICAgICByZXN1bHQt
PnB1dChleGVjLCByZXN1bHRMZW5ndGgsIGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBwb3NpdGlv
biwgbWF0Y2hQb3NpdGlvbiAtIHBvc2l0aW9uKSk7CisgICAgICAgICAgICByZXN1bHQtPnB1dFZp
cnR1YWwoZXhlYywgcmVzdWx0TGVuZ3RoLCBqc1N1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRp
b24sIG1hdGNoUG9zaXRpb24gLSBwb3NpdGlvbikpOwogICAgICAgICAgICAgLy8gMy4gSW5jcmVt
ZW50IGxlbmd0aEEgYnkgMS4KICAgICAgICAgICAgIC8vIDQuIElmIGxlbmd0aEEgPT0gbGltLCBy
ZXR1cm4gQS4KICAgICAgICAgICAgIGlmICgrK3Jlc3VsdExlbmd0aCA9PSBsaW1pdCkKQEAgLTkw
MCw3ICs5MDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVu
Y1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICAvLyAgIFRvU3RyaW5nKGxl
bmd0aEEpLCBQcm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IGNhcFtpXSwgW1tXcml0YWJs
ZV1dOgogICAgICAgICAgICAgICAgIC8vICAgdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtb
Q29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCiAgICAgICAgICAgICAgICAgaW50IHN1
YiA9IG92ZWN0b3JbaSAqIDJdOwotICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0KGV4ZWMsIHJl
c3VsdExlbmd0aCwgc3ViIDwgMCA/IGpzVW5kZWZpbmVkKCkgOiBqc1N1YnN0cmluZyhleGVjLCBp
bnB1dCwgc3ViLCBvdmVjdG9yW2kgKiAyICsgMV0gLSBzdWIpKTsKKyAgICAgICAgICAgICAgICBy
ZXN1bHQtPnB1dFZpcnR1YWwoZXhlYywgcmVzdWx0TGVuZ3RoLCBzdWIgPCAwID8ganNVbmRlZmlu
ZWQoKSA6IGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBzdWIsIG92ZWN0b3JbaSAqIDIgKyAxXSAt
IHN1YikpOwogICAgICAgICAgICAgICAgIC8vIGMgSW5jcmVtZW50IGxlbmd0aEEgYnkgMS4KICAg
ICAgICAgICAgICAgICAvLyBkIElmIGxlbmd0aEEgPT0gbGltLCByZXR1cm4gQS4KICAgICAgICAg
ICAgICAgICBpZiAoKytyZXN1bHRMZW5ndGggPT0gbGltaXQpCkBAIC05MTksNyArOTE5LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgIGlmIChzZXBhcmF0b3JWYWx1ZS5pc1VuZGVmaW5lZCgpKSB7CiAg
ICAgICAgICAgICAvLyBhLiAgQ2FsbCB0aGUgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVybmFs
IG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzICIwIiwKICAgICAgICAgICAgIC8vICAgICBQcm9w
ZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFMsIFtbV3JpdGFibGVdXTogdHJ1ZSwgW1tFbnVt
ZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCi0gICAg
ICAgICAgICByZXN1bHQtPnB1dChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlz
VmFsdWUsIGlucHV0KSk7CisgICAgICAgICAgICByZXN1bHQtPnB1dFZpcnR1YWwoZXhlYywgMCwg
anNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOwogICAgICAgICAgICAg
Ly8gYi4gIFJldHVybiBBLgogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogICAgICAgICB9CkBAIC05MzIsNyArOTMyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAg
ICAvLyAgICBQcm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFMsIFtbV3JpdGFibGVdXTog
dHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQg
ZmFsc2UuCiAgICAgICAgICAgICAvLyBkLiBSZXR1cm4gQS4KICAgICAgICAgICAgIGlmICghc2Vw
YXJhdG9yLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQtPnB1dChleGVjLCAwLCBq
c1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7CisgICAgICAgICAgICAg
ICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRo
aXNWYWx1ZSwgaW5wdXQpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKICAgICAgICAgfQogCkBAIC05NDMsNyArOTQzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
ICAgICBBU1NFUlQobGltaXQpOwogCiAgICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAg
cmVzdWx0LT5wdXQoZXhlYywgcG9zaXRpb24sIGpzU2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5nKGV4
ZWMsIGlucHV0LCBwb3NpdGlvbikpOworICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0VmlydHVh
bChleGVjLCBwb3NpdGlvbiwganNTaW5nbGVDaGFyYWN0ZXJTdWJzdHJpbmcoZXhlYywgaW5wdXQs
IHBvc2l0aW9uKSk7CiAgICAgICAgICAgICB9IHdoaWxlICgrK3Bvc2l0aW9uIDwgbGltaXQpOwog
CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CkBAIC05NjAsNyAr
OTYwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxp
dChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAvLyAgICB0aHJvdWdoIHEgKGV4Y2x1c2l2
ZSkuCiAgICAgICAgICAgICAvLyAyLiBDYWxsIHRoZSBbW0RlZmluZU93blByb3BlcnR5XV0gaW50
ZXJuYWwgbWV0aG9kIG9mIEEgd2l0aCBhcmd1bWVudHMgVG9TdHJpbmcobGVuZ3RoQSksCiAgICAg
ICAgICAgICAvLyAgICBQcm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFQsIFtbV3JpdGFi
bGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9
LCBhbmQgZmFsc2UuCi0gICAgICAgICAgICByZXN1bHQtPnB1dChleGVjLCByZXN1bHRMZW5ndGgs
IGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBwb3NpdGlvbiwgbWF0Y2hQb3NpdGlvbiAtIHBvc2l0
aW9uKSk7CisgICAgICAgICAgICByZXN1bHQtPnB1dFZpcnR1YWwoZXhlYywgcmVzdWx0TGVuZ3Ro
LCBqc1N1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRpb24sIG1hdGNoUG9zaXRpb24gLSBwb3Np
dGlvbikpOwogICAgICAgICAgICAgLy8gMy4gSW5jcmVtZW50IGxlbmd0aEEgYnkgMS4KICAgICAg
ICAgICAgIC8vIDQuIElmIGxlbmd0aEEgPT0gbGltLCByZXR1cm4gQS4KICAgICAgICAgICAgIGlm
ICgrK3Jlc3VsdExlbmd0aCA9PSBsaW1pdCkKQEAgLTk3Niw3ICs5NzYsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykK
ICAgICAvLyAgICAgdGhyb3VnaCBzIChleGNsdXNpdmUpLgogICAgIC8vIDE1LiBDYWxsIHRoZSBb
W0RlZmluZU93blByb3BlcnR5XV0gaW50ZXJuYWwgbWV0aG9kIG9mIEEgd2l0aCBhcmd1bWVudHMg
VG9TdHJpbmcobGVuZ3RoQSksIFByb3BlcnR5IERlc2NyaXB0b3IKICAgICAvLyAgICAge1tbVmFs
dWVdXTogVCwgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25m
aWd1cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KLSAgICByZXN1bHQtPnB1dChleGVjLCByZXN1
bHRMZW5ndGgrKywganNTdWJzdHJpbmcoZXhlYywgaW5wdXQsIHBvc2l0aW9uLCBpbnB1dC5sZW5n
dGgoKSAtIHBvc2l0aW9uKSk7CisgICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIHJlc3VsdExl
bmd0aCsrLCBqc1N1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRpb24sIGlucHV0Lmxlbmd0aCgp
IC0gcG9zaXRpb24pKTsKIAogICAgIC8vIDE2LiBSZXR1cm4gQS4KICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwppbmRleCAwZTczNTBmM2Iw
YzJjZjVkNmJiN2UyN2EyZjEwMWY5NzAwNmUyNDU1Li5jNDQ1MzFmOTY5ZTk0ZDE1ZjEyNjMyZWMy
OThkOTYwOTU0YWYzZGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBA
QAorMjAxMS0xMC0xMiAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSB2aXJ0dWFsIHB1dCB0byBwdXRWaXJ0dWFsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTg1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgdmlydHVhbCB2ZXJzaW9u
cyBvZiBwdXQgdG8gcHV0VmlydHVhbCBpbiBwcmVwcmF0aW9uIGZvciAKKyAgICAgICAgYWRkaW5n
IHRoZSBzdGF0aWMgcHV0IHRvIHRoZSBNZXRob2RUYWJsZSBpbiBDbGFzc0luZm8gc2luY2UgdGhl
IAorICAgICAgICBjb21waWxlciBnZXRzIG1hZCBpZiB0aGUgdmlydHVhbCBhbmQgc3RhdGljIHZl
cnNpb25zIGhhdmUgdGhlIHNhbWUgCisgICAgICAgIG5hbWUuCisKKyAgICAgICAgKiBKU1ZhbHVl
V3JhcHBlci5jcHA6CisgICAgICAgIChKU1ZhbHVlV3JhcHBlcjo6SlNPYmplY3RTZXRQcm9wZXJ0
eSk6CisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgIChVc2VyT2JqZWN0SW1w
OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6CisKIDIwMTEtMTAtMTAg
IE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1v
dmUgZ2V0Q2FsbERhdGFWaXJ0dWFsIG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0R2x1ZS9KU1ZhbHVlV3JhcHBlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNWYWx1
ZVdyYXBwZXIuY3BwCmluZGV4IGRjN2VlM2Y5YjM5ODdiZmIxNTMzNTI5NzFlNGVjMTMwMGQxODlh
NjIuLmFmZjlmZjNjMjc3YjZkZGU0MzA0MWIzNzNkYTE0MmRlNmU0NzNlZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1ZhbHVlV3JhcHBlci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRHbHVlL0pTVmFsdWVXcmFwcGVyLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQg
SlNWYWx1ZVdyYXBwZXI6OkpTT2JqZWN0U2V0UHJvcGVydHkodm9pZCAqZGF0YSwgQ0ZTdHJpbmdS
ZWYgcHJvcGVydHlOYW1lLCBKCiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBKU09iamVjdEtKU1Zh
bHVlKChKU1VzZXJPYmplY3QqKWpzVmFsdWUpOwogICAgICAgICBKU09iamVjdCAqb2JqVmFsdWUg
PSBwdHItPkdldFZhbHVlKCkudG9PYmplY3QoZXhlYyk7CiAgICAgICAgIFB1dFByb3BlcnR5U2xv
dCBzbG90OwotICAgICAgICBvYmpWYWx1ZS0+cHV0KGV4ZWMsIENGU3RyaW5nVG9JZGVudGlmaWVy
KHByb3BlcnR5TmFtZSwgZXhlYyksIHZhbHVlLCBzbG90KTsKKyAgICAgICAgb2JqVmFsdWUtPnB1
dFZpcnR1YWwoZXhlYywgQ0ZTdHJpbmdUb0lkZW50aWZpZXIocHJvcGVydHlOYW1lLCBleGVjKSwg
dmFsdWUsIHNsb3QpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRH
bHVlL1VzZXJPYmplY3RJbXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJ
bXAuY3BwCmluZGV4IDZmOTlhNGM4NDY2YjRhNTU1NmQ5YTcwNTQ2MDZkZGU3YmEzY2U5NWEuLjhj
ZWUxYWViZDYxNzcxOGU0MGVjZWM0MDE5ZTM1YzAyZDMzNmVkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dEdsdWUvVXNlck9iamVjdEltcC5jcHAKQEAgLTE1Miw3ICsxNTIsNyBAQCBib29sIFVzZXJPYmpl
Y3RJbXA6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSAqZXhlYywg
Y29uc3QgSWRlbgogICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNP
YmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLXZvaWQgVXNlck9iamVjdElt
cDo6cHV0KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIFVzZXJPYmplY3RJbXA6
OnB1dFZpcnR1YWwoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oIGIvU291cmNlL0phdmFTY3JpcHRHbHVl
L1VzZXJPYmplY3RJbXAuaAppbmRleCBhY2UxOTMzNzY2Nzc1MzBlZTJmNjEzOWMxMGQ2YWY3ZTNi
NTI1ZGM0Li44NWZlYzQwMDkxNTNiMDFiZTNkNGQ1MDA4M2YxMTFlNTVjOTY1ZjZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgSlNWYWx1ZSBjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMpOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50
aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiwgRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmll
ciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIHB1
dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgSlNWYWx1ZSB0b1ByaW1pdGl2ZShFeGVj
U3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlIHByZWZlcnJlZFR5cGUgPSBOb1ByZWZlcmVu
Y2UpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJlZjg4NmIyMDc2ODljMDA3ODRkZThlYjJmN2VlMWFi
MDQ3NGFkNGUuLmQxNTVhMTAyOTlmYjVlYmNmYTE1MWRkOWJkM2I4MzM2ZjY2Y2QwNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxMS0xMC0xMiAgTWFyayBIYWhuZW5iZXJnICA8bWhh
aG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSB2aXJ0dWFsIHB1dCB0byBwdXRW
aXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
OTg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4KKworICAgICAgICBSZW5hbWVkIHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRv
IHB1dFZpcnR1YWwgaW4gcHJlcHJhdGlvbiBmb3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGlj
IHB1dCB0byB0aGUgTWV0aG9kVGFibGUgaW4gQ2xhc3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAg
Y29tcGlsZXIgZ2V0cyBtYWQgaWYgdGhlIHZpcnR1YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZl
IHRoZSBzYW1lIAorICAgICAgICBuYW1lLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3c6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6
cHV0VmlydHVhbCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNMb2NhdGlvbjo6cHV0RGVsZWdhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
UGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpydW50aW1lT2Jq
ZWN0Q3VzdG9tUHV0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OnB1dFByb3BlcnR5
KToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbToKKyAgICAgICAg
KC1bV2ViU2NyaXB0T2JqZWN0IHNldFZhbHVlOmZvcktleTpdKToKKyAgICAgICAgKC1bV2ViU2Ny
aXB0T2JqZWN0IHNldFdlYlNjcmlwdFZhbHVlQXRJbmRleDp2YWx1ZTpdKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVh
ZGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0T2JqOjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmg6CisgICAgICAgICogYnJpZGdlL05QX2pzb2JqZWN0LmNwcDoKKyAgICAgICAg
KF9OUE5fU2V0UHJvcGVydHkpOgorICAgICAgICAqIGJyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1t
OgorICAgICAgICAoSmF2YUpTT2JqZWN0OjpzZXRNZW1iZXIpOgorICAgICAgICAoSmF2YUpTT2Jq
ZWN0OjpzZXRTbG90KToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAg
ICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAgICAgIChKU0M6OkJpbmRp
bmdzOjpPYmpjRmFsbGJhY2tPYmplY3RJbXA6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIGJyaWRn
ZS9xdC9xdF9pbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdEluc3RhbmNl
OjpwdXQpOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmNwcDoKKyAgICAgICAgKEpT
Qzo6QmluZGluZ3M6OmNvbnZlcnRRVmFyaWFudFRvVmFsdWUpOgorICAgICAgICAqIGJyaWRnZS9y
dW50aW1lX2FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpwdXRWaXJ0dWFs
KToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAgICAqIGJyaWRnZS9y
dW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0
OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKyAgICAg
ICAgKiBicmlkZ2UvdGVzdHF0YmluZGluZ3MuY3BwOgorICAgICAgICAobWFpbik6CisKIDIwMTEt
MTAtMTIgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFN1cHBvcnQg
cGFzc2luZyBvcHRpb25hbCBmaWxlbmFtZSB3aGVuIEZvcm1EYXRhLmFwcGVuZCgpIGlzIHVzZWQg
dG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMjAzYzdhNjIzMmNjYzg5NWQ0N2EyMzJmMDJmYzE2
YWY2ZWU0ZTU0Mi4uMWRhNzYzZmRlYzU5OGJlNzgxOTJmYmIyZGFlNzIyMzg1OTIzZmFiYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KQEAgLTE0MSw3ICsxNDEsNyBAQCBfX1pON1dlYkNvcmUxMENsaWVu
dFJlY3RDMUV2CiBfX1pON1dlYkNvcmUxMENyZWRlbnRpYWxDMUVSS04zV1RGNlN0cmluZ0VTNF9O
U18yMUNyZWRlbnRpYWxQZXJzaXN0ZW5jZUUKIF9fWk43V2ViQ29yZTEwQ3JlZGVudGlhbEMxRXYK
IF9fWk43V2ViQ29yZTEwRmxvYXRQb2ludEMxRVJLTlNfOEludFBvaW50RQotX19aTjdXZWJDb3Jl
MTBKU0RvY3VtZW50M3B1dEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFf
N0pTVmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEUKK19fWk43V2ViQ29yZTEwSlNEb2N1bWVu
dDEwcHV0VmlydHVhbEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pT
VmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk43V2ViQ29yZTEwSlNEb2N1bWVudDZz
X2luZm9FCiBfX1pON1dlYkNvcmUxME1vdXNlRXZlbnQ2Y3JlYXRlRVJLTjNXVEYxMkF0b21pY1N0
cmluZ0VOUzFfMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVSS05TXzE4UGxhdGZvcm1Nb3Vz
ZUV2ZW50RWlOUzVfSU5TXzROb2RlRUVFCiBfX1pON1dlYkNvcmUxME1vdXNlRXZlbnRDMUVSS04z
V1RGMTJBdG9taWNTdHJpbmdFYmJOUzFfMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVpaWlp
aWJiYmJ0TlM1X0lOU18xMUV2ZW50VGFyZ2V0RUVFTlM1X0lOU185Q2xpcGJvYXJkRUVFYgpAQCAt
ODMwLDcgKzgzMCw3IEBAIF9fWk43V2ViQ29yZTZFZGl0b3I2aW5kZW50RXYKIF9fWk43V2ViQ29y
ZTZFZGl0b3I3Q29tbWFuZEMxRXYKIF9fWk43V2ViQ29yZTZFZGl0b3I3Y29tbWFuZEVSS04zV1RG
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTZFZGl0b3I3b3V0ZGVudEV2Ci1fX1pON1dlYkNvcmU2SlNO
b2RlM3B1dEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVF
Uk5TMV8xNVB1dFByb3BlcnR5U2xvdEUKK19fWk43V2ViQ29yZTZKU05vZGUxMHB1dFZpcnR1YWxF
UE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQ
dXRQcm9wZXJ0eVNsb3RFCiBfX1pON1dlYkNvcmU2SlNOb2RlNnNfaW5mb0UKIF9fWk43V2ViQ29y
ZTZSZWdpb241dW5pdGVFUktTMF8KIF9fWk43V2ViQ29yZTZSZWdpb244c3VidHJhY3RFUktTMF8K
QEAgLTEwNDQsNyArMTA0NCw3IEBAIF9fWk43V2ViQ29yZTlIVE1MTmFtZXM4dmlkZW9UYWdFCiBf
X1pON1dlYkNvcmU5SFRNTE5hbWVzOWlmcmFtZVRhZ0UKIF9fWk43V2ViQ29yZTlIVE1MTmFtZXM5
b2JqZWN0VGFnRQogX19aTjdXZWJDb3JlOUhUTUxOYW1lczlzY3JpcHRUYWdFCi1fX1pON1dlYkNv
cmU5SlNFbGVtZW50M3B1dEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFf
N0pTVmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEUKK19fWk43V2ViQ29yZTlKU0VsZW1lbnQx
MHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1Zh
bHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pON1dlYkNvcmU5SlNFbGVtZW50NnNfaW5m
b0UKIF9fWk43V2ViQ29yZTlQYWdlQ2FjaGUxMXNldENhcGFjaXR5RWkKIF9fWk43V2ViQ29yZTlQ
YWdlQ2FjaGUyN3JlbGVhc2VBdXRvcmVsZWFzZWRQYWdlc05vd0V2CkBAIC0xNjg3LDYgKzE2ODcs
NyBAQCBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBO
U185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2Q2c19p
bmZvRQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2RDMkVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNf
OVN0cnVjdHVyZUVSTjNXVEY2VmVjdG9ySVBOU184QmluZGluZ3M2TWV0aG9kRUxtMEVFRQogX19a
TjNKU0M4QmluZGluZ3MxMFJvb3RPYmplY3REMUV2CitfX1pOM0pTQzhCaW5kaW5nczEzUnVudGlt
ZU9iamVjdDEwcHV0VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183
SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGlt
ZU9iamVjdDExZ2V0Q2FsbERhdGFFUE5TXzZKU0NlbGxFUk5TXzhDYWxsRGF0YUUKIF9fWk4zSlND
OEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTRmaW5p
c2hDcmVhdGlvbkVQTlNfMTRKU0dsb2JhbE9iamVjdEUKQEAgLTE2OTQsNyArMTY5NSw2IEBAIF9f
Wk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTZnZXRDb25zdHJ1Y3REYXRhRVJOU18xM0Nv
bnN0cnVjdERhdGFFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE4Z2V0T3duUHJv
cGVydHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5
U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5h
bWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRp
b25Nb2RlRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QyNGdldE93blByb3BlcnR5
RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0
eURlc2NyaXB0b3JFCi1fX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDNwdXRFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlT
bG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3Q2c19pbmZvRQogX19aTjNKU0M4
QmluZGluZ3MxM1J1bnRpbWVPYmplY3RDMkVQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRKU0dsb2JhbE9i
amVjdEVQTlNfOVN0cnVjdHVyZUVOM1dURjEwUGFzc1JlZlB0cklOUzBfOEluc3RhbmNlRUVFCiBf
X1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdEQyRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCAwNGI1Yjk3NjUyN2E0ZmQx
OTViNDVhYjI4NDk1NjRlYWM4NWQyZTY4Li42MDY4ZDkyOTExZTU5MmE3NDliN2M5NTc5YTliOTlm
YzJkYWEyMDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwCkBAIC0zMzgsNyArMzM4LDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHIK
ICAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5
TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKLXZvaWQgSlNET01XaW5kb3c6OnB1dChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0
UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBKU0RPTVdpbmRvdzo6cHV0VmlydHVhbChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwg
UHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGlmICghaW1wbCgpLT5mcmFtZSgpKQogICAg
ICAgICByZXR1cm47CkBAIC0zNDYsNyArMzQ2LDcgQEAgdm9pZCBKU0RPTVdpbmRvdzo6cHV0KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHYK
ICAgICAvLyBPcHRpbWl6YXRpb246IGFjY2VzcyBKYXZhU2NyaXB0IGdsb2JhbCB2YXJpYWJsZXMg
ZGlyZWN0bHkgYmVmb3JlIGludm9sdmluZyB0aGUgRE9NLgogICAgIGlmIChKU0dsb2JhbE9iamVj
dDo6aGFzT3duUHJvcGVydHlGb3JXcml0ZShleGVjLCBwcm9wZXJ0eU5hbWUpKSB7CiAgICAgICAg
IGlmIChhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQotICAgICAgICAgICAgSlNHbG9iYWxPYmplY3Q6
OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICAgICAgICAgIEpTR2xv
YmFsT2JqZWN0OjpwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM1NCw3ICszNTQsNyBAQCB2b2lkIEpTRE9NV2lu
ZG93OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdgogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoYWxsb3dzQWNjZXNzRnJvbShl
eGVjKSkKLSAgICAgICAgQmFzZTo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3Qp
OworICAgICAgICBCYXNlOjpwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xv
dCk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3c6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAppbmRleCA2ZDI2Zjk4NWM3MWI2YzRiODNi
MGEzMDI5ODliMDdmMGJhMzI3YjFlLi5hNjYwNWQ4MjUwNjZiZWQwOWY2NzFmNzY3YjgyYWUyOTBi
NWUwYWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1NoZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1No
ZWxsLmNwcApAQCAtMTE1LDkgKzExNSw5IEBAIGJvb2wgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllCiAgICAg
cmV0dXJuIG1fd2luZG93LT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlO
YW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpwdXQoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgSlNET01XaW5kb3dTaGVsbDo6cHV0VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIG1fd2luZG93LT5wdXQoZXhl
YywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgbV93aW5kb3ctPnB1dFZpcnR1YWwo
ZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHZvaWQgSlNET01XaW5kb3dT
aGVsbDo6cHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggYjVkZDNh
NmExNmMyY2Q4YTYzZjk4YTNmOTI3OTgzNTJiZGYwZDY3Ny4uYTcyZmQxMThhZGUzODNlMDIxNjY0
YzhhYmViMGIyMzNkMTViYmIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuaApAQCAtODMsNyArODMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6
SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1
dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVz
KTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgZ2V0UHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJy
YXkmLCBKU0M6OkVudW1lcmF0aW9uTW9kZSBtb2RlID0gSlNDOjpFeGNsdWRlRG9udEVudW1Qcm9w
ZXJ0aWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRp
b25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3Rv
bS5jcHAKaW5kZXggOTY3YmM0ZGFkYWVmMjA1MTdhMTcwZGI1N2IxNTViMmY5ZGVhYmM4OS4uOWEx
MTlkYjZlNmU2YzM4YzczYTcyMjA5MDhlMzk1MGFiOGE4ZjljZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTEzOSw3ICsxMzksNyBA
QCBib29sIEpTTG9jYXRpb246OnB1dERlbGVnYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKUwogICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSBK
U0xvY2F0aW9uOjpzX2luZm8ucHJvcEhhc2hUYWJsZShleGVjKS0+ZW50cnkoZXhlYywgcHJvcGVy
dHlOYW1lKTsKICAgICBpZiAoIWVudHJ5KSB7CiAgICAgICAgIGlmIChzYW1lRG9tYWluQWNjZXNz
KQotICAgICAgICAgICAgSlNPYmplY3Q6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBz
bG90KTsKKyAgICAgICAgICAgIEpTT2JqZWN0OjpwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgc2xvdCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5j
cHAKaW5kZXggYTMzYTVmODUzYzY5ODAzMjk3MzRmMDQ5M2Q5MDVjZjNiNmQ1MGJlZC4uMDBjZDk2
ODJiOGNlZTBiZGQ2YTkwZWQ3NjdmNGY2ZGMxNzEyM2EyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCkBAIC0x
NDUsNyArMTQ1LDcgQEAgYm9vbCBydW50aW1lT2JqZWN0Q3VzdG9tUHV0KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1YKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgaWYgKCFzY3JpcHRPYmplY3QtPmhhc1Byb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBzY3JpcHRPYmplY3QtPnB1dChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBzY3JpcHRPYmplY3QtPnB1dFZpcnR1YWwoZXhl
YywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
Y3BwCmluZGV4IDhkYmUzZWEwOWM3YzdmYmY1ZDQ5ZDdlNTBmY2ZhMWQ0MzRkMTQwYjkuLmVlMGM2
MzE0OGU3MDlmNjFlYTE1MTUyZDZiYjcyOTk1MzE2NGEyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMTAzMSw3
ICsxMDMxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKGFycmF5LT5jYW5TZXRJbmRleChpbmRl
eCkpCiAgICAgICAgICAgICBhcnJheS0+c2V0SW5kZXgobV9leGVjLT5nbG9iYWxEYXRhKCksIGlu
ZGV4LCB2YWx1ZSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFycmF5LT5wdXQobV9leGVj
LCBpbmRleCwgdmFsdWUpOworICAgICAgICAgICAgYXJyYXktPnB1dFZpcnR1YWwobV9leGVjLCBp
bmRleCwgdmFsdWUpOwogICAgIH0KIAogICAgIHZvaWQgcHV0UHJvcGVydHkoSlNPYmplY3QqIG9i
amVjdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIEpTVmFsdWUgdmFsdWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCmluZGV4IGZmNjEz
ZTJkOGE1YTQ2NGI4ZjA1Y2M4MmEzZWM3MmU3YThhYTIzNzcuLjUzNjgyYzc1MzMwM2U0NTM4Zjll
OWRlZWNjOTE5NTk5ZjQzNTdmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvV2ViU2NyaXB0T2JqZWN0Lm1tCkBAIC0zNDksNyArMzQ5LDcgQEAgc3RhdGljIHZvaWQgZ2V0
TGlzdEZyb21OU0FycmF5KEV4ZWNTdGF0ZSAqZXhlYywgTlNBcnJheSAqYXJyYXksIFJvb3RPYmpl
Y3QqIHJvb3QKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwogCiAgICAg
UHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgW3NlbGYgX2ltcF0tPnB1dChleGVjLCBJZGVudGlm
aWVyKGV4ZWMsIHN0cmluZ1RvVVN0cmluZyhTdHJpbmcoa2V5KSkpLCBjb252ZXJ0T2JqY1ZhbHVl
VG9WYWx1ZShleGVjLCAmdmFsdWUsIE9iamNPYmplY3RUeXBlLCBbc2VsZiBfcm9vdE9iamVjdF0p
LCBzbG90KTsKKyAgICBbc2VsZiBfaW1wXS0+cHV0VmlydHVhbChleGVjLCBJZGVudGlmaWVyKGV4
ZWMsIHN0cmluZ1RvVVN0cmluZyhTdHJpbmcoa2V5KSkpLCBjb252ZXJ0T2JqY1ZhbHVlVG9WYWx1
ZShleGVjLCAmdmFsdWUsIE9iamNPYmplY3RUeXBlLCBbc2VsZiBfcm9vdE9iamVjdF0pLCBzbG90
KTsKIAogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICBhZGRFeGNlcHRp
b25Ub0NvbnNvbGUoZXhlYyk7CkBAIC00ODYsNyArNDg2LDcgQEAgc3RhdGljIHZvaWQgZ2V0TGlz
dEZyb21OU0FycmF5KEV4ZWNTdGF0ZSAqZXhlYywgTlNBcnJheSAqYXJyYXksIFJvb3RPYmplY3Qq
IHJvb3QKICAgICBBU1NFUlQoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKIAogICAgIEpTTG9jayBs
b2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0gICAgW3NlbGYgX2ltcF0tPnB1dChleGVjLCBp
bmRleCwgY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJnZhbHVlLCBPYmpjT2JqZWN0VHlw
ZSwgW3NlbGYgX3Jvb3RPYmplY3RdKSk7CisgICAgW3NlbGYgX2ltcF0tPnB1dFZpcnR1YWwoZXhl
YywgaW5kZXgsIGNvbnZlcnRPYmpjVmFsdWVUb1ZhbHVlKGV4ZWMsICZ2YWx1ZSwgT2JqY09iamVj
dFR5cGUsIFtzZWxmIF9yb290T2JqZWN0XSkpOwogCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSB7CiAgICAgICAgIGFkZEV4Y2VwdGlvblRvQ29uc29sZShleGVjKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMmQ4
MTM0NzBjN2NhMTczOTJkZWZiMjExZDYyNTIxODJkOTZmMGExYS4uNTUwOGQxOGY0ZjUxYjNhYzRj
MWJiYjU4ZDJiZGM2OGY2NjBkYjE0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTc5Myw5ICs3OTMsOSBAQCBzdWIgR2Vu
ZXJhdGVIZWFkZXIKIAogICAgICMgR2V0dGVycwogICAgIGlmICgkaGFzU2V0dGVyKSB7Ci0gICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUs
IEpTQzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVy
dHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMg
dm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7
XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgcHV0
KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpO1xu
IikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhTZXR0
ZXIifTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgcHV0
VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpKU1Zh
bHVlKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUlu
ZGV4U2V0dGVyIn07CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHZv
aWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIEpTQzo6SlNWYWx1ZSk7XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJIYXNDdXN0b21JbmRleFNldHRlciJ9OwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIGJvb2wgcHV0RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKSBpZiAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHV0RnVuY3Rpb24ifTsKICAgICB9
CkBAIC0xMDUwLDcgKzEwNTAsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgIiAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksICZzX2luZm8pO1xuIiAuCiAgICAgICAgICIgICAgfVxuIik7CiAgICAgaWYgKCRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVQdXRGdW5jdGlvbiJ9
KSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dChK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6
OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKKyAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6
UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVy
dHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIHB1
dERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpK
U1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgfQpAQCAtMTQ3Myw3ICsx
NDczLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICB9CiAKICAgICBpZiAoJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZVB1dEZ1bmN0
aW9uIn0pIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfVBy
b3RvdHlwZTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6cHV0VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHB1dCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTtcbiIpOwogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIn1cblxuIik7CkBAIC0xNzQyLDcgKzE3NDIsNyBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogCiAgICAgICAgIGlmICgkaGFzU2V0dGVyKSB7CiAgICAgICAgICAgICBp
ZiAoISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVB1dEZ1bmN0aW9uIn0p
IHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9
OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnB1dFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAie1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
cHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpO1xuIik7CiAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwpAQCAtMTc3Myw3ICsxNzczLDcg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4U2V0
dGVyIn0pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFz
c05hbWV9OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQg
JHtjbGFzc05hbWV9OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlKVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBw
dXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7XG4iKTsKICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGMwMjRhNDUxZDc5
MDMyZmVhNThmNGJhOWIyODQ5ZmJlNTEwNjI2OGMuLmU0NGRmOTI4MmFlMDk2ODA5ZWFiYzEyMTJh
Yzk2MjRmYWVjNTk2NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC03NjEsNyArNzYxLDcgQEAgSlNWYWx1ZSBq
c1Rlc3RPYmpDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNv
bnN0IElkZW50aWZpZXIKICAgICByZXR1cm4gSlNUZXN0T2JqOjpnZXRDb25zdHJ1Y3RvcihleGVj
LCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKTsKIH0KIAotdm9pZCBKU1Rlc3RPYmo6OnB1dChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBKU1Rlc3RPYmo6OnB1dFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggYzNkMWIyNGNiYjE3MWE2NGYy
NjkyM2Y4N2ZhZWI1NzFhZDVjOGQzMy4uM2NhMzI2YmM1ZTM0NTA4NjE3YzZmOWZmYjNhY2IwNWM3
MTg1NDg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpT
Qzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5RGVzY3JpcHRvciYpOwotICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6
OlB1dFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1
ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0Nl
bGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGNvbnN0
IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL05QX2pzb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5j
cHAKaW5kZXggMTRlZmIxOTc2ZmZhNzY4OWYyM2VmMjczNTUxNDFmNmJkZTZkN2UxNC4uNDBhZTUx
MzNjNjk3MjYxNzZlYjc5YmM3NWY1YTgxNTJjNTMzMDNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
TlBfanNvYmplY3QuY3BwCkBAIC0zMzcsOSArMzM3LDkgQEAgYm9vbCBfTlBOX1NldFByb3BlcnR5
KE5QUCwgTlBPYmplY3QqIG8sIE5QSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUsIGNvbnN0IE5QVmFy
aWEKIAogICAgICAgICBpZiAoaS0+aXNTdHJpbmcoKSkgewogICAgICAgICAgICAgUHV0UHJvcGVy
dHlTbG90IHNsb3Q7Ci0gICAgICAgICAgICBvYmotPmltcC0+cHV0KGV4ZWMsIGlkZW50aWZpZXJG
cm9tTlBJZGVudGlmaWVyKGV4ZWMsIGktPnN0cmluZygpKSwgY29udmVydE5QVmFyaWFudFRvVmFs
dWUoZXhlYywgdmFyaWFudCwgcm9vdE9iamVjdCksIHNsb3QpOworICAgICAgICAgICAgb2JqLT5p
bXAtPnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllckZyb21OUElkZW50aWZpZXIoZXhlYywgaS0+
c3RyaW5nKCkpLCBjb252ZXJ0TlBWYXJpYW50VG9WYWx1ZShleGVjLCB2YXJpYW50LCByb290T2Jq
ZWN0KSwgc2xvdCk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgb2JqLT5pbXAtPnB1dChl
eGVjLCBpLT5udW1iZXIoKSwgY29udmVydE5QVmFyaWFudFRvVmFsdWUoZXhlYywgdmFyaWFudCwg
cm9vdE9iamVjdCkpOworICAgICAgICAgICAgb2JqLT5pbXAtPnB1dFZpcnR1YWwoZXhlYywgaS0+
bnVtYmVyKCksIGNvbnZlcnROUFZhcmlhbnRUb1ZhbHVlKGV4ZWMsIHZhcmlhbnQsIHJvb3RPYmpl
Y3QpKTsKICAgICAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNv
YmplY3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbQppbmRl
eCAxYzZmMWZiZTMxYzZkNDY3YmNiNWJiZjIzNWZjY2Q0YzA3NTAxM2E1Li5jNGRkOWQ0OGU5MWY5
OTJkNTA1ODAyN2E2YWJlNDI1M2I2MjdhOTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5p
L2puaV9qc29iamVjdC5tbQpAQCAtMzQ4LDcgKzM0OCw3IEBAIHZvaWQgSmF2YUpTT2JqZWN0Ojpz
ZXRNZW1iZXIoanN0cmluZyBtZW1iZXJOYW1lLCBqb2JqZWN0IHZhbHVlKSBjb25zdAogCiAgICAg
SlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qg
c2xvdDsKLSAgICBfaW1wLT5wdXQoZXhlYywgSWRlbnRpZmllcihleGVjLCBKYXZhU3RyaW5nKG1l
bWJlck5hbWUpLmltcGwoKSksIGNvbnZlcnRKT2JqZWN0VG9WYWx1ZShleGVjLCB2YWx1ZSksIHNs
b3QpOworICAgIF9pbXAtPnB1dFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcihleGVjLCBKYXZhU3Ry
aW5nKG1lbWJlck5hbWUpLmltcGwoKSksIGNvbnZlcnRKT2JqZWN0VG9WYWx1ZShleGVjLCB2YWx1
ZSksIHNsb3QpOwogfQogCiAKQEAgLTM5Myw3ICszOTMsNyBAQCB2b2lkIEphdmFKU09iamVjdDo6
c2V0U2xvdChqaW50IGluZGV4LCBqb2JqZWN0IHZhbHVlKSBjb25zdAogCiAgICAgRXhlY1N0YXRl
KiBleGVjID0gcm9vdE9iamVjdC0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKICAgICBK
U0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotICAgIF9pbXAtPnB1dChleGVjLCAo
dW5zaWduZWQpaW5kZXgsIGNvbnZlcnRKT2JqZWN0VG9WYWx1ZShleGVjLCB2YWx1ZSkpOworICAg
IF9pbXAtPnB1dFZpcnR1YWwoZXhlYywgKHVuc2lnbmVkKWluZGV4LCBjb252ZXJ0Sk9iamVjdFRv
VmFsdWUoZXhlYywgdmFsdWUpKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5oCmluZGV4IGE5OGE5MGUxOTc1MGFkYmY5MzZlZGI3Njk3MWUxNzE0YTVhZGI2
ZWYuLjVmNGM2MzA0ZTBiMWQ5NjIxNzc2MmM1ZTUxOThlNDA1ZDU0MzgyYmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCkBAIC0xMjYsNyArMTI2LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwotICAgIHZp
cnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVh
bChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwogICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYp
OwogICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLm1tCmluZGV4IDRjZmMzODRhZTU1NjNkN2QxODNlNzFmZWQ3ZDZhMDExZmQzNTI1NTku
LjFmZjU2ZjE2NmViNjM5NGE3MmYwMTMwYzY0ZDJiZWRkZjIzYjUxMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTIyNCw3ICsyMjQsNyBAQCBib29s
IE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIE9iamNGYWxs
YmFja09iamVjdEltcDo6cHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKQordm9pZCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OnB1dFZpcnR1
YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0
YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCmluZGV4
IDBkNjFhNjAyMjkwMmIwY2M2ZjU2NDkwMjI2ZTY0OTA1OWVhMzNiYjQuLmZmMDQ1NDU0OTljZmM1
Mzk2ODUyYjk0MDhmYTUyOWMzYjkzMDA0NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X2luc3RhbmNlLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIGJvb2wgUXRJbnN0YW5jZTo6Z2V0T3du
UHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
CiAKIHZvaWQgUXRJbnN0YW5jZTo6cHV0KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgb2JqZWN0LT5KU09iamVjdDo6cHV0KGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIEpTT2JqZWN0OjpwdXQob2JqZWN0LCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBRdEluc3RhbmNlOjpyZW1vdmVD
YWNoZWRNZXRob2QoSlNPYmplY3QqIG1ldGhvZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9y
dW50aW1lLmNwcAppbmRleCBjM2E3YTNkMGE2NWQwNTdhNDJkZWZiNDA0YjQwNjcxZjk4Njg1MzEw
Li40OGVhOWZkZjU5NDQ3MjM4ZTNmZTgyMzRlOWFlMmRjZGZlNmVjZGYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCkBAIC05NjAsNyArOTYwLDcgQEAgSlNWYWx1ZSBj
b252ZXJ0UVZhcmlhbnRUb1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxSb290T2Jq
ZWN0PiByb290LCBjb24KICAgICAgICAgICAgIEpTVmFsdWUgdmFsID0gY29udmVydFFWYXJpYW50
VG9WYWx1ZShleGVjLCByb290LmdldCgpLCBpLnZhbHVlKCkpOwogICAgICAgICAgICAgaWYgKHZh
bCkgewogICAgICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAg
ICAgIHJldC0+cHV0KGV4ZWMsIElkZW50aWZpZXIoZXhlYywgcmVpbnRlcnByZXRfY2FzdF9wdHI8
Y29uc3QgVUNoYXIgKj4ocy5jb25zdERhdGEoKSksIHMubGVuZ3RoKCkpLCB2YWwsIHNsb3QpOwor
ICAgICAgICAgICAgICAgIHJldC0+cHV0VmlydHVhbChleGVjLCBJZGVudGlmaWVyKGV4ZWMsIHJl
aW50ZXJwcmV0X2Nhc3RfcHRyPGNvbnN0IFVDaGFyICo+KHMuY29uc3REYXRhKCkpLCBzLmxlbmd0
aCgpKSwgdmFsLCBzbG90KTsKICAgICAgICAgICAgICAgICAvLyAjIyMgZXJyb3IgY2FzZT8KICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICsraTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X2FycmF5LmNwcAppbmRleCA4MGUyYThmOTUxZTFjZTUzYjJmMzZhNmZiMTU1YzIzYjQ4ZTg4OWI4
Li40NTI3MjJmZjYwZjE0MjQ2MWU5NTkwMmI4OTgzZDg0Y2ZkOWI3NTY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgYm9vbCBSdW50
aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSAqZXhl
YywgdW5zaWduZWQgaW4KICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBleGVjLCBpbmRleCwgc2xvdCk7CiB9CiAKLXZvaWQgUnVudGltZUFycmF5Ojpw
dXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgUnVudGltZUFycmF5OjpwdXRW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpAQCAtMTY1LDcgKzE2NSw3IEBAIHZv
aWQgUnVudGltZUFycmF5OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAgSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAotdm9pZCBSdW50aW1lQXJyYXk6OnB1
dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlKQordm9pZCBS
dW50aW1lQXJyYXk6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwg
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBwdXQodGhpcywgZXhlYywgaW5kZXgsIHZhbHVlKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4IGEzZDQ0NThiNmI4OGQzM2M5
NDMzZDYwOTkyNjhmMjRhMzQwODI3ZGYuLmRjNjBlNDQ2NDY1ODk2ZDM5ZDQ3YWU1YzAwZTY5YmJk
ZjRhYjkwYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtNTUsOSAr
NTUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICB2aXJ0dWFsIHZv
aWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSk7CisgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAKICAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
ICZwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAK
aW5kZXggMTMzOGNmODY1Y2U0Y2Y0YWJkZTA2YTk0ZGE0MmY3NjQxMjQ0NzE2Zi4uMDhiNTdhM2E4
NTg3M2E1MjM2ZGIyODZkMzYwYjY3YzRhYzU1MGNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9vYmplY3QuY3BwCkBAIC0yMTYsNyArMjE2LDcgQEAgYm9vbCBSdW50aW1lT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlm
aWVyJgogICAgIHJldHVybiBpbnN0YW5jZS0+Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKLXZvaWQgUnVudGltZU9iamVj
dDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIFJ1bnRpbWVPYmplY3Q6
OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX29iamVjdC5oCmluZGV4IDA2NmQ3NzM3ZTMyNDY0ZTU4NjIxMTg1ZTY0YTU3MzNk
YjFlZWRlZmMuLjg1YzNiNmY3MjI4ZjlkNjJmYjVjODA4ZDJmMDViYzJiYTZkNDVmNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC00OCw3ICs0OCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYpOwotICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAg
IHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9v
bCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUpOwogICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvdGVzdHF0YmluZGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3Rl
c3RxdGJpbmRpbmdzLmNwcAppbmRleCA3MWZjOWJiNjY5Mzk1YzRjMDc5ZDhhOGZmYWMwY2M4ODFk
Nzg2MTYwLi5lN2Q0YTZiOWU5MmNhNGViZWY3NmYyZDA0NzYwOWZkMTUzODU4NmU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdHF0YmluZGluZ3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS90ZXN0cXRiaW5kaW5ncy5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBp
bnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgIAogICAgICAgICBNeU9iamVj
dCogbXlPYmplY3QgPSBuZXcgTXlPYmplY3Q7CiAgICAgICAgIAotICAgICAgICBnbG9iYWwtPnB1
dChleGVjLCBJZGVudGlmaWVyKCJteUludGVyZmFjZSIpLCBJbnN0YW5jZTo6Y3JlYXRlUnVudGlt
ZU9iamVjdChJbnN0YW5jZTo6UXRMYW5ndWFnZSwgKHZvaWQqKW15T2JqZWN0KSk7CisgICAgICAg
IGdsb2JhbC0+cHV0VmlydHVhbChleGVjLCBJZGVudGlmaWVyKCJteUludGVyZmFjZSIpLCBJbnN0
YW5jZTo6Y3JlYXRlUnVudGltZU9iamVjdChJbnN0YW5jZTo6UXRMYW5ndWFnZSwgKHZvaWQqKW15
T2JqZWN0KSk7CiAgICAgICAgIAogICAgICAgICAKICAgICAgICAgaWYgKGNvZGUpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0No
YW5nZUxvZwppbmRleCBjY2IyODhlZjZhMDM2YmY2YTBiNTMyMWM2OTA1YTQ0Y2YyZmEwNmE2Li4x
NDdmZjY1YWU3NzYzMGRhMDgyODU0OGI0NzhhMWNjZjMyZTg3ZjA5IDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTAtMTIgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5i
ZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgdmlydHVhbCBwdXQgdG8gcHV0VmlydHVh
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4NTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWVk
IHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRvIHB1dFZpcnR1YWwgaW4gcHJlcHJhdGlvbiBmb3Ig
CisgICAgICAgIGFkZGluZyB0aGUgc3RhdGljIHB1dCB0byB0aGUgTWV0aG9kVGFibGUgaW4gQ2xh
c3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAgY29tcGlsZXIgZ2V0cyBtYWQgaWYgdGhlIHZpcnR1
YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZlIHRoZSBzYW1lIAorICAgICAgICBuYW1lLgorCisg
ICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X2pzX29iamVjdF9h
ZGQpOgorCiAyMDExLTEwLTEwICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxrdWJvQHByb2Z1c2lv
bi5tb2JpPgogCiAgICAgICAgIFtFRkxdIERvIG5vdCBjYWNoZSBhIGZyYW1lJ3MgY29udGVudHMg
c2l6ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IGMxMzc2YTkwMDgyYjRiYWEw
MmM2ZDkzZmI3MDdlYmI1ZTZhYzMyZWMuLjI5MTIxZThiZjc1ZWU2MTQ2MDE4N2NiZGQ4YmQ0ZWRl
MmYxZjkwMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMzY1NCw3ICszNjU0
LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X2pzX29iamVjdF9hZGQoRXZhc19PYmplY3QqIG8sIEV3
a19KU19PYmplY3QqIG9iaiwgY29uc3QgY2hhcioKICAgICBKU0M6OklkZW50aWZpZXIgaWQgPSBK
U0M6OklkZW50aWZpZXIoZXhlYywgb2JqX25hbWUpOwogCiAgICAgSlNDOjpQdXRQcm9wZXJ0eVNs
b3Qgc2xvdDsKLSAgICB3aW5kb3ctPnB1dChleGVjLCBpZCwgcnVudGltZU9iamVjdCwgc2xvdCk7
CisgICAgd2luZG93LT5wdXRWaXJ0dWFsKGV4ZWMsIGlkLCBydW50aW1lT2JqZWN0LCBzbG90KTsK
ICAgICByZXR1cm4gRUlOQV9UUlVFOwogI2Vsc2UKICAgICByZXR1cm4gRUlOQV9GQUxTRTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCA0ODgxYWI3ODcyYmU2ZWE1NzQ5YzcyMWQ2YjY0MzhiMjYzMzY2ZDVj
Li41ZTJlZWJhNzI1MDI0NDFjYWNlNjdiNGE3NjM4NzY2YTUxMjEzNzRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTAtMTIgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgdmlydHVhbCBwdXQgdG8gcHV0Vmly
dHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5h
bWVkIHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRvIHB1dFZpcnR1YWwgaW4gcHJlcHJhdGlvbiBm
b3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGljIHB1dCB0byB0aGUgTWV0aG9kVGFibGUgaW4g
Q2xhc3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAgY29tcGlsZXIgZ2V0cyBtYWQgaWYgdGhlIHZp
cnR1YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZlIHRoZSBzYW1lIAorICAgICAgICBuYW1lLgor
CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1t
OgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnNldFByb3Bl
cnR5KToKKwogMjAxMS0xMC0xMCAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVzZSBhIENhY2hlZEltYWdlQ2xpZW50IGluc3RlYWQgb2YgQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
SG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCA2NjI3MjAzNzE4OTdk
Yzk0ODZlNTQ3MDBmNmZkMDYxODU5YTdiNjI3Li5hZTQ0MjU0MWMyNWY2ZTI4YTEwNmY1YjNkNTUw
NzBlNDM2NmJiNDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC0xMDYwLDcg
KzEwNjAsNyBAQCBib29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0UHJvcGVydHko
dWludDMyX3Qgb2JqZWN0SUQsIGNvbnN0IElkZW50aWZpZQogCiAgICAgSlNWYWx1ZSB2YWx1ZSA9
IGRlbWFyc2hhbFZhbHVlKGV4ZWMsIHZhbHVlRGF0YSwgdmFsdWVMZW5ndGgpOwogICAgIFB1dFBy
b3BlcnR5U2xvdCBzbG90OwotICAgIG9iamVjdC0+cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHNsb3QpOworICAgIG9iamVjdC0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCBzbG90KTsKICAgICAKICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwogICAgIHJldHVy
biB0cnVlOwpAQCAtMTA4NSw3ICsxMDg1LDcgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbkluc3RhbmNl
UHJveHk6OnNldFByb3BlcnR5KHVpbnQzMl90IG9iamVjdElELCB1bnNpZ25lZCBwcm9wZXIKICAg
ICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOyAgICAKICAgICAKICAgICBKU1Zh
bHVlIHZhbHVlID0gZGVtYXJzaGFsVmFsdWUoZXhlYywgdmFsdWVEYXRhLCB2YWx1ZUxlbmd0aCk7
Ci0gICAgb2JqZWN0LT5wdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CisgICAgb2JqZWN0
LT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOwogICAgIAogICAgIGV4ZWMt
PmNsZWFyRXhjZXB0aW9uKCk7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZy
YW1lLmNwcAppbmRleCAwN2YyZGY5ODdkMmNmZjU2ZGZjOGQ4N2Q3YTVjYWJiNWMxOTY2ZTFhLi43
YWQ0YmUzOGY0ZGVlNmVmNGM2ZGI5Njk4MDQ2YWYyODljMzZiYmVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBp
L3F3ZWJmcmFtZS5jcHAKQEAgLTY4OCw3ICs2ODgsNyBAQCB2b2lkIFFXZWJGcmFtZTo6YWRkVG9K
YXZhU2NyaXB0V2luZG93T2JqZWN0KGNvbnN0IFFTdHJpbmcgJm5hbWUsIFFPYmplY3QgKm9iamVj
dAogICAgICAgICAgICAgSlNDOjpCaW5kaW5nczo6UXRJbnN0YW5jZTo6Z2V0UXRJbnN0YW5jZShv
YmplY3QsIHJvb3QsIG93bmVyc2hpcCktPmNyZWF0ZVJ1bnRpbWVPYmplY3QoZXhlYyk7CiAKICAg
ICBKU0M6OlB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgIHdpbmRvdy0+cHV0KGV4ZWMsIEpTQzo6
SWRlbnRpZmllcihleGVjLCByZWludGVycHJldF9jYXN0X3B0cjxjb25zdCBVQ2hhcio+KG5hbWUu
Y29uc3REYXRhKCkpLCBuYW1lLmxlbmd0aCgpKSwgcnVudGltZU9iamVjdCwgc2xvdCk7CisgICAg
d2luZG93LT5wdXRWaXJ0dWFsKGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCByZWludGVycHJl
dF9jYXN0X3B0cjxjb25zdCBVQ2hhcio+KG5hbWUuY29uc3REYXRhKCkpLCBuYW1lLmxlbmd0aCgp
KSwgcnVudGltZU9iamVjdCwgc2xvdCk7CiAjZWxpZiBVU0UoVjgpCiAgICAgUVNjcmlwdEVuZ2lu
ZSogZW5naW5lID0gZC0+ZnJhbWUtPnNjcmlwdCgpLT5xdFNjcmlwdEVuZ2luZSgpOwogICAgIGlm
ICghZW5naW5lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBlZDc0ZTg3ZjdlNGRkNDk0NTgyZmMyNGYyOTkz
OGQwOGRkNjUyN2IwLi44NDBmZGJkMmZlNWUwMWJkOGQ4NGI1OTY5ZTU4MzVlNjFlMjQzMTI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEwLTEyICBNYXJrIEhhaG5lbmJl
cmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHZpcnR1YWwgcHV0
IHRvIHB1dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY5ODUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVuYW1lZCB2aXJ0dWFsIHZlcnNpb25zIG9mIHB1dCB0byBwdXRWaXJ0dWFsIGluIHBy
ZXByYXRpb24gZm9yIAorICAgICAgICBhZGRpbmcgdGhlIHN0YXRpYyBwdXQgdG8gdGhlIE1ldGhv
ZFRhYmxlIGluIENsYXNzSW5mbyBzaW5jZSB0aGUgCisgICAgICAgIGNvbXBpbGVyIGdldHMgbWFk
IGlmIHRoZSB2aXJ0dWFsIGFuZCBzdGF0aWMgdmVyc2lvbnMgaGF2ZSB0aGUgc2FtZSAKKyAgICAg
ICAgbmFtZS4KKworICAgICAgICAqIEFwaS9xd2ViZnJhbWUuY3BwOgorICAgICAgICAoUVdlYkZy
YW1lOjphZGRUb0phdmFTY3JpcHRXaW5kb3dPYmplY3QpOgorCiAyMDExLTEwLTExICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgY3VzdG9tIHNj
cm9sbGJhciB0aGVtZSBmb3IgdXNlIGluIERSVCwgdG8gcmVkdWNlIHBpeGVsIGRpZmZzIGJldHdl
ZW4gcGxhdGZvcm1zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmI1ODhhNzBlOTIxMDJmNDM2YzBiMzJhOWM4ZGJm
Njk3ZDI1M2QxOS4uNWE3OGZkNWMxOGFhZWY4NTc0OTBhOWVlN2I4NDVjYTI2ZGQxNjdjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTEwLTEyICBNYXJrIEhhaG5lbmJlcmcgIDxt
aGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHZpcnR1YWwgcHV0IHRvIHB1
dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY5ODUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVuYW1lZCB2aXJ0dWFsIHZlcnNpb25zIG9mIHB1dCB0byBwdXRWaXJ0dWFsIGluIHByZXByYXRp
b24gZm9yIAorICAgICAgICBhZGRpbmcgdGhlIHN0YXRpYyBwdXQgdG8gdGhlIE1ldGhvZFRhYmxl
IGluIENsYXNzSW5mbyBzaW5jZSB0aGUgCisgICAgICAgIGNvbXBpbGVyIGdldHMgbWFkIGlmIHRo
ZSB2aXJ0dWFsIGFuZCBzdGF0aWMgdmVyc2lvbnMgaGF2ZSB0aGUgc2FtZSAKKyAgICAgICAgbmFt
ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6cHV0VmlydHVhbCk6CisgICAgICAgIChX
ZWJLaXQ6OkpTTlBPYmplY3Q6OnB1dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTlBKU09iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5QSlNPYmplY3Q6OnNldFByb3Bl
cnR5KToKKwogMjAxMS0xMC0xMiAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVu
Y2lhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgW1F0XVtXSzJdIE1vdmUgcXdlYmVycm9yKiBv
dXQgb2YgQVBJL3F0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKaW5kZXggNTNmNTg2MDFjMGE5NjY4MWM4NTQx
OGJjZDM0ZGNhYjQyZTAwYTFmNC4uZTcxN2RiOTVhZjI4OTYwMWVhZDdiMzFhZmI0M2JhNjgxMjg2
NTM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcApAQCAtMzEyLDM1ICszMTIsNDEgQEAgYm9vbCBKU05Q
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm8KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSlNOUE9iamVjdDo6
cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQordm9pZCBKU05QT2JqZWN0OjpwdXRWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyh0aGlzLCAmc19pbmZvKTsKLSAgICBpZiAoIW1fbnBPYmplY3QpIHsKKyAgICBwdXQo
dGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKK3ZvaWQgSlNOUE9i
amVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpCit7CisgICAg
SlNOUE9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTTlBPYmplY3QqPihjZWxsKTsK
KyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOworICAg
IGlmICghdGhpc09iamVjdC0+bV9ucE9iamVjdCkgewogICAgICAgICB0aHJvd0ludmFsaWRBY2Nl
c3NFcnJvcihleGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIE5QSWRlbnRpZmll
ciBucElkZW50aWZpZXIgPSBucElkZW50aWZpZXJGcm9tSWRlbnRpZmllcihwcm9wZXJ0eU5hbWUp
OwogICAgIAotICAgIGlmICghbV9ucE9iamVjdC0+X2NsYXNzLT5oYXNQcm9wZXJ0eSB8fCAhbV9u
cE9iamVjdC0+X2NsYXNzLT5oYXNQcm9wZXJ0eShtX25wT2JqZWN0LCBucElkZW50aWZpZXIpKSB7
CisgICAgaWYgKCF0aGlzT2JqZWN0LT5tX25wT2JqZWN0LT5fY2xhc3MtPmhhc1Byb3BlcnR5IHx8
ICF0aGlzT2JqZWN0LT5tX25wT2JqZWN0LT5fY2xhc3MtPmhhc1Byb3BlcnR5KHRoaXNPYmplY3Qt
Pm1fbnBPYmplY3QsIG5wSWRlbnRpZmllcikpIHsKICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB3
ZSB0aHJvdyBhbiBleGNlcHRpb24gaGVyZT8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGlmICghbV9ucE9iamVjdC0+X2NsYXNzLT5zZXRQcm9wZXJ0eSkKKyAgICBpZiAoIXRoaXNPYmpl
Y3QtPm1fbnBPYmplY3QtPl9jbGFzcy0+c2V0UHJvcGVydHkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIE5QVmFyaWFudCB2YXJpYW50OwotICAgIG1fb2JqZWN0TWFwLT5jb252ZXJ0SlNWYWx1ZVRv
TlBWYXJpYW50KGV4ZWMsIHZhbHVlLCB2YXJpYW50KTsKKyAgICB0aGlzT2JqZWN0LT5tX29iamVj
dE1hcC0+Y29udmVydEpTVmFsdWVUb05QVmFyaWFudChleGVjLCB2YWx1ZSwgdmFyaWFudCk7CiAK
ICAgICAvLyBDYWxsaW5nIE5QQ2xhc3M6OnNldFByb3BlcnR5IHdpbGwgY2FsbCBpbnRvIHBsdWct
aW4gY29kZSwgYW5kIHRoZXJlJ3Mgbm8gdGVsbGluZyB3aGF0IHRoZSBwbHVnLWluIGNhbiBkby4K
ICAgICAvLyAoaW5jbHVkaW5nIGRlc3Ryb3lpbmcgdGhlIHBsdWctaW4pLiBCZWNhdXNlIG9mIHRo
aXMsIHdlIG1ha2Ugc3VyZSB0byBrZWVwIHRoZSBwbHVnLWluIGFsaXZlIHVudGlsIAogICAgIC8v
IHRoZSBjYWxsIGhhcyBmaW5pc2hlZC4KLSAgICBOUFJ1bnRpbWVPYmplY3RNYXA6OlBsdWdpblBy
b3RlY3RvciBwcm90ZWN0b3IobV9vYmplY3RNYXApOworICAgIE5QUnVudGltZU9iamVjdE1hcDo6
UGx1Z2luUHJvdGVjdG9yIHByb3RlY3Rvcih0aGlzT2JqZWN0LT5tX29iamVjdE1hcCk7CiAKICAg
ICB7CiAgICAgICAgIEpTTG9jazo6RHJvcEFsbExvY2tzIGRyb3BBbGxMb2NrcyhTaWxlbmNlQXNz
ZXJ0aW9uc09ubHkpOwotICAgICAgICBtX25wT2JqZWN0LT5fY2xhc3MtPnNldFByb3BlcnR5KG1f
bnBPYmplY3QsIG5wSWRlbnRpZmllciwgJnZhcmlhbnQpOworICAgICAgICB0aGlzT2JqZWN0LT5t
X25wT2JqZWN0LT5fY2xhc3MtPnNldFByb3BlcnR5KHRoaXNPYmplY3QtPm1fbnBPYmplY3QsIG5w
SWRlbnRpZmllciwgJnZhcmlhbnQpOwogCiAgICAgICAgIE5QUnVudGltZU9iamVjdE1hcDo6bW92
ZUdsb2JhbEV4Y2VwdGlvblRvRXhlY1N0YXRlKGV4ZWMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAppbmRleCAy
M2ZmYzhmYzkyMzJkYjM0YWYwMjEzY2Y3M2U3MWNhZTI5NzU2MTYwLi5iNTRlYTMyOWJmMGViZTdk
MTk3YzQxZDQ2NjA2NDYyMzI1OWZhYjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKQEAgLTg2LDcgKzg2LDgg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxs
KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpT
VmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1
YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyB2b2lkIHB1
dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAg
IHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVy
dHkoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3Qu
Y3BwCmluZGV4IGZlMjk3MGViODgyMjI5YzI1NTk0YzcxN2Y2ZDBkZTEzYTliYTA3MzUuLjVjNzk1
ZjM2OTQ5NmI5MjYzOWJiYjY2MDkyZjI5Y2E0NzM5Njc0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAK
QEAgLTE4OCw5ICsxODgsOSBAQCBib29sIE5QSlNPYmplY3Q6OnNldFByb3BlcnR5KE5QSWRlbnRp
ZmllciBwcm9wZXJ0eU5hbWUsIGNvbnN0IE5QVmFyaWFudCogdmFsdWUpCiAgICAgSlNWYWx1ZSBq
c1ZhbHVlID0gbV9vYmplY3RNYXAtPmNvbnZlcnROUFZhcmlhbnRUb0pTVmFsdWUoZXhlYywgbV9v
YmplY3RNYXAtPmdsb2JhbE9iamVjdCgpLCAqdmFsdWUpOwogICAgIGlmIChpZGVudGlmaWVyUmVw
LT5pc1N0cmluZygpKSB7CiAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBt
X2pzT2JqZWN0LT5wdXQoZXhlYywgaWRlbnRpZmllckZyb21JZGVudGlmaWVyUmVwKGV4ZWMsIGlk
ZW50aWZpZXJSZXApLCBqc1ZhbHVlLCBzbG90KTsKKyAgICAgICAgbV9qc09iamVjdC0+cHV0Vmly
dHVhbChleGVjLCBpZGVudGlmaWVyRnJvbUlkZW50aWZpZXJSZXAoZXhlYywgaWRlbnRpZmllclJl
cCksIGpzVmFsdWUsIHNsb3QpOwogICAgIH0gZWxzZQotICAgICAgICBtX2pzT2JqZWN0LT5wdXQo
ZXhlYywgaWRlbnRpZmllclJlcC0+bnVtYmVyKCksIGpzVmFsdWUpOworICAgICAgICBtX2pzT2Jq
ZWN0LT5wdXRWaXJ0dWFsKGV4ZWMsIGlkZW50aWZpZXJSZXAtPm51bWJlcigpLCBqc1ZhbHVlKTsK
ICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwogICAgIAogICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXIKaW5kZXggMmZmYmU5OTU0N2IzYjY0Y2VjNWVhMWE0MGRlYWE4Yzdj
NjBkNTdlOS4uY2U5NWVhZmRlOTU4YTg3NTdlYzZjN2U1YWMyMjQwZTVjMjdhYzk2NCAxMDA2NDQK
LS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rv
b2xzL3N5bWJvbHMuZmlsdGVyCkBAIC0zMyw3ICszMyw3IEBAIF9aTjdXZWJDb3JlNVJhbmdlRDFF
djsKIF9aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHNFdjsKIF9aTjdXZWJDb3JlOUhUTUxOYW1lczhpbnB1dFRhZ0U7CiBfWk43V2ViQ29yZTlI
VE1MTmFtZXMxMXRleHRhcmVhVGFnRTsKLV9aTjdXZWJDb3JlMTBKU0RvY3VtZW50M3B1dEVQTjNK
U0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1dFBy
b3BlcnR5U2xvdEU7CitfWk43V2ViQ29yZTEwSlNEb2N1bWVudDNwdXRWaXJ0dWFsRVBOM0pTQzlF
eGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJvcGVy
dHlTbG90RTsKIF9aTjdXZWJDb3JlMTBKU0RvY3VtZW50NnNfaW5mb0U7CiBfWk43V2ViQ29yZTEw
dG9Eb2N1bWVudEVOM0pTQzdKU1ZhbHVlRTsKIF9aTjdXZWJDb3JlMTBDbGllbnRSZWN0QzFFdjsK
QEAgLTU1LDEyICs1NSwxMiBAQCBfWk43V2ViQ29yZTIxZ2V0Q2FjaGVkRE9NU3RydWN0dXJlRVBO
U18xN0pTRE9NR2xvYmFsT2JqZWN0RVBLTjNKU0M5Q2xhc3NJbmZvRTsKIF9aTjdXZWJDb3JlMjJl
eHRlcm5hbFJlcHJlc2VudGF0aW9uRVBOU183RWxlbWVudEVqOwogX1pON1dlYkNvcmUyNERvY3Vt
ZW50TWFya2VyQ29udHJvbGxlcjEwbWFya2Vyc0ZvckVQTlNfNE5vZGVFOwogX1pON1dlYkNvcmU2
SlNOb2RlMjB2aXNpdENoaWxkcmVuVmlydHVhbEVSTjNKU0MxMVNsb3RWaXNpdG9yRTsKLV9aTjdX
ZWJDb3JlNkpTTm9kZTNwdXRFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMx
XzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFOworX1pON1dlYkNvcmU2SlNOb2RlM3B1
dFZpcnR1YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVl
RVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFOwogX1pON1dlYkNvcmU2SlNOb2RlNnNfaW5mb0U7CiBf
Wk43V2ViQ29yZTZ0b05vZGVFTjNKU0M3SlNWYWx1ZUU7CiBfWk43V2ViQ29yZTdFbGVtZW50MTZl
bnN1cmVTaGFkb3dSb290RXY7CiBfWk43V2ViQ29yZTdFbGVtZW50MTZyZW1vdmVTaGFkb3dSb290
RXY7Ci1fWk43V2ViQ29yZTlKU0VsZW1lbnQzcHV0RVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJ
ZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJvcGVydHlTbG90RTsKK19aTjdXZWJD
b3JlOUpTRWxlbWVudDNwdXRWaXJ0dWFsRVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJZGVudGlm
aWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJvcGVydHlTbG90RTsKIF9aTjdXZWJDb3JlOUpT
RWxlbWVudDZzX2luZm9FOwogX1pON1dlYkNvcmU5dG9FbGVtZW50RU4zSlNDN0pTVmFsdWVFOwog
X1pOSzdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTRzdWdnZXN0ZWRWYWx1ZUV2Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110872</attachid>
            <date>2011-10-13 10:33:45 -0700</date>
            <delta_ts>2011-10-14 10:24:03 -0700</delta_ts>
            <desc>Fix windows</desc>
            <filename>bug-69851-20111013103345.patch</filename>
            <type>text/plain</type>
            <size>118926</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcyNzQKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5n
ZUxvZwppbmRleCAxMDU5MjljNjk0YTU5YTc3Yjk3ZGQ2Nzc4NWY2NDQ3YjhmYzgzODcyLi5kYzBh
MjgwODk3Y2QwMWNhMjk2MGUxZWEwYWM2OWY5ZDdjNWQ0YmY5IDEwMDY0NAotLS0gYS9DaGFuZ2VM
b2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMTIgIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgdmlydHVh
bCBwdXQgdG8gcHV0VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njk4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWVkIHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRvIHB1dFZpcnR1YWwg
aW4gcHJlcHJhdGlvbiBmb3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGljIHB1dCB0byB0aGUg
TWV0aG9kVGFibGUgaW4gQ2xhc3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAgY29tcGlsZXIgZ2V0
cyBtYWQgaWYgdGhlIHZpcnR1YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZlIHRoZSBzYW1lIAor
ICAgICAgICBuYW1lLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRl
cjoKKwogMjAxMS0xMC0xMiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3Jvbmhh
QGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBGaXggYnVpbGQgd2l0aCBHTGliIDIuMzEKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggYTU2MDM1
YjlhNGQzM2UyOTFiNTYwYTU2NzE2YzMwMmFhZWJhODM0YS4uNDM1M2VhODFmYzgzZjEzMmVlNWUz
NTAwZWQ0MWIyOGEwNzRkZjA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmgKQEAgLTE4MSw3ICsxODEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAg
IAotICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKaW5kZXgg
OGVlMDYwNjI3ZWI0NmJhYTI2ZGFhZGUwZGM0MjE3OWU3ZGQ1YWNiZS4uNTllZmY2ODJlY2MyM2Mz
NDJjZGRhMzUyYTM1MzZjN2U5ZDAwOTllYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTIwMSw3ICsyMDEsNyBA
QCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50Pgot
dm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQordm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnB1dFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RS
ZWYuY3BwCmluZGV4IDRjYzY2YTRkYjMyNTQ1MjY1NDU2YmVkMThhMTU1N2RlZjExY2RiZTYuLmQy
NzBlZDNkMGI0Mjg5ZGE1Y2ZiNTFkYzE2NjE4N2I5ZDY0NGYzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBKU09i
amVjdFNldFByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNT
dHJpbmdSZWYgcHJvcGUKICAgICAgICAganNPYmplY3QtPnB1dFdpdGhBdHRyaWJ1dGVzKGV4ZWMs
IG5hbWUsIGpzVmFsdWUsIGF0dHJpYnV0ZXMpOwogICAgIGVsc2UgewogICAgICAgICBQdXRQcm9w
ZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAganNPYmplY3QtPnB1dChleGVjLCBuYW1lLCBqc1ZhbHVl
LCBzbG90KTsKKyAgICAgICAganNPYmplY3QtPnB1dFZpcnR1YWwoZXhlYywgbmFtZSwganNWYWx1
ZSwgc2xvdCk7CiAgICAgfQogCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CkBAIC0z
MTIsNyArMzEyLDcgQEAgdm9pZCBKU09iamVjdFNldFByb3BlcnR5QXRJbmRleChKU0NvbnRleHRS
ZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIHVuc2lnbmVkIHAKICAgICBKU09iamVjdCoganNP
YmplY3QgPSB0b0pTKG9iamVjdCk7CiAgICAgSlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCB2
YWx1ZSk7CiAgICAgCi0gICAganNPYmplY3QtPnB1dChleGVjLCBwcm9wZXJ0eUluZGV4LCBqc1Zh
bHVlKTsKKyAgICBqc09iamVjdC0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eUluZGV4LCBqc1Zh
bHVlKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKICAgICAgICAgaWYgKGV4Y2Vw
dGlvbikKICAgICAgICAgICAgICpleGNlcHRpb24gPSB0b1JlZihleGVjLCBleGVjLT5leGNlcHRp
b24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBmMmY3Yzc4Y2IzNTViMjVhODU5YjE0
MGQwZmI1OTBmZTQ1YWRmN2MxLi5lNjJhYWJjNzdiYTI4MzY1ZjJiZmQ2OGRkNzgwZWYyMTg3N2Nh
ZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDggQEAKKzIwMTEtMTAt
MTIgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgdmlydHVhbCBwdXQgdG8gcHV0VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWVkIHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRv
IHB1dFZpcnR1YWwgaW4gcHJlcHJhdGlvbiBmb3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGlj
IHB1dCB0byB0aGUgTWV0aG9kVGFibGUgaW4gQ2xhc3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAg
Y29tcGlsZXIgZ2V0cyBtYWQgaWYgdGhlIHZpcnR1YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZl
IHRoZSBzYW1lIAorICAgICAgICBuYW1lLgorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAg
ICAoSlNDOjo6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5jcHA6Cisg
ICAgICAgIChKU09iamVjdFNldFByb3BlcnR5KToKKyAgICAgICAgKEpTT2JqZWN0U2V0UHJvcGVy
dHlBdEluZGV4KToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKyAg
ICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpE
ZWJ1Z2dlckFjdGl2YXRpb246OnB1dFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFj
dGl2YXRpb246OnB1dCk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmg6
CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OnB1
dEJ5VmFsKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAg
IChKU0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3Bw
OgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6CisgICAgICAgICoganNjLmNw
cDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpwdXRWaXJ0dWFs
KToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpwdXRQcm9wZXJ0eSk6CisgICAgICAgIChK
U0M6OmFycmF5UHJvdG9GdW5jQ29uY2F0KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNQ
dXNoKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNSZXZlcnNlKToKKyAgICAgICAgKEpT
Qzo6YXJyYXlQcm90b0Z1bmNTaGlmdCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jU2xp
Y2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NvcnQpOgorICAgICAgICAoSlNDOjph
cnJheVByb3RvRnVuY1NwbGljZSk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jVW5TaGlm
dCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jRmlsdGVyKToKKyAgICAgICAgKEpTQzo6
YXJyYXlQcm90b0Z1bmNNYXApOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNBY3RpdmF0aW9uOjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBydW50
aW1lL0pTQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAg
ICAgIChKU0M6OkpTQXJyYXk6OnB1dFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpKU0FycmF5Ojpw
dXRTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnB1c2gpOgorICAgICAgICAoSlND
OjpKU0FycmF5OjpzaGlmdENvdW50KToKKyAgICAgICAgKEpTQzo6SlNBcnJheTo6dW5zaGlmdENv
dW50KToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pT
Qnl0ZUFycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNCeXRlQXJyYXk6OnB1dFZpcnR1YWwpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2Vs
bC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6cHV0VmlydHVhbCk6CisgICAgICAgIChKU0M6
OkpTQ2VsbDo6cHV0KToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OnB1dFZpcnR1
YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6cHV0Vmly
dHVhbCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpwdXRXaXRoQXR0cmlidXRlcyk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OnB1dFZpcnR1
YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OldhbGtlcjo6d2Fsayk6CisgICAgICAg
ICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRWaXJ0
dWFsKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dCk6CisgICAgICAgIChKU0M6OkpTT2Jq
ZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU1ZhbHVlOjpwdXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2NvcGVPYmplY3Q6OnB1dFZp
cnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6Omxvb2t1cFB1dCk6CisgICAgICAg
ICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RQcm90
b3R5cGU6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OlJlZ0V4cE1hdGNoZXNBcnJheTo6ZmlsbEFycmF5SW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpS
ZWdFeHBDb25zdHJ1Y3Rvcjo6cHV0VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5Lmg6Cisg
ICAgICAgIChKU0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6cHV0VmlydHVhbCk6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OnB1
dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAgICAgICog
cnVudGltZS9TdHJpbmdPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OnB1
dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0Lmg6CisgICAgICAgICog
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1
bmNTcGxpdCk6CisKIDIwMTEtMTAtMTIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8u
bm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgRml4IGJ1aWxkIHdpdGggR0xpYiAy
LjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCBmYWE1ZWMy
OTU2YmMxY2NjNWIzYTg3ZTdkNTlmYzFjYzZjMjQxMzM0Li5kMjY0N2M2MTEyNTVjNjBlZjlhMDk1
YjdiN2Q1OTg1NGE1MjcyNWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKQEAgLTE1Miw3ICsxNTIsNiBAQCBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MThnZXRPd25Q
cm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXwogX19aTjNK
U0MxMlN0cmluZ09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNf
MTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5h
bWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRp
b25Nb2RlRQogX19aTjNKU0MxMlN0cmluZ09iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRv
ckUKLV9fWk4zSlNDMTJTdHJpbmdPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVu
dGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTJTdHJp
bmdPYmplY3Q2c19pbmZvRQogX19aTjNKU0MxMlN0cmluZ09iamVjdEMyRVJOU18xMkpTR2xvYmFs
RGF0YUVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDMTNKU0ZpbmFsT2JqZWN0NnNfaW5mb0UKQEAg
LTE2MSw2ICsxNjAsNyBAQCBfX1pOM0pTQzEzU2FtcGxpbmdGbGFnczVzdGFydEV2CiBfX1pOM0pT
QzEzU2FtcGxpbmdGbGFnczdzX2ZsYWdzRQogX19aTjNKU0MxM1N0YXRlbWVudE5vZGU2c2V0TG9j
RWlpCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxMGdsb2JhbEV4ZWNFdgorX19aTjNKU0MxNEpT
R2xvYmFsT2JqZWN0MTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTRKU0dsb2JhbE9i
amVjdDEyZGVmaW5lR2V0dGVyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVBOU184
SlNPYmplY3RFagogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTJkZWZpbmVTZXR0ZXJFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUE5TXzhKU09iamVjdEVqCiBfX1pOM0pTQzE0SlNH
bG9iYWxPYmplY3QxM2NsZWFyUmFyZURhdGFFUE5TXzZKU0NlbGxFCkBAIC0xNjksNyArMTY5LDcg
QEAgX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTZhZGRTdGF0aWNHbG9iYWxzRVBOUzBfMThHbG9i
YWxQcm9wZXJ0eUluZm9FaQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTdwdXRXaXRoQXR0cmli
dXRlc0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVqCiBfX1pO
M0pTQzE0SlNHbG9iYWxPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxP
YmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRl
bnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCi1fX1pOM0pTQzE0SlNHbG9iYWxPYmpl
Y3QzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18x
NVB1dFByb3BlcnR5U2xvdEUgIAorX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0M3B1dEVQTlNfNkpT
Q2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQ
dXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Q0aW5pdEVQTlNfOEpTT2Jq
ZWN0RQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0NnNfaW5mb0UKIF9fWk4zSlNDMTRKU0dsb2Jh
bE9iamVjdEQyRXYKQEAgLTI1NiwxNCArMjU2LDE0IEBAIF9fWk4zSlNDNFlhcnIxMVlhcnJQYXR0
ZXJuQzFFUktOU183VVN0cmluZ0ViYlBQS2MKIF9fWk4zSlNDNFlhcnIxMWJ5dGVDb21waWxlRVJO
UzBfMTFZYXJyUGF0dGVybkVQTjNXVEYyMEJ1bXBQb2ludGVyQWxsb2NhdG9yRQogX19aTjNKU0M0
WWFycjlpbnRlcnByZXRFUE5TMF8xNUJ5dGVjb2RlUGF0dGVybkVSS05TXzdVU3RyaW5nRWpqUGkK
IF9fWk4zSlNDNGNhbGxFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFTlNfOENhbGxUeXBlRVJL
TlNfOENhbGxEYXRhRVMyX1JLTlNfN0FyZ0xpc3RFCitfX1pOM0pTQzZKU0NlbGwxMHB1dFZpcnR1
YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0
UHJvcGVydHlTbG90RQorX19aTjNKU0M2SlNDZWxsMTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0YXRl
RWpOU183SlNWYWx1ZUUKIF9fWk4zSlNDNkpTQ2VsbDExZ2V0Q2FsbERhdGFFUFMwX1JOU184Q2Fs
bERhdGFFCiBfX1pOM0pTQzZKU0NlbGwxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M2SlNDZWxsMTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4
ZWNTdGF0ZUVqCiBfX1pOM0pTQzZKU0NlbGwxNmdldENvbnN0cnVjdERhdGFFUk5TXzEzQ29uc3Ry
dWN0RGF0YUUKIF9fWk4zSlNDNkpTQ2VsbDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDNkpTQ2Vs
bDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RF
Ci1fX1pOM0pTQzZKU0NlbGwzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5T
XzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKLV9fWk4zSlNDNkpTQ2VsbDNwdXRFUE5T
XzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRSAgCiBfX1pOM0pTQzZKU0NlbGw5Z2V0T2JqZWN0RXYK
IF9fWk4zSlNDNkpTTG9jazEyRHJvcEFsbExvY2tzQzFFTlNfMTRKU0xvY2tCZWhhdmlvckUKIF9f
Wk4zSlNDNkpTTG9jazEyRHJvcEFsbExvY2tzQzFFUE5TXzlFeGVjU3RhdGVFCkBAIC0zMDQsNiAr
MzA0LDggQEAgX19aTjNKU0M4RGVidWdnZXIyM3JlY29tcGlsZUFsbEpTRnVuY3Rpb25zRVBOU18x
MkpTR2xvYmFsRGF0YUUKIF9fWk4zSlNDOERlYnVnZ2VyNmF0dGFjaEVQTlNfMTRKU0dsb2JhbE9i
amVjdEUKIF9fWk4zSlNDOERlYnVnZ2VyNmRldGFjaEVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9f
Wk4zSlNDOERlYnVnZ2VyRDJFdgorX19aTjNKU0M4SlNPYmplY3QxMHB1dFZpcnR1YWxFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlT
bG90RQorX19aTjNKU0M4SlNPYmplY3QxMHB1dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFak5TXzdK
U1ZhbHVlRQogX19aTjNKU0M4SlNPYmplY3QxMWhhc0luc3RhbmNlRVBOU185RXhlY1N0YXRlRU5T
XzdKU1ZhbHVlRVMzXwogX19aTjNKU0M4SlNPYmplY3QxMmRlZmluZUdldHRlckVQTlNfOUV4ZWNT
dGF0ZUVSS05TXzEwSWRlbnRpZmllckVQUzBfagogX19aTjNKU0M4SlNPYmplY3QxMmRlZmluZVNl
dHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVQUzBfagpAQCAtMzI5LDggKzMz
MSw2IEBAIF9fWk4zSlNDOEpTT2JqZWN0MjFnZXRQcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVj
U3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4CiBfX1pOM0pTQzhKU09iamVjdDIyZmlsbEdl
dHRlclByb3BlcnR5U2xvdEVSTlNfMTJQcm9wZXJ0eVNsb3RFUE5TXzE2V3JpdGVCYXJyaWVyQmFz
ZUlOU183VW5rbm93bkVFRQogX19aTjNKU0M4SlNPYmplY3QyM2FsbG9jYXRlUHJvcGVydHlTdG9y
YWdlRVJOU18xMkpTR2xvYmFsRGF0YUVtbQogX19aTjNKU0M4SlNPYmplY3QyNGdldE93blByb3Bl
cnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9w
ZXJ0eURlc2NyaXB0b3JFCi1fX1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFUktO
U18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQotX19aTjNK
U0M4SlNPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRWpOU183SlNWYWx1ZUUKIF9fWk4zSlNDOEpT
T2JqZWN0M3B1dEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVO
U183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDZzX2lu
Zm9FCiBfX1pOM0pTQzhKU1N0cmluZzZzX2luZm9FCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IDdjNzk3ZDNhMzhiNzY0Mzg5MDVl
MTFkYjJlZDBmYzliNDlmZmJiZmMuLjdhNjRlOGJjYWJmYmM3MzA2ZmNkZjBlZjVjNmUwOWJkNzE2
ZGE1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZGVmCkBAIC0yNzEsMTQgKzI3MSwxNCBAQCBFWFBPUlRTCiAgICAgP3Byb3RlY3RlZEds
b2JhbE9iamVjdENvdW50QEhlYXBASlNDQEBRQUVJWFoKICAgICA/cHJvdGVjdGVkT2JqZWN0Q291
bnRASGVhcEBKU0NAQFFBRUlYWgogICAgID9wcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzQEhlYXBA
SlNDQEBRQUU/QVY/JFBhc3NPd25QdHJAVj8kSGFzaENvdW50ZWRTZXRAUEJEVT8kUHRySGFzaEBQ
QkRAV1RGQEBVPyRIYXNoVHJhaXRzQFBCREAyQEBXVEZAQEBXVEZAQFhaCi0gICAgP3B1dEBKU0Nl
bGxASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJAQUFW
UHV0UHJvcGVydHlTbG90QDJAQFoKLSAgICA/cHV0QEpTQ2VsbEBKU0NAQFVBRVhQQVZFeGVjU3Rh
dGVAMkBJVkpTVmFsdWVAMkBAWgotICAgID9wdXRASlNHbG9iYWxPYmplY3RASlNDQEBVQUVYUEFW
RXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90
QDJAQFoKKyAgICA/cHV0QEpTR2xvYmFsT2JqZWN0QEpTQ0BAU0FYUEFWSlNDZWxsQDJAUEFWRXhl
Y1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90QDJA
QFoKICAgICA/cHV0QEpTT2JqZWN0QEpTQ0BAU0FYUEFWSlNDZWxsQDJAUEFWRXhlY1N0YXRlQDJA
QUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90QDJAQFoKLSAgICA/
cHV0QEpTT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBWSlNW
YWx1ZUAyQEFBVlB1dFByb3BlcnR5U2xvdEAyQEBaCi0gICAgP3B1dEBKU09iamVjdEBKU0NAQFVB
RVhQQVZFeGVjU3RhdGVAMkBJVkpTVmFsdWVAMkBAWgotICAgID9wdXRAU3RyaW5nT2JqZWN0QEpT
Q0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBWSlNWYWx1ZUAyQEFBVlB1dFBy
b3BlcnR5U2xvdEAyQEBaCiAgICAgP3B1dERpcmVjdEludGVybmFsQEpTT2JqZWN0QEpTQ0BAQUFF
X05BQVZKU0dsb2JhbERhdGFAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBJX05BQVZQdXRQ
cm9wZXJ0eVNsb3RAMkBQQVZKU0NlbGxAMkBAWgorICAgID9wdXRWaXJ0dWFsQEpTQ2VsbEBKU0NA
QFVBRVhQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBBQVZQdXRQcm9w
ZXJ0eVNsb3RAMkBAWgorICAgID9wdXRWaXJ0dWFsQEpTQ2VsbEBKU0NAQFVBRVhQQVZFeGVjU3Rh
dGVAMkBJVkpTVmFsdWVAMkBAWgorICAgID9wdXRWaXJ0dWFsQEpTR2xvYmFsT2JqZWN0QEpTQ0BA
VUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBWSlNWYWx1ZUAyQEFBVlB1dFByb3Bl
cnR5U2xvdEAyQEBaCisgICAgP3B1dFZpcnR1YWxASlNPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0
YXRlQDJAQUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90QDJAQFoK
KyAgICA/cHV0VmlydHVhbEBKU09iamVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBJVkpTVmFs
dWVAMkBAWgogICAgID9wdXRXaXRoQXR0cmlidXRlc0BKU0dsb2JhbE9iamVjdEBKU0NAQFVBRVhQ
QVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBJQFoKICAgICA/cHV0V2l0
aEF0dHJpYnV0ZXNASlNPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmll
ckAyQFZKU1ZhbHVlQDJASUBaCiAgICAgP3B1dFdpdGhBdHRyaWJ1dGVzQEpTT2JqZWN0QEpTQ0BA
VUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBWSlNWYWx1ZUAyQElfTkFBVlB1dFBy
b3BlcnR5U2xvdEAyQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IDBjZjk3ZjI1OTc3OTg1NjJmMzQ0Yzg2Njlk
YTFkN2JjYTRiOWFiYWQuLjkxOGJkMjgyMTMwNmM1YTcwM2RkNmRjYjdkM2QwOTRjM2M1ZTBiNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFj
dGl2YXRpb24uY3BwCkBAIC03MCwxNCArNzAsMTQgQEAgYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246
OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3RpdmF0aW9uKj4oY2VsbCktPm1fYWN0
aXZhdGlvbi0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKLXZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKK3ZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHNsb3QpOwogfQogCiB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6cHV0KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBzdGF0aWNfY2FzdDxEZWJ1
Z2dlckFjdGl2YXRpb24qPihjZWxsKS0+bV9hY3RpdmF0aW9uLT5wdXQoZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3RpdmF0aW9uKj4o
Y2VsbCktPm1fYWN0aXZhdGlvbi0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTsKIH0KIAogdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OnB1dFdpdGhBdHRyaWJ1dGVz
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCmluZGV4IDdhNTVhN2EzOTU4NGFlN2Q5
YmI1YWU5NGRjYTAwZDU5ZDU5NDQ5OTUuLmU3NzA1MTQ0Mjg1YTI1NzU4OTZlYzdhMDIwYzZmNDU1
ZWVmNmFjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlckFjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05hbWUoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAKaW5kZXggZWIwZDhhMzIyYmJkMDgxZGU2NjkwMzE5YmY5MjY4NGI1ZTY5NGQyMS4uODUwMzE2
NTU2MmY5YWQ5ZDZkNGNkNGY1NDgyMTU1Yjg2NDg4ZDc1NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC05Niw3ICs5Niw3IEBAIHN0YXRpYyBpbmxp
bmUgdm9pZCBwdXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCB1aW50
MzJfdCBpbmRleCwKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFy
cmF5LT5KU0FycmF5OjpwdXQoZXhlYywgaW5kZXgsIHZhbHVlKTsKKyAgICAgICAgSlNBcnJheTo6
cHV0KGFycmF5LCBleGVjLCBpbmRleCwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC0zNTcsNyArMzU3LDcgQEAgdm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFs
QmV5b25kQXJyYXlCb3VuZHMoRXhlY1N0YXRlKiBleGVjLCBKU0FycmF5KgogewogICAgIC8vIFdl
IHNob3VsZCBvbmx5IGdldCBoZXJlIGlmIGluZGV4IGlzIG91dHNpZGUgdGhlIGV4aXN0aW5nIHZl
Y3Rvci4KICAgICBBU1NFUlQoIWFycmF5LT5jYW5TZXRJbmRleChpbmRleCkpOwotICAgIGFycmF5
LT5KU0FycmF5OjpwdXQoZXhlYywgaW5kZXgsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
KTsKKyAgICBKU0FycmF5OjpwdXQoYXJyYXksIGV4ZWMsIGluZGV4LCBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFZhbHVlKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0
aW9uQXJyYXlQdXNoKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBKU0FycmF5KiBhcnJheSkKQEAgLTM3NCwxMyArMzc0LDEzIEBAIEVuY29kZWRKU1ZhbHVlIERG
R19PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQb3AoRXhlY1N0YXRlKiwgSlNBcnJheSogYXJyYXkp
CiB2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZFN0cmljdChFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNDZWxsKiBiYXNlLCBJZGVudGlmaWVy
KiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QodHJ1ZSk7Ci0gICAg
YmFzZS0+cHV0KGV4ZWMsICpwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpLCBzbG90KTsKKyAgICBiYXNlLT5wdXRWaXJ0dWFsKGV4ZWMsICpwcm9wZXJ0eU5hbWUsIEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBzbG90KTsKIH0KIAogdm9pZCBERkdfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUsIEpTQ2VsbCogYmFzZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1l
KQogewogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGZhbHNlKTsKLSAgICBiYXNlLT5wdXQoZXhl
YywgKnByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOwor
ICAgIGJhc2UtPnB1dFZpcnR1YWwoZXhlYywgKnByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRWYWx1ZSksIHNsb3QpOwogfQogCiB2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9u
UHV0QnlJZERpcmVjdFN0cmljdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSwgSlNDZWxsKiBiYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCBl
MDM3MDcwNzgyMjQxOTU2OGE0OTU4MzllZmQ4OWNhYjQzZDZiZjdmLi5jZDg4N2Q1YzhhMWY3MzZh
NjA4ZjYzNmQ1MmRjZjAwMDViM2QyMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTc5MSw3ICs3OTEsNyBAQCBKU1ZhbHVl
IEludGVycHJldGVyOjpleGVjdXRlKFByb2dyYW1FeGVjdXRhYmxlKiBwcm9ncmFtLCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgUwogICAgICAgICAgICAgaWYgKEpTT05QUGF0aC5zaXplKCkgPT0gMSAm
JiBKU09OUFBhdGhbMF0ubV90eXBlID09IExpdGVyYWxQYXJzZXI6OkpTT05QUGF0aEVudHJ5VHlw
ZURlY2xhcmUpIHsKICAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5oYXNQcm9wZXJ0
eShjYWxsRnJhbWUsIEpTT05QUGF0aFswXS5tX3BhdGhFbnRyeU5hbWUpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgICAgICAgICBnbG9i
YWxPYmplY3QtPnB1dChjYWxsRnJhbWUsIEpTT05QUGF0aFswXS5tX3BhdGhFbnRyeU5hbWUsIEpT
T05QVmFsdWUsIHNsb3QpOworICAgICAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPnB1dFZp
cnR1YWwoY2FsbEZyYW1lLCBKU09OUFBhdGhbMF0ubV9wYXRoRW50cnlOYW1lLCBKU09OUFZhbHVl
LCBzbG90KTsKICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgZ2xv
YmFsT2JqZWN0LT5wdXRXaXRoQXR0cmlidXRlcyhjYWxsRnJhbWUsIEpTT05QUGF0aFswXS5tX3Bh
dGhFbnRyeU5hbWUsIEpTT05QVmFsdWUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiAgICAgICAg
ICAgICAgICAgLy8gdmFyIGRlY2xhcmF0aW9ucyByZXR1cm4gdW5kZWZpbmVkCkBAIC0xMjUxLDE0
ICsxMjUxLDE0IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGFibGUq
IGV2YWwsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlCiAgICAgICAgICAgICBjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudCA9IGNvZGVCbG9jay0+dmFyaWFibGUoaSk7CiAgICAgICAgICAgICBp
ZiAoIXZhcmlhYmxlT2JqZWN0LT5oYXNQcm9wZXJ0eShjYWxsRnJhbWUsIGlkZW50KSkgewogICAg
ICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgICAgIHZhcmlh
YmxlT2JqZWN0LT5wdXQoY2FsbEZyYW1lLCBpZGVudCwganNVbmRlZmluZWQoKSwgc2xvdCk7Cisg
ICAgICAgICAgICAgICAgdmFyaWFibGVPYmplY3QtPnB1dFZpcnR1YWwoY2FsbEZyYW1lLCBpZGVu
dCwganNVbmRlZmluZWQoKSwgc2xvdCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAg
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUZ1bmN0aW9uczsgKytpKSB7CiAgICAgICAgICAg
ICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uID0gY29kZUJsb2NrLT5mdW5jdGlvbkRlY2wo
aSk7CiAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgIHZhcmlh
YmxlT2JqZWN0LT5wdXQoY2FsbEZyYW1lLCBmdW5jdGlvbi0+bmFtZSgpLCBmdW5jdGlvbi0+bWFr
ZShjYWxsRnJhbWUsIHNjb3BlQ2hhaW4pLCBzbG90KTsKKyAgICAgICAgICAgIHZhcmlhYmxlT2Jq
ZWN0LT5wdXRWaXJ0dWFsKGNhbGxGcmFtZSwgZnVuY3Rpb24tPm5hbWUoKSwgZnVuY3Rpb24tPm1h
a2UoY2FsbEZyYW1lLCBzY29wZUNoYWluKSwgc2xvdCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKaW5kZXggYTkzMGY1ODJlMDlkYmFmNzFj
NzUxYjI1YzVjNGU3NWE3ZDBhOTYyMi4uNjJjYzEwZDczYjcxMWM5Y2EyOTE4NjJhMjNjZDE3Mjcy
YzhlNGU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKQEAgLTI2MTEs
NyArMjYxMSw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV92YWwpCiAg
ICAgICAgICAgICBpZiAoanNBcnJheS0+Y2FuU2V0SW5kZXgoaSkpCiAgICAgICAgICAgICAgICAg
anNBcnJheS0+c2V0SW5kZXgoKmdsb2JhbERhdGEsIGksIHZhbHVlKTsKICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBqc0FycmF5LT5KU0FycmF5OjpwdXQoY2FsbEZyYW1lLCBpLCB2
YWx1ZSk7CisgICAgICAgICAgICAgICAgSlNBcnJheTo6cHV0KGpzQXJyYXksIGNhbGxGcmFtZSwg
aSwgdmFsdWUpOwogICAgICAgICB9IGVsc2UgaWYgKGlzSlNCeXRlQXJyYXkoZ2xvYmFsRGF0YSwg
YmFzZVZhbHVlKSAmJiBhc0J5dGVBcnJheShiYXNlVmFsdWUpLT5jYW5BY2Nlc3NJbmRleChpKSkg
ewogICAgICAgICAgICAgSlNCeXRlQXJyYXkqIGpzQnl0ZUFycmF5ID0gYXNCeXRlQXJyYXkoYmFz
ZVZhbHVlKTsKICAgICAgICAgICAgIGN0aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhjYWxsRnJh
bWUtPmNvZGVCbG9jaygpLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBGdW5jdGlvblB0cihjdGlfb3Bf
cHV0X2J5X3ZhbF9ieXRlX2FycmF5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IGZkYzY5OWU4
YWNlMTVhYWZjY2IzYjQwZTFhN2I3ZTY5ODkyMDgxMDAuLjBiY2ZjZDZiY2M5ODM2ZDY5N2UyZDMx
ODI1MThiODQ3NzljOTdhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0xODIsNyArMTgyLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgICAgIEpTT2JqZWN0KiBhcnJheSA9IGNvbnN0cnVjdEVtcHR5
QXJyYXkoZ2xvYmFsRXhlYygpKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1
bWVudHMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBhcnJheS0+cHV0KGdsb2JhbEV4ZWMoKSwg
aSwganNTdHJpbmcoZ2xvYmFsRXhlYygpLCBhcmd1bWVudHNbaV0pKTsKKyAgICAgICAgICAgIGFy
cmF5LT5wdXRWaXJ0dWFsKGdsb2JhbEV4ZWMoKSwgaSwganNTdHJpbmcoZ2xvYmFsRXhlYygpLCBh
cmd1bWVudHNbaV0pKTsKICAgICAgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEsIElkZW50aWZpZXIo
Z2xvYmFsRXhlYygpLCAiYXJndW1lbnRzIiksIGFycmF5KTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCmluZGV4IGM0OTRkYTEzMmMyYTMwNTk0
MzJmMjIyMjE0Yzk1Y2YwNGU5YzRhYjUuLjAwOTZjN2M2MDE2OWJhYzAxOTY2MmQ0MTVjYTY3Zjcw
NGU2NWEwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNw
cApAQCAtMjYzLDcgKzI2Myw3IEBAIHZvaWQgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5CiAgICAgSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAK
LXZvaWQgQXJndW1lbnRzOjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVl
IHZhbHVlKQordm9pZCBBcmd1bWVudHM6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNp
Z25lZCBpLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIHB1dCh0aGlzLCBleGVjLCBpLCB2YWx1ZSk7
CiB9CkBAIC0yODMsNyArMjgzLDcgQEAgdm9pZCBBcmd1bWVudHM6OnB1dChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSkKICAgICBKU09iamVj
dDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXIoZXhlYywgVVN0cmluZzo6bnVtYmVy
KGkpKSwgdmFsdWUsIHNsb3QpOwogfQogCi12b2lkIEFyZ3VtZW50czo6cHV0KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIEFyZ3VtZW50czo6cHV0VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0
UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmgKaW5kZXggNmIxZmEwODhiYjU3N2IyOTc1NDMzZTI1MTU2MWE5OGE3ZjY3NDlkNi4uOGI0MjNk
MmRjY2M3YWY3ZmIwMmMyOTRkZGEwYWRiOTk5NmQxOTY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAgLTEzMCw5ICsxMzAsOSBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0
T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0
aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1
YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwo
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBzdGF0aWMgYm9vbCBk
ZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90
b3R5cGUuY3BwCmluZGV4IGNmMTYxNjAzYTM0ZjE1OTMzNmJjMzk1ZTdkZDgyNDlhMWY1N2VjZWQu
LmQyZWU1YTQ2YjY5NjdhMGNjZmQ5YThlZjFiZjI3ZTA1YzIyYzYxYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTE1NCw3ICsx
NTQsNyBAQCBzdGF0aWMgSlNWYWx1ZSBnZXRQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiBvYmosIHVuc2lnbmVkIGluZGV4KQogc3RhdGljIHZvaWQgcHV0UHJvcGVydHkoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogb2JqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgb2JqLT5w
dXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgb2JqLT5wdXRWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiBzdGF0aWMgdW5zaWduZWQg
YXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZChFeGVjU3RhdGUqIGV4ZWMsIGludCBh
cmd1bWVudCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCB1bmRlZmluZWRWYWx1ZSA9IDApCkBA
IC0zNTcsMTEgKzM1NywxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJv
dG9GdW5jQ29uY2F0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIEpTT2JqZWN0KiBjdXJP
YmplY3QgPSBjdXJBcmcudG9PYmplY3QoZXhlYyk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGsgPSAwOyBrIDwgbGVuZ3RoOyArK2spIHsKICAgICAgICAgICAgICAgICBpZiAoSlNWYWx1ZSB2
ID0gZ2V0UHJvcGVydHkoZXhlYywgY3VyT2JqZWN0LCBrKSkKLSAgICAgICAgICAgICAgICAgICAg
YXJyLT5wdXQoZXhlYywgbiwgdik7CisgICAgICAgICAgICAgICAgICAgIGFyci0+cHV0VmlydHVh
bChleGVjLCBuLCB2KTsKICAgICAgICAgICAgICAgICBuKys7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcnItPnB1dChleGVjLCBuLCBjdXJBcmcpOworICAg
ICAgICAgICAgYXJyLT5wdXRWaXJ0dWFsKGV4ZWMsIG4sIGN1ckFyZyk7CiAgICAgICAgICAgICBu
Kys7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGkgPT0gYXJnQ291bnQpCkBAIC00MTUsMTEgKzQx
NSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUHVzaChF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKTsgbisrKSB7CiAgICAgICAgIC8vIENoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93
OyB3aGVyZSBzYWZlIHdlIGNhbiBkbyBhIGZhc3QgcHV0IGJ5IGluZGV4LgogICAgICAgICBpZiAo
bGVuZ3RoICsgbiA+PSBsZW5ndGgpCi0gICAgICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywgbGVu
Z3RoICsgbiwgZXhlYy0+YXJndW1lbnQobikpOworICAgICAgICAgICAgdGhpc09iai0+cHV0Vmly
dHVhbChleGVjLCBsZW5ndGggKyBuLCBleGVjLT5hcmd1bWVudChuKSk7CiAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7CiAgICAgICAgICAgICBJZGVudGlm
aWVyIHByb3BlcnR5TmFtZShleGVjLCBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDY0X3Q+KGxlbmd0
aCkgKyBzdGF0aWNfY2FzdDxpbnQ2NF90PihuKSkudG9TdHJpbmcoZXhlYykpOwotICAgICAgICAg
ICAgdGhpc09iai0+cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgZXhlYy0+YXJndW1lbnQobiksIHNs
b3QpOworICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUs
IGV4ZWMtPmFyZ3VtZW50KG4pLCBzbG90KTsKICAgICAgICAgfQogICAgIH0KICAgICBKU1ZhbHVl
IG5ld0xlbmd0aChzdGF0aWNfY2FzdDxpbnQ2NF90PihsZW5ndGgpICsgc3RhdGljX2Nhc3Q8aW50
NjRfdD4oZXhlYy0+YXJndW1lbnRDb3VudCgpKSk7CkBAIC00NDEsMTIgKzQ0MSwxMiBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmV2ZXJzZShFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgICAgIEpTVmFsdWUgb2JqID0gZ2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwg
ayk7CiAKICAgICAgICAgaWYgKG9iajIpCi0gICAgICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywg
aywgb2JqMik7CisgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGssIG9iajIp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eShleGVj
LCBrKTsKIAogICAgICAgICBpZiAob2JqKQotICAgICAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMs
IGxrMSwgb2JqKTsKKyAgICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgbGsxLCBv
YmopOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eShl
eGVjLCBsazEpOwogICAgIH0KQEAgLTQ3MSw3ICs0NzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU2hpZnQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IDE7IGsgPCBsZW5ndGg7IGsrKykg
ewogICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIG9iaiA9IGdldFByb3BlcnR5KGV4ZWMsIHRo
aXNPYmosIGspKQotICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywgayAtIDEs
IG9iaik7CisgICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgayAt
IDEsIG9iaik7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICB0aGlz
T2JqLT5kZWxldGVQcm9wZXJ0eShleGVjLCBrIC0gMSk7CiAgICAgICAgICAgICB9CkBAIC01MDAs
NyArNTAwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1Ns
aWNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICB1bnNpZ25lZCBuID0gMDsKICAgICBmb3IgKHVuc2ln
bmVkIGsgPSBiZWdpbjsgayA8IGVuZDsgaysrLCBuKyspIHsKICAgICAgICAgaWYgKEpTVmFsdWUg
diA9IGdldFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGspKQotICAgICAgICAgICAgcmVzT2JqLT5w
dXQoZXhlYywgbiwgdik7CisgICAgICAgICAgICByZXNPYmotPnB1dFZpcnR1YWwoZXhlYywgbiwg
dik7CiAgICAgfQogICAgIHJlc09iai0+c2V0TGVuZ3RoKG4pOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKQEAgLTU1OSw4ICs1NTksOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU29ydChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIH0K
ICAgICAgICAgLy8gU3dhcCB0aGVtaW4gYW5kIGkKICAgICAgICAgaWYgKHRoZW1pbiA+IGkpIHsK
LSAgICAgICAgICAgIHRoaXNPYmotPnB1dChleGVjLCBpLCBtaW5PYmopOwotICAgICAgICAgICAg
dGhpc09iai0+cHV0KGV4ZWMsIHRoZW1pbiwgaU9iaik7CisgICAgICAgICAgICB0aGlzT2JqLT5w
dXRWaXJ0dWFsKGV4ZWMsIGksIG1pbk9iaik7CisgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0
dWFsKGV4ZWMsIHRoZW1pbiwgaU9iaik7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZSh0aGlzT2JqKTsKQEAgLTYwNyw3ICs2MDcsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3BsaWNlKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IGJlZ2lu
OyBrIDwgbGVuZ3RoIC0gZGVsZXRlQ291bnQ7ICsraykgewogICAgICAgICAgICAgICAgICAgICBp
ZiAoSlNWYWx1ZSB2ID0gZ2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwgayArIGRlbGV0ZUNvdW50
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPnB1dChleGVjLCBrICsgYWRkaXRp
b25hbEFyZ3MsIHYpOworICAgICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVh
bChleGVjLCBrICsgYWRkaXRpb25hbEFyZ3MsIHYpOwogICAgICAgICAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eShleGVjLCBr
ICsgYWRkaXRpb25hbEFyZ3MpOwogICAgICAgICAgICAgICAgIH0KQEAgLTYyMCw3ICs2MjAsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3BsaWNlKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgayA9IGxlbmd0aCAtIGRlbGV0ZUNvdW50OyBrID4gYmVnaW47IC0taykgewogICAgICAg
ICAgICAgICAgICAgICBpZiAoSlNWYWx1ZSBvYmogPSBnZXRQcm9wZXJ0eShleGVjLCB0aGlzT2Jq
LCBrICsgZGVsZXRlQ291bnQgLSAxKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNPYmot
PnB1dChleGVjLCBrICsgYWRkaXRpb25hbEFyZ3MgLSAxLCBvYmopOworICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBrICsgYWRkaXRpb25hbEFyZ3MgLSAx
LCBvYmopOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eShleGVjLCBrICsgYWRkaXRpb25hbEFyZ3MgLSAxKTsK
ICAgICAgICAgICAgICAgICB9CkBAIC02MjgsNyArNjI4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1NwbGljZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
IH0KICAgICB9CiAgICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8IGFkZGl0aW9uYWxBcmdzOyAr
K2spCi0gICAgICAgIHRoaXNPYmotPnB1dChleGVjLCBrICsgYmVnaW4sIGV4ZWMtPmFyZ3VtZW50
KGsgKyAyKSk7CisgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgayArIGJlZ2luLCBl
eGVjLT5hcmd1bWVudChrICsgMikpOwogCiAgICAgcHV0UHJvcGVydHkoZXhlYywgdGhpc09iaiwg
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIobGVuZ3RoIC0gZGVsZXRlQ291
bnQgKyBhZGRpdGlvbmFsQXJncykpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKQEAgLTY1MCwxNCArNjUwLDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJy
YXlQcm90b0Z1bmNVblNoaWZ0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGsgPSBsZW5ndGg7IGsgPiAwOyAtLWspIHsKICAgICAgICAg
ICAgICAgICBpZiAoSlNWYWx1ZSB2ID0gZ2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwgayAtIDEp
KQotICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywgayArIG5yQXJncyAtIDEs
IHYpOworICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGsgKyBu
ckFyZ3MgLSAxLCB2KTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
IHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGsgKyBuckFyZ3MgLSAxKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICBmb3IgKHVuc2lnbmVkIGsgPSAwOyBrIDwgbnJB
cmdzOyArK2spCi0gICAgICAgIHRoaXNPYmotPnB1dChleGVjLCBrLCBleGVjLT5hcmd1bWVudChr
KSk7CisgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgaywgZXhlYy0+YXJndW1lbnQo
aykpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIobGVuZ3RoICsgbnJBcmdzKTsKICAg
ICBwdXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3Ro
LCByZXN1bHQpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAgLTY5Niw3
ICs2OTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRmls
dGVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIAogICAgICAgICAgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBjYWNoZWRDYWxsLmNhbGwoKTsKICAgICAgICAgICAgIGlmIChyZXN1bHQudG9Cb29s
ZWFuKGV4ZWMpKQotICAgICAgICAgICAgICAgIHJlc3VsdEFycmF5LT5wdXQoZXhlYywgZmlsdGVy
SW5kZXgrKywgdik7CisgICAgICAgICAgICAgICAgcmVzdWx0QXJyYXktPnB1dFZpcnR1YWwoZXhl
YywgZmlsdGVySW5kZXgrKywgdik7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGsgPT0gbGVuZ3Ro
KQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHRBcnJheSk7CkBAIC03
MTcsNyArNzE3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVu
Y0ZpbHRlcihFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBjYWxs
KGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIGFwcGx5VGhpcywgZWFjaEFyZ3Vt
ZW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQudG9Cb29sZWFuKGV4ZWMpKQotICAgICAgICAgICAg
cmVzdWx0QXJyYXktPnB1dChleGVjLCBmaWx0ZXJJbmRleCsrLCB2KTsKKyAgICAgICAgICAgIHJl
c3VsdEFycmF5LT5wdXRWaXJ0dWFsKGV4ZWMsIGZpbHRlckluZGV4KyssIHYpOwogICAgIH0KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdEFycmF5KTsKIH0KQEAgLTc1Miw3ICs3NTIs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jTWFwKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgICAgIGNhY2hlZENhbGwuc2V0QXJndW1lbnQoMSwganNOdW1i
ZXIoaykpOwogICAgICAgICAgICAgY2FjaGVkQ2FsbC5zZXRBcmd1bWVudCgyLCB0aGlzT2JqKTsK
IAotICAgICAgICAgICAgcmVzdWx0QXJyYXktPkpTQXJyYXk6OnB1dChleGVjLCBrLCBjYWNoZWRD
YWxsLmNhbGwoKSk7CisgICAgICAgICAgICBKU0FycmF5OjpwdXQocmVzdWx0QXJyYXksIGV4ZWMs
IGssIGNhY2hlZENhbGwuY2FsbCgpKTsKICAgICAgICAgfQogICAgIH0KICAgICBmb3IgKDsgayA8
IGxlbmd0aCAmJiAhZXhlYy0+aGFkRXhjZXB0aW9uKCk7ICsraykgewpAQCAtNzczLDcgKzc3Myw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNNYXAoRXhlY1N0
YXRlKiBleGVjKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIAogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGNhbGwoZXhlYywgZnVuY3Rpb24sIGNh
bGxUeXBlLCBjYWxsRGF0YSwgYXBwbHlUaGlzLCBlYWNoQXJndW1lbnRzKTsKLSAgICAgICAgcmVz
dWx0QXJyYXktPnB1dChleGVjLCBrLCByZXN1bHQpOworICAgICAgICByZXN1bHRBcnJheS0+cHV0
VmlydHVhbChleGVjLCBrLCByZXN1bHQpOwogICAgIH0KIAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0QXJyYXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QWN0aXZhdGlvbi5jcHAKaW5kZXggOTBmOTExMDk0NGUxNDE0NTIxM2QzZDBlOWU1ZGMyMTM2ZWRj
MzZhOC4uNzliZDZhMTY5NTIyM2ZjNDdiNjMxMTJjZGYxN2VlM2U4OTQ4YjEyNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC0xNjksNyAr
MTY5LDcgQEAgYm9vbCBKU0FjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LXZvaWQgSlNBY3RpdmF0aW9uOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3Zv
aWQgSlNBY3RpdmF0aW9uOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAppbmRleCA3YmVk
MjlmZDMwYzBiNTZmYzIyN2NlMzhmNjIzYjA5YjkxYzEzM2NiLi44MjEwMGUwNWEzMjUzZjkzNDVk
MzNkNmNkNTRhMTJjNjNiMDc4NWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FjdGl2YXRpb24uaApAQCAtNjUsNyArNjUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJh
dGlvbk1vZGUpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFs
IHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwg
UHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAK
ICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggMjE3M2ZmMTZkODRhM2U1ZTk1YzBi
NTRlYTY0Zjg0YWRhMTUxYzQxNC4uMjgyNWEwYzk0ZmFmZjNhYzM1ZTY2N2ZmMDk0YjMzOTRmYzZj
NWY1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTMz
NCw3ICszMzQsNyBAQCBib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcgogICAgIHJldHVybiBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRv
cik7CiB9CiAKLXZvaWQgSlNBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
Cit2b2lkIEpTQXJyYXk6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkK
IHsKICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CkBA
IC0zNjMsNyArMzYzLDcgQEAgdm9pZCBKU0FycmF5OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwKICAgICBKU09iamVjdDo6
cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCi12
b2lkIEpTQXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFs
dWUpCit2b2lkIEpTQXJyYXk6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBp
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIHB1dCh0aGlzLCBleGVjLCBpLCB2YWx1ZSk7CiB9CkBA
IC00MDYsNyArNDA2LDcgQEAgTkVWRVJfSU5MSU5FIHZvaWQgSlNBcnJheTo6cHV0U2xvd0Nhc2Uo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHUKICAgICBpZiAoaSA+PSBN
SU5fU1BBUlNFX0FSUkFZX0lOREVYKSB7CiAgICAgICAgIGlmIChpID4gTUFYX0FSUkFZX0lOREVY
KSB7CiAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgIHB1dChl
eGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpLCB2YWx1ZSwgc2xvdCk7CisgICAgICAgICAg
ICBwdXRWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaSksIHZhbHVlLCBzbG90
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC03ODEsNyArNzgxLDcgQEAg
dm9pZCBKU0FycmF5OjpwdXNoKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKICAgICBB
cnJheVN0b3JhZ2UqIHN0b3JhZ2UgPSBtX3N0b3JhZ2U7CiAKICAgICBpZiAoVU5MSUtFTFkoc3Rv
cmFnZS0+bV9sZW5ndGggPT0gMHhGRkZGRkZGRnUpKSB7Ci0gICAgICAgIHB1dChleGVjLCBzdG9y
YWdlLT5tX2xlbmd0aCwgdmFsdWUpOworICAgICAgICBwdXRWaXJ0dWFsKGV4ZWMsIHN0b3JhZ2Ut
Pm1fbGVuZ3RoLCB2YWx1ZSk7CiAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VF
cnJvcihleGVjLCAiSW52YWxpZCBhcnJheSBsZW5ndGgiKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC04MzUsNyArODM1LDcgQEAgdm9pZCBKU0FycmF5OjpzaGlmdENvdW50KEV4ZWNTdGF0
ZSogZXhlYywgaW50IGNvdW50KQogICAgICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KHRo
aXMpOwogICAgICAgICAgICAgICAgIEpTVmFsdWUgcCA9IHByb3RvdHlwZSgpOwogICAgICAgICAg
ICAgICAgIGlmICgoIXAuaXNOdWxsKCkpICYmIChhc09iamVjdChwKS0+Z2V0UHJvcGVydHlTbG90
KGV4ZWMsIGksIHNsb3QpKSkKLSAgICAgICAgICAgICAgICAgICAgcHV0KGV4ZWMsIGksIHNsb3Qu
Z2V0VmFsdWUoZXhlYywgaSkpOworICAgICAgICAgICAgICAgICAgICBwdXRWaXJ0dWFsKGV4ZWMs
IGksIHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAK
QEAgLTg4NCw3ICs4ODQsNyBAQCB2b2lkIEpTQXJyYXk6OnVuc2hpZnRDb3VudChFeGVjU3RhdGUq
IGV4ZWMsIGludCBjb3VudCkKICAgICAgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlz
KTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIHAgPSBwcm90b3R5cGUoKTsKICAgICAgICAgICAg
ICAgICBpZiAoKCFwLmlzTnVsbCgpKSAmJiAoYXNPYmplY3QocCktPmdldFByb3BlcnR5U2xvdChl
eGVjLCBpLCBzbG90KSkpCi0gICAgICAgICAgICAgICAgICAgIHB1dChleGVjLCBpLCBzbG90Lmdl
dFZhbHVlKGV4ZWMsIGkpKTsKKyAgICAgICAgICAgICAgICAgICAgcHV0VmlydHVhbChleGVjLCBp
LCBzbG90LmdldFZhbHVlKGV4ZWMsIGkpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAppbmRleCBkYmZjMTcxMTQy
NThhMTM3ODIxODQzY2I5NTc4YjNhOWNkZDE2ZDM4Li41MzVjYzYzZTk5ZDVjNmM4MTZhNTE0YjMy
NGZjOTA1ZmI2NjA5ZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5o
CkBAIC05OSw3ICs5OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICAgICAgdmlydHVh
bCB2b2lkIHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOyAv
LyBGSVhNRTogTWFrZSBwcm90ZWN0ZWQgYW5kIGFkZCBzZXRJdGVtLgorICAgICAgICB2aXJ0dWFs
IHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUpOyAvLyBGSVhNRTogTWFrZSBwcm90ZWN0ZWQgYW5kIGFkZCBzZXRJdGVtLgogICAgICAgICBz
dGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlKTsKIAogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBDbGFzc0lu
Zm8gc19pbmZvOwpAQCAtMTcxLDcgKzE3MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJv
dGVjdGVkOgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3Zl
cnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHko
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAppbmRleCA4YWI0NzI2ZTNlYTFm
NWY5MTAwZjBiNDA2MjFmMzE0NzdiZDYzOTZhLi41MDczNTQ0MjUyNzNmYTE3M2I3YWNmYzM5OTg3
NTA0ZThlNjgxNzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0J5dGVBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRl
QXJyYXkuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvCiAgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgSWRl
bnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCBzbG90KTsKIH0KIAotdm9pZCBKU0J5
dGVBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIEpTQnl0ZUFy
cmF5OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpAQCAtMTE0LDcgKzEx
NCw3IEBAIHZvaWQgSlNCeXRlQXJyYXk6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOCiAgICAgSlNPYmplY3Q6OnB1dCh0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAotdm9pZCBKU0J5dGVB
cnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlKQordm9pZCBKU0J5dGVBcnJheTo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBwdXQodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCeXRlQXJyYXkuaAppbmRleCA0MGYwYWExYTdiN2E0YWU2ZjUzMDI2NTQyZDE3OTQ1YTY1
NTFkZjEwLi5mZWU1NGU4ZGFmOWNhMmIwYTVjZTVlOTU2ZmI3MTY3NmE2YjlmZmExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKQEAgLTkzLDkgKzkzLDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlT
bG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2Vs
bCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVl
LCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlND
ZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1
ZSk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBF
eGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGwuY3BwCmluZGV4IDg5NzNkYzMwMDQ0ZmJmZjc4ZjBmMDYzNjIzOGI5ZjhiZTM5ZTk3OTEu
LjYwODM1YThiMzNlMTdmYzIxMjg4MWI1ZmIwMWI3MWVlZDE4ZTZkMTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcApAQCAtMTAzLDI0ICsxMDMsMjQgQEAgYm9vbCBK
U0NlbGw6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
dW5zaWduZWQgaWRlbnRpZmkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBKU0NlbGw6OnB1
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgSlNDZWxsOjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1
ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBpZGVudGlm
aWVyLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHZvaWQgSlNDZWxsOjpwdXQoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBjZWxsLT50b09iamVjdChleGVjLCBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5wdXQoZXhlYywgaWRlbnRpZmllciwgdmFsdWUs
IHNsb3QpOworICAgIGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKSktPnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllciwgdmFsdWUsIHNsb3QpOwogfQogCi12
b2lkIEpTQ2VsbDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllciwgSlNW
YWx1ZSB2YWx1ZSkKK3ZvaWQgSlNDZWxsOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5z
aWduZWQgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBwdXQodGhpcywgZXhlYywg
aWRlbnRpZmllciwgdmFsdWUpOwogfQogCiB2b2lkIEpTQ2VsbDo6cHV0KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlKQogewot
ICAgIGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnB1
dChleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSk7CisgICAgY2VsbC0+dG9PYmplY3QoZXhlYywgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0VmlydHVhbChleGVjLCBpZGVudGlmaWVyLCB2
YWx1ZSk7CiB9CiAKIGJvb2wgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCmluZGV4IDIzZjBmZDVjMGZhZjc1NDlmZTc2MDhlMGU0ZWIwZjUzZjMyMDZiZTcu
LmUzMWExZWJiZDY3YTNhZDg0Y2NjYTM1OTZiNzZiNzNiOGU1NDFhN2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC05MCw5ICs5MCw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAvLyBPYmplY3Qgb3BlcmF0aW9ucywgd2l0aCB0aGUgdG9PYmplY3Qgb3BlcmF0
aW9uIGluY2x1ZGVkLgogICAgICAgICBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0
OwogICAgICAgICBjb25zdCBNZXRob2RUYWJsZSogbWV0aG9kVGFibGUoKSBjb25zdDsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0
VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQ
cm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCA0OTMzMzA0
NmNkNzliODk4NWRkNzVmY2FmZTViMTZjYTdlNDNjYTI1Li45YWMzZDU2NGZlNTk0ODU5YTEyNDdj
MTZhOWRjNzY5M2I1NjYwZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmNwcApAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgSlNGdW5jdGlvbjo6Z2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0
CiAgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2Rl
KTsKIH0KIAotdm9pZCBKU0Z1bmN0aW9uOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKK3ZvaWQgSlNGdW5jdGlvbjo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCA5Yjlk
YTljZTlmYWI3NTQ3MWRhOGNmOWFjMTdmZmJjMGQ3NzNiYzM2Li5kMzE0Y2YxMTc0ZDBhY2ZmYmIz
MjQxZWVkZDUzOWJlYWMwZDY2YjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNGdW5jdGlvbi5oCkBAIC0xNDMsNyArMTQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgYm9vbCBpc0hvc3RGdW5jdGlvbk5vbklubGluZSgpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1
YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggMGZlNDM2ZGI3MmNkMDY0
MGIzODU4MjA1ZmE0MWI5NDAzZThmNDAzMC4uMjI1ZTY3MTYxZDgxN2Y4ODJjYzMwNzk1MDFjYzRk
Y2U3MjhkYTkzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6Omlu
aXQoSlNPYmplY3QqIHRoaXNWYWx1ZSkKICAgICByZXNldChwcm90b3R5cGUoKSk7CiB9CiAKLXZv
aWQgSlNHbG9iYWxPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9p
ZCBKU0dsb2JhbE9iamVjdDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90
KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0K
QEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpwdXRXaXRoQXR0cmlidXRl
cyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcgogCiAgICAgSlNWYWx1
ZSB2YWx1ZUJlZm9yZSA9IGdldERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFt
ZSk7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgSlNWYXJpYWJsZU9iamVjdDo6cHV0
KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIEpTVmFyaWFibGVPYmplY3Q6
OnB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKICAgICBpZiAoIXZh
bHVlQmVmb3JlKSB7CiAgICAgICAgIEpTVmFsdWUgdmFsdWVBZnRlciA9IGdldERpcmVjdChleGVj
LT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGlmICh2YWx1ZUFmdGVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXgg
MTE1ZDVjYjZiZDk1NDgzNzNhYWNlODAxMzhjOGVhZjI2M2EzYTY3OC4uYTdmZTE2Nzc3NGFhZmY0
OGU0MGYxYTQxYjgzOGQzZTgzMmVmMTNiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xODQsNyArMTg0LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzT3du
UHJvcGVydHlGb3JXcml0ZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJik7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCB2b2lk
IHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCmluZGV4IGUxNGE2OGJkOTRm
YTE0ZWUwY2Q2NGQwZjM0MjdhYTJjYzQ2ZGI5ZDkuLjM3ODdjOTQ5ZTFhOGQ0MzQ5YzRkMmVkOWI0
NTFjM2ExYzRjZDA2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Tm90QW5PYmplY3QuY3BwCkBAIC04Niw3ICs4Niw3IEBAIGJvb2wgSlNOb3RBbk9iamVjdDo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYs
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEpTTm90QW5PYmplY3Q6OnB1dChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgSlNOb3RBbk9iamVjdDo6cHV0VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywgaWRlbnRpZmll
ciwgdmFsdWUsIHNsb3QpOwogfQpAQCAtOTYsNyArOTYsNyBAQCB2b2lkIEpTTm90QW5PYmplY3Q6
OnB1dChKU0NlbGwqLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImICwgSlNWYWx1
ZSwgUAogICAgIEFTU0VSVF9VTlVTRUQoZXhlYywgZXhlYy0+aGFkRXhjZXB0aW9uKCkpOwogfQog
Ci12b2lkIEpTTm90QW5PYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpT
VmFsdWUgdmFsdWUpCit2b2lkIEpTTm90QW5PYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIHB1dCh0aGlzLCBleGVjLCBp
LCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2Jq
ZWN0LmgKaW5kZXggYjhmMGZhYTg1NjIyNjIzYzIwNzljOWM5YzcxMzdkN2Q3YjI4NTFmNy4uMTZh
Mjc2OGRhZmJlOTVkMDI1YTI5OWI4OTQyODVhZTdlYjU3ZWUzNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApAQCAtNzYsMTAgKzc2LDEwIEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKLSAgICAgICAgdmly
dHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0Vmly
dHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0
dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgICAg
IHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCBkM2ZjMzU5OTMxZTAxNjkxMDg3
NWZjODg5Y2JjZmMyODg1YzNjYzNlLi41NzVkMWMxYjM0MTIyMmI4YzU5YTkwNmVhNWZmMjVlMWNj
YzUzOWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNw
cApAQCAtNzE1LDcgKzcxNSw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhK
U1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAgICAgICAgICAgICAgICAgIGlmIChpc0pTQXJyYXkoJm1f
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBhcnJheSkgJiYgYXJyYXktPmNhblNldEluZGV4KGluZGV4U3Rh
Y2subGFzdCgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5LT5zZXRJbmRleChtX2V4
ZWMtPmdsb2JhbERhdGEoKSwgaW5kZXhTdGFjay5sYXN0KCksIGZpbHRlcmVkVmFsdWUpOwogICAg
ICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBhcnJheS0+cHV0
KG1fZXhlYywgaW5kZXhTdGFjay5sYXN0KCksIGZpbHRlcmVkVmFsdWUpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYXJyYXktPnB1dFZpcnR1YWwobV9leGVjLCBpbmRleFN0YWNrLmxhc3QoKSwg
ZmlsdGVyZWRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmICht
X2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNOdWxs
KCk7CkBAIC03NzksNyArNzc5LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxr
KEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRWYWx1ZS5p
c1VuZGVmaW5lZCgpKQogICAgICAgICAgICAgICAgICAgICBvYmplY3QtPmRlbGV0ZVByb3BlcnR5
KG1fZXhlYywgcHJvcCk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICBvYmplY3QtPnB1dChtX2V4ZWMsIHByb3AsIGZpbHRlcmVkVmFsdWUsIHNsb3QpOworICAgICAg
ICAgICAgICAgICAgICBvYmplY3QtPnB1dFZpcnR1YWwobV9leGVjLCBwcm9wLCBmaWx0ZXJlZFZh
bHVlLCBzbG90KTsKICAgICAgICAgICAgICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgICAgICAgICAgICAgIGlu
ZGV4U3RhY2subGFzdCgpKys7CkBAIC04MTAsNyArODEwLDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFs
dWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICB9CiAgICAgSlNPYmplY3Qq
IGZpbmFsSG9sZGVyID0gY29uc3RydWN0RW1wdHlPYmplY3QobV9leGVjKTsKICAgICBQdXRQcm9w
ZXJ0eVNsb3Qgc2xvdDsKLSAgICBmaW5hbEhvbGRlci0+cHV0KG1fZXhlYywgbV9leGVjLT5nbG9i
YWxEYXRhKCkucHJvcGVydHlOYW1lcy0+ZW1wdHlJZGVudGlmaWVyLCBvdXRWYWx1ZSwgc2xvdCk7
CisgICAgZmluYWxIb2xkZXItPnB1dFZpcnR1YWwobV9leGVjLCBtX2V4ZWMtPmdsb2JhbERhdGEo
KS5wcm9wZXJ0eU5hbWVzLT5lbXB0eUlkZW50aWZpZXIsIG91dFZhbHVlLCBzbG90KTsKICAgICBy
ZXR1cm4gY2FsbFJldml2ZXIoZmluYWxIb2xkZXIsIGpzRW1wdHlTdHJpbmcobV9leGVjKSwgb3V0
VmFsdWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAK
aW5kZXggYWFjZWM2ZDQzNzY3MGVhM2ZhMDEwMDNkNzhlYTA3MzNlNDllMGU0ZC4uNjc5NjA3MzY5
ZjI4N2ZmZWFhM2YyMDZiZDJiMDExYzJjYWNhYjYyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyB2b2lkIHRo
cm93U2V0dGVyRXJyb3IoRXhlY1N0YXRlKiBleGVjKQogICAgIHRocm93RXJyb3IoZXhlYywgY3Jl
YXRlVHlwZUVycm9yKGV4ZWMsICJzZXR0aW5nIGEgcHJvcGVydHkgdGhhdCBoYXMgb25seSBhIGdl
dHRlciIpKTsKIH0KIAotdm9pZCBKU09iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCit2b2lkIEpTT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3Qp
OwogfQpAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgSlNPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lCiAgICAgcmV0
dXJuOwogfQogCi12b2lkIEpTT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCit2b2lkIEpTT2JqZWN0OjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQogewog
ICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKIH0KQEAgLTE5OCw3ICsx
OTgsNyBAQCB2b2lkIEpTT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCiB2b2lkIEpTT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBzdGF0aWNfY2FzdDxKU09iamVjdCo+
KGNlbGwpLT5wdXQoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCB2
YWx1ZSwgc2xvdCk7CisgICAgc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihjZWxsKS0+cHV0VmlydHVh
bChleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHZhbHVlLCBzbG90
KTsKIH0KIAogdm9pZCBKU09iamVjdDo6cHV0V2l0aEF0dHJpYnV0ZXMoSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IHVuc2lnbmVkIGF0dHJpYnV0ZXMsIGJvb2wgY2hlY2tSZWFkT25seSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQpAQCAtNzYzLDcgKzc2Myw3IEBAIGJvb2wgSlNPYmplY3Q6OmRlZmluZU93blByb3Bl
cnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lCiAgICAg
ICAgICAgICBpZiAoIWRlc2NyaXB0b3IudmFsdWUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgcHV0
KGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvci52YWx1ZSgpLCBzbG90KTsKKyAgICAgICAg
ICAgIHB1dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLnZhbHVlKCksIHNs
b3QpOwogICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggM2FkNzBjNTBhYWQ2MWFkMzdmY2MyZmE5
YjkwNGE3MGIzN2ZmMzNiMi4uNGQ1ZTQ4NzhhOGFkODcwNWFkMzhkNjdjYWFlYWVjN2RhOWUyMzI5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xMDcsOSAr
MTA3LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAot
ICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lk
IHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSk7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXRXaXRoQXR0cmlidXRlcyhKU0dsb2JhbERhdGEqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIGJvb2wgY2hlY2tS
ZWFkT25seSwgUHV0UHJvcGVydHlTbG90JiBzbG90KTsKQEAgLTgwOSwxMCArODA5LDEwIEBAIGlu
bGluZSBKU1ZhbHVlIEpTVmFsdWU6OmdldChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90CiBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXQoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBpZiAoVU5MSUtFTFkoIWlzQ2VsbCgpKSkgewot
ICAgICAgICBzeW50aGVzaXplT2JqZWN0KGV4ZWMpLT5wdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2
YWx1ZSwgc2xvdCk7CisgICAgICAgIHN5bnRoZXNpemVPYmplY3QoZXhlYyktPnB1dFZpcnR1YWwo
ZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgYXNDZWxsKCktPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAg
ICBhc0NlbGwoKS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsK
IH0KIAogaW5saW5lIHZvaWQgSlNWYWx1ZTo6cHV0RGlyZWN0KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHNsb3QpCkBAIC04MjUsMTAgKzgyNSwxMCBAQCBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXRE
aXJlY3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsCiBp
bmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKFVOTElLRUxZKCFpc0NlbGwoKSkpIHsK
LSAgICAgICAgc3ludGhlc2l6ZU9iamVjdChleGVjKS0+cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUpOworICAgICAgICBzeW50aGVzaXplT2JqZWN0KGV4ZWMpLT5wdXRWaXJ0dWFsKGV4ZWMs
IHByb3BlcnR5TmFtZSwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGFzQ2Vs
bCgpLT5wdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CisgICAgYXNDZWxsKCktPnB1dFZp
cnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CiB9CiAKIEFMV0FZU19JTkxJTkUgdm9p
ZCBKU09iamVjdDo6dmlzaXRDaGlsZHJlbkRpcmVjdChTbG90VmlzaXRvciYgdmlzaXRvcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVj
dC5jcHAKaW5kZXggOGQwZmRhOTAzNzMyMmRmMTczMDY1ZGM2MWNjOTE0ZTUzMDA3YmYwMi4uNzRm
Njk5ZDliOWE5YjE3ODFiYWY3YmEyNDA4NGY0MTA3Y2FjZGYyMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAKQEAgLTQ5
LDcgKzQ5LDcgQEAgSlNPYmplY3QqIEpTU3RhdGljU2NvcGVPYmplY3Q6OnRvVGhpc09iamVjdChF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIGV4ZWMtPmdsb2JhbFRoaXNWYWx1ZSgp
OwogfQogCi12b2lkIEpTU3RhdGljU2NvcGVPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQordm9pZCBKU1N0YXRpY1Njb3BlT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCmluZGV4IGRjMjg3Nzk1ZGQ5ZjE2MDRmNmI1MWYyNDZi
NmNhOTJlZjk4YTE4MDUuLjg1ODViYmU0YmUyN2QyMDI5MTM2Y2YzNDBiM2E1NjFiMzVjODUyYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3Bl
T2JqZWN0LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIEpTQ3sKICAgICAgICAgdmlydHVh
bCBKU09iamVjdCogdG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0
dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2b2lk
IHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVl
LCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0xvb2t1cC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3Vw
LmgKaW5kZXggNzgyZGMwZmJjNzBjODNhOTJhZTEwZjEwNDlhZmZkYzAzMjY5ODgxYy4uOGIwYjhk
OTQ3MjhhYjZkNDJkY2RmODA1MTkyZWQ2NTBmODI2MjU1YiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTG9va3VwLmgKQEAgLTM1Miw3ICszNTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICBpbmxpbmUgdm9pZCBsb29rdXBQdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIGNvbnN0IEhhc2hUYWJsZSogdGFibGUsIFRo
aXNJbXAqIHRoaXNPYmosIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICB7CiAgICAgICAgIGlm
ICghbG9va3VwUHV0PFRoaXNJbXA+KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHRhYmxlLCB0
aGlzT2JqKSkKLSAgICAgICAgICAgIHRoaXNPYmotPlBhcmVudEltcDo6cHV0KGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpOyAvLyBub3QgZm91bmQ6IGZvcndhcmQgdG8gcGFyZW50Cisg
ICAgICAgICAgICBQYXJlbnRJbXA6OnB1dCh0aGlzT2JqLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCBzbG90KTsgLy8gbm90IGZvdW5kOiBmb3J3YXJkIHRvIHBhcmVudAogICAgIH0KIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmNwcAppbmRleCA5OWE1YmIyMjhiZjI3ZWMxYWQ0MWE5ZGI0NDRlMjNlNzVm
ODRmNTdhLi4zMmQ2YTcyN2ZjZmFjMzA5MzI0MWJlODdiNzgxMjljNjE2MzViOTE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKQEAg
LTc1LDcgKzc1LDcgQEAgdm9pZCBPYmplY3RQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqKQogICAgIEFTU0VSVChpbmhlcml0
cygmc19pbmZvKSk7CiB9CiAKLXZvaWQgT2JqZWN0UHJvdG90eXBlOjpwdXQoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgT2JqZWN0UHJvdG90eXBlOjpwdXRWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RQcm90b3R5cGUuaAppbmRleCBlMzkwMDIyZjY3Yzc1NDIwNWJlMzIxZWY3Y2IwOWQ0
NWZkNTVlMTQ4Li5lYWFjMWQxZTgxNTIwOTJmYWM3MGJmZTdjNWY1ZTQ1YWRlOWQ4ODJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAt
NTAsNyArNTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIE9i
amVjdFByb3RvdHlwZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgdmlydHVhbCB2
b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1Zh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmNwcAppbmRleCA0MGQ0OTE0NjQ0Yzk4NjNiYzI0NGMxZDRiMzFkY2JiYWRhMWVjNzAwLi5jMzgw
ZGE0NmM2ZjE4OWRmNGE3MGFhOWMyNzYzOGQzY2U1ZWViNWQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0xNDgsMTQg
KzE0OCwxNCBAQCB2b2lkIFJlZ0V4cE1hdGNoZXNBcnJheTo6ZmlsbEFycmF5SW5zdGFuY2UoRXhl
Y1N0YXRlKiBleGVjKQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPD0gbGFzdE51bVN1YnBh
dHRlcm5zOyArK2kpIHsKICAgICAgICAgaW50IHN0YXJ0ID0gZC0+bGFzdE92ZWN0b3IoKVsyICog
aV07CiAgICAgICAgIGlmIChzdGFydCA+PSAwKQotICAgICAgICAgICAgSlNBcnJheTo6cHV0KGV4
ZWMsIGksIGpzU3Vic3RyaW5nKGV4ZWMsIGQtPmxhc3RJbnB1dCwgc3RhcnQsIGQtPmxhc3RPdmVj
dG9yKClbMiAqIGkgKyAxXSAtIHN0YXJ0KSk7CisgICAgICAgICAgICBKU0FycmF5OjpwdXQodGhp
cywgZXhlYywgaSwganNTdWJzdHJpbmcoZXhlYywgZC0+bGFzdElucHV0LCBzdGFydCwgZC0+bGFz
dE92ZWN0b3IoKVsyICogaSArIDFdIC0gc3RhcnQpKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgSlNBcnJheTo6cHV0KGV4ZWMsIGksIGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgSlNB
cnJheTo6cHV0KHRoaXMsIGV4ZWMsIGksIGpzVW5kZWZpbmVkKCkpOwogICAgIH0KIAogICAgIFB1
dFByb3BlcnR5U2xvdCBzbG90OwotICAgIEpTQXJyYXk6OnB1dChleGVjLCBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkuaW5kZXgsIGpzTnVtYmVyKGQtPmxhc3RPdmVjdG9yKClbMF0pLCBzbG90KTsKLSAg
ICBKU0FycmF5OjpwdXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmlucHV0LCBqc1N0cmlu
ZyhleGVjLCBkLT5pbnB1dCksIHNsb3QpOworICAgIEpTQXJyYXk6OnB1dCh0aGlzLCBleGVjLCBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkuaW5kZXgsIGpzTnVtYmVyKGQtPmxhc3RPdmVjdG9yKClbMF0p
LCBzbG90KTsKKyAgICBKU0FycmF5OjpwdXQodGhpcywgZXhlYywgZXhlYy0+cHJvcGVydHlOYW1l
cygpLmlucHV0LCBqc1N0cmluZyhleGVjLCBkLT5pbnB1dCksIHNsb3QpOwogCiAgICAgZGVsZXRl
IGQ7CiAgICAgc2V0U3ViY2xhc3NEYXRhKDApOwpAQCAtMjkyLDcgKzI5Miw3IEBAIEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNs
b3RCYXNlLCBjb25zdCBJCiAgICAgcmV0dXJuIGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJhc2Up
LT5nZXRSaWdodENvbnRleHQoZXhlYyk7CiB9CiAKLXZvaWQgUmVnRXhwQ29uc3RydWN0b3I6OnB1
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBSZWdFeHBDb25zdHJ1Y3Rvcjo6
cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHB1dCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4IDVlMTMxNzY0ZDQ5
MjViNzBjYjM4NjY3OWM3N2U2YTQwMmEzNjFjNGMuLjMxZTkyMjA1ZDY5MzY0ZjY4MDk1ZDZhODA0
YjEzNDMzNGNhNGIxNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwQ29uc3RydWN0b3IuaApAQCAtNzEsNyArNzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
KTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaAppbmRleCBlNzVkNjIxOTE1ZDI0YTVl
ODZiN2E3NTY0YTkyNWEyNmYwNjkwMTFkLi44YzI5ZDk1NjE2MWFiYTQxZDI0MzVhYzU1NTA0ZGFj
ZTFkZDc3YjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBNYXRjaGVzQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBNYXRjaGVzQXJyYXkuaApAQCAtNzYsNyArNzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIHJldHVybiBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUgdiwgUHV0UHJvcGVydHlTbG90JiBzbG90KQorICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSB2LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiAgICAgICAgIHsKICAgICAgICAgICAg
IHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHYsIHNsb3QpOwogICAgICAgICB9CkBAIC04
OSw3ICs4OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgSlNBcnJheTo6cHV0KHRo
aXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdiwgc2xvdCk7CiAgICAgICAgIH0KICAgICAg
ICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdikKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdikKICAgICAg
ICAgewogICAgICAgICAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdik7CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
CmluZGV4IDY2MGIyZTMwYTU0YjkxYzk5MGNhZGFiNGFhMmY2NDM4MzVjMTk1OGMuLmQ4MDRkZjQ4
YTQ2NTU5MDlkNjY2MjM2M2VhYzE3MGYwNTFiMzA5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIEpTVmFs
dWUgcmVnRXhwT2JqZWN0TGFzdEluZGV4KEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJhc2UsIGNv
bnN0IElkZW50aWZpZXImKQogICAgIHJldHVybiBhc1JlZ0V4cE9iamVjdChzbG90QmFzZSktPmdl
dExhc3RJbmRleCgpOwogfQogCi12b2lkIFJlZ0V4cE9iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmIHNsb3QpCit2b2lkIFJlZ0V4cE9iamVjdDo6cHV0VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0
UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmgKaW5kZXggYzBmODNkNTQyY2JkZWJkOWFlZGJiZDg3NWMwMWJiZmU4YjIwMzIzOS4u
MmVhYjEwY2M5NGY4ZDgzNmNhZWVlMmIzZjk2ZTVlOGU1OTNmMTFiZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTY4LDcgKzY4LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwotICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2lu
Zm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcApp
bmRleCA2ZDU0OGNkNmYxYWY0ZTJjNmRkZTlhZjZmNGZjZmU4Njc3MjJlN2ExLi5lOGZjYzg2MTY4
M2JjODI2YTdjMjk3YzlhYjRkMTlkMWFhZWVmZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgYm9vbCBTdHJp
bmdPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHAKICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCi12b2lkIFN0cmluZ09i
amVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIFN0cmluZ09iamVj
dDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHB1dCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKaW5kZXggODcyYTJjMTMzYjY2YTZkMjE3
YWM5YzliZTU2NDlmODJlNWNjMTE4Yi4uNTZiMzdjYzQ5ODFjOWQ2ODVhYTNiNzUzNzA2NTRkMGU4
NDc4YmNjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0
LmgKQEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAg
c3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVh
bCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmNwcAppbmRleCA4OGZiMmU5MjFhZTdkZmEzYzAzYWM4MDZlMzMyOTdlMzRiZDJlZjFl
Li4xOTQxZjYwNGFiZDg4M2JjM2IyNmFjNzg5YmU0NzU4NjQ3ZTQ4NDI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTgzNyw3
ICs4MzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1Nw
bGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgaWYgKHNlcGFyYXRvclZhbHVlLmlzVW5kZWZp
bmVkKCkpIHsKICAgICAgICAgICAgIC8vIGEuIENhbGwgdGhlIFtbRGVmaW5lT3duUHJvcGVydHld
XSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFyZ3VtZW50cyAiMCIsCiAgICAgICAgICAgICAv
LyAgICBQcm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFMsIFtbV3JpdGFibGVdXTogdHJ1
ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFs
c2UuCi0gICAgICAgICAgICByZXN1bHQtPnB1dChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShl
eGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7CisgICAgICAgICAgICByZXN1bHQtPnB1dFZpcnR1YWwo
ZXhlYywgMCwganNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOwogICAg
ICAgICAgICAgLy8gYi4gUmV0dXJuIEEuCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CiAgICAgICAgIH0KQEAgLTg1MCw3ICs4NTAsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgICAgICAgIC8vICAgIFByb3BlcnR5IERlc2NyaXB0b3Ige1tbVmFsdWVdXTogUywgW1tXcml0
YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1
ZX0sIGFuZCBmYWxzZS4KICAgICAgICAgICAgIC8vIGQuIFJldHVybiBBLgogICAgICAgICAgICAg
aWYgKHJlZy0+bWF0Y2goKmdsb2JhbERhdGEsIGlucHV0LCAwKSA8IDApCi0gICAgICAgICAgICAg
ICAgcmVzdWx0LT5wdXQoZXhlYywgMCwganNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVl
LCBpbnB1dCkpOworICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0VmlydHVhbChleGVjLCAwLCBq
c1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7CiAgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAgICAgIH0KIApAQCAtODgxLDcgKzg4
MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQo
RXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgLy8gICAgdGhyb3VnaCBxIChleGNsdXNpdmUp
LgogICAgICAgICAgICAgLy8gMi4gQ2FsbCB0aGUgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVy
bmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzIFRvU3RyaW5nKGxlbmd0aEEpLAogICAgICAg
ICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1ZV1dOiBULCBbW1dyaXRhYmxl
XV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwg
YW5kIGZhbHNlLgotICAgICAgICAgICAgcmVzdWx0LT5wdXQoZXhlYywgcmVzdWx0TGVuZ3RoLCBq
c1N1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRpb24sIG1hdGNoUG9zaXRpb24gLSBwb3NpdGlv
bikpOworICAgICAgICAgICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIHJlc3VsdExlbmd0aCwg
anNTdWJzdHJpbmcoZXhlYywgaW5wdXQsIHBvc2l0aW9uLCBtYXRjaFBvc2l0aW9uIC0gcG9zaXRp
b24pKTsKICAgICAgICAgICAgIC8vIDMuIEluY3JlbWVudCBsZW5ndGhBIGJ5IDEuCiAgICAgICAg
ICAgICAvLyA0LiBJZiBsZW5ndGhBID09IGxpbSwgcmV0dXJuIEEuCiAgICAgICAgICAgICBpZiAo
KytyZXN1bHRMZW5ndGggPT0gbGltaXQpCkBAIC05MDAsNyArOTAwLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgICAgICAgICAgICAgLy8gICBUb1N0cmluZyhsZW5ndGhBKSwgUHJvcGVydHkgRGVzY3JpcHRv
ciB7W1tWYWx1ZV1dOiBjYXBbaV0sIFtbV3JpdGFibGVdXToKICAgICAgICAgICAgICAgICAvLyAg
IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5k
IGZhbHNlLgogICAgICAgICAgICAgICAgIGludCBzdWIgPSBvdmVjdG9yW2kgKiAyXTsKLSAgICAg
ICAgICAgICAgICByZXN1bHQtPnB1dChleGVjLCByZXN1bHRMZW5ndGgsIHN1YiA8IDAgPyBqc1Vu
ZGVmaW5lZCgpIDoganNTdWJzdHJpbmcoZXhlYywgaW5wdXQsIHN1Yiwgb3ZlY3RvcltpICogMiAr
IDFdIC0gc3ViKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIHJl
c3VsdExlbmd0aCwgc3ViIDwgMCA/IGpzVW5kZWZpbmVkKCkgOiBqc1N1YnN0cmluZyhleGVjLCBp
bnB1dCwgc3ViLCBvdmVjdG9yW2kgKiAyICsgMV0gLSBzdWIpKTsKICAgICAgICAgICAgICAgICAv
LyBjIEluY3JlbWVudCBsZW5ndGhBIGJ5IDEuCiAgICAgICAgICAgICAgICAgLy8gZCBJZiBsZW5n
dGhBID09IGxpbSwgcmV0dXJuIEEuCiAgICAgICAgICAgICAgICAgaWYgKCsrcmVzdWx0TGVuZ3Ro
ID09IGxpbWl0KQpAQCAtOTE5LDcgKzkxOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBpZiAoc2Vw
YXJhdG9yVmFsdWUuaXNVbmRlZmluZWQoKSkgewogICAgICAgICAgICAgLy8gYS4gIENhbGwgdGhl
IFtbRGVmaW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFyZ3VtZW50
cyAiMCIsCiAgICAgICAgICAgICAvLyAgICAgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1ZV1d
OiBTLCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3Vy
YWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgotICAgICAgICAgICAgcmVzdWx0LT5wdXQoZXhlYywg
MCwganNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOworICAgICAgICAg
ICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRo
aXNWYWx1ZSwgaW5wdXQpKTsKICAgICAgICAgICAgIC8vIGIuICBSZXR1cm4gQS4KICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICAgICAgfQpAQCAtOTMyLDcg
KzkzMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Bs
aXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3JpcHRv
ciB7W1tWYWx1ZV1dOiBTLCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVl
LCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgogICAgICAgICAgICAgLy8gZC4g
UmV0dXJuIEEuCiAgICAgICAgICAgICBpZiAoIXNlcGFyYXRvci5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICAgICAgcmVzdWx0LT5wdXQoZXhlYywgMCwganNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhp
c1ZhbHVlLCBpbnB1dCkpOworICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0VmlydHVhbChleGVj
LCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7CiAgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAgICAgIH0KIApAQCAtOTQz
LDcgKzk0Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5j
U3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgQVNTRVJUKGxpbWl0KTsKIAogICAg
ICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0KGV4ZWMsIHBvc2l0aW9u
LCBqc1NpbmdsZUNoYXJhY3RlclN1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRpb24pKTsKKyAg
ICAgICAgICAgICAgICByZXN1bHQtPnB1dFZpcnR1YWwoZXhlYywgcG9zaXRpb24sIGpzU2luZ2xl
Q2hhcmFjdGVyU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBwb3NpdGlvbikpOwogICAgICAgICAgICAg
fSB3aGlsZSAoKytwb3NpdGlvbiA8IGxpbWl0KTsKIAogICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZXN1bHQpOwpAQCAtOTYwLDcgKzk2MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAg
ICAgICAgLy8gICAgdGhyb3VnaCBxIChleGNsdXNpdmUpLgogICAgICAgICAgICAgLy8gMi4gQ2Fs
bCB0aGUgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJn
dW1lbnRzIFRvU3RyaW5nKGxlbmd0aEEpLAogICAgICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVz
Y3JpcHRvciB7W1tWYWx1ZV1dOiBULCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1d
OiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgotICAgICAgICAgICAg
cmVzdWx0LT5wdXQoZXhlYywgcmVzdWx0TGVuZ3RoLCBqc1N1YnN0cmluZyhleGVjLCBpbnB1dCwg
cG9zaXRpb24sIG1hdGNoUG9zaXRpb24gLSBwb3NpdGlvbikpOworICAgICAgICAgICAgcmVzdWx0
LT5wdXRWaXJ0dWFsKGV4ZWMsIHJlc3VsdExlbmd0aCwganNTdWJzdHJpbmcoZXhlYywgaW5wdXQs
IHBvc2l0aW9uLCBtYXRjaFBvc2l0aW9uIC0gcG9zaXRpb24pKTsKICAgICAgICAgICAgIC8vIDMu
IEluY3JlbWVudCBsZW5ndGhBIGJ5IDEuCiAgICAgICAgICAgICAvLyA0LiBJZiBsZW5ndGhBID09
IGxpbSwgcmV0dXJuIEEuCiAgICAgICAgICAgICBpZiAoKytyZXN1bHRMZW5ndGggPT0gbGltaXQp
CkBAIC05NzYsNyArOTc2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQ
cm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgLy8gICAgIHRocm91Z2ggcyAoZXhj
bHVzaXZlKS4KICAgICAvLyAxNS4gQ2FsbCB0aGUgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVy
bmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzIFRvU3RyaW5nKGxlbmd0aEEpLCBQcm9wZXJ0
eSBEZXNjcmlwdG9yCiAgICAgLy8gICAgIHtbW1ZhbHVlXV06IFQsIFtbV3JpdGFibGVdXTogdHJ1
ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFs
c2UuCi0gICAgcmVzdWx0LT5wdXQoZXhlYywgcmVzdWx0TGVuZ3RoKyssIGpzU3Vic3RyaW5nKGV4
ZWMsIGlucHV0LCBwb3NpdGlvbiwgaW5wdXQubGVuZ3RoKCkgLSBwb3NpdGlvbikpOworICAgIHJl
c3VsdC0+cHV0VmlydHVhbChleGVjLCByZXN1bHRMZW5ndGgrKywganNTdWJzdHJpbmcoZXhlYywg
aW5wdXQsIHBvc2l0aW9uLCBpbnB1dC5sZW5ndGgoKSAtIHBvc2l0aW9uKSk7CiAKICAgICAvLyAx
Ni4gUmV0dXJuIEEuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9DaGFuZ2VMb2cKaW5kZXggMGU3MzUwZjNiMGMyY2Y1ZDZiYjdlMjdhMmYxMDFmOTcwMDZl
MjQ1NS4uYzQ0NTMxZjk2OWU5NGQxNWYxMjYzMmVjMjk4ZDk2MDk1NGFmM2RkZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTAtMTIgIE1hcmsgSGFobmVu
YmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgdmlydHVhbCBw
dXQgdG8gcHV0VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njk4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW5hbWVkIHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRvIHB1dFZpcnR1YWwgaW4g
cHJlcHJhdGlvbiBmb3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGljIHB1dCB0byB0aGUgTWV0
aG9kVGFibGUgaW4gQ2xhc3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAgY29tcGlsZXIgZ2V0cyBt
YWQgaWYgdGhlIHZpcnR1YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZlIHRoZSBzYW1lIAorICAg
ICAgICBuYW1lLgorCisgICAgICAgICogSlNWYWx1ZVdyYXBwZXIuY3BwOgorICAgICAgICAoSlNW
YWx1ZVdyYXBwZXI6OkpTT2JqZWN0U2V0UHJvcGVydHkpOgorICAgICAgICAqIFVzZXJPYmplY3RJ
bXAuY3BwOgorICAgICAgICAoVXNlck9iamVjdEltcDo6cHV0VmlydHVhbCk6CisgICAgICAgICog
VXNlck9iamVjdEltcC5oOgorCiAyMDExLTEwLTEwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVu
YmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGdldENhbGxEYXRhVmlydHVhbCBtZXRo
b2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNWYWx1ZVdyYXBwZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTVmFsdWVXcmFwcGVyLmNwcAppbmRleCBkYzdlZTNm
OWIzOTg3YmZiMTUzMzUyOTcxZTRlYzEzMDBkMTg5YTYyLi5hZmY5ZmYzYzI3N2I2ZGRlNDMwNDFi
MzczZGExNDJkZTZlNDczZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNW
YWx1ZVdyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1ZhbHVlV3JhcHBl
ci5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIEpTVmFsdWVXcmFwcGVyOjpKU09iamVjdFNl
dFByb3BlcnR5KHZvaWQgKmRhdGEsIENGU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSgogICAgICAg
ICBKU1ZhbHVlIHZhbHVlID0gSlNPYmplY3RLSlNWYWx1ZSgoSlNVc2VyT2JqZWN0Kilqc1ZhbHVl
KTsKICAgICAgICAgSlNPYmplY3QgKm9ialZhbHVlID0gcHRyLT5HZXRWYWx1ZSgpLnRvT2JqZWN0
KGV4ZWMpOwogICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgb2JqVmFsdWUt
PnB1dChleGVjLCBDRlN0cmluZ1RvSWRlbnRpZmllcihwcm9wZXJ0eU5hbWUsIGV4ZWMpLCB2YWx1
ZSwgc2xvdCk7CisgICAgICAgIG9ialZhbHVlLT5wdXRWaXJ0dWFsKGV4ZWMsIENGU3RyaW5nVG9J
ZGVudGlmaWVyKHByb3BlcnR5TmFtZSwgZXhlYyksIHZhbHVlLCBzbG90KTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAppbmRleCA2Zjk5YTRjODQ2NmI0
YTU1NTZkOWE3MDU0NjA2ZGRlN2JhM2NlOTVhLi44Y2VlMWFlYmQ2MTc3MThlNDBlY2VjNDAxOWUz
NWMwMmQzMzZlZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVj
dEltcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCkBA
IC0xNTIsNyArMTUyLDcgQEAgYm9vbCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW4KICAgICByZXR1cm4gSlNP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQogCi12b2lkIFVzZXJPYmplY3RJbXA6OnB1dChFeGVjU3RhdGUgKmV4ZWMsIGNv
bnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQordm9pZCBVc2VyT2JqZWN0SW1wOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSAqZXhl
YywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmpl
Y3RJbXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKaW5kZXggYWNl
MTkzMzc2Njc3NTMwZWUyZjYxMzljMTBkNmFmN2UzYjUyNWRjNC4uODVmZWM0MDA5MTUzYjAxYmUz
ZDRkNTAwODNmMTExZTU1Yzk2NWY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVl
L1VzZXJPYmplY3RJbXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdElt
cC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEpTVmFsdWUgY2FsbEFz
RnVuY3Rpb24oRXhlY1N0YXRlICpleGVjKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChF
eGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
IAogICAgIEpTVmFsdWUgdG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZl
VHlwZSBwcmVmZXJyZWRUeXBlID0gTm9QcmVmZXJlbmNlKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZWY4ODZiMjA3Njg5YzAwNzg0ZGU4ZWIyZjdlZTFhYjA0NzRhZDRlLi5kMTU1YTEwMjk5ZmI1ZWJj
ZmExNTFkZDliZDNiODMzNmY2NmNkMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIw
MTEtMTAtMTIgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW5hbWUgdmlydHVhbCBwdXQgdG8gcHV0VmlydHVhbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4NTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgUmVu
YW1lZCB2aXJ0dWFsIHZlcnNpb25zIG9mIHB1dCB0byBwdXRWaXJ0dWFsIGluIHByZXByYXRpb24g
Zm9yIAorICAgICAgICBhZGRpbmcgdGhlIHN0YXRpYyBwdXQgdG8gdGhlIE1ldGhvZFRhYmxlIGlu
IENsYXNzSW5mbyBzaW5jZSB0aGUgCisgICAgICAgIGNvbXBpbGVyIGdldHMgbWFkIGlmIHRoZSB2
aXJ0dWFsIGFuZCBzdGF0aWMgdmVyc2lvbnMgaGF2ZSB0aGUgc2FtZSAKKyAgICAgICAgbmFtZS4K
KworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
V2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpwdXRWaXJ0
dWFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xv
Y2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTG9jYXRpb246OnB1dERlbGVn
YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cnVudGltZU9iamVjdEN1c3RvbVB1dCk6CisgICAgICAgICog
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lRGVzZXJpYWxpemVyOjpwdXRQcm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9XZWJTY3JpcHRPYmplY3QubW06CisgICAgICAgICgtW1dlYlNjcmlwdE9iamVjdCBzZXRWYWx1
ZTpmb3JLZXk6XSk6CisgICAgICAgICgtW1dlYlNjcmlwdE9iamVjdCBzZXRXZWJTY3JpcHRWYWx1
ZUF0SW5kZXg6dmFsdWU6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iajo6cHV0VmlydHVhbCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJy
aWRnZS9OUF9qc29iamVjdC5jcHA6CisgICAgICAgIChfTlBOX1NldFByb3BlcnR5KToKKyAgICAg
ICAgKiBicmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbToKKyAgICAgICAgKEphdmFKU09iamVjdDo6
c2V0TWVtYmVyKToKKyAgICAgICAgKEphdmFKU09iamVjdDo6c2V0U2xvdCk6CisgICAgICAgICog
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1w
OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwOgorICAg
ICAgICAoSlNDOjpCaW5kaW5nczo6UXRJbnN0YW5jZTo6cHV0KToKKyAgICAgICAgKiBicmlkZ2Uv
cXQvcXRfcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpjb252ZXJ0UVZhcmlh
bnRUb1ZhbHVlKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAg
IChKU0M6OlJ1bnRpbWVBcnJheTo6cHV0VmlydHVhbCk6CisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfYXJyYXkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6cHV0VmlydHVhbCk6CisgICAgICAgICog
YnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisgICAgICAgICogYnJpZGdlL3Rlc3RxdGJpbmRpbmdz
LmNwcDoKKyAgICAgICAgKG1haW4pOgorCiAyMDExLTEwLTEyICBKaWFuIExpICA8amlhbmxpQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBTdXBwb3J0IHBhc3Npbmcgb3B0aW9uYWwgZmlsZW5hbWUg
d2hlbiBGb3JtRGF0YS5hcHBlbmQoKSBpcyB1c2VkIHRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IDIwM2M3YTYyMzJjY2M4OTVkNDdhMjMyZjAyZmMxNmFmNmVlNGU1NDIuLjFkYTc2M2ZkZWM1OThi
ZTc4MTkyZmJiMmRhZTcyMjM4NTkyM2ZhYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNDEs
NyArMTQxLDcgQEAgX19aTjdXZWJDb3JlMTBDbGllbnRSZWN0QzFFdgogX19aTjdXZWJDb3JlMTBD
cmVkZW50aWFsQzFFUktOM1dURjZTdHJpbmdFUzRfTlNfMjFDcmVkZW50aWFsUGVyc2lzdGVuY2VF
CiBfX1pON1dlYkNvcmUxMENyZWRlbnRpYWxDMUV2CiBfX1pON1dlYkNvcmUxMEZsb2F0UG9pbnRD
MUVSS05TXzhJbnRQb2ludEUKLV9fWk43V2ViQ29yZTEwSlNEb2N1bWVudDNwdXRFUE4zSlNDOUV4
ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0
eVNsb3RFCitfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQxMHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNT
dGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNs
b3RFCiBfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2c19pbmZvRQogX19aTjdXZWJDb3JlMTBNb3Vz
ZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0cklOU185
RE9NV2luZG93RUVFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEVpTlM1X0lOU180Tm9kZUVFRQog
X19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50QzFFUktOM1dURjEyQXRvbWljU3RyaW5nRWJiTlMxXzEw
UGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdl
dEVFRU5TNV9JTlNfOUNsaXBib2FyZEVFRWIKQEAgLTgzMCw3ICs4MzAsNyBAQCBfX1pON1dlYkNv
cmU2RWRpdG9yNmluZGVudEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yN0NvbW1hbmRDMUV2CiBfX1pO
N1dlYkNvcmU2RWRpdG9yN2NvbW1hbmRFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU2RWRp
dG9yN291dGRlbnRFdgotX19aTjdXZWJDb3JlNkpTTm9kZTNwdXRFUE4zSlNDOUV4ZWNTdGF0ZUVS
S05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFCitf
X1pON1dlYkNvcmU2SlNOb2RlMTBwdXRWaXJ0dWFsRVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJ
ZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjdXZWJD
b3JlNkpTTm9kZTZzX2luZm9FCiBfX1pON1dlYkNvcmU2UmVnaW9uNXVuaXRlRVJLUzBfCiBfX1pO
N1dlYkNvcmU2UmVnaW9uOHN1YnRyYWN0RVJLUzBfCkBAIC0xMDQ0LDcgKzEwNDQsNyBAQCBfX1pO
N1dlYkNvcmU5SFRNTE5hbWVzOHZpZGVvVGFnRQogX19aTjdXZWJDb3JlOUhUTUxOYW1lczlpZnJh
bWVUYWdFCiBfX1pON1dlYkNvcmU5SFRNTE5hbWVzOW9iamVjdFRhZ0UKIF9fWk43V2ViQ29yZTlI
VE1MTmFtZXM5c2NyaXB0VGFnRQotX19aTjdXZWJDb3JlOUpTRWxlbWVudDNwdXRFUE4zSlNDOUV4
ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0
eVNsb3RFCitfX1pON1dlYkNvcmU5SlNFbGVtZW50MTBwdXRWaXJ0dWFsRVBOM0pTQzlFeGVjU3Rh
dGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJvcGVydHlTbG90
RQogX19aTjdXZWJDb3JlOUpTRWxlbWVudDZzX2luZm9FCiBfX1pON1dlYkNvcmU5UGFnZUNhY2hl
MTFzZXRDYXBhY2l0eUVpCiBfX1pON1dlYkNvcmU5UGFnZUNhY2hlMjdyZWxlYXNlQXV0b3JlbGVh
c2VkUGFnZXNOb3dFdgpAQCAtMTY4Nyw2ICsxNjg3LDcgQEAgX19aTjNKU0MxM1J1bnRpbWVNZXRo
b2QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRp
ZmkKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kNnNfaW5mb0UKIF9fWk4zSlNDMTNSdW50aW1lTWV0
aG9kQzJFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFUk4zV1RGNlZlY3RvcklQ
TlNfOEJpbmRpbmdzNk1ldGhvZEVMbTBFRUUKIF9fWk4zSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0
RDFFdgorX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxMHB1dFZpcnR1YWxFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlT
bG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxMWdldENhbGxEYXRhRVBOU182
SlNDZWxsRVJOU184Q2FsbERhdGFFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE0
ZGVsZXRlUHJvcGVydHlFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pT
QzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE0ZmluaXNoQ3JlYXRpb25FUE5TXzE0SlNHbG9iYWxP
YmplY3RFCkBAIC0xNjk0LDcgKzE2OTUsNiBAQCBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9i
amVjdDE2Z2V0Q29uc3RydWN0RGF0YUVSTlNfMTNDb25zdHJ1Y3REYXRhRQogX19aTjNKU0M4Qmlu
ZGluZ3MxM1J1bnRpbWVPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhCaW5kaW5nczEz
UnVudGltZU9iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQ
cm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDOEJpbmRpbmdz
MTNSdW50aW1lT2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVF
UktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQotX19aTjNKU0M4Qmlu
ZGluZ3MxM1J1bnRpbWVPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNS
dW50aW1lT2JqZWN0NnNfaW5mb0UKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0QzJF
UE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFTjNXVEYx
MFBhc3NSZWZQdHJJTlMwXzhJbnN0YW5jZUVFRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVP
YmplY3REMkV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAKaW5kZXggMDRiNWI5NzY1MjdhNGZkMTk1YjQ1YWIyODQ5NTY0ZWFjODVkMmU2OC4u
NjA2OGQ5MjkxMWU1OTJhNzQ5YjdjOTU3OWE5Yjk5ZmMyZGFhMjA4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMzM4LDcgKzMz
OCw3IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByCiAgICAgcmV0dXJuIEJhc2U6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCi12
b2lkIEpTRE9NV2luZG93OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQg
SlNET01XaW5kb3c6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICBpZiAoIWltcGwoKS0+ZnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQ2LDcgKzM0
Niw3IEBAIHZvaWQgSlNET01XaW5kb3c6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2CiAgICAgLy8gT3B0aW1pemF0aW9uOiBhY2Nl
c3MgSmF2YVNjcmlwdCBnbG9iYWwgdmFyaWFibGVzIGRpcmVjdGx5IGJlZm9yZSBpbnZvbHZpbmcg
dGhlIERPTS4KICAgICBpZiAoSlNHbG9iYWxPYmplY3Q6Omhhc093blByb3BlcnR5Rm9yV3JpdGUo
ZXhlYywgcHJvcGVydHlOYW1lKSkgewogICAgICAgICBpZiAoYWxsb3dzQWNjZXNzRnJvbShleGVj
KSkKLSAgICAgICAgICAgIEpTR2xvYmFsT2JqZWN0OjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2
YWx1ZSwgc2xvdCk7CisgICAgICAgICAgICBKU0dsb2JhbE9iamVjdDo6cHV0KHRoaXMsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0zNTQsNyArMzU0LDcgQEAgdm9pZCBKU0RPTVdpbmRvdzo6cHV0KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHYKICAgICAgICAgcmV0dXJu
OwogCiAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCi0gICAgICAgIEJhc2U6OnB1dChl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICAgICAgQmFzZTo6cHV0KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiBib29sIEpTRE9NV2luZG93
OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVs
bC5jcHAKaW5kZXggNmQyNmY5ODVjNzFiNmM0YjgzYjBhMzAyOTg5YjA3ZjBiYTMyN2IxZS4uYTY2
MDVkODI1MDY2YmVkMDlmNjcxZjc2N2I4MmFlMjkwYjVlMGFhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTExNSw5ICsxMTUsOSBA
QCBib29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZQogICAgIHJldHVybiBtX3dpbmRvdy0+Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKLXZv
aWQgSlNET01XaW5kb3dTaGVsbDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2
b2lkIEpTRE9NV2luZG93U2hlbGw6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKLSAgICBtX3dpbmRvdy0+cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOworICAgIG1fd2luZG93LT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnB1dFdpdGhBdHRyaWJ1dGVzKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dTaGVsbC5oCmluZGV4IGI1ZGQzYTZhMTZjMmNkOGE2M2Y5OGEzZjkyNzk4MzUy
YmRmMGQ2NzcuLmE3MmZkMTE4YWRlMzgzZTAyMTY2NGM4YWJlYjBiMjMzZDE1YmJiMmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKQEAgLTgzLDcg
KzgzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlT
bG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQ
dXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVz
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
Qzo6SlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBk
ZWxldGVQcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnR5TmFtZXMoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUg
bW9kZSA9IEpTQzo6RXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCmluZGV4IDk2N2JjNGRhZGFlZjIw
NTE3YTE3MGRiNTdiMTU1YjJmOWRlYWJjODkuLjlhMTE5ZGI2ZTZlNmMzOGM3M2E3MjIwOTA4ZTM5
NTBhYjhhOGY5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9j
YXRpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRp
b25DdXN0b20uY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgYm9vbCBKU0xvY2F0aW9uOjpwdXREZWxl
Z2F0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlMK
ICAgICBjb25zdCBIYXNoRW50cnkqIGVudHJ5ID0gSlNMb2NhdGlvbjo6c19pbmZvLnByb3BIYXNo
VGFibGUoZXhlYyktPmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKCFlbnRyeSkg
ewogICAgICAgICBpZiAoc2FtZURvbWFpbkFjY2VzcykKLSAgICAgICAgICAgIEpTT2JqZWN0Ojpw
dXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgICAgICAgICBKU09iamVj
dDo6cHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4IGEzM2E1Zjg1M2M2OTgwMzI5
NzM0ZjA0OTNkOTA1Y2YzYjZkNTBiZWQuLjAwY2Q5NjgyYjhjZWUwYmRkNmE5MGVkNzY3ZjRmNmRj
MTcxMjNhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2lu
RWxlbWVudEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQ
bHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIGJvb2wgcnVudGlt
ZU9iamVjdEN1c3RvbVB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWCiAgICAgICAgIHJldHVybiAwOwogICAgIGlmICghc2NyaXB0T2JqZWN0LT5o
YXNQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgc2NyaXB0T2JqZWN0LT5wdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cisg
ICAgc2NyaXB0T2JqZWN0LT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA4ZGJlM2VhMDljN2M3ZmJm
NWQ0OWQ3ZTUwZmNmYTFkNDM0ZDE0MGI5Li5lZTBjNjMxNDhlNzA5ZjYxZWExNTE1MmQ2YmI3Mjk5
NTMxNjRhMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTEwMzEsNyArMTAzMSw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIGlmIChhcnJheS0+Y2FuU2V0SW5kZXgoaW5kZXgpKQogICAgICAgICAgICAgYXJyYXktPnNl
dEluZGV4KG1fZXhlYy0+Z2xvYmFsRGF0YSgpLCBpbmRleCwgdmFsdWUpOwogICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBhcnJheS0+cHV0KG1fZXhlYywgaW5kZXgsIHZhbHVlKTsKKyAgICAgICAg
ICAgIGFycmF5LT5wdXRWaXJ0dWFsKG1fZXhlYywgaW5kZXgsIHZhbHVlKTsKICAgICB9CiAKICAg
ICB2b2lkIHB1dFByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5LCBKU1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L1dlYlNjcmlwdE9iamVjdC5tbQppbmRleCBmZjYxM2UyZDhhNWE0NjRiOGYwNWNjODJhM2VjNzJl
N2E4YWEyMzc3Li41MzY4MmM3NTMzMDNlNDUzOGY5ZTlkZWVjYzkxOTU5OWY0MzU3ZjA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQpAQCAt
MzQ5LDcgKzM0OSw3IEBAIHN0YXRpYyB2b2lkIGdldExpc3RGcm9tTlNBcnJheShFeGVjU3RhdGUg
KmV4ZWMsIE5TQXJyYXkgKmFycmF5LCBSb290T2JqZWN0KiByb290CiAgICAgSlNMb2NrIGxvY2so
U2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKIAogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAg
IFtzZWxmIF9pbXBdLT5wdXQoZXhlYywgSWRlbnRpZmllcihleGVjLCBzdHJpbmdUb1VTdHJpbmco
U3RyaW5nKGtleSkpKSwgY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJnZhbHVlLCBPYmpj
T2JqZWN0VHlwZSwgW3NlbGYgX3Jvb3RPYmplY3RdKSwgc2xvdCk7CisgICAgW3NlbGYgX2ltcF0t
PnB1dFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcihleGVjLCBzdHJpbmdUb1VTdHJpbmcoU3RyaW5n
KGtleSkpKSwgY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJnZhbHVlLCBPYmpjT2JqZWN0
VHlwZSwgW3NlbGYgX3Jvb3RPYmplY3RdKSwgc2xvdCk7CiAKICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpIHsKICAgICAgICAgYWRkRXhjZXB0aW9uVG9Db25zb2xlKGV4ZWMpOwpAQCAtNDg2
LDcgKzQ4Niw3IEBAIHN0YXRpYyB2b2lkIGdldExpc3RGcm9tTlNBcnJheShFeGVjU3RhdGUgKmV4
ZWMsIE5TQXJyYXkgKmFycmF5LCBSb290T2JqZWN0KiByb290CiAgICAgQVNTRVJUKCFleGVjLT5o
YWRFeGNlcHRpb24oKSk7CiAKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkp
OwotICAgIFtzZWxmIF9pbXBdLT5wdXQoZXhlYywgaW5kZXgsIGNvbnZlcnRPYmpjVmFsdWVUb1Zh
bHVlKGV4ZWMsICZ2YWx1ZSwgT2JqY09iamVjdFR5cGUsIFtzZWxmIF9yb290T2JqZWN0XSkpOwor
ICAgIFtzZWxmIF9pbXBdLT5wdXRWaXJ0dWFsKGV4ZWMsIGluZGV4LCBjb252ZXJ0T2JqY1ZhbHVl
VG9WYWx1ZShleGVjLCAmdmFsdWUsIE9iamNPYmplY3RUeXBlLCBbc2VsZiBfcm9vdE9iamVjdF0p
KTsKIAogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICBhZGRFeGNlcHRp
b25Ub0NvbnNvbGUoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDJkODEzNDcwYzdjYTE3MzkyZGVmYjIxMWQ2MjUy
MTgyZDk2ZjBhMWEuLjU1MDhkMThmNGY1MWIzYWM0YzFiYmI1OGQyYmRjNjhmNjYwZGIxNDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC03OTMsOSArNzkzLDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIEdldHRl
cnMKICAgICBpZiAoJGhhc1NldHRlcikgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xu
Iik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dFZp
cnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpK
U1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4U2V0dGVyIn07CisgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSk7XG4iKSBpZiAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleFNldHRlciJ9OwogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpO1xuIikgaWYg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhTZXR0ZXIifTsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIHB1dERlbGVnYXRlKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1
dFByb3BlcnR5U2xvdCYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
RGVsZWdhdGluZ1B1dEZ1bmN0aW9uIn07CiAgICAgfQpAQCAtMTA1MCw3ICsxMDUwLDcgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTtcbiIgLgogICAgICAg
ICAiICAgIH1cbiIpOwogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJE
ZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24ifSkgewotICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5
U2xvdCYpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2
b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlND
ZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBwdXREZWxlZ2F0ZShKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNs
b3QmKTtcbiIpOwogICAgIH0KQEAgLTE0NzMsNyArMTQ3Myw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgfQogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkRlbGVnYXRpbmdQcm90b3R5cGVQdXRGdW5jdGlvbiJ9KSB7Ci0gICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnB1dChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJv
cGVydHlTbG90JiBzbG90KVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAk
e2NsYXNzTmFtZX1Qcm90b3R5cGU6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdClcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwpAQCAt
MTc0Miw3ICsxNzQyLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICBp
ZiAoJGhhc1NldHRlcikgewogICAgICAgICAgICAgaWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b21QdXRGdW5jdGlvbiJ9KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHNsb3QpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQg
JHtjbGFzc05hbWV9OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpXG4i
KTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBzbG90KTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAifVxuXG4iKTsKQEAgLTE3NzMsNyArMTc3Myw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleFNldHRlciJ9KSB7Ci0gICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0KEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKVxuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSlcbiIp
OwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5c
biIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcAppbmRleCBjMDI0YTQ1MWQ3OTAzMmZlYTU4ZjRiYTliMjg0OWZiZTUxMDYy
NjhjLi5lNDRkZjkyODJhZTA5NjgwOWVhYmMxMjEyYWM5NjI0ZmFlYzU5NjY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNw
cApAQCAtNzYxLDcgKzc2MSw3IEBAIEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyCiAgICAgcmV0dXJu
IEpTVGVzdE9iajo6Z2V0Q29uc3RydWN0b3IoZXhlYywgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3Qo
KSk7CiB9CiAKLXZvaWQgSlNUZXN0T2JqOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKK3ZvaWQgSlNUZXN0T2JqOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5oCmluZGV4IGMzZDFiMjRjYmIxNzFhNjRmMjY5MjNmODdmYWViNTcxYWQ1YzhkMzMuLjNj
YTMyNmJjNWUzNDUwODYxN2M2ZjlmZmIzYWNiMDVjNzE4NTQ4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTQyLDcg
KzQyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5
cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICB2
aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7
CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFBy
b3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCmluZGV4IDE0ZWZiMTk3NmZmYTc2ODlm
MjNlZjI3MzU1MTQxZjZiZGU2ZDdlMTQuLjQwYWU1MTMzYzY5NzI2MTc2ZWI3OWJjNzVmNWE4MTUy
YzUzMzAzYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcApAQCAtMzM3LDkg
KzMzNyw5IEBAIGJvb2wgX05QTl9TZXRQcm9wZXJ0eShOUFAsIE5QT2JqZWN0KiBvLCBOUElkZW50
aWZpZXIgcHJvcGVydHlOYW1lLCBjb25zdCBOUFZhcmlhCiAKICAgICAgICAgaWYgKGktPmlzU3Ry
aW5nKCkpIHsKICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAg
b2JqLT5pbXAtPnB1dChleGVjLCBpZGVudGlmaWVyRnJvbU5QSWRlbnRpZmllcihleGVjLCBpLT5z
dHJpbmcoKSksIGNvbnZlcnROUFZhcmlhbnRUb1ZhbHVlKGV4ZWMsIHZhcmlhbnQsIHJvb3RPYmpl
Y3QpLCBzbG90KTsKKyAgICAgICAgICAgIG9iai0+aW1wLT5wdXRWaXJ0dWFsKGV4ZWMsIGlkZW50
aWZpZXJGcm9tTlBJZGVudGlmaWVyKGV4ZWMsIGktPnN0cmluZygpKSwgY29udmVydE5QVmFyaWFu
dFRvVmFsdWUoZXhlYywgdmFyaWFudCwgcm9vdE9iamVjdCksIHNsb3QpOwogICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIG9iai0+aW1wLT5wdXQoZXhlYywgaS0+bnVtYmVyKCksIGNvbnZlcnRO
UFZhcmlhbnRUb1ZhbHVlKGV4ZWMsIHZhcmlhbnQsIHJvb3RPYmplY3QpKTsKKyAgICAgICAgICAg
IG9iai0+aW1wLT5wdXRWaXJ0dWFsKGV4ZWMsIGktPm51bWJlcigpLCBjb252ZXJ0TlBWYXJpYW50
VG9WYWx1ZShleGVjLCB2YXJpYW50LCByb290T2JqZWN0KSk7CiAgICAgICAgIGV4ZWMtPmNsZWFy
RXhjZXB0aW9uKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1tIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0KaW5kZXggMWM2ZjFmYmUzMWM2ZDQ2N2JjYjViYmYy
MzVmY2NkNGMwNzUwMTNhNS4uYzRkZDlkNDhlOTFmOTkyZDUwNTgwMjdhNmFiZTQyNTNiNjI3YTkz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0KQEAgLTM0OCw3
ICszNDgsNyBAQCB2b2lkIEphdmFKU09iamVjdDo6c2V0TWVtYmVyKGpzdHJpbmcgbWVtYmVyTmFt
ZSwgam9iamVjdCB2YWx1ZSkgY29uc3QKIAogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRp
b25zT25seSk7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgX2ltcC0+cHV0KGV4ZWMs
IElkZW50aWZpZXIoZXhlYywgSmF2YVN0cmluZyhtZW1iZXJOYW1lKS5pbXBsKCkpLCBjb252ZXJ0
Sk9iamVjdFRvVmFsdWUoZXhlYywgdmFsdWUpLCBzbG90KTsKKyAgICBfaW1wLT5wdXRWaXJ0dWFs
KGV4ZWMsIElkZW50aWZpZXIoZXhlYywgSmF2YVN0cmluZyhtZW1iZXJOYW1lKS5pbXBsKCkpLCBj
b252ZXJ0Sk9iamVjdFRvVmFsdWUoZXhlYywgdmFsdWUpLCBzbG90KTsKIH0KIAogCkBAIC0zOTMs
NyArMzkzLDcgQEAgdm9pZCBKYXZhSlNPYmplY3Q6OnNldFNsb3QoamludCBpbmRleCwgam9iamVj
dCB2YWx1ZSkgY29uc3QKIAogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHJvb3RPYmplY3QtPmdsb2Jh
bE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlv
bnNPbmx5KTsKLSAgICBfaW1wLT5wdXQoZXhlYywgKHVuc2lnbmVkKWluZGV4LCBjb252ZXJ0Sk9i
amVjdFRvVmFsdWUoZXhlYywgdmFsdWUpKTsKKyAgICBfaW1wLT5wdXRWaXJ0dWFsKGV4ZWMsICh1
bnNpZ25lZClpbmRleCwgY29udmVydEpPYmplY3RUb1ZhbHVlKGV4ZWMsIHZhbHVlKSk7CiB9CiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAppbmRleCBhOThhOTBl
MTk3NTBhZGJmOTM2ZWRiNzY5NzFlMTcxNGE1YWRiNmVmLi41ZjRjNjMwNGUwYjFkOTYyMTc3NjJj
NWU1MTk4ZTQwNWQ1NDM4MmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2Jq
Yy9vYmpjX3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1
bnRpbWUuaApAQCAtMTI2LDcgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CisgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgQ2FsbFR5cGUg
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRl
UHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQppbmRleCA0Y2ZjMzg0YWU1
NTYzZDdkMTgzZTcxZmVkN2Q2YTAxMWZkMzUyNTU5Li4xZmY1NmYxNjZlYjYzOTRhNzJmMDEzMGM2
NGQyYmVkZGYyM2I1MTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9v
YmpjX3J1bnRpbWUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50
aW1lLm1tCkBAIC0yMjQsNyArMjI0LDcgQEAgYm9vbCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6Omdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWUKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OnB1dChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90JikKK3ZvaWQg
T2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAppbmRleCAwZDYxYTYwMjI5MDJiMGNjNmY1NjQ5MDIy
NmU2NDkwNTllYTMzYmI0Li5mZjA0NTQ1NDk5Y2ZjNTM5Njg1MmI5NDA4ZmE1MjljM2I5MzAwNDUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKQEAgLTE1OCw3ICsx
NTgsNyBAQCBib29sIFF0SW5zdGFuY2U6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZQogCiB2b2lkIFF0SW5zdGFuY2U6OnB1dChK
U09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIG9i
amVjdC0+SlNPYmplY3Q6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAg
ICBKU09iamVjdDo6cHV0KG9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7
CiB9CiAKIHZvaWQgUXRJbnN0YW5jZTo6cmVtb3ZlQ2FjaGVkTWV0aG9kKEpTT2JqZWN0KiBtZXRo
b2QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKaW5kZXggYzNhN2EzZDBh
NjVkMDU3YTQyZGVmYjQwNGI0MDY3MWY5ODY4NTMxMC4uNDhlYTlmZGY1OTQ0NzIzOGUzZmU4MjM0
ZTlhZTJkY2RmZTZlY2RmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X3J1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNw
cApAQCAtOTYwLDcgKzk2MCw3IEBAIEpTVmFsdWUgY29udmVydFFWYXJpYW50VG9WYWx1ZShFeGVj
U3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdCwgY29uCiAgICAgICAgICAg
ICBKU1ZhbHVlIHZhbCA9IGNvbnZlcnRRVmFyaWFudFRvVmFsdWUoZXhlYywgcm9vdC5nZXQoKSwg
aS52YWx1ZSgpKTsKICAgICAgICAgICAgIGlmICh2YWwpIHsKICAgICAgICAgICAgICAgICBQdXRQ
cm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgICAgICByZXQtPnB1dChleGVjLCBJZGVudGlm
aWVyKGV4ZWMsIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPGNvbnN0IFVDaGFyICo+KHMuY29uc3REYXRh
KCkpLCBzLmxlbmd0aCgpKSwgdmFsLCBzbG90KTsKKyAgICAgICAgICAgICAgICByZXQtPnB1dFZp
cnR1YWwoZXhlYywgSWRlbnRpZmllcihleGVjLCByZWludGVycHJldF9jYXN0X3B0cjxjb25zdCBV
Q2hhciAqPihzLmNvbnN0RGF0YSgpKSwgcy5sZW5ndGgoKSksIHZhbCwgc2xvdCk7CiAgICAgICAg
ICAgICAgICAgLy8gIyMjIGVycm9yIGNhc2U/CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAr
K2k7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggODBlMmE4Zjk1
MWUxY2U1M2IyZjM2YTZmYjE1NWMyM2I0OGU4ODliOC4uNDUyNzIyZmY2MGYxNDI0NjFlOTU5MDJi
ODk4M2Q4NGNmZDliNzU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNw
cApAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUgKmV4ZWMsIHVuc2lnbmVkIGluCiAgICAgcmV0dXJu
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgaW5kZXgsIHNs
b3QpOwogfQogCi12b2lkIFJ1bnRpbWVBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCit2b2lkIFJ1bnRpbWVBcnJheTo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBz
bG90KTsKIH0KQEAgLTE2NSw3ICsxNjUsNyBAQCB2b2lkIFJ1bnRpbWVBcnJheTo6cHV0KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogICAg
IEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xv
dCk7CiB9CiAKLXZvaWQgUnVudGltZUFycmF5OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25l
ZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSkKK3ZvaWQgUnVudGltZUFycmF5OjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgcHV0
KHRoaXMsIGV4ZWMsIGluZGV4LCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
YXJyYXkuaAppbmRleCBhM2Q0NDU4YjZiODhkMzNjOTQzM2Q2MDk5MjY4ZjI0YTM0MDgyN2RmLi5k
YzYwZTQ0NjQ2NTg5NmQzOWQ0N2FlNWMwMGU2OWJiZGY0YWI5MGI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTU1LDkgKzU1LDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQsIFByb3BlcnR5
U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVj
U3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlEZXNjcmlwdG9yJik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAg
IHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQg
cHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOworICAgIHZpcnR1YWwgdm9pZCBw
dXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAg
ICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSk7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDEzMzhjZjg2NWNlNGNmNGFiZGUw
NmE5NGRhNDJmNzY0MTI0NDcxNmYuLjA4YjU3YTNhODU4NzNhNTIzNmRiMjg2ZDM2MGI2N2M0YWM1
NTBjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMjE2
LDcgKzIxNiw3IEBAIGJvb2wgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYKICAgICByZXR1cm4gaW5zdGFuY2Ut
PmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2Ny
aXB0b3IpOwogfQogCi12b2lkIFJ1bnRpbWVPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQordm9pZCBSdW50aW1lT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCAw
NjZkNzczN2UzMjQ2NGU1ODYyMTE4NWU2NGE1NzMzZGIxZWVkZWZjLi44NWMzYjZmNzIyOGY5ZDYy
ZmI1YzgwOGQyZjA1YmMyYmE2ZDQ1ZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9v
YmplY3QuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCB2b2lk
IHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICBzdGF0aWMgYm9vbCBkZWxl
dGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3Rlc3RxdGJpbmRpbmdz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS90ZXN0cXRiaW5kaW5ncy5jcHAKaW5kZXggNzFm
YzliYjY2OTM5NWM0YzA3OWQ4YThmZmFjMGNjODgxZDc4NjE2MC4uZTdkNGE2YjllOTJjYTRlYmVm
NzZmMmQwNDc2MDlmZDE1Mzg1ODZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3Rlc3RxdGJpbmRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdHF0Ymlu
ZGluZ3MuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBh
cmd2KQogICAgICAgICAKICAgICAgICAgTXlPYmplY3QqIG15T2JqZWN0ID0gbmV3IE15T2JqZWN0
OwogICAgICAgICAKLSAgICAgICAgZ2xvYmFsLT5wdXQoZXhlYywgSWRlbnRpZmllcigibXlJbnRl
cmZhY2UiKSwgSW5zdGFuY2U6OmNyZWF0ZVJ1bnRpbWVPYmplY3QoSW5zdGFuY2U6OlF0TGFuZ3Vh
Z2UsICh2b2lkKilteU9iamVjdCkpOworICAgICAgICBnbG9iYWwtPnB1dFZpcnR1YWwoZXhlYywg
SWRlbnRpZmllcigibXlJbnRlcmZhY2UiKSwgSW5zdGFuY2U6OmNyZWF0ZVJ1bnRpbWVPYmplY3Qo
SW5zdGFuY2U6OlF0TGFuZ3VhZ2UsICh2b2lkKilteU9iamVjdCkpOwogICAgICAgICAKICAgICAg
ICAgCiAgICAgICAgIGlmIChjb2RlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggY2NiMjg4ZWY2YTAz
NmJmNmEwYjUzMjFjNjkwNWE0NGNmMmZhMDZhNi4uMTQ3ZmY2NWFlNzc2MzBkYTA4Mjg1NDhiNDc4
YTFjY2YzMmU4N2YwOSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEw
LTEyICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVuYW1lIHZpcnR1YWwgcHV0IHRvIHB1dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB2aXJ0dWFsIHZlcnNpb25zIG9mIHB1dCB0
byBwdXRWaXJ0dWFsIGluIHByZXByYXRpb24gZm9yIAorICAgICAgICBhZGRpbmcgdGhlIHN0YXRp
YyBwdXQgdG8gdGhlIE1ldGhvZFRhYmxlIGluIENsYXNzSW5mbyBzaW5jZSB0aGUgCisgICAgICAg
IGNvbXBpbGVyIGdldHMgbWFkIGlmIHRoZSB2aXJ0dWFsIGFuZCBzdGF0aWMgdmVyc2lvbnMgaGF2
ZSB0aGUgc2FtZSAKKyAgICAgICAgbmFtZS4KKworICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6
CisgICAgICAgIChld2tfdmlld19qc19vYmplY3RfYWRkKToKKwogMjAxMS0xMC0xMCAgUmFwaGFl
bCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbRUZMXSBE
byBub3QgY2FjaGUgYSBmcmFtZSdzIGNvbnRlbnRzIHNpemUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmNwcAppbmRleCBjMTM3NmE5MDA4MmI0YmFhMDJjNmQ5M2ZiNzA3ZWJiNWU2YWMzMmVjLi4y
OTEyMWU4YmY3NWVlNjE0NjAxODdjYmRkOGJkNGVkZTJmMWY5MDFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlldy5jcHAKQEAgLTM2NTQsNyArMzY1NCw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19q
c19vYmplY3RfYWRkKEV2YXNfT2JqZWN0KiBvLCBFd2tfSlNfT2JqZWN0KiBvYmosIGNvbnN0IGNo
YXIqCiAgICAgSlNDOjpJZGVudGlmaWVyIGlkID0gSlNDOjpJZGVudGlmaWVyKGV4ZWMsIG9ial9u
YW1lKTsKIAogICAgIEpTQzo6UHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgd2luZG93LT5wdXQo
ZXhlYywgaWQsIHJ1bnRpbWVPYmplY3QsIHNsb3QpOworICAgIHdpbmRvdy0+cHV0VmlydHVhbChl
eGVjLCBpZCwgcnVudGltZU9iamVjdCwgc2xvdCk7CiAgICAgcmV0dXJuIEVJTkFfVFJVRTsKICNl
bHNlCiAgICAgcmV0dXJuIEVJTkFfRkFMU0U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNDg4MWFiNzg3
MmJlNmVhNTc0OWM3MjFkNmI2NDM4YjI2MzM2NmQ1Yy4uNWUyZWViYTcyNTAyNDQxY2FjZTY3YjRh
NzYzODc2NmE1MTIxMzc0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEx
LTEwLTEyICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVuYW1lIHZpcnR1YWwgcHV0IHRvIHB1dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB2aXJ0dWFsIHZlcnNpb25zIG9mIHB1
dCB0byBwdXRWaXJ0dWFsIGluIHByZXByYXRpb24gZm9yIAorICAgICAgICBhZGRpbmcgdGhlIHN0
YXRpYyBwdXQgdG8gdGhlIE1ldGhvZFRhYmxlIGluIENsYXNzSW5mbyBzaW5jZSB0aGUgCisgICAg
ICAgIGNvbXBpbGVyIGdldHMgbWFkIGlmIHRoZSB2aXJ0dWFsIGFuZCBzdGF0aWMgdmVyc2lvbnMg
aGF2ZSB0aGUgc2FtZSAKKyAgICAgICAgbmFtZS4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVk
L05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2Nh
cGVQbHVnaW5JbnN0YW5jZVByb3h5OjpzZXRQcm9wZXJ0eSk6CisKIDIwMTEtMTAtMTAgIE5hdGUg
Q2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVc2UgYSBDYWNoZWRJbWFn
ZUNsaWVudCBpbnN0ZWFkIG9mIENhY2hlZFJlc291cmNlQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHku
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHkubW0KaW5kZXggNjYyNzIwMzcxODk3ZGM5NDg2ZTU0NzAwZjZmZDA2MTg1OWE3YjYy
Ny4uYWU0NDI1NDFjMjVmNmUyOGExMDZmNWIzZDU1MDcwZTQzNjZiYjQxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVBy
b3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1
Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtMTA2MCw3ICsxMDYwLDcgQEAgYm9vbCBOZXRzY2FwZVBs
dWdpbkluc3RhbmNlUHJveHk6OnNldFByb3BlcnR5KHVpbnQzMl90IG9iamVjdElELCBjb25zdCBJ
ZGVudGlmaWUKIAogICAgIEpTVmFsdWUgdmFsdWUgPSBkZW1hcnNoYWxWYWx1ZShleGVjLCB2YWx1
ZURhdGEsIHZhbHVlTGVuZ3RoKTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBvYmpl
Y3QtPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBvYmplY3QtPnB1
dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiAgICAgCiAgICAgZXhl
Yy0+Y2xlYXJFeGNlcHRpb24oKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwODUsNyArMTA4NSw3
IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpzZXRQcm9wZXJ0eSh1aW50MzJf
dCBvYmplY3RJRCwgdW5zaWduZWQgcHJvcGVyCiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2Vy
dGlvbnNPbmx5KTsgICAgCiAgICAgCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGRlbWFyc2hhbFZhbHVl
KGV4ZWMsIHZhbHVlRGF0YSwgdmFsdWVMZW5ndGgpOwotICAgIG9iamVjdC0+cHV0KGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUpOworICAgIG9iamVjdC0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlKTsKICAgICAKICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwogICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNw
cCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKaW5kZXggMDdmMmRmOTg3ZDJj
ZmY1NmRmYzhkODdkN2E1Y2FiYjVjMTk2NmUxYS4uN2FkNGJlMzhmNGRlZTZlZjRjNmRiOTY5ODA0
NmFmMjg5YzM2YmJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCkBAIC02ODgsNyAr
Njg4LDcgQEAgdm9pZCBRV2ViRnJhbWU6OmFkZFRvSmF2YVNjcmlwdFdpbmRvd09iamVjdChjb25z
dCBRU3RyaW5nICZuYW1lLCBRT2JqZWN0ICpvYmplY3QKICAgICAgICAgICAgIEpTQzo6QmluZGlu
Z3M6OlF0SW5zdGFuY2U6OmdldFF0SW5zdGFuY2Uob2JqZWN0LCByb290LCBvd25lcnNoaXApLT5j
cmVhdGVSdW50aW1lT2JqZWN0KGV4ZWMpOwogCiAgICAgSlNDOjpQdXRQcm9wZXJ0eVNsb3Qgc2xv
dDsKLSAgICB3aW5kb3ctPnB1dChleGVjLCBKU0M6OklkZW50aWZpZXIoZXhlYywgcmVpbnRlcnBy
ZXRfY2FzdF9wdHI8Y29uc3QgVUNoYXIqPihuYW1lLmNvbnN0RGF0YSgpKSwgbmFtZS5sZW5ndGgo
KSksIHJ1bnRpbWVPYmplY3QsIHNsb3QpOworICAgIHdpbmRvdy0+cHV0VmlydHVhbChleGVjLCBK
U0M6OklkZW50aWZpZXIoZXhlYywgcmVpbnRlcnByZXRfY2FzdF9wdHI8Y29uc3QgVUNoYXIqPihu
YW1lLmNvbnN0RGF0YSgpKSwgbmFtZS5sZW5ndGgoKSksIHJ1bnRpbWVPYmplY3QsIHNsb3QpOwog
I2VsaWYgVVNFKFY4KQogICAgIFFTY3JpcHRFbmdpbmUqIGVuZ2luZSA9IGQtPmZyYW1lLT5zY3Jp
cHQoKS0+cXRTY3JpcHRFbmdpbmUoKTsKICAgICBpZiAoIWVuZ2luZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5k
ZXggZWQ3NGU4N2Y3ZTRkZDQ5NDU4MmZjMjRmMjk5MzhkMDhkZDY1MjdiMC4uODQwZmRiZDJmZTVl
MDFiZDhkODRiNTk2OWU1ODM1ZTYxZTI0MzEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAxMS0xMC0xMiAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29t
PgorCisgICAgICAgIFJlbmFtZSB2aXJ0dWFsIHB1dCB0byBwdXRWaXJ0dWFsCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTg1MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgdmlydHVhbCB2ZXJz
aW9ucyBvZiBwdXQgdG8gcHV0VmlydHVhbCBpbiBwcmVwcmF0aW9uIGZvciAKKyAgICAgICAgYWRk
aW5nIHRoZSBzdGF0aWMgcHV0IHRvIHRoZSBNZXRob2RUYWJsZSBpbiBDbGFzc0luZm8gc2luY2Ug
dGhlIAorICAgICAgICBjb21waWxlciBnZXRzIG1hZCBpZiB0aGUgdmlydHVhbCBhbmQgc3RhdGlj
IHZlcnNpb25zIGhhdmUgdGhlIHNhbWUgCisgICAgICAgIG5hbWUuCisKKyAgICAgICAgKiBBcGkv
cXdlYmZyYW1lLmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZTo6YWRkVG9KYXZhU2NyaXB0V2luZG93
T2JqZWN0KToKKwogMjAxMS0xMC0xMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBNYWtlIGN1c3RvbSBzY3JvbGxiYXIgdGhlbWUgZm9yIHVzZSBpbiBE
UlQsIHRvIHJlZHVjZSBwaXhlbCBkaWZmcyBiZXR3ZWVuIHBsYXRmb3JtcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDJiNTg4YTcwZTkyMTAyZjQzNmMwYjMyYTljOGRiZjY5N2QyNTNkMTkuLjVhNzhmZDVjMThhYWVm
ODU3NDkwYTllZTdiODQ1Y2EyNmRkMTY3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAor
MjAxMS0xMC0xMiAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlbmFtZSB2aXJ0dWFsIHB1dCB0byBwdXRWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTg1MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgdmlydHVhbCB2ZXJzaW9ucyBv
ZiBwdXQgdG8gcHV0VmlydHVhbCBpbiBwcmVwcmF0aW9uIGZvciAKKyAgICAgICAgYWRkaW5nIHRo
ZSBzdGF0aWMgcHV0IHRvIHRoZSBNZXRob2RUYWJsZSBpbiBDbGFzc0luZm8gc2luY2UgdGhlIAor
ICAgICAgICBjb21waWxlciBnZXRzIG1hZCBpZiB0aGUgdmlydHVhbCBhbmQgc3RhdGljIHZlcnNp
b25zIGhhdmUgdGhlIHNhbWUgCisgICAgICAgIG5hbWUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkpTTlBP
YmplY3Q6OnB1dFZpcnR1YWwpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpwdXQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOUEpTT2JqZWN0OjpzZXRQcm9wZXJ0eSk6CisKIDIwMTEtMTAtMTIgIEplc3Vz
IFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgogCiAgICAg
ICAgIFtRdF1bV0syXSBNb3ZlIHF3ZWJlcnJvciogb3V0IG9mIEFQSS9xdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3Qu
Y3BwCmluZGV4IDUzZjU4NjAxYzBhOTY2ODFjODU0MThiY2QzNGRjYWI0MmUwMGExZjQuLmU3MTdk
Yjk1YWYyODk2MDFlYWQ3YjMxYWZiNDNiYTY4MTI4NjUzOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAK
QEAgLTMxMiwzNSArMzEyLDQxIEBAIGJvb2wgSlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi12b2lkIEpTTlBPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JikKK3ZvaWQgSlNOUE9iamVjdDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBz
bG90KQogewotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7Ci0g
ICAgaWYgKCFtX25wT2JqZWN0KSB7CisgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpOworfQorCit2b2lkIEpTTlBPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQoreworICAgIEpTTlBPYmplY3QqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU05QT2JqZWN0Kj4oY2VsbCk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTsKKyAgICBpZiAoIXRoaXNPYmplY3QtPm1fbnBPYmpl
Y3QpIHsKICAgICAgICAgdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBOUElkZW50aWZpZXIgbnBJZGVudGlmaWVyID0gbnBJZGVudGlm
aWVyRnJvbUlkZW50aWZpZXIocHJvcGVydHlOYW1lKTsKICAgICAKLSAgICBpZiAoIW1fbnBPYmpl
Y3QtPl9jbGFzcy0+aGFzUHJvcGVydHkgfHwgIW1fbnBPYmplY3QtPl9jbGFzcy0+aGFzUHJvcGVy
dHkobV9ucE9iamVjdCwgbnBJZGVudGlmaWVyKSkgeworICAgIGlmICghdGhpc09iamVjdC0+bV9u
cE9iamVjdC0+X2NsYXNzLT5oYXNQcm9wZXJ0eSB8fCAhdGhpc09iamVjdC0+bV9ucE9iamVjdC0+
X2NsYXNzLT5oYXNQcm9wZXJ0eSh0aGlzT2JqZWN0LT5tX25wT2JqZWN0LCBucElkZW50aWZpZXIp
KSB7CiAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdGhyb3cgYW4gZXhjZXB0aW9uIGhlcmU/
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIW1fbnBPYmplY3QtPl9jbGFzcy0+
c2V0UHJvcGVydHkpCisgICAgaWYgKCF0aGlzT2JqZWN0LT5tX25wT2JqZWN0LT5fY2xhc3MtPnNl
dFByb3BlcnR5KQogICAgICAgICByZXR1cm47CiAKICAgICBOUFZhcmlhbnQgdmFyaWFudDsKLSAg
ICBtX29iamVjdE1hcC0+Y29udmVydEpTVmFsdWVUb05QVmFyaWFudChleGVjLCB2YWx1ZSwgdmFy
aWFudCk7CisgICAgdGhpc09iamVjdC0+bV9vYmplY3RNYXAtPmNvbnZlcnRKU1ZhbHVlVG9OUFZh
cmlhbnQoZXhlYywgdmFsdWUsIHZhcmlhbnQpOwogCiAgICAgLy8gQ2FsbGluZyBOUENsYXNzOjpz
ZXRQcm9wZXJ0eSB3aWxsIGNhbGwgaW50byBwbHVnLWluIGNvZGUsIGFuZCB0aGVyZSdzIG5vIHRl
bGxpbmcgd2hhdCB0aGUgcGx1Zy1pbiBjYW4gZG8uCiAgICAgLy8gKGluY2x1ZGluZyBkZXN0cm95
aW5nIHRoZSBwbHVnLWluKS4gQmVjYXVzZSBvZiB0aGlzLCB3ZSBtYWtlIHN1cmUgdG8ga2VlcCB0
aGUgcGx1Zy1pbiBhbGl2ZSB1bnRpbCAKICAgICAvLyB0aGUgY2FsbCBoYXMgZmluaXNoZWQuCi0g
ICAgTlBSdW50aW1lT2JqZWN0TWFwOjpQbHVnaW5Qcm90ZWN0b3IgcHJvdGVjdG9yKG1fb2JqZWN0
TWFwKTsKKyAgICBOUFJ1bnRpbWVPYmplY3RNYXA6OlBsdWdpblByb3RlY3RvciBwcm90ZWN0b3Io
dGhpc09iamVjdC0+bV9vYmplY3RNYXApOwogCiAgICAgewogICAgICAgICBKU0xvY2s6OkRyb3BB
bGxMb2NrcyBkcm9wQWxsTG9ja3MoU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKLSAgICAgICAgbV9u
cE9iamVjdC0+X2NsYXNzLT5zZXRQcm9wZXJ0eShtX25wT2JqZWN0LCBucElkZW50aWZpZXIsICZ2
YXJpYW50KTsKKyAgICAgICAgdGhpc09iamVjdC0+bV9ucE9iamVjdC0+X2NsYXNzLT5zZXRQcm9w
ZXJ0eSh0aGlzT2JqZWN0LT5tX25wT2JqZWN0LCBucElkZW50aWZpZXIsICZ2YXJpYW50KTsKIAog
ICAgICAgICBOUFJ1bnRpbWVPYmplY3RNYXA6Om1vdmVHbG9iYWxFeGNlcHRpb25Ub0V4ZWNTdGF0
ZShleGVjKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5kZXggMjNmZmM4ZmM5MjMyZGIzNGFmMDIxM2NmNzNl
NzFjYWUyOTc1NjE2MC4uYjU0ZWEzMjliZjBlYmU3ZDE5N2M0MWQ0NjYwNjQ2MjMyNTlmYWIxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5oCkBAIC04Niw3ICs4Niw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRv
ciYpOwotICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xv
dCYpOworICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9w
ZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUs
IEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVy
dHkoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7
CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcAppbmRleCBmZTI5NzBlYjg4MjIyOWMy
NTU5NGM3MTdmNmQwZGUxM2E5YmEwNzM1Li41Yzc5NWYzNjk0OTZiOTI2MzliYmI2NjA5MmYyOWNh
NDczOTY3NDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTlBKU09iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwCkBAIC0xODgsOSArMTg4LDkgQEAgYm9vbCBO
UEpTT2JqZWN0OjpzZXRQcm9wZXJ0eShOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lLCBjb25zdCBO
UFZhcmlhbnQqIHZhbHVlKQogICAgIEpTVmFsdWUganNWYWx1ZSA9IG1fb2JqZWN0TWFwLT5jb252
ZXJ0TlBWYXJpYW50VG9KU1ZhbHVlKGV4ZWMsIG1fb2JqZWN0TWFwLT5nbG9iYWxPYmplY3QoKSwg
KnZhbHVlKTsKICAgICBpZiAoaWRlbnRpZmllclJlcC0+aXNTdHJpbmcoKSkgewogICAgICAgICBQ
dXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgbV9qc09iamVjdC0+cHV0KGV4ZWMsIGlkZW50
aWZpZXJGcm9tSWRlbnRpZmllclJlcChleGVjLCBpZGVudGlmaWVyUmVwKSwganNWYWx1ZSwgc2xv
dCk7CisgICAgICAgIG1fanNPYmplY3QtPnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllckZyb21J
ZGVudGlmaWVyUmVwKGV4ZWMsIGlkZW50aWZpZXJSZXApLCBqc1ZhbHVlLCBzbG90KTsKICAgICB9
IGVsc2UKLSAgICAgICAgbV9qc09iamVjdC0+cHV0KGV4ZWMsIGlkZW50aWZpZXJSZXAtPm51bWJl
cigpLCBqc1ZhbHVlKTsKKyAgICAgICAgbV9qc09iamVjdC0+cHV0VmlydHVhbChleGVjLCBpZGVu
dGlmaWVyUmVwLT5udW1iZXIoKSwganNWYWx1ZSk7CiAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24o
KTsKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMv
c3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDJm
ZmJlOTk1NDdiM2I2NGNlYzVlYTFhNDBkZWFhOGM3YzYwZDU3ZTkuLmNlOTVlYWZkZTk1OGE4NzU3
ZWM2YzdlNWFjMjI0MGU1YzI3YWM5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtMzMs
NyArMzMsNyBAQCBfWk43V2ViQ29yZTVSYW5nZUQxRXY7CiBfWk43V2ViQ29yZThEb2N1bWVudDM2
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzRXY7CiBfWk43V2ViQ29yZTlIVE1M
TmFtZXM4aW5wdXRUYWdFOwogX1pON1dlYkNvcmU5SFRNTE5hbWVzMTF0ZXh0YXJlYVRhZ0U7Ci1f
Wk43V2ViQ29yZTEwSlNEb2N1bWVudDNwdXRFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50
aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFOworX1pON1dlYkNvcmUx
MEpTRG9jdW1lbnQzcHV0VmlydHVhbEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmll
ckVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEU7CiBfWk43V2ViQ29yZTEwSlNE
b2N1bWVudDZzX2luZm9FOwogX1pON1dlYkNvcmUxMHRvRG9jdW1lbnRFTjNKU0M3SlNWYWx1ZUU7
CiBfWk43V2ViQ29yZTEwQ2xpZW50UmVjdEMxRXY7CkBAIC01NSwxMiArNTUsMTIgQEAgX1pON1dl
YkNvcmUyMWdldENhY2hlZERPTVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQS04z
SlNDOUNsYXNzSW5mb0U7CiBfWk43V2ViQ29yZTIyZXh0ZXJuYWxSZXByZXNlbnRhdGlvbkVQTlNf
N0VsZW1lbnRFajsKIF9aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxMG1hcmtl
cnNGb3JFUE5TXzROb2RlRTsKIF9aTjdXZWJDb3JlNkpTTm9kZTIwdmlzaXRDaGlsZHJlblZpcnR1
YWxFUk4zSlNDMTFTbG90VmlzaXRvckU7Ci1fWk43V2ViQ29yZTZKU05vZGUzcHV0RVBOM0pTQzlF
eGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJvcGVy
dHlTbG90RTsKK19aTjdXZWJDb3JlNkpTTm9kZTNwdXRWaXJ0dWFsRVBOM0pTQzlFeGVjU3RhdGVF
UktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJvcGVydHlTbG90RTsK
IF9aTjdXZWJDb3JlNkpTTm9kZTZzX2luZm9FOwogX1pON1dlYkNvcmU2dG9Ob2RlRU4zSlNDN0pT
VmFsdWVFOwogX1pON1dlYkNvcmU3RWxlbWVudDE2ZW5zdXJlU2hhZG93Um9vdEV2OwogX1pON1dl
YkNvcmU3RWxlbWVudDE2cmVtb3ZlU2hhZG93Um9vdEV2OwotX1pON1dlYkNvcmU5SlNFbGVtZW50
M3B1dEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVFUk5T
MV8xNVB1dFByb3BlcnR5U2xvdEU7CitfWk43V2ViQ29yZTlKU0VsZW1lbnQzcHV0VmlydHVhbEVQ
TjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1
dFByb3BlcnR5U2xvdEU7CiBfWk43V2ViQ29yZTlKU0VsZW1lbnQ2c19pbmZvRTsKIF9aTjdXZWJD
b3JlOXRvRWxlbWVudEVOM0pTQzdKU1ZhbHVlRTsKIF9aTks3V2ViQ29yZTE2SFRNTElucHV0RWxl
bWVudDE0c3VnZ2VzdGVkVmFsdWVFdjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111026</attachid>
            <date>2011-10-14 10:24:07 -0700</date>
            <delta_ts>2011-10-14 11:09:17 -0700</delta_ts>
            <desc>Fix gtk</desc>
            <filename>bug-69851-20111014102406.patch</filename>
            <type>text/plain</type>
            <size>118987</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcyNzQKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5n
ZUxvZwppbmRleCAxMDU5MjljNjk0YTU5YTc3Yjk3ZGQ2Nzc4NWY2NDQ3YjhmYzgzODcyLi5kYzBh
MjgwODk3Y2QwMWNhMjk2MGUxZWEwYWM2OWY5ZDdjNWQ0YmY5IDEwMDY0NAotLS0gYS9DaGFuZ2VM
b2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMTIgIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgdmlydHVh
bCBwdXQgdG8gcHV0VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njk4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWVkIHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRvIHB1dFZpcnR1YWwg
aW4gcHJlcHJhdGlvbiBmb3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGljIHB1dCB0byB0aGUg
TWV0aG9kVGFibGUgaW4gQ2xhc3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAgY29tcGlsZXIgZ2V0
cyBtYWQgaWYgdGhlIHZpcnR1YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZlIHRoZSBzYW1lIAor
ICAgICAgICBuYW1lLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRl
cjoKKwogMjAxMS0xMC0xMiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3Jvbmhh
QGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBGaXggYnVpbGQgd2l0aCBHTGliIDIuMzEKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggYTU2MDM1
YjlhNGQzM2UyOTFiNTYwYTU2NzE2YzMwMmFhZWJhODM0YS4uNDM1M2VhODFmYzgzZjEzMmVlNWUz
NTAwZWQ0MWIyOGEwNzRkZjA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmgKQEAgLTE4MSw3ICsxODEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAg
IAotICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKaW5kZXgg
OGVlMDYwNjI3ZWI0NmJhYTI2ZGFhZGUwZGM0MjE3OWU3ZGQ1YWNiZS4uNTllZmY2ODJlY2MyM2Mz
NDJjZGRhMzUyYTM1MzZjN2U5ZDAwOTllYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTIwMSw3ICsyMDEsNyBA
QCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50Pgot
dm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQordm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnB1dFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RS
ZWYuY3BwCmluZGV4IDRjYzY2YTRkYjMyNTQ1MjY1NDU2YmVkMThhMTU1N2RlZjExY2RiZTYuLmQy
NzBlZDNkMGI0Mjg5ZGE1Y2ZiNTFkYzE2NjE4N2I5ZDY0NGYzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBKU09i
amVjdFNldFByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNT
dHJpbmdSZWYgcHJvcGUKICAgICAgICAganNPYmplY3QtPnB1dFdpdGhBdHRyaWJ1dGVzKGV4ZWMs
IG5hbWUsIGpzVmFsdWUsIGF0dHJpYnV0ZXMpOwogICAgIGVsc2UgewogICAgICAgICBQdXRQcm9w
ZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAganNPYmplY3QtPnB1dChleGVjLCBuYW1lLCBqc1ZhbHVl
LCBzbG90KTsKKyAgICAgICAganNPYmplY3QtPnB1dFZpcnR1YWwoZXhlYywgbmFtZSwganNWYWx1
ZSwgc2xvdCk7CiAgICAgfQogCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CkBAIC0z
MTIsNyArMzEyLDcgQEAgdm9pZCBKU09iamVjdFNldFByb3BlcnR5QXRJbmRleChKU0NvbnRleHRS
ZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIHVuc2lnbmVkIHAKICAgICBKU09iamVjdCoganNP
YmplY3QgPSB0b0pTKG9iamVjdCk7CiAgICAgSlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCB2
YWx1ZSk7CiAgICAgCi0gICAganNPYmplY3QtPnB1dChleGVjLCBwcm9wZXJ0eUluZGV4LCBqc1Zh
bHVlKTsKKyAgICBqc09iamVjdC0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eUluZGV4LCBqc1Zh
bHVlKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKICAgICAgICAgaWYgKGV4Y2Vw
dGlvbikKICAgICAgICAgICAgICpleGNlcHRpb24gPSB0b1JlZihleGVjLCBleGVjLT5leGNlcHRp
b24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBmMmY3Yzc4Y2IzNTViMjVhODU5YjE0
MGQwZmI1OTBmZTQ1YWRmN2MxLi5lNjJhYWJjNzdiYTI4MzY1ZjJiZmQ2OGRkNzgwZWYyMTg3N2Nh
ZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDggQEAKKzIwMTEtMTAt
MTIgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgdmlydHVhbCBwdXQgdG8gcHV0VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWVkIHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRv
IHB1dFZpcnR1YWwgaW4gcHJlcHJhdGlvbiBmb3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGlj
IHB1dCB0byB0aGUgTWV0aG9kVGFibGUgaW4gQ2xhc3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAg
Y29tcGlsZXIgZ2V0cyBtYWQgaWYgdGhlIHZpcnR1YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZl
IHRoZSBzYW1lIAorICAgICAgICBuYW1lLgorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAg
ICAoSlNDOjo6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5jcHA6Cisg
ICAgICAgIChKU09iamVjdFNldFByb3BlcnR5KToKKyAgICAgICAgKEpTT2JqZWN0U2V0UHJvcGVy
dHlBdEluZGV4KToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKyAg
ICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpE
ZWJ1Z2dlckFjdGl2YXRpb246OnB1dFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFj
dGl2YXRpb246OnB1dCk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmg6
CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OnB1
dEJ5VmFsKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAg
IChKU0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3Bw
OgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6CisgICAgICAgICoganNjLmNw
cDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpwdXRWaXJ0dWFs
KToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpwdXRQcm9wZXJ0eSk6CisgICAgICAgIChK
U0M6OmFycmF5UHJvdG9GdW5jQ29uY2F0KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNQ
dXNoKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNSZXZlcnNlKToKKyAgICAgICAgKEpT
Qzo6YXJyYXlQcm90b0Z1bmNTaGlmdCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jU2xp
Y2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NvcnQpOgorICAgICAgICAoSlNDOjph
cnJheVByb3RvRnVuY1NwbGljZSk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jVW5TaGlm
dCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jRmlsdGVyKToKKyAgICAgICAgKEpTQzo6
YXJyYXlQcm90b0Z1bmNNYXApOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNBY3RpdmF0aW9uOjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBydW50
aW1lL0pTQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAg
ICAgIChKU0M6OkpTQXJyYXk6OnB1dFZpcnR1YWwpOgorICAgICAgICAoSlNDOjpKU0FycmF5Ojpw
dXRTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnB1c2gpOgorICAgICAgICAoSlND
OjpKU0FycmF5OjpzaGlmdENvdW50KToKKyAgICAgICAgKEpTQzo6SlNBcnJheTo6dW5zaGlmdENv
dW50KToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pT
Qnl0ZUFycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNCeXRlQXJyYXk6OnB1dFZpcnR1YWwpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2Vs
bC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6cHV0VmlydHVhbCk6CisgICAgICAgIChKU0M6
OkpTQ2VsbDo6cHV0KToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OnB1dFZpcnR1
YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6cHV0Vmly
dHVhbCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpwdXRXaXRoQXR0cmlidXRlcyk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OnB1dFZpcnR1
YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OldhbGtlcjo6d2Fsayk6CisgICAgICAg
ICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRWaXJ0
dWFsKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dCk6CisgICAgICAgIChKU0M6OkpTT2Jq
ZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU1ZhbHVlOjpwdXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2NvcGVPYmplY3Q6OnB1dFZp
cnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6Omxvb2t1cFB1dCk6CisgICAgICAg
ICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RQcm90
b3R5cGU6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OlJlZ0V4cE1hdGNoZXNBcnJheTo6ZmlsbEFycmF5SW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpS
ZWdFeHBDb25zdHJ1Y3Rvcjo6cHV0VmlydHVhbCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5Lmg6Cisg
ICAgICAgIChKU0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6cHV0VmlydHVhbCk6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OnB1
dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAgICAgICog
cnVudGltZS9TdHJpbmdPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OnB1
dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0Lmg6CisgICAgICAgICog
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1
bmNTcGxpdCk6CisKIDIwMTEtMTAtMTIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8u
bm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgRml4IGJ1aWxkIHdpdGggR0xpYiAy
LjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCBmYWE1ZWMy
OTU2YmMxY2NjNWIzYTg3ZTdkNTlmYzFjYzZjMjQxMzM0Li5kMjY0N2M2MTEyNTVjNjBlZjlhMDk1
YjdiN2Q1OTg1NGE1MjcyNWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKQEAgLTE1Miw3ICsxNTIsNiBAQCBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MThnZXRPd25Q
cm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXwogX19aTjNK
U0MxMlN0cmluZ09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNf
MTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5h
bWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRp
b25Nb2RlRQogX19aTjNKU0MxMlN0cmluZ09iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRv
ckUKLV9fWk4zSlNDMTJTdHJpbmdPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVu
dGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTJTdHJp
bmdPYmplY3Q2c19pbmZvRQogX19aTjNKU0MxMlN0cmluZ09iamVjdEMyRVJOU18xMkpTR2xvYmFs
RGF0YUVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDMTNKU0ZpbmFsT2JqZWN0NnNfaW5mb0UKQEAg
LTE2MSw2ICsxNjAsNyBAQCBfX1pOM0pTQzEzU2FtcGxpbmdGbGFnczVzdGFydEV2CiBfX1pOM0pT
QzEzU2FtcGxpbmdGbGFnczdzX2ZsYWdzRQogX19aTjNKU0MxM1N0YXRlbWVudE5vZGU2c2V0TG9j
RWlpCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxMGdsb2JhbEV4ZWNFdgorX19aTjNKU0MxNEpT
R2xvYmFsT2JqZWN0MTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTRKU0dsb2JhbE9i
amVjdDEyZGVmaW5lR2V0dGVyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVBOU184
SlNPYmplY3RFagogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTJkZWZpbmVTZXR0ZXJFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUE5TXzhKU09iamVjdEVqCiBfX1pOM0pTQzE0SlNH
bG9iYWxPYmplY3QxM2NsZWFyUmFyZURhdGFFUE5TXzZKU0NlbGxFCkBAIC0xNjksNyArMTY5LDcg
QEAgX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTZhZGRTdGF0aWNHbG9iYWxzRVBOUzBfMThHbG9i
YWxQcm9wZXJ0eUluZm9FaQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTdwdXRXaXRoQXR0cmli
dXRlc0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVqCiBfX1pO
M0pTQzE0SlNHbG9iYWxPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxP
YmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRl
bnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCi1fX1pOM0pTQzE0SlNHbG9iYWxPYmpl
Y3QzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18x
NVB1dFByb3BlcnR5U2xvdEUgIAorX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0M3B1dEVQTlNfNkpT
Q2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQ
dXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Q0aW5pdEVQTlNfOEpTT2Jq
ZWN0RQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0NnNfaW5mb0UKIF9fWk4zSlNDMTRKU0dsb2Jh
bE9iamVjdEQyRXYKQEAgLTI1NiwxNCArMjU2LDE0IEBAIF9fWk4zSlNDNFlhcnIxMVlhcnJQYXR0
ZXJuQzFFUktOU183VVN0cmluZ0ViYlBQS2MKIF9fWk4zSlNDNFlhcnIxMWJ5dGVDb21waWxlRVJO
UzBfMTFZYXJyUGF0dGVybkVQTjNXVEYyMEJ1bXBQb2ludGVyQWxsb2NhdG9yRQogX19aTjNKU0M0
WWFycjlpbnRlcnByZXRFUE5TMF8xNUJ5dGVjb2RlUGF0dGVybkVSS05TXzdVU3RyaW5nRWpqUGkK
IF9fWk4zSlNDNGNhbGxFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFTlNfOENhbGxUeXBlRVJL
TlNfOENhbGxEYXRhRVMyX1JLTlNfN0FyZ0xpc3RFCitfX1pOM0pTQzZKU0NlbGwxMHB1dFZpcnR1
YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0
UHJvcGVydHlTbG90RQorX19aTjNKU0M2SlNDZWxsMTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0YXRl
RWpOU183SlNWYWx1ZUUKIF9fWk4zSlNDNkpTQ2VsbDExZ2V0Q2FsbERhdGFFUFMwX1JOU184Q2Fs
bERhdGFFCiBfX1pOM0pTQzZKU0NlbGwxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M2SlNDZWxsMTRkZWxldGVQcm9wZXJ0eUVQTlNfOUV4
ZWNTdGF0ZUVqCiBfX1pOM0pTQzZKU0NlbGwxNmdldENvbnN0cnVjdERhdGFFUk5TXzEzQ29uc3Ry
dWN0RGF0YUUKIF9fWk4zSlNDNkpTQ2VsbDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDNkpTQ2Vs
bDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RF
Ci1fX1pOM0pTQzZKU0NlbGwzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5T
XzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKLV9fWk4zSlNDNkpTQ2VsbDNwdXRFUE5T
XzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRSAgCiBfX1pOM0pTQzZKU0NlbGw5Z2V0T2JqZWN0RXYK
IF9fWk4zSlNDNkpTTG9jazEyRHJvcEFsbExvY2tzQzFFTlNfMTRKU0xvY2tCZWhhdmlvckUKIF9f
Wk4zSlNDNkpTTG9jazEyRHJvcEFsbExvY2tzQzFFUE5TXzlFeGVjU3RhdGVFCkBAIC0zMDQsNiAr
MzA0LDggQEAgX19aTjNKU0M4RGVidWdnZXIyM3JlY29tcGlsZUFsbEpTRnVuY3Rpb25zRVBOU18x
MkpTR2xvYmFsRGF0YUUKIF9fWk4zSlNDOERlYnVnZ2VyNmF0dGFjaEVQTlNfMTRKU0dsb2JhbE9i
amVjdEUKIF9fWk4zSlNDOERlYnVnZ2VyNmRldGFjaEVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9f
Wk4zSlNDOERlYnVnZ2VyRDJFdgorX19aTjNKU0M4SlNPYmplY3QxMHB1dFZpcnR1YWxFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlT
bG90RQorX19aTjNKU0M4SlNPYmplY3QxMHB1dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFak5TXzdK
U1ZhbHVlRQogX19aTjNKU0M4SlNPYmplY3QxMWhhc0luc3RhbmNlRVBOU185RXhlY1N0YXRlRU5T
XzdKU1ZhbHVlRVMzXwogX19aTjNKU0M4SlNPYmplY3QxMmRlZmluZUdldHRlckVQTlNfOUV4ZWNT
dGF0ZUVSS05TXzEwSWRlbnRpZmllckVQUzBfagogX19aTjNKU0M4SlNPYmplY3QxMmRlZmluZVNl
dHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVQUzBfagpAQCAtMzI5LDggKzMz
MSw2IEBAIF9fWk4zSlNDOEpTT2JqZWN0MjFnZXRQcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVj
U3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4CiBfX1pOM0pTQzhKU09iamVjdDIyZmlsbEdl
dHRlclByb3BlcnR5U2xvdEVSTlNfMTJQcm9wZXJ0eVNsb3RFUE5TXzE2V3JpdGVCYXJyaWVyQmFz
ZUlOU183VW5rbm93bkVFRQogX19aTjNKU0M4SlNPYmplY3QyM2FsbG9jYXRlUHJvcGVydHlTdG9y
YWdlRVJOU18xMkpTR2xvYmFsRGF0YUVtbQogX19aTjNKU0M4SlNPYmplY3QyNGdldE93blByb3Bl
cnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9w
ZXJ0eURlc2NyaXB0b3JFCi1fX1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFUktO
U18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQotX19aTjNK
U0M4SlNPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRWpOU183SlNWYWx1ZUUKIF9fWk4zSlNDOEpT
T2JqZWN0M3B1dEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVO
U183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDZzX2lu
Zm9FCiBfX1pOM0pTQzhKU1N0cmluZzZzX2luZm9FCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IDdjNzk3ZDNhMzhiNzY0Mzg5MDVl
MTFkYjJlZDBmYzliNDlmZmJiZmMuLjdhNjRlOGJjYWJmYmM3MzA2ZmNkZjBlZjVjNmUwOWJkNzE2
ZGE1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZGVmCkBAIC0yNzEsMTQgKzI3MSwxNCBAQCBFWFBPUlRTCiAgICAgP3Byb3RlY3RlZEds
b2JhbE9iamVjdENvdW50QEhlYXBASlNDQEBRQUVJWFoKICAgICA/cHJvdGVjdGVkT2JqZWN0Q291
bnRASGVhcEBKU0NAQFFBRUlYWgogICAgID9wcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzQEhlYXBA
SlNDQEBRQUU/QVY/JFBhc3NPd25QdHJAVj8kSGFzaENvdW50ZWRTZXRAUEJEVT8kUHRySGFzaEBQ
QkRAV1RGQEBVPyRIYXNoVHJhaXRzQFBCREAyQEBXVEZAQEBXVEZAQFhaCi0gICAgP3B1dEBKU0Nl
bGxASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJAQUFW
UHV0UHJvcGVydHlTbG90QDJAQFoKLSAgICA/cHV0QEpTQ2VsbEBKU0NAQFVBRVhQQVZFeGVjU3Rh
dGVAMkBJVkpTVmFsdWVAMkBAWgotICAgID9wdXRASlNHbG9iYWxPYmplY3RASlNDQEBVQUVYUEFW
RXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90
QDJAQFoKKyAgICA/cHV0QEpTR2xvYmFsT2JqZWN0QEpTQ0BAU0FYUEFWSlNDZWxsQDJAUEFWRXhl
Y1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90QDJA
QFoKICAgICA/cHV0QEpTT2JqZWN0QEpTQ0BAU0FYUEFWSlNDZWxsQDJAUEFWRXhlY1N0YXRlQDJA
QUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90QDJAQFoKLSAgICA/
cHV0QEpTT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBWSlNW
YWx1ZUAyQEFBVlB1dFByb3BlcnR5U2xvdEAyQEBaCi0gICAgP3B1dEBKU09iamVjdEBKU0NAQFVB
RVhQQVZFeGVjU3RhdGVAMkBJVkpTVmFsdWVAMkBAWgotICAgID9wdXRAU3RyaW5nT2JqZWN0QEpT
Q0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBWSlNWYWx1ZUAyQEFBVlB1dFBy
b3BlcnR5U2xvdEAyQEBaCiAgICAgP3B1dERpcmVjdEludGVybmFsQEpTT2JqZWN0QEpTQ0BAQUFF
X05BQVZKU0dsb2JhbERhdGFAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBJX05BQVZQdXRQ
cm9wZXJ0eVNsb3RAMkBQQVZKU0NlbGxAMkBAWgorICAgID9wdXRWaXJ0dWFsQEpTQ2VsbEBKU0NA
QFVBRVhQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBBQVZQdXRQcm9w
ZXJ0eVNsb3RAMkBAWgorICAgID9wdXRWaXJ0dWFsQEpTQ2VsbEBKU0NAQFVBRVhQQVZFeGVjU3Rh
dGVAMkBJVkpTVmFsdWVAMkBAWgorICAgID9wdXRWaXJ0dWFsQEpTR2xvYmFsT2JqZWN0QEpTQ0BA
VUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBWSlNWYWx1ZUAyQEFBVlB1dFByb3Bl
cnR5U2xvdEAyQEBaCisgICAgP3B1dFZpcnR1YWxASlNPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0
YXRlQDJAQUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90QDJAQFoK
KyAgICA/cHV0VmlydHVhbEBKU09iamVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBJVkpTVmFs
dWVAMkBAWgogICAgID9wdXRXaXRoQXR0cmlidXRlc0BKU0dsb2JhbE9iamVjdEBKU0NAQFVBRVhQ
QVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBJQFoKICAgICA/cHV0V2l0
aEF0dHJpYnV0ZXNASlNPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmll
ckAyQFZKU1ZhbHVlQDJASUBaCiAgICAgP3B1dFdpdGhBdHRyaWJ1dGVzQEpTT2JqZWN0QEpTQ0BA
VUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBWSlNWYWx1ZUAyQElfTkFBVlB1dFBy
b3BlcnR5U2xvdEAyQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IDBjZjk3ZjI1OTc3OTg1NjJmMzQ0Yzg2Njlk
YTFkN2JjYTRiOWFiYWQuLjkxOGJkMjgyMTMwNmM1YTcwM2RkNmRjYjdkM2QwOTRjM2M1ZTBiNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFj
dGl2YXRpb24uY3BwCkBAIC03MCwxNCArNzAsMTQgQEAgYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246
OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3RpdmF0aW9uKj4oY2VsbCktPm1fYWN0
aXZhdGlvbi0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKLXZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKK3ZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHNsb3QpOwogfQogCiB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6cHV0KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBzdGF0aWNfY2FzdDxEZWJ1
Z2dlckFjdGl2YXRpb24qPihjZWxsKS0+bV9hY3RpdmF0aW9uLT5wdXQoZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3RpdmF0aW9uKj4o
Y2VsbCktPm1fYWN0aXZhdGlvbi0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTsKIH0KIAogdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OnB1dFdpdGhBdHRyaWJ1dGVz
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCmluZGV4IDdhNTVhN2EzOTU4NGFlN2Q5
YmI1YWU5NGRjYTAwZDU5ZDU5NDQ5OTUuLmU3NzA1MTQ0Mjg1YTI1NzU4OTZlYzdhMDIwYzZmNDU1
ZWVmNmFjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlckFjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05hbWUoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAKaW5kZXggZWIwZDhhMzIyYmJkMDgxZGU2NjkwMzE5YmY5MjY4NGI1ZTY5NGQyMS4uODUwMzE2
NTU2MmY5YWQ5ZDZkNGNkNGY1NDgyMTU1Yjg2NDg4ZDc1NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC05Niw3ICs5Niw3IEBAIHN0YXRpYyBpbmxp
bmUgdm9pZCBwdXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCB1aW50
MzJfdCBpbmRleCwKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFy
cmF5LT5KU0FycmF5OjpwdXQoZXhlYywgaW5kZXgsIHZhbHVlKTsKKyAgICAgICAgSlNBcnJheTo6
cHV0KGFycmF5LCBleGVjLCBpbmRleCwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC0zNTcsNyArMzU3LDcgQEAgdm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFs
QmV5b25kQXJyYXlCb3VuZHMoRXhlY1N0YXRlKiBleGVjLCBKU0FycmF5KgogewogICAgIC8vIFdl
IHNob3VsZCBvbmx5IGdldCBoZXJlIGlmIGluZGV4IGlzIG91dHNpZGUgdGhlIGV4aXN0aW5nIHZl
Y3Rvci4KICAgICBBU1NFUlQoIWFycmF5LT5jYW5TZXRJbmRleChpbmRleCkpOwotICAgIGFycmF5
LT5KU0FycmF5OjpwdXQoZXhlYywgaW5kZXgsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
KTsKKyAgICBKU0FycmF5OjpwdXQoYXJyYXksIGV4ZWMsIGluZGV4LCBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFZhbHVlKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0
aW9uQXJyYXlQdXNoKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBKU0FycmF5KiBhcnJheSkKQEAgLTM3NCwxMyArMzc0LDEzIEBAIEVuY29kZWRKU1ZhbHVlIERG
R19PUEVSQVRJT04gb3BlcmF0aW9uQXJyYXlQb3AoRXhlY1N0YXRlKiwgSlNBcnJheSogYXJyYXkp
CiB2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZFN0cmljdChFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNDZWxsKiBiYXNlLCBJZGVudGlmaWVy
KiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QodHJ1ZSk7Ci0gICAg
YmFzZS0+cHV0KGV4ZWMsICpwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpLCBzbG90KTsKKyAgICBiYXNlLT5wdXRWaXJ0dWFsKGV4ZWMsICpwcm9wZXJ0eU5hbWUsIEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBzbG90KTsKIH0KIAogdm9pZCBERkdfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUsIEpTQ2VsbCogYmFzZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1l
KQogewogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGZhbHNlKTsKLSAgICBiYXNlLT5wdXQoZXhl
YywgKnByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOwor
ICAgIGJhc2UtPnB1dFZpcnR1YWwoZXhlYywgKnByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRWYWx1ZSksIHNsb3QpOwogfQogCiB2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9u
UHV0QnlJZERpcmVjdFN0cmljdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSwgSlNDZWxsKiBiYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCBl
MDM3MDcwNzgyMjQxOTU2OGE0OTU4MzllZmQ4OWNhYjQzZDZiZjdmLi5jZDg4N2Q1YzhhMWY3MzZh
NjA4ZjYzNmQ1MmRjZjAwMDViM2QyMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTc5MSw3ICs3OTEsNyBAQCBKU1ZhbHVl
IEludGVycHJldGVyOjpleGVjdXRlKFByb2dyYW1FeGVjdXRhYmxlKiBwcm9ncmFtLCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgUwogICAgICAgICAgICAgaWYgKEpTT05QUGF0aC5zaXplKCkgPT0gMSAm
JiBKU09OUFBhdGhbMF0ubV90eXBlID09IExpdGVyYWxQYXJzZXI6OkpTT05QUGF0aEVudHJ5VHlw
ZURlY2xhcmUpIHsKICAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5oYXNQcm9wZXJ0
eShjYWxsRnJhbWUsIEpTT05QUGF0aFswXS5tX3BhdGhFbnRyeU5hbWUpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgICAgICAgICBnbG9i
YWxPYmplY3QtPnB1dChjYWxsRnJhbWUsIEpTT05QUGF0aFswXS5tX3BhdGhFbnRyeU5hbWUsIEpT
T05QVmFsdWUsIHNsb3QpOworICAgICAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPnB1dFZp
cnR1YWwoY2FsbEZyYW1lLCBKU09OUFBhdGhbMF0ubV9wYXRoRW50cnlOYW1lLCBKU09OUFZhbHVl
LCBzbG90KTsKICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgZ2xv
YmFsT2JqZWN0LT5wdXRXaXRoQXR0cmlidXRlcyhjYWxsRnJhbWUsIEpTT05QUGF0aFswXS5tX3Bh
dGhFbnRyeU5hbWUsIEpTT05QVmFsdWUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiAgICAgICAg
ICAgICAgICAgLy8gdmFyIGRlY2xhcmF0aW9ucyByZXR1cm4gdW5kZWZpbmVkCkBAIC0xMjUxLDE0
ICsxMjUxLDE0IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGFibGUq
IGV2YWwsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlCiAgICAgICAgICAgICBjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudCA9IGNvZGVCbG9jay0+dmFyaWFibGUoaSk7CiAgICAgICAgICAgICBp
ZiAoIXZhcmlhYmxlT2JqZWN0LT5oYXNQcm9wZXJ0eShjYWxsRnJhbWUsIGlkZW50KSkgewogICAg
ICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgICAgIHZhcmlh
YmxlT2JqZWN0LT5wdXQoY2FsbEZyYW1lLCBpZGVudCwganNVbmRlZmluZWQoKSwgc2xvdCk7Cisg
ICAgICAgICAgICAgICAgdmFyaWFibGVPYmplY3QtPnB1dFZpcnR1YWwoY2FsbEZyYW1lLCBpZGVu
dCwganNVbmRlZmluZWQoKSwgc2xvdCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAg
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUZ1bmN0aW9uczsgKytpKSB7CiAgICAgICAgICAg
ICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uID0gY29kZUJsb2NrLT5mdW5jdGlvbkRlY2wo
aSk7CiAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgIHZhcmlh
YmxlT2JqZWN0LT5wdXQoY2FsbEZyYW1lLCBmdW5jdGlvbi0+bmFtZSgpLCBmdW5jdGlvbi0+bWFr
ZShjYWxsRnJhbWUsIHNjb3BlQ2hhaW4pLCBzbG90KTsKKyAgICAgICAgICAgIHZhcmlhYmxlT2Jq
ZWN0LT5wdXRWaXJ0dWFsKGNhbGxGcmFtZSwgZnVuY3Rpb24tPm5hbWUoKSwgZnVuY3Rpb24tPm1h
a2UoY2FsbEZyYW1lLCBzY29wZUNoYWluKSwgc2xvdCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKaW5kZXggYTkzMGY1ODJlMDlkYmFmNzFj
NzUxYjI1YzVjNGU3NWE3ZDBhOTYyMi4uNjJjYzEwZDczYjcxMWM5Y2EyOTE4NjJhMjNjZDE3Mjcy
YzhlNGU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKQEAgLTI2MTEs
NyArMjYxMSw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV92YWwpCiAg
ICAgICAgICAgICBpZiAoanNBcnJheS0+Y2FuU2V0SW5kZXgoaSkpCiAgICAgICAgICAgICAgICAg
anNBcnJheS0+c2V0SW5kZXgoKmdsb2JhbERhdGEsIGksIHZhbHVlKTsKICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBqc0FycmF5LT5KU0FycmF5OjpwdXQoY2FsbEZyYW1lLCBpLCB2
YWx1ZSk7CisgICAgICAgICAgICAgICAgSlNBcnJheTo6cHV0KGpzQXJyYXksIGNhbGxGcmFtZSwg
aSwgdmFsdWUpOwogICAgICAgICB9IGVsc2UgaWYgKGlzSlNCeXRlQXJyYXkoZ2xvYmFsRGF0YSwg
YmFzZVZhbHVlKSAmJiBhc0J5dGVBcnJheShiYXNlVmFsdWUpLT5jYW5BY2Nlc3NJbmRleChpKSkg
ewogICAgICAgICAgICAgSlNCeXRlQXJyYXkqIGpzQnl0ZUFycmF5ID0gYXNCeXRlQXJyYXkoYmFz
ZVZhbHVlKTsKICAgICAgICAgICAgIGN0aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhjYWxsRnJh
bWUtPmNvZGVCbG9jaygpLCBTVFVCX1JFVFVSTl9BRERSRVNTLCBGdW5jdGlvblB0cihjdGlfb3Bf
cHV0X2J5X3ZhbF9ieXRlX2FycmF5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IGZkYzY5OWU4
YWNlMTVhYWZjY2IzYjQwZTFhN2I3ZTY5ODkyMDgxMDAuLjBiY2ZjZDZiY2M5ODM2ZDY5N2UyZDMx
ODI1MThiODQ3NzljOTdhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0xODIsNyArMTgyLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgICAgIEpTT2JqZWN0KiBhcnJheSA9IGNvbnN0cnVjdEVtcHR5
QXJyYXkoZ2xvYmFsRXhlYygpKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1
bWVudHMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBhcnJheS0+cHV0KGdsb2JhbEV4ZWMoKSwg
aSwganNTdHJpbmcoZ2xvYmFsRXhlYygpLCBhcmd1bWVudHNbaV0pKTsKKyAgICAgICAgICAgIGFy
cmF5LT5wdXRWaXJ0dWFsKGdsb2JhbEV4ZWMoKSwgaSwganNTdHJpbmcoZ2xvYmFsRXhlYygpLCBh
cmd1bWVudHNbaV0pKTsKICAgICAgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEsIElkZW50aWZpZXIo
Z2xvYmFsRXhlYygpLCAiYXJndW1lbnRzIiksIGFycmF5KTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCmluZGV4IGM0OTRkYTEzMmMyYTMwNTk0
MzJmMjIyMjE0Yzk1Y2YwNGU5YzRhYjUuLjAwOTZjN2M2MDE2OWJhYzAxOTY2MmQ0MTVjYTY3Zjcw
NGU2NWEwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNw
cApAQCAtMjYzLDcgKzI2Myw3IEBAIHZvaWQgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5CiAgICAgSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAK
LXZvaWQgQXJndW1lbnRzOjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVl
IHZhbHVlKQordm9pZCBBcmd1bWVudHM6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNp
Z25lZCBpLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIHB1dCh0aGlzLCBleGVjLCBpLCB2YWx1ZSk7
CiB9CkBAIC0yODMsNyArMjgzLDcgQEAgdm9pZCBBcmd1bWVudHM6OnB1dChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSkKICAgICBKU09iamVj
dDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXIoZXhlYywgVVN0cmluZzo6bnVtYmVy
KGkpKSwgdmFsdWUsIHNsb3QpOwogfQogCi12b2lkIEFyZ3VtZW50czo6cHV0KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIEFyZ3VtZW50czo6cHV0VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0
UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmgKaW5kZXggNmIxZmEwODhiYjU3N2IyOTc1NDMzZTI1MTU2MWE5OGE3ZjY3NDlkNi4uOGI0MjNk
MmRjY2M3YWY3ZmIwMmMyOTRkZGEwYWRiOTk5NmQxOTY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAgLTEzMCw5ICsxMzAsOSBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0
T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0
aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1
YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwo
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBzdGF0aWMgYm9vbCBk
ZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90
b3R5cGUuY3BwCmluZGV4IGNmMTYxNjAzYTM0ZjE1OTMzNmJjMzk1ZTdkZDgyNDlhMWY1N2VjZWQu
LmQyZWU1YTQ2YjY5NjdhMGNjZmQ5YThlZjFiZjI3ZTA1YzIyYzYxYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTE1NCw3ICsx
NTQsNyBAQCBzdGF0aWMgSlNWYWx1ZSBnZXRQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiBvYmosIHVuc2lnbmVkIGluZGV4KQogc3RhdGljIHZvaWQgcHV0UHJvcGVydHkoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogb2JqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgb2JqLT5w
dXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgb2JqLT5wdXRWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiBzdGF0aWMgdW5zaWduZWQg
YXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZChFeGVjU3RhdGUqIGV4ZWMsIGludCBh
cmd1bWVudCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCB1bmRlZmluZWRWYWx1ZSA9IDApCkBA
IC0zNTcsMTEgKzM1NywxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJv
dG9GdW5jQ29uY2F0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIEpTT2JqZWN0KiBjdXJP
YmplY3QgPSBjdXJBcmcudG9PYmplY3QoZXhlYyk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGsgPSAwOyBrIDwgbGVuZ3RoOyArK2spIHsKICAgICAgICAgICAgICAgICBpZiAoSlNWYWx1ZSB2
ID0gZ2V0UHJvcGVydHkoZXhlYywgY3VyT2JqZWN0LCBrKSkKLSAgICAgICAgICAgICAgICAgICAg
YXJyLT5wdXQoZXhlYywgbiwgdik7CisgICAgICAgICAgICAgICAgICAgIGFyci0+cHV0VmlydHVh
bChleGVjLCBuLCB2KTsKICAgICAgICAgICAgICAgICBuKys7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhcnItPnB1dChleGVjLCBuLCBjdXJBcmcpOworICAg
ICAgICAgICAgYXJyLT5wdXRWaXJ0dWFsKGV4ZWMsIG4sIGN1ckFyZyk7CiAgICAgICAgICAgICBu
Kys7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGkgPT0gYXJnQ291bnQpCkBAIC00MTUsMTEgKzQx
NSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUHVzaChF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKTsgbisrKSB7CiAgICAgICAgIC8vIENoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93
OyB3aGVyZSBzYWZlIHdlIGNhbiBkbyBhIGZhc3QgcHV0IGJ5IGluZGV4LgogICAgICAgICBpZiAo
bGVuZ3RoICsgbiA+PSBsZW5ndGgpCi0gICAgICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywgbGVu
Z3RoICsgbiwgZXhlYy0+YXJndW1lbnQobikpOworICAgICAgICAgICAgdGhpc09iai0+cHV0Vmly
dHVhbChleGVjLCBsZW5ndGggKyBuLCBleGVjLT5hcmd1bWVudChuKSk7CiAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7CiAgICAgICAgICAgICBJZGVudGlm
aWVyIHByb3BlcnR5TmFtZShleGVjLCBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDY0X3Q+KGxlbmd0
aCkgKyBzdGF0aWNfY2FzdDxpbnQ2NF90PihuKSkudG9TdHJpbmcoZXhlYykpOwotICAgICAgICAg
ICAgdGhpc09iai0+cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgZXhlYy0+YXJndW1lbnQobiksIHNs
b3QpOworICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUs
IGV4ZWMtPmFyZ3VtZW50KG4pLCBzbG90KTsKICAgICAgICAgfQogICAgIH0KICAgICBKU1ZhbHVl
IG5ld0xlbmd0aChzdGF0aWNfY2FzdDxpbnQ2NF90PihsZW5ndGgpICsgc3RhdGljX2Nhc3Q8aW50
NjRfdD4oZXhlYy0+YXJndW1lbnRDb3VudCgpKSk7CkBAIC00NDEsMTIgKzQ0MSwxMiBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmV2ZXJzZShFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgICAgIEpTVmFsdWUgb2JqID0gZ2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwg
ayk7CiAKICAgICAgICAgaWYgKG9iajIpCi0gICAgICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywg
aywgb2JqMik7CisgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGssIG9iajIp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eShleGVj
LCBrKTsKIAogICAgICAgICBpZiAob2JqKQotICAgICAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMs
IGxrMSwgb2JqKTsKKyAgICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgbGsxLCBv
YmopOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eShl
eGVjLCBsazEpOwogICAgIH0KQEAgLTQ3MSw3ICs0NzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU2hpZnQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IDE7IGsgPCBsZW5ndGg7IGsrKykg
ewogICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIG9iaiA9IGdldFByb3BlcnR5KGV4ZWMsIHRo
aXNPYmosIGspKQotICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywgayAtIDEs
IG9iaik7CisgICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgayAt
IDEsIG9iaik7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICB0aGlz
T2JqLT5kZWxldGVQcm9wZXJ0eShleGVjLCBrIC0gMSk7CiAgICAgICAgICAgICB9CkBAIC01MDAs
NyArNTAwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1Ns
aWNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICB1bnNpZ25lZCBuID0gMDsKICAgICBmb3IgKHVuc2ln
bmVkIGsgPSBiZWdpbjsgayA8IGVuZDsgaysrLCBuKyspIHsKICAgICAgICAgaWYgKEpTVmFsdWUg
diA9IGdldFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGspKQotICAgICAgICAgICAgcmVzT2JqLT5w
dXQoZXhlYywgbiwgdik7CisgICAgICAgICAgICByZXNPYmotPnB1dFZpcnR1YWwoZXhlYywgbiwg
dik7CiAgICAgfQogICAgIHJlc09iai0+c2V0TGVuZ3RoKG4pOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKQEAgLTU1OSw4ICs1NTksOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU29ydChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIH0K
ICAgICAgICAgLy8gU3dhcCB0aGVtaW4gYW5kIGkKICAgICAgICAgaWYgKHRoZW1pbiA+IGkpIHsK
LSAgICAgICAgICAgIHRoaXNPYmotPnB1dChleGVjLCBpLCBtaW5PYmopOwotICAgICAgICAgICAg
dGhpc09iai0+cHV0KGV4ZWMsIHRoZW1pbiwgaU9iaik7CisgICAgICAgICAgICB0aGlzT2JqLT5w
dXRWaXJ0dWFsKGV4ZWMsIGksIG1pbk9iaik7CisgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0
dWFsKGV4ZWMsIHRoZW1pbiwgaU9iaik7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZSh0aGlzT2JqKTsKQEAgLTYwNyw3ICs2MDcsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3BsaWNlKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IGJlZ2lu
OyBrIDwgbGVuZ3RoIC0gZGVsZXRlQ291bnQ7ICsraykgewogICAgICAgICAgICAgICAgICAgICBp
ZiAoSlNWYWx1ZSB2ID0gZ2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwgayArIGRlbGV0ZUNvdW50
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPnB1dChleGVjLCBrICsgYWRkaXRp
b25hbEFyZ3MsIHYpOworICAgICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVh
bChleGVjLCBrICsgYWRkaXRpb25hbEFyZ3MsIHYpOwogICAgICAgICAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eShleGVjLCBr
ICsgYWRkaXRpb25hbEFyZ3MpOwogICAgICAgICAgICAgICAgIH0KQEAgLTYyMCw3ICs2MjAsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3BsaWNlKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgayA9IGxlbmd0aCAtIGRlbGV0ZUNvdW50OyBrID4gYmVnaW47IC0taykgewogICAgICAg
ICAgICAgICAgICAgICBpZiAoSlNWYWx1ZSBvYmogPSBnZXRQcm9wZXJ0eShleGVjLCB0aGlzT2Jq
LCBrICsgZGVsZXRlQ291bnQgLSAxKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNPYmot
PnB1dChleGVjLCBrICsgYWRkaXRpb25hbEFyZ3MgLSAxLCBvYmopOworICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBrICsgYWRkaXRpb25hbEFyZ3MgLSAx
LCBvYmopOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eShleGVjLCBrICsgYWRkaXRpb25hbEFyZ3MgLSAxKTsK
ICAgICAgICAgICAgICAgICB9CkBAIC02MjgsNyArNjI4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1NwbGljZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
IH0KICAgICB9CiAgICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8IGFkZGl0aW9uYWxBcmdzOyAr
K2spCi0gICAgICAgIHRoaXNPYmotPnB1dChleGVjLCBrICsgYmVnaW4sIGV4ZWMtPmFyZ3VtZW50
KGsgKyAyKSk7CisgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgayArIGJlZ2luLCBl
eGVjLT5hcmd1bWVudChrICsgMikpOwogCiAgICAgcHV0UHJvcGVydHkoZXhlYywgdGhpc09iaiwg
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIobGVuZ3RoIC0gZGVsZXRlQ291
bnQgKyBhZGRpdGlvbmFsQXJncykpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKQEAgLTY1MCwxNCArNjUwLDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJy
YXlQcm90b0Z1bmNVblNoaWZ0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGsgPSBsZW5ndGg7IGsgPiAwOyAtLWspIHsKICAgICAgICAg
ICAgICAgICBpZiAoSlNWYWx1ZSB2ID0gZ2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwgayAtIDEp
KQotICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywgayArIG5yQXJncyAtIDEs
IHYpOworICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGsgKyBu
ckFyZ3MgLSAxLCB2KTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
IHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGsgKyBuckFyZ3MgLSAxKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICBmb3IgKHVuc2lnbmVkIGsgPSAwOyBrIDwgbnJB
cmdzOyArK2spCi0gICAgICAgIHRoaXNPYmotPnB1dChleGVjLCBrLCBleGVjLT5hcmd1bWVudChr
KSk7CisgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgaywgZXhlYy0+YXJndW1lbnQo
aykpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIobGVuZ3RoICsgbnJBcmdzKTsKICAg
ICBwdXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3Ro
LCByZXN1bHQpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAgLTY5Niw3
ICs2OTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRmls
dGVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIAogICAgICAgICAgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBjYWNoZWRDYWxsLmNhbGwoKTsKICAgICAgICAgICAgIGlmIChyZXN1bHQudG9Cb29s
ZWFuKGV4ZWMpKQotICAgICAgICAgICAgICAgIHJlc3VsdEFycmF5LT5wdXQoZXhlYywgZmlsdGVy
SW5kZXgrKywgdik7CisgICAgICAgICAgICAgICAgcmVzdWx0QXJyYXktPnB1dFZpcnR1YWwoZXhl
YywgZmlsdGVySW5kZXgrKywgdik7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGsgPT0gbGVuZ3Ro
KQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHRBcnJheSk7CkBAIC03
MTcsNyArNzE3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVu
Y0ZpbHRlcihFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBjYWxs
KGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIGFwcGx5VGhpcywgZWFjaEFyZ3Vt
ZW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQudG9Cb29sZWFuKGV4ZWMpKQotICAgICAgICAgICAg
cmVzdWx0QXJyYXktPnB1dChleGVjLCBmaWx0ZXJJbmRleCsrLCB2KTsKKyAgICAgICAgICAgIHJl
c3VsdEFycmF5LT5wdXRWaXJ0dWFsKGV4ZWMsIGZpbHRlckluZGV4KyssIHYpOwogICAgIH0KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdEFycmF5KTsKIH0KQEAgLTc1Miw3ICs3NTIs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jTWFwKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgICAgIGNhY2hlZENhbGwuc2V0QXJndW1lbnQoMSwganNOdW1i
ZXIoaykpOwogICAgICAgICAgICAgY2FjaGVkQ2FsbC5zZXRBcmd1bWVudCgyLCB0aGlzT2JqKTsK
IAotICAgICAgICAgICAgcmVzdWx0QXJyYXktPkpTQXJyYXk6OnB1dChleGVjLCBrLCBjYWNoZWRD
YWxsLmNhbGwoKSk7CisgICAgICAgICAgICBKU0FycmF5OjpwdXQocmVzdWx0QXJyYXksIGV4ZWMs
IGssIGNhY2hlZENhbGwuY2FsbCgpKTsKICAgICAgICAgfQogICAgIH0KICAgICBmb3IgKDsgayA8
IGxlbmd0aCAmJiAhZXhlYy0+aGFkRXhjZXB0aW9uKCk7ICsraykgewpAQCAtNzczLDcgKzc3Myw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNNYXAoRXhlY1N0
YXRlKiBleGVjKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIAogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGNhbGwoZXhlYywgZnVuY3Rpb24sIGNh
bGxUeXBlLCBjYWxsRGF0YSwgYXBwbHlUaGlzLCBlYWNoQXJndW1lbnRzKTsKLSAgICAgICAgcmVz
dWx0QXJyYXktPnB1dChleGVjLCBrLCByZXN1bHQpOworICAgICAgICByZXN1bHRBcnJheS0+cHV0
VmlydHVhbChleGVjLCBrLCByZXN1bHQpOwogICAgIH0KIAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0QXJyYXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QWN0aXZhdGlvbi5jcHAKaW5kZXggOTBmOTExMDk0NGUxNDE0NTIxM2QzZDBlOWU1ZGMyMTM2ZWRj
MzZhOC4uNzliZDZhMTY5NTIyM2ZjNDdiNjMxMTJjZGYxN2VlM2U4OTQ4YjEyNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC0xNjksNyAr
MTY5LDcgQEAgYm9vbCBKU0FjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LXZvaWQgSlNBY3RpdmF0aW9uOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3Zv
aWQgSlNBY3RpdmF0aW9uOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAppbmRleCA3YmVk
MjlmZDMwYzBiNTZmYzIyN2NlMzhmNjIzYjA5YjkxYzEzM2NiLi44MjEwMGUwNWEzMjUzZjkzNDVk
MzNkNmNkNTRhMTJjNjNiMDc4NWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FjdGl2YXRpb24uaApAQCAtNjUsNyArNjUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJh
dGlvbk1vZGUpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFs
IHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwg
UHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAK
ICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggMjE3M2ZmMTZkODRhM2U1ZTk1YzBi
NTRlYTY0Zjg0YWRhMTUxYzQxNC4uMjgyNWEwYzk0ZmFmZjNhYzM1ZTY2N2ZmMDk0YjMzOTRmYzZj
NWY1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTMz
NCw3ICszMzQsNyBAQCBib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcgogICAgIHJldHVybiBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRv
cik7CiB9CiAKLXZvaWQgSlNBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
Cit2b2lkIEpTQXJyYXk6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkK
IHsKICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CkBA
IC0zNjMsNyArMzYzLDcgQEAgdm9pZCBKU0FycmF5OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwKICAgICBKU09iamVjdDo6
cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCi12
b2lkIEpTQXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFs
dWUpCit2b2lkIEpTQXJyYXk6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBp
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIHB1dCh0aGlzLCBleGVjLCBpLCB2YWx1ZSk7CiB9CkBA
IC00MDYsNyArNDA2LDcgQEAgTkVWRVJfSU5MSU5FIHZvaWQgSlNBcnJheTo6cHV0U2xvd0Nhc2Uo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHUKICAgICBpZiAoaSA+PSBN
SU5fU1BBUlNFX0FSUkFZX0lOREVYKSB7CiAgICAgICAgIGlmIChpID4gTUFYX0FSUkFZX0lOREVY
KSB7CiAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgIHB1dChl
eGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpLCB2YWx1ZSwgc2xvdCk7CisgICAgICAgICAg
ICBwdXRWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaSksIHZhbHVlLCBzbG90
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC03ODEsNyArNzgxLDcgQEAg
dm9pZCBKU0FycmF5OjpwdXNoKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKICAgICBB
cnJheVN0b3JhZ2UqIHN0b3JhZ2UgPSBtX3N0b3JhZ2U7CiAKICAgICBpZiAoVU5MSUtFTFkoc3Rv
cmFnZS0+bV9sZW5ndGggPT0gMHhGRkZGRkZGRnUpKSB7Ci0gICAgICAgIHB1dChleGVjLCBzdG9y
YWdlLT5tX2xlbmd0aCwgdmFsdWUpOworICAgICAgICBwdXRWaXJ0dWFsKGV4ZWMsIHN0b3JhZ2Ut
Pm1fbGVuZ3RoLCB2YWx1ZSk7CiAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VF
cnJvcihleGVjLCAiSW52YWxpZCBhcnJheSBsZW5ndGgiKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC04MzUsNyArODM1LDcgQEAgdm9pZCBKU0FycmF5OjpzaGlmdENvdW50KEV4ZWNTdGF0
ZSogZXhlYywgaW50IGNvdW50KQogICAgICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KHRo
aXMpOwogICAgICAgICAgICAgICAgIEpTVmFsdWUgcCA9IHByb3RvdHlwZSgpOwogICAgICAgICAg
ICAgICAgIGlmICgoIXAuaXNOdWxsKCkpICYmIChhc09iamVjdChwKS0+Z2V0UHJvcGVydHlTbG90
KGV4ZWMsIGksIHNsb3QpKSkKLSAgICAgICAgICAgICAgICAgICAgcHV0KGV4ZWMsIGksIHNsb3Qu
Z2V0VmFsdWUoZXhlYywgaSkpOworICAgICAgICAgICAgICAgICAgICBwdXRWaXJ0dWFsKGV4ZWMs
IGksIHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAK
QEAgLTg4NCw3ICs4ODQsNyBAQCB2b2lkIEpTQXJyYXk6OnVuc2hpZnRDb3VudChFeGVjU3RhdGUq
IGV4ZWMsIGludCBjb3VudCkKICAgICAgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlz
KTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIHAgPSBwcm90b3R5cGUoKTsKICAgICAgICAgICAg
ICAgICBpZiAoKCFwLmlzTnVsbCgpKSAmJiAoYXNPYmplY3QocCktPmdldFByb3BlcnR5U2xvdChl
eGVjLCBpLCBzbG90KSkpCi0gICAgICAgICAgICAgICAgICAgIHB1dChleGVjLCBpLCBzbG90Lmdl
dFZhbHVlKGV4ZWMsIGkpKTsKKyAgICAgICAgICAgICAgICAgICAgcHV0VmlydHVhbChleGVjLCBp
LCBzbG90LmdldFZhbHVlKGV4ZWMsIGkpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAppbmRleCBkYmZjMTcxMTQy
NThhMTM3ODIxODQzY2I5NTc4YjNhOWNkZDE2ZDM4Li41MzVjYzYzZTk5ZDVjNmM4MTZhNTE0YjMy
NGZjOTA1ZmI2NjA5ZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5o
CkBAIC05OSw3ICs5OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICAgICAgdmlydHVh
bCB2b2lkIHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOyAv
LyBGSVhNRTogTWFrZSBwcm90ZWN0ZWQgYW5kIGFkZCBzZXRJdGVtLgorICAgICAgICB2aXJ0dWFs
IHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUpOyAvLyBGSVhNRTogTWFrZSBwcm90ZWN0ZWQgYW5kIGFkZCBzZXRJdGVtLgogICAgICAgICBz
dGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlKTsKIAogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBDbGFzc0lu
Zm8gc19pbmZvOwpAQCAtMTcxLDcgKzE3MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJv
dGVjdGVkOgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3Zl
cnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHko
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAppbmRleCA4YWI0NzI2ZTNlYTFm
NWY5MTAwZjBiNDA2MjFmMzE0NzdiZDYzOTZhLi41MDczNTQ0MjUyNzNmYTE3M2I3YWNmYzM5OTg3
NTA0ZThlNjgxNzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0J5dGVBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRl
QXJyYXkuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvCiAgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgSWRl
bnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCBzbG90KTsKIH0KIAotdm9pZCBKU0J5
dGVBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIEpTQnl0ZUFy
cmF5OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpAQCAtMTE0LDcgKzEx
NCw3IEBAIHZvaWQgSlNCeXRlQXJyYXk6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOCiAgICAgSlNPYmplY3Q6OnB1dCh0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAotdm9pZCBKU0J5dGVB
cnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlKQordm9pZCBKU0J5dGVBcnJheTo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBwdXQodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCeXRlQXJyYXkuaAppbmRleCA0MGYwYWExYTdiN2E0YWU2ZjUzMDI2NTQyZDE3OTQ1YTY1
NTFkZjEwLi5mZWU1NGU4ZGFmOWNhMmIwYTVjZTVlOTU2ZmI3MTY3NmE2YjlmZmExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKQEAgLTkzLDkgKzkzLDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlT
bG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2Vs
bCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVl
LCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlND
ZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1
ZSk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBF
eGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGwuY3BwCmluZGV4IDg5NzNkYzMwMDQ0ZmJmZjc4ZjBmMDYzNjIzOGI5ZjhiZTM5ZTk3OTEu
LjYwODM1YThiMzNlMTdmYzIxMjg4MWI1ZmIwMWI3MWVlZDE4ZTZkMTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcApAQCAtMTAzLDI0ICsxMDMsMjQgQEAgYm9vbCBK
U0NlbGw6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
dW5zaWduZWQgaWRlbnRpZmkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBKU0NlbGw6OnB1
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgSlNDZWxsOjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1
ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBpZGVudGlm
aWVyLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHZvaWQgSlNDZWxsOjpwdXQoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBjZWxsLT50b09iamVjdChleGVjLCBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5wdXQoZXhlYywgaWRlbnRpZmllciwgdmFsdWUs
IHNsb3QpOworICAgIGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKSktPnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllciwgdmFsdWUsIHNsb3QpOwogfQogCi12
b2lkIEpTQ2VsbDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllciwgSlNW
YWx1ZSB2YWx1ZSkKK3ZvaWQgSlNDZWxsOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5z
aWduZWQgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBwdXQodGhpcywgZXhlYywg
aWRlbnRpZmllciwgdmFsdWUpOwogfQogCiB2b2lkIEpTQ2VsbDo6cHV0KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlKQogewot
ICAgIGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnB1
dChleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSk7CisgICAgY2VsbC0+dG9PYmplY3QoZXhlYywgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0VmlydHVhbChleGVjLCBpZGVudGlmaWVyLCB2
YWx1ZSk7CiB9CiAKIGJvb2wgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCmluZGV4IDIzZjBmZDVjMGZhZjc1NDlmZTc2MDhlMGU0ZWIwZjUzZjMyMDZiZTcu
LmUzMWExZWJiZDY3YTNhZDg0Y2NjYTM1OTZiNzZiNzNiOGU1NDFhN2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC05MCw5ICs5MCw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAvLyBPYmplY3Qgb3BlcmF0aW9ucywgd2l0aCB0aGUgdG9PYmplY3Qgb3BlcmF0
aW9uIGluY2x1ZGVkLgogICAgICAgICBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0
OwogICAgICAgICBjb25zdCBNZXRob2RUYWJsZSogbWV0aG9kVGFibGUoKSBjb25zdDsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0
VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQ
cm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCA0OTMzMzA0
NmNkNzliODk4NWRkNzVmY2FmZTViMTZjYTdlNDNjYTI1Li45YWMzZDU2NGZlNTk0ODU5YTEyNDdj
MTZhOWRjNzY5M2I1NjYwZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmNwcApAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgSlNGdW5jdGlvbjo6Z2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0
CiAgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2Rl
KTsKIH0KIAotdm9pZCBKU0Z1bmN0aW9uOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKK3ZvaWQgSlNGdW5jdGlvbjo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCA5Yjlk
YTljZTlmYWI3NTQ3MWRhOGNmOWFjMTdmZmJjMGQ3NzNiYzM2Li5kMzE0Y2YxMTc0ZDBhY2ZmYmIz
MjQxZWVkZDUzOWJlYWMwZDY2YjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNGdW5jdGlvbi5oCkBAIC0xNDMsNyArMTQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgYm9vbCBpc0hvc3RGdW5jdGlvbk5vbklubGluZSgpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1
YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggMGZlNDM2ZGI3MmNkMDY0
MGIzODU4MjA1ZmE0MWI5NDAzZThmNDAzMC4uMjI1ZTY3MTYxZDgxN2Y4ODJjYzMwNzk1MDFjYzRk
Y2U3MjhkYTkzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6Omlu
aXQoSlNPYmplY3QqIHRoaXNWYWx1ZSkKICAgICByZXNldChwcm90b3R5cGUoKSk7CiB9CiAKLXZv
aWQgSlNHbG9iYWxPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9p
ZCBKU0dsb2JhbE9iamVjdDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90
KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0K
QEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpwdXRXaXRoQXR0cmlidXRl
cyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcgogCiAgICAgSlNWYWx1
ZSB2YWx1ZUJlZm9yZSA9IGdldERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFt
ZSk7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgSlNWYXJpYWJsZU9iamVjdDo6cHV0
KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIEpTVmFyaWFibGVPYmplY3Q6
OnB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKICAgICBpZiAoIXZh
bHVlQmVmb3JlKSB7CiAgICAgICAgIEpTVmFsdWUgdmFsdWVBZnRlciA9IGdldERpcmVjdChleGVj
LT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGlmICh2YWx1ZUFmdGVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXgg
MTE1ZDVjYjZiZDk1NDgzNzNhYWNlODAxMzhjOGVhZjI2M2EzYTY3OC4uYTdmZTE2Nzc3NGFhZmY0
OGU0MGYxYTQxYjgzOGQzZTgzMmVmMTNiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xODQsNyArMTg0LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzT3du
UHJvcGVydHlGb3JXcml0ZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJik7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCB2b2lk
IHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCmluZGV4IGUxNGE2OGJkOTRm
YTE0ZWUwY2Q2NGQwZjM0MjdhYTJjYzQ2ZGI5ZDkuLjM3ODdjOTQ5ZTFhOGQ0MzQ5YzRkMmVkOWI0
NTFjM2ExYzRjZDA2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Tm90QW5PYmplY3QuY3BwCkBAIC04Niw3ICs4Niw3IEBAIGJvb2wgSlNOb3RBbk9iamVjdDo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYs
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEpTTm90QW5PYmplY3Q6OnB1dChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgSlNOb3RBbk9iamVjdDo6cHV0VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywgaWRlbnRpZmll
ciwgdmFsdWUsIHNsb3QpOwogfQpAQCAtOTYsNyArOTYsNyBAQCB2b2lkIEpTTm90QW5PYmplY3Q6
OnB1dChKU0NlbGwqLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImICwgSlNWYWx1
ZSwgUAogICAgIEFTU0VSVF9VTlVTRUQoZXhlYywgZXhlYy0+aGFkRXhjZXB0aW9uKCkpOwogfQog
Ci12b2lkIEpTTm90QW5PYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpT
VmFsdWUgdmFsdWUpCit2b2lkIEpTTm90QW5PYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIHB1dCh0aGlzLCBleGVjLCBp
LCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2Jq
ZWN0LmgKaW5kZXggYjhmMGZhYTg1NjIyNjIzYzIwNzljOWM5YzcxMzdkN2Q3YjI4NTFmNy4uMTZh
Mjc2OGRhZmJlOTVkMDI1YTI5OWI4OTQyODVhZTdlYjU3ZWUzNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApAQCAtNzYsMTAgKzc2LDEwIEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKLSAgICAgICAgdmly
dHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0Vmly
dHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0
dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgICAg
IHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCBkM2ZjMzU5OTMxZTAxNjkxMDg3
NWZjODg5Y2JjZmMyODg1YzNjYzNlLi41NzVkMWMxYjM0MTIyMmI4YzU5YTkwNmVhNWZmMjVlMWNj
YzUzOWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNw
cApAQCAtNzE1LDcgKzcxNSw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhK
U1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAgICAgICAgICAgICAgICAgIGlmIChpc0pTQXJyYXkoJm1f
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBhcnJheSkgJiYgYXJyYXktPmNhblNldEluZGV4KGluZGV4U3Rh
Y2subGFzdCgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5LT5zZXRJbmRleChtX2V4
ZWMtPmdsb2JhbERhdGEoKSwgaW5kZXhTdGFjay5sYXN0KCksIGZpbHRlcmVkVmFsdWUpOwogICAg
ICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBhcnJheS0+cHV0
KG1fZXhlYywgaW5kZXhTdGFjay5sYXN0KCksIGZpbHRlcmVkVmFsdWUpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYXJyYXktPnB1dFZpcnR1YWwobV9leGVjLCBpbmRleFN0YWNrLmxhc3QoKSwg
ZmlsdGVyZWRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmICht
X2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNOdWxs
KCk7CkBAIC03NzksNyArNzc5LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxr
KEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRWYWx1ZS5p
c1VuZGVmaW5lZCgpKQogICAgICAgICAgICAgICAgICAgICBvYmplY3QtPmRlbGV0ZVByb3BlcnR5
KG1fZXhlYywgcHJvcCk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICBvYmplY3QtPnB1dChtX2V4ZWMsIHByb3AsIGZpbHRlcmVkVmFsdWUsIHNsb3QpOworICAgICAg
ICAgICAgICAgICAgICBvYmplY3QtPnB1dFZpcnR1YWwobV9leGVjLCBwcm9wLCBmaWx0ZXJlZFZh
bHVlLCBzbG90KTsKICAgICAgICAgICAgICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgICAgICAgICAgICAgIGlu
ZGV4U3RhY2subGFzdCgpKys7CkBAIC04MTAsNyArODEwLDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFs
dWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICB9CiAgICAgSlNPYmplY3Qq
IGZpbmFsSG9sZGVyID0gY29uc3RydWN0RW1wdHlPYmplY3QobV9leGVjKTsKICAgICBQdXRQcm9w
ZXJ0eVNsb3Qgc2xvdDsKLSAgICBmaW5hbEhvbGRlci0+cHV0KG1fZXhlYywgbV9leGVjLT5nbG9i
YWxEYXRhKCkucHJvcGVydHlOYW1lcy0+ZW1wdHlJZGVudGlmaWVyLCBvdXRWYWx1ZSwgc2xvdCk7
CisgICAgZmluYWxIb2xkZXItPnB1dFZpcnR1YWwobV9leGVjLCBtX2V4ZWMtPmdsb2JhbERhdGEo
KS5wcm9wZXJ0eU5hbWVzLT5lbXB0eUlkZW50aWZpZXIsIG91dFZhbHVlLCBzbG90KTsKICAgICBy
ZXR1cm4gY2FsbFJldml2ZXIoZmluYWxIb2xkZXIsIGpzRW1wdHlTdHJpbmcobV9leGVjKSwgb3V0
VmFsdWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAK
aW5kZXggYWFjZWM2ZDQzNzY3MGVhM2ZhMDEwMDNkNzhlYTA3MzNlNDllMGU0ZC4uNjc5NjA3MzY5
ZjI4N2ZmZWFhM2YyMDZiZDJiMDExYzJjYWNhYjYyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyB2b2lkIHRo
cm93U2V0dGVyRXJyb3IoRXhlY1N0YXRlKiBleGVjKQogICAgIHRocm93RXJyb3IoZXhlYywgY3Jl
YXRlVHlwZUVycm9yKGV4ZWMsICJzZXR0aW5nIGEgcHJvcGVydHkgdGhhdCBoYXMgb25seSBhIGdl
dHRlciIpKTsKIH0KIAotdm9pZCBKU09iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCit2b2lkIEpTT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3Qp
OwogfQpAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgSlNPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lCiAgICAgcmV0
dXJuOwogfQogCi12b2lkIEpTT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCit2b2lkIEpTT2JqZWN0OjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQogewog
ICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKIH0KQEAgLTE5OCw3ICsx
OTgsNyBAQCB2b2lkIEpTT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCiB2b2lkIEpTT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBzdGF0aWNfY2FzdDxKU09iamVjdCo+
KGNlbGwpLT5wdXQoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCB2
YWx1ZSwgc2xvdCk7CisgICAgc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihjZWxsKS0+cHV0VmlydHVh
bChleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHZhbHVlLCBzbG90
KTsKIH0KIAogdm9pZCBKU09iamVjdDo6cHV0V2l0aEF0dHJpYnV0ZXMoSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IHVuc2lnbmVkIGF0dHJpYnV0ZXMsIGJvb2wgY2hlY2tSZWFkT25seSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQpAQCAtNzYzLDcgKzc2Myw3IEBAIGJvb2wgSlNPYmplY3Q6OmRlZmluZU93blByb3Bl
cnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lCiAgICAg
ICAgICAgICBpZiAoIWRlc2NyaXB0b3IudmFsdWUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgcHV0
KGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvci52YWx1ZSgpLCBzbG90KTsKKyAgICAgICAg
ICAgIHB1dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLnZhbHVlKCksIHNs
b3QpOwogICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggM2FkNzBjNTBhYWQ2MWFkMzdmY2MyZmE5
YjkwNGE3MGIzN2ZmMzNiMi4uNGQ1ZTQ4NzhhOGFkODcwNWFkMzhkNjdjYWFlYWVjN2RhOWUyMzI5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xMDcsOSAr
MTA3LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAot
ICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lk
IHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSk7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXRXaXRoQXR0cmlidXRlcyhKU0dsb2JhbERhdGEqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIGJvb2wgY2hlY2tS
ZWFkT25seSwgUHV0UHJvcGVydHlTbG90JiBzbG90KTsKQEAgLTgwOSwxMCArODA5LDEwIEBAIGlu
bGluZSBKU1ZhbHVlIEpTVmFsdWU6OmdldChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90CiBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXQoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBpZiAoVU5MSUtFTFkoIWlzQ2VsbCgpKSkgewot
ICAgICAgICBzeW50aGVzaXplT2JqZWN0KGV4ZWMpLT5wdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2
YWx1ZSwgc2xvdCk7CisgICAgICAgIHN5bnRoZXNpemVPYmplY3QoZXhlYyktPnB1dFZpcnR1YWwo
ZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgYXNDZWxsKCktPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAg
ICBhc0NlbGwoKS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsK
IH0KIAogaW5saW5lIHZvaWQgSlNWYWx1ZTo6cHV0RGlyZWN0KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHNsb3QpCkBAIC04MjUsMTAgKzgyNSwxMCBAQCBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXRE
aXJlY3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsCiBp
bmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKFVOTElLRUxZKCFpc0NlbGwoKSkpIHsK
LSAgICAgICAgc3ludGhlc2l6ZU9iamVjdChleGVjKS0+cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUpOworICAgICAgICBzeW50aGVzaXplT2JqZWN0KGV4ZWMpLT5wdXRWaXJ0dWFsKGV4ZWMs
IHByb3BlcnR5TmFtZSwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGFzQ2Vs
bCgpLT5wdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CisgICAgYXNDZWxsKCktPnB1dFZp
cnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CiB9CiAKIEFMV0FZU19JTkxJTkUgdm9p
ZCBKU09iamVjdDo6dmlzaXRDaGlsZHJlbkRpcmVjdChTbG90VmlzaXRvciYgdmlzaXRvcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVj
dC5jcHAKaW5kZXggOGQwZmRhOTAzNzMyMmRmMTczMDY1ZGM2MWNjOTE0ZTUzMDA3YmYwMi4uNzRm
Njk5ZDliOWE5YjE3ODFiYWY3YmEyNDA4NGY0MTA3Y2FjZGYyMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAKQEAgLTQ5
LDcgKzQ5LDcgQEAgSlNPYmplY3QqIEpTU3RhdGljU2NvcGVPYmplY3Q6OnRvVGhpc09iamVjdChF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIGV4ZWMtPmdsb2JhbFRoaXNWYWx1ZSgp
OwogfQogCi12b2lkIEpTU3RhdGljU2NvcGVPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQordm9pZCBKU1N0YXRpY1Njb3BlT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCmluZGV4IGRjMjg3Nzk1ZGQ5ZjE2MDRmNmI1MWYyNDZi
NmNhOTJlZjk4YTE4MDUuLjg1ODViYmU0YmUyN2QyMDI5MTM2Y2YzNDBiM2E1NjFiMzVjODUyYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3Bl
T2JqZWN0LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIEpTQ3sKICAgICAgICAgdmlydHVh
bCBKU09iamVjdCogdG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0
dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2b2lk
IHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVl
LCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0xvb2t1cC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3Vw
LmgKaW5kZXggNzgyZGMwZmJjNzBjODNhOTJhZTEwZjEwNDlhZmZkYzAzMjY5ODgxYy4uOGIwYjhk
OTQ3MjhhYjZkNDJkY2RmODA1MTkyZWQ2NTBmODI2MjU1YiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTG9va3VwLmgKQEAgLTM1Miw3ICszNTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICBpbmxpbmUgdm9pZCBsb29rdXBQdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIGNvbnN0IEhhc2hUYWJsZSogdGFibGUsIFRo
aXNJbXAqIHRoaXNPYmosIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICB7CiAgICAgICAgIGlm
ICghbG9va3VwUHV0PFRoaXNJbXA+KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHRhYmxlLCB0
aGlzT2JqKSkKLSAgICAgICAgICAgIHRoaXNPYmotPlBhcmVudEltcDo6cHV0KGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpOyAvLyBub3QgZm91bmQ6IGZvcndhcmQgdG8gcGFyZW50Cisg
ICAgICAgICAgICBQYXJlbnRJbXA6OnB1dCh0aGlzT2JqLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCBzbG90KTsgLy8gbm90IGZvdW5kOiBmb3J3YXJkIHRvIHBhcmVudAogICAgIH0KIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmNwcAppbmRleCA5OWE1YmIyMjhiZjI3ZWMxYWQ0MWE5ZGI0NDRlMjNlNzVm
ODRmNTdhLi4zMmQ2YTcyN2ZjZmFjMzA5MzI0MWJlODdiNzgxMjljNjE2MzViOTE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKQEAg
LTc1LDcgKzc1LDcgQEAgdm9pZCBPYmplY3RQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqKQogICAgIEFTU0VSVChpbmhlcml0
cygmc19pbmZvKSk7CiB9CiAKLXZvaWQgT2JqZWN0UHJvdG90eXBlOjpwdXQoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgT2JqZWN0UHJvdG90eXBlOjpwdXRWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RQcm90b3R5cGUuaAppbmRleCBlMzkwMDIyZjY3Yzc1NDIwNWJlMzIxZWY3Y2IwOWQ0
NWZkNTVlMTQ4Li5lYWFjMWQxZTgxNTIwOTJmYWM3MGJmZTdjNWY1ZTQ1YWRlOWQ4ODJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAt
NTAsNyArNTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIE9i
amVjdFByb3RvdHlwZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgdmlydHVhbCB2
b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1Zh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmNwcAppbmRleCA0MGQ0OTE0NjQ0Yzk4NjNiYzI0NGMxZDRiMzFkY2JiYWRhMWVjNzAwLi5jMzgw
ZGE0NmM2ZjE4OWRmNGE3MGFhOWMyNzYzOGQzY2U1ZWViNWQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0xNDgsMTQg
KzE0OCwxNCBAQCB2b2lkIFJlZ0V4cE1hdGNoZXNBcnJheTo6ZmlsbEFycmF5SW5zdGFuY2UoRXhl
Y1N0YXRlKiBleGVjKQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPD0gbGFzdE51bVN1YnBh
dHRlcm5zOyArK2kpIHsKICAgICAgICAgaW50IHN0YXJ0ID0gZC0+bGFzdE92ZWN0b3IoKVsyICog
aV07CiAgICAgICAgIGlmIChzdGFydCA+PSAwKQotICAgICAgICAgICAgSlNBcnJheTo6cHV0KGV4
ZWMsIGksIGpzU3Vic3RyaW5nKGV4ZWMsIGQtPmxhc3RJbnB1dCwgc3RhcnQsIGQtPmxhc3RPdmVj
dG9yKClbMiAqIGkgKyAxXSAtIHN0YXJ0KSk7CisgICAgICAgICAgICBKU0FycmF5OjpwdXQodGhp
cywgZXhlYywgaSwganNTdWJzdHJpbmcoZXhlYywgZC0+bGFzdElucHV0LCBzdGFydCwgZC0+bGFz
dE92ZWN0b3IoKVsyICogaSArIDFdIC0gc3RhcnQpKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgSlNBcnJheTo6cHV0KGV4ZWMsIGksIGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgSlNB
cnJheTo6cHV0KHRoaXMsIGV4ZWMsIGksIGpzVW5kZWZpbmVkKCkpOwogICAgIH0KIAogICAgIFB1
dFByb3BlcnR5U2xvdCBzbG90OwotICAgIEpTQXJyYXk6OnB1dChleGVjLCBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkuaW5kZXgsIGpzTnVtYmVyKGQtPmxhc3RPdmVjdG9yKClbMF0pLCBzbG90KTsKLSAg
ICBKU0FycmF5OjpwdXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmlucHV0LCBqc1N0cmlu
ZyhleGVjLCBkLT5pbnB1dCksIHNsb3QpOworICAgIEpTQXJyYXk6OnB1dCh0aGlzLCBleGVjLCBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkuaW5kZXgsIGpzTnVtYmVyKGQtPmxhc3RPdmVjdG9yKClbMF0p
LCBzbG90KTsKKyAgICBKU0FycmF5OjpwdXQodGhpcywgZXhlYywgZXhlYy0+cHJvcGVydHlOYW1l
cygpLmlucHV0LCBqc1N0cmluZyhleGVjLCBkLT5pbnB1dCksIHNsb3QpOwogCiAgICAgZGVsZXRl
IGQ7CiAgICAgc2V0U3ViY2xhc3NEYXRhKDApOwpAQCAtMjkyLDcgKzI5Miw3IEBAIEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNs
b3RCYXNlLCBjb25zdCBJCiAgICAgcmV0dXJuIGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJhc2Up
LT5nZXRSaWdodENvbnRleHQoZXhlYyk7CiB9CiAKLXZvaWQgUmVnRXhwQ29uc3RydWN0b3I6OnB1
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBSZWdFeHBDb25zdHJ1Y3Rvcjo6
cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHB1dCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4IDVlMTMxNzY0ZDQ5
MjViNzBjYjM4NjY3OWM3N2U2YTQwMmEzNjFjNGMuLjMxZTkyMjA1ZDY5MzY0ZjY4MDk1ZDZhODA0
YjEzNDMzNGNhNGIxNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwQ29uc3RydWN0b3IuaApAQCAtNzEsNyArNzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
KTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaAppbmRleCBlNzVkNjIxOTE1ZDI0YTVl
ODZiN2E3NTY0YTkyNWEyNmYwNjkwMTFkLi44YzI5ZDk1NjE2MWFiYTQxZDI0MzVhYzU1NTA0ZGFj
ZTFkZDc3YjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBNYXRjaGVzQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBNYXRjaGVzQXJyYXkuaApAQCAtNzYsNyArNzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIHJldHVybiBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUgdiwgUHV0UHJvcGVydHlTbG90JiBzbG90KQorICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSB2LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiAgICAgICAgIHsKICAgICAgICAgICAg
IHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHYsIHNsb3QpOwogICAgICAgICB9CkBAIC04
OSw3ICs4OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgSlNBcnJheTo6cHV0KHRo
aXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdiwgc2xvdCk7CiAgICAgICAgIH0KICAgICAg
ICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdikKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdikKICAgICAg
ICAgewogICAgICAgICAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdik7CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
CmluZGV4IDY2MGIyZTMwYTU0YjkxYzk5MGNhZGFiNGFhMmY2NDM4MzVjMTk1OGMuLmQ4MDRkZjQ4
YTQ2NTU5MDlkNjY2MjM2M2VhYzE3MGYwNTFiMzA5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIEpTVmFs
dWUgcmVnRXhwT2JqZWN0TGFzdEluZGV4KEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJhc2UsIGNv
bnN0IElkZW50aWZpZXImKQogICAgIHJldHVybiBhc1JlZ0V4cE9iamVjdChzbG90QmFzZSktPmdl
dExhc3RJbmRleCgpOwogfQogCi12b2lkIFJlZ0V4cE9iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmIHNsb3QpCit2b2lkIFJlZ0V4cE9iamVjdDo6cHV0VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0
UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmgKaW5kZXggYzBmODNkNTQyY2JkZWJkOWFlZGJiZDg3NWMwMWJiZmU4YjIwMzIzOS4u
MmVhYjEwY2M5NGY4ZDgzNmNhZWVlMmIzZjk2ZTVlOGU1OTNmMTFiZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTY4LDcgKzY4LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwotICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2lu
Zm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcApp
bmRleCA2ZDU0OGNkNmYxYWY0ZTJjNmRkZTlhZjZmNGZjZmU4Njc3MjJlN2ExLi5lOGZjYzg2MTY4
M2JjODI2YTdjMjk3YzlhYjRkMTlkMWFhZWVmZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgYm9vbCBTdHJp
bmdPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHAKICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCi12b2lkIFN0cmluZ09i
amVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIFN0cmluZ09iamVj
dDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHB1dCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKaW5kZXggODcyYTJjMTMzYjY2YTZkMjE3
YWM5YzliZTU2NDlmODJlNWNjMTE4Yi4uNTZiMzdjYzQ5ODFjOWQ2ODVhYTNiNzUzNzA2NTRkMGU4
NDc4YmNjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0
LmgKQEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAg
c3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVh
bCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmNwcAppbmRleCA4OGZiMmU5MjFhZTdkZmEzYzAzYWM4MDZlMzMyOTdlMzRiZDJlZjFl
Li4xOTQxZjYwNGFiZDg4M2JjM2IyNmFjNzg5YmU0NzU4NjQ3ZTQ4NDI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTgzNyw3
ICs4MzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1Nw
bGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgaWYgKHNlcGFyYXRvclZhbHVlLmlzVW5kZWZp
bmVkKCkpIHsKICAgICAgICAgICAgIC8vIGEuIENhbGwgdGhlIFtbRGVmaW5lT3duUHJvcGVydHld
XSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFyZ3VtZW50cyAiMCIsCiAgICAgICAgICAgICAv
LyAgICBQcm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFMsIFtbV3JpdGFibGVdXTogdHJ1
ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFs
c2UuCi0gICAgICAgICAgICByZXN1bHQtPnB1dChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShl
eGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7CisgICAgICAgICAgICByZXN1bHQtPnB1dFZpcnR1YWwo
ZXhlYywgMCwganNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOwogICAg
ICAgICAgICAgLy8gYi4gUmV0dXJuIEEuCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CiAgICAgICAgIH0KQEAgLTg1MCw3ICs4NTAsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgICAgICAgIC8vICAgIFByb3BlcnR5IERlc2NyaXB0b3Ige1tbVmFsdWVdXTogUywgW1tXcml0
YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1
ZX0sIGFuZCBmYWxzZS4KICAgICAgICAgICAgIC8vIGQuIFJldHVybiBBLgogICAgICAgICAgICAg
aWYgKHJlZy0+bWF0Y2goKmdsb2JhbERhdGEsIGlucHV0LCAwKSA8IDApCi0gICAgICAgICAgICAg
ICAgcmVzdWx0LT5wdXQoZXhlYywgMCwganNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVl
LCBpbnB1dCkpOworICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0VmlydHVhbChleGVjLCAwLCBq
c1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7CiAgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAgICAgIH0KIApAQCAtODgxLDcgKzg4
MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQo
RXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgLy8gICAgdGhyb3VnaCBxIChleGNsdXNpdmUp
LgogICAgICAgICAgICAgLy8gMi4gQ2FsbCB0aGUgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVy
bmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzIFRvU3RyaW5nKGxlbmd0aEEpLAogICAgICAg
ICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1ZV1dOiBULCBbW1dyaXRhYmxl
XV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwg
YW5kIGZhbHNlLgotICAgICAgICAgICAgcmVzdWx0LT5wdXQoZXhlYywgcmVzdWx0TGVuZ3RoLCBq
c1N1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRpb24sIG1hdGNoUG9zaXRpb24gLSBwb3NpdGlv
bikpOworICAgICAgICAgICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIHJlc3VsdExlbmd0aCwg
anNTdWJzdHJpbmcoZXhlYywgaW5wdXQsIHBvc2l0aW9uLCBtYXRjaFBvc2l0aW9uIC0gcG9zaXRp
b24pKTsKICAgICAgICAgICAgIC8vIDMuIEluY3JlbWVudCBsZW5ndGhBIGJ5IDEuCiAgICAgICAg
ICAgICAvLyA0LiBJZiBsZW5ndGhBID09IGxpbSwgcmV0dXJuIEEuCiAgICAgICAgICAgICBpZiAo
KytyZXN1bHRMZW5ndGggPT0gbGltaXQpCkBAIC05MDAsNyArOTAwLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgICAgICAgICAgICAgLy8gICBUb1N0cmluZyhsZW5ndGhBKSwgUHJvcGVydHkgRGVzY3JpcHRv
ciB7W1tWYWx1ZV1dOiBjYXBbaV0sIFtbV3JpdGFibGVdXToKICAgICAgICAgICAgICAgICAvLyAg
IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5k
IGZhbHNlLgogICAgICAgICAgICAgICAgIGludCBzdWIgPSBvdmVjdG9yW2kgKiAyXTsKLSAgICAg
ICAgICAgICAgICByZXN1bHQtPnB1dChleGVjLCByZXN1bHRMZW5ndGgsIHN1YiA8IDAgPyBqc1Vu
ZGVmaW5lZCgpIDoganNTdWJzdHJpbmcoZXhlYywgaW5wdXQsIHN1Yiwgb3ZlY3RvcltpICogMiAr
IDFdIC0gc3ViKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIHJl
c3VsdExlbmd0aCwgc3ViIDwgMCA/IGpzVW5kZWZpbmVkKCkgOiBqc1N1YnN0cmluZyhleGVjLCBp
bnB1dCwgc3ViLCBvdmVjdG9yW2kgKiAyICsgMV0gLSBzdWIpKTsKICAgICAgICAgICAgICAgICAv
LyBjIEluY3JlbWVudCBsZW5ndGhBIGJ5IDEuCiAgICAgICAgICAgICAgICAgLy8gZCBJZiBsZW5n
dGhBID09IGxpbSwgcmV0dXJuIEEuCiAgICAgICAgICAgICAgICAgaWYgKCsrcmVzdWx0TGVuZ3Ro
ID09IGxpbWl0KQpAQCAtOTE5LDcgKzkxOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBpZiAoc2Vw
YXJhdG9yVmFsdWUuaXNVbmRlZmluZWQoKSkgewogICAgICAgICAgICAgLy8gYS4gIENhbGwgdGhl
IFtbRGVmaW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFyZ3VtZW50
cyAiMCIsCiAgICAgICAgICAgICAvLyAgICAgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1ZV1d
OiBTLCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3Vy
YWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgotICAgICAgICAgICAgcmVzdWx0LT5wdXQoZXhlYywg
MCwganNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOworICAgICAgICAg
ICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRo
aXNWYWx1ZSwgaW5wdXQpKTsKICAgICAgICAgICAgIC8vIGIuICBSZXR1cm4gQS4KICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICAgICAgfQpAQCAtOTMyLDcg
KzkzMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Bs
aXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3JpcHRv
ciB7W1tWYWx1ZV1dOiBTLCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVl
LCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgogICAgICAgICAgICAgLy8gZC4g
UmV0dXJuIEEuCiAgICAgICAgICAgICBpZiAoIXNlcGFyYXRvci5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICAgICAgcmVzdWx0LT5wdXQoZXhlYywgMCwganNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhp
c1ZhbHVlLCBpbnB1dCkpOworICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0VmlydHVhbChleGVj
LCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7CiAgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAgICAgIH0KIApAQCAtOTQz
LDcgKzk0Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5j
U3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgQVNTRVJUKGxpbWl0KTsKIAogICAg
ICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0KGV4ZWMsIHBvc2l0aW9u
LCBqc1NpbmdsZUNoYXJhY3RlclN1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRpb24pKTsKKyAg
ICAgICAgICAgICAgICByZXN1bHQtPnB1dFZpcnR1YWwoZXhlYywgcG9zaXRpb24sIGpzU2luZ2xl
Q2hhcmFjdGVyU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBwb3NpdGlvbikpOwogICAgICAgICAgICAg
fSB3aGlsZSAoKytwb3NpdGlvbiA8IGxpbWl0KTsKIAogICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZXN1bHQpOwpAQCAtOTYwLDcgKzk2MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAg
ICAgICAgLy8gICAgdGhyb3VnaCBxIChleGNsdXNpdmUpLgogICAgICAgICAgICAgLy8gMi4gQ2Fs
bCB0aGUgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJn
dW1lbnRzIFRvU3RyaW5nKGxlbmd0aEEpLAogICAgICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVz
Y3JpcHRvciB7W1tWYWx1ZV1dOiBULCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1d
OiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgotICAgICAgICAgICAg
cmVzdWx0LT5wdXQoZXhlYywgcmVzdWx0TGVuZ3RoLCBqc1N1YnN0cmluZyhleGVjLCBpbnB1dCwg
cG9zaXRpb24sIG1hdGNoUG9zaXRpb24gLSBwb3NpdGlvbikpOworICAgICAgICAgICAgcmVzdWx0
LT5wdXRWaXJ0dWFsKGV4ZWMsIHJlc3VsdExlbmd0aCwganNTdWJzdHJpbmcoZXhlYywgaW5wdXQs
IHBvc2l0aW9uLCBtYXRjaFBvc2l0aW9uIC0gcG9zaXRpb24pKTsKICAgICAgICAgICAgIC8vIDMu
IEluY3JlbWVudCBsZW5ndGhBIGJ5IDEuCiAgICAgICAgICAgICAvLyA0LiBJZiBsZW5ndGhBID09
IGxpbSwgcmV0dXJuIEEuCiAgICAgICAgICAgICBpZiAoKytyZXN1bHRMZW5ndGggPT0gbGltaXQp
CkBAIC05NzYsNyArOTc2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQ
cm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgLy8gICAgIHRocm91Z2ggcyAoZXhj
bHVzaXZlKS4KICAgICAvLyAxNS4gQ2FsbCB0aGUgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVy
bmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzIFRvU3RyaW5nKGxlbmd0aEEpLCBQcm9wZXJ0
eSBEZXNjcmlwdG9yCiAgICAgLy8gICAgIHtbW1ZhbHVlXV06IFQsIFtbV3JpdGFibGVdXTogdHJ1
ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFs
c2UuCi0gICAgcmVzdWx0LT5wdXQoZXhlYywgcmVzdWx0TGVuZ3RoKyssIGpzU3Vic3RyaW5nKGV4
ZWMsIGlucHV0LCBwb3NpdGlvbiwgaW5wdXQubGVuZ3RoKCkgLSBwb3NpdGlvbikpOworICAgIHJl
c3VsdC0+cHV0VmlydHVhbChleGVjLCByZXN1bHRMZW5ndGgrKywganNTdWJzdHJpbmcoZXhlYywg
aW5wdXQsIHBvc2l0aW9uLCBpbnB1dC5sZW5ndGgoKSAtIHBvc2l0aW9uKSk7CiAKICAgICAvLyAx
Ni4gUmV0dXJuIEEuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9DaGFuZ2VMb2cKaW5kZXggMGU3MzUwZjNiMGMyY2Y1ZDZiYjdlMjdhMmYxMDFmOTcwMDZl
MjQ1NS4uYzQ0NTMxZjk2OWU5NGQxNWYxMjYzMmVjMjk4ZDk2MDk1NGFmM2RkZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTAtMTIgIE1hcmsgSGFobmVu
YmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgdmlydHVhbCBw
dXQgdG8gcHV0VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njk4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW5hbWVkIHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRvIHB1dFZpcnR1YWwgaW4g
cHJlcHJhdGlvbiBmb3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGljIHB1dCB0byB0aGUgTWV0
aG9kVGFibGUgaW4gQ2xhc3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAgY29tcGlsZXIgZ2V0cyBt
YWQgaWYgdGhlIHZpcnR1YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZlIHRoZSBzYW1lIAorICAg
ICAgICBuYW1lLgorCisgICAgICAgICogSlNWYWx1ZVdyYXBwZXIuY3BwOgorICAgICAgICAoSlNW
YWx1ZVdyYXBwZXI6OkpTT2JqZWN0U2V0UHJvcGVydHkpOgorICAgICAgICAqIFVzZXJPYmplY3RJ
bXAuY3BwOgorICAgICAgICAoVXNlck9iamVjdEltcDo6cHV0VmlydHVhbCk6CisgICAgICAgICog
VXNlck9iamVjdEltcC5oOgorCiAyMDExLTEwLTEwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVu
YmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGdldENhbGxEYXRhVmlydHVhbCBtZXRo
b2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNWYWx1ZVdyYXBwZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTVmFsdWVXcmFwcGVyLmNwcAppbmRleCBkYzdlZTNm
OWIzOTg3YmZiMTUzMzUyOTcxZTRlYzEzMDBkMTg5YTYyLi5hZmY5ZmYzYzI3N2I2ZGRlNDMwNDFi
MzczZGExNDJkZTZlNDczZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNW
YWx1ZVdyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1ZhbHVlV3JhcHBl
ci5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIEpTVmFsdWVXcmFwcGVyOjpKU09iamVjdFNl
dFByb3BlcnR5KHZvaWQgKmRhdGEsIENGU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSgogICAgICAg
ICBKU1ZhbHVlIHZhbHVlID0gSlNPYmplY3RLSlNWYWx1ZSgoSlNVc2VyT2JqZWN0Kilqc1ZhbHVl
KTsKICAgICAgICAgSlNPYmplY3QgKm9ialZhbHVlID0gcHRyLT5HZXRWYWx1ZSgpLnRvT2JqZWN0
KGV4ZWMpOwogICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgb2JqVmFsdWUt
PnB1dChleGVjLCBDRlN0cmluZ1RvSWRlbnRpZmllcihwcm9wZXJ0eU5hbWUsIGV4ZWMpLCB2YWx1
ZSwgc2xvdCk7CisgICAgICAgIG9ialZhbHVlLT5wdXRWaXJ0dWFsKGV4ZWMsIENGU3RyaW5nVG9J
ZGVudGlmaWVyKHByb3BlcnR5TmFtZSwgZXhlYyksIHZhbHVlLCBzbG90KTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAppbmRleCA2Zjk5YTRjODQ2NmI0
YTU1NTZkOWE3MDU0NjA2ZGRlN2JhM2NlOTVhLi44Y2VlMWFlYmQ2MTc3MThlNDBlY2VjNDAxOWUz
NWMwMmQzMzZlZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVj
dEltcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCkBA
IC0xNTIsNyArMTUyLDcgQEAgYm9vbCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW4KICAgICByZXR1cm4gSlNP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQogCi12b2lkIFVzZXJPYmplY3RJbXA6OnB1dChFeGVjU3RhdGUgKmV4ZWMsIGNv
bnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQordm9pZCBVc2VyT2JqZWN0SW1wOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSAqZXhl
YywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmpl
Y3RJbXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKaW5kZXggYWNl
MTkzMzc2Njc3NTMwZWUyZjYxMzljMTBkNmFmN2UzYjUyNWRjNC4uODVmZWM0MDA5MTUzYjAxYmUz
ZDRkNTAwODNmMTExZTU1Yzk2NWY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVl
L1VzZXJPYmplY3RJbXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdElt
cC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEpTVmFsdWUgY2FsbEFz
RnVuY3Rpb24oRXhlY1N0YXRlICpleGVjKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChF
eGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
IAogICAgIEpTVmFsdWUgdG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZl
VHlwZSBwcmVmZXJyZWRUeXBlID0gTm9QcmVmZXJlbmNlKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZWY4ODZiMjA3Njg5YzAwNzg0ZGU4ZWIyZjdlZTFhYjA0NzRhZDRlLi5kMTU1YTEwMjk5ZmI1ZWJj
ZmExNTFkZDliZDNiODMzNmY2NmNkMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIw
MTEtMTAtMTIgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW5hbWUgdmlydHVhbCBwdXQgdG8gcHV0VmlydHVhbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4NTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgUmVu
YW1lZCB2aXJ0dWFsIHZlcnNpb25zIG9mIHB1dCB0byBwdXRWaXJ0dWFsIGluIHByZXByYXRpb24g
Zm9yIAorICAgICAgICBhZGRpbmcgdGhlIHN0YXRpYyBwdXQgdG8gdGhlIE1ldGhvZFRhYmxlIGlu
IENsYXNzSW5mbyBzaW5jZSB0aGUgCisgICAgICAgIGNvbXBpbGVyIGdldHMgbWFkIGlmIHRoZSB2
aXJ0dWFsIGFuZCBzdGF0aWMgdmVyc2lvbnMgaGF2ZSB0aGUgc2FtZSAKKyAgICAgICAgbmFtZS4K
KworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
V2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpwdXRWaXJ0
dWFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xv
Y2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTG9jYXRpb246OnB1dERlbGVn
YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cnVudGltZU9iamVjdEN1c3RvbVB1dCk6CisgICAgICAgICog
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lRGVzZXJpYWxpemVyOjpwdXRQcm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9XZWJTY3JpcHRPYmplY3QubW06CisgICAgICAgICgtW1dlYlNjcmlwdE9iamVjdCBzZXRWYWx1
ZTpmb3JLZXk6XSk6CisgICAgICAgICgtW1dlYlNjcmlwdE9iamVjdCBzZXRXZWJTY3JpcHRWYWx1
ZUF0SW5kZXg6dmFsdWU6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iajo6cHV0VmlydHVhbCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJy
aWRnZS9OUF9qc29iamVjdC5jcHA6CisgICAgICAgIChfTlBOX1NldFByb3BlcnR5KToKKyAgICAg
ICAgKiBicmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbToKKyAgICAgICAgKEphdmFKU09iamVjdDo6
c2V0TWVtYmVyKToKKyAgICAgICAgKEphdmFKU09iamVjdDo6c2V0U2xvdCk6CisgICAgICAgICog
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1w
OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwOgorICAg
ICAgICAoSlNDOjpCaW5kaW5nczo6UXRJbnN0YW5jZTo6cHV0KToKKyAgICAgICAgKiBicmlkZ2Uv
cXQvcXRfcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpjb252ZXJ0UVZhcmlh
bnRUb1ZhbHVlKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAg
IChKU0M6OlJ1bnRpbWVBcnJheTo6cHV0VmlydHVhbCk6CisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfYXJyYXkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6cHV0VmlydHVhbCk6CisgICAgICAgICog
YnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisgICAgICAgICogYnJpZGdlL3Rlc3RxdGJpbmRpbmdz
LmNwcDoKKyAgICAgICAgKG1haW4pOgorCiAyMDExLTEwLTEyICBKaWFuIExpICA8amlhbmxpQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBTdXBwb3J0IHBhc3Npbmcgb3B0aW9uYWwgZmlsZW5hbWUg
d2hlbiBGb3JtRGF0YS5hcHBlbmQoKSBpcyB1c2VkIHRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IDIwM2M3YTYyMzJjY2M4OTVkNDdhMjMyZjAyZmMxNmFmNmVlNGU1NDIuLjFkYTc2M2ZkZWM1OThi
ZTc4MTkyZmJiMmRhZTcyMjM4NTkyM2ZhYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNDEs
NyArMTQxLDcgQEAgX19aTjdXZWJDb3JlMTBDbGllbnRSZWN0QzFFdgogX19aTjdXZWJDb3JlMTBD
cmVkZW50aWFsQzFFUktOM1dURjZTdHJpbmdFUzRfTlNfMjFDcmVkZW50aWFsUGVyc2lzdGVuY2VF
CiBfX1pON1dlYkNvcmUxMENyZWRlbnRpYWxDMUV2CiBfX1pON1dlYkNvcmUxMEZsb2F0UG9pbnRD
MUVSS05TXzhJbnRQb2ludEUKLV9fWk43V2ViQ29yZTEwSlNEb2N1bWVudDNwdXRFUE4zSlNDOUV4
ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0
eVNsb3RFCitfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQxMHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNT
dGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNs
b3RFCiBfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2c19pbmZvRQogX19aTjdXZWJDb3JlMTBNb3Vz
ZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0cklOU185
RE9NV2luZG93RUVFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEVpTlM1X0lOU180Tm9kZUVFRQog
X19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50QzFFUktOM1dURjEyQXRvbWljU3RyaW5nRWJiTlMxXzEw
UGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdl
dEVFRU5TNV9JTlNfOUNsaXBib2FyZEVFRWIKQEAgLTgzMCw3ICs4MzAsNyBAQCBfX1pON1dlYkNv
cmU2RWRpdG9yNmluZGVudEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yN0NvbW1hbmRDMUV2CiBfX1pO
N1dlYkNvcmU2RWRpdG9yN2NvbW1hbmRFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU2RWRp
dG9yN291dGRlbnRFdgotX19aTjdXZWJDb3JlNkpTTm9kZTNwdXRFUE4zSlNDOUV4ZWNTdGF0ZUVS
S05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFCitf
X1pON1dlYkNvcmU2SlNOb2RlMTBwdXRWaXJ0dWFsRVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJ
ZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjdXZWJD
b3JlNkpTTm9kZTZzX2luZm9FCiBfX1pON1dlYkNvcmU2UmVnaW9uNXVuaXRlRVJLUzBfCiBfX1pO
N1dlYkNvcmU2UmVnaW9uOHN1YnRyYWN0RVJLUzBfCkBAIC0xMDQ0LDcgKzEwNDQsNyBAQCBfX1pO
N1dlYkNvcmU5SFRNTE5hbWVzOHZpZGVvVGFnRQogX19aTjdXZWJDb3JlOUhUTUxOYW1lczlpZnJh
bWVUYWdFCiBfX1pON1dlYkNvcmU5SFRNTE5hbWVzOW9iamVjdFRhZ0UKIF9fWk43V2ViQ29yZTlI
VE1MTmFtZXM5c2NyaXB0VGFnRQotX19aTjdXZWJDb3JlOUpTRWxlbWVudDNwdXRFUE4zSlNDOUV4
ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0
eVNsb3RFCitfX1pON1dlYkNvcmU5SlNFbGVtZW50MTBwdXRWaXJ0dWFsRVBOM0pTQzlFeGVjU3Rh
dGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJvcGVydHlTbG90
RQogX19aTjdXZWJDb3JlOUpTRWxlbWVudDZzX2luZm9FCiBfX1pON1dlYkNvcmU5UGFnZUNhY2hl
MTFzZXRDYXBhY2l0eUVpCiBfX1pON1dlYkNvcmU5UGFnZUNhY2hlMjdyZWxlYXNlQXV0b3JlbGVh
c2VkUGFnZXNOb3dFdgpAQCAtMTY4Nyw2ICsxNjg3LDcgQEAgX19aTjNKU0MxM1J1bnRpbWVNZXRo
b2QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRp
ZmkKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kNnNfaW5mb0UKIF9fWk4zSlNDMTNSdW50aW1lTWV0
aG9kQzJFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFUk4zV1RGNlZlY3RvcklQ
TlNfOEJpbmRpbmdzNk1ldGhvZEVMbTBFRUUKIF9fWk4zSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0
RDFFdgorX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxMHB1dFZpcnR1YWxFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlT
bG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxMWdldENhbGxEYXRhRVBOU182
SlNDZWxsRVJOU184Q2FsbERhdGFFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE0
ZGVsZXRlUHJvcGVydHlFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pT
QzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE0ZmluaXNoQ3JlYXRpb25FUE5TXzE0SlNHbG9iYWxP
YmplY3RFCkBAIC0xNjk0LDcgKzE2OTUsNiBAQCBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9i
amVjdDE2Z2V0Q29uc3RydWN0RGF0YUVSTlNfMTNDb25zdHJ1Y3REYXRhRQogX19aTjNKU0M4Qmlu
ZGluZ3MxM1J1bnRpbWVPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhCaW5kaW5nczEz
UnVudGltZU9iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQ
cm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDOEJpbmRpbmdz
MTNSdW50aW1lT2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVF
UktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQotX19aTjNKU0M4Qmlu
ZGluZ3MxM1J1bnRpbWVPYmplY3QzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNS
dW50aW1lT2JqZWN0NnNfaW5mb0UKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0QzJF
UE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFTjNXVEYx
MFBhc3NSZWZQdHJJTlMwXzhJbnN0YW5jZUVFRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVP
YmplY3REMkV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAKaW5kZXggMDRiNWI5NzY1MjdhNGZkMTk1YjQ1YWIyODQ5NTY0ZWFjODVkMmU2OC4u
NjA2OGQ5MjkxMWU1OTJhNzQ5YjdjOTU3OWE5Yjk5ZmMyZGFhMjA4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMzM4LDcgKzMz
OCw3IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByCiAgICAgcmV0dXJuIEJhc2U6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCi12
b2lkIEpTRE9NV2luZG93OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQg
SlNET01XaW5kb3c6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICBpZiAoIWltcGwoKS0+ZnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQ2LDcgKzM0
Niw3IEBAIHZvaWQgSlNET01XaW5kb3c6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2CiAgICAgLy8gT3B0aW1pemF0aW9uOiBhY2Nl
c3MgSmF2YVNjcmlwdCBnbG9iYWwgdmFyaWFibGVzIGRpcmVjdGx5IGJlZm9yZSBpbnZvbHZpbmcg
dGhlIERPTS4KICAgICBpZiAoSlNHbG9iYWxPYmplY3Q6Omhhc093blByb3BlcnR5Rm9yV3JpdGUo
ZXhlYywgcHJvcGVydHlOYW1lKSkgewogICAgICAgICBpZiAoYWxsb3dzQWNjZXNzRnJvbShleGVj
KSkKLSAgICAgICAgICAgIEpTR2xvYmFsT2JqZWN0OjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2
YWx1ZSwgc2xvdCk7CisgICAgICAgICAgICBKU0dsb2JhbE9iamVjdDo6cHV0KHRoaXMsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0zNTQsNyArMzU0LDcgQEAgdm9pZCBKU0RPTVdpbmRvdzo6cHV0KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHYKICAgICAgICAgcmV0dXJu
OwogCiAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCi0gICAgICAgIEJhc2U6OnB1dChl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICAgICAgQmFzZTo6cHV0KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiBib29sIEpTRE9NV2luZG93
OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVs
bC5jcHAKaW5kZXggNmQyNmY5ODVjNzFiNmM0YjgzYjBhMzAyOTg5YjA3ZjBiYTMyN2IxZS4uYTY2
MDVkODI1MDY2YmVkMDlmNjcxZjc2N2I4MmFlMjkwYjVlMGFhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTExNSw5ICsxMTUsOSBA
QCBib29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZQogICAgIHJldHVybiBtX3dpbmRvdy0+Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKLXZv
aWQgSlNET01XaW5kb3dTaGVsbDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2
b2lkIEpTRE9NV2luZG93U2hlbGw6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKLSAgICBtX3dpbmRvdy0+cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOworICAgIG1fd2luZG93LT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnB1dFdpdGhBdHRyaWJ1dGVzKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dTaGVsbC5oCmluZGV4IGI1ZGQzYTZhMTZjMmNkOGE2M2Y5OGEzZjkyNzk4MzUy
YmRmMGQ2NzcuLmE3MmZkMTE4YWRlMzgzZTAyMTY2NGM4YWJlYjBiMjMzZDE1YmJiMmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKQEAgLTgzLDcg
KzgzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlT
bG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQ
dXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVz
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
Qzo6SlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBk
ZWxldGVQcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnR5TmFtZXMoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUg
bW9kZSA9IEpTQzo6RXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCmluZGV4IDk2N2JjNGRhZGFlZjIw
NTE3YTE3MGRiNTdiMTU1YjJmOWRlYWJjODkuLjlhMTE5ZGI2ZTZlNmMzOGM3M2E3MjIwOTA4ZTM5
NTBhYjhhOGY5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9j
YXRpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRp
b25DdXN0b20uY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgYm9vbCBKU0xvY2F0aW9uOjpwdXREZWxl
Z2F0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlMK
ICAgICBjb25zdCBIYXNoRW50cnkqIGVudHJ5ID0gSlNMb2NhdGlvbjo6c19pbmZvLnByb3BIYXNo
VGFibGUoZXhlYyktPmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKCFlbnRyeSkg
ewogICAgICAgICBpZiAoc2FtZURvbWFpbkFjY2VzcykKLSAgICAgICAgICAgIEpTT2JqZWN0Ojpw
dXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgICAgICAgICBKU09iamVj
dDo6cHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4IGEzM2E1Zjg1M2M2OTgwMzI5
NzM0ZjA0OTNkOTA1Y2YzYjZkNTBiZWQuLjAwY2Q5NjgyYjhjZWUwYmRkNmE5MGVkNzY3ZjRmNmRj
MTcxMjNhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2lu
RWxlbWVudEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQ
bHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIGJvb2wgcnVudGlt
ZU9iamVjdEN1c3RvbVB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWCiAgICAgICAgIHJldHVybiAwOwogICAgIGlmICghc2NyaXB0T2JqZWN0LT5o
YXNQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgc2NyaXB0T2JqZWN0LT5wdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cisg
ICAgc2NyaXB0T2JqZWN0LT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA4ZGJlM2VhMDljN2M3ZmJm
NWQ0OWQ3ZTUwZmNmYTFkNDM0ZDE0MGI5Li5lZTBjNjMxNDhlNzA5ZjYxZWExNTE1MmQ2YmI3Mjk5
NTMxNjRhMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTEwMzEsNyArMTAzMSw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIGlmIChhcnJheS0+Y2FuU2V0SW5kZXgoaW5kZXgpKQogICAgICAgICAgICAgYXJyYXktPnNl
dEluZGV4KG1fZXhlYy0+Z2xvYmFsRGF0YSgpLCBpbmRleCwgdmFsdWUpOwogICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBhcnJheS0+cHV0KG1fZXhlYywgaW5kZXgsIHZhbHVlKTsKKyAgICAgICAg
ICAgIGFycmF5LT5wdXRWaXJ0dWFsKG1fZXhlYywgaW5kZXgsIHZhbHVlKTsKICAgICB9CiAKICAg
ICB2b2lkIHB1dFByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5LCBKU1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L1dlYlNjcmlwdE9iamVjdC5tbQppbmRleCBmZjYxM2UyZDhhNWE0NjRiOGYwNWNjODJhM2VjNzJl
N2E4YWEyMzc3Li41MzY4MmM3NTMzMDNlNDUzOGY5ZTlkZWVjYzkxOTU5OWY0MzU3ZjA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQpAQCAt
MzQ5LDcgKzM0OSw3IEBAIHN0YXRpYyB2b2lkIGdldExpc3RGcm9tTlNBcnJheShFeGVjU3RhdGUg
KmV4ZWMsIE5TQXJyYXkgKmFycmF5LCBSb290T2JqZWN0KiByb290CiAgICAgSlNMb2NrIGxvY2so
U2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKIAogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAg
IFtzZWxmIF9pbXBdLT5wdXQoZXhlYywgSWRlbnRpZmllcihleGVjLCBzdHJpbmdUb1VTdHJpbmco
U3RyaW5nKGtleSkpKSwgY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJnZhbHVlLCBPYmpj
T2JqZWN0VHlwZSwgW3NlbGYgX3Jvb3RPYmplY3RdKSwgc2xvdCk7CisgICAgW3NlbGYgX2ltcF0t
PnB1dFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcihleGVjLCBzdHJpbmdUb1VTdHJpbmcoU3RyaW5n
KGtleSkpKSwgY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJnZhbHVlLCBPYmpjT2JqZWN0
VHlwZSwgW3NlbGYgX3Jvb3RPYmplY3RdKSwgc2xvdCk7CiAKICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpIHsKICAgICAgICAgYWRkRXhjZXB0aW9uVG9Db25zb2xlKGV4ZWMpOwpAQCAtNDg2
LDcgKzQ4Niw3IEBAIHN0YXRpYyB2b2lkIGdldExpc3RGcm9tTlNBcnJheShFeGVjU3RhdGUgKmV4
ZWMsIE5TQXJyYXkgKmFycmF5LCBSb290T2JqZWN0KiByb290CiAgICAgQVNTRVJUKCFleGVjLT5o
YWRFeGNlcHRpb24oKSk7CiAKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkp
OwotICAgIFtzZWxmIF9pbXBdLT5wdXQoZXhlYywgaW5kZXgsIGNvbnZlcnRPYmpjVmFsdWVUb1Zh
bHVlKGV4ZWMsICZ2YWx1ZSwgT2JqY09iamVjdFR5cGUsIFtzZWxmIF9yb290T2JqZWN0XSkpOwor
ICAgIFtzZWxmIF9pbXBdLT5wdXRWaXJ0dWFsKGV4ZWMsIGluZGV4LCBjb252ZXJ0T2JqY1ZhbHVl
VG9WYWx1ZShleGVjLCAmdmFsdWUsIE9iamNPYmplY3RUeXBlLCBbc2VsZiBfcm9vdE9iamVjdF0p
KTsKIAogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICBhZGRFeGNlcHRp
b25Ub0NvbnNvbGUoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDJkODEzNDcwYzdjYTE3MzkyZGVmYjIxMWQ2MjUy
MTgyZDk2ZjBhMWEuLjU1MDhkMThmNGY1MWIzYWM0YzFiYmI1OGQyYmRjNjhmNjYwZGIxNDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC03OTMsOSArNzkzLDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIEdldHRl
cnMKICAgICBpZiAoJGhhc1NldHRlcikgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xu
Iik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dFZp
cnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpK
U1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4U2V0dGVyIn07CisgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSk7XG4iKSBpZiAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleFNldHRlciJ9OwogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpO1xuIikgaWYg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhTZXR0ZXIifTsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIHB1dERlbGVnYXRlKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1
dFByb3BlcnR5U2xvdCYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
RGVsZWdhdGluZ1B1dEZ1bmN0aW9uIn07CiAgICAgfQpAQCAtMTA1MCw3ICsxMDUwLDcgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTtcbiIgLgogICAgICAg
ICAiICAgIH1cbiIpOwogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJE
ZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24ifSkgewotICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5
U2xvdCYpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2
b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlND
ZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBwdXREZWxlZ2F0ZShKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNs
b3QmKTtcbiIpOwogICAgIH0KQEAgLTE0NzMsNyArMTQ3Myw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgfQogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkRlbGVnYXRpbmdQcm90b3R5cGVQdXRGdW5jdGlvbiJ9KSB7Ci0gICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnB1dChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJv
cGVydHlTbG90JiBzbG90KVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAk
e2NsYXNzTmFtZX1Qcm90b3R5cGU6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdClcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwpAQCAt
MTc0Miw3ICsxNzQyLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICBp
ZiAoJGhhc1NldHRlcikgewogICAgICAgICAgICAgaWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b21QdXRGdW5jdGlvbiJ9KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHNsb3QpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQg
JHtjbGFzc05hbWV9OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpXG4i
KTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBzbG90KTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAifVxuXG4iKTsKQEAgLTE3NzMsNyArMTc3Myw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleFNldHRlciJ9KSB7Ci0gICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0KEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKVxuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSlcbiIp
OwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5c
biIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcAppbmRleCBjMDI0YTQ1MWQ3OTAzMmZlYTU4ZjRiYTliMjg0OWZiZTUxMDYy
NjhjLi5lNDRkZjkyODJhZTA5NjgwOWVhYmMxMjEyYWM5NjI0ZmFlYzU5NjY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNw
cApAQCAtNzYxLDcgKzc2MSw3IEBAIEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyCiAgICAgcmV0dXJu
IEpTVGVzdE9iajo6Z2V0Q29uc3RydWN0b3IoZXhlYywgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3Qo
KSk7CiB9CiAKLXZvaWQgSlNUZXN0T2JqOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKK3ZvaWQgSlNUZXN0T2JqOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5oCmluZGV4IGMzZDFiMjRjYmIxNzFhNjRmMjY5MjNmODdmYWViNTcxYWQ1YzhkMzMuLjNj
YTMyNmJjNWUzNDUwODYxN2M2ZjlmZmIzYWNiMDVjNzE4NTQ4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTQyLDcg
KzQyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5
cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICB2
aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7
CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFBy
b3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCmluZGV4IDE0ZWZiMTk3NmZmYTc2ODlm
MjNlZjI3MzU1MTQxZjZiZGU2ZDdlMTQuLjQwYWU1MTMzYzY5NzI2MTc2ZWI3OWJjNzVmNWE4MTUy
YzUzMzAzYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcApAQCAtMzM3LDkg
KzMzNyw5IEBAIGJvb2wgX05QTl9TZXRQcm9wZXJ0eShOUFAsIE5QT2JqZWN0KiBvLCBOUElkZW50
aWZpZXIgcHJvcGVydHlOYW1lLCBjb25zdCBOUFZhcmlhCiAKICAgICAgICAgaWYgKGktPmlzU3Ry
aW5nKCkpIHsKICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAg
b2JqLT5pbXAtPnB1dChleGVjLCBpZGVudGlmaWVyRnJvbU5QSWRlbnRpZmllcihleGVjLCBpLT5z
dHJpbmcoKSksIGNvbnZlcnROUFZhcmlhbnRUb1ZhbHVlKGV4ZWMsIHZhcmlhbnQsIHJvb3RPYmpl
Y3QpLCBzbG90KTsKKyAgICAgICAgICAgIG9iai0+aW1wLT5wdXRWaXJ0dWFsKGV4ZWMsIGlkZW50
aWZpZXJGcm9tTlBJZGVudGlmaWVyKGV4ZWMsIGktPnN0cmluZygpKSwgY29udmVydE5QVmFyaWFu
dFRvVmFsdWUoZXhlYywgdmFyaWFudCwgcm9vdE9iamVjdCksIHNsb3QpOwogICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIG9iai0+aW1wLT5wdXQoZXhlYywgaS0+bnVtYmVyKCksIGNvbnZlcnRO
UFZhcmlhbnRUb1ZhbHVlKGV4ZWMsIHZhcmlhbnQsIHJvb3RPYmplY3QpKTsKKyAgICAgICAgICAg
IG9iai0+aW1wLT5wdXRWaXJ0dWFsKGV4ZWMsIGktPm51bWJlcigpLCBjb252ZXJ0TlBWYXJpYW50
VG9WYWx1ZShleGVjLCB2YXJpYW50LCByb290T2JqZWN0KSk7CiAgICAgICAgIGV4ZWMtPmNsZWFy
RXhjZXB0aW9uKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1tIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0KaW5kZXggMWM2ZjFmYmUzMWM2ZDQ2N2JjYjViYmYy
MzVmY2NkNGMwNzUwMTNhNS4uYzRkZDlkNDhlOTFmOTkyZDUwNTgwMjdhNmFiZTQyNTNiNjI3YTkz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0KQEAgLTM0OCw3
ICszNDgsNyBAQCB2b2lkIEphdmFKU09iamVjdDo6c2V0TWVtYmVyKGpzdHJpbmcgbWVtYmVyTmFt
ZSwgam9iamVjdCB2YWx1ZSkgY29uc3QKIAogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRp
b25zT25seSk7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgX2ltcC0+cHV0KGV4ZWMs
IElkZW50aWZpZXIoZXhlYywgSmF2YVN0cmluZyhtZW1iZXJOYW1lKS5pbXBsKCkpLCBjb252ZXJ0
Sk9iamVjdFRvVmFsdWUoZXhlYywgdmFsdWUpLCBzbG90KTsKKyAgICBfaW1wLT5wdXRWaXJ0dWFs
KGV4ZWMsIElkZW50aWZpZXIoZXhlYywgSmF2YVN0cmluZyhtZW1iZXJOYW1lKS5pbXBsKCkpLCBj
b252ZXJ0Sk9iamVjdFRvVmFsdWUoZXhlYywgdmFsdWUpLCBzbG90KTsKIH0KIAogCkBAIC0zOTMs
NyArMzkzLDcgQEAgdm9pZCBKYXZhSlNPYmplY3Q6OnNldFNsb3QoamludCBpbmRleCwgam9iamVj
dCB2YWx1ZSkgY29uc3QKIAogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHJvb3RPYmplY3QtPmdsb2Jh
bE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlv
bnNPbmx5KTsKLSAgICBfaW1wLT5wdXQoZXhlYywgKHVuc2lnbmVkKWluZGV4LCBjb252ZXJ0Sk9i
amVjdFRvVmFsdWUoZXhlYywgdmFsdWUpKTsKKyAgICBfaW1wLT5wdXRWaXJ0dWFsKGV4ZWMsICh1
bnNpZ25lZClpbmRleCwgY29udmVydEpPYmplY3RUb1ZhbHVlKGV4ZWMsIHZhbHVlKSk7CiB9CiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAppbmRleCBhOThhOTBl
MTk3NTBhZGJmOTM2ZWRiNzY5NzFlMTcxNGE1YWRiNmVmLi41ZjRjNjMwNGUwYjFkOTYyMTc3NjJj
NWU1MTk4ZTQwNWQ1NDM4MmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2Jq
Yy9vYmpjX3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1
bnRpbWUuaApAQCAtMTI2LDcgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CisgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgQ2FsbFR5cGUg
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRl
UHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQppbmRleCA0Y2ZjMzg0YWU1
NTYzZDdkMTgzZTcxZmVkN2Q2YTAxMWZkMzUyNTU5Li4xZmY1NmYxNjZlYjYzOTRhNzJmMDEzMGM2
NGQyYmVkZGYyM2I1MTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9v
YmpjX3J1bnRpbWUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50
aW1lLm1tCkBAIC0yMjQsNyArMjI0LDcgQEAgYm9vbCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6Omdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWUKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OnB1dChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90JikKK3ZvaWQg
T2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAppbmRleCAwZDYxYTYwMjI5MDJiMGNjNmY1NjQ5MDIy
NmU2NDkwNTllYTMzYmI0Li5mZjA0NTQ1NDk5Y2ZjNTM5Njg1MmI5NDA4ZmE1MjljM2I5MzAwNDUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKQEAgLTE1OCw3ICsx
NTgsNyBAQCBib29sIFF0SW5zdGFuY2U6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZQogCiB2b2lkIFF0SW5zdGFuY2U6OnB1dChK
U09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIG9i
amVjdC0+SlNPYmplY3Q6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAg
ICBKU09iamVjdDo6cHV0KG9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7
CiB9CiAKIHZvaWQgUXRJbnN0YW5jZTo6cmVtb3ZlQ2FjaGVkTWV0aG9kKEpTT2JqZWN0KiBtZXRo
b2QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKaW5kZXggYzNhN2EzZDBh
NjVkMDU3YTQyZGVmYjQwNGI0MDY3MWY5ODY4NTMxMC4uNDhlYTlmZGY1OTQ0NzIzOGUzZmU4MjM0
ZTlhZTJkY2RmZTZlY2RmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X3J1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNw
cApAQCAtOTYwLDcgKzk2MCw3IEBAIEpTVmFsdWUgY29udmVydFFWYXJpYW50VG9WYWx1ZShFeGVj
U3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdCwgY29uCiAgICAgICAgICAg
ICBKU1ZhbHVlIHZhbCA9IGNvbnZlcnRRVmFyaWFudFRvVmFsdWUoZXhlYywgcm9vdC5nZXQoKSwg
aS52YWx1ZSgpKTsKICAgICAgICAgICAgIGlmICh2YWwpIHsKICAgICAgICAgICAgICAgICBQdXRQ
cm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgICAgICByZXQtPnB1dChleGVjLCBJZGVudGlm
aWVyKGV4ZWMsIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPGNvbnN0IFVDaGFyICo+KHMuY29uc3REYXRh
KCkpLCBzLmxlbmd0aCgpKSwgdmFsLCBzbG90KTsKKyAgICAgICAgICAgICAgICByZXQtPnB1dFZp
cnR1YWwoZXhlYywgSWRlbnRpZmllcihleGVjLCByZWludGVycHJldF9jYXN0X3B0cjxjb25zdCBV
Q2hhciAqPihzLmNvbnN0RGF0YSgpKSwgcy5sZW5ndGgoKSksIHZhbCwgc2xvdCk7CiAgICAgICAg
ICAgICAgICAgLy8gIyMjIGVycm9yIGNhc2U/CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAr
K2k7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggODBlMmE4Zjk1
MWUxY2U1M2IyZjM2YTZmYjE1NWMyM2I0OGU4ODliOC4uNDUyNzIyZmY2MGYxNDI0NjFlOTU5MDJi
ODk4M2Q4NGNmZDliNzU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNw
cApAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUgKmV4ZWMsIHVuc2lnbmVkIGluCiAgICAgcmV0dXJu
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgaW5kZXgsIHNs
b3QpOwogfQogCi12b2lkIFJ1bnRpbWVBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCit2b2lkIFJ1bnRpbWVBcnJheTo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBz
bG90KTsKIH0KQEAgLTE2NSw3ICsxNjUsNyBAQCB2b2lkIFJ1bnRpbWVBcnJheTo6cHV0KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogICAg
IEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xv
dCk7CiB9CiAKLXZvaWQgUnVudGltZUFycmF5OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25l
ZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSkKK3ZvaWQgUnVudGltZUFycmF5OjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgcHV0
KHRoaXMsIGV4ZWMsIGluZGV4LCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
YXJyYXkuaAppbmRleCBhM2Q0NDU4YjZiODhkMzNjOTQzM2Q2MDk5MjY4ZjI0YTM0MDgyN2RmLi5k
YzYwZTQ0NjQ2NTg5NmQzOWQ0N2FlNWMwMGU2OWJiZGY0YWI5MGI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTU1LDkgKzU1LDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQsIFByb3BlcnR5
U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVj
U3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlEZXNjcmlwdG9yJik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAg
IHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQg
cHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOworICAgIHZpcnR1YWwgdm9pZCBw
dXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAg
ICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSk7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDEzMzhjZjg2NWNlNGNmNGFiZGUw
NmE5NGRhNDJmNzY0MTI0NDcxNmYuLjA4YjU3YTNhODU4NzNhNTIzNmRiMjg2ZDM2MGI2N2M0YWM1
NTBjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMjE2
LDcgKzIxNiw3IEBAIGJvb2wgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYKICAgICByZXR1cm4gaW5zdGFuY2Ut
PmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2Ny
aXB0b3IpOwogfQogCi12b2lkIFJ1bnRpbWVPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQordm9pZCBSdW50aW1lT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCAw
NjZkNzczN2UzMjQ2NGU1ODYyMTE4NWU2NGE1NzMzZGIxZWVkZWZjLi44NWMzYjZmNzIyOGY5ZDYy
ZmI1YzgwOGQyZjA1YmMyYmE2ZDQ1ZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9v
YmplY3QuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgdmlydHVhbCB2b2lk
IHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICBzdGF0aWMgYm9vbCBkZWxl
dGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3Rlc3RxdGJpbmRpbmdz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS90ZXN0cXRiaW5kaW5ncy5jcHAKaW5kZXggNzFm
YzliYjY2OTM5NWM0YzA3OWQ4YThmZmFjMGNjODgxZDc4NjE2MC4uZTdkNGE2YjllOTJjYTRlYmVm
NzZmMmQwNDc2MDlmZDE1Mzg1ODZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3Rlc3RxdGJpbmRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdHF0Ymlu
ZGluZ3MuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBh
cmd2KQogICAgICAgICAKICAgICAgICAgTXlPYmplY3QqIG15T2JqZWN0ID0gbmV3IE15T2JqZWN0
OwogICAgICAgICAKLSAgICAgICAgZ2xvYmFsLT5wdXQoZXhlYywgSWRlbnRpZmllcigibXlJbnRl
cmZhY2UiKSwgSW5zdGFuY2U6OmNyZWF0ZVJ1bnRpbWVPYmplY3QoSW5zdGFuY2U6OlF0TGFuZ3Vh
Z2UsICh2b2lkKilteU9iamVjdCkpOworICAgICAgICBnbG9iYWwtPnB1dFZpcnR1YWwoZXhlYywg
SWRlbnRpZmllcigibXlJbnRlcmZhY2UiKSwgSW5zdGFuY2U6OmNyZWF0ZVJ1bnRpbWVPYmplY3Qo
SW5zdGFuY2U6OlF0TGFuZ3VhZ2UsICh2b2lkKilteU9iamVjdCkpOwogICAgICAgICAKICAgICAg
ICAgCiAgICAgICAgIGlmIChjb2RlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggY2NiMjg4ZWY2YTAz
NmJmNmEwYjUzMjFjNjkwNWE0NGNmMmZhMDZhNi4uMTQ3ZmY2NWFlNzc2MzBkYTA4Mjg1NDhiNDc4
YTFjY2YzMmU4N2YwOSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEw
LTEyICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVuYW1lIHZpcnR1YWwgcHV0IHRvIHB1dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB2aXJ0dWFsIHZlcnNpb25zIG9mIHB1dCB0
byBwdXRWaXJ0dWFsIGluIHByZXByYXRpb24gZm9yIAorICAgICAgICBhZGRpbmcgdGhlIHN0YXRp
YyBwdXQgdG8gdGhlIE1ldGhvZFRhYmxlIGluIENsYXNzSW5mbyBzaW5jZSB0aGUgCisgICAgICAg
IGNvbXBpbGVyIGdldHMgbWFkIGlmIHRoZSB2aXJ0dWFsIGFuZCBzdGF0aWMgdmVyc2lvbnMgaGF2
ZSB0aGUgc2FtZSAKKyAgICAgICAgbmFtZS4KKworICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6
CisgICAgICAgIChld2tfdmlld19qc19vYmplY3RfYWRkKToKKwogMjAxMS0xMC0xMCAgUmFwaGFl
bCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbRUZMXSBE
byBub3QgY2FjaGUgYSBmcmFtZSdzIGNvbnRlbnRzIHNpemUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmNwcAppbmRleCBjMTM3NmE5MDA4MmI0YmFhMDJjNmQ5M2ZiNzA3ZWJiNWU2YWMzMmVjLi4y
OTEyMWU4YmY3NWVlNjE0NjAxODdjYmRkOGJkNGVkZTJmMWY5MDFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlldy5jcHAKQEAgLTM2NTQsNyArMzY1NCw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19q
c19vYmplY3RfYWRkKEV2YXNfT2JqZWN0KiBvLCBFd2tfSlNfT2JqZWN0KiBvYmosIGNvbnN0IGNo
YXIqCiAgICAgSlNDOjpJZGVudGlmaWVyIGlkID0gSlNDOjpJZGVudGlmaWVyKGV4ZWMsIG9ial9u
YW1lKTsKIAogICAgIEpTQzo6UHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgd2luZG93LT5wdXQo
ZXhlYywgaWQsIHJ1bnRpbWVPYmplY3QsIHNsb3QpOworICAgIHdpbmRvdy0+cHV0VmlydHVhbChl
eGVjLCBpZCwgcnVudGltZU9iamVjdCwgc2xvdCk7CiAgICAgcmV0dXJuIEVJTkFfVFJVRTsKICNl
bHNlCiAgICAgcmV0dXJuIEVJTkFfRkFMU0U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNDg4MWFiNzg3
MmJlNmVhNTc0OWM3MjFkNmI2NDM4YjI2MzM2NmQ1Yy4uNWUyZWViYTcyNTAyNDQxY2FjZTY3YjRh
NzYzODc2NmE1MTIxMzc0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEx
LTEwLTEyICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVuYW1lIHZpcnR1YWwgcHV0IHRvIHB1dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB2aXJ0dWFsIHZlcnNpb25zIG9mIHB1
dCB0byBwdXRWaXJ0dWFsIGluIHByZXByYXRpb24gZm9yIAorICAgICAgICBhZGRpbmcgdGhlIHN0
YXRpYyBwdXQgdG8gdGhlIE1ldGhvZFRhYmxlIGluIENsYXNzSW5mbyBzaW5jZSB0aGUgCisgICAg
ICAgIGNvbXBpbGVyIGdldHMgbWFkIGlmIHRoZSB2aXJ0dWFsIGFuZCBzdGF0aWMgdmVyc2lvbnMg
aGF2ZSB0aGUgc2FtZSAKKyAgICAgICAgbmFtZS4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVk
L05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2Nh
cGVQbHVnaW5JbnN0YW5jZVByb3h5OjpzZXRQcm9wZXJ0eSk6CisKIDIwMTEtMTAtMTAgIE5hdGUg
Q2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVc2UgYSBDYWNoZWRJbWFn
ZUNsaWVudCBpbnN0ZWFkIG9mIENhY2hlZFJlc291cmNlQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHku
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHkubW0KaW5kZXggNjYyNzIwMzcxODk3ZGM5NDg2ZTU0NzAwZjZmZDA2MTg1OWE3YjYy
Ny4uYWU0NDI1NDFjMjVmNmUyOGExMDZmNWIzZDU1MDcwZTQzNjZiYjQxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVBy
b3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1
Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtMTA2MCw3ICsxMDYwLDcgQEAgYm9vbCBOZXRzY2FwZVBs
dWdpbkluc3RhbmNlUHJveHk6OnNldFByb3BlcnR5KHVpbnQzMl90IG9iamVjdElELCBjb25zdCBJ
ZGVudGlmaWUKIAogICAgIEpTVmFsdWUgdmFsdWUgPSBkZW1hcnNoYWxWYWx1ZShleGVjLCB2YWx1
ZURhdGEsIHZhbHVlTGVuZ3RoKTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBvYmpl
Y3QtPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBvYmplY3QtPnB1
dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiAgICAgCiAgICAgZXhl
Yy0+Y2xlYXJFeGNlcHRpb24oKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwODUsNyArMTA4NSw3
IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpzZXRQcm9wZXJ0eSh1aW50MzJf
dCBvYmplY3RJRCwgdW5zaWduZWQgcHJvcGVyCiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2Vy
dGlvbnNPbmx5KTsgICAgCiAgICAgCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGRlbWFyc2hhbFZhbHVl
KGV4ZWMsIHZhbHVlRGF0YSwgdmFsdWVMZW5ndGgpOwotICAgIG9iamVjdC0+cHV0KGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUpOworICAgIG9iamVjdC0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlKTsKICAgICAKICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwogICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNw
cCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKaW5kZXggMDdmMmRmOTg3ZDJj
ZmY1NmRmYzhkODdkN2E1Y2FiYjVjMTk2NmUxYS4uN2FkNGJlMzhmNGRlZTZlZjRjNmRiOTY5ODA0
NmFmMjg5YzM2YmJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCkBAIC02ODgsNyAr
Njg4LDcgQEAgdm9pZCBRV2ViRnJhbWU6OmFkZFRvSmF2YVNjcmlwdFdpbmRvd09iamVjdChjb25z
dCBRU3RyaW5nICZuYW1lLCBRT2JqZWN0ICpvYmplY3QKICAgICAgICAgICAgIEpTQzo6QmluZGlu
Z3M6OlF0SW5zdGFuY2U6OmdldFF0SW5zdGFuY2Uob2JqZWN0LCByb290LCBvd25lcnNoaXApLT5j
cmVhdGVSdW50aW1lT2JqZWN0KGV4ZWMpOwogCiAgICAgSlNDOjpQdXRQcm9wZXJ0eVNsb3Qgc2xv
dDsKLSAgICB3aW5kb3ctPnB1dChleGVjLCBKU0M6OklkZW50aWZpZXIoZXhlYywgcmVpbnRlcnBy
ZXRfY2FzdF9wdHI8Y29uc3QgVUNoYXIqPihuYW1lLmNvbnN0RGF0YSgpKSwgbmFtZS5sZW5ndGgo
KSksIHJ1bnRpbWVPYmplY3QsIHNsb3QpOworICAgIHdpbmRvdy0+cHV0VmlydHVhbChleGVjLCBK
U0M6OklkZW50aWZpZXIoZXhlYywgcmVpbnRlcnByZXRfY2FzdF9wdHI8Y29uc3QgVUNoYXIqPihu
YW1lLmNvbnN0RGF0YSgpKSwgbmFtZS5sZW5ndGgoKSksIHJ1bnRpbWVPYmplY3QsIHNsb3QpOwog
I2VsaWYgVVNFKFY4KQogICAgIFFTY3JpcHRFbmdpbmUqIGVuZ2luZSA9IGQtPmZyYW1lLT5zY3Jp
cHQoKS0+cXRTY3JpcHRFbmdpbmUoKTsKICAgICBpZiAoIWVuZ2luZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5k
ZXggZWQ3NGU4N2Y3ZTRkZDQ5NDU4MmZjMjRmMjk5MzhkMDhkZDY1MjdiMC4uODQwZmRiZDJmZTVl
MDFiZDhkODRiNTk2OWU1ODM1ZTYxZTI0MzEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAxMS0xMC0xMiAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29t
PgorCisgICAgICAgIFJlbmFtZSB2aXJ0dWFsIHB1dCB0byBwdXRWaXJ0dWFsCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTg1MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgdmlydHVhbCB2ZXJz
aW9ucyBvZiBwdXQgdG8gcHV0VmlydHVhbCBpbiBwcmVwcmF0aW9uIGZvciAKKyAgICAgICAgYWRk
aW5nIHRoZSBzdGF0aWMgcHV0IHRvIHRoZSBNZXRob2RUYWJsZSBpbiBDbGFzc0luZm8gc2luY2Ug
dGhlIAorICAgICAgICBjb21waWxlciBnZXRzIG1hZCBpZiB0aGUgdmlydHVhbCBhbmQgc3RhdGlj
IHZlcnNpb25zIGhhdmUgdGhlIHNhbWUgCisgICAgICAgIG5hbWUuCisKKyAgICAgICAgKiBBcGkv
cXdlYmZyYW1lLmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZTo6YWRkVG9KYXZhU2NyaXB0V2luZG93
T2JqZWN0KToKKwogMjAxMS0xMC0xMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBNYWtlIGN1c3RvbSBzY3JvbGxiYXIgdGhlbWUgZm9yIHVzZSBpbiBE
UlQsIHRvIHJlZHVjZSBwaXhlbCBkaWZmcyBiZXR3ZWVuIHBsYXRmb3JtcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDJiNTg4YTcwZTkyMTAyZjQzNmMwYjMyYTljOGRiZjY5N2QyNTNkMTkuLjVhNzhmZDVjMThhYWVm
ODU3NDkwYTllZTdiODQ1Y2EyNmRkMTY3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAor
MjAxMS0xMC0xMiAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlbmFtZSB2aXJ0dWFsIHB1dCB0byBwdXRWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTg1MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgdmlydHVhbCB2ZXJzaW9ucyBv
ZiBwdXQgdG8gcHV0VmlydHVhbCBpbiBwcmVwcmF0aW9uIGZvciAKKyAgICAgICAgYWRkaW5nIHRo
ZSBzdGF0aWMgcHV0IHRvIHRoZSBNZXRob2RUYWJsZSBpbiBDbGFzc0luZm8gc2luY2UgdGhlIAor
ICAgICAgICBjb21waWxlciBnZXRzIG1hZCBpZiB0aGUgdmlydHVhbCBhbmQgc3RhdGljIHZlcnNp
b25zIGhhdmUgdGhlIHNhbWUgCisgICAgICAgIG5hbWUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkpTTlBP
YmplY3Q6OnB1dFZpcnR1YWwpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpwdXQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOUEpTT2JqZWN0OjpzZXRQcm9wZXJ0eSk6CisKIDIwMTEtMTAtMTIgIEplc3Vz
IFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgogCiAgICAg
ICAgIFtRdF1bV0syXSBNb3ZlIHF3ZWJlcnJvciogb3V0IG9mIEFQSS9xdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3Qu
Y3BwCmluZGV4IDUzZjU4NjAxYzBhOTY2ODFjODU0MThiY2QzNGRjYWI0MmUwMGExZjQuLmU3MTdk
Yjk1YWYyODk2MDFlYWQ3YjMxYWZiNDNiYTY4MTI4NjUzOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAK
QEAgLTMxMiwzNSArMzEyLDQxIEBAIGJvb2wgSlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi12b2lkIEpTTlBPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JikKK3ZvaWQgSlNOUE9iamVjdDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBz
bG90KQogewotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7Ci0g
ICAgaWYgKCFtX25wT2JqZWN0KSB7CisgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpOworfQorCit2b2lkIEpTTlBPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQoreworICAgIEpTTlBPYmplY3QqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU05QT2JqZWN0Kj4oY2VsbCk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTsKKyAgICBpZiAoIXRoaXNPYmplY3QtPm1fbnBPYmpl
Y3QpIHsKICAgICAgICAgdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBOUElkZW50aWZpZXIgbnBJZGVudGlmaWVyID0gbnBJZGVudGlm
aWVyRnJvbUlkZW50aWZpZXIocHJvcGVydHlOYW1lKTsKICAgICAKLSAgICBpZiAoIW1fbnBPYmpl
Y3QtPl9jbGFzcy0+aGFzUHJvcGVydHkgfHwgIW1fbnBPYmplY3QtPl9jbGFzcy0+aGFzUHJvcGVy
dHkobV9ucE9iamVjdCwgbnBJZGVudGlmaWVyKSkgeworICAgIGlmICghdGhpc09iamVjdC0+bV9u
cE9iamVjdC0+X2NsYXNzLT5oYXNQcm9wZXJ0eSB8fCAhdGhpc09iamVjdC0+bV9ucE9iamVjdC0+
X2NsYXNzLT5oYXNQcm9wZXJ0eSh0aGlzT2JqZWN0LT5tX25wT2JqZWN0LCBucElkZW50aWZpZXIp
KSB7CiAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdGhyb3cgYW4gZXhjZXB0aW9uIGhlcmU/
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIW1fbnBPYmplY3QtPl9jbGFzcy0+
c2V0UHJvcGVydHkpCisgICAgaWYgKCF0aGlzT2JqZWN0LT5tX25wT2JqZWN0LT5fY2xhc3MtPnNl
dFByb3BlcnR5KQogICAgICAgICByZXR1cm47CiAKICAgICBOUFZhcmlhbnQgdmFyaWFudDsKLSAg
ICBtX29iamVjdE1hcC0+Y29udmVydEpTVmFsdWVUb05QVmFyaWFudChleGVjLCB2YWx1ZSwgdmFy
aWFudCk7CisgICAgdGhpc09iamVjdC0+bV9vYmplY3RNYXAtPmNvbnZlcnRKU1ZhbHVlVG9OUFZh
cmlhbnQoZXhlYywgdmFsdWUsIHZhcmlhbnQpOwogCiAgICAgLy8gQ2FsbGluZyBOUENsYXNzOjpz
ZXRQcm9wZXJ0eSB3aWxsIGNhbGwgaW50byBwbHVnLWluIGNvZGUsIGFuZCB0aGVyZSdzIG5vIHRl
bGxpbmcgd2hhdCB0aGUgcGx1Zy1pbiBjYW4gZG8uCiAgICAgLy8gKGluY2x1ZGluZyBkZXN0cm95
aW5nIHRoZSBwbHVnLWluKS4gQmVjYXVzZSBvZiB0aGlzLCB3ZSBtYWtlIHN1cmUgdG8ga2VlcCB0
aGUgcGx1Zy1pbiBhbGl2ZSB1bnRpbCAKICAgICAvLyB0aGUgY2FsbCBoYXMgZmluaXNoZWQuCi0g
ICAgTlBSdW50aW1lT2JqZWN0TWFwOjpQbHVnaW5Qcm90ZWN0b3IgcHJvdGVjdG9yKG1fb2JqZWN0
TWFwKTsKKyAgICBOUFJ1bnRpbWVPYmplY3RNYXA6OlBsdWdpblByb3RlY3RvciBwcm90ZWN0b3Io
dGhpc09iamVjdC0+bV9vYmplY3RNYXApOwogCiAgICAgewogICAgICAgICBKU0xvY2s6OkRyb3BB
bGxMb2NrcyBkcm9wQWxsTG9ja3MoU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKLSAgICAgICAgbV9u
cE9iamVjdC0+X2NsYXNzLT5zZXRQcm9wZXJ0eShtX25wT2JqZWN0LCBucElkZW50aWZpZXIsICZ2
YXJpYW50KTsKKyAgICAgICAgdGhpc09iamVjdC0+bV9ucE9iamVjdC0+X2NsYXNzLT5zZXRQcm9w
ZXJ0eSh0aGlzT2JqZWN0LT5tX25wT2JqZWN0LCBucElkZW50aWZpZXIsICZ2YXJpYW50KTsKIAog
ICAgICAgICBOUFJ1bnRpbWVPYmplY3RNYXA6Om1vdmVHbG9iYWxFeGNlcHRpb25Ub0V4ZWNTdGF0
ZShleGVjKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5kZXggMjNmZmM4ZmM5MjMyZGIzNGFmMDIxM2NmNzNl
NzFjYWUyOTc1NjE2MC4uYjU0ZWEzMjliZjBlYmU3ZDE5N2M0MWQ0NjYwNjQ2MjMyNTlmYWIxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5oCkBAIC04Niw3ICs4Niw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRv
ciYpOwotICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xv
dCYpOworICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9w
ZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUs
IEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVy
dHkoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7
CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcAppbmRleCBmZTI5NzBlYjg4MjIyOWMy
NTU5NGM3MTdmNmQwZGUxM2E5YmEwNzM1Li41Yzc5NWYzNjk0OTZiOTI2MzliYmI2NjA5MmYyOWNh
NDczOTY3NDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTlBKU09iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwCkBAIC0xODgsOSArMTg4LDkgQEAgYm9vbCBO
UEpTT2JqZWN0OjpzZXRQcm9wZXJ0eShOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lLCBjb25zdCBO
UFZhcmlhbnQqIHZhbHVlKQogICAgIEpTVmFsdWUganNWYWx1ZSA9IG1fb2JqZWN0TWFwLT5jb252
ZXJ0TlBWYXJpYW50VG9KU1ZhbHVlKGV4ZWMsIG1fb2JqZWN0TWFwLT5nbG9iYWxPYmplY3QoKSwg
KnZhbHVlKTsKICAgICBpZiAoaWRlbnRpZmllclJlcC0+aXNTdHJpbmcoKSkgewogICAgICAgICBQ
dXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgbV9qc09iamVjdC0+cHV0KGV4ZWMsIGlkZW50
aWZpZXJGcm9tSWRlbnRpZmllclJlcChleGVjLCBpZGVudGlmaWVyUmVwKSwganNWYWx1ZSwgc2xv
dCk7CisgICAgICAgIG1fanNPYmplY3QtPnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllckZyb21J
ZGVudGlmaWVyUmVwKGV4ZWMsIGlkZW50aWZpZXJSZXApLCBqc1ZhbHVlLCBzbG90KTsKICAgICB9
IGVsc2UKLSAgICAgICAgbV9qc09iamVjdC0+cHV0KGV4ZWMsIGlkZW50aWZpZXJSZXAtPm51bWJl
cigpLCBqc1ZhbHVlKTsKKyAgICAgICAgbV9qc09iamVjdC0+cHV0VmlydHVhbChleGVjLCBpZGVu
dGlmaWVyUmVwLT5udW1iZXIoKSwganNWYWx1ZSk7CiAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24o
KTsKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMv
c3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDJm
ZmJlOTk1NDdiM2I2NGNlYzVlYTFhNDBkZWFhOGM3YzYwZDU3ZTkuLjAzZWYxOGE2MWU4YmYwYzFj
NDc3MzkzMzU2ODgzODhkYWZlOTYxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtMzMs
NyArMzMsNyBAQCBfWk43V2ViQ29yZTVSYW5nZUQxRXY7CiBfWk43V2ViQ29yZThEb2N1bWVudDM2
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzRXY7CiBfWk43V2ViQ29yZTlIVE1M
TmFtZXM4aW5wdXRUYWdFOwogX1pON1dlYkNvcmU5SFRNTE5hbWVzMTF0ZXh0YXJlYVRhZ0U7Ci1f
Wk43V2ViQ29yZTEwSlNEb2N1bWVudDNwdXRFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50
aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFOworX1pON1dlYkNvcmUx
MEpTRG9jdW1lbnQxMHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZp
ZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFOwogX1pON1dlYkNvcmUxMEpT
RG9jdW1lbnQ2c19pbmZvRTsKIF9aTjdXZWJDb3JlMTB0b0RvY3VtZW50RU4zSlNDN0pTVmFsdWVF
OwogX1pON1dlYkNvcmUxMENsaWVudFJlY3RDMUV2OwpAQCAtNTQsMTMgKzU0LDEzIEBAIF9aTjdX
ZWJDb3JlMjBTaGFkb3dDb250ZW50RWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1bWVudEU7CiBfWk43
V2ViQ29yZTIxZ2V0Q2FjaGVkRE9NU3RydWN0dXJlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBL
TjNKU0M5Q2xhc3NJbmZvRTsKIF9aTjdXZWJDb3JlMjJleHRlcm5hbFJlcHJlc2VudGF0aW9uRVBO
U183RWxlbWVudEVqOwogX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEwbWFy
a2Vyc0ZvckVQTlNfNE5vZGVFOworX1pON1dlYkNvcmU2SlNOb2RlMTBwdXRWaXJ0dWFsRVBOM0pT
QzlFeGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJv
cGVydHlTbG90RTsKIF9aTjdXZWJDb3JlNkpTTm9kZTIwdmlzaXRDaGlsZHJlblZpcnR1YWxFUk4z
SlNDMTFTbG90VmlzaXRvckU7Ci1fWk43V2ViQ29yZTZKU05vZGUzcHV0RVBOM0pTQzlFeGVjU3Rh
dGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJvcGVydHlTbG90
RTsKIF9aTjdXZWJDb3JlNkpTTm9kZTZzX2luZm9FOwogX1pON1dlYkNvcmU2dG9Ob2RlRU4zSlND
N0pTVmFsdWVFOwogX1pON1dlYkNvcmU3RWxlbWVudDE2ZW5zdXJlU2hhZG93Um9vdEV2OwogX1pO
N1dlYkNvcmU3RWxlbWVudDE2cmVtb3ZlU2hhZG93Um9vdEV2OwotX1pON1dlYkNvcmU5SlNFbGVt
ZW50M3B1dEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVF
Uk5TMV8xNVB1dFByb3BlcnR5U2xvdEU7CitfWk43V2ViQ29yZTlKU0VsZW1lbnQxMHB1dFZpcnR1
YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFf
MTVQdXRQcm9wZXJ0eVNsb3RFOwogX1pON1dlYkNvcmU5SlNFbGVtZW50NnNfaW5mb0U7CiBfWk43
V2ViQ29yZTl0b0VsZW1lbnRFTjNKU0M3SlNWYWx1ZUU7CiBfWk5LN1dlYkNvcmUxNkhUTUxJbnB1
dEVsZW1lbnQxNHN1Z2dlc3RlZFZhbHVlRXY7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111030</attachid>
            <date>2011-10-14 11:09:21 -0700</date>
            <delta_ts>2011-10-14 15:09:26 -0700</delta_ts>
            <desc>Fix gtk</desc>
            <filename>bug-69851-20111014110920.patch</filename>
            <type>text/plain</type>
            <size>118980</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc0NzcKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5n
ZUxvZwppbmRleCA3MmM5YzQxY2JmZDYyNmY1ZTQ3NTY1YzgyYjdiMjE2YTE4NWU2MDZhLi5lNDVl
YmY0NTE0MTY4NTc5Yjg0MjYyMjZiNzg1YzA1NTZmNmRlOTgzIDEwMDY0NAotLS0gYS9DaGFuZ2VM
b2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMTQgIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgdmlydHVh
bCBwdXQgdG8gcHV0VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njk4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWVkIHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRvIHB1dFZpcnR1YWwg
aW4gcHJlcHJhdGlvbiBmb3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGljIHB1dCB0byB0aGUg
TWV0aG9kVGFibGUgaW4gQ2xhc3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAgY29tcGlsZXIgZ2V0
cyBtYWQgaWYgdGhlIHZpcnR1YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZlIHRoZSBzYW1lIAor
ICAgICAgICBuYW1lLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRl
cjoKKwogMjAxMS0xMC0xMyAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CiAKICAgICAg
ICAgTWljcm9kYXRhOiBCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiBkb2N1bWVudC5nZXRJdGVtcygp
IG1ldGhvZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFj
a09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgK
aW5kZXggMDIyZjJhODk4NDZjMTMwMzhhYTVhNmU0Mjc2YTY2N2U1YjY2N2RiNy4uNDZjM2ZmMDY2
MmRhMjU5NzUyNTQwNzc4NWJjMDhiOWZjYjJlOWZhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE4MSw3ICsxODEsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3Jp
cHRvciYpOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgdm9pZCBw
dXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgdmlydHVh
bCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0
aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rp
b25zLmgKaW5kZXggODBkZTFlMDBiZTg4YzRjZTI1YTAxZGIyZjYyODc3YTBhZWY5MTZjNy4uZTE4
ZTEzNTdhYmY3MWExNDYyMzI0ZDUxM2I2ZWJkMmQ0NDZlYWRiOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTIw
MSw3ICsyMDEsNyBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSQogfQogCiB0ZW1wbGF0ZSA8Y2xh
c3MgUGFyZW50Pgotdm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnB1dChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0
UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnB1dFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IDVmY2JiODNhMzdlNWFhZmVjZTZmMmZiYTE3MGFlMTA3
ZWEwZTg0MDEuLmMzNDY2YmI1Y2YzYzc3YzM2MTAxMWU0N2Q0NzhiMGY3OTE2ZWY1OGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC0yNzcsNyArMjc3LDcg
QEAgdm9pZCBKU09iamVjdFNldFByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVm
IG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGUKICAgICAgICAganNPYmplY3QtPnB1dFdpdGhBdHRy
aWJ1dGVzKGV4ZWMsIG5hbWUsIGpzVmFsdWUsIGF0dHJpYnV0ZXMpOwogICAgIGVsc2UgewogICAg
ICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAganNPYmplY3QtPnB1dChleGVjLCBu
YW1lLCBqc1ZhbHVlLCBzbG90KTsKKyAgICAgICAganNPYmplY3QtPnB1dFZpcnR1YWwoZXhlYywg
bmFtZSwganNWYWx1ZSwgc2xvdCk7CiAgICAgfQogCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSB7CkBAIC0zMTIsNyArMzEyLDcgQEAgdm9pZCBKU09iamVjdFNldFByb3BlcnR5QXRJbmRl
eChKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIHVuc2lnbmVkIHAKICAgICBK
U09iamVjdCoganNPYmplY3QgPSB0b0pTKG9iamVjdCk7CiAgICAgSlNWYWx1ZSBqc1ZhbHVlID0g
dG9KUyhleGVjLCB2YWx1ZSk7CiAgICAgCi0gICAganNPYmplY3QtPnB1dChleGVjLCBwcm9wZXJ0
eUluZGV4LCBqc1ZhbHVlKTsKKyAgICBqc09iamVjdC0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0
eUluZGV4LCBqc1ZhbHVlKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKICAgICAg
ICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgICAgICpleGNlcHRpb24gPSB0b1JlZihleGVjLCBl
eGVjLT5leGNlcHRpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAxOTYyZTlkMDMx
Y2M4ZTRmOTMzZDljYmNlODJhOGZhMzg0NjJhYzM5Li41MWNiOTY0NmMyNmY4ZmI5MjEwMTNlODZj
MDBjOTEzNDcwODUyYTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDgg
QEAKKzIwMTEtMTAtMTQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW5hbWUgdmlydHVhbCBwdXQgdG8gcHV0VmlydHVhbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4NTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWVkIHZpcnR1YWwgdmVyc2lv
bnMgb2YgcHV0IHRvIHB1dFZpcnR1YWwgaW4gcHJlcHJhdGlvbiBmb3IgCisgICAgICAgIGFkZGlu
ZyB0aGUgc3RhdGljIHB1dCB0byB0aGUgTWV0aG9kVGFibGUgaW4gQ2xhc3NJbmZvIHNpbmNlIHRo
ZSAKKyAgICAgICAgY29tcGlsZXIgZ2V0cyBtYWQgaWYgdGhlIHZpcnR1YWwgYW5kIHN0YXRpYyB2
ZXJzaW9ucyBoYXZlIHRoZSBzYW1lIAorICAgICAgICBuYW1lLgorCisgICAgICAgICogQVBJL0pT
Q2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9u
cy5oOgorICAgICAgICAoSlNDOjo6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIEFQSS9KU09iamVj
dFJlZi5jcHA6CisgICAgICAgIChKU09iamVjdFNldFByb3BlcnR5KToKKyAgICAgICAgKEpTT2Jq
ZWN0U2V0UHJvcGVydHlBdEluZGV4KToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6Cisg
ICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmRlZjoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwOgorICAg
ICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OnB1dFZpcnR1YWwpOgorICAgICAgICAoSlND
OjpEZWJ1Z2dlckFjdGl2YXRpb246OnB1dCk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJB
Y3RpdmF0aW9uLmg6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OnB1dEJ5VmFsKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5j
cHA6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKiBqaXQv
SklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6CisgICAg
ICAgICoganNjLmNwcDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgor
ICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRz
OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAq
IHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpwdXRQcm9wZXJ0eSk6
CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jQ29uY2F0KToKKyAgICAgICAgKEpTQzo6YXJy
YXlQcm90b0Z1bmNQdXNoKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNSZXZlcnNlKToK
KyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNTaGlmdCk6CisgICAgICAgIChKU0M6OmFycmF5
UHJvdG9GdW5jU2xpY2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NvcnQpOgorICAg
ICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NwbGljZSk6CisgICAgICAgIChKU0M6OmFycmF5UHJv
dG9GdW5jVW5TaGlmdCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jRmlsdGVyKToKKyAg
ICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNNYXApOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3Rp
dmF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNBY3RpdmF0aW9uOjpwdXRWaXJ0dWFsKToKKyAg
ICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJh
eS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnB1dFZpcnR1YWwpOgorICAgICAgICAoSlND
OjpKU0FycmF5OjpwdXRTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnB1c2gpOgor
ICAgICAgICAoSlNDOjpKU0FycmF5OjpzaGlmdENvdW50KToKKyAgICAgICAgKEpTQzo6SlNBcnJh
eTo6dW5zaGlmdENvdW50KToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAg
KiBydW50aW1lL0pTQnl0ZUFycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNCeXRlQXJyYXk6OnB1
dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAgICAgICAgKiBy
dW50aW1lL0pTQ2VsbC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6cHV0VmlydHVhbCk6Cisg
ICAgICAgIChKU0M6OkpTQ2VsbDo6cHV0KToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rp
b246OnB1dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6cHV0VmlydHVhbCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpwdXRXaXRo
QXR0cmlidXRlcyk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmpl
Y3Q6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OldhbGtlcjo6d2Fs
ayk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2Jq
ZWN0OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dCk6CisgICAgICAg
IChKU0M6OkpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9K
U09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpwdXQpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2NvcGVP
YmplY3Q6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVj
dC5oOgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6Omxvb2t1cFB1
dCk6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlND
OjpPYmplY3RQcm90b3R5cGU6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0
UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6ZmlsbEFycmF5SW5zdGFuY2UpOgorICAg
ICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6cHV0VmlydHVhbCk6CisgICAgICAgICogcnVu
dGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwTWF0Y2hl
c0FycmF5Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6cHV0VmlydHVhbCk6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdF
eHBPYmplY3Q6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6
CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJp
bmdPYmplY3Q6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0Lmg6
CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpz
dHJpbmdQcm90b0Z1bmNTcGxpdCk6CisKIDIwMTEtMTAtMTQgIFl1cWlhbmcgWGlhbiAgPHl1cWlh
bmcueGlhbkBpbnRlbC5jb20+CiAKICAgICAgICAgREZHIEpJVCAzMl82NCAtIFBlcmZvcm1hbmNl
IGZpeCBmb3IgUmVzb2x2ZUdsb2JhbApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKaW5kZXggNWIyZWZjNTU3ZWUxZTI4NzIxZTUwOWYzYWIxOTM4ZDg5YzdiNDlkOC4uZTgz
ODQ0YTRkYjYzZjczOTJmZTUyYjZjM2I0M2E0NjQ2MGRjMjA0OSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBAIC0xNTIsNyArMTUyLDYgQEAgX19aTjNKU0MxMlN0
cmluZ09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVu
dGlmaWVyRVJOU18KIF9fWk4zSlNDMTJTdHJpbmdPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQ
TlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxMlN0cmluZ09iamVj
dDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVB
cnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDMTJTdHJpbmdPYmplY3QyNGdldE93
blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNf
MThQcm9wZXJ0eURlc2NyaXB0b3JFCi1fX1pOM0pTQzEyU3RyaW5nT2JqZWN0M3B1dEVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNs
b3RFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0NnNfaW5mb0UKIF9fWk4zSlNDMTJTdHJpbmdPYmpl
Y3RDMkVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCiBfX1pOM0pTQzEzSlNGaW5h
bE9iamVjdDZzX2luZm9FCkBAIC0xNjEsNiArMTYwLDcgQEAgX19aTjNKU0MxM1NhbXBsaW5nRmxh
Z3M1c3RhcnRFdgogX19aTjNKU0MxM1NhbXBsaW5nRmxhZ3M3c19mbGFnc0UKIF9fWk4zSlNDMTNT
dGF0ZW1lbnROb2RlNnNldExvY0VpaQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTBnbG9iYWxF
eGVjRXYKK19fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDEwcHV0VmlydHVhbEVQTlNfOUV4ZWNTdGF0
ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBf
X1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxMmRlZmluZUdldHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckVQTlNfOEpTT2JqZWN0RWoKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDEy
ZGVmaW5lU2V0dGVyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVBOU184SlNPYmpl
Y3RFagogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTNjbGVhclJhcmVEYXRhRVBOU182SlNDZWxs
RQpAQCAtMTY5LDcgKzE2OSw3IEBAIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDE2YWRkU3RhdGlj
R2xvYmFsc0VQTlMwXzE4R2xvYmFsUHJvcGVydHlJbmZvRWkKIF9fWk4zSlNDMTRKU0dsb2JhbE9i
amVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
TlNfN0pTVmFsdWVFagogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNs
b3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQog
X19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQotX19a
TjNKU0MxNEpTR2xvYmFsT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmll
ckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFICAKK19fWk4zSlNDMTRKU0dsb2Jh
bE9iamVjdDNwdXRFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
TlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0MxNEpTR2xvYmFsT2Jq
ZWN0NGluaXRFUE5TXzhKU09iamVjdEUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDZzX2luZm9F
CiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3REMkV2CkBAIC0yNTYsMTQgKzI1NiwxNCBAQCBfX1pO
M0pTQzRZYXJyMTFZYXJyUGF0dGVybkMxRVJLTlNfN1VTdHJpbmdFYmJQUEtjCiBfX1pOM0pTQzRZ
YXJyMTFieXRlQ29tcGlsZUVSTlMwXzExWWFyclBhdHRlcm5FUE4zV1RGMjBCdW1wUG9pbnRlckFs
bG9jYXRvckUKIF9fWk4zSlNDNFlhcnI5aW50ZXJwcmV0RVBOUzBfMTVCeXRlY29kZVBhdHRlcm5F
UktOU183VVN0cmluZ0VqalBpCiBfX1pOM0pTQzRjYWxsRVBOU185RXhlY1N0YXRlRU5TXzdKU1Zh
bHVlRU5TXzhDYWxsVHlwZUVSS05TXzhDYWxsRGF0YUVTMl9SS05TXzdBcmdMaXN0RQorX19aTjNK
U0M2SlNDZWxsMTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5T
XzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKK19fWk4zSlNDNkpTQ2VsbDEwcHV0Vmly
dHVhbEVQTlNfOUV4ZWNTdGF0ZUVqTlNfN0pTVmFsdWVFCiBfX1pOM0pTQzZKU0NlbGwxMWdldENh
bGxEYXRhRVBTMF9STlNfOENhbGxEYXRhRQogX19aTjNKU0M2SlNDZWxsMTRkZWxldGVQcm9wZXJ0
eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDNkpTQ2VsbDE0ZGVs
ZXRlUHJvcGVydHlFUE5TXzlFeGVjU3RhdGVFagogX19aTjNKU0M2SlNDZWxsMThnZXRPd25Qcm9w
ZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlT
bG90RQogX19aTjNKU0M2SlNDZWxsMThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVF
alJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDNkpTQ2VsbDIzZ2V0Q29uc3RydWN0RGF0YVZp
cnR1YWxFUk5TXzEzQ29uc3RydWN0RGF0YUUKLV9fWk4zSlNDNkpTQ2VsbDNwdXRFUE5TXzlFeGVj
U3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90
RQotX19aTjNKU0M2SlNDZWxsM3B1dEVQTlNfOUV4ZWNTdGF0ZUVqTlNfN0pTVmFsdWVFICAKIF9f
Wk4zSlNDNkpTQ2VsbDlnZXRPYmplY3RFdgogX19aTjNKU0M2SlNMb2NrMTJEcm9wQWxsTG9ja3ND
MUVOU18xNEpTTG9ja0JlaGF2aW9yRQogX19aTjNKU0M2SlNMb2NrMTJEcm9wQWxsTG9ja3NDMUVQ
TlNfOUV4ZWNTdGF0ZUUKQEAgLTMwNCw2ICszMDQsOCBAQCBfX1pOM0pTQzhEZWJ1Z2dlcjIzcmVj
b21waWxlQWxsSlNGdW5jdGlvbnNFUE5TXzEySlNHbG9iYWxEYXRhRQogX19aTjNKU0M4RGVidWdn
ZXI2YXR0YWNoRVBOU18xNEpTR2xvYmFsT2JqZWN0RQogX19aTjNKU0M4RGVidWdnZXI2ZGV0YWNo
RVBOU18xNEpTR2xvYmFsT2JqZWN0RQogX19aTjNKU0M4RGVidWdnZXJEMkV2CitfX1pOM0pTQzhK
U09iamVjdDEwcHV0VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183
SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzhKU09iamVjdDEwcHV0Vmly
dHVhbEVQTlNfOUV4ZWNTdGF0ZUVqTlNfN0pTVmFsdWVFCiBfX1pOM0pTQzhKU09iamVjdDExaGFz
SW5zdGFuY2VFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFUzNfCiBfX1pOM0pTQzhKU09iamVj
dDEyZGVmaW5lR2V0dGVyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVBTMF9qCiBf
X1pOM0pTQzhKU09iamVjdDEyZGVmaW5lU2V0dGVyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVu
dGlmaWVyRVBTMF9qCkBAIC0zMjksOCArMzMxLDYgQEAgX19aTjNKU0M4SlNPYmplY3QyMWdldFBy
b3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTgK
IF9fWk4zSlNDOEpTT2JqZWN0MjJmaWxsR2V0dGVyUHJvcGVydHlTbG90RVJOU18xMlByb3BlcnR5
U2xvdEVQTlNfMTZXcml0ZUJhcnJpZXJCYXNlSU5TXzdVbmtub3duRUVFCiBfX1pOM0pTQzhKU09i
amVjdDIzYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2VFUk5TXzEySlNHbG9iYWxEYXRhRW1tCiBfX1pO
M0pTQzhKU09iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKLV9fWk4zSlNDOEpTT2Jq
ZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNf
MTVQdXRQcm9wZXJ0eVNsb3RFCi1fX1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVF
ak5TXzdKU1ZhbHVlRQogX19aTjNKU0M4SlNPYmplY3QzcHV0RVBOU182SlNDZWxsRVBOU185RXhl
Y1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xv
dEUKIF9fWk4zSlNDOEpTT2JqZWN0NnNfaW5mb0UKIF9fWk4zSlNDOEpTU3RyaW5nNnNfaW5mb0UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYK
aW5kZXggY2U0NzBjZjJiMDQwMTJlZTk3NjllOWFmOTZhMjJlZjY5ODZhNzdhNy4uZTYxMDU3NWIx
ZGMzMjk4YTUzOGFkZGQ1MDNlYmRlMDJlZmNhNTMzOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJv
ai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTI3MSwxNCArMjcxLDE0IEBA
IEVYUE9SVFMKICAgICA/cHJvdGVjdGVkR2xvYmFsT2JqZWN0Q291bnRASGVhcEBKU0NAQFFBRUlY
WgogICAgID9wcm90ZWN0ZWRPYmplY3RDb3VudEBIZWFwQEpTQ0BAUUFFSVhaCiAgICAgP3Byb3Rl
Y3RlZE9iamVjdFR5cGVDb3VudHNASGVhcEBKU0NAQFFBRT9BVj8kUGFzc093blB0ckBWPyRIYXNo
Q291bnRlZFNldEBQQkRVPyRQdHJIYXNoQFBCREBXVEZAQFU/JEhhc2hUcmFpdHNAUEJEQDJAQFdU
RkBAQFdURkBAWFoKLSAgICA/cHV0QEpTQ2VsbEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQlZJ
ZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBBQVZQdXRQcm9wZXJ0eVNsb3RAMkBAWgotICAgID9wdXRA
SlNDZWxsQEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQElWSlNWYWx1ZUAyQEBaCi0gICAgP3B1dEBK
U0dsb2JhbE9iamVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpT
VmFsdWVAMkBBQVZQdXRQcm9wZXJ0eVNsb3RAMkBAWgorICAgID9wdXRASlNHbG9iYWxPYmplY3RA
SlNDQEBTQVhQQVZKU0NlbGxAMkBQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFs
dWVAMkBBQVZQdXRQcm9wZXJ0eVNsb3RAMkBAWgogICAgID9wdXRASlNPYmplY3RASlNDQEBTQVhQ
QVZKU0NlbGxAMkBQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBBQVZQ
dXRQcm9wZXJ0eVNsb3RAMkBAWgotICAgID9wdXRASlNPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0
YXRlQDJAQUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90QDJAQFoK
LSAgICA/cHV0QEpTT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQElWSlNWYWx1ZUAyQEBa
Ci0gICAgP3B1dEBTdHJpbmdPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRp
ZmllckAyQFZKU1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90QDJAQFoKICAgICA/cHV0RGlyZWN0
SW50ZXJuYWxASlNPYmplY3RASlNDQEBBQUVfTkFBVkpTR2xvYmFsRGF0YUAyQEFCVklkZW50aWZp
ZXJAMkBWSlNWYWx1ZUAyQElfTkFBVlB1dFByb3BlcnR5U2xvdEAyQFBBVkpTQ2VsbEAyQEBaCisg
ICAgP3B1dFZpcnR1YWxASlNDZWxsQEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZp
ZXJAMkBWSlNWYWx1ZUAyQEFBVlB1dFByb3BlcnR5U2xvdEAyQEBaCisgICAgP3B1dFZpcnR1YWxA
SlNDZWxsQEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQElWSlNWYWx1ZUAyQEBaCisgICAgP3B1dFZp
cnR1YWxASlNHbG9iYWxPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmll
ckAyQFZKU1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90QDJAQFoKKyAgICA/cHV0VmlydHVhbEBK
U09iamVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVA
MkBBQVZQdXRQcm9wZXJ0eVNsb3RAMkBAWgorICAgID9wdXRWaXJ0dWFsQEpTT2JqZWN0QEpTQ0BA
VUFFWFBBVkV4ZWNTdGF0ZUAyQElWSlNWYWx1ZUAyQEBaCiAgICAgP3B1dFdpdGhBdHRyaWJ1dGVz
QEpTR2xvYmFsT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBW
SlNWYWx1ZUAyQElAWgogICAgID9wdXRXaXRoQXR0cmlidXRlc0BKU09iamVjdEBKU0NAQFVBRVhQ
QVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBJQFoKICAgICA/cHV0V2l0
aEF0dHJpYnV0ZXNASlNPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmll
ckAyQFZKU1ZhbHVlQDJASV9OQUFWUHV0UHJvcGVydHlTbG90QDJAQFoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKaW5kZXgg
MGNmOTdmMjU5Nzc5ODU2MmYzNDRjODY2OWRhMWQ3YmNhNGI5YWJhZC4uOTE4YmQyODIxMzA2YzVh
NzAzZGQ2ZGNiN2QzZDA5NGMzYzVlMGI0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKQEAgLTcwLDE0ICs3MCwxNCBA
QCBib29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZWJ1Z2dl
ckFjdGl2YXRpb24qPihjZWxsKS0+bV9hY3RpdmF0aW9uLT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OnB1
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246
OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHZvaWQgRGVidWdnZXJB
Y3RpdmF0aW9uOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90
KQogewotICAgIHN0YXRpY19jYXN0PERlYnVnZ2VyQWN0aXZhdGlvbio+KGNlbGwpLT5tX2FjdGl2
YXRpb24tPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBzdGF0aWNf
Y2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24qPihjZWxsKS0+bV9hY3RpdmF0aW9uLT5wdXRWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiB2b2lkIERlYnVnZ2VyQWN0
aXZhdGlvbjo6cHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9u
LmgKaW5kZXggN2E1NWE3YTM5NTg0YWU3ZDliYjVhZTk0ZGNhMDBkNTlkNTk0NDk5NS4uZTc3MDUx
NDQyODVhMjU3NTg5NmVjN2EwMjBjNmY0NTVlZWY2YWM3NiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtNDUsNyArNDUs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBVU3RyaW5nIGNsYXNzTmFtZSgp
IGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2
aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCBmZmE1YmJkYTU5ZTYyNTQxZGQ3NWVj
NDAyYzM4ZTI4OWVkZTI2NDcyLi44N2M5ZmIxOGZjN2FlNzFlNTgzNmIwM2IzYzg1MmVlZTZjNjEw
NDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAg
LTk2LDcgKzk2LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBiYXNlVmFsdWUsIHVpbnQzMl90IGluZGV4LAogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKLSAgICAgICAgYXJyYXktPkpTQXJyYXk6OnB1dChleGVjLCBpbmRleCwg
dmFsdWUpOworICAgICAgICBKU0FycmF5OjpwdXQoYXJyYXksIGV4ZWMsIGluZGV4LCB2YWx1ZSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM1Nyw3ICszNTcsNyBAQCB2b2lkIERGR19P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kcyhFeGVjU3RhdGUqIGV4
ZWMsIEpTQXJyYXkqCiB7CiAgICAgLy8gV2Ugc2hvdWxkIG9ubHkgZ2V0IGhlcmUgaWYgaW5kZXgg
aXMgb3V0c2lkZSB0aGUgZXhpc3RpbmcgdmVjdG9yLgogICAgIEFTU0VSVCghYXJyYXktPmNhblNl
dEluZGV4KGluZGV4KSk7Ci0gICAgYXJyYXktPkpTQXJyYXk6OnB1dChleGVjLCBpbmRleCwgSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOworICAgIEpTQXJyYXk6OnB1dChhcnJheSwgZXhl
YywgaW5kZXgsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAogRW5jb2RlZEpT
VmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVB1c2goRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTQXJyYXkqIGFycmF5KQpAQCAtMzc0LDEzICsz
NzQsMTMgQEAgRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVBvcChF
eGVjU3RhdGUqLCBKU0FycmF5KiBhcnJheSkKIHZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRCeUlkU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBKU0NlbGwqIGJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSkKIHsKICAgICBQdXRQcm9w
ZXJ0eVNsb3Qgc2xvdCh0cnVlKTsKLSAgICBiYXNlLT5wdXQoZXhlYywgKnByb3BlcnR5TmFtZSwg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOworICAgIGJhc2UtPnB1dFZpcnR1
YWwoZXhlYywgKnByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNs
b3QpOwogfQogCiB2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdChF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNDZWxsKiBiYXNl
LCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Qo
ZmFsc2UpOwotICAgIGJhc2UtPnB1dChleGVjLCAqcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CisgICAgYmFzZS0+cHV0VmlydHVhbChleGVjLCAqcHJv
cGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKIHZv
aWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0KEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU0NlbGwqIGJhc2UsIElkZW50aWZp
ZXIqIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4IDViYTJmNWY2MGIzNjY5ZGM4NmQ3NzQ4OTAzODdhODQy
NDY4ZDk5MGQuLmM4OGY1MmRmYTkzN2E2YjJkODFmMWI1NDkzMTZkMTM4NjUyOGViZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApA
QCAtNzkxLDcgKzc5MSw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoUHJvZ3JhbUV4
ZWN1dGFibGUqIHByb2dyYW0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBTCiAgICAgICAgICAgICBp
ZiAoSlNPTlBQYXRoLnNpemUoKSA9PSAxICYmIEpTT05QUGF0aFswXS5tX3R5cGUgPT0gTGl0ZXJh
bFBhcnNlcjo6SlNPTlBQYXRoRW50cnlUeXBlRGVjbGFyZSkgewogICAgICAgICAgICAgICAgIGlm
IChnbG9iYWxPYmplY3QtPmhhc1Byb3BlcnR5KGNhbGxGcmFtZSwgSlNPTlBQYXRoWzBdLm1fcGF0
aEVudHJ5TmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7
Ci0gICAgICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+cHV0KGNhbGxGcmFtZSwgSlNPTlBQ
YXRoWzBdLm1fcGF0aEVudHJ5TmFtZSwgSlNPTlBWYWx1ZSwgc2xvdCk7CisgICAgICAgICAgICAg
ICAgICAgIGdsb2JhbE9iamVjdC0+cHV0VmlydHVhbChjYWxsRnJhbWUsIEpTT05QUGF0aFswXS5t
X3BhdGhFbnRyeU5hbWUsIEpTT05QVmFsdWUsIHNsb3QpOwogICAgICAgICAgICAgICAgIH0gZWxz
ZQogICAgICAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPnB1dFdpdGhBdHRyaWJ1dGVzKGNh
bGxGcmFtZSwgSlNPTlBQYXRoWzBdLm1fcGF0aEVudHJ5TmFtZSwgSlNPTlBWYWx1ZSwgRG9udEVu
dW0gfCBEb250RGVsZXRlKTsKICAgICAgICAgICAgICAgICAvLyB2YXIgZGVjbGFyYXRpb25zIHJl
dHVybiB1bmRlZmluZWQKQEAgLTEyNTEsMTQgKzEyNTEsMTQgQEAgSlNWYWx1ZSBJbnRlcnByZXRl
cjo6ZXhlY3V0ZShFdmFsRXhlY3V0YWJsZSogZXZhbCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpT
VmFsdWUKICAgICAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gY29kZUJsb2NrLT52
YXJpYWJsZShpKTsKICAgICAgICAgICAgIGlmICghdmFyaWFibGVPYmplY3QtPmhhc1Byb3BlcnR5
KGNhbGxGcmFtZSwgaWRlbnQpKSB7CiAgICAgICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNs
b3Q7Ci0gICAgICAgICAgICAgICAgdmFyaWFibGVPYmplY3QtPnB1dChjYWxsRnJhbWUsIGlkZW50
LCBqc1VuZGVmaW5lZCgpLCBzbG90KTsKKyAgICAgICAgICAgICAgICB2YXJpYWJsZU9iamVjdC0+
cHV0VmlydHVhbChjYWxsRnJhbWUsIGlkZW50LCBqc1VuZGVmaW5lZCgpLCBzbG90KTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtRnVu
Y3Rpb25zOyArK2kpIHsKICAgICAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb24g
PSBjb2RlQmxvY2stPmZ1bmN0aW9uRGVjbChpKTsKICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xv
dCBzbG90OwotICAgICAgICAgICAgdmFyaWFibGVPYmplY3QtPnB1dChjYWxsRnJhbWUsIGZ1bmN0
aW9uLT5uYW1lKCksIGZ1bmN0aW9uLT5tYWtlKGNhbGxGcmFtZSwgc2NvcGVDaGFpbiksIHNsb3Qp
OworICAgICAgICAgICAgdmFyaWFibGVPYmplY3QtPnB1dFZpcnR1YWwoY2FsbEZyYW1lLCBmdW5j
dGlvbi0+bmFtZSgpLCBmdW5jdGlvbi0+bWFrZShjYWxsRnJhbWUsIHNjb3BlQ2hhaW4pLCBzbG90
KTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHVicy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNw
cAppbmRleCA4MzJkZGVkZDhjZGUzM2Y1NWViYzQxOWQ3ZDFlMjllMzUyNDZhY2Y4Li4yYmI2ZjBk
Nzk1ZTc0ZWE5NGUzNDUwMDI5ZTY3OGIzNDIwN2RmODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmNwcApAQCAtMjYxMSw3ICsyNjExLDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJ
T04odm9pZCwgb3BfcHV0X2J5X3ZhbCkKICAgICAgICAgICAgIGlmIChqc0FycmF5LT5jYW5TZXRJ
bmRleChpKSkKICAgICAgICAgICAgICAgICBqc0FycmF5LT5zZXRJbmRleCgqZ2xvYmFsRGF0YSwg
aSwgdmFsdWUpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGpzQXJyYXktPkpT
QXJyYXk6OnB1dChjYWxsRnJhbWUsIGksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBKU0FycmF5
OjpwdXQoanNBcnJheSwgY2FsbEZyYW1lLCBpLCB2YWx1ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAo
aXNKU0J5dGVBcnJheShnbG9iYWxEYXRhLCBiYXNlVmFsdWUpICYmIGFzQnl0ZUFycmF5KGJhc2VW
YWx1ZSktPmNhbkFjY2Vzc0luZGV4KGkpKSB7CiAgICAgICAgICAgICBKU0J5dGVBcnJheSoganNC
eXRlQXJyYXkgPSBhc0J5dGVBcnJheShiYXNlVmFsdWUpOwogICAgICAgICAgICAgY3RpUGF0Y2hD
YWxsQnlSZXR1cm5BZGRyZXNzKGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksIFNUVUJfUkVUVVJOX0FE
RFJFU1MsIEZ1bmN0aW9uUHRyKGN0aV9vcF9wdXRfYnlfdmFsX2J5dGVfYXJyYXkpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKaW5kZXggZmRjNjk5ZThhY2UxNWFhZmNjYjNiNDBlMWE3YjdlNjk4OTIwODEw
MC4uMGJjZmNkNmJjYzk4MzZkNjk3ZTJkMzE4MjUxOGI4NDc3OWM5N2FlZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAKQEAgLTE4Miw3ICsxODIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgSlNPYmpl
Y3QqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxFeGVjKCkpOwogICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgICAg
IGFycmF5LT5wdXQoZ2xvYmFsRXhlYygpLCBpLCBqc1N0cmluZyhnbG9iYWxFeGVjKCksIGFyZ3Vt
ZW50c1tpXSkpOworICAgICAgICAgICAgYXJyYXktPnB1dFZpcnR1YWwoZ2xvYmFsRXhlYygpLCBp
LCBqc1N0cmluZyhnbG9iYWxFeGVjKCksIGFyZ3VtZW50c1tpXSkpOwogICAgICAgICBwdXREaXJl
Y3QoZ2xvYmFsRGF0YSwgSWRlbnRpZmllcihnbG9iYWxFeGVjKCksICJhcmd1bWVudHMiKSwgYXJy
YXkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJndW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5j
cHAKaW5kZXggYzQ5NGRhMTMyYzJhMzA1OTQzMmYyMjIyMTRjOTVjZjA0ZTljNGFiNS4uMDA5NmM3
YzYwMTY5YmFjMDE5NjYyZDQxNWNhNjdmNzA0ZTY1YTA2YiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBBcmd1
bWVudHM6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVB
cnJheSYgcHJvcGVydHkKICAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBw
cm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAotdm9pZCBBcmd1bWVudHM6OnB1dChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCit2b2lkIEFyZ3VtZW50czo6cHV0Vmly
dHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
cHV0KHRoaXMsIGV4ZWMsIGksIHZhbHVlKTsKIH0KQEAgLTI4Myw3ICsyODMsNyBAQCB2b2lkIEFy
Z3VtZW50czo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBK
U1ZhbHVlIHZhbHVlKQogICAgIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgSWRlbnRp
ZmllcihleGVjLCBVU3RyaW5nOjpudW1iZXIoaSkpLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLXZvaWQg
QXJndW1lbnRzOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgQXJndW1l
bnRzOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAppbmRleCAwNDJjZmQxMGQ0NzdiMDQzNzk1ZjE2
OWZmNThhZDU2YjI1ZDVmN2ZkLi4wM2RlYzhjZGQzNzk0NGE1MDMyM2E3YTk4NDA5ZjMwOTc5OGI5
Njk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaApAQCAtMTM5
LDkgKzEzOSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFBy
b3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Q
cm9wZXJ0aWVzKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgdmlydHVhbCBib29s
IGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSk7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggY2YxNjE2MDNhMzRmMTU5
MzM2YmMzOTVlN2RkODI0OWExZjU3ZWNlZC4uZDJlZTVhNDZiNjk2N2EwY2NmZDlhOGVmMWJmMjdl
MDVjMjJjNjFjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
UHJvdG90eXBlLmNwcApAQCAtMTU0LDcgKzE1NCw3IEBAIHN0YXRpYyBKU1ZhbHVlIGdldFByb3Bl
cnR5KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iaiwgdW5zaWduZWQgaW5kZXgpCiBzdGF0
aWMgdm9pZCBwdXRQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBQdXRQcm9w
ZXJ0eVNsb3Qgc2xvdDsKLSAgICBvYmotPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBz
bG90KTsKKyAgICBvYmotPnB1dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xv
dCk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBhcmd1bWVudENsYW1wZWRJbmRleEZyb21TdGFydE9y
RW5kKEV4ZWNTdGF0ZSogZXhlYywgaW50IGFyZ3VtZW50LCB1bnNpZ25lZCBsZW5ndGgsIHVuc2ln
bmVkIHVuZGVmaW5lZFZhbHVlID0gMCkKQEAgLTM1NywxMSArMzU3LDExIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNDb25jYXQoRXhlY1N0YXRlKiBleGVjKQog
ICAgICAgICAgICAgSlNPYmplY3QqIGN1ck9iamVjdCA9IGN1ckFyZy50b09iamVjdChleGVjKTsK
ICAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IDA7IGsgPCBsZW5ndGg7ICsraykgewogICAg
ICAgICAgICAgICAgIGlmIChKU1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShleGVjLCBjdXJPYmplY3Qs
IGspKQotICAgICAgICAgICAgICAgICAgICBhcnItPnB1dChleGVjLCBuLCB2KTsKKyAgICAgICAg
ICAgICAgICAgICAgYXJyLT5wdXRWaXJ0dWFsKGV4ZWMsIG4sIHYpOwogICAgICAgICAgICAgICAg
IG4rKzsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFyci0+
cHV0KGV4ZWMsIG4sIGN1ckFyZyk7CisgICAgICAgICAgICBhcnItPnB1dFZpcnR1YWwoZXhlYywg
biwgY3VyQXJnKTsKICAgICAgICAgICAgIG4rKzsKICAgICAgICAgfQogICAgICAgICBpZiAoaSA9
PSBhcmdDb3VudCkKQEAgLTQxNSwxMSArNDE1LDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgYXJyYXlQcm90b0Z1bmNQdXNoKEV4ZWNTdGF0ZSogZXhlYykKICAgICBmb3IgKHVuc2ln
bmVkIG4gPSAwOyBuIDwgZXhlYy0+YXJndW1lbnRDb3VudCgpOyBuKyspIHsKICAgICAgICAgLy8g
Q2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3c7IHdoZXJlIHNhZmUgd2UgY2FuIGRvIGEgZmFzdCBw
dXQgYnkgaW5kZXguCiAgICAgICAgIGlmIChsZW5ndGggKyBuID49IGxlbmd0aCkKLSAgICAgICAg
ICAgIHRoaXNPYmotPnB1dChleGVjLCBsZW5ndGggKyBuLCBleGVjLT5hcmd1bWVudChuKSk7Cisg
ICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGxlbmd0aCArIG4sIGV4ZWMtPmFy
Z3VtZW50KG4pKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qg
c2xvdDsKICAgICAgICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lKGV4ZWMsIEpTVmFsdWUo
c3RhdGljX2Nhc3Q8aW50NjRfdD4obGVuZ3RoKSArIHN0YXRpY19jYXN0PGludDY0X3Q+KG4pKS50
b1N0cmluZyhleGVjKSk7Ci0gICAgICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywgcHJvcGVydHlO
YW1lLCBleGVjLT5hcmd1bWVudChuKSwgc2xvdCk7CisgICAgICAgICAgICB0aGlzT2JqLT5wdXRW
aXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgZXhlYy0+YXJndW1lbnQobiksIHNsb3QpOwogICAg
ICAgICB9CiAgICAgfQogICAgIEpTVmFsdWUgbmV3TGVuZ3RoKHN0YXRpY19jYXN0PGludDY0X3Q+
KGxlbmd0aCkgKyBzdGF0aWNfY2FzdDxpbnQ2NF90PihleGVjLT5hcmd1bWVudENvdW50KCkpKTsK
QEAgLTQ0MSwxMiArNDQxLDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQ
cm90b0Z1bmNSZXZlcnNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgSlNWYWx1ZSBvYmogPSBn
ZXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBrKTsKIAogICAgICAgICBpZiAob2JqMikKLSAgICAg
ICAgICAgIHRoaXNPYmotPnB1dChleGVjLCBrLCBvYmoyKTsKKyAgICAgICAgICAgIHRoaXNPYmot
PnB1dFZpcnR1YWwoZXhlYywgaywgb2JqMik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRo
aXNPYmotPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGspOwogCiAgICAgICAgIGlmIChvYmopCi0gICAg
ICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywgbGsxLCBvYmopOworICAgICAgICAgICAgdGhpc09i
ai0+cHV0VmlydHVhbChleGVjLCBsazEsIG9iaik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAg
IHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGxrMSk7CiAgICAgfQpAQCAtNDcxLDcgKzQ3
MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTaGlmdChF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBrID0gMTsgayA8IGxlbmd0aDsgaysrKSB7CiAgICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUg
b2JqID0gZ2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwgaykpCi0gICAgICAgICAgICAgICAgICAg
IHRoaXNPYmotPnB1dChleGVjLCBrIC0gMSwgb2JqKTsKKyAgICAgICAgICAgICAgICAgICAgdGhp
c09iai0+cHV0VmlydHVhbChleGVjLCBrIC0gMSwgb2JqKTsKICAgICAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGsgLSAx
KTsKICAgICAgICAgICAgIH0KQEAgLTUwMCw3ICs1MDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU2xpY2UoRXhlY1N0YXRlKiBleGVjKQogICAgIHVuc2ln
bmVkIG4gPSAwOwogICAgIGZvciAodW5zaWduZWQgayA9IGJlZ2luOyBrIDwgZW5kOyBrKyssIG4r
KykgewogICAgICAgICBpZiAoSlNWYWx1ZSB2ID0gZ2V0UHJvcGVydHkoZXhlYywgdGhpc09iaiwg
aykpCi0gICAgICAgICAgICByZXNPYmotPnB1dChleGVjLCBuLCB2KTsKKyAgICAgICAgICAgIHJl
c09iai0+cHV0VmlydHVhbChleGVjLCBuLCB2KTsKICAgICB9CiAgICAgcmVzT2JqLT5zZXRMZW5n
dGgobik7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtNTU5LDggKzU1
OSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTb3J0KEV4
ZWNTdGF0ZSogZXhlYykKICAgICAgICAgfQogICAgICAgICAvLyBTd2FwIHRoZW1pbiBhbmQgaQog
ICAgICAgICBpZiAodGhlbWluID4gaSkgewotICAgICAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMs
IGksIG1pbk9iaik7Ci0gICAgICAgICAgICB0aGlzT2JqLT5wdXQoZXhlYywgdGhlbWluLCBpT2Jq
KTsKKyAgICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgaSwgbWluT2JqKTsKKyAg
ICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgdGhlbWluLCBpT2JqKTsKICAgICAg
ICAgfQogICAgIH0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmopOwpAQCAtNjA3
LDcgKzYwNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNT
cGxpY2UoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBrID0gYmVnaW47IGsgPCBsZW5ndGggLSBkZWxldGVDb3VudDsgKytr
KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShleGVj
LCB0aGlzT2JqLCBrICsgZGVsZXRlQ291bnQpKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhp
c09iai0+cHV0KGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncywgdik7CisgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncywgdik7
CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNP
YmotPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyk7CiAgICAgICAgICAg
ICAgICAgfQpAQCAtNjIwLDcgKzYyMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YXJyYXlQcm90b0Z1bmNTcGxpY2UoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgZWxzZSB7
CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gbGVuZ3RoIC0gZGVsZXRlQ291bnQ7
IGsgPiBiZWdpbjsgLS1rKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIG9iaiA9
IGdldFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGsgKyBkZWxldGVDb3VudCAtIDEpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyAt
IDEsIG9iaik7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4
ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyAtIDEsIG9iaik7CiAgICAgICAgICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5KGV4ZWMs
IGsgKyBhZGRpdGlvbmFsQXJncyAtIDEpOwogICAgICAgICAgICAgICAgIH0KQEAgLTYyOCw3ICs2
MjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3BsaWNl
KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgfQogICAgIH0KICAgICBmb3IgKHVuc2lnbmVkIGsg
PSAwOyBrIDwgYWRkaXRpb25hbEFyZ3M7ICsraykKLSAgICAgICAgdGhpc09iai0+cHV0KGV4ZWMs
IGsgKyBiZWdpbiwgZXhlYy0+YXJndW1lbnQoayArIDIpKTsKKyAgICAgICAgdGhpc09iai0+cHV0
VmlydHVhbChleGVjLCBrICsgYmVnaW4sIGV4ZWMtPmFyZ3VtZW50KGsgKyAyKSk7CiAKICAgICBw
dXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBq
c051bWJlcihsZW5ndGggLSBkZWxldGVDb3VudCArIGFkZGl0aW9uYWxBcmdzKSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtNjUwLDE0ICs2NTAsMTQgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1VuU2hpZnQoRXhlY1N0YXRlKiBl
eGVjKQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IGxlbmd0
aDsgayA+IDA7IC0taykgewogICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIHYgPSBnZXRQcm9w
ZXJ0eShleGVjLCB0aGlzT2JqLCBrIC0gMSkpCi0gICAgICAgICAgICAgICAgICAgIHRoaXNPYmot
PnB1dChleGVjLCBrICsgbnJBcmdzIC0gMSwgdik7CisgICAgICAgICAgICAgICAgICAgIHRoaXNP
YmotPnB1dFZpcnR1YWwoZXhlYywgayArIG5yQXJncyAtIDEsIHYpOwogICAgICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+ZGVsZXRlUHJvcGVydHkoZXhlYywg
ayArIG5yQXJncyAtIDEpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIGZv
ciAodW5zaWduZWQgayA9IDA7IGsgPCBuckFyZ3M7ICsraykKLSAgICAgICAgdGhpc09iai0+cHV0
KGV4ZWMsIGssIGV4ZWMtPmFyZ3VtZW50KGspKTsKKyAgICAgICAgdGhpc09iai0+cHV0VmlydHVh
bChleGVjLCBrLCBleGVjLT5hcmd1bWVudChrKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051
bWJlcihsZW5ndGggKyBuckFyZ3MpOwogICAgIHB1dFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIHJlc3VsdCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOwpAQCAtNjk2LDcgKzY5Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNGaWx0ZXIoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGNhY2hlZENhbGwuY2FsbCgpOwogICAg
ICAgICAgICAgaWYgKHJlc3VsdC50b0Jvb2xlYW4oZXhlYykpCi0gICAgICAgICAgICAgICAgcmVz
dWx0QXJyYXktPnB1dChleGVjLCBmaWx0ZXJJbmRleCsrLCB2KTsKKyAgICAgICAgICAgICAgICBy
ZXN1bHRBcnJheS0+cHV0VmlydHVhbChleGVjLCBmaWx0ZXJJbmRleCsrLCB2KTsKICAgICAgICAg
fQogICAgICAgICBpZiAoayA9PSBsZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdEFycmF5KTsKQEAgLTcxNyw3ICs3MTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRmlsdGVyKEV4ZWNTdGF0ZSogZXhlYykKIAogICAg
ICAgICBKU1ZhbHVlIHJlc3VsdCA9IGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxs
RGF0YSwgYXBwbHlUaGlzLCBlYWNoQXJndW1lbnRzKTsKICAgICAgICAgaWYgKHJlc3VsdC50b0Jv
b2xlYW4oZXhlYykpCi0gICAgICAgICAgICByZXN1bHRBcnJheS0+cHV0KGV4ZWMsIGZpbHRlcklu
ZGV4KyssIHYpOworICAgICAgICAgICAgcmVzdWx0QXJyYXktPnB1dFZpcnR1YWwoZXhlYywgZmls
dGVySW5kZXgrKywgdik7CiAgICAgfQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
QXJyYXkpOwogfQpAQCAtNzUyLDcgKzc1Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgYXJyYXlQcm90b0Z1bmNNYXAoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgY2FjaGVk
Q2FsbC5zZXRBcmd1bWVudCgxLCBqc051bWJlcihrKSk7CiAgICAgICAgICAgICBjYWNoZWRDYWxs
LnNldEFyZ3VtZW50KDIsIHRoaXNPYmopOwogCi0gICAgICAgICAgICByZXN1bHRBcnJheS0+SlNB
cnJheTo6cHV0KGV4ZWMsIGssIGNhY2hlZENhbGwuY2FsbCgpKTsKKyAgICAgICAgICAgIEpTQXJy
YXk6OnB1dChyZXN1bHRBcnJheSwgZXhlYywgaywgY2FjaGVkQ2FsbC5jYWxsKCkpOwogICAgICAg
ICB9CiAgICAgfQogICAgIGZvciAoOyBrIDwgbGVuZ3RoICYmICFleGVjLT5oYWRFeGNlcHRpb24o
KTsgKytrKSB7CkBAIC03NzMsNyArNzczLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhcnJheVByb3RvRnVuY01hcChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCiAgICAgICAgIEpTVmFsdWUgcmVzdWx0
ID0gY2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBhcHBseVRoaXMsIGVh
Y2hBcmd1bWVudHMpOwotICAgICAgICByZXN1bHRBcnJheS0+cHV0KGV4ZWMsIGssIHJlc3VsdCk7
CisgICAgICAgIHJlc3VsdEFycmF5LT5wdXRWaXJ0dWFsKGV4ZWMsIGssIHJlc3VsdCk7CiAgICAg
fQogCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHRBcnJheSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAppbmRleCA5MGY5MTEwOTQ0
ZTE0MTQ1MjEzZDNkMGU5ZTVkYzIxMzZlZGMzNmE4Li43OWJkNmExNjk1MjIzZmM0N2I2MzExMmNk
ZjE3ZWUzZTg5NDhiMTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QWN0aXZhdGlvbi5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCBib29sIEpTQWN0aXZhdGlvbjo6Z2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBKU0FjdGl2YXRpb246OnB1dChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwg
UHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBKU0FjdGl2YXRpb246OnB1dFZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQWN0aXZhdGlvbi5oCmluZGV4IDdiZWQyOWZkMzBjMGI1NmZjMjI3Y2UzOGY2MjNiMDliOTFj
MTMzY2IuLjgyMTAwZTA1YTMyNTNmOTM0NWQzM2Q2Y2Q1NGExMmM2M2IwNzg1YWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC02NSw3ICs2NSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQ
cm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSk7CiAKLSAgICAgICAgdmlydHVhbCB2
b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1Zh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0
dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVk
IGF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcApp
bmRleCAyMTczZmYxNmQ4NGEzZTVlOTVjMGI1NGVhNjRmODRhZGExNTFjNDE0Li4yODI1YTBjOTRm
YWZmM2FjMzVlNjY3ZmYwOTRiMzM5NGZjNmM1ZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FycmF5LmNwcApAQCAtMzM0LDcgKzMzNCw3IEBAIGJvb2wgSlNBcnJheTo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVyCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhl
YywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotdm9pZCBKU0FycmF5OjpwdXQoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgSlNBcnJheTo6cHV0VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1
ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KQEAgLTM2Myw3ICszNjMsNyBAQCB2b2lkIEpTQXJyYXk6
OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLAogICAgIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLXZvaWQgSlNBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSkKK3ZvaWQgSlNBcnJheTo6cHV0VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgcHV0KHRo
aXMsIGV4ZWMsIGksIHZhbHVlKTsKIH0KQEAgLTQwNiw3ICs0MDYsNyBAQCBORVZFUl9JTkxJTkUg
dm9pZCBKU0FycmF5OjpwdXRTbG93Q2FzZShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpT
VmFsdWUgdmFsdQogICAgIGlmIChpID49IE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgpIHsKICAgICAg
ICAgaWYgKGkgPiBNQVhfQVJSQVlfSU5ERVgpIHsKICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xv
dCBzbG90OwotICAgICAgICAgICAgcHV0KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaSks
IHZhbHVlLCBzbG90KTsKKyAgICAgICAgICAgIHB1dFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcjo6
ZnJvbShleGVjLCBpKSwgdmFsdWUsIHNsb3QpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKQEAgLTc4MSw3ICs3ODEsNyBAQCB2b2lkIEpTQXJyYXk6OnB1c2goRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHZhbHVlKQogICAgIEFycmF5U3RvcmFnZSogc3RvcmFnZSA9IG1fc3RvcmFn
ZTsKIAogICAgIGlmIChVTkxJS0VMWShzdG9yYWdlLT5tX2xlbmd0aCA9PSAweEZGRkZGRkZGdSkp
IHsKLSAgICAgICAgcHV0KGV4ZWMsIHN0b3JhZ2UtPm1fbGVuZ3RoLCB2YWx1ZSk7CisgICAgICAg
IHB1dFZpcnR1YWwoZXhlYywgc3RvcmFnZS0+bV9sZW5ndGgsIHZhbHVlKTsKICAgICAgICAgdGhy
b3dFcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsICJJbnZhbGlkIGFycmF5IGxlbmd0
aCIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTgzNSw3ICs4MzUsNyBAQCB2b2lkIEpT
QXJyYXk6OnNoaWZ0Q291bnQoRXhlY1N0YXRlKiBleGVjLCBpbnQgY291bnQpCiAgICAgICAgICAg
ICAgICAgUHJvcGVydHlTbG90IHNsb3QodGhpcyk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBw
ID0gcHJvdG90eXBlKCk7CiAgICAgICAgICAgICAgICAgaWYgKCghcC5pc051bGwoKSkgJiYgKGFz
T2JqZWN0KHApLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgaSwgc2xvdCkpKQotICAgICAgICAgICAg
ICAgICAgICBwdXQoZXhlYywgaSwgc2xvdC5nZXRWYWx1ZShleGVjLCBpKSk7CisgICAgICAgICAg
ICAgICAgICAgIHB1dFZpcnR1YWwoZXhlYywgaSwgc2xvdC5nZXRWYWx1ZShleGVjLCBpKSk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtODg0LDcgKzg4NCw3IEBAIHZvaWQgSlNBcnJh
eTo6dW5zaGlmdENvdW50KEV4ZWNTdGF0ZSogZXhlYywgaW50IGNvdW50KQogICAgICAgICAgICAg
ICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXMpOwogICAgICAgICAgICAgICAgIEpTVmFsdWUgcCA9
IHByb3RvdHlwZSgpOwogICAgICAgICAgICAgICAgIGlmICgoIXAuaXNOdWxsKCkpICYmIChhc09i
amVjdChwKS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGksIHNsb3QpKSkKLSAgICAgICAgICAgICAg
ICAgICAgcHV0KGV4ZWMsIGksIHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkpOworICAgICAgICAgICAg
ICAgICAgICBwdXRWaXJ0dWFsKGV4ZWMsIGksIHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheS5oCmluZGV4IGRiZmMxNzExNDI1OGExMzc4MjE4NDNjYjk1NzhiM2E5Y2RkMTZkMzgu
LjUzNWNjNjNlOTlkNWM2YzgxNmE1MTRiMzI0ZmM5MDVmYjY2MDlmZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTk5LDcgKzk5LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7IC8vIEZJWE1FOiBNYWtlIHByb3RlY3RlZCBhbmQgYWRk
IHNldEl0ZW0uCisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7IC8vIEZJWE1FOiBNYWtlIHByb3RlY3RlZCBh
bmQgYWRkIHNldEl0ZW0uCiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHN0YXRpYyBK
U19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CkBAIC0xNzEsNyArMTcxLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92
ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmpl
Y3Q6OlN0cnVjdHVyZUZsYWdzOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCeXRlQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuY3BwCmluZGV4IDhhYjQ3MjZlM2VhMWY1ZjkxMDBmMGI0MDYyMWYzMTQ3N2JkNjM5NmEuLjUw
NzM1NDQyNTI3M2ZhMTczYjdhY2ZjMzk5ODc1MDRlOGU2ODE3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgYm9v
bCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBwcm8KICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFt
ZSksIHNsb3QpOwogfQogCi12b2lkIEpTQnl0ZUFycmF5OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYgc2xvdCkKK3ZvaWQgSlNCeXRlQXJyYXk6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7CiB9CkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBKU0J5dGVBcnJheTo6cHV0KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU4K
ICAgICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOwogfQogCi12b2lkIEpTQnl0ZUFycmF5OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCit2b2lkIEpTQnl0ZUFycmF5OjpwdXRW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlKQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4IDQwZjBhYTFh
N2I3YTRhZTZmNTMwMjY1NDJkMTc5NDVhNjU1MWRmMTAuLmZlZTU0ZThkYWY5Y2EyYjBhNWNlNWU5
NTZmYjcxNjc2YTZiOWZmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQnl0ZUFycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
eXRlQXJyYXkuaApAQCAtOTMsOSArOTMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5RGVzY3JpcHRvciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwg
SlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlND
OjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBw
dXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpOwogICAgICAg
ICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0
T3duUHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkm
LCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKaW5kZXggMGFjMzY0ZjgyY2E5ZTc2
ZmZhYzRmYWJkODNiOGI1YjU0ZjUzMWRkZi4uZWVhOTdhMjg3Mzg4Mjk1NzIzYjJjZjI2ZGFjM2Ri
M2I4OWRhODAxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
ZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCkBA
IC0xMDMsMjQgKzEwMywyNCBAQCBib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaQogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIEpTQ2VsbDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQor
dm9pZCBKU0NlbGw6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAg
ICAgcHV0KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBK
U0NlbGw6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewot
ICAgIGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnB1
dChleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7CisgICAgY2VsbC0+dG9PYmplY3QoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0VmlydHVhbChleGVjLCBpZGVudGlm
aWVyLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLXZvaWQgSlNDZWxsOjpwdXQoRXhlY1N0YXRlKiBleGVj
LCB1bnNpZ25lZCBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlKQordm9pZCBKU0NlbGw6OnB1dFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVl
KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSk7CiB9CiAKIHZvaWQg
SlNDZWxsOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50
aWZpZXIsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgY2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0KGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlKTsKKyAg
ICBjZWxsLT50b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5wdXRW
aXJ0dWFsKGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlKTsKIH0KIAogYm9vbCBKU0NlbGw6OmRlbGV0
ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggMDQ0ZjY0ZjU4ZWFhNDhl
MWNmMmEwNGY0NDE5ZmE3ZjczZjc0ZjJiMS4uODQzYjE2MThiZWQyMzE4NzIwY2JlYzlkNGI4MzIy
NDM5NTE5MDRlYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
ZWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTkw
LDkgKzkwLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8vIE9iamVjdCBvcGVyYXRpb25z
LCB3aXRoIHRoZSB0b09iamVjdCBvcGVyYXRpb24gaW5jbHVkZWQuCiAgICAgICAgIGNvbnN0IENs
YXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3Q7CiAgICAgICAgIGNvbnN0IE1ldGhvZFRhYmxlKiBt
ZXRob2RUYWJsZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7
CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBF
eGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgICAgICAKICAg
ICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uY3BwCmluZGV4IDM0YjhiNmQyZDA5YjJkMWI1MzU1N2MwZTYwYTI1NTIzNTlmZDZl
ODMuLjJkNjNjYWJhNmMyYmRmYzRiNzBjMDJiYmE1YTI1ZGIyYzdjODNjYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0zMDAsNyArMzAwLDcg
QEAgdm9pZCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywg
UHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnQKICAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCi12b2lkIEpTRnVuY3Rpb246OnB1dChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBKU0Z1bmN0aW9uOjpwdXRWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5oCmluZGV4IDdmNTE2ZjY4Njg3MTA4NTI1MWIwZWJmMDYxY2VjMWZhMmNk
NGUyZjguLjk3YjkxODlhZjA3ODUxMWJkNTNjYzE3NTMwODIxMmI5MzQ3ODhjMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTE0Myw3ICsxNDMsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBib29sIGlzSG9zdEZ1bmN0aW9uTm9uSW5saW5l
KCkgY29uc3Q7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJv
b2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcAppbmRleCAwZmU0MzZkYjcyY2QwNjQwYjM4NTgyMDVmYTQxYjk0MDNlOGY0MDMwLi4yMjVl
NjcxNjFkODE3Zjg4MmNjMzA3OTUwMWNjNGRjZTcyOGRhOTNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0xMzUsNyArMTM1LDcg
QEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6aW5pdChKU09iamVjdCogdGhpc1ZhbHVlKQogICAgIHJl
c2V0KHByb3RvdHlwZSgpKTsKIH0KIAotdm9pZCBKU0dsb2JhbE9iamVjdDo6cHV0KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIEpTR2xvYmFsT2JqZWN0OjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgSlNHbG9i
YWxPYmplY3Q6OnB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVyCiAKICAgICBKU1ZhbHVlIHZhbHVlQmVmb3JlID0gZ2V0RGlyZWN0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lKTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsK
LSAgICBKU1ZhcmlhYmxlT2JqZWN0OjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xv
dCk7CisgICAgSlNWYXJpYWJsZU9iamVjdDo6cHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpOwogICAgIGlmICghdmFsdWVCZWZvcmUpIHsKICAgICAgICAgSlNWYWx1ZSB2
YWx1ZUFmdGVyID0gZ2V0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lKTsK
ICAgICAgICAgaWYgKHZhbHVlQWZ0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAxMTVkNWNiNmJkOTU0ODM3M2FhY2U4MDEzOGM4ZWFm
MjYzYTNhNjc4Li5hN2ZlMTY3Nzc0YWFmZjQ4ZTQwZjFhNDFiODM4ZDNlODMyZWYxM2JlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE4
NCw3ICsxODQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1Zh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
KTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Tm90QW5PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9i
amVjdC5jcHAKaW5kZXggMmFmNzRmZGExYjA2YjkyNGU1NjYzYzU4NzZjMWI3NjEyMzUxMzhmYS4u
N2EwMTU0NWYxY2ZmNGI3ZTI3NmNlMTcyNjlhOWZhODAwZmMyZjgxMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKQEAgLTc0LDcgKzc0LDcg
QEAgYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQg
SlNOb3RBbk9iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRl
bnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBKU05v
dEFuT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
aWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAg
IHB1dCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7CiB9CkBAIC04NCw3ICs4
NCw3IEBAIHZvaWQgSlNOb3RBbk9iamVjdDo6cHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgLCBKU1ZhbHVlLCBQCiAgICAgQVNTRVJUX1VOVVNFRChleGVjLCBl
eGVjLT5oYWRFeGNlcHRpb24oKSk7CiB9CiAKLXZvaWQgSlNOb3RBbk9iamVjdDo6cHV0KEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSkKK3ZvaWQgSlNOb3RBbk9iamVj
dDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIGksIHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAppbmRleCA5MzRhYTZjMWIyZWM1MzU2YTI5
MjVlMTliOTY4MTMwYTEyY2U5MTI4Li43NjQwYzU0N2Q3Yzk2YWYyOGI1MzMxYjc5Y2U0OThjYzlk
OWI2OWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFu
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5oCkBAIC03NCwxMCArNzQsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURl
c2NyaXB0b3ImKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0
YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCi0gICAgICAgIHZpcnR1YWwg
dm9pZCBwdXQoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAKICAgICAgICAgdmlydHVh
bCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3Bw
CmluZGV4IGQzZmMzNTk5MzFlMDE2OTEwODc1ZmM4ODljYmNmYzI4ODVjM2NjM2UuLjU3NWQxYzFi
MzQxMjIyYjhjNTlhOTA2ZWE1ZmYyNWUxY2NjNTM5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC03MTUsNyArNzE1LDcgQEAgTkVWRVJfSU5M
SU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAg
ICAgICAgICAgaWYgKGlzSlNBcnJheSgmbV9leGVjLT5nbG9iYWxEYXRhKCksIGFycmF5KSAmJiBh
cnJheS0+Y2FuU2V0SW5kZXgoaW5kZXhTdGFjay5sYXN0KCkpKQogICAgICAgICAgICAgICAgICAg
ICAgICAgYXJyYXktPnNldEluZGV4KG1fZXhlYy0+Z2xvYmFsRGF0YSgpLCBpbmRleFN0YWNrLmxh
c3QoKSwgZmlsdGVyZWRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGFycmF5LT5wdXQobV9leGVjLCBpbmRleFN0YWNrLmxhc3QoKSwgZmls
dGVyZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhcnJheS0+cHV0VmlydHVhbCht
X2V4ZWMsIGluZGV4U3RhY2subGFzdCgpLCBmaWx0ZXJlZFZhbHVlKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgaWYgKG1fZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTc3OSw3ICs3NzksNyBAQCBORVZFUl9J
TkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogICAgICAgICAg
ICAgICAgIGlmIChmaWx0ZXJlZFZhbHVlLmlzVW5kZWZpbmVkKCkpCiAgICAgICAgICAgICAgICAg
ICAgIG9iamVjdC0+ZGVsZXRlUHJvcGVydHkobV9leGVjLCBwcm9wKTsKICAgICAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG9iamVjdC0+cHV0KG1fZXhlYywgcHJvcCwgZmls
dGVyZWRWYWx1ZSwgc2xvdCk7CisgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+cHV0VmlydHVh
bChtX2V4ZWMsIHByb3AsIGZpbHRlcmVkVmFsdWUsIHNsb3QpOwogICAgICAgICAgICAgICAgIGlm
IChtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNO
dWxsKCk7CiAgICAgICAgICAgICAgICAgaW5kZXhTdGFjay5sYXN0KCkrKzsKQEAgLTgxMCw3ICs4
MTAsNyBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRl
cmVkKQogICAgIH0KICAgICBKU09iamVjdCogZmluYWxIb2xkZXIgPSBjb25zdHJ1Y3RFbXB0eU9i
amVjdChtX2V4ZWMpOwogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgIGZpbmFsSG9sZGVy
LT5wdXQobV9leGVjLCBtX2V4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5lbXB0eUlk
ZW50aWZpZXIsIG91dFZhbHVlLCBzbG90KTsKKyAgICBmaW5hbEhvbGRlci0+cHV0VmlydHVhbCht
X2V4ZWMsIG1fZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPmVtcHR5SWRlbnRpZmll
ciwgb3V0VmFsdWUsIHNsb3QpOwogICAgIHJldHVybiBjYWxsUmV2aXZlcihmaW5hbEhvbGRlciwg
anNFbXB0eVN0cmluZyhtX2V4ZWMpLCBvdXRWYWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCBhYWNlYzZkNDM3NjcwZWEzZmEwMTAwM2Q3
OGVhMDczM2U0OWUwZTRkLi42Nzk2MDczNjlmMjg3ZmZlYWEzZjIwNmJkMmIwMTFjMmNhY2FiNjI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0xMDgs
NyArMTA4LDcgQEAgc3RhdGljIHZvaWQgdGhyb3dTZXR0ZXJFcnJvcihFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgInNldHRpbmcgYSBw
cm9wZXJ0eSB0aGF0IGhhcyBvbmx5IGEgZ2V0dGVyIikpOwogfQogCi12b2lkIEpTT2JqZWN0Ojpw
dXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgSlNPYmplY3Q6OnB1dFZpcnR1
YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CkBAIC0xOTAsNyArMTkwLDcgQEAgdm9pZCBK
U09iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUKICAgICByZXR1cm47CiB9CiAKLXZvaWQgSlNPYmplY3Q6OnB1dChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKK3Zv
aWQgSlNPYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUpOwogfQpAQCAtMTk4LDcgKzE5OCw3IEBAIHZvaWQgSlNPYmplY3Q6OnB1dChFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHZvaWQg
SlNPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90Owot
ICAgIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2VsbCktPnB1dChleGVjLCBJZGVudGlmaWVyOjpm
cm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHZhbHVlLCBzbG90KTsKKyAgICBzdGF0aWNfY2FzdDxK
U09iamVjdCo+KGNlbGwpLT5wdXRWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywg
cHJvcGVydHlOYW1lKSwgdmFsdWUsIHNsb3QpOwogfQogCiB2b2lkIEpTT2JqZWN0OjpwdXRXaXRo
QXR0cmlidXRlcyhKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcywgYm9vbCBjaGVj
a1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC03NjMsNyArNzYzLDcgQEAgYm9v
bCBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUKICAgICAgICAgICAgIGlmICghZGVzY3JpcHRvci52YWx1ZSgp
KQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgUHV0UHJvcGVydHlT
bG90IHNsb3Q7Ci0gICAgICAgICAgICBwdXQoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
LnZhbHVlKCksIHNsb3QpOworICAgICAgICAgICAgcHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5h
bWUsIGRlc2NyaXB0b3IudmFsdWUoKSwgc2xvdCk7CiAgICAgICAgICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRl
eCBmN2FiZjNlYzhlOTE0MjBhNjFkNjU3MjE3NzQ0ZjEzOWNiZjMzNTBhLi40NzFiODAyMmVjOGYx
MGZkNzg1YWIzYTRjMzMzNzU0NTFlMTc0YmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmgKQEAgLTEwNyw5ICsxMDcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlIHZhbHVlKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0
YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZv
aWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEpTR2xvYmFsRGF0
YSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWdu
ZWQgYXR0cmlidXRlcywgYm9vbCBjaGVja1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
OwpAQCAtODA5LDEwICs4MDksMTAgQEAgaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0KEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QKIGlubGluZSB2
b2lkIEpTVmFsdWU6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGlm
IChVTkxJS0VMWSghaXNDZWxsKCkpKSB7Ci0gICAgICAgIHN5bnRoZXNpemVPYmplY3QoZXhlYykt
PnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICAgICAgc3ludGhlc2l6
ZU9iamVjdChleGVjKS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBhc0NlbGwoKS0+cHV0KGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIGFzQ2VsbCgpLT5wdXRWaXJ0dWFsKGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXRE
aXJlY3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKQEAgLTgyNSwxMCArODI1LDEwIEBA
IGlubGluZSB2b2lkIEpTVmFsdWU6OnB1dERpcmVjdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwKIGlubGluZSB2b2lkIEpTVmFsdWU6OnB1dChFeGVjU3Rh
dGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBp
ZiAoVU5MSUtFTFkoIWlzQ2VsbCgpKSkgewotICAgICAgICBzeW50aGVzaXplT2JqZWN0KGV4ZWMp
LT5wdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CisgICAgICAgIHN5bnRoZXNpemVPYmpl
Y3QoZXhlYyktPnB1dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgYXNDZWxsKCktPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlKTsKKyAgICBhc0NlbGwoKS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
KTsKIH0KIAogQUxXQVlTX0lOTElORSB2b2lkIEpTT2JqZWN0Ojp2aXNpdENoaWxkcmVuRGlyZWN0
KFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcAppbmRleCA4ZDBmZGE5MDM3MzIyZGYxNzMw
NjVkYzYxY2M5MTRlNTMwMDdiZjAyLi43NGY2OTlkOWI5YTliMTc4MWJhZjdiYTI0MDg0ZjQxMDdj
YWNkZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRp
Y1Njb3BlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0
YXRpY1Njb3BlT2JqZWN0LmNwcApAQCAtNDksNyArNDksNyBAQCBKU09iamVjdCogSlNTdGF0aWNT
Y29wZU9iamVjdDo6dG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1
cm4gZXhlYy0+Z2xvYmFsVGhpc1ZhbHVlKCk7CiB9CiAKLXZvaWQgSlNTdGF0aWNTY29wZU9iamVj
dDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lkIEpTU3RhdGljU2NvcGVP
YmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBw
dXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKaW5kZXgg
ZGMyODc3OTVkZDlmMTYwNGY2YjUxZjI0NmI2Y2E5MmVmOThhMTgwNS4uODU4NWJiZTRiZTI3ZDIw
MjkxMzZjZjM0MGIzYTU2MWIzNWM4NTJiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaApAQCAtNDYsNyArNDYsNyBAQCBuYW1l
c3BhY2UgSlNDewogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0
YXRlKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpOwogCiAgICAgICAgIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAppbmRleCA3ODJkYzBmYmM3MGM4M2E5MmFlMTBm
MTA0OWFmZmRjMDMyNjk4ODFjLi44YjBiOGQ5NDcyOGFiNmQ0MmRjZGY4MDUxOTJlZDY1MGY4MjYy
NTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaApAQCAtMzUyLDcgKzM1
Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGlubGluZSB2b2lkIGxvb2t1cFB1dChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwg
Y29uc3QgSGFzaFRhYmxlKiB0YWJsZSwgVGhpc0ltcCogdGhpc09iaiwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQogICAgIHsKICAgICAgICAgaWYgKCFsb29rdXBQdXQ8VGhpc0ltcD4oZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgdGFibGUsIHRoaXNPYmopKQotICAgICAgICAgICAgdGhpc09iai0+
UGFyZW50SW1wOjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7IC8vIG5vdCBm
b3VuZDogZm9yd2FyZCB0byBwYXJlbnQKKyAgICAgICAgICAgIFBhcmVudEltcDo6cHV0KHRoaXNP
YmosIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOyAvLyBub3QgZm91bmQ6IGZvcndh
cmQgdG8gcGFyZW50CiAgICAgfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IDk5YTViYjIy
OGJmMjdlYzFhZDQxYTlkYjQ0NGUyM2U3NWY4NGY1N2EuLjMyZDZhNzI3ZmNmYWMzMDkzMjQxYmU4
N2I3ODEyOWM2MTYzNWI5MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtNzUsNyArNzUsNyBAQCB2b2lkIE9iamVjdFByb3Rv
dHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9i
amVjdCopCiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIAotdm9pZCBPYmplY3RQ
cm90b3R5cGU6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBPYmplY3RQ
cm90b3R5cGU6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAg
ICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCmluZGV4IGUzOTAw
MjJmNjdjNzU0MjA1YmUzMjFlZjdjYjA5ZDQ1ZmQ1NWUxNDguLmVhYWMxZDFlODE1MjA5MmZhYzcw
YmZlN2M1ZjVlNDVhZGU5ZDg4MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdFByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdFByb3RvdHlwZS5oCkBAIC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgcHJpdmF0ZToKICAgICAgICAgT2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVj
dHVyZSopOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCmluZGV4IGQzZTQ0OGZlNmMyYWQ1YTA4MDZi
MmJjYTIwMzFhMWYxNzU3ODRmNzAuLjczYjkzMTMzNTBmM2Y0Zjg5Y2I1ZGE4MmM2OTEwMGEzNzBh
MDJjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBD
b25zdHJ1Y3Rvci5jcHAKQEAgLTE0OCwxNCArMTQ4LDE0IEBAIHZvaWQgUmVnRXhwTWF0Y2hlc0Fy
cmF5OjpmaWxsQXJyYXlJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8PSBsYXN0TnVtU3VicGF0dGVybnM7ICsraSkgewogICAgICAgICBpbnQgc3Rh
cnQgPSBkLT5sYXN0T3ZlY3RvcigpWzIgKiBpXTsKICAgICAgICAgaWYgKHN0YXJ0ID49IDApCi0g
ICAgICAgICAgICBKU0FycmF5OjpwdXQoZXhlYywgaSwganNTdWJzdHJpbmcoZXhlYywgZC0+bGFz
dElucHV0LCBzdGFydCwgZC0+bGFzdE92ZWN0b3IoKVsyICogaSArIDFdIC0gc3RhcnQpKTsKKyAg
ICAgICAgICAgIEpTQXJyYXk6OnB1dCh0aGlzLCBleGVjLCBpLCBqc1N1YnN0cmluZyhleGVjLCBk
LT5sYXN0SW5wdXQsIHN0YXJ0LCBkLT5sYXN0T3ZlY3RvcigpWzIgKiBpICsgMV0gLSBzdGFydCkp
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBKU0FycmF5OjpwdXQoZXhlYywgaSwganNVbmRl
ZmluZWQoKSk7CisgICAgICAgICAgICBKU0FycmF5OjpwdXQodGhpcywgZXhlYywgaSwganNVbmRl
ZmluZWQoKSk7CiAgICAgfQogCiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgSlNBcnJh
eTo6cHV0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5pbmRleCwganNOdW1iZXIoZC0+bGFz
dE92ZWN0b3IoKVswXSksIHNsb3QpOwotICAgIEpTQXJyYXk6OnB1dChleGVjLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkuaW5wdXQsIGpzU3RyaW5nKGV4ZWMsIGQtPmlucHV0KSwgc2xvdCk7CisgICAg
SlNBcnJheTo6cHV0KHRoaXMsIGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5pbmRleCwganNO
dW1iZXIoZC0+bGFzdE92ZWN0b3IoKVswXSksIHNsb3QpOworICAgIEpTQXJyYXk6OnB1dCh0aGlz
LCBleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuaW5wdXQsIGpzU3RyaW5nKGV4ZWMsIGQtPmlu
cHV0KSwgc2xvdCk7CiAKICAgICBkZWxldGUgZDsKICAgICBzZXRTdWJjbGFzc0RhdGEoMCk7CkBA
IC0yOTIsNyArMjkyLDcgQEAgSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dChF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IEkKICAgICByZXR1cm4gYXNS
ZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSktPmdldFJpZ2h0Q29udGV4dChleGVjKTsKIH0KIAot
dm9pZCBSZWdFeHBDb25zdHJ1Y3Rvcjo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
Cit2b2lkIFJlZ0V4cENvbnN0cnVjdG9yOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0
cnVjdG9yLmgKaW5kZXggMjI1NmNiMDliMjZmODNiYmU2NDQ2YWQ2ZDEzOTJlYTg2ZTkzNTYxZi4u
Nzg0ZGJkNmZhNmNkMzA1NDUxNDk3N2ExM2ExMWUxYjY4ODkzYzJkOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBAIC03MSw3ICs3
MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdmly
dHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0Vmly
dHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVz
QXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJh
eS5oCmluZGV4IGU3NWQ2MjE5MTVkMjRhNWU4NmI3YTc1NjRhOTI1YTI2ZjA2OTAxMWQuLjhjMjlk
OTU2MTYxYWJhNDFkMjQzNWFjNTU1MDRkYWNlMWRkNzdiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCkBAIC03Niw3ICs3Niw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIEpTQXJyYXk6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgICAg
ICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
CisgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHYsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKICAgICAgICAgewogICAgICAgICAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
diwgc2xvdCk7CiAgICAgICAgIH0KQEAgLTg5LDcgKzg5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgICAgICBKU0FycmF5OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2
LCBzbG90KTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2KQorICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2KQogICAgICAgICB7CiAgICAgICAgICAgICBwdXQodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCB2KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggNjYwYjJlMzBhNTRiOTFjOTkwY2FkYWI0
YWEyZjY0MzgzNWMxOTU4Yy4uZDgwNGRmNDhhNDY1NTkwOWQ2NjYyMzYzZWFjMTcwZjA1MWIzMDkz
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
CkBAIC0xNjUsNyArMTY1LDcgQEAgSlNWYWx1ZSByZWdFeHBPYmplY3RMYXN0SW5kZXgoRXhlY1N0
YXRlKiwgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCiAgICAgcmV0dXJuIGFz
UmVnRXhwT2JqZWN0KHNsb3RCYXNlKS0+Z2V0TGFzdEluZGV4KCk7CiB9CiAKLXZvaWQgUmVnRXhw
T2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3ZvaWQgUmVnRXhwT2Jq
ZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAppbmRleCBjMGY4M2Q1NDJjYmRlYmQ5
YWVkYmJkODc1YzAxYmJmZThiMjAzMjM5Li4yZWFiMTBjYzk0ZjhkODM2Y2FlZWUyYjNmOTZlNWU4
ZTU5M2YxMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmpl
Y3QuaApAQCAtNjgsNyArNjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlw
dG9yJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAg
dmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZv
aWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgc3RhdGljIEpTX0VYUE9S
VERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdPYmplY3QuY3BwCmluZGV4IDZkNTQ4Y2Q2ZjFhZjRlMmM2ZGRlOWFmNmY0
ZmNmZTg2NzcyMmU3YTEuLmU4ZmNjODYxNjgzYmM4MjZhN2MyOTdjOWFiNGQxOWQxYWFlZWZmMzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcApA
QCAtNzQsNyArNzQsNyBAQCBib29sIFN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcAogICAgIHJldHVybiBKU09i
amVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3Jp
cHRvcik7CiB9CiAKLXZvaWQgU3RyaW5nT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYgc2xvdCkKK3ZvaWQgU3RyaW5nT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3Qu
aAppbmRleCA4NzJhMmMxMzNiNjZhNmQyMTdhYzljOWJlNTY0OWY4MmU1Y2MxMThiLi41NmIzN2Nj
NDk4MWM5ZDY4NWFhM2I3NTM3MDY1NGQwZTg0NzhiY2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVh
bChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IDg4ZmIyZTkyMWFlN2Rm
YTNjMDNhYzgwNmUzMzI5N2UzNGJkMmVmMWUuLjE5NDFmNjA0YWJkODgzYmMzYjI2YWM3ODliZTQ3
NTg2NDdlNDg0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nUHJvdG90eXBlLmNwcApAQCAtODM3LDcgKzgzNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBp
ZiAoc2VwYXJhdG9yVmFsdWUuaXNVbmRlZmluZWQoKSkgewogICAgICAgICAgICAgLy8gYS4gQ2Fs
bCB0aGUgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJn
dW1lbnRzICIwIiwKICAgICAgICAgICAgIC8vICAgIFByb3BlcnR5IERlc2NyaXB0b3Ige1tbVmFs
dWVdXTogUywgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25m
aWd1cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KLSAgICAgICAgICAgIHJlc3VsdC0+cHV0KGV4
ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5wdXQpKTsKKyAgICAg
ICAgICAgIHJlc3VsdC0+cHV0VmlydHVhbChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVj
LCB0aGlzVmFsdWUsIGlucHV0KSk7CiAgICAgICAgICAgICAvLyBiLiBSZXR1cm4gQS4KICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICAgICAgfQpAQCAtODUw
LDcgKzg1MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5j
U3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3Jp
cHRvciB7W1tWYWx1ZV1dOiBTLCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0
cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgogICAgICAgICAgICAgLy8g
ZC4gUmV0dXJuIEEuCiAgICAgICAgICAgICBpZiAocmVnLT5tYXRjaCgqZ2xvYmFsRGF0YSwgaW5w
dXQsIDApIDwgMCkKLSAgICAgICAgICAgICAgICByZXN1bHQtPnB1dChleGVjLCAwLCBqc1N0cmlu
Z1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7CisgICAgICAgICAgICAgICAgcmVz
dWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1
ZSwgaW5wdXQpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsK
ICAgICAgICAgfQogCkBAIC04ODEsNyArODgxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAv
LyAgICB0aHJvdWdoIHEgKGV4Y2x1c2l2ZSkuCiAgICAgICAgICAgICAvLyAyLiBDYWxsIHRoZSBb
W0RlZmluZU93blByb3BlcnR5XV0gaW50ZXJuYWwgbWV0aG9kIG9mIEEgd2l0aCBhcmd1bWVudHMg
VG9TdHJpbmcobGVuZ3RoQSksCiAgICAgICAgICAgICAvLyAgICBQcm9wZXJ0eSBEZXNjcmlwdG9y
IHtbW1ZhbHVlXV06IFQsIFtbV3JpdGFibGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUs
IFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCi0gICAgICAgICAgICByZXN1bHQt
PnB1dChleGVjLCByZXN1bHRMZW5ndGgsIGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBwb3NpdGlv
biwgbWF0Y2hQb3NpdGlvbiAtIHBvc2l0aW9uKSk7CisgICAgICAgICAgICByZXN1bHQtPnB1dFZp
cnR1YWwoZXhlYywgcmVzdWx0TGVuZ3RoLCBqc1N1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRp
b24sIG1hdGNoUG9zaXRpb24gLSBwb3NpdGlvbikpOwogICAgICAgICAgICAgLy8gMy4gSW5jcmVt
ZW50IGxlbmd0aEEgYnkgMS4KICAgICAgICAgICAgIC8vIDQuIElmIGxlbmd0aEEgPT0gbGltLCBy
ZXR1cm4gQS4KICAgICAgICAgICAgIGlmICgrK3Jlc3VsdExlbmd0aCA9PSBsaW1pdCkKQEAgLTkw
MCw3ICs5MDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVu
Y1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICAvLyAgIFRvU3RyaW5nKGxl
bmd0aEEpLCBQcm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IGNhcFtpXSwgW1tXcml0YWJs
ZV1dOgogICAgICAgICAgICAgICAgIC8vICAgdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtb
Q29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCiAgICAgICAgICAgICAgICAgaW50IHN1
YiA9IG92ZWN0b3JbaSAqIDJdOwotICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0KGV4ZWMsIHJl
c3VsdExlbmd0aCwgc3ViIDwgMCA/IGpzVW5kZWZpbmVkKCkgOiBqc1N1YnN0cmluZyhleGVjLCBp
bnB1dCwgc3ViLCBvdmVjdG9yW2kgKiAyICsgMV0gLSBzdWIpKTsKKyAgICAgICAgICAgICAgICBy
ZXN1bHQtPnB1dFZpcnR1YWwoZXhlYywgcmVzdWx0TGVuZ3RoLCBzdWIgPCAwID8ganNVbmRlZmlu
ZWQoKSA6IGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBzdWIsIG92ZWN0b3JbaSAqIDIgKyAxXSAt
IHN1YikpOwogICAgICAgICAgICAgICAgIC8vIGMgSW5jcmVtZW50IGxlbmd0aEEgYnkgMS4KICAg
ICAgICAgICAgICAgICAvLyBkIElmIGxlbmd0aEEgPT0gbGltLCByZXR1cm4gQS4KICAgICAgICAg
ICAgICAgICBpZiAoKytyZXN1bHRMZW5ndGggPT0gbGltaXQpCkBAIC05MTksNyArOTE5LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgIGlmIChzZXBhcmF0b3JWYWx1ZS5pc1VuZGVmaW5lZCgpKSB7CiAg
ICAgICAgICAgICAvLyBhLiAgQ2FsbCB0aGUgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVybmFs
IG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzICIwIiwKICAgICAgICAgICAgIC8vICAgICBQcm9w
ZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFMsIFtbV3JpdGFibGVdXTogdHJ1ZSwgW1tFbnVt
ZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCi0gICAg
ICAgICAgICByZXN1bHQtPnB1dChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlz
VmFsdWUsIGlucHV0KSk7CisgICAgICAgICAgICByZXN1bHQtPnB1dFZpcnR1YWwoZXhlYywgMCwg
anNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOwogICAgICAgICAgICAg
Ly8gYi4gIFJldHVybiBBLgogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogICAgICAgICB9CkBAIC05MzIsNyArOTMyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAg
ICAvLyAgICBQcm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFMsIFtbV3JpdGFibGVdXTog
dHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQg
ZmFsc2UuCiAgICAgICAgICAgICAvLyBkLiBSZXR1cm4gQS4KICAgICAgICAgICAgIGlmICghc2Vw
YXJhdG9yLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQtPnB1dChleGVjLCAwLCBq
c1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7CisgICAgICAgICAgICAg
ICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRo
aXNWYWx1ZSwgaW5wdXQpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKICAgICAgICAgfQogCkBAIC05NDMsNyArOTQzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
ICAgICBBU1NFUlQobGltaXQpOwogCiAgICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAg
cmVzdWx0LT5wdXQoZXhlYywgcG9zaXRpb24sIGpzU2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5nKGV4
ZWMsIGlucHV0LCBwb3NpdGlvbikpOworICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0VmlydHVh
bChleGVjLCBwb3NpdGlvbiwganNTaW5nbGVDaGFyYWN0ZXJTdWJzdHJpbmcoZXhlYywgaW5wdXQs
IHBvc2l0aW9uKSk7CiAgICAgICAgICAgICB9IHdoaWxlICgrK3Bvc2l0aW9uIDwgbGltaXQpOwog
CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CkBAIC05NjAsNyAr
OTYwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxp
dChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAvLyAgICB0aHJvdWdoIHEgKGV4Y2x1c2l2
ZSkuCiAgICAgICAgICAgICAvLyAyLiBDYWxsIHRoZSBbW0RlZmluZU93blByb3BlcnR5XV0gaW50
ZXJuYWwgbWV0aG9kIG9mIEEgd2l0aCBhcmd1bWVudHMgVG9TdHJpbmcobGVuZ3RoQSksCiAgICAg
ICAgICAgICAvLyAgICBQcm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFQsIFtbV3JpdGFi
bGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9
LCBhbmQgZmFsc2UuCi0gICAgICAgICAgICByZXN1bHQtPnB1dChleGVjLCByZXN1bHRMZW5ndGgs
IGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBwb3NpdGlvbiwgbWF0Y2hQb3NpdGlvbiAtIHBvc2l0
aW9uKSk7CisgICAgICAgICAgICByZXN1bHQtPnB1dFZpcnR1YWwoZXhlYywgcmVzdWx0TGVuZ3Ro
LCBqc1N1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRpb24sIG1hdGNoUG9zaXRpb24gLSBwb3Np
dGlvbikpOwogICAgICAgICAgICAgLy8gMy4gSW5jcmVtZW50IGxlbmd0aEEgYnkgMS4KICAgICAg
ICAgICAgIC8vIDQuIElmIGxlbmd0aEEgPT0gbGltLCByZXR1cm4gQS4KICAgICAgICAgICAgIGlm
ICgrK3Jlc3VsdExlbmd0aCA9PSBsaW1pdCkKQEAgLTk3Niw3ICs5NzYsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykK
ICAgICAvLyAgICAgdGhyb3VnaCBzIChleGNsdXNpdmUpLgogICAgIC8vIDE1LiBDYWxsIHRoZSBb
W0RlZmluZU93blByb3BlcnR5XV0gaW50ZXJuYWwgbWV0aG9kIG9mIEEgd2l0aCBhcmd1bWVudHMg
VG9TdHJpbmcobGVuZ3RoQSksIFByb3BlcnR5IERlc2NyaXB0b3IKICAgICAvLyAgICAge1tbVmFs
dWVdXTogVCwgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25m
aWd1cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KLSAgICByZXN1bHQtPnB1dChleGVjLCByZXN1
bHRMZW5ndGgrKywganNTdWJzdHJpbmcoZXhlYywgaW5wdXQsIHBvc2l0aW9uLCBpbnB1dC5sZW5n
dGgoKSAtIHBvc2l0aW9uKSk7CisgICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIHJlc3VsdExl
bmd0aCsrLCBqc1N1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRpb24sIGlucHV0Lmxlbmd0aCgp
IC0gcG9zaXRpb24pKTsKIAogICAgIC8vIDE2LiBSZXR1cm4gQS4KICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwppbmRleCBjZjJjYTM0NjQx
NzY1NjNhNzIyZDJmMmFhZDIxOWMxNTdmMTA2ZTFmLi43MjBkZjI2YmQ3ZmNlMGJlNTQ5ZmEzN2Zi
ODEwZWMyMGY1ZWI5MTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBA
QAorMjAxMS0xMC0xNCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSB2aXJ0dWFsIHB1dCB0byBwdXRWaXJ0dWFsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTg1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgdmlydHVhbCB2ZXJzaW9u
cyBvZiBwdXQgdG8gcHV0VmlydHVhbCBpbiBwcmVwcmF0aW9uIGZvciAKKyAgICAgICAgYWRkaW5n
IHRoZSBzdGF0aWMgcHV0IHRvIHRoZSBNZXRob2RUYWJsZSBpbiBDbGFzc0luZm8gc2luY2UgdGhl
IAorICAgICAgICBjb21waWxlciBnZXRzIG1hZCBpZiB0aGUgdmlydHVhbCBhbmQgc3RhdGljIHZl
cnNpb25zIGhhdmUgdGhlIHNhbWUgCisgICAgICAgIG5hbWUuCisKKyAgICAgICAgKiBKU1ZhbHVl
V3JhcHBlci5jcHA6CisgICAgICAgIChKU1ZhbHVlV3JhcHBlcjo6SlNPYmplY3RTZXRQcm9wZXJ0
eSk6CisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgIChVc2VyT2JqZWN0SW1w
OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6CisKIDIwMTEtMTAtMTMg
IE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBEZS12
aXJ0dWFsaXplZCBKU0NlbGw6OnRvTnVtYmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dEdsdWUvSlNWYWx1ZVdyYXBwZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTVmFsdWVX
cmFwcGVyLmNwcAppbmRleCBkYzdlZTNmOWIzOTg3YmZiMTUzMzUyOTcxZTRlYzEzMDBkMTg5YTYy
Li5hZmY5ZmYzYzI3N2I2ZGRlNDMwNDFiMzczZGExNDJkZTZlNDczZWU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNWYWx1ZVdyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0R2x1ZS9KU1ZhbHVlV3JhcHBlci5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIEpT
VmFsdWVXcmFwcGVyOjpKU09iamVjdFNldFByb3BlcnR5KHZvaWQgKmRhdGEsIENGU3RyaW5nUmVm
IHByb3BlcnR5TmFtZSwgSgogICAgICAgICBKU1ZhbHVlIHZhbHVlID0gSlNPYmplY3RLSlNWYWx1
ZSgoSlNVc2VyT2JqZWN0Kilqc1ZhbHVlKTsKICAgICAgICAgSlNPYmplY3QgKm9ialZhbHVlID0g
cHRyLT5HZXRWYWx1ZSgpLnRvT2JqZWN0KGV4ZWMpOwogICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qg
c2xvdDsKLSAgICAgICAgb2JqVmFsdWUtPnB1dChleGVjLCBDRlN0cmluZ1RvSWRlbnRpZmllcihw
cm9wZXJ0eU5hbWUsIGV4ZWMpLCB2YWx1ZSwgc2xvdCk7CisgICAgICAgIG9ialZhbHVlLT5wdXRW
aXJ0dWFsKGV4ZWMsIENGU3RyaW5nVG9JZGVudGlmaWVyKHByb3BlcnR5TmFtZSwgZXhlYyksIHZh
bHVlLCBzbG90KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9Vc2VyT2JqZWN0SW1wLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1w
LmNwcAppbmRleCA1NTU3MGYwYjZkNWRmNWZhNDI3ZDkzMTRjMDk3NDRjZmE2NDY2MGEwLi44ZGRi
YzM2NzNkMjJhNWZmMGQ1MmZiNmUzOGJlZjk3NjIyYjlkODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRH
bHVlL1VzZXJPYmplY3RJbXAuY3BwCkBAIC0xNTIsNyArMTUyLDcgQEAgYm9vbCBVc2VyT2JqZWN0
SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUgKmV4ZWMsIGNv
bnN0IElkZW4KICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi12b2lkIFVzZXJPYmplY3RJbXA6
OnB1dChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNW
YWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQordm9pZCBVc2VyT2JqZWN0SW1wOjpw
dXRWaXJ0dWFsKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1l
LCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcHV0KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9V
c2VyT2JqZWN0SW1wLmgKaW5kZXggNzkwMDcxYmZhODNhODgyNjg0ZWRlNWMzZjE3ZmM0MmE4YTFi
ZDk3Yy4uOTNkM2ZhMTcyZjg2OTk5NDU2Mzc2N2JmMjM4YTYzYmI3OTI1ZDIxZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIEpTVmFsdWUgY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjKTsKICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
Ci0gICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIg
JnByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgdmly
dHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgIEpTVmFsdWUgdG9QcmltaXRpdmUoRXhlY1N0
YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlID0gTm9QcmVmZXJlbmNl
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmOTYxZTlkNDA5NGRhMTU2YzJkZjI5MjgyMjhmNmMxMjA4
NWY0ZWYwLi41NGRiMjcwZmM0NGE4ZGM0MThhMmU0NTQ1OTgzMDM3NWNlMGUyODU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMTAtMTQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgdmlydHVhbCBwdXQgdG8gcHV0Vmly
dHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuCisKKyAgICAgICAgUmVuYW1lZCB2aXJ0dWFsIHZlcnNpb25zIG9mIHB1dCB0byBw
dXRWaXJ0dWFsIGluIHByZXByYXRpb24gZm9yIAorICAgICAgICBhZGRpbmcgdGhlIHN0YXRpYyBw
dXQgdG8gdGhlIE1ldGhvZFRhYmxlIGluIENsYXNzSW5mbyBzaW5jZSB0aGUgCisgICAgICAgIGNv
bXBpbGVyIGdldHMgbWFkIGlmIHRoZSB2aXJ0dWFsIGFuZCBzdGF0aWMgdmVyc2lvbnMgaGF2ZSB0
aGUgc2FtZSAKKyAgICAgICAgbmFtZS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NV2luZG93OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OnB1
dFZpcnR1YWwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTTG9jYXRpb246OnB1dERlbGVnYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cnVudGltZU9iamVj
dEN1c3RvbVB1dCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpwdXRQcm9wZXJ0eSk6
CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW06CisgICAgICAgICgt
W1dlYlNjcmlwdE9iamVjdCBzZXRWYWx1ZTpmb3JLZXk6XSk6CisgICAgICAgICgtW1dlYlNjcmlw
dE9iamVjdCBzZXRXZWJTY3JpcHRWYWx1ZUF0SW5kZXg6dmFsdWU6XSk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRl
cik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE9iajo6cHV0VmlydHVhbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oOgorICAgICAgICAqIGJyaWRnZS9OUF9qc29iamVjdC5jcHA6CisgICAgICAgIChf
TlBOX1NldFByb3BlcnR5KToKKyAgICAgICAgKiBicmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbToK
KyAgICAgICAgKEphdmFKU09iamVjdDo6c2V0TWVtYmVyKToKKyAgICAgICAgKEphdmFKU09iamVj
dDo6c2V0U2xvdCk6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmg6CisgICAg
ICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2Uv
cXQvcXRfaW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRJbnN0YW5jZTo6
cHV0KToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6
OkJpbmRpbmdzOjpjb252ZXJ0UVZhcmlhbnRUb1ZhbHVlKToKKyAgICAgICAgKiBicmlkZ2UvcnVu
dGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6cHV0VmlydHVhbCk6
CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVu
dGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6
cHV0VmlydHVhbCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisgICAgICAg
ICogYnJpZGdlL3Rlc3RxdGJpbmRpbmdzLmNwcDoKKyAgICAgICAgKG1haW4pOgorCiAyMDExLTEw
LTEzICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBNaWNyb2RhdGE6
IEJhc2ljIGltcGxlbWVudGF0aW9uIG9mIGRvY3VtZW50LmdldEl0ZW1zKCkgbWV0aG9kLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgppbmRleCAzMDEyZTRkMzBjMDcyNGMyNzIxYWQyZWY2NDM3MzU3ZWY4ODUz
NTNjLi5iNDgyODM2MGI4YTZjM2YyYTIxODRlNmQ1NmQ2ZTMzOGZiN2JmOWFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgpAQCAtMTQxLDcgKzE0MSw3IEBAIF9fWk43V2ViQ29yZTEwQ2xpZW50UmVjdEMx
RXYKIF9fWk43V2ViQ29yZTEwQ3JlZGVudGlhbEMxRVJLTjNXVEY2U3RyaW5nRVM0X05TXzIxQ3Jl
ZGVudGlhbFBlcnNpc3RlbmNlRQogX19aTjdXZWJDb3JlMTBDcmVkZW50aWFsQzFFdgogX19aTjdX
ZWJDb3JlMTBGbG9hdFBvaW50QzFFUktOU184SW50UG9pbnRFCi1fX1pON1dlYkNvcmUxMEpTRG9j
dW1lbnQzcHV0RVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1
ZUVSTlMxXzE1UHV0UHJvcGVydHlTbG90RQorX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50MTBwdXRW
aXJ0dWFsRVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVS
TlMxXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50NnNfaW5mb0UK
IF9fWk43V2ViQ29yZTEwTW91c2VFdmVudDZjcmVhdGVFUktOM1dURjEyQXRvbWljU3RyaW5nRU5T
MV8xMFBhc3NSZWZQdHJJTlNfOURPTVdpbmRvd0VFRVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZlbnRF
aU5TNV9JTlNfNE5vZGVFRUUKIF9fWk43V2ViQ29yZTEwTW91c2VFdmVudEMxRVJLTjNXVEYxMkF0
b21pY1N0cmluZ0ViYk5TMV8xMFBhc3NSZWZQdHJJTlNfOURPTVdpbmRvd0VFRWlpaWlpYmJiYnRO
UzVfSU5TXzExRXZlbnRUYXJnZXRFRUVOUzVfSU5TXzlDbGlwYm9hcmRFRUViCkBAIC04MzEsNyAr
ODMxLDcgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjZpbmRlbnRFdgogX19aTjdXZWJDb3JlNkVkaXRv
cjdDb21tYW5kQzFFdgogX19aTjdXZWJDb3JlNkVkaXRvcjdjb21tYW5kRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlNkVkaXRvcjdvdXRkZW50RXYKLV9fWk43V2ViQ29yZTZKU05vZGUzcHV0
RVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1
UHV0UHJvcGVydHlTbG90RQorX19aTjdXZWJDb3JlNkpTTm9kZTEwcHV0VmlydHVhbEVQTjNKU0M5
RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1dFByb3Bl
cnR5U2xvdEUKIF9fWk43V2ViQ29yZTZKU05vZGU2c19pbmZvRQogX19aTjdXZWJDb3JlNlJlZ2lv
bjV1bml0ZUVSS1MwXwogX19aTjdXZWJDb3JlNlJlZ2lvbjhzdWJ0cmFjdEVSS1MwXwpAQCAtMTA0
NSw3ICsxMDQ1LDcgQEAgX19aTjdXZWJDb3JlOUhUTUxOYW1lczh2aWRlb1RhZ0UKIF9fWk43V2Vi
Q29yZTlIVE1MTmFtZXM5aWZyYW1lVGFnRQogX19aTjdXZWJDb3JlOUhUTUxOYW1lczlvYmplY3RU
YWdFCiBfX1pON1dlYkNvcmU5SFRNTE5hbWVzOXNjcmlwdFRhZ0UKLV9fWk43V2ViQ29yZTlKU0Vs
ZW1lbnQzcHV0RVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1
ZUVSTlMxXzE1UHV0UHJvcGVydHlTbG90RQorX19aTjdXZWJDb3JlOUpTRWxlbWVudDEwcHV0Vmly
dHVhbEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVFUk5T
MV8xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk43V2ViQ29yZTlKU0VsZW1lbnQ2c19pbmZvRQogX19a
TjdXZWJDb3JlOVBhZ2VDYWNoZTExc2V0Q2FwYWNpdHlFaQogX19aTjdXZWJDb3JlOVBhZ2VDYWNo
ZTI3cmVsZWFzZUF1dG9yZWxlYXNlZFBhZ2VzTm93RXYKQEAgLTE2ODgsNiArMTY4OCw3IEBAIF9f
Wk4zSlNDMTNSdW50aW1lTWV0aG9kMjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVj
U3RhdGVFUktOU18xMElkZW50aWZpCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDZzX2luZm9FCiBf
X1pOM0pTQzEzUnVudGltZU1ldGhvZEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0
dXJlRVJOM1dURjZWZWN0b3JJUE5TXzhCaW5kaW5nczZNZXRob2RFTG0wRUVFCiBfX1pOM0pTQzhC
aW5kaW5nczEwUm9vdE9iamVjdEQxRXYKK19fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0
MTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVl
RVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0
MTFnZXRDYWxsRGF0YUVQTlNfNkpTQ2VsbEVSTlNfOENhbGxEYXRhRQogX19aTjNKU0M4QmluZGlu
Z3MxM1J1bnRpbWVPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJ
ZGVudGlmaWVyRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxNGZpbmlzaENyZWF0
aW9uRVBOU18xNEpTR2xvYmFsT2JqZWN0RQpAQCAtMTY5NSw3ICsxNjk2LDYgQEAgX19aTjNKU0M4
QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0
ZUVSS05TXzEwSWRlbnQKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTlnZXRPd25Q
cm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1
RW51bWVyYXRpb25Nb2RlRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QyM2dldENv
bnN0cnVjdERhdGFWaXJ0dWFsRVJOU18xM0NvbnN0cnVjdERhdGFFCiBfX1pOM0pTQzhCaW5kaW5n
czEzUnVudGltZU9iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRl
RVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKLV9fWk4zSlNDOEJp
bmRpbmdzMTNSdW50aW1lT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmll
ckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhCaW5kaW5nczEz
UnVudGltZU9iamVjdDZzX2luZm9FCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdEMy
RVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRU4zV1RG
MTBQYXNzUmVmUHRySU5TMF84SW5zdGFuY2VFRUUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1l
T2JqZWN0RDJFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwCmluZGV4IDA0YjViOTc2NTI3YTRmZDE5NWI0NWFiMjg0OTU2NGVhYzg1ZDJlNjgu
LjYwNjhkOTI5MTFlNTkyYTc0OWI3Yzk1NzlhOWI5OWZjMmRhYTIwODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTMzOCw3ICsz
MzgsNyBAQCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcgogICAgIHJldHVybiBCYXNlOjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAot
dm9pZCBKU0RPTVdpbmRvdzo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit2b2lk
IEpTRE9NV2luZG93OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
CiAgICAgaWYgKCFpbXBsKCktPmZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0Niw3ICsz
NDYsNyBAQCB2b2lkIEpTRE9NV2luZG93OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdgogICAgIC8vIE9wdGltaXphdGlvbjogYWNj
ZXNzIEphdmFTY3JpcHQgZ2xvYmFsIHZhcmlhYmxlcyBkaXJlY3RseSBiZWZvcmUgaW52b2x2aW5n
IHRoZSBET00uCiAgICAgaWYgKEpTR2xvYmFsT2JqZWN0OjpoYXNPd25Qcm9wZXJ0eUZvcldyaXRl
KGV4ZWMsIHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhl
YykpCi0gICAgICAgICAgICBKU0dsb2JhbE9iamVjdDo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpOworICAgICAgICAgICAgSlNHbG9iYWxPYmplY3Q6OnB1dCh0aGlzLCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMzU0LDcgKzM1NCw3IEBAIHZvaWQgSlNET01XaW5kb3c6OnB1dChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2CiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmIChhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQotICAgICAgICBCYXNlOjpwdXQo
ZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgICAgIEJhc2U6OnB1dCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAogYm9vbCBKU0RPTVdpbmRv
dzo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hl
bGwuY3BwCmluZGV4IDZkMjZmOTg1YzcxYjZjNGI4M2IwYTMwMjk4OWIwN2YwYmEzMjdiMWUuLmE2
NjA1ZDgyNTA2NmJlZDA5ZjY3MWY3NjdiODJhZTI5MGI1ZTBhYWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC0xMTUsOSArMTE1LDkg
QEAgYm9vbCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWUKICAgICByZXR1cm4gbV93aW5kb3ctPmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCi12
b2lkIEpTRE9NV2luZG93U2hlbGw6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQor
dm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7Ci0gICAgbV93aW5kb3ctPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBz
bG90KTsKKyAgICBtX3dpbmRvdy0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTsKIH0KIAogdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpwdXRXaXRoQXR0cmlidXRlcyhF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuaAppbmRleCBiNWRkM2E2YTE2YzJjZDhhNjNmOThhM2Y5Mjc5ODM1
MmJkZjBkNjc3Li5hNzJmZDExOGFkZTM4M2UwMjE2NjRjOGFiZWIwYjIzM2QxNWJiYjJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCkBAIC04Myw3
ICs4Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9y
Jik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5
U2xvdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6
UHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRXaXRoQXR0cmlidXRl
cyhKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U0M6OkpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
ZGVsZXRlUHJvcGVydHkoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYsIEpTQzo6RW51bWVyYXRpb25Nb2Rl
IG1vZGUgPSBKU0M6OkV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCA5NjdiYzRkYWRhZWYy
MDUxN2ExNzBkYjU3YjE1NWIyZjlkZWFiYzg5Li45YTExOWRiNmU2ZTZjMzhjNzNhNzIyMDkwOGUz
OTUwYWI4YThmOWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xv
Y2F0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0
aW9uQ3VzdG9tLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIGJvb2wgSlNMb2NhdGlvbjo6cHV0RGVs
ZWdhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
CiAgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IEpTTG9jYXRpb246OnNfaW5mby5wcm9wSGFz
aFRhYmxlKGV4ZWMpLT5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIGlmICghZW50cnkp
IHsKICAgICAgICAgaWYgKHNhbWVEb21haW5BY2Nlc3MpCi0gICAgICAgICAgICBKU09iamVjdDo6
cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgICAgICAgICAgSlNPYmpl
Y3Q6OnB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAppbmRleCBhMzNhNWY4NTNjNjk4MDMy
OTczNGYwNDkzZDkwNWNmM2I2ZDUwYmVkLi4wMGNkOTY4MmI4Y2VlMGJkZDZhOTBlZDc2N2Y0ZjZk
YzE3MTIzYTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdp
bkVsZW1lbnRGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCBib29sIHJ1bnRp
bWVPYmplY3RDdXN0b21QdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVgogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoIXNjcmlwdE9iamVjdC0+
aGFzUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIHNjcmlwdE9iamVjdC0+cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwor
ICAgIHNjcmlwdE9iamVjdC0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBz
bG90KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggOGRiZTNlYTA5YzdjN2Zi
ZjVkNDlkN2U1MGZjZmExZDQzNGQxNDBiOS4uZWUwYzYzMTQ4ZTcwOWY2MWVhMTUxNTJkNmJiNzI5
OTUzMTY0YTIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0xMDMxLDcgKzEwMzEsNyBAQCBwcml2YXRlOgogICAg
ICAgICBpZiAoYXJyYXktPmNhblNldEluZGV4KGluZGV4KSkKICAgICAgICAgICAgIGFycmF5LT5z
ZXRJbmRleChtX2V4ZWMtPmdsb2JhbERhdGEoKSwgaW5kZXgsIHZhbHVlKTsKICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgYXJyYXktPnB1dChtX2V4ZWMsIGluZGV4LCB2YWx1ZSk7CisgICAgICAg
ICAgICBhcnJheS0+cHV0VmlydHVhbChtX2V4ZWMsIGluZGV4LCB2YWx1ZSk7CiAgICAgfQogCiAg
ICAgdm9pZCBwdXRQcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eSwgSlNWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9XZWJTY3JpcHRPYmplY3QubW0KaW5kZXggZmY2MTNlMmQ4YTVhNDY0YjhmMDVjYzgyYTNlYzcy
ZTdhOGFhMjM3Ny4uNTM2ODJjNzUzMzAzZTQ1MzhmOWU5ZGVlY2M5MTk1OTlmNDM1N2YwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KQEAg
LTM0OSw3ICszNDksNyBAQCBzdGF0aWMgdm9pZCBnZXRMaXN0RnJvbU5TQXJyYXkoRXhlY1N0YXRl
ICpleGVjLCBOU0FycmF5ICphcnJheSwgUm9vdE9iamVjdCogcm9vdAogICAgIEpTTG9jayBsb2Nr
KFNpbGVuY2VBc3NlcnRpb25zT25seSk7CiAKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAg
ICBbc2VsZiBfaW1wXS0+cHV0KGV4ZWMsIElkZW50aWZpZXIoZXhlYywgc3RyaW5nVG9VU3RyaW5n
KFN0cmluZyhrZXkpKSksIGNvbnZlcnRPYmpjVmFsdWVUb1ZhbHVlKGV4ZWMsICZ2YWx1ZSwgT2Jq
Y09iamVjdFR5cGUsIFtzZWxmIF9yb290T2JqZWN0XSksIHNsb3QpOworICAgIFtzZWxmIF9pbXBd
LT5wdXRWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXIoZXhlYywgc3RyaW5nVG9VU3RyaW5nKFN0cmlu
ZyhrZXkpKSksIGNvbnZlcnRPYmpjVmFsdWVUb1ZhbHVlKGV4ZWMsICZ2YWx1ZSwgT2JqY09iamVj
dFR5cGUsIFtzZWxmIF9yb290T2JqZWN0XSksIHNsb3QpOwogCiAgICAgaWYgKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKSB7CiAgICAgICAgIGFkZEV4Y2VwdGlvblRvQ29uc29sZShleGVjKTsKQEAgLTQ4
Niw3ICs0ODYsNyBAQCBzdGF0aWMgdm9pZCBnZXRMaXN0RnJvbU5TQXJyYXkoRXhlY1N0YXRlICpl
eGVjLCBOU0FycmF5ICphcnJheSwgUm9vdE9iamVjdCogcm9vdAogICAgIEFTU0VSVCghZXhlYy0+
aGFkRXhjZXB0aW9uKCkpOwogCiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5
KTsKLSAgICBbc2VsZiBfaW1wXS0+cHV0KGV4ZWMsIGluZGV4LCBjb252ZXJ0T2JqY1ZhbHVlVG9W
YWx1ZShleGVjLCAmdmFsdWUsIE9iamNPYmplY3RUeXBlLCBbc2VsZiBfcm9vdE9iamVjdF0pKTsK
KyAgICBbc2VsZiBfaW1wXS0+cHV0VmlydHVhbChleGVjLCBpbmRleCwgY29udmVydE9iamNWYWx1
ZVRvVmFsdWUoZXhlYywgJnZhbHVlLCBPYmpjT2JqZWN0VHlwZSwgW3NlbGYgX3Jvb3RPYmplY3Rd
KSk7CiAKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKICAgICAgICAgYWRkRXhjZXB0
aW9uVG9Db25zb2xlKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBhNGExODVkYTEwODFjNzlkNWNiODIzYjAzODcy
NDEwMjgxY2I0ODFmLi5mY2QxNTE0ODIwNGI1NWY5ZjRiMGVhYmRiMGRkZjE5ZjNmNzMxZDI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQpAQCAtNzkzLDkgKzc5Myw5IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgIyBHZXR0
ZXJzCiAgICAgaWYgKCRoYXNTZXR0ZXIpIHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtc
biIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXRW
aXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6
SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpOwotICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25l
ZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSk7XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleFNldHRlciJ9OworICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpO1xuIikgaWYgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhTZXR0ZXIifTsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6
OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTtcbiIpIGlm
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4U2V0dGVyIn07
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBwdXREZWxlZ2F0ZShKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQ
dXRQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkRlbGVnYXRpbmdQdXRGdW5jdGlvbiJ9OwogICAgIH0KQEAgLTEwNTAsNyArMTA1MCw3IEBAIHN1
YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5m
byhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7XG4iIC4KICAgICAg
ICAgIiAgICB9XG4iKTsKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
RGVsZWdhdGluZ1Byb3RvdHlwZVB1dEZ1bmN0aW9uIn0pIHsKLSAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0
eVNsb3QmKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwg
dm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpOwog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpT
Q2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgcHV0RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlT
bG90Jik7XG4iKTsKICAgICB9CkBAIC0xNDczLDcgKzE0NzMsNyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgIH0KIAogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24ifSkgewotICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpwdXQoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQg
JHtjbGFzc05hbWV9UHJvdG90eXBlOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHNsb3QpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKQEAg
LTE3NDIsNyArMTc0Miw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAg
aWYgKCRoYXNTZXR0ZXIpIHsKICAgICAgICAgICAgIGlmICghJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tUHV0RnVuY3Rpb24ifSkgewotICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lk
ICR7Y2xhc3NOYW1lfTo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KVxu
Iik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIn1cblxuIik7CkBAIC0xNzczLDcgKzE3NzMsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhTZXR0ZXIifSkgewotICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnB1dChFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSlcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnB1dFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpXG4i
KTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxu
XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHAKaW5kZXggYzAyNGE0NTFkNzkwMzJmZWE1OGY0YmE5YjI4NDlmYmU1MTA2
MjY4Yy4uZTQ0ZGY5MjgyYWUwOTY4MDllYWJjMTIxMmFjOTYyNGZhZWM1OTY2NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5j
cHAKQEAgLTc2MSw3ICs3NjEsNyBAQCBKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllcgogICAgIHJldHVy
biBKU1Rlc3RPYmo6OmdldENvbnN0cnVjdG9yKGV4ZWMsIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0
KCkpOwogfQogCi12b2lkIEpTVGVzdE9iajo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNs
b3QpCit2b2lkIEpTVGVzdE9iajo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouaAppbmRleCBjM2QxYjI0Y2JiMTcxYTY0ZjI2OTIzZjg3ZmFlYjU3MWFkNWM4ZDMzLi4z
Y2EzMjZiYzVlMzQ1MDg2MTdjNmY5ZmZiM2FjYjA1YzcxODU0ODcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC00Miw3
ICs0Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90
eXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAg
dmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CisgICAg
dmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYp
OwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQ
cm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcAppbmRleCAxNGVmYjE5NzZmZmE3Njg5
ZjIzZWYyNzM1NTE0MWY2YmRlNmQ3ZTE0Li40MGFlNTEzM2M2OTcyNjE3NmViNzliYzc1ZjVhODE1
MmM1MzMwM2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKQEAgLTMzNyw5
ICszMzcsOSBAQCBib29sIF9OUE5fU2V0UHJvcGVydHkoTlBQLCBOUE9iamVjdCogbywgTlBJZGVu
dGlmaWVyIHByb3BlcnR5TmFtZSwgY29uc3QgTlBWYXJpYQogCiAgICAgICAgIGlmIChpLT5pc1N0
cmluZygpKSB7CiAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAg
IG9iai0+aW1wLT5wdXQoZXhlYywgaWRlbnRpZmllckZyb21OUElkZW50aWZpZXIoZXhlYywgaS0+
c3RyaW5nKCkpLCBjb252ZXJ0TlBWYXJpYW50VG9WYWx1ZShleGVjLCB2YXJpYW50LCByb290T2Jq
ZWN0KSwgc2xvdCk7CisgICAgICAgICAgICBvYmotPmltcC0+cHV0VmlydHVhbChleGVjLCBpZGVu
dGlmaWVyRnJvbU5QSWRlbnRpZmllcihleGVjLCBpLT5zdHJpbmcoKSksIGNvbnZlcnROUFZhcmlh
bnRUb1ZhbHVlKGV4ZWMsIHZhcmlhbnQsIHJvb3RPYmplY3QpLCBzbG90KTsKICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICBvYmotPmltcC0+cHV0KGV4ZWMsIGktPm51bWJlcigpLCBjb252ZXJ0
TlBWYXJpYW50VG9WYWx1ZShleGVjLCB2YXJpYW50LCByb290T2JqZWN0KSk7CisgICAgICAgICAg
ICBvYmotPmltcC0+cHV0VmlydHVhbChleGVjLCBpLT5udW1iZXIoKSwgY29udmVydE5QVmFyaWFu
dFRvVmFsdWUoZXhlYywgdmFyaWFudCwgcm9vdE9iamVjdCkpOwogICAgICAgICBleGVjLT5jbGVh
ckV4Y2VwdGlvbigpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1tCmluZGV4IDFjNmYxZmJlMzFjNmQ0NjdiY2I1YmJm
MjM1ZmNjZDRjMDc1MDEzYTUuLmM0ZGQ5ZDQ4ZTkxZjk5MmQ1MDU4MDI3YTZhYmU0MjUzYjYyN2E5
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1tCkBAIC0zNDgs
NyArMzQ4LDcgQEAgdm9pZCBKYXZhSlNPYmplY3Q6OnNldE1lbWJlcihqc3RyaW5nIG1lbWJlck5h
bWUsIGpvYmplY3QgdmFsdWUpIGNvbnN0CiAKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0
aW9uc09ubHkpOwogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgIF9pbXAtPnB1dChleGVj
LCBJZGVudGlmaWVyKGV4ZWMsIEphdmFTdHJpbmcobWVtYmVyTmFtZSkuaW1wbCgpKSwgY29udmVy
dEpPYmplY3RUb1ZhbHVlKGV4ZWMsIHZhbHVlKSwgc2xvdCk7CisgICAgX2ltcC0+cHV0VmlydHVh
bChleGVjLCBJZGVudGlmaWVyKGV4ZWMsIEphdmFTdHJpbmcobWVtYmVyTmFtZSkuaW1wbCgpKSwg
Y29udmVydEpPYmplY3RUb1ZhbHVlKGV4ZWMsIHZhbHVlKSwgc2xvdCk7CiB9CiAKIApAQCAtMzkz
LDcgKzM5Myw3IEBAIHZvaWQgSmF2YUpTT2JqZWN0OjpzZXRTbG90KGppbnQgaW5kZXgsIGpvYmpl
Y3QgdmFsdWUpIGNvbnN0CiAKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSByb290T2JqZWN0LT5nbG9i
YWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOwogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRp
b25zT25seSk7Ci0gICAgX2ltcC0+cHV0KGV4ZWMsICh1bnNpZ25lZClpbmRleCwgY29udmVydEpP
YmplY3RUb1ZhbHVlKGV4ZWMsIHZhbHVlKSk7CisgICAgX2ltcC0+cHV0VmlydHVhbChleGVjLCAo
dW5zaWduZWQpaW5kZXgsIGNvbnZlcnRKT2JqZWN0VG9WYWx1ZShleGVjLCB2YWx1ZSkpOwogfQog
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5o
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggYTk4YTkw
ZTE5NzUwYWRiZjkzNmVkYjc2OTcxZTE3MTRhNWFkYjZlZi4uNWY0YzYzMDRlMGIxZDk2MjE3NzYy
YzVlNTE5OGU0MDVkNTQzODJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29i
amMvb2JqY19ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLmgKQEAgLTEyNiw3ICsxMjYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOworICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3Rh
dGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIENhbGxUeXBl
IGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggNGNmYzM4NGFl
NTU2M2Q3ZDE4M2U3MWZlZDdkNmEwMTFmZDM1MjU1OS4uMWZmNTZmMTY2ZWI2Mzk0YTcyZjAxMzBj
NjRkMmJlZGRmMjNiNTEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
b2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVu
dGltZS5tbQpAQCAtMjI0LDcgKzIyNCw3IEBAIGJvb2wgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpwdXQoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpCit2b2lk
IE9iamNGYWxsYmFja09iamVjdEltcDo6cHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90JikKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKaW5kZXggMGQ2MWE2MDIyOTAyYjBjYzZmNTY0OTAy
MjZlNjQ5MDU5ZWEzM2JiNC4uZmYwNDU0NTQ5OWNmYzUzOTY4NTJiOTQwOGZhNTI5YzNiOTMwMDQ1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCkBAIC0xNTgsNyAr
MTU4LDcgQEAgYm9vbCBRdEluc3RhbmNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGUKIAogdm9pZCBRdEluc3RhbmNlOjpwdXQo
SlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBv
YmplY3QtPkpTT2JqZWN0OjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cisg
ICAgSlNPYmplY3Q6OnB1dChvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3Qp
OwogfQogCiB2b2lkIFF0SW5zdGFuY2U6OnJlbW92ZUNhY2hlZE1ldGhvZChKU09iamVjdCogbWV0
aG9kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCmluZGV4IGMzYTdhM2Qw
YTY1ZDA1N2E0MmRlZmI0MDRiNDA2NzFmOTg2ODUzMTAuLjQ4ZWE5ZmRmNTk0NDcyMzhlM2ZlODIz
NGU5YWUyZGNkZmU2ZWNkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9x
dF9ydW50aW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5j
cHAKQEAgLTk2MCw3ICs5NjAsNyBAQCBKU1ZhbHVlIGNvbnZlcnRRVmFyaWFudFRvVmFsdWUoRXhl
Y1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPFJvb3RPYmplY3Q+IHJvb3QsIGNvbgogICAgICAgICAg
ICAgSlNWYWx1ZSB2YWwgPSBjb252ZXJ0UVZhcmlhbnRUb1ZhbHVlKGV4ZWMsIHJvb3QuZ2V0KCks
IGkudmFsdWUoKSk7CiAgICAgICAgICAgICBpZiAodmFsKSB7CiAgICAgICAgICAgICAgICAgUHV0
UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgICAgICAgICAgcmV0LT5wdXQoZXhlYywgSWRlbnRp
ZmllcihleGVjLCByZWludGVycHJldF9jYXN0X3B0cjxjb25zdCBVQ2hhciAqPihzLmNvbnN0RGF0
YSgpKSwgcy5sZW5ndGgoKSksIHZhbCwgc2xvdCk7CisgICAgICAgICAgICAgICAgcmV0LT5wdXRW
aXJ0dWFsKGV4ZWMsIElkZW50aWZpZXIoZXhlYywgcmVpbnRlcnByZXRfY2FzdF9wdHI8Y29uc3Qg
VUNoYXIgKj4ocy5jb25zdERhdGEoKSksIHMubGVuZ3RoKCkpLCB2YWwsIHNsb3QpOwogICAgICAg
ICAgICAgICAgIC8vICMjIyBlcnJvciBjYXNlPwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
KytpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IDgwZTJhOGY5
NTFlMWNlNTNiMmYzNmE2ZmIxNTVjMjNiNDhlODg5YjguLjQ1MjcyMmZmNjBmMTQyNDYxZTk1OTAy
Yjg5ODNkODRjZmQ5Yjc1NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX2FycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5j
cHAKQEAgLTE0Miw3ICsxNDIsNyBAQCBib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlICpleGVjLCB1bnNpZ25lZCBpbgogICAgIHJldHVy
biBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIGluZGV4LCBz
bG90KTsKIH0KIAotdm9pZCBSdW50aW1lQXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQordm9pZCBSdW50aW1lQXJyYXk6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYgc2xvdCkKIHsKICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwg
c2xvdCk7CiB9CkBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCBSdW50aW1lQXJyYXk6OnB1dChKU0Nl
bGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHkKICAg
ICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOwogfQogCi12b2lkIFJ1bnRpbWVBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUpCit2b2lkIFJ1bnRpbWVBcnJheTo6cHV0VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIHB1
dCh0aGlzLCBleGVjLCBpbmRleCwgdmFsdWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X2FycmF5LmgKaW5kZXggYTNkNDQ1OGI2Yjg4ZDMzYzk0MzNkNjA5OTI2OGYyNGEzNDA4MjdkZi4u
ZGM2MGU0NDY0NjU4OTZkMzlkNDdhZTVjMDBlNjliYmRmNGFiOTBiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9hcnJheS5oCkBAIC01NSw5ICs1NSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgdW5zaWduZWQsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwotICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lk
IHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwotICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0
YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKKyAgICB2aXJ0dWFsIHZvaWQg
cHV0VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwog
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUpOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCBmN2YzMDY4Yjk1MjIwNWEyYTAw
NzBlNzg3YzBiZWJjMjI2NTE2Y2JiLi44OTU5NmQwZDBlOGNhYzhiN2U0YWFlOTQ1ZTFiNmU4YzAx
NDk5ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTIx
Niw3ICsyMTYsNyBAQCBib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImCiAgICAgcmV0dXJuIGluc3RhbmNl
LT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNj
cmlwdG9yKTsKIH0KIAotdm9pZCBSdW50aW1lT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYgc2xvdCkKK3ZvaWQgUnVudGltZU9iamVjdDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJv
cGVydHlTbG90JiBzbG90KQogewogICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCBzbG90KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXgg
MGM2YTkxNWRhODJkNTk4Nzc3NjVlMmRiMjg2NjRlYjBlYWNlYTMwYS4uYzc1MGQwYTY2MDUyZTUz
OTdiNWU1NzZiMDQyZWZlMDE4ZWZlOTE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfb2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9y
Jik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgIHZpcnR1YWwgdm9p
ZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0
UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGJvb2wgZGVs
ZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS90ZXN0cXRiaW5kaW5n
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdHF0YmluZGluZ3MuY3BwCmluZGV4IDcx
ZmM5YmI2NjkzOTVjNGMwNzlkOGE4ZmZhYzBjYzg4MWQ3ODYxNjAuLmU3ZDRhNmI5ZTkyY2E0ZWJl
Zjc2ZjJkMDQ3NjA5ZmQxNTM4NTg2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS90ZXN0cXRiaW5kaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3Rlc3RxdGJp
bmRpbmdzLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiog
YXJndikKICAgICAgICAgCiAgICAgICAgIE15T2JqZWN0KiBteU9iamVjdCA9IG5ldyBNeU9iamVj
dDsKICAgICAgICAgCi0gICAgICAgIGdsb2JhbC0+cHV0KGV4ZWMsIElkZW50aWZpZXIoIm15SW50
ZXJmYWNlIiksIEluc3RhbmNlOjpjcmVhdGVSdW50aW1lT2JqZWN0KEluc3RhbmNlOjpRdExhbmd1
YWdlLCAodm9pZCopbXlPYmplY3QpKTsKKyAgICAgICAgZ2xvYmFsLT5wdXRWaXJ0dWFsKGV4ZWMs
IElkZW50aWZpZXIoIm15SW50ZXJmYWNlIiksIEluc3RhbmNlOjpjcmVhdGVSdW50aW1lT2JqZWN0
KEluc3RhbmNlOjpRdExhbmd1YWdlLCAodm9pZCopbXlPYmplY3QpKTsKICAgICAgICAgCiAgICAg
ICAgIAogICAgICAgICBpZiAoY29kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDIxN2MzMDExZTM2
NjgyODY1MjlkNDBiYjg0MWJhYjQ2Zjk1NmVjODMuLmI1ZTg4N2IxYWE5Y2ExNzBlMzE3OTA5NWUw
MjEwYzYxNzY0YTdmNjkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0x
MC0xNCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbmFtZSB2aXJ0dWFsIHB1dCB0byBwdXRWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgdmlydHVhbCB2ZXJzaW9ucyBvZiBwdXQg
dG8gcHV0VmlydHVhbCBpbiBwcmVwcmF0aW9uIGZvciAKKyAgICAgICAgYWRkaW5nIHRoZSBzdGF0
aWMgcHV0IHRvIHRoZSBNZXRob2RUYWJsZSBpbiBDbGFzc0luZm8gc2luY2UgdGhlIAorICAgICAg
ICBjb21waWxlciBnZXRzIG1hZCBpZiB0aGUgdmlydHVhbCBhbmQgc3RhdGljIHZlcnNpb25zIGhh
dmUgdGhlIHNhbWUgCisgICAgICAgIG5hbWUuCisKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3Bw
OgorICAgICAgICAoZXdrX3ZpZXdfanNfb2JqZWN0X2FkZCk6CisKIDIwMTEtMTAtMTQgIFJhcGhh
ZWwgS3VibyBkYSBDb3N0YSAgPGt1Ym9AcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAgW0VGTF0g
QWRkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAK
aW5kZXggOGZiZDJjN2M4MmQ1N2YyYTA2OGU1Mzk2MWQ1MDRkNzI0ZTMyZmUyMC4uMjNmZjNlMGIx
YzczYzViNDkxZGZlMDcwZmRkZGFmZTQ1NzAwYTdiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXcuY3BwCkBAIC0zNjYxLDcgKzM2NjEsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfanNfb2JqZWN0
X2FkZChFdmFzX09iamVjdCogZXdrVmlldywgRXdrX0pTX09iamVjdCogb2JqZWN0LCBjbwogICAg
IEpTQzo6SWRlbnRpZmllciBpZCA9IEpTQzo6SWRlbnRpZmllcihleGVjLCBvYmpfbmFtZSk7CiAK
ICAgICBKU0M6OlB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgIHdpbmRvdy0+cHV0KGV4ZWMsIGlk
LCBydW50aW1lT2JqZWN0LCBzbG90KTsKKyAgICB3aW5kb3ctPnB1dFZpcnR1YWwoZXhlYywgaWQs
IHJ1bnRpbWVPYmplY3QsIHNsb3QpOwogICAgIHJldHVybiBFSU5BX1RSVUU7CiAjZWxzZQogICAg
IHJldHVybiBFSU5BX0ZBTFNFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDllMzllMmFkYWFiMTI0ZTU3
M2EzMjI0NWVjYjM1NzJlYTBmNWNmMWIuLjRmNTUzZTEzZjM2OGE0ZmNkNGQ2NTIwYjdjMDZjMGM2
ZTcxMWUxMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0xMC0xNCAg
TWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFt
ZSB2aXJ0dWFsIHB1dCB0byBwdXRWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02OTg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgdmlydHVhbCB2ZXJzaW9ucyBvZiBwdXQgdG8gcHV0
VmlydHVhbCBpbiBwcmVwcmF0aW9uIGZvciAKKyAgICAgICAgYWRkaW5nIHRoZSBzdGF0aWMgcHV0
IHRvIHRoZSBNZXRob2RUYWJsZSBpbiBDbGFzc0luZm8gc2luY2UgdGhlIAorICAgICAgICBjb21w
aWxlciBnZXRzIG1hZCBpZiB0aGUgdmlydHVhbCBhbmQgc3RhdGljIHZlcnNpb25zIGhhdmUgdGhl
IHNhbWUgCisgICAgICAgIG5hbWUuCisKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eTo6c2V0UHJvcGVydHkpOgorCiAyMDExLTEwLTEzICBNYXJrIEhhaG5lbmJl
cmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIHZpcnR1YWwgZ2V0
Q29uc3RydWN0RGF0YSB0byBnZXRDb25zdHJ1Y3REYXRhVmlydHVhbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tCmluZGV4IDVjNTBmOGQxOTJlMzkwMjc4MmIwNTZjNTQzM2FhNjRjZTBmNTUx
NTMuLjgyMmI0ZDNmYWQzMjBjY2M4ZDEyZTk0MjU3YTQ3OGUyZTNkZjg3YjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQ
cm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBs
dWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTEwNjAsNyArMTA2MCw3IEBAIGJvb2wgTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5OjpzZXRQcm9wZXJ0eSh1aW50MzJfdCBvYmplY3RJRCwgY29uc3Qg
SWRlbnRpZmllCiAKICAgICBKU1ZhbHVlIHZhbHVlID0gZGVtYXJzaGFsVmFsdWUoZXhlYywgdmFs
dWVEYXRhLCB2YWx1ZUxlbmd0aCk7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgb2Jq
ZWN0LT5wdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgb2JqZWN0LT5w
dXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogICAgIAogICAgIGV4
ZWMtPmNsZWFyRXhjZXB0aW9uKCk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMDg1LDcgKzEwODUs
NyBAQCBib29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0UHJvcGVydHkodWludDMy
X3Qgb2JqZWN0SUQsIHVuc2lnbmVkIHByb3BlcgogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3Nl
cnRpb25zT25seSk7ICAgIAogICAgIAogICAgIEpTVmFsdWUgdmFsdWUgPSBkZW1hcnNoYWxWYWx1
ZShleGVjLCB2YWx1ZURhdGEsIHZhbHVlTGVuZ3RoKTsKLSAgICBvYmplY3QtPnB1dChleGVjLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlKTsKKyAgICBvYmplY3QtPnB1dFZpcnR1YWwoZXhlYywgcHJvcGVy
dHlOYW1lLCB2YWx1ZSk7CiAgICAgCiAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4IDA3ZjJkZjk4N2Qy
Y2ZmNTZkZmM4ZDg3ZDdhNWNhYmI1YzE5NjZlMWEuLjdhZDRiZTM4ZjRkZWU2ZWY0YzZkYjk2OTgw
NDZhZjI4OWMzNmJiZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApAQCAtNjg4LDcg
KzY4OCw3IEBAIHZvaWQgUVdlYkZyYW1lOjphZGRUb0phdmFTY3JpcHRXaW5kb3dPYmplY3QoY29u
c3QgUVN0cmluZyAmbmFtZSwgUU9iamVjdCAqb2JqZWN0CiAgICAgICAgICAgICBKU0M6OkJpbmRp
bmdzOjpRdEluc3RhbmNlOjpnZXRRdEluc3RhbmNlKG9iamVjdCwgcm9vdCwgb3duZXJzaGlwKS0+
Y3JlYXRlUnVudGltZU9iamVjdChleGVjKTsKIAogICAgIEpTQzo6UHV0UHJvcGVydHlTbG90IHNs
b3Q7Ci0gICAgd2luZG93LT5wdXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4ZWMsIHJlaW50ZXJw
cmV0X2Nhc3RfcHRyPGNvbnN0IFVDaGFyKj4obmFtZS5jb25zdERhdGEoKSksIG5hbWUubGVuZ3Ro
KCkpLCBydW50aW1lT2JqZWN0LCBzbG90KTsKKyAgICB3aW5kb3ctPnB1dFZpcnR1YWwoZXhlYywg
SlNDOjpJZGVudGlmaWVyKGV4ZWMsIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPGNvbnN0IFVDaGFyKj4o
bmFtZS5jb25zdERhdGEoKSksIG5hbWUubGVuZ3RoKCkpLCBydW50aW1lT2JqZWN0LCBzbG90KTsK
ICNlbGlmIFVTRShWOCkKICAgICBRU2NyaXB0RW5naW5lKiBlbmdpbmUgPSBkLT5mcmFtZS0+c2Ny
aXB0KCktPnF0U2NyaXB0RW5naW5lKCk7CiAgICAgaWYgKCFlbmdpbmUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDA4M2RmYzdkODE2YWE1M2JmNTJkZTk3ZGQwYjliZTExNjZiNzUyOTYuLjI2NWM2YzYzOTBj
MDdjY2M0MDdmZjBhZmYyMWZjOWEyODA4ZDRhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTEtMTAtMTQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KKworICAgICAgICBSZW5hbWUgdmlydHVhbCBwdXQgdG8gcHV0VmlydHVhbAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4NTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWVkIHZpcnR1YWwgdmVy
c2lvbnMgb2YgcHV0IHRvIHB1dFZpcnR1YWwgaW4gcHJlcHJhdGlvbiBmb3IgCisgICAgICAgIGFk
ZGluZyB0aGUgc3RhdGljIHB1dCB0byB0aGUgTWV0aG9kVGFibGUgaW4gQ2xhc3NJbmZvIHNpbmNl
IHRoZSAKKyAgICAgICAgY29tcGlsZXIgZ2V0cyBtYWQgaWYgdGhlIHZpcnR1YWwgYW5kIHN0YXRp
YyB2ZXJzaW9ucyBoYXZlIHRoZSBzYW1lIAorICAgICAgICBuYW1lLgorCisgICAgICAgICogQXBp
L3F3ZWJmcmFtZS5jcHA6CisgICAgICAgIChRV2ViRnJhbWU6OmFkZFRvSmF2YVNjcmlwdFdpbmRv
d09iamVjdCk6CisKIDIwMTEtMTAtMTMgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8YWRlbmlsc29u
LnNpbHZhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgW1F0XSBHZW9sb2NhdGlvbkNsaWVudCBj
bGVhbnVwcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDYwODYwZjNmYmQyNTJmMzZjMTRlMTYxODI2YmVjMDc1YzI1
M2IyODYuLjA0YTNjZjU3NDJlYmVmYmU1ODI4NjA4NmMxNzkyOGU1ZmY2ZWUyNTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0xMC0xNCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5l
bmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSB2aXJ0dWFsIHB1dCB0byBwdXRWaXJ0
dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTg1
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFt
ZWQgdmlydHVhbCB2ZXJzaW9ucyBvZiBwdXQgdG8gcHV0VmlydHVhbCBpbiBwcmVwcmF0aW9uIGZv
ciAKKyAgICAgICAgYWRkaW5nIHRoZSBzdGF0aWMgcHV0IHRvIHRoZSBNZXRob2RUYWJsZSBpbiBD
bGFzc0luZm8gc2luY2UgdGhlIAorICAgICAgICBjb21waWxlciBnZXRzIG1hZCBpZiB0aGUgdmly
dHVhbCBhbmQgc3RhdGljIHZlcnNpb25zIGhhdmUgdGhlIHNhbWUgCisgICAgICAgIG5hbWUuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkpTTlBPYmplY3Q6OnB1dFZpcnR1YWwpOgorICAgICAgICAoV2ViS2l0
OjpKU05QT2JqZWN0OjpwdXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05Q
SlNPYmplY3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpOUEpTT2JqZWN0OjpzZXRQcm9wZXJ0eSk6
CisKIDIwMTEtMTAtMTQgIE5heWFuIEt1bWFyIEsgIDxuYXlhbmtrQG1vdG9yb2xhLmNvbT4KIAog
ICAgICAgICBbR1RLXSByOTc0Mzg6IEluY29uc2lzdGVudCB1c2Ugb2YgZmxhdHRlbmluZyB2cyBm
bGF0dGVyaW5nIGluIGZ1bmN0aW9uIG5hbWVzL2NvbW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKaW5k
ZXggZWM1ZWUyYmVmOTk2ZTBjYWVjZWY5NTA2ZGM2YWMzMmMwZDBmMTgxYi4uYjY0ZjJmYmUzMTcx
MmUzMzhhN2NhYTc0ZWEyOGM3NTYyNmQ2NDMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcApAQCAtMzEy
LDM1ICszMTIsNDEgQEAgYm9vbCBKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm8KICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLXZvaWQgSlNOUE9iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQordm9p
ZCBKU05QT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKLSAgICBpZiAo
IW1fbnBPYmplY3QpIHsKKyAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwg
c2xvdCk7Cit9CisKK3ZvaWQgSlNOUE9iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpCit7CisgICAgSlNOUE9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19j
YXN0PEpTTlBPYmplY3QqPihjZWxsKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRo
aXNPYmplY3QsICZzX2luZm8pOworICAgIGlmICghdGhpc09iamVjdC0+bV9ucE9iamVjdCkgewog
ICAgICAgICB0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihleGVjKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIE5QSWRlbnRpZmllciBucElkZW50aWZpZXIgPSBucElkZW50aWZpZXJGcm9t
SWRlbnRpZmllcihwcm9wZXJ0eU5hbWUpOwogICAgIAotICAgIGlmICghbV9ucE9iamVjdC0+X2Ns
YXNzLT5oYXNQcm9wZXJ0eSB8fCAhbV9ucE9iamVjdC0+X2NsYXNzLT5oYXNQcm9wZXJ0eShtX25w
T2JqZWN0LCBucElkZW50aWZpZXIpKSB7CisgICAgaWYgKCF0aGlzT2JqZWN0LT5tX25wT2JqZWN0
LT5fY2xhc3MtPmhhc1Byb3BlcnR5IHx8ICF0aGlzT2JqZWN0LT5tX25wT2JqZWN0LT5fY2xhc3Mt
Pmhhc1Byb3BlcnR5KHRoaXNPYmplY3QtPm1fbnBPYmplY3QsIG5wSWRlbnRpZmllcikpIHsKICAg
ICAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSB0aHJvdyBhbiBleGNlcHRpb24gaGVyZT8KICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghbV9ucE9iamVjdC0+X2NsYXNzLT5zZXRQcm9w
ZXJ0eSkKKyAgICBpZiAoIXRoaXNPYmplY3QtPm1fbnBPYmplY3QtPl9jbGFzcy0+c2V0UHJvcGVy
dHkpCiAgICAgICAgIHJldHVybjsKIAogICAgIE5QVmFyaWFudCB2YXJpYW50OwotICAgIG1fb2Jq
ZWN0TWFwLT5jb252ZXJ0SlNWYWx1ZVRvTlBWYXJpYW50KGV4ZWMsIHZhbHVlLCB2YXJpYW50KTsK
KyAgICB0aGlzT2JqZWN0LT5tX29iamVjdE1hcC0+Y29udmVydEpTVmFsdWVUb05QVmFyaWFudChl
eGVjLCB2YWx1ZSwgdmFyaWFudCk7CiAKICAgICAvLyBDYWxsaW5nIE5QQ2xhc3M6OnNldFByb3Bl
cnR5IHdpbGwgY2FsbCBpbnRvIHBsdWctaW4gY29kZSwgYW5kIHRoZXJlJ3Mgbm8gdGVsbGluZyB3
aGF0IHRoZSBwbHVnLWluIGNhbiBkby4KICAgICAvLyAoaW5jbHVkaW5nIGRlc3Ryb3lpbmcgdGhl
IHBsdWctaW4pLiBCZWNhdXNlIG9mIHRoaXMsIHdlIG1ha2Ugc3VyZSB0byBrZWVwIHRoZSBwbHVn
LWluIGFsaXZlIHVudGlsIAogICAgIC8vIHRoZSBjYWxsIGhhcyBmaW5pc2hlZC4KLSAgICBOUFJ1
bnRpbWVPYmplY3RNYXA6OlBsdWdpblByb3RlY3RvciBwcm90ZWN0b3IobV9vYmplY3RNYXApOwor
ICAgIE5QUnVudGltZU9iamVjdE1hcDo6UGx1Z2luUHJvdGVjdG9yIHByb3RlY3Rvcih0aGlzT2Jq
ZWN0LT5tX29iamVjdE1hcCk7CiAKICAgICB7CiAgICAgICAgIEpTTG9jazo6RHJvcEFsbExvY2tz
IGRyb3BBbGxMb2NrcyhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotICAgICAgICBtX25wT2JqZWN0
LT5fY2xhc3MtPnNldFByb3BlcnR5KG1fbnBPYmplY3QsIG5wSWRlbnRpZmllciwgJnZhcmlhbnQp
OworICAgICAgICB0aGlzT2JqZWN0LT5tX25wT2JqZWN0LT5fY2xhc3MtPnNldFByb3BlcnR5KHRo
aXNPYmplY3QtPm1fbnBPYmplY3QsIG5wSWRlbnRpZmllciwgJnZhcmlhbnQpOwogCiAgICAgICAg
IE5QUnVudGltZU9iamVjdE1hcDo6bW92ZUdsb2JhbEV4Y2VwdGlvblRvRXhlY1N0YXRlKGV4ZWMp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuaAppbmRleCAwODY0M2Y3NjVhOTRkNTBiNzA2NDZmNTU3ZGMwYjgwMWE3
MmIyYjFjLi4yMmIxNzVkYWRkZTFhMTI1NGU2NzA1ZWU0MmY5ZTQxMzUwZTg3YjEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmgKQEAgLTg2LDcgKzg2LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0g
ICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7Cisg
ICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xv
dCYpOworICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQ
dXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICB2
aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05QSlNPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwCmluZGV4IGZlMjk3MGViODgyMjI5YzI1NTk0Yzcx
N2Y2ZDBkZTEzYTliYTA3MzUuLjVjNzk1ZjM2OTQ5NmI5MjYzOWJiYjY2MDkyZjI5Y2E0NzM5Njc0
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OUEpTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTlBKU09iamVjdC5jcHAKQEAgLTE4OCw5ICsxODgsOSBAQCBib29sIE5QSlNPYmpl
Y3Q6OnNldFByb3BlcnR5KE5QSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUsIGNvbnN0IE5QVmFyaWFu
dCogdmFsdWUpCiAgICAgSlNWYWx1ZSBqc1ZhbHVlID0gbV9vYmplY3RNYXAtPmNvbnZlcnROUFZh
cmlhbnRUb0pTVmFsdWUoZXhlYywgbV9vYmplY3RNYXAtPmdsb2JhbE9iamVjdCgpLCAqdmFsdWUp
OwogICAgIGlmIChpZGVudGlmaWVyUmVwLT5pc1N0cmluZygpKSB7CiAgICAgICAgIFB1dFByb3Bl
cnR5U2xvdCBzbG90OwotICAgICAgICBtX2pzT2JqZWN0LT5wdXQoZXhlYywgaWRlbnRpZmllckZy
b21JZGVudGlmaWVyUmVwKGV4ZWMsIGlkZW50aWZpZXJSZXApLCBqc1ZhbHVlLCBzbG90KTsKKyAg
ICAgICAgbV9qc09iamVjdC0+cHV0VmlydHVhbChleGVjLCBpZGVudGlmaWVyRnJvbUlkZW50aWZp
ZXJSZXAoZXhlYywgaWRlbnRpZmllclJlcCksIGpzVmFsdWUsIHNsb3QpOwogICAgIH0gZWxzZQot
ICAgICAgICBtX2pzT2JqZWN0LT5wdXQoZXhlYywgaWRlbnRpZmllclJlcC0+bnVtYmVyKCksIGpz
VmFsdWUpOworICAgICAgICBtX2pzT2JqZWN0LT5wdXRWaXJ0dWFsKGV4ZWMsIGlkZW50aWZpZXJS
ZXAtPm51bWJlcigpLCBqc1ZhbHVlKTsKICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwogICAg
IAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xz
LmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggMmZmYmU5OTU0
N2IzYjY0Y2VjNWVhMWE0MGRlYWE4YzdjNjBkNTdlOS4uMDNlZjE4YTYxZThiZjBjMWM0NzczOTMz
NTY4ODM4OGRhZmU5NjE0OSAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZp
bHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC0zMyw3ICszMyw3
IEBAIF9aTjdXZWJDb3JlNVJhbmdlRDFFdjsKIF9aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNFdjsKIF9aTjdXZWJDb3JlOUhUTUxOYW1lczhp
bnB1dFRhZ0U7CiBfWk43V2ViQ29yZTlIVE1MTmFtZXMxMXRleHRhcmVhVGFnRTsKLV9aTjdXZWJD
b3JlMTBKU0RvY3VtZW50M3B1dEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVO
UzFfN0pTVmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEU7CitfWk43V2ViQ29yZTEwSlNEb2N1
bWVudDEwcHV0VmlydHVhbEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFf
N0pTVmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEU7CiBfWk43V2ViQ29yZTEwSlNEb2N1bWVu
dDZzX2luZm9FOwogX1pON1dlYkNvcmUxMHRvRG9jdW1lbnRFTjNKU0M3SlNWYWx1ZUU7CiBfWk43
V2ViQ29yZTEwQ2xpZW50UmVjdEMxRXY7CkBAIC01NCwxMyArNTQsMTMgQEAgX1pON1dlYkNvcmUy
MFNoYWRvd0NvbnRlbnRFbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50RTsKIF9aTjdXZWJDb3Jl
MjFnZXRDYWNoZWRET01TdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUEtOM0pTQzlD
bGFzc0luZm9FOwogX1pON1dlYkNvcmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzdFbGVt
ZW50RWo7CiBfWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9y
RVBOU180Tm9kZUU7CitfWk43V2ViQ29yZTZKU05vZGUxMHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNT
dGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNs
b3RFOwogX1pON1dlYkNvcmU2SlNOb2RlMjB2aXNpdENoaWxkcmVuVmlydHVhbEVSTjNKU0MxMVNs
b3RWaXNpdG9yRTsKLV9aTjdXZWJDb3JlNkpTTm9kZTNwdXRFUE4zSlNDOUV4ZWNTdGF0ZUVSS05T
MV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFOwogX1pO
N1dlYkNvcmU2SlNOb2RlNnNfaW5mb0U7CiBfWk43V2ViQ29yZTZ0b05vZGVFTjNKU0M3SlNWYWx1
ZUU7CiBfWk43V2ViQ29yZTdFbGVtZW50MTZlbnN1cmVTaGFkb3dSb290RXY7CiBfWk43V2ViQ29y
ZTdFbGVtZW50MTZyZW1vdmVTaGFkb3dSb290RXY7Ci1fWk43V2ViQ29yZTlKU0VsZW1lbnQzcHV0
RVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1
UHV0UHJvcGVydHlTbG90RTsKK19aTjdXZWJDb3JlOUpTRWxlbWVudDEwcHV0VmlydHVhbEVQTjNK
U0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1dFBy
b3BlcnR5U2xvdEU7CiBfWk43V2ViQ29yZTlKU0VsZW1lbnQ2c19pbmZvRTsKIF9aTjdXZWJDb3Jl
OXRvRWxlbWVudEVOM0pTQzdKU1ZhbHVlRTsKIF9aTks3V2ViQ29yZTE2SFRNTElucHV0RWxlbWVu
dDE0c3VnZ2VzdGVkVmFsdWVFdjsK
</data>
<flag name="review"
          id="108768"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="108793"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>