<?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>88976</bug_id>
          
          <creation_ts>2012-06-13 02:21:34 -0700</creation_ts>
          <short_desc>REGRESSION(r120172): The patch causes compilation failures on Gtk, Qt and Apple Win bots (Requested by zdobersek on #webkit).</short_desc>
          <delta_ts>2012-06-13 11:33:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>88692</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>ossy</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>647825</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-13 02:21:34 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/120172 broke the build:
The patch causes compilation failures on Gtk, Qt and Apple Win bots (Requested by zdobersek on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647826</commentid>
    <comment_count>1</comment_count>
      <attachid>147265</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-13 02:22:22 -0700</bug_when>
    <thetext>Created attachment 147265
ROLLOUT of r120172

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647829</commentid>
    <comment_count>2</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-06-13 02:26:40 -0700</bug_when>
    <thetext>Errors:
http://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/31631/steps/compile-webkit/logs/stdio
http://build.webkit.org/builders/Qt%20Linux%20ARMv7%20Release/builds/47182/steps/compile-webkit/logs/stdio
http://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release/builds/25151/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647831</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-06-13 02:33:24 -0700</bug_when>
    <thetext>The GTK build error seemed to be just a temporary hick-up. CC-ing Ossy to get the Qt folk&apos;s attention about the errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647834</commentid>
    <comment_count>4</comment_count>
      <attachid>147265</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-06-13 02:38:48 -0700</bug_when>
    <thetext>Comment on attachment 147265
ROLLOUT of r120172

Clearing flags on attachment: 147265

Committed r120175: &lt;http://trac.webkit.org/changeset/120175&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647835</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-06-13 02:38:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648288</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-06-13 11:33:47 -0700</bug_when>
    <thetext>The GTK+ failure seems to just be a problem on the GTK bots - the compiler was running out of memory.  Nothing I can do about that.  I will ignore that when rolling this back in.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147265</attachid>
            <date>2012-06-13 02:22:22 -0700</date>
            <delta_ts>2012-06-13 02:38:48 -0700</delta_ts>
            <desc>ROLLOUT of r120172</desc>
            <filename>bug-88976-20120613092705.patch</filename>
            <type>text/plain</type>
            <size>154638</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZjEyM2MxOTRjMWQ4ZmE0NTU5YmVlNWQ1YzE5YmE1M2FkODJmZjhiLi41ZTVhODBiOGIxYjExZjA4
Mjc2YzkzZDRkMDc4MDc5YjYwNDQzYTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNTMgQEAKKzIwMTItMDYtMTMgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjAxNzIuCisg
ICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEyMDE3MgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg5NzYKKworICAgICAgICBU
aGUgcGF0Y2ggY2F1c2VzIGNvbXBpbGF0aW9uIGZhaWx1cmVzIG9uIEd0aywgUXQgYW5kIEFwcGxl
IFdpbgorICAgICAgICBib3RzIChSZXF1ZXN0ZWQgYnkgemRvYmVyc2VrIG9uICN3ZWJraXQpLgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAq
IGFzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxl
cjo6bm9wKToKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmxhYmVsKToKKyAgICAgICAg
KEpTQzo6QVJNdjdBc3NlbWJsZXI6OnJlYWRQb2ludGVyKToKKyAgICAgICAgKEFSTXY3QXNzZW1i
bGVyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oOgorICAg
ICAgICAoSlNDKToKKyAgICAgICAgKEFic3RyYWN0TWFjcm9Bc3NlbWJsZXIpOgorICAgICAgICAo
TGFiZWwpOgorICAgICAgICAqIGFzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaDoKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpu
b3ApOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpqdW1wKToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6bWFrZUJyYW5jaCk6CisgICAgICAgICogYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlclNINC5oOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oOgorICAg
ICAgICAoTWFjcm9Bc3NlbWJsZXJYODYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4
Njo6bW92ZVdpdGhQYXRjaCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uLmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0Lmg6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2XzY0OjpicmFuY2hUZXN0OCk6CisgICAgICAg
ICogYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpYODZBc3NlbWJsZXI6
OmNtcGJfaW0pOgorICAgICAgICAoSlNDOjpYODZBc3NlbWJsZXI6OmNvZGVTaXplKToKKyAgICAg
ICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpsYWJlbCk6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6WDg2SW5zdHJ1Y3Rpb25Gb3JtYXR0ZXI6Om1lbW9yeU1vZFJNKToKKyAgICAgICAgKiBieXRl
Y29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXApOgorICAg
ICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmFw
cGVuZE9TUkV4aXQpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmFwcGVuZFNwZWN1bGF0aW9u
UmVjb3ZlcnkpOgorICAgICAgICAoREZHRGF0YSk6CisgICAgICAgICogYnl0ZWNvZGUvREZHRXhp
dFByb2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpleGl0S2luZFRvU3RyaW5nKToKKyAgICAg
ICAgKEpTQzo6REZHOjpleGl0S2luZElzQ291bnRhYmxlKToKKyAgICAgICAgKiBieXRlY29kZS9J
bnN0cnVjdGlvbi5oOgorICAgICAgICAqIGJ5dGVjb2RlL09wY29kZS5oOgorICAgICAgICAoSlND
KToKKyAgICAgICAgKEpTQzo6cGFkT3Bjb2RlTmFtZSk6CisgICAgICAgICogYnl0ZWNvZGUvV2F0
Y2hwb2ludC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogYnl0ZWNvZGUvV2F0Y2hwb2ludC5oOiBS
ZW1vdmVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6Cisg
ICAgICAgIChKU0M6OlJlc29sdmVSZXN1bHQ6OmNoZWNrVmFsaWRpdHkpOgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6YWRkR2xvYmFsVmFyKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNv
ZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVH
ZW5lcmF0b3I6OnJlc29sdmUpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dFJlc29sdmUpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFJlc29sdmVX
aXRoQmFzZSk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UmVzb2x2ZVdp
dGhUaGlzKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZXRTdGF0aWNW
YXIpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dFN0YXRpY1Zhcik6
CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgIChC
eXRlY29kZUdlbmVyYXRvcik6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5j
cHA6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uQ2FsbFJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUp
OgorICAgICAgICAoSlNDOjpQb3N0Zml4UmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAg
ICAgIChKU0M6OlByZWZpeFJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlND
OjpSZWFkTW9kaWZ5UmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkFz
c2lnblJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpDb25zdERlY2xO
b2RlOjplbWl0Q29kZVNpbmdsZSk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0U3RhdGU6OmV4ZWN1dGUpOgorICAgICAgICAo
SlNDOjpERkc6OkFic3RyYWN0U3RhdGU6OmNsb2JiZXJTdHJ1Y3R1cmVzKToKKyAgICAgICAgKiBk
ZmcvREZHQWJzdHJhY3RTdGF0ZS5oOgorICAgICAgICAoQWJzdHJhY3RTdGF0ZSk6CisgICAgICAg
ICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29k
ZVBhcnNlcjo6aGFuZGxlSW5saW5pbmcpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFy
c2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKiBkZmcvREZHQ0NhbGxIZWxwZXJzLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3VtZW50cyk6CisgICAgICAgICog
ZGZnL0RGR0NTRVBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDU0VQaGFzZTo6Z2xvYmFs
VmFyU3RvcmVFbGltaW5hdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6Q1NFUGhhc2U6OnBlcmZv
cm1Ob2RlQ1NFKToKKyAgICAgICAgKiBkZmcvREZHQ2FwYWJpbGl0aWVzLmg6CisgICAgICAgIChK
U0M6OkRGRzo6Y2FuQ29tcGlsZU9wY29kZSk6CisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9s
ZGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6
cnVuKToKKyAgICAgICAgKiBkZmcvREZHQ29ycmVjdGFibGVKdW1wUG9pbnQuaDoKKyAgICAgICAg
KiBkZmcvREZHSklUQ29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVy
OjpsaW5rT1NSRXhpdHMpOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpsaW5rKToK
KyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc1Jl
Z2lzdGVyUG9pbnRlcik6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgIChE
RkcpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpP
U1JFeGl0OjpPU1JFeGl0KToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdC5oOgorICAgICAgICAo
T1NSRXhpdCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRm
Zy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlv
blBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFz
ZTo6cHJvcGFnYXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmFwcGVuZENhbGxTZXRSZXN1bHQpOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGlvbkNoZWNrKToKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAg
ICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFz
cyk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMpOgorICAgICAg
ICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAg
ICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAgICAgICAgKiBqaXQvSklU
U3R1YnMuY3BwOgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAgICAqIGxsaW50L0xM
SW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5oOgorICAg
ICAgICAoTExJbnQpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAg
KiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnJlbW92ZURp
cmVjdCk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlNPYmplY3Qp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5oOgorICAgICAgICAoSlND
OjpzeW1ib2xUYWJsZUdldCk6CisgICAgICAgIChKU0M6OnN5bWJvbFRhYmxlUHV0KToKKyAgICAg
ICAgKEpTQzo6c3ltYm9sVGFibGVQdXRXaXRoQXR0cmlidXRlcyk6CisgICAgICAgICogcnVudGlt
ZS9TeW1ib2xUYWJsZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcnVudGltZS9TeW1ib2xUYWJs
ZS5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGVFbnRyeTo6aXNO
dWxsKToKKyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGVFbnRyeTo6Z2V0SW5kZXgpOgorICAgICAg
ICAoU3ltYm9sVGFibGVFbnRyeSk6CisgICAgICAgIChKU0M6OlN5bWJvbFRhYmxlRW50cnk6Omdl
dEF0dHJpYnV0ZXMpOgorICAgICAgICAoSlNDOjpTeW1ib2xUYWJsZUVudHJ5Ojppc1JlYWRPbmx5
KToKKyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGVFbnRyeTo6cGFjayk6CisgICAgICAgIChKU0M6
OlN5bWJvbFRhYmxlRW50cnk6OmlzVmFsaWRJbmRleCk6CisKIDIwMTItMDYtMTIgIEZpbGlwIFBp
emxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgc2hvdWxkIGJlIGFibGUgdG8g
c2V0IHdhdGNocG9pbnRzIG9uIGdsb2JhbCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZjU0Zjc0NGExZjM1NTIy
YzhkOGQ5ZTUyNWFhMTU0MzdkZGVmNmYzOS4uMTk4Yjg1MTM4MjMwNWM5NTA4Y2U0NDA3MmQ5NzIy
NzcxZmQwMGRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wNi0xMyAgU2hlcmlmZiBCb3Qg
IDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjEyMDE3Mi4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2Vz
ZXQvMTIwMTcyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04ODk3NgorCisgICAgICAgIFRoZSBwYXRjaCBjYXVzZXMgY29tcGlsYXRpb24gZmFpbHVyZXMg
b24gR3RrLCBRdCBhbmQgQXBwbGUgV2luCisgICAgICAgIGJvdHMgKFJlcXVlc3RlZCBieSB6ZG9i
ZXJzZWsgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiB3dGYvU2VnbWVudGVkVmVjdG9yLmg6Cisg
ICAgICAgIChXVEYpOgorICAgICAgICAoU2VnbWVudGVkVmVjdG9ySXRlcmF0b3IpOgorICAgICAg
ICAoV1RGOjpTZWdtZW50ZWRWZWN0b3JJdGVyYXRvcjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdU
Rjo6U2VnbWVudGVkVmVjdG9ySXRlcmF0b3I6OlNlZ21lbnRlZFZlY3Rvckl0ZXJhdG9yKToKKyAg
ICAgICAgKFNlZ21lbnRlZFZlY3Rvcik6CisKIDIwMTItMDYtMTAgIEZpbGlwIFBpemxvICA8ZnBp
emxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgc2hvdWxkIGJlIGFibGUgdG8gc2V0IHdhdGNo
cG9pbnRzIG9uIGdsb2JhbCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCAwNWNkN2Q3Y2M5N2U1N2QyOTE2NTdkZjNkYmU3NjJmNGE1MDYwNjZhLi4wODRmNjYw
MDIxYmUwZjIwNjAzZDVjMjExMzRjY2Y4NGE5ZTA3NzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC01Myw3ICs1Myw2IEBAIFNFVChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VT
CiAgICAgYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAKICAgICBieXRlY29kZS9TYW1wbGluZ1Rv
b2wuY3BwCiAgICAgYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwCi0gICAgYnl0ZWNvZGUv
V2F0Y2hwb2ludC5jcHAKIAogICAgIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAK
ICAgICBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMjMyLDcgKzIzMSw2IEBAIFNF
VChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVj
a2VyLmNwcAogICAgIHJ1bnRpbWUvU3RydWN0dXJlLmNwcAogICAgIHJ1bnRpbWUvU3RydWN0dXJl
Q2hhaW4uY3BwCi0gICAgcnVudGltZS9TeW1ib2xUYWJsZS5jcHAKICAgICBydW50aW1lL1RpbWVv
dXRDaGVja2VyLmNwcAogICAgIHJ1bnRpbWUvVVN0cmluZy5jcHAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4M2M4NWVkZjA2NTkxYTQ2MjFiYTRjOTcy
MjJmNzgwZjIzNWQ0NjQzLi5hYWY4YjM3ZmY1MjQ2N2NjZDdmMjczMTk2YzRkOGE2MzM0ZWU0Yzdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTMzLDgg
KzEzMyw2IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1ZpcnR1YWxSZWdpc3Rlci5oIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0
Y2hwb2ludC5jcHAgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50
LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTGFiZWwuaCBc
CkBAIC02MDUsNyArNjAzLDYgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TeW1ib2xUYWJsZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N5bWJvbFRhYmxlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rlcm1pbmF0
b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGltZW91dENoZWNrZXIuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3By
b2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5k
ZWYKaW5kZXggZTg1NzllZTkwNTg1MzNjNzM3OWYzMDhiMTYzYjMzZWE1YWM5OWY1My4uYTI5MDBi
NTkzZGQ0NGQ3NzE4Nzc0MzZmZjk1MDMwMjRjOGMwMTA2OSAxMDA3NTUKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
cHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTI0Niw3ICsyNDYsNiBA
QCBFWFBPUlRTCiAgICAgP25hbWVASlNGdW5jdGlvbkBKU0NAQFFBRUFCVlVTdHJpbmdAMkBQQVZF
eGVjU3RhdGVAMkBAWgogICAgID9uZXV0ZXJAQXJyYXlCdWZmZXJWaWV3QFdURkBATUFFWFhaCiAg
ICAgP25ld1VuaW5pdGlhbGl6ZWRAQ1N0cmluZ0BXVEZAQFNBP0FWMTJASUFBUEFEQFoKLSAgICA/
bm90aWZ5V3JpdGVTbG93QFN5bWJvbFRhYmxlRW50cnlASlNDQEBBQUVYWFoKICAgICA/bnVsbHB0
ckBAM1ZudWxscHRyX3RAc3RkQEBBCiAgICAgP251bWJlckBTdHJpbmdAV1RGQEBTQT9BVjEyQE5J
SUBaCiAgICAgP251bWJlckBVU3RyaW5nQEpTQ0BAU0E/QVYxMkBIQFoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKaW5kZXggOTZj
MzE1OWEyM2RhZTA2MGRlZWZmN2M1NmJkNTY5ODMyYjg0NjRmNy4uMGEzZmFiOGMyYTc2Yjc0NWYx
MjkwZGE2YzkyY2MwZDE4ODgwNTA2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3By
b2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKQEAgLTEyNTQsMTAgKzEyNTQsNiBAQAog
CQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxydW50
aW1lXFN5bWJvbFRhYmxlLmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxTeW1ib2xUYWJsZS5oIgogCQkJCT4KIAkJCTwvRmls
ZT4KQEAgLTE2ODUsMTQgKzE2ODEsNiBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cYnl0ZWNv
ZGVcVmFsdWVQcm9maWxlLmgiCiAJCQkJPgogCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXC4uXGJ5dGVjb2RlXFdhdGNocG9pbnQuY3BwIgotCQkJCT4KLQkJCTwvRmls
ZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxieXRlY29kZVxXYXRjaHBvaW50
LmgiCi0JCQkJPgotCQkJPC9GaWxlPgogCQk8L0ZpbHRlcj4KIAkJPEZpbHRlcgogCQkJTmFtZT0i
ZGVidWdnZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVhNWI1NzdjMzEzYjQ2
OWE3OGFiNmViYWIwNjQ0OWViNzQ0NTk3ZGYuLjQ5N2M4OTk1MDdjYjVlYWUxMTRjYzExNWIyMjk2
NmI5YjUzNGYzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzksOSArMTM5
LDYgQEAKIAkJMEY5MTlEMEQxNTdFRTBBMjAwNEE0RTdEIC8qIEpTU3ltYm9sVGFibGVPYmplY3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTE5RDBB
MTU3RUUwOUQwMDRBNEU3RCAvKiBKU1N5bWJvbFRhYmxlT2JqZWN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY5MTlEMTAxNTdGMzMyOTAwNEE0
RTdEIC8qIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5MTlEMEUxNTdGMzMyNzAwNEE0RTdEIC8qIEpT
U2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3BwICovOyB9OwogCQkwRjkxOUQxMTE1N0YzMzJDMDA0
QTRFN0QgLyogSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5MTlEMEYxNTdGMzMyNzAwNEE0RTdEIC8qIEpT
U2VnbWVudGVkVmFyaWFibGVPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQkwRjkxOUQyNTE1ODUzQ0UwMDA0QTRFN0QgLyogV2F0Y2hwb2lu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjkx
OUQyMjE1ODUzQ0RFMDA0QTRFN0QgLyogV2F0Y2hwb2ludC5jcHAgKi87IH07Ci0JCTBGOTE5RDI2
MTU4NTNDRTMwMDRBNEU3RCAvKiBXYXRjaHBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjkxOUQyMzE1ODUzQ0RFMDA0QTRFN0QgLyogV2F0Y2hw
b2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CTBGOTE5RDI4MTU4NTY3NzMwMDRBNEU3RCAvKiBTeW1ib2xUYWJsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjkxOUQyNzE1ODU2NzcwMDA0QTRF
N0QgLyogU3ltYm9sVGFibGUuY3BwICovOyB9OwogCQkwRjkzMzI5RDE0Q0E3REMzMDA4NUYzQzYg
LyogQ2FsbExpbmtTdGF0dXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY5MzMyOTMxNENBN0RDMTAwODVGM0M2IC8qIENhbGxMaW5rU3RhdHVzLmNw
cCAqLzsgfTsKIAkJMEY5MzMyOUUxNENBN0RDNTAwODVGM0M2IC8qIENhbGxMaW5rU3RhdHVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjkzMzI5NDE0
Q0E3REMxMDA4NUYzQzYgLyogQ2FsbExpbmtTdGF0dXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjkzMzI5RjE0Q0E3RENBMDA4NUYzQzYgLyog
R2V0QnlJZFN0YXR1cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjkzMzI5NTE0Q0E3REMxMDA4NUYzQzYgLyogR2V0QnlJZFN0YXR1cy5jcHAgKi87
IH07CkBAIC0zNzMsMTAgKzM3MCwxMCBAQAogCQk3RTRFRTcwRjBFQkI3QTVCMDA1OTM0QUEgLyog
U3RydWN0dXJlQ2hhaW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0U0RUU3MEUwRUJCN0E1QjAwNTkzNEFBIC8qIFN0cnVjdHVyZUNoYWluLmNwcCAq
LzsgfTsKIAkJN0VGRjAwNjQwRUMwNUE5QTAwQUE3QzkzIC8qIE5vZGVJbmZvLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUZGMDA2MzBFQzA1QTlBMDBB
QTdDOTMgLyogTm9kZUluZm8uaCAqLzsgfTsKIAkJODQwNDgwMTMxMDIxQTFEOTAwOEU3RjAxIC8q
IEpTQVBJVmFsdWVXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzA4OTRENjBGQUZCQTJEMDAwMDE4NjUgLyogSlNBUElWYWx1ZVdyYXBwZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4NjAx
NjFFMzBGM0E4M0MxMDBGODQ3MTAgLyogQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYwMTYxREYwRjNBODNDMTAw
Rjg0NzEwIC8qIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4NjAxNjFFNDBGM0E4M0MxMDBGODQ3MTAgLyog
TWFjcm9Bc3NlbWJsZXJYODYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg2MDE2MUUwMEYzQTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4Ni5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTg2MDE2
MUU1MEYzQTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4Nl82NC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYwMTYxRTEwRjNBODNDMTAwRjg0
NzEwIC8qIE1hY3JvQXNzZW1ibGVyWDg2XzY0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODYwMTYxRTYwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NjAxNjFFMjBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk4NjAxNjFFMzBGM0E4M0MxMDBGODQ3MTAgLyogQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYwMTYxREYwRjNB
ODNDMTAwRjg0NzEwIC8qIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaCAqLzsgfTsKKwkJODYwMTYx
RTQwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVyWDg2LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjAxNjFFMDBGM0E4M0MxMDBGODQ3MTAg
LyogTWFjcm9Bc3NlbWJsZXJYODYuaCAqLzsgfTsKKwkJODYwMTYxRTUwRjNBODNDMTAwRjg0NzEw
IC8qIE1hY3JvQXNzZW1ibGVyWDg2XzY0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NjAxNjFFMTBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJs
ZXJYODZfNjQuaCAqLzsgfTsKKwkJODYwMTYxRTYwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NjAxNjFFMjBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21t
b24uaCAqLzsgfTsKIAkJODYwNEY1MDUxNDNDRTFDMjAwQjI5NUY1IC8qIEpTR2xvYmFsVGhpcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYwNEY1MDMx
NDNDRTFDMTAwQjI5NUY1IC8qIEpTR2xvYmFsVGhpcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2MEJEODAxMTQ4RUE2RjIwMDExMkIyRiAvKiBJ
bnRyaW5zaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg2QkY2NDJBMTQ4REIyQjUwMDRERTM2QSAvKiBJbnRyaW5zaWMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjEyRTRDRDE1MjM4OUVDMDBDODM2
QkUgLyogTWF0Y2hSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg2MTJFNENCMTUyMjkxODQwMEM4MzZCRSAvKiBNYXRjaFJlc3VsdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00MDQsMTEgKzQw
MSwxMSBAQAogCQk4NjlEMDRBRjExOTNCNTREMDA4MDM0NzUgLyogQ2FjaGVkVHJhbnNjZW5kZW50
YWxGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODY5RDA0QUUxMTkzQjU0RDAwODAzNDc1IC8qIENhY2hlZFRyYW5zY2VuZGVudGFsRnVuY3Rp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
NjlFQkNCNzBFOEM2RDRBMDA4NzIyQ0MgLyogUmVzdWx0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODY5RUJDQjYwRThDNkQ0QTAwODcyMkNDIC8q
IFJlc3VsdFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk4NkE5MEVEMDBFRTdENTFGMDBBQjM1MEQgLyogSklUQXJpdGhtZXRpYy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkE5MEVDRjBFRTdE
NTFGMDBBQjM1MEQgLyogSklUQXJpdGhtZXRpYy5jcHAgKi87IH07Ci0JCTg2QUREMTQ1MEZEREVB
OTgwMDA2RUVDMiAvKiBBUk12N0Fzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODZBREQxNDMwRkRERUE5ODAwMDZFRUMyIC8qIEFSTXY3QXNz
ZW1ibGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJODZBREQxNDYwRkRERUE5ODAwMDZFRUMyIC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QUREMTQ0MEZEREVB
OTgwMDA2RUVDMiAvKiBNYWNyb0Fzc2VtYmxlckFSTXY3LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODZBREQxNDUwRkRERUE5ODAwMDZFRUMyIC8q
IEFSTXY3QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NkFERDE0MzBGRERFQTk4MDAwNkVFQzIgLyogQVJNdjdBc3NlbWJsZXIuaCAqLzsg
fTsKKwkJODZBREQxNDYwRkRERUE5ODAwMDZFRUMyIC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QUREMTQ0MEZE
REVBOTgwMDA2RUVDMiAvKiBNYWNyb0Fzc2VtYmxlckFSTXY3LmggKi87IH07CiAJCTg2QUU2NEE4
MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkFFNjRBNTEzNUU1RTFDMDA5NjMwMTIg
LyogTWFjcm9Bc3NlbWJsZXJTSDQuY3BwICovOyB9OwotCQk4NkFFNjRBOTEzNUU1RTFDMDA5NjMw
MTIgLyogTWFjcm9Bc3NlbWJsZXJTSDQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2QUU2NEE2MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxl
clNINC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CTg2QUU2NEFBMTM1RTVFMUMwMDk2MzAxMiAvKiBTSDRBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QUU2NEE3MTM1RTVFMUMwMDk2MzAx
MiAvKiBTSDRBc3NlbWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk4NkFFNjRBOTEzNUU1RTFDMDA5NjMwMTIgLyogTWFjcm9Bc3NlbWJsZXJT
SDQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QUU2
NEE2MTM1RTVFMUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5oICovOyB9OworCQk4NkFF
NjRBQTEzNUU1RTFDMDA5NjMwMTIgLyogU0g0QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkFFNjRBNzEzNUU1RTFDMDA5NjMwMTIgLyog
U0g0QXNzZW1ibGVyLmggKi87IH07CiAJCTg2QUU2QzREMTM2QTExRTQwMDk2MzAxMiAvKiBERkdG
UFJJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NkFFNkM0QjEzNkExMUU0MDA5NjMwMTIgLyogREZHRlBSSW5mby5oICovOyB9OwogCQk4NkFFNkM0
RTEzNkExMUU0MDA5NjMwMTIgLyogREZHR1BSSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZBRTZDNEMxMzZBMTFFNDAwOTYzMDEyIC8qIERGR0dQ
UkluZm8uaCAqLzsgfTsKIAkJODZCNTgyNjcxNEQyNzk2QzAwQTlDMzA2IC8qIENvZGVQcm9maWxl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QjU4
MjJFMTREMjM3M0IwMEE5QzMwNiAvKiBDb2RlUHJvZmlsZS5jcHAgKi87IH07CkBAIC00MTcsOCAr
NDE0LDggQEAKIAkJODZCQjA5QzExMzhFMzgxQjAwNTY3MDJGIC8qIERGR1JlcGF0Y2guaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QkIwOUJGMTM4RTM4
MUIwMDU2NzAyRiAvKiBERkdSZXBhdGNoLmggKi87IH07CiAJCTg2QzM2RUVBMEVFMTI4OUQwMEIz
REY1OSAvKiBNYWNyb0Fzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODZDMzZFRTkwRUUxMjg5RDAwQjNERjU5IC8qIE1hY3JvQXNzZW1ibGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZD
NTY4RTAxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1ibGVyQVJNLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QzU2OEREMTFBMjEzRUUwMDA3
RjdGMCAvKiBNYWNyb0Fzc2VtYmxlckFSTS5jcHAgKi87IH07Ci0JCTg2QzU2OEUxMTFBMjEzRUUw
MDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlck1JUFMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QzU2OERFMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fz
c2VtYmxlck1JUFMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQk4NkM1NjhFMjExQTIxM0VFMDAwN0Y3RjAgLyogTUlQU0Fzc2VtYmxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDNTY4REYxMUEyMTNF
RTAwMDdGN0YwIC8qIE1JUFNBc3NlbWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk4NkM1NjhFMTExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9B
c3NlbWJsZXJNSVBTLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NkM1NjhERTExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJNSVBTLmggKi87
IH07CisJCTg2QzU2OEUyMTFBMjEzRUUwMDA3RjdGMCAvKiBNSVBTQXNzZW1ibGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkM1NjhERjExQTIxM0VF
MDAwN0Y3RjAgLyogTUlQU0Fzc2VtYmxlci5oICovOyB9OwogCQk4NkNBMDMyRTEwMzhFODQ0MDAy
OEE2MDkgLyogRXhlY3V0YWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NkNBMDMyRDEwMzhFODQ0MDAyOEE2MDkgLyogRXhlY3V0YWJsZS5jcHAg
Ki87IH07CiAJCTg2Q0FGRUUzMTAzNURERTYwMDI4QTYwOSAvKiBFeGVjdXRhYmxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkNBRkVFMjEwMzVEREU2
MDAyOEE2MDkgLyogRXhlY3V0YWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTg2Q0M4NUExMEVFNzlBNDcwMDI4ODY4MiAvKiBKSVRJbmxpbmVN
ZXRob2RzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NkNDODVBMDBFRTc5QTQ3MDAyODg2ODIgLyogSklUSW5saW5lTWV0aG9kcy5oICovOyB9OwpAQCAt
NDI2LDEzICs0MjMsMTMgQEAKIAkJODZDQzg1QzQwRUU3QTg5NDAwMjg4NjgyIC8qIEpJVFByb3Bl
cnR5QWNjZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg2Q0M4NUMzMEVFN0E4OTQwMDI4ODY4MiAvKiBKSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgKi87
IH07CiAJCTg2Q0NFRkRFMEY0MTNGODkwMEZEN0Y5RSAvKiBKSVRDb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkNDRUZERDBGNDEzRjg5MDBGRDdG
OUUgLyogSklUQ29kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTg2RDNCMkMzMTAxNTZCREUwMDI4NjVFNyAvKiBBUk1Bc3NlbWJsZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZEM0IyQkYxMDE1
NkJERTAwMjg2NUU3IC8qIEFSTUFzc2VtYmxlci5jcHAgKi87IH07Ci0JCTg2RDNCMkM0MTAxNTZC
REUwMDI4NjVFNyAvKiBBUk1Bc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2RDNCMkMwMTAxNTZCREUwMDI4NjVFNyAvKiBBUk1Bc3NlbWJs
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4
NkQzQjJDNTEwMTU2QkRFMDAyODY1RTcgLyogQXNzZW1ibGVyQnVmZmVyV2l0aENvbnN0YW50UG9v
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZEM0Iy
QzExMDE1NkJERTAwMjg2NUU3IC8qIEFzc2VtYmxlckJ1ZmZlcldpdGhDb25zdGFudFBvb2wuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4NkQzQjJD
NjEwMTU2QkRFMDAyODY1RTcgLyogTWFjcm9Bc3NlbWJsZXJBUk0uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RDNCMkMyMTAxNTZCREUwMDI4NjVFNyAv
KiBNYWNyb0Fzc2VtYmxlckFSTS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTg2RDNCM0MzMTAxNTlEN0YwMDI4NjVFNyAvKiBMaW5rQnVmZmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkQzQjNDMTEw
MTU5RDdGMDAyODY1RTcgLyogTGlua0J1ZmZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTg2RDNCM0M0MTAxNTlEN0YwMDI4NjVFNyAvKiBSZXBh
dGNoQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NkQzQjNDMjEwMTU5RDdGMDAyODY1RTcgLyogUmVwYXRjaEJ1ZmZlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg2RDNCMkM0MTAxNTZCREUw
MDI4NjVFNyAvKiBBUk1Bc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2RDNCMkMwMTAxNTZCREUwMDI4NjVFNyAvKiBBUk1Bc3NlbWJsZXIu
aCAqLzsgfTsKKwkJODZEM0IyQzUxMDE1NkJERTAwMjg2NUU3IC8qIEFzc2VtYmxlckJ1ZmZlcldp
dGhDb25zdGFudFBvb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg2RDNCMkMxMTAxNTZCREUwMDI4NjVFNyAvKiBBc3NlbWJsZXJCdWZmZXJXaXRoQ29u
c3RhbnRQb29sLmggKi87IH07CisJCTg2RDNCMkM2MTAxNTZCREUwMDI4NjVFNyAvKiBNYWNyb0Fz
c2VtYmxlckFSTS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODZEM0IyQzIxMDE1NkJERTAwMjg2NUU3IC8qIE1hY3JvQXNzZW1ibGVyQVJNLmggKi87IH07
CisJCTg2RDNCM0MzMTAxNTlEN0YwMDI4NjVFNyAvKiBMaW5rQnVmZmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkQzQjNDMTEwMTU5RDdGMDAyODY1
RTcgLyogTGlua0J1ZmZlci5oICovOyB9OworCQk4NkQzQjNDNDEwMTU5RDdGMDAyODY1RTcgLyog
UmVwYXRjaEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODZEM0IzQzIxMDE1OUQ3RjAwMjg2NUU3IC8qIFJlcGF0Y2hCdWZmZXIuaCAqLzsgfTsK
IAkJODZEQjY0NjQwRjk1QzZGQzAwRDdEOTIxIC8qIEV4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZN
UG9vbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NkRCNjQ2MzBGOTVDNkZDMDBEN0Q5MjEgLyogRXhlY3V0YWJsZUFsbG9jYXRvckZpeGVkVk1Qb29s
LmNwcCAqLzsgfTsKLQkJODZFMTE2QjEwRkU3NUFDODAwQjUxMkJDIC8qIENvZGVMb2NhdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFMTE2QjAw
RkU3NUFDODAwQjUxMkJDIC8qIENvZGVMb2NhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTg2RTExNkIxMEZFNzVBQzgwMEI1MTJCQyAvKiBD
b2RlTG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg2RTExNkIwMEZFNzVBQzgwMEI1MTJCQyAvKiBDb2RlTG9jYXRpb24uaCAqLzsgfTsKIAkJ
ODZFODU1MzkxMTFCOTk2ODAwMUFGNTFFIC8qIEpTU3RyaW5nQnVpbGRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFODU1MzgxMTFCOTk2ODAwMUFG
NTFFIC8qIEpTU3RyaW5nQnVpbGRlci5oICovOyB9OwogCQk4NkVCRjJGRjE1NjBGMDZBMDA4RTky
MjIgLyogTmFtZUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2RUJGMkY5MTU2MEYwMzYwMDhFOTIyMiAvKiBOYW1lQ29uc3RydWN0
b3IuY3BwICovOyB9OwogCQk4NkVCRjMwMDE1NjBGMDZBMDA4RTkyMjIgLyogTmFtZUNvbnN0cnVj
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVC
RjJGQTE1NjBGMDM2MDA4RTkyMjIgLyogTmFtZUNvbnN0cnVjdG9yLmggKi87IH07CkBAIC00Nzgs
OCArNDc1LDggQEAKIAkJOTVGNkU2OTUwRTVCNUY5NzAwOTFFODYwIC8qIEpTUHJvZmlsZXJQcml2
YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1
OTg4QkE5MEU0NzdCRUMwMEQyOEQ0RCAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHAgKi87IH07CiAJ
CTk2MDA5N0E2MEVCQUJCNTgwMDdBNzI5NyAvKiBMYWJlbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NjAwOTdBNTBFQkFCQjU4MDA3QTcyOTcg
LyogTGFiZWxTY29wZS5oICovOyB9OwogCQk5NjA2MjY5NjBGQjhFQzAyMDA5Nzk4QUIgLyogSklU
U3R1YkNhbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk2MDYyNjk1MEZCOEVDMDIwMDk3OThBQiAvKiBKSVRTdHViQ2FsbC5oICovOyB9OwotCQk5Njg4
Q0IxNTBFRDEyQjRFMDAxRDY0OUYgLyogQXNzZW1ibGVyQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Njg4Q0IxMzBFRDEyQjRFMDAxRDY0OUYg
LyogQXNzZW1ibGVyQnVmZmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJOTY4OENCMTYwRUQxMkI0RTAwMUQ2NDlGIC8qIFg4NkFzc2VtYmxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY4OENCMTQw
RUQxMkI0RTAwMUQ2NDlGIC8qIFg4NkFzc2VtYmxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk2ODhDQjE1MEVEMTJCNEUwMDFENjQ5RiAvKiBB
c3NlbWJsZXJCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk2ODhDQjEzMEVEMTJCNEUwMDFENjQ5RiAvKiBBc3NlbWJsZXJCdWZmZXIuaCAqLzsg
fTsKKwkJOTY4OENCMTYwRUQxMkI0RTAwMUQ2NDlGIC8qIFg4NkFzc2VtYmxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY4OENCMTQwRUQxMkI0RTAw
MUQ2NDlGIC8qIFg4NkFzc2VtYmxlci5oICovOyB9OwogCQk5NjlBMDcyMzBFRDFDRTMzMDBGMUY2
ODEgLyogQnl0ZWNvZGVHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk2OUEwNzIxMEVEMUNFMzMwMEYxRjY4MSAvKiBCeXRlY29kZUdlbmVy
YXRvci5oICovOyB9OwogCQk5NjlBMDcyQTBFRDFDRTY5MDBGMUY2ODEgLyogTGFiZWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2OUEwNzI3MEVEMUNF
NjkwMEYxRjY4MSAvKiBMYWJlbC5oICovOyB9OwogCQk5NjlBMDcyQjBFRDFDRTY5MDBGMUY2ODEg
LyogUmVnaXN0ZXJJRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTY5QTA3MjgwRUQxQ0U2OTAwRjFGNjgxIC8qIFJlZ2lzdGVySUQuaCAqLzsgfTsKQEAg
LTgzOSw5ICs4MzYsNiBAQAogCQkwRjkxOUQwQTE1N0VFMDlEMDA0QTRFN0QgLyogSlNTeW1ib2xU
YWJsZU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N5bWJvbFRh
YmxlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTE5RDBFMTU3RjMz
MjcwMDRBNEU3RCAvKiBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjkxOUQwRjE1N0YzMzI3MDA0QTRFN0QgLyog
SlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTBGOTE5RDIyMTU4NTNDREUwMDRBNEU3RCAvKiBXYXRjaHBvaW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhdGNocG9pbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkwRjkxOUQyMzE1ODUzQ0RFMDA0QTRFN0QgLyogV2F0Y2hwb2lu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXRjaHBvaW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOTE5RDI3MTU4NTY3NzAwMDRBNEU3RCAvKiBTeW1i
b2xUYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTeW1ib2xU
YWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTMzMjkzMTRDQTdEQzEw
MDg1RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDYWxsTGlua1N0YXR1cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGOTMzMjk0MTRDQTdEQzEwMDg1RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWxsTGlua1N0YXR1cy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjkzMzI5NTE0Q0E3REMxMDA4NUYzQzYgLyogR2V0QnlJZFN0YXR1
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHZXRCeUlkU3RhdHVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwNTEsNyArMjA0NSw2IEBACiAJ
CQkJN0U0RUU3MEUwRUJCN0E1QjAwNTkzNEFBIC8qIFN0cnVjdHVyZUNoYWluLmNwcCAqLywKIAkJ
CQk3RTRFRTcwODBFQkI3OTYzMDA1OTM0QUEgLyogU3RydWN0dXJlQ2hhaW4uaCAqLywKIAkJCQlC
QzkwNDE0NzBFQjkyNTA5MDBGRTI2RkEgLyogU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmggKi8s
Ci0JCQkJMEY5MTlEMjcxNTg1Njc3MDAwNEE0RTdEIC8qIFN5bWJvbFRhYmxlLmNwcCAqLywKIAkJ
CQkxNEEzOTZBNjBDRDI5MzMxMDBCNUI0RkYgLyogU3ltYm9sVGFibGUuaCAqLywKIAkJCQk5N0Y2
OTAzQTExNjlERjdGMDBBNkJCNDYgLyogVGVybWluYXRvci5oICovLAogCQkJCTE0QTQyRTNEMEY0
RjYwRUUwMDU5OTA5OSAvKiBUaW1lb3V0Q2hlY2tlci5jcHAgKi8sCkBAIC0yMzAzLDggKzIyOTYs
NiBAQAogCQkJCTBGOTYzQjM2MTNGQzZGREUwMDAyRDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCAqLywK
IAkJCQkwRjQyNkE0NTE0NjBDQkFCMDAxMzFGOEYgLyogVmFsdWVSZWNvdmVyeS5oICovLAogCQkJ
CTBGNDI2QTQ2MTQ2MENCQUIwMDEzMUY4RiAvKiBWaXJ0dWFsUmVnaXN0ZXIuaCAqLywKLQkJCQkw
RjkxOUQyMjE1ODUzQ0RFMDA0QTRFN0QgLyogV2F0Y2hwb2ludC5jcHAgKi8sCi0JCQkJMEY5MTlE
MjMxNTg1M0NERTAwNEE0RTdEIC8qIFdhdGNocG9pbnQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0g
Ynl0ZWNvZGU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjY4MCw3ICsyNjcxLDYg
QEAKIAkJCQkwRjE2MDE1RTE1NjE5OEM5MDBDMjU4N0MgLyogREZHQXJndW1lbnRzU2ltcGxpZmlj
YXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5MTlEMEQxNTdFRTBBMjAwNEE0RTdE
IC8qIEpTU3ltYm9sVGFibGVPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTE5RDExMTU3
RjMzMkMwMDRBNEU3RCAvKiBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjkxOUQyNjE1ODUzQ0UzMDA0QTRFN0QgLyogV2F0Y2hwb2ludC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkBAIC0zMjU1LDggKzMyNDUsNiBAQAogCQkJCUMyNUY4QkNEMTU3NTQ0QTkwMDI0NUI3
MSAvKiBJbmNyZW1lbnRhbFN3ZWVwZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5MTlEMEMx
NTdFRTA5RjAwNEE0RTdEIC8qIEpTU3ltYm9sVGFibGVPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY5MTlEMTAxNTdGMzMyOTAwNEE0RTdEIC8qIEpTU2VnbWVudGVkVmFyaWFibGVPYmpl
Y3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5MTlEMjUxNTg1M0NFMDAwNEE0RTdEIC8qIFdh
dGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5MTlEMjgxNTg1Njc3MzAwNEE0RTdE
IC8qIFN5bWJvbFRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnBy
aQppbmRleCBlYzgyMDEyMTQwZGY1MDU3ZGRhMjlhZWIzOTA3MDE2YjhiMDJhMWQ3Li4yYTIxMTYz
Y2UxYTllNzU4Njg4NWY4NDM5MDkyZjljODA1MDU0MGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0
LnByaQpAQCAtNjIsMTEgKzYyLDEwIEBAIFNPVVJDRVMgKz0gXAogICAgIGJ5dGVjb2RlL01ldGhv
ZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwIFwKICAgICBieXRlY29kZS9PcGNvZGUuY3BwIFwK
ICAgICBieXRlY29kZS9Qb2x5bW9ycGhpY1B1dEJ5SWRMaXN0LmNwcCBcCisgICAgYnl0ZWNvZGUv
U3BlY3VsYXRlZFR5cGUuY3BwIFwKICAgICBieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcCBcCiAg
ICAgYnl0ZWNvZGUvU2FtcGxpbmdUb29sLmNwcCBcCi0gICAgYnl0ZWNvZGUvU3BlY3VsYXRlZFR5
cGUuY3BwIFwKICAgICBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAgXAotICAgIGJ5dGVj
b2RlL1dhdGNocG9pbnQuY3BwIFwKICAgICBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
Y3BwIFwKICAgICBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBcCiAgICAgaGVhcC9Db3Bp
ZWRTcGFjZS5jcHAgXApAQCAtMjM3LDcgKzIzNiw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHJ1bnRp
bWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAgXAogICAgIHJ1bnRpbWUvU3RydWN0dXJlQ2hh
aW4uY3BwIFwKICAgICBydW50aW1lL1N0cnVjdHVyZS5jcHAgXAotICAgIHJ1bnRpbWUvU3ltYm9s
VGFibGUuY3BwIFwKICAgICBydW50aW1lL1RpbWVvdXRDaGVja2VyLmNwcCBcCiAgICAgcnVudGlt
ZS9VU3RyaW5nLmNwcCBcCiAgICAgdG9vbHMvQ29kZVByb2ZpbGUuY3BwIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAppbmRleCA5NWM4MTJj
OTRlZTdhNDQzZGQ5YjQzOGY4NTQ5ZWY2ZmM4NDZiMzUxLi4wY2JlNzk5YjQ3ZThlNmRhNzk3Y2Q4
ZTRjOWJhMjkxYTMyN2U0Y2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BUk12N0Fzc2VtYmxlci5oCkBAIC00ODMsMTIgKzQ4Myw2IEBAIHB1YmxpYzoKICAgICAg
ICAgSnVtcExpbmtUeXBlIG1fbGlua1R5cGUgOiA4OwogICAgICAgICBDb25kaXRpb24gbV9jb25k
aXRpb24gOiAxNjsKICAgICB9OwotICAgIAotICAgIEFSTXY3QXNzZW1ibGVyKCkKLSAgICAgICAg
OiBtX2luZGV4T2ZMYXN0V2F0Y2hwb2ludChJTlRfTUlOKQotICAgICAgICAsIG1faW5kZXhPZlRh
aWxPZkxhc3RXYXRjaHBvaW50KElOVF9NSU4pCi0gICAgewotICAgIH0KIAogcHJpdmF0ZToKIApA
QCAtMTgyNiwyNSArMTgyMCwxMCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBtX2Zvcm1hdHRl
ci5vbmVXb3JkT3A4SW1tOChPUF9OT1BfVDEsIDApOwogICAgIH0KLSAgICAKLSAgICBBc3NlbWJs
ZXJMYWJlbCBsYWJlbEZvcldhdGNocG9pbnQoKQotICAgIHsKLSAgICAgICAgQXNzZW1ibGVyTGFi
ZWwgcmVzdWx0ID0gbV9mb3JtYXR0ZXIubGFiZWwoKTsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0
PGludD4ocmVzdWx0Lm1fb2Zmc2V0KSAhPSBtX2luZGV4T2ZMYXN0V2F0Y2hwb2ludCkKLSAgICAg
ICAgICAgIHJlc3VsdCA9IGxhYmVsKCk7Ci0gICAgICAgIG1faW5kZXhPZkxhc3RXYXRjaHBvaW50
ID0gcmVzdWx0Lm1fb2Zmc2V0OwotICAgICAgICBtX2luZGV4T2ZUYWlsT2ZMYXN0V2F0Y2hwb2lu
dCA9IHJlc3VsdC5tX29mZnNldCArIG1heEp1bXBSZXBsYWNlbWVudFNpemUoKTsKLSAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICB9CiAKICAgICBBc3NlbWJsZXJMYWJlbCBsYWJlbCgpCiAgICAg
ewotICAgICAgICBBc3NlbWJsZXJMYWJlbCByZXN1bHQgPSBtX2Zvcm1hdHRlci5sYWJlbCgpOwot
ICAgICAgICB3aGlsZSAoVU5MSUtFTFkoc3RhdGljX2Nhc3Q8aW50PihyZXN1bHQubV9vZmZzZXQp
IDwgbV9pbmRleE9mVGFpbE9mTGFzdFdhdGNocG9pbnQpKSB7Ci0gICAgICAgICAgICBub3AoKTsK
LSAgICAgICAgICAgIHJlc3VsdCA9IG1fZm9ybWF0dGVyLmxhYmVsKCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgcmV0dXJuIG1fZm9ybWF0dGVyLmxhYmVsKCk7
CiAgICAgfQogICAgIAogICAgIEFzc2VtYmxlckxhYmVsIGFsaWduKGludCBhbGlnbm1lbnQpCkBA
IC0yMDg4LDMwICsyMDY3LDYgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJlYWRJbnQzMih3aGVyZSkpOwogICAgIH0KLSAgICAKLSAgICBz
dGF0aWMgdm9pZCByZXBsYWNlV2l0aEp1bXAodm9pZCogaW5zdHJ1Y3Rpb25TdGFydCwgdm9pZCog
dG8pCi0gICAgewotICAgICAgICBBU1NFUlQoIShiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihpbnN0
cnVjdGlvblN0YXJ0KSAmIDEpKTsKLSAgICAgICAgQVNTRVJUKCEoYml0d2lzZV9jYXN0PHVpbnRw
dHJfdD4odG8pICYgMSkpOwotICAgICAgICB1aW50MTZfdCogcHRyID0gcmVpbnRlcnByZXRfY2Fz
dDx1aW50MTZfdCo+KGluc3RydWN0aW9uU3RhcnQpICsgMjsKLSAgICAgICAgCi0gICAgICAgIC8v
IEVuc3VyZSB0aGF0IHdlJ3JlIG5vdCBpbiBvbmUgb2YgdGhvc2UgZXJyYXRhLXRyaWdnZXJpbmcg
dGhpbmdpZXMuIElmIHdlIGFyZSwgdGhlbgotICAgICAgICAvLyBwcmVwZW5kIGEgbm9wLgotICAg
ICAgICBib29sIHNwYW5zVHdvNEsgPSAoKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHB0cikg
JiAweGZmZikgPT0gMHgwMDIpOwotICAgICAgICAKLSAgICAgICAgaWYgKHNwYW5zVHdvNEspIHsK
LSAgICAgICAgICAgIHB0clstMl0gPSBPUF9OT1BfVDE7Ci0gICAgICAgICAgICBwdHIrKzsKLSAg
ICAgICAgfQotCi0gICAgICAgIGxpbmtKdW1wVDQocHRyLCB0byk7Ci0gICAgICAgIGNhY2hlRmx1
c2gocHRyIC0gMiwgc2l6ZW9mKHVpbnQxNl90KSAqIDIpOwotICAgIH0KLSAgICAKLSAgICBzdGF0
aWMgcHRyZGlmZl90IG1heEp1bXBSZXBsYWNlbWVudFNpemUoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIDY7Ci0gICAgfQogCiAgICAgdW5zaWduZWQgZGVidWdPZmZzZXQoKSB7IHJldHVybiBtX2Zv
cm1hdHRlci5kZWJ1Z09mZnNldCgpOyB9CiAKQEAgLTI2NDksOCArMjYwNCw2IEBAIHByaXZhdGU6
CiAKICAgICBWZWN0b3I8TGlua1JlY29yZD4gbV9qdW1wc1RvTGluazsKICAgICBWZWN0b3I8aW50
MzJfdD4gbV9vZmZzZXRzOwotICAgIGludCBtX2luZGV4T2ZMYXN0V2F0Y2hwb2ludDsKLSAgICBp
bnQgbV9pbmRleE9mVGFpbE9mTGFzdFdhdGNocG9pbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RN
YWNyb0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFj
dE1hY3JvQXNzZW1ibGVyLmgKaW5kZXggNzQ2MTgwNmY1MmE0NjUxNzhiMzRkNGRlNDA2ZDE2NzAy
N2U3MGYxZC4uYTAwMzljYjUyNmRkNzEwZWM1ZGUwOTNmNmJiMTU5MzgyZTQ5NTNkYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1i
bGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3Jv
QXNzZW1ibGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTQ4LDcgKzQ4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIExpbmtC
dWZmZXI7CiBjbGFzcyBSZXBhdGNoQnVmZmVyOwotY2xhc3MgV2F0Y2hwb2ludDsKIG5hbWVzcGFj
ZSBERkcgewogY2xhc3MgQ29ycmVjdGFibGVKdW1wUG9pbnQ7CiB9CkBAIC03MSw2ICs3MCw3IEBA
IHB1YmxpYzoKICAgICAvLyBUaGUgZm9sbG93aW5nIHR5cGVzIGFyZSB1c2VkIGFzIG9wZXJhbmRz
IHRvIE1hY3JvQXNzZW1ibGVyIG9wZXJhdGlvbnMsCiAgICAgLy8gZGVzY3JpYmluZyBpbW1lZGlh
dGUgIGFuZCBtZW1vcnkgb3BlcmFuZHMgdG8gdGhlIGluc3RydWN0aW9ucyB0byBiZSBwbGFudGVk
LgogCisKICAgICBlbnVtIFNjYWxlIHsKICAgICAgICAgVGltZXNPbmUsCiAgICAgICAgIFRpbWVz
VHdvLApAQCAtMjc5LDcgKzI3OSw2IEBAIHB1YmxpYzoKICAgICAgICAgZnJpZW5kIGNsYXNzIEp1
bXA7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBNYWNyb0Fzc2VtYmxlckNvZGVSZWY7CiAgICAgICAg
IGZyaWVuZCBjbGFzcyBMaW5rQnVmZmVyOwotICAgICAgICBmcmllbmQgY2xhc3MgV2F0Y2hwb2lu
dDsKIAogICAgIHB1YmxpYzoKICAgICAgICAgTGFiZWwoKQpAQCAtNTYwLDEzICs1NTksNiBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBMYWJlbCh0aGlzKTsKICAgICB9CiAgICAgCi0gICAgTGFi
ZWwgd2F0Y2hwb2ludExhYmVsKCkKLSAgICB7Ci0gICAgICAgIExhYmVsIHJlc3VsdDsKLSAgICAg
ICAgcmVzdWx0Lm1fbGFiZWwgPSBtX2Fzc2VtYmxlci5sYWJlbEZvcldhdGNocG9pbnQoKTsKLSAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCiAgICAgTGFiZWwgYWxpZ24oKQogICAg
IHsKICAgICAgICAgbV9hc3NlbWJsZXIuYWxpZ24oMTYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmgKaW5kZXggNmJjMWIzOTI0ZGRjMTkx
MzI5ZjI2NDY5ODVkZWExNzc5YTEwNmYwNS4uZDFkZWVmMjM0NGFmMmRhYmFjMGU1OWE1NmIyMTkz
MjIwMzA5ODk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9B
c3NlbWJsZXJCdWZmZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fz
c2VtYmxlckJ1ZmZlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yOCwxMSArMjgsMTEgQEAKIAogI2lmIEVOQUJMRShBU1NFTUJMRVIp
CiAKLSNpbmNsdWRlICJFeGVjdXRhYmxlQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiSklUQ29tcGls
YXRpb25FZmZvcnQuaCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNsdWRlICJzdGRp
bnQuaCIKICNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxqaXQvRXhlY3V0YWJsZUFsbG9j
YXRvci5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RN
YWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgKaW5kZXggNTZjODY0
MmIxOWEzNjQ0YWQ4NjdiMWViMDJiYjM1YWIzZTQ5OTJiMS4uMTc3NWNiNGNmZjU4NDFiZjUzYWVi
ZTU2ZDc0OGY2YjU4M2Q5ZGIyYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaApAQCAtMTAxMCwxNyArMTAxMCw2IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCgqKSgp
PihBUk1Bc3NlbWJsZXI6OnJlYWRDYWxsVGFyZ2V0KGNhbGwuZGF0YUxvY2F0aW9uKCkpKSk7CiAg
ICAgfQogCi0gICAgc3RhdGljIHZvaWQgcmVwbGFjZVdpdGhKdW1wKENvZGVMb2NhdGlvbkxhYmVs
IGluc3RydWN0aW9uU3RhcnQsIENvZGVMb2NhdGlvbkxhYmVsIGRlc3RpbmF0aW9uKQotICAgIHsK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotICAgIAotICAgIHN0YXRpYyBw
dHJkaWZmX3QgbWF4SnVtcFJlcGxhY2VtZW50U2l6ZSgpCi0gICAgewotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCiBwcm90ZWN0ZWQ6CiAg
ICAgQVJNQXNzZW1ibGVyOjpDb25kaXRpb24gQVJNQ29uZGl0aW9uKFJlbGF0aW9uYWxDb25kaXRp
b24gY29uZCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IGIyNmI5MjViZjVjNGIzZDEyZmQ0ZjRjMTFk
NzVmYTc4ZjkwNjllMTYuLjNiNjJjYjViZTM0YjcyODAzZTYxN2FhY2JiN2U0YTk0MzlmMzI5MGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk12Ny5oCkBAIC0xMTg2LDE2ICsxMTg2LDYgQEAgcHVibGljOgogICAgIHsKICAgICAg
ICAgbV9hc3NlbWJsZXIubm9wKCk7CiAgICAgfQotICAgIAotICAgIHN0YXRpYyB2b2lkIHJlcGxh
Y2VXaXRoSnVtcChDb2RlTG9jYXRpb25MYWJlbCBpbnN0cnVjdGlvblN0YXJ0LCBDb2RlTG9jYXRp
b25MYWJlbCBkZXN0aW5hdGlvbikKLSAgICB7Ci0gICAgICAgIEFSTXY3QXNzZW1ibGVyOjpyZXBs
YWNlV2l0aEp1bXAoaW5zdHJ1Y3Rpb25TdGFydC5kYXRhTG9jYXRpb24oKSwgZGVzdGluYXRpb24u
ZGF0YUxvY2F0aW9uKCkpOwotICAgIH0KLSAgICAKLSAgICBzdGF0aWMgcHRyZGlmZl90IG1heEp1
bXBSZXBsYWNlbWVudFNpemUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEFSTXY3QXNzZW1ibGVy
OjptYXhKdW1wUmVwbGFjZW1lbnRTaXplKCk7Ci0gICAgfQogCiAgICAgLy8gRm9yd2FyZHMgLyBl
eHRlcm5hbCBjb250cm9sIGZsb3cgb3BlcmF0aW9uczoKICAgICAvLwpAQCAtMTM2NiwxNCArMTM1
Niw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3QzMihjb25kLCBhZGRyZXNz
VGVtcFJlZ2lzdGVyLCBtYXNrKTsKICAgICB9CiAKLSAgICBKdW1wIGJyYW5jaFRlc3Q4KFJlc3Vs
dENvbmRpdGlvbiBjb25kLCBBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcywgVHJ1c3RlZEltbTMyIG1h
c2sgPSBUcnVzdGVkSW1tMzIoLTEpKQotICAgIHsKLSAgICAgICAgLy8gdXNlIGFkZHJlc3NUZW1w
UmVnaXN0ZXIgaW5jYXNlIHRoZSBicmFuY2hUZXN0OCB3ZSBjYWxsIHVzZXMgZGF0YVRlbXBSZWdp
c3Rlci4gOi0vCi0gICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgYWRk
cmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAgICAgIGxvYWQ4KEFkZHJlc3MoYWRkcmVzc1RlbXBSZWdp
c3RlciksIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwotICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDMy
KGNvbmQsIGFkZHJlc3NUZW1wUmVnaXN0ZXIsIG1hc2spOwotICAgIH0KLQogICAgIHZvaWQganVt
cChSZWdpc3RlcklEIHRhcmdldCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmJ4KHRhcmdl
dCk7CkBAIC0xNjk3LDE0ICsxNjc5LDEyIEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBBTFdB
WVNfSU5MSU5FIEp1bXAganVtcCgpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5sYWJlbCgp
OyAvLyBGb3JjZSBub3AtcGFkZGluZyBpZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGEgd2F0Y2hw
b2ludC4KICAgICAgICAgbW92ZUZpeGVkV2lkdGhFbmNvZGluZyhUcnVzdGVkSW1tMzIoMCksIGRh
dGFUZW1wUmVnaXN0ZXIpOwogICAgICAgICByZXR1cm4gSnVtcChtX2Fzc2VtYmxlci5ieChkYXRh
VGVtcFJlZ2lzdGVyKSwgbV9tYWtlSnVtcFBhdGNoYWJsZSA/IEFSTXY3QXNzZW1ibGVyOjpKdW1w
Tm9Db25kaXRpb25GaXhlZFNpemUgOiBBUk12N0Fzc2VtYmxlcjo6SnVtcE5vQ29uZGl0aW9uKTsK
ICAgICB9CiAKICAgICBBTFdBWVNfSU5MSU5FIEp1bXAgbWFrZUJyYW5jaChBUk12N0Fzc2VtYmxl
cjo6Q29uZGl0aW9uIGNvbmQpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5sYWJlbCgpOyAv
LyBGb3JjZSBub3AtcGFkZGluZyBpZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGEgd2F0Y2hwb2lu
dC4KICAgICAgICAgbV9hc3NlbWJsZXIuaXQoY29uZCwgdHJ1ZSwgdHJ1ZSk7CiAgICAgICAgIG1v
dmVGaXhlZFdpZHRoRW5jb2RpbmcoVHJ1c3RlZEltbTMyKDApLCBkYXRhVGVtcFJlZ2lzdGVyKTsK
ICAgICAgICAgcmV0dXJuIEp1bXAobV9hc3NlbWJsZXIuYngoZGF0YVRlbXBSZWdpc3RlciksIG1f
bWFrZUp1bXBQYXRjaGFibGUgPyBBUk12N0Fzc2VtYmxlcjo6SnVtcENvbmRpdGlvbkZpeGVkU2l6
ZSA6IEFSTXY3QXNzZW1ibGVyOjpKdW1wQ29uZGl0aW9uLCBjb25kKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCmluZGV4IGU1
MGEwY2E0YmU3ZDRlZDVjYzkxMzhjZDY5NTE0YzM1NDNlZTUzNTkuLmY5YzM0NTdiNWZhNmE1OGUx
ZTdkN2IxNmZiYThlOWQ4ZGRhYjNkZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaApAQCAtMTg2OCwxNyArMTg2OCw2IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCgqKSgpPihNSVBTQXNzZW1ibGVyOjpyZWFkQ2FsbFRhcmdldChjYWxsLmRhdGFMb2NhdGlvbigp
KSkpOwogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIHJlcGxhY2VXaXRoSnVtcChDb2RlTG9jYXRp
b25MYWJlbCBpbnN0cnVjdGlvblN0YXJ0LCBDb2RlTG9jYXRpb25MYWJlbCBkZXN0aW5hdGlvbikK
LSAgICB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0KLSAgICAKLSAgICBz
dGF0aWMgcHRyZGlmZl90IG1heEp1bXBSZXBsYWNlbWVudFNpemUoKQotICAgIHsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQogcHJpdmF0
ZToKICAgICAvLyBJZiBtX2ZpeGVkV2lkdGggaXMgdHJ1ZSwgd2Ugd2lsbCBnZW5lcmF0ZSBhIGZp
eGVkIG51bWJlciBvZiBpbnN0cnVjdGlvbnMuCiAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBjYW4gZW1p
dCBhbnkgbnVtYmVyIG9mIGluc3RydWN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaAppbmRleCBkZmY2ODk0ZGZjNTFkOWI5
MjA5ZGZjMjc1ZmY3NzQ0ZTY2NzI4MzcxLi5jMTMyYWQ2NDI3ZTA3M2ExZTdjOWQ0N2FhOWYyM2Rm
NzRkYmMzMGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyU0g0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclNINC5oCkBAIC0xOTcxLDE3ICsxOTcxLDYgQEAgdm9pZCBvcjMyKFRydXN0
ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgICAgIHJl
dHVybiBGdW5jdGlvblB0cihyZWludGVycHJldF9jYXN0PHZvaWQoKikoKT4oU0g0QXNzZW1ibGVy
OjpyZWFkQ2FsbFRhcmdldChjYWxsLmRhdGFMb2NhdGlvbigpKSkpOwogICAgIH0KIAotICAgIHN0
YXRpYyB2b2lkIHJlcGxhY2VXaXRoSnVtcChDb2RlTG9jYXRpb25MYWJlbCBpbnN0cnVjdGlvblN0
YXJ0LCBDb2RlTG9jYXRpb25MYWJlbCBkZXN0aW5hdGlvbikKLSAgICB7Ci0gICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgIH0KLSAgICAKLSAgICBzdGF0aWMgcHRyZGlmZl90IG1heEp1
bXBSZXBsYWNlbWVudFNpemUoKQotICAgIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQogcHJvdGVjdGVkOgogICAgIFNINEFzc2VtYmxl
cjo6Q29uZGl0aW9uIFNINENvbmRpdGlvbihSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQpCiAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4Ni5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Ni5oCmluZGV4IDNlYTQwYzk2N2MyNjdlZWI0YjRlNzkwMGI5NWM4NjRjM2IyNDBiNjguLjA4
OGZlMTk2YjlmODRhMmMyMzM3NWRlOWY4YTQzZjNjMmY3N2YwOTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODYuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2LmgKQEAgLTUxLDcg
KzUxLDYgQEAgcHVibGljOgogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpsb2Fk
RG91YmxlOwogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpzdG9yZURvdWJsZTsK
ICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6Y29udmVydEludDMyVG9Eb3VibGU7
Ci0gICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmJyYW5jaFRlc3Q4OwogCiAgICAg
dm9pZCBhZGQzMihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBk
ZXN0KQogICAgIHsKQEAgLTE2NiwxNiArMTY1LDYgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2Vt
Ymxlci5tb3ZsX2kzMnIoaW5pdGlhbFZhbHVlLmFzSW50cHRyKCksIGRlc3QpOwogICAgICAgICBy
ZXR1cm4gRGF0YUxhYmVsUHRyKHRoaXMpOwogICAgIH0KLSAgICAKLSAgICBKdW1wIGJyYW5jaFRl
c3Q4KFJlc3VsdENvbmRpdGlvbiBjb25kLCBBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcywgVHJ1c3Rl
ZEltbTMyIG1hc2sgPSBUcnVzdGVkSW1tMzIoLTEpKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1h
c2subV92YWx1ZSA+PSAtMTI4ICYmIG1hc2subV92YWx1ZSA8PSAyNTUpOwotICAgICAgICBpZiAo
bWFzay5tX3ZhbHVlID09IC0xKQotICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21wYl9pbSgwLCBh
ZGRyZXNzLm1fcHRyKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9hc3NlbWJsZXIudGVz
dGJfaW0obWFzay5tX3ZhbHVlLCBhZGRyZXNzLm1fcHRyKTsKLSAgICAgICAgcmV0dXJuIEp1bXAo
bV9hc3NlbWJsZXIuakNDKHg4NkNvbmRpdGlvbihjb25kKSkpOwotICAgIH0KIAogICAgIEp1bXAg
YnJhbmNoUHRyV2l0aFBhdGNoKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBs
ZWZ0LCBEYXRhTGFiZWxQdHImIGRhdGFMYWJlbCwgVHJ1c3RlZEltbVB0ciBpbml0aWFsUmlnaHRW
YWx1ZSA9IFRydXN0ZWRJbW1QdHIoMCkpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCmluZGV4IDQz
MjQ4OWRiY2QxMjc3M2UxNGNlNGQ0NzA0MDVhYmJmYzQ1NzA0YTQuLmUzOThkY2RhZDI5OTAxYjhl
NDk1MjYyZGVlMDYwMTVhNTVhNmZmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKQEAgLTE0MDgsMTYg
KzE0MDgsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm5vcCgpOwogICAgIH0KIAot
ICAgIHN0YXRpYyB2b2lkIHJlcGxhY2VXaXRoSnVtcChDb2RlTG9jYXRpb25MYWJlbCBpbnN0cnVj
dGlvblN0YXJ0LCBDb2RlTG9jYXRpb25MYWJlbCBkZXN0aW5hdGlvbikKLSAgICB7Ci0gICAgICAg
IFg4NkFzc2VtYmxlcjo6cmVwbGFjZVdpdGhKdW1wKGluc3RydWN0aW9uU3RhcnQuZXhlY3V0YWJs
ZUFkZHJlc3MoKSwgZGVzdGluYXRpb24uZXhlY3V0YWJsZUFkZHJlc3MoKSk7Ci0gICAgfQotICAg
IAotICAgIHN0YXRpYyBwdHJkaWZmX3QgbWF4SnVtcFJlcGxhY2VtZW50U2l6ZSgpCi0gICAgewot
ICAgICAgICByZXR1cm4gWDg2QXNzZW1ibGVyOjptYXhKdW1wUmVwbGFjZW1lbnRTaXplKCk7Ci0g
ICAgfQotCiBwcm90ZWN0ZWQ6CiAgICAgWDg2QXNzZW1ibGVyOjpDb25kaXRpb24geDg2Q29uZGl0
aW9uKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKaW5kZXggZmE5
NWIzMzViZWIxM2JjMWFjOWU5YTM0YmNhOTJlMzkzYTJkYzY3Ny4uNDE0NzlmOTk2ZmY1N2U5YjU4
ZjIyMWJkMGQ2ODk4MGVlNTBkZmI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEzLDEyICs1MTMsNiBAQCBw
dWJsaWM6CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjptb3ZlKGFkZHIsIHNjcmF0
Y2hSZWdpc3Rlcik7CiAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YnJh
bmNoVGVzdDgoY29uZCwgQmFzZUluZGV4KHNjcmF0Y2hSZWdpc3RlciwgYWRkcmVzcy5iYXNlLCBU
aW1lc09uZSksIG1hc2spOwogICAgIH0KLSAgICAKLSAgICBKdW1wIGJyYW5jaFRlc3Q4KFJlc3Vs
dENvbmRpdGlvbiBjb25kLCBBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcywgVHJ1c3RlZEltbTMyIG1h
c2sgPSBUcnVzdGVkSW1tMzIoLTEpKQotICAgIHsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJYODZD
b21tb246Om1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgc2NyYXRjaFJlZ2lzdGVy
KTsKLSAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpicmFuY2hUZXN0OChj
b25kLCBBZGRyZXNzKHNjcmF0Y2hSZWdpc3RlciksIG1hc2spOwotICAgIH0KIAogICAgIHN0YXRp
YyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludCgpIHsgcmV0dXJuIHRydWU7IH0KICAgICAvLyBT
ZWUgY29tbWVudCBvbiBNYWNyb0Fzc2VtYmxlckFSTXY3OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRU
cnVuY2F0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4
NkFzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJs
ZXIuaAppbmRleCA4YzU2MDY5NzJlYjllNjJhYTdiYjc2MWQ0M2MzMWIxNmVmNzUxNDRkLi5mZjhk
MjViY2Q0NGMyMzEyYzAwMWM4NDg5OTBjYjc3ZGI4MTUzZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0Nyw4ICsyNDcsNiBAQCBwcml2
YXRlOgogcHVibGljOgogCiAgICAgWDg2QXNzZW1ibGVyKCkKLSAgICAgICAgOiBtX2luZGV4T2ZM
YXN0V2F0Y2hwb2ludChJTlRfTUlOKQotICAgICAgICAsIG1faW5kZXhPZlRhaWxPZkxhc3RXYXRj
aHBvaW50KElOVF9NSU4pCiAgICAgewogICAgIH0KIApAQCAtODAwLDE0ICs3OTgsNiBAQCBwdWJs
aWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9HUk9VUDFfRWJJYiwgR1JPVVAx
X09QX0NNUCwgYmFzZSwgaW5kZXgsIHNjYWxlLCBvZmZzZXQpOwogICAgICAgICBtX2Zvcm1hdHRl
ci5pbW1lZGlhdGU4KGltbSk7CiAgICAgfQotICAgIAotI2lmIENQVShYODYpCi0gICAgdm9pZCBj
bXBiX2ltKGludCBpbW0sIGNvbnN0IHZvaWQqIGFkZHIpCi0gICAgewotICAgICAgICBtX2Zvcm1h
dHRlci5vbmVCeXRlT3AoT1BfR1JPVVAxX0ViSWIsIEdST1VQMV9PUF9DTVAsIGFkZHIpOwotICAg
ICAgICBtX2Zvcm1hdHRlci5pbW1lZGlhdGU4KGltbSk7Ci0gICAgfQotI2VuZGlmCiAKICAgICB2
b2lkIGNtcGxfaW0oaW50IGltbSwgaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3Rl
cklEIGluZGV4LCBpbnQgc2NhbGUpCiAgICAgewpAQCAtOTU4LDE0ICs5NDgsNiBAQCBwdWJsaWM6
CiAgICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0ZTgoaW1tKTsKICAgICB9CiAKLSNpZiBDUFUo
WDg2KQotICAgIHZvaWQgdGVzdGJfaW0oaW50IGltbSwgY29uc3Qgdm9pZCogYWRkcikKLSAgICB7
Ci0gICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9HUk9VUDNfRWJJYiwgR1JPVVAzX09Q
X1RFU1QsIGFkZHIpOwotICAgICAgICBtX2Zvcm1hdHRlci5pbW1lZGlhdGU4KGltbSk7Ci0gICAg
fQotI2VuZGlmCi0KICAgICB2b2lkIHRlc3RsX2kzMm0oaW50IGltbSwgaW50IG9mZnNldCwgUmVn
aXN0ZXJJRCBiYXNlLCBSZWdpc3RlcklEIGluZGV4LCBpbnQgc2NhbGUpCiAgICAgewogICAgICAg
ICBtX2Zvcm1hdHRlci5vbmVCeXRlT3AoT1BfR1JPVVAzX0V2SXosIEdST1VQM19PUF9URVNULCBi
YXNlLCBpbmRleCwgc2NhbGUsIG9mZnNldCk7CkBAIC0xNzIwLDI1ICsxNzAyLDEwIEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgICAgIHJldHVybiBtX2Zvcm1hdHRlci5jb2RlU2l6ZSgpOwogICAgIH0K
LSAgICAKLSAgICBBc3NlbWJsZXJMYWJlbCBsYWJlbEZvcldhdGNocG9pbnQoKQotICAgIHsKLSAg
ICAgICAgQXNzZW1ibGVyTGFiZWwgcmVzdWx0ID0gbV9mb3JtYXR0ZXIubGFiZWwoKTsKLSAgICAg
ICAgaWYgKHN0YXRpY19jYXN0PGludD4ocmVzdWx0Lm1fb2Zmc2V0KSAhPSBtX2luZGV4T2ZMYXN0
V2F0Y2hwb2ludCkKLSAgICAgICAgICAgIHJlc3VsdCA9IGxhYmVsKCk7Ci0gICAgICAgIG1faW5k
ZXhPZkxhc3RXYXRjaHBvaW50ID0gcmVzdWx0Lm1fb2Zmc2V0OwotICAgICAgICBtX2luZGV4T2ZU
YWlsT2ZMYXN0V2F0Y2hwb2ludCA9IHJlc3VsdC5tX29mZnNldCArIG1heEp1bXBSZXBsYWNlbWVu
dFNpemUoKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9CiAKICAgICBBc3NlbWJsZXJM
YWJlbCBsYWJlbCgpCiAgICAgewotICAgICAgICBBc3NlbWJsZXJMYWJlbCByZXN1bHQgPSBtX2Zv
cm1hdHRlci5sYWJlbCgpOwotICAgICAgICB3aGlsZSAoVU5MSUtFTFkoc3RhdGljX2Nhc3Q8aW50
PihyZXN1bHQubV9vZmZzZXQpIDwgbV9pbmRleE9mVGFpbE9mTGFzdFdhdGNocG9pbnQpKSB7Ci0g
ICAgICAgICAgICBub3AoKTsKLSAgICAgICAgICAgIHJlc3VsdCA9IG1fZm9ybWF0dGVyLmxhYmVs
KCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgcmV0dXJuIG1f
Zm9ybWF0dGVyLmxhYmVsKCk7CiAgICAgfQogCiAgICAgQXNzZW1ibGVyTGFiZWwgYWxpZ24oaW50
IGFsaWdubWVudCkKQEAgLTE4MjAsMjAgKzE3ODcsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PHZvaWQqKj4od2hlcmUpWy0xXTsKICAgICB9CiAKLSAgICBzdGF0
aWMgdm9pZCByZXBsYWNlV2l0aEp1bXAodm9pZCogaW5zdHJ1Y3Rpb25TdGFydCwgdm9pZCogdG8p
Ci0gICAgewotICAgICAgICB1aW50OF90KiBwdHIgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3Qq
PihpbnN0cnVjdGlvblN0YXJ0KTsKLSAgICAgICAgdWludDhfdCogZHN0UHRyID0gcmVpbnRlcnBy
ZXRfY2FzdDx1aW50OF90Kj4odG8pOwotICAgICAgICBpbnRwdHJfdCBkaXN0YW5jZSA9IChpbnRw
dHJfdCkoZHN0UHRyIC0gKHB0ciArIDUpKTsKLSAgICAgICAgcHRyWzBdID0gc3RhdGljX2Nhc3Q8
dWludDhfdD4oT1BfSk1QX3JlbDMyKTsKLSAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJf
dCo+KHB0ciArIDEpID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oZGlzdGFuY2UpOwotICAgIH0KLSAg
ICAKLSAgICBzdGF0aWMgcHRyZGlmZl90IG1heEp1bXBSZXBsYWNlbWVudFNpemUoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIDU7Ci0gICAgfQotICAgIAogICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRD
YWxsUmV0dXJuT2Zmc2V0KEFzc2VtYmxlckxhYmVsIGNhbGwpCiAgICAgewogICAgICAgICBBU1NF
UlQoY2FsbC5pc1NldCgpKTsKQEAgLTIzODYsOCArMjMzOSw2IEBAIHByaXZhdGU6CiAKICAgICAg
ICAgQXNzZW1ibGVyQnVmZmVyIG1fYnVmZmVyOwogICAgIH0gbV9mb3JtYXR0ZXI7Ci0gICAgaW50
IG1faW5kZXhPZkxhc3RXYXRjaHBvaW50OwotICAgIGludCBtX2luZGV4T2ZUYWlsT2ZMYXN0V2F0
Y2hwb2ludDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRleCAxNTVlNmRkYTFkZGFhNjMxNzMzODgyNWI0
YjQwOTU0NzU5ZGM5MTU2Li45MTAwMTA5M2VjYjY5NTM5MDg4ZTMzNGY2NWM0Y2Q2M2JmNDc2MDhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAt
OTI4LDI4ICs5MjgsMTIgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXAoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBWZWN0b3I8SW5zdHJ1Y3Rpb24+Ojpjb25zdF9pdGVyYXRvciYKICAgICAgICAgICAgIGl0
Kys7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIG9wX2dldF9n
bG9iYWxfdmFyX3dhdGNoYWJsZTogewotICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9w
ZXJhbmQ7Ci0gICAgICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIHJlZ2lzdGVyUG9pbnRl
ciA9ICgrK2l0KS0+dS5yZWdpc3RlclBvaW50ZXI7Ci0gICAgICAgICAgICBkYXRhTG9nKCJbJTRk
XSBnZXRfZ2xvYmFsX3Zhcl93YXRjaGFibGVcdCAlcywgZyVkKCVwKVxuIiwgbG9jYXRpb24sIHJl
Z2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBtX2dsb2JhbE9iamVjdC0+ZmluZFJlZ2lzdGVy
SW5kZXgocmVnaXN0ZXJQb2ludGVyKSwgcmVnaXN0ZXJQb2ludGVyKTsKLSAgICAgICAgICAgIGl0
Kys7Ci0gICAgICAgICAgICBpdCsrOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KICAg
ICAgICAgY2FzZSBvcF9wdXRfZ2xvYmFsX3ZhcjogewogICAgICAgICAgICAgV3JpdGVCYXJyaWVy
PFVua25vd24+KiByZWdpc3RlclBvaW50ZXIgPSAoKytpdCktPnUucmVnaXN0ZXJQb2ludGVyOwog
ICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBkYXRh
TG9nKCJbJTRkXSBwdXRfZ2xvYmFsX3Zhclx0IGclZCglcCksICVzXG4iLCBsb2NhdGlvbiwgbV9n
bG9iYWxPYmplY3QtPmZpbmRSZWdpc3RlckluZGV4KHJlZ2lzdGVyUG9pbnRlciksIHJlZ2lzdGVy
UG9pbnRlciwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBvcF9wdXRfZ2xvYmFsX3Zhcl9jaGVjazogewot
ICAgICAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiByZWdpc3RlclBvaW50ZXIgPSAoKytp
dCktPnUucmVnaXN0ZXJQb2ludGVyOwotICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9w
ZXJhbmQ7Ci0gICAgICAgICAgICBkYXRhTG9nKCJbJTRkXSBwdXRfZ2xvYmFsX3Zhcl9jaGVja1x0
IGclZCglcCksICVzXG4iLCBsb2NhdGlvbiwgbV9nbG9iYWxPYmplY3QtPmZpbmRSZWdpc3Rlcklu
ZGV4KHJlZ2lzdGVyUG9pbnRlciksIHJlZ2lzdGVyUG9pbnRlciwgcmVnaXN0ZXJOYW1lKGV4ZWMs
IHIwKS5kYXRhKCkpOwotICAgICAgICAgICAgaXQrKzsKLSAgICAgICAgICAgIGl0Kys7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Jlc29sdmVfYmFzZTog
ewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBp
bnQgaWQwID0gKCsraXQpLT51Lm9wZXJhbmQ7CkBAIC0xMzIyLDcgKzEzMDYsNyBAQCB2b2lkIENv
ZGVCbG9jazo6ZHVtcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFZlY3RvcjxJbnN0cnVjdGlvbj46
OmNvbnN0X2l0ZXJhdG9yJgogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfY2FsbF9wdXRfcmVz
dWx0OiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAg
ICAgIGRhdGFMb2coIlslNGRdIGNhbGxfcHV0X3Jlc3VsdFx0XHQgJXNcbiIsIGxvY2F0aW9uLCBy
ZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7CisgICAgICAgICAgICBkYXRhTG9nKCJbJTRk
XSBvcF9jYWxsX3B1dF9yZXN1bHRcdFx0ICVzXG4iLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4
ZWMsIHIwKS5kYXRhKCkpOwogICAgICAgICAgICAgaXQrKzsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKaW5k
ZXggYWE3MjRmY2YxOWQxZmRmZGFjZmI1ZDRkM2U5ZWE5MWFlMDExYzY4Yi4uNzQyMGUyMzcyY2Iw
Zjg0MDA5MTI4NTk1MTVmNmIyOTVmZDhhN2NjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suaApAQCAtNjIsNyArNjIsNiBAQAogI2luY2x1ZGUgIlVTdHJpbmcu
aCIKICNpbmNsdWRlICJVbmNvbmRpdGlvbmFsRmluYWxpemVyLmgiCiAjaW5jbHVkZSAiVmFsdWVQ
cm9maWxlLmgiCi0jaW5jbHVkZSAiV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmFzdEFsbG9jQmFzZS5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CkBAIC0yNzQsMTIgKzI3MywxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHVu
c2lnbmVkIGFwcGVuZE9TUkV4aXQoY29uc3QgREZHOjpPU1JFeGl0JiBvc3JFeGl0KQorICAgICAg
ICB2b2lkIGFwcGVuZE9TUkV4aXQoY29uc3QgREZHOjpPU1JFeGl0JiBvc3JFeGl0KQogICAgICAg
ICB7CiAgICAgICAgICAgICBjcmVhdGVERkdEYXRhSWZOZWNlc3NhcnkoKTsKLSAgICAgICAgICAg
IHVuc2lnbmVkIHJlc3VsdCA9IG1fZGZnRGF0YS0+b3NyRXhpdC5zaXplKCk7CiAgICAgICAgICAg
ICBtX2RmZ0RhdGEtPm9zckV4aXQuYXBwZW5kKG9zckV4aXQpOwotICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgREZHOjpPU1JFeGl0JiBsYXN0
T1NSRXhpdCgpCkBAIC0yODcsMjAgKzI4NCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
ICAgIHJldHVybiBtX2RmZ0RhdGEtPm9zckV4aXQubGFzdCgpOwogICAgICAgICB9CiAgICAgICAg
IAotICAgICAgICB1bnNpZ25lZCBhcHBlbmRTcGVjdWxhdGlvblJlY292ZXJ5KGNvbnN0IERGRzo6
U3BlY3VsYXRpb25SZWNvdmVyeSYgcmVjb3ZlcnkpCisgICAgICAgIHZvaWQgYXBwZW5kU3BlY3Vs
YXRpb25SZWNvdmVyeShjb25zdCBERkc6OlNwZWN1bGF0aW9uUmVjb3ZlcnkmIHJlY292ZXJ5KQog
ICAgICAgICB7CiAgICAgICAgICAgICBjcmVhdGVERkdEYXRhSWZOZWNlc3NhcnkoKTsKLSAgICAg
ICAgICAgIHVuc2lnbmVkIHJlc3VsdCA9IG1fZGZnRGF0YS0+c3BlY3VsYXRpb25SZWNvdmVyeS5z
aXplKCk7CiAgICAgICAgICAgICBtX2RmZ0RhdGEtPnNwZWN1bGF0aW9uUmVjb3ZlcnkuYXBwZW5k
KHJlY292ZXJ5KTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAg
ICAgCi0gICAgICAgIHVuc2lnbmVkIGFwcGVuZFdhdGNocG9pbnQoY29uc3QgV2F0Y2hwb2ludCYg
d2F0Y2hwb2ludCkKLSAgICAgICAgewotICAgICAgICAgICAgY3JlYXRlREZHRGF0YUlmTmVjZXNz
YXJ5KCk7Ci0gICAgICAgICAgICB1bnNpZ25lZCByZXN1bHQgPSBtX2RmZ0RhdGEtPndhdGNocG9p
bnRzLnNpemUoKTsKLSAgICAgICAgICAgIG1fZGZnRGF0YS0+d2F0Y2hwb2ludHMuYXBwZW5kKHdh
dGNocG9pbnQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZPU1JFeGl0cygpCkBAIC0zMTcsMTMgKzMwNCw2
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIG1fZGZnRGF0YS0+c3BlY3Vs
YXRpb25SZWNvdmVyeS5zaXplKCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHVuc2ln
bmVkIG51bWJlck9mV2F0Y2hwb2ludHMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIW1f
ZGZnRGF0YSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIHJldHVybiBt
X2RmZ0RhdGEtPndhdGNocG9pbnRzLnNpemUoKTsKLSAgICAgICAgfQotICAgICAgICAKICAgICAg
ICAgREZHOjpPU1JFeGl0JiBvc3JFeGl0KHVuc2lnbmVkIGluZGV4KQogICAgICAgICB7CiAgICAg
ICAgICAgICByZXR1cm4gbV9kZmdEYXRhLT5vc3JFeGl0W2luZGV4XTsKQEAgLTMzNCwxMSArMzE0
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gbV9kZmdEYXRhLT5zcGVj
dWxhdGlvblJlY292ZXJ5W2luZGV4XTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgV2F0
Y2hwb2ludCYgd2F0Y2hwb2ludCh1bnNpZ25lZCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIG1fZGZnRGF0YS0+d2F0Y2hwb2ludHNbaW5kZXhdOwotICAgICAgICB9Ci0gICAg
ICAgIAogICAgICAgICB2b2lkIGFwcGVuZFdlYWtSZWZlcmVuY2UoSlNDZWxsKiB0YXJnZXQpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGNyZWF0ZURGR0RhdGFJZk5lY2Vzc2FyeSgpOwpAQCAtMTI2
Myw3ICsxMjM4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBWZWN0b3I8REZHOjpP
U1JFbnRyeURhdGE+IG9zckVudHJ5OwogICAgICAgICAgICAgU2VnbWVudGVkVmVjdG9yPERGRzo6
T1NSRXhpdCwgOD4gb3NyRXhpdDsKICAgICAgICAgICAgIFZlY3RvcjxERkc6OlNwZWN1bGF0aW9u
UmVjb3Zlcnk+IHNwZWN1bGF0aW9uUmVjb3Zlcnk7Ci0gICAgICAgICAgICBTZWdtZW50ZWRWZWN0
b3I8V2F0Y2hwb2ludCwgMSwgMD4gd2F0Y2hwb2ludHM7CiAgICAgICAgICAgICBWZWN0b3I8V2Vh
a1JlZmVyZW5jZVRyYW5zaXRpb24+IHRyYW5zaXRpb25zOwogICAgICAgICAgICAgVmVjdG9yPFdy
aXRlQmFycmllcjxKU0NlbGw+ID4gd2Vha1JlZmVyZW5jZXM7CiAgICAgICAgICAgICBib29sIG1h
eUJlRXhlY3V0aW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0RGR0V4aXRQcm9maWxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhp
dFByb2ZpbGUuaAppbmRleCBkNzUxY2U2NTQ3MmE1Mzg4MzQxNjcyZTEzNzBmYzM5OTlmYTA3Yjlm
Li4wOWY5ZWUwNzU3YjY5NjU3MjM2NTRmYTBiMGNkZTQzMWViYzZhNmRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaApAQCAtNDEsNyArNDEs
NiBAQCBlbnVtIEV4aXRLaW5kIHsKICAgICBJbmFkZXF1YXRlQ292ZXJhZ2UsIC8vIFdlIGV4aXRl
ZCBiZWNhdXNlIHdlIGVuZGVkIHVwIGluIGNvZGUgdGhhdCBkaWRuJ3QgaGF2ZSBwcm9maWxpbmcg
Y292ZXJhZ2UuCiAgICAgQXJndW1lbnRzRXNjYXBlZCwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYXJn
dW1lbnRzIGVzY2FwZWQgYnV0IHdlIGRpZG4ndCBleHBlY3QgdGhlbSB0by4KICAgICBVbmNvdW50
YWJsZSwgLy8gV2UgZXhpdGVkIGZvciBub25lIG9mIHRoZSBhYm92ZSByZWFzb25zLCBhbmQgd2Ug
c2hvdWxkIG5vdCBjb3VudCBpdC4gTW9zdCB1c2VzIG9mIHRoaXMgc2hvdWxkIGJlIHZpZXdlZCBh
cyBhIEZJWE1FLgotICAgIFVuY291bnRhYmxlV2F0Y2hwb2ludCAvLyBXZSBleGl0ZWQgYmVjYXVz
ZSBvZiBhIHdhdGNocG9pbnQsIHdoaWNoIGlzbid0IGNvdW50ZWQgYmVjYXVzZSB3YXRjaHBvaW50
cyBkbyB0cmFja2luZyB0aGVtc2VsdmVzLgogfTsKIAogaW5saW5lIGNvbnN0IGNoYXIqIGV4aXRL
aW5kVG9TdHJpbmcoRXhpdEtpbmQga2luZCkKQEAgLTU5LDEyICs1OCw2IEBAIGlubGluZSBjb25z
dCBjaGFyKiBleGl0S2luZFRvU3RyaW5nKEV4aXRLaW5kIGtpbmQpCiAgICAgICAgIHJldHVybiAi
TmVnYXRpdmVaZXJvIjsKICAgICBjYXNlIEluYWRlcXVhdGVDb3ZlcmFnZToKICAgICAgICAgcmV0
dXJuICJJbmFkZXF1YXRlQ292ZXJhZ2UiOwotICAgIGNhc2UgQXJndW1lbnRzRXNjYXBlZDoKLSAg
ICAgICAgcmV0dXJuICJBcmd1bWVudHNFc2NhcGVkIjsKLSAgICBjYXNlIFVuY291bnRhYmxlOgot
ICAgICAgICByZXR1cm4gIlVuY291bnRhYmxlIjsKLSAgICBjYXNlIFVuY291bnRhYmxlV2F0Y2hw
b2ludDoKLSAgICAgICAgcmV0dXJuICJVbmNvdW50YWJsZVdhdGNocG9pbnQiOwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIHJldHVybiAiVW5rbm93biI7CiAgICAgfQpAQCAtNzcsNyArNzAsNiBAQCBp
bmxpbmUgYm9vbCBleGl0S2luZElzQ291bnRhYmxlKEV4aXRLaW5kIGtpbmQpCiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIGNhc2UgQmFkVHlwZToKICAgICBjYXNlIFVuY291bnRh
YmxlOgotICAgIGNhc2UgVW5jb3VudGFibGVXYXRjaHBvaW50OgogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5zdHJ1Y3Rpb24uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9JbnN0cnVjdGlvbi5oCmluZGV4IDZlNzY1MTJmZjYwNWJkNzRiZWU2
OTAxNmNkMjMzMzI3ZjA2Y2RkYWYuLmFmNDU1MTA4MzA1MWM2YjIyNDkxMDRiMGM4NDg1NTMwMDQz
NmU2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnN0cnVj
dGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnN0cnVjdGlvbi5o
CkBAIC0xOTMsOCArMTkzLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEluc3RydWN0aW9u
KFZhbHVlUHJvZmlsZSogcHJvZmlsZSkgeyB1LnByb2ZpbGUgPSBwcm9maWxlOyB9CiAgICAgICAg
IAogICAgICAgICBJbnN0cnVjdGlvbihXcml0ZUJhcnJpZXI8VW5rbm93bj4qIHJlZ2lzdGVyUG9p
bnRlcikgeyB1LnJlZ2lzdGVyUG9pbnRlciA9IHJlZ2lzdGVyUG9pbnRlcjsgfQotICAgICAgICAK
LSAgICAgICAgSW5zdHJ1Y3Rpb24oYm9vbCogcHJlZGljYXRlUG9pbnRlcikgeyB1LnByZWRpY2F0
ZVBvaW50ZXIgPSBwcmVkaWNhdGVQb2ludGVyOyB9CiAKICAgICAgICAgdW5pb24gewogICAgICAg
ICAgICAgT3Bjb2RlIG9wY29kZTsKQEAgLTIwNyw3ICsyMDUsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgICAgIExMSW50Q2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm87CiAgICAgICAgICAg
ICBWYWx1ZVByb2ZpbGUqIHByb2ZpbGU7CiAgICAgICAgICAgICB2b2lkKiBwb2ludGVyOwotICAg
ICAgICAgICAgYm9vbCogcHJlZGljYXRlUG9pbnRlcjsKICAgICAgICAgfSB1OwogICAgICAgICAK
ICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L09wY29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCmluZGV4
IGUwY2ZmMTY1YTg4YzkzM2E1ODgzMDM4NmNiNTgxOGE2ZmU3YTEzMWEuLmFhODNkOWI5NzM3MGFk
Njk2ZjU2ZTViMmJlMTI5ZGQ0Mjc2OWVmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9PcGNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvT3Bjb2RlLmgKQEAgLTEwMCw5ICsxMDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
bWFjcm8ob3BfZ2V0X3Njb3BlZF92YXIsIDUpIC8qIGhhcyB2YWx1ZSBwcm9maWxpbmcgKi8gXAog
ICAgICAgICBtYWNybyhvcF9wdXRfc2NvcGVkX3ZhciwgNCkgXAogICAgICAgICBtYWNybyhvcF9n
ZXRfZ2xvYmFsX3ZhciwgNCkgLyogaGFzIHZhbHVlIHByb2ZpbGluZyAqLyBcCi0gICAgICAgIG1h
Y3JvKG9wX2dldF9nbG9iYWxfdmFyX3dhdGNoYWJsZSwgNSkgLyogaGFzIHZhbHVlIHByb2ZpbGlu
ZyAqLyBcCiAgICAgICAgIG1hY3JvKG9wX3B1dF9nbG9iYWxfdmFyLCAzKSBcCi0gICAgICAgIG1h
Y3JvKG9wX3B1dF9nbG9iYWxfdmFyX2NoZWNrLCA1KSBcCiAgICAgICAgIG1hY3JvKG9wX3Jlc29s
dmVfYmFzZSwgNSkgLyogaGFzIHZhbHVlIHByb2ZpbGluZyAqLyBcCiAgICAgICAgIG1hY3JvKG9w
X2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHMsIDMpIFwKICAgICAgICAgbWFjcm8ob3BfcmVzb2x2ZV93
aXRoX2Jhc2UsIDUpIC8qIGhhcyB2YWx1ZSBwcm9maWxpbmcgKi8gXApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0MjVjMTA1ZmE3NDUzZDk4MDY3NTc4YjgyZjcyOWJkYmIwMzNjOGZhLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0g
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXYXRjaHBvaW50LmgiCi0KLSNpbmNs
dWRlICJMaW5rQnVmZmVyLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1XYXRjaHBvaW50Ojp+V2F0
Y2hwb2ludCgpCi17Ci0gICAgaWYgKGlzT25MaXN0KCkpCi0gICAgICAgIHJlbW92ZSgpOwotfQot
Ci12b2lkIFdhdGNocG9pbnQ6OmNvcnJlY3RMYWJlbHMoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikK
LXsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbGFiZWw7Ci0gICAgbGFiZWwubV9sYWJlbC5t
X29mZnNldCA9IG1fc291cmNlOwotICAgIG1fc291cmNlID0gYml0d2lzZV9jYXN0PHVpbnRwdHJf
dD4obGlua0J1ZmZlci5sb2NhdGlvbk9mKGxhYmVsKS5kYXRhTG9jYXRpb24oKSk7Ci0gICAgbGFi
ZWwubV9sYWJlbC5tX29mZnNldCA9IG1fZGVzdGluYXRpb247Ci0gICAgbV9kZXN0aW5hdGlvbiA9
IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGxpbmtCdWZmZXIubG9jYXRpb25PZihsYWJlbCkuZGF0
YUxvY2F0aW9uKCkpOwotfQotCi12b2lkIFdhdGNocG9pbnQ6OmZpcmUoKQotewotICAgIE1hY3Jv
QXNzZW1ibGVyOjpyZXBsYWNlV2l0aEp1bXAoCi0gICAgICAgIENvZGVMb2NhdGlvbkxhYmVsKGJp
dHdpc2VfY2FzdDx2b2lkKj4obV9zb3VyY2UpKSwKLSAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwo
Yml0d2lzZV9jYXN0PHZvaWQqPihtX2Rlc3RpbmF0aW9uKSkpOwotICAgIGlmIChpc09uTGlzdCgp
KQotICAgICAgICByZW1vdmUoKTsKLX0KLQotV2F0Y2hwb2ludFNldDo6V2F0Y2hwb2ludFNldCgp
Ci0gICAgOiBtX2lzV2F0Y2hlZChmYWxzZSkKLSAgICAsIG1faXNJbnZhbGlkYXRlZChmYWxzZSkK
LXsKLX0KLQotV2F0Y2hwb2ludFNldDo6fldhdGNocG9pbnRTZXQoKQotewotICAgIC8vIEZpcmUg
YWxsIHdhdGNocG9pbnRzLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGl0IGlzIHBvc3NpYmxl
LCBzYXkgd2l0aAotICAgIC8vIHN0cnVjdHVyZSB3YXRjaHBvaW50cywgZm9yIHRoZSB3YXRjaHBv
aW50IHNldCBvd25lciB0byBkaWUgd2hpbGUgdGhlCi0gICAgLy8gd2F0Y2hwb2ludCBvd25lcnMg
YXJlIHN0aWxsIGxpdmUuCi0gICAgZmlyZUFsbFdhdGNocG9pbnRzKCk7Ci19Ci0KLXZvaWQgV2F0
Y2hwb2ludFNldDo6YWRkKFdhdGNocG9pbnQqIHdhdGNocG9pbnQpCi17Ci0gICAgaWYgKCF3YXRj
aHBvaW50KQotICAgICAgICByZXR1cm47Ci0gICAgbV9zZXQucHVzaCh3YXRjaHBvaW50KTsKLSAg
ICBtX2lzV2F0Y2hlZCA9IHRydWU7Ci19Ci0KLXZvaWQgV2F0Y2hwb2ludFNldDo6bm90aWZ5V3Jp
dGVTbG93KCkKLXsKLSAgICBBU1NFUlQobV9pc1dhdGNoZWQpOwotICAgIAotICAgIGZpcmVBbGxX
YXRjaHBvaW50cygpOwotICAgIG1faXNXYXRjaGVkID0gZmFsc2U7Ci0gICAgbV9pc0ludmFsaWRh
dGVkID0gdHJ1ZTsKLX0KLQotdm9pZCBXYXRjaHBvaW50U2V0OjpmaXJlQWxsV2F0Y2hwb2ludHMo
KQotewotICAgIHdoaWxlICghbV9zZXQuaXNFbXB0eSgpKQotICAgICAgICBtX3NldC5iZWdpbigp
LT5maXJlKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTRkZGRiYTQxMTVlYWEwNmM2MjZhYzBmN2UzNDU5NmFkZjQ0OTBiYi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvV2F0Y2hwb2ludC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwot
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgV2F0Y2hwb2ludF9oCi0jZGVmaW5lIFdhdGNocG9pbnRfaAotCi0jaW5jbHVkZSAiQ29kZUxv
Y2F0aW9uLmgiCi0jaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKLSNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9TZW50aW5lbExpbmtlZExpc3QuaD4KLQotbmFtZXNw
YWNlIEpTQyB7Ci0KLWNsYXNzIFdhdGNocG9pbnQgOiBwdWJsaWMgQmFzaWNSYXdTZW50aW5lbE5v
ZGU8V2F0Y2hwb2ludD4gewotcHVibGljOgotICAgIFdhdGNocG9pbnQoTWFjcm9Bc3NlbWJsZXI6
OkxhYmVsIHNvdXJjZSkKLSAgICAgICAgOiBtX3NvdXJjZShzb3VyY2UubV9sYWJlbC5tX29mZnNl
dCkKLSAgICAgICAgLCBtX2Rlc3RpbmF0aW9uKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludHB0cl90
Pjo6bWF4KCkpCi0gICAgewotICAgIH0KLSAgICAKLSAgICB2b2lkIHNldERlc3RpbmF0aW9uKE1h
Y3JvQXNzZW1ibGVyOjpMYWJlbCBkZXN0aW5hdGlvbikKLSAgICB7Ci0gICAgICAgIG1fZGVzdGlu
YXRpb24gPSBkZXN0aW5hdGlvbi5tX2xhYmVsLm1fb2Zmc2V0OwotICAgIH0KLSAgICAKLSAgICB2
b2lkIGNvcnJlY3RMYWJlbHMoTGlua0J1ZmZlciYpOwotICAgIAotICAgIH5XYXRjaHBvaW50KCk7
Ci0gICAgCi0gICAgdm9pZCBmaXJlKCk7Ci0gICAgCi1wcml2YXRlOgotICAgIHVpbnRwdHJfdCBt
X3NvdXJjZTsKLSAgICB1aW50cHRyX3QgbV9kZXN0aW5hdGlvbjsKLX07Ci0KLWNsYXNzIFdhdGNo
cG9pbnRTZXQgOiBwdWJsaWMgUmVmQ291bnRlZDxXYXRjaHBvaW50U2V0PiB7Ci1wdWJsaWM6Ci0g
ICAgV2F0Y2hwb2ludFNldCgpOwotICAgIH5XYXRjaHBvaW50U2V0KCk7Ci0gICAgCi0gICAgYm9v
bCBpc1N0aWxsVmFsaWQoKSBjb25zdCB7IHJldHVybiAhbV9pc0ludmFsaWRhdGVkOyB9Ci0gICAg
Ym9vbCBoYXNCZWVuSW52YWxpZGF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSW52YWxpZGF0ZWQ7
IH0KLSAgICAKLSAgICAvLyBBcyBhIGNvbnZlbmllbmNlLCB0aGlzIHdpbGwgaWdub3JlIDAuIFRo
YXQncyBiZWNhdXNlIGNvZGUgcGF0aHMgaW4gdGhlIERGRwotICAgIC8vIHRoYXQgY3JlYXRlIHNw
ZWN1bGF0aW9uIHdhdGNocG9pbnRzIG1heSBjaG9vc2UgdG8gYmFpbCBvdXQgaWYgc3BlY3VsYXRp
b24KLSAgICAvLyBoYWQgYWxyZWFkeSBiZWVuIHRlcm1pbmF0ZWQuCi0gICAgdm9pZCBhZGQoV2F0
Y2hwb2ludCopOwotICAgIAotICAgIC8vIEZvcmNlIHRoZSB3YXRjaHBvaW50IHNldCB0byBiZWhh
dmUgYXMgaWYgaXQgd2FzIGJlaW5nIHdhdGNoZWQgZXZlbiBpZiBubwotICAgIC8vIHdhdGNocG9p
bnRzIGhhdmUgYmVlbiBpbnN0YWxsZWQuIFRoaXMgd2lsbCByZXN1bHQgaW4gaW52YWxpZGF0aW9u
IGlmIHRoZQotICAgIC8vIHdhdGNocG9pbnQgd291bGQgaGF2ZSBmaXJlZC4gVGhhdCdzIGEgcHJl
dHR5IGdvb2QgaW5kaWNhdGlvbiB0aGF0IHlvdQotICAgIC8vIHByb2JhYmx5IGRvbid0IHdhbnQg
dG8gc2V0IHdhdGNocG9pbnRzLCBzaW5jZSB3ZSB0eXBpY2FsbHkgZG9uJ3Qgd2FudCB0bwotICAg
IC8vIHNldCB3YXRjaHBvaW50cyB0aGF0IHdlIGJlbGlldmUgd2lsbCBhY3R1YWxseSBiZSBmaXJl
ZC4KLSAgICB2b2lkIHN0YXJ0V2F0Y2hpbmcoKSB7IG1faXNXYXRjaGVkID0gdHJ1ZTsgfQotICAg
IAotICAgIHZvaWQgbm90aWZ5V3JpdGUoKQotICAgIHsKLSAgICAgICAgaWYgKCFtX2lzV2F0Y2hl
ZCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbm90aWZ5V3JpdGVTbG93KCk7Ci0gICAg
fQotICAgIAotICAgIGJvb2wqIGFkZHJlc3NPZklzV2F0Y2hlZCgpIHsgcmV0dXJuICZtX2lzV2F0
Y2hlZDsgfQotICAgIAotICAgIHZvaWQgbm90aWZ5V3JpdGVTbG93KCk7IC8vIENhbGwgb25seSBp
ZiB5b3UndmUgY2hlY2tlZCBpc1dhdGNoZWQuCi0gICAgCi1wcml2YXRlOgotICAgIHZvaWQgZmly
ZUFsbFdhdGNocG9pbnRzKCk7Ci0gICAgCi0gICAgU2VudGluZWxMaW5rZWRMaXN0PFdhdGNocG9p
bnQsIEJhc2ljUmF3U2VudGluZWxOb2RlPFdhdGNocG9pbnQ+ID4gbV9zZXQ7Ci0gICAgYm9vbCBt
X2lzV2F0Y2hlZDsKLSAgICBib29sIG1faXNJbnZhbGlkYXRlZDsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIEpTQwotCi0jZW5kaWYgLy8gV2F0Y2hwb2ludF9oCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXgg
ODk2OWE3ZjI1YjI3ZTlmY2U5NjU1MGFlZDU1ZjEyNzNjMDQ3ZTJmYS4uYzRmN2ZhZjQyNGMzOGI4
MjE5MzU3ZjY0YmQ1ZDYyMjc3NTRiZWQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAgLTE0OCw3ICsx
NDgsNiBAQCB2b2lkIFJlc29sdmVSZXN1bHQ6OmNoZWNrVmFsaWRpdHkoKQogICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBJbmRleGVkR2xvYmFsOgogICAgIGNhc2UgUmVhZE9ubHlJbmRleGVkR2xv
YmFsOgotICAgIGNhc2UgV2F0Y2hlZEluZGV4ZWRHbG9iYWw6CiAgICAgY2FzZSBEeW5hbWljSW5k
ZXhlZEdsb2JhbDoKICAgICBjYXNlIER5bmFtaWNSZWFkT25seUluZGV4ZWRHbG9iYWw6CiAgICAg
ICAgIEFTU0VSVChtX2luZGV4ICE9IG1pc3NpbmdTeW1ib2xNYXJrZXIoKSk7CkBAIC0yMTcsMTkg
KzIxNiwxMyBAQCBib29sIEJ5dGVjb2RlR2VuZXJhdG9yOjphZGRWYXIoY29uc3QgSWRlbnRpZmll
ciYgaWRlbnQsIGJvb2wgaXNDb25zdGFudCwgUmVnaXN0ZQogICAgIHJldHVybiB0cnVlOwogfQog
Ci1pbnQgQnl0ZWNvZGVHZW5lcmF0b3I6OmFkZEdsb2JhbFZhcigKLSAgICBjb25zdCBJZGVudGlm
aWVyJiBpZGVudCwgQ29uc3RhbnRNb2RlIGNvbnN0YW50TW9kZSwgRnVuY3Rpb25Nb2RlIGZ1bmN0
aW9uTW9kZSkKK2ludCBCeXRlY29kZUdlbmVyYXRvcjo6YWRkR2xvYmFsVmFyKGNvbnN0IElkZW50
aWZpZXImIGlkZW50LCBib29sIGlzQ29uc3RhbnQpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGZ1bmN0
aW9uTW9kZSk7CiAgICAgaW50IGluZGV4ID0gc3ltYm9sVGFibGUoKS5zaXplKCk7Ci0gICAgU3lt
Ym9sVGFibGVFbnRyeSBuZXdFbnRyeShpbmRleCwgKGNvbnN0YW50TW9kZSA9PSBJc0NvbnN0YW50
KSA/IFJlYWRPbmx5IDogMCk7Ci0gICAgaWYgKGZ1bmN0aW9uTW9kZSA9PSBJc0Z1bmN0aW9uVG9T
cGVjaWFsaXplKQotICAgICAgICBuZXdFbnRyeS5hdHRlbXB0VG9XYXRjaCgpOworICAgIFN5bWJv
bFRhYmxlRW50cnkgbmV3RW50cnkoaW5kZXgsIGlzQ29uc3RhbnQgPyBSZWFkT25seSA6IDApOwog
ICAgIFN5bWJvbFRhYmxlOjpBZGRSZXN1bHQgcmVzdWx0ID0gc3ltYm9sVGFibGUoKS5hZGQoaWRl
bnQuaW1wbCgpLCBuZXdFbnRyeSk7Ci0gICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkgewotICAg
ICAgICByZXN1bHQuaXRlcmF0b3ItPnNlY29uZC5ub3RpZnlXcml0ZSgpOworICAgIGlmICghcmVz
dWx0LmlzTmV3RW50cnkpCiAgICAgICAgIGluZGV4ID0gcmVzdWx0Lml0ZXJhdG9yLT5zZWNvbmQu
Z2V0SW5kZXgoKTsKLSAgICB9CiAgICAgcmV0dXJuIGluZGV4OwogfQogCkBAIC0yOTYsMjMgKzI4
OSwxNyBAQCBCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoUHJvZ3JhbU5vZGUq
IHByb2dyYW1Ob2RlLCBTY29wZUNoYWluTm9kZSogcwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBmdW5jdGlvblN0YWNrLnNpemUoKTsgKytpKSB7CiAgICAgICAgIEZ1bmN0aW9uQm9keU5v
ZGUqIGZ1bmN0aW9uID0gZnVuY3Rpb25TdGFja1tpXTsKLSAgICAgICAgYm9vbCBwcm9wZXJ0eURp
ZEV4aXN0ID0gCi0gICAgICAgICAgICBnbG9iYWxPYmplY3QtPnJlbW92ZURpcmVjdCgqbV9nbG9i
YWxEYXRhLCBmdW5jdGlvbi0+aWRlbnQoKSk7IC8vIE5ld2x5IGRlY2xhcmVkIGZ1bmN0aW9ucyBv
dmVyd3JpdGUgZXhpc3RpbmcgcHJvcGVydGllcy4KLSAgICAgICAgCisgICAgICAgIGdsb2JhbE9i
amVjdC0+cmVtb3ZlRGlyZWN0KCptX2dsb2JhbERhdGEsIGZ1bmN0aW9uLT5pZGVudCgpKTsgLy8g
TmV3bHkgZGVjbGFyZWQgZnVuY3Rpb25zIG92ZXJ3cml0ZSBleGlzdGluZyBwcm9wZXJ0aWVzLgor
CiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBKU0Z1bmN0aW9uOjpjcmVhdGUoZXhlYywgbWFrZUZ1
bmN0aW9uKGV4ZWMsIGZ1bmN0aW9uKSwgc2NvcGVDaGFpbik7Ci0gICAgICAgIGludCBpbmRleCA9
IGFkZEdsb2JhbFZhcigKLSAgICAgICAgICAgIGZ1bmN0aW9uLT5pZGVudCgpLCBJc1ZhcmlhYmxl
LAotICAgICAgICAgICAgIXByb3BlcnR5RGlkRXhpc3QgPyBJc0Z1bmN0aW9uVG9TcGVjaWFsaXpl
IDogTm90RnVuY3Rpb25Pck5vdFNwZWNpYWxpemFibGUpOworICAgICAgICBpbnQgaW5kZXggPSBh
ZGRHbG9iYWxWYXIoZnVuY3Rpb24tPmlkZW50KCksIGZhbHNlKTsKICAgICAgICAgZ2xvYmFsT2Jq
ZWN0LT5yZWdpc3RlckF0KGluZGV4KS5zZXQoKm1fZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCB2
YWx1ZSk7CiAgICAgfQogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YXJTdGFjay5zaXpl
KCk7ICsraSkgewogICAgICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5oYXNQcm9wZXJ0eShleGVjLCAq
dmFyU3RhY2tbaV0uZmlyc3QpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGFkZEds
b2JhbFZhcigKLSAgICAgICAgICAgICp2YXJTdGFja1tpXS5maXJzdCwKLSAgICAgICAgICAgICh2
YXJTdGFja1tpXS5zZWNvbmQgJiBEZWNsYXJhdGlvblN0YWNrczo6SXNDb25zdGFudCkgPyBJc0Nv
bnN0YW50IDogSXNWYXJpYWJsZSwKLSAgICAgICAgICAgIE5vdEZ1bmN0aW9uT3JOb3RTcGVjaWFs
aXphYmxlKTsKKyAgICAgICAgYWRkR2xvYmFsVmFyKCp2YXJTdGFja1tpXS5maXJzdCwgdmFyU3Rh
Y2tbaV0uc2Vjb25kICYgRGVjbGFyYXRpb25TdGFja3M6OklzQ29uc3RhbnQpOwogICAgIH0KIH0K
IApAQCAtMTIxNSw5ICsxMjAyLDcgQEAgUmVzb2x2ZVJlc3VsdCBCeXRlY29kZUdlbmVyYXRvcjo6
cmVzb2x2ZShjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSkKICAgICAgICAgICAgIGlmICgrK2l0
ZXIgPT0gZW5kKSB7CiAgICAgICAgICAgICAgICAgaWYgKGZsYWdzICYgUmVzb2x2ZVJlc3VsdDo6
RHluYW1pY0ZsYWcpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXNvbHZlUmVzdWx0Ojpk
eW5hbWljSW5kZXhlZEdsb2JhbFJlc29sdmUoZW50cnkuZ2V0SW5kZXgoKSwgZGVwdGgsIGN1cnJl
bnRTY29wZSwgZmxhZ3MpOwotICAgICAgICAgICAgICAgIHJldHVybiBSZXNvbHZlUmVzdWx0Ojpp
bmRleGVkR2xvYmFsUmVzb2x2ZSgKLSAgICAgICAgICAgICAgICAgICAgZW50cnkuZ2V0SW5kZXgo
KSwgY3VycmVudFNjb3BlLAotICAgICAgICAgICAgICAgICAgICBmbGFncyB8IChlbnRyeS5jb3Vs
ZEJlV2F0Y2hlZCgpID8gUmVzb2x2ZVJlc3VsdDo6V2F0Y2hlZEZsYWcgOiAwKSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIFJlc29sdmVSZXN1bHQ6OmluZGV4ZWRHbG9iYWxSZXNvbHZlKGVudHJ5
LmdldEluZGV4KCksIGN1cnJlbnRTY29wZSwgZmxhZ3MpOwogICAgICAgICAgICAgfQogI2lmICFB
U1NFUlRfRElTQUJMRUQKICAgICAgICAgICAgIGlmIChKU0FjdGl2YXRpb24qIGFjdGl2YXRpb24g
PSBqc0R5bmFtaWNDYXN0PEpTQWN0aXZhdGlvbio+KGN1cnJlbnRWYXJpYWJsZU9iamVjdCkpCkBA
IC0xMzExLDcgKzEyOTYsNyBAQCBib29sIEJ5dGVjb2RlR2VuZXJhdG9yOjpzaG91bGRBdm9pZFJl
c29sdmVHbG9iYWwoKQogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRSZXNvbHZl
KFJlZ2lzdGVySUQqIGRzdCwgY29uc3QgUmVzb2x2ZVJlc3VsdCYgcmVzb2x2ZVJlc3VsdCwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHkpCiB7CiAgICAgaWYgKHJlc29sdmVSZXN1bHQuaXNTdGF0
aWMoKSkKLSAgICAgICAgcmV0dXJuIGVtaXRHZXRTdGF0aWNWYXIoZHN0LCByZXNvbHZlUmVzdWx0
LCBwcm9wZXJ0eSk7CisgICAgICAgIHJldHVybiBlbWl0R2V0U3RhdGljVmFyKGRzdCwgcmVzb2x2
ZVJlc3VsdCk7CiAgICAgCiAgICAgaWYgKHJlc29sdmVSZXN1bHQuaXNHbG9iYWwoKSAmJiAhc2hv
dWxkQXZvaWRSZXNvbHZlR2xvYmFsKCkpIHsKICNpZiBFTkFCTEUoSklUKQpAQCAtMTM5NCw3ICsx
Mzc5LDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRSZXNvbHZlV2l0aEJh
c2UoUmVnaXN0ZXJJRCogYmFzZURzdCwgUmVnaXN0ZXIKIAogICAgICAgICBpZiAocmVzb2x2ZVJl
c3VsdC5pc1N0YXRpYygpKSB7CiAgICAgICAgICAgICAvLyBEaXJlY3RseSBpbmRleCB0aGUgcHJv
cGVydHkgbG9va3VwIGFjcm9zcyBtdWx0aXBsZSBzY29wZXMuCi0gICAgICAgICAgICBlbWl0R2V0
U3RhdGljVmFyKHByb3BEc3QsIHJlc29sdmVSZXN1bHQsIHByb3BlcnR5KTsKKyAgICAgICAgICAg
IGVtaXRHZXRTdGF0aWNWYXIocHJvcERzdCwgcmVzb2x2ZVJlc3VsdCk7CiAgICAgICAgICAgICBy
ZXR1cm4gYmFzZURzdDsKICAgICAgICAgfQogCkBAIC0xNDMzLDcgKzE0MTgsNyBAQCBSZWdpc3Rl
cklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFJlc29sdmVXaXRoVGhpcyhSZWdpc3RlcklEKiBi
YXNlRHN0LCBSZWdpc3RlcgogewogICAgIGlmIChyZXNvbHZlUmVzdWx0LmlzU3RhdGljKCkpIHsK
ICAgICAgICAgZW1pdExvYWQoYmFzZURzdCwganNVbmRlZmluZWQoKSk7Ci0gICAgICAgIGVtaXRH
ZXRTdGF0aWNWYXIocHJvcERzdCwgcmVzb2x2ZVJlc3VsdCwgcHJvcGVydHkpOworICAgICAgICBl
bWl0R2V0U3RhdGljVmFyKHByb3BEc3QsIHJlc29sdmVSZXN1bHQpOwogICAgICAgICByZXR1cm4g
YmFzZURzdDsKICAgICB9CiAKQEAgLTE0NTEsNyArMTQzNiw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0UmVzb2x2ZVdpdGhUaGlzKFJlZ2lzdGVySUQqIGJhc2VEc3QsIFJl
Z2lzdGVyCiAgICAgcmV0dXJuIGVtaXRSZXNvbHZlKHByb3BEc3QsIHJlc29sdmVSZXN1bHQsIHBy
b3BlcnR5KTsKIH0KIAotUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZXRTdGF0
aWNWYXIoUmVnaXN0ZXJJRCogZHN0LCBjb25zdCBSZXNvbHZlUmVzdWx0JiByZXNvbHZlUmVzdWx0
LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRHZXRTdGF0aWNWYXIoUmVnaXN0ZXJJRCogZHN0LCBjb25zdCBSZXNvbHZlUmVz
dWx0JiByZXNvbHZlUmVzdWx0KQogewogICAgIFZhbHVlUHJvZmlsZSogcHJvZmlsZSA9IDA7CiAK
QEAgLTE0ODcsMjQgKzE0NzIsMTMgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRHZXRTdGF0aWNWYXIoUmVnaXN0ZXJJRCogZHN0LCBjb25zdCBSZXNvbHZlUmUKICAgICAgICAg
aW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHByb2ZpbGUpOwogICAgICAgICByZXR1cm4gZHN0OwogCi0g
ICAgY2FzZSBSZXNvbHZlUmVzdWx0OjpXYXRjaGVkSW5kZXhlZEdsb2JhbDoKLSAgICAgICAgLy8g
U2tpcCB0aGUgcGVlcGhvbGUgZm9yIG5vdy4gSXQncyBub3QgY2xlYXIgdGhhdCBpdCdzIHByb2Zp
dGFibGUgZ2l2ZW4KLSAgICAgICAgLy8gdGhlIERGRydzIGNhcGFiaWxpdGllcywgYW5kIHRoZSBm
YWN0IHRoYXQgaWYgaXQncyB3YXRjaGFibGUgdGhlbiB3ZQotICAgICAgICAvLyBkb24ndCBleHBl
Y3QgdG8gc2VlIGFueSBwdXRfZ2xvYmFsX3ZhcidzIGFueXdheS4KLSAgICAgICAgcHJvZmlsZSA9
IGVtaXRQcm9maWxlZE9wY29kZShvcF9nZXRfZ2xvYmFsX3Zhcl93YXRjaGFibGUpOwotICAgICAg
ICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgpKTsKLSAgICAgICAgaW5zdHJ1Y3Rp
b25zKCkuYXBwZW5kKHJlc29sdmVSZXN1bHQucmVnaXN0ZXJQb2ludGVyKCkpOwotICAgICAgICBp
bnN0cnVjdGlvbnMoKS5hcHBlbmQoYWRkQ29uc3RhbnQoaWRlbnRpZmllcikpOyAvLyBGb3IgdGhl
IGJlbmVmaXQgb2YgdGhlIERGRy4KLSAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHByb2Zp
bGUpOwotICAgICAgICByZXR1cm4gZHN0OwotCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIH0KIAotUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRTdGF0aWNWYXIoY29uc3QgUmVzb2x2ZVJlc3Vs
dCYgcmVzb2x2ZVJlc3VsdCwgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgUmVnaXN0ZXJJ
RCogdmFsdWUpCitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dFN0YXRpY1Zh
cihjb25zdCBSZXNvbHZlUmVzdWx0JiByZXNvbHZlUmVzdWx0LCBSZWdpc3RlcklEKiB2YWx1ZSkK
IHsKICAgICBzd2l0Y2ggKHJlc29sdmVSZXN1bHQudHlwZSgpKSB7CiAgICAgY2FzZSBSZXNvbHZl
UmVzdWx0OjpSZWdpc3RlcjoKQEAgLTE1MjUsMTQgKzE0OTksNiBAQCBSZWdpc3RlcklEKiBCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdFB1dFN0YXRpY1Zhcihjb25zdCBSZXNvbHZlUmVzdWx0JiByZXNv
bHZlUmVzdQogICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQocmVzb2x2ZVJlc3VsdC5yZWdp
c3RlclBvaW50ZXIoKSk7CiAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh2YWx1ZS0+aW5k
ZXgoKSk7CiAgICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICAgICAgCi0gICAgY2FzZSBSZXNvbHZl
UmVzdWx0OjpXYXRjaGVkSW5kZXhlZEdsb2JhbDoKLSAgICAgICAgZW1pdE9wY29kZShvcF9wdXRf
Z2xvYmFsX3Zhcl9jaGVjayk7Ci0gICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChyZXNvbHZl
UmVzdWx0LnJlZ2lzdGVyUG9pbnRlcigpKTsKLSAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5k
KHZhbHVlLT5pbmRleCgpKTsKLSAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGpzQ2FzdDxK
U0dsb2JhbE9iamVjdCo+KHJlc29sdmVSZXN1bHQuZ2xvYmFsT2JqZWN0KCkpLT5zeW1ib2xUYWJs
ZSgpLmdldChpZGVudGlmaWVyLmltcGwoKSkuYWRkcmVzc09mSXNXYXRjaGVkKCkpOwotICAgICAg
ICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYWRkQ29uc3RhbnQoaWRlbnRpZmllcikpOwotICAgICAg
ICByZXR1cm4gdmFsdWU7CiAKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuaAppbmRleCA4YzNmYzdiNGM1ZTA5NmIzMDMyOGI3ZGIwMTk1MjY3ZTE0
MDNlZWQ3Li41MzI1NmYzMTg4MTJmNTBhNWE1NWU0ODhhNWJjODczZGI1MDM3ODRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5oCkBAIC0xMTEsOSArMTExLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAv
LyBUaGUgcmVzb2x2ZWQgYmluZGluZyBpcyBpbW11dGFibGUuCiAgICAgICAgICAgICBSZWFkT25s
eUZsYWcgPSAweDIwLAogICAgICAgICAgICAgLy8gVGhlIGJhc2Ugb2JqZWN0IGlzIHRoZSBnbG9i
YWwgb2JqZWN0LgotICAgICAgICAgICAgR2xvYmFsRmxhZyA9IDB4NDAsCi0gICAgICAgICAgICAv
LyBUaGUgcHJvcGVydHkgaXMgYmVpbmcgd2F0Y2hlZCwgc28gd3JpdGVzIHNob3VsZCBiZSBzcGVj
aWFsLgotICAgICAgICAgICAgV2F0Y2hlZEZsYWcgPSAweDgwCisgICAgICAgICAgICBHbG9iYWxG
bGFnID0gMHg0MAogICAgICAgICB9OwogICAgICAgICBlbnVtIFR5cGUgewogICAgICAgICAgICAg
Ly8gVGhlIHByb3BlcnR5IGlzIGxvY2FsLCBhbmQgc3RvcmVkIGluIGEgcmVnaXN0ZXIuCkBAIC0x
MzMsOCArMTMxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAvLyBiaW5kaW5nIGNy
ZWF0ZWQgd2l0aCAidmFyIiBhdCB0aGUgdG9wIGxldmVsLiBBdCBydW50aW1lIHdlJ2xsCiAgICAg
ICAgICAgICAvLyBqdXN0IGluZGV4IGludG8gdGhlIGdsb2JhbCBvYmplY3QuCiAgICAgICAgICAg
ICBJbmRleGVkR2xvYmFsID0gSW5kZXhlZEZsYWcgfCBHbG9iYWxGbGFnIHwgU3RhdGljRmxhZywK
LSAgICAgICAgICAgIC8vIExpa2UgSW5kZXhlZEdsb2JhbCwgYnV0IHRoZSBwcm9wZXJ0eSBpcyBi
ZWluZyB3YXRjaGVkLgotICAgICAgICAgICAgV2F0Y2hlZEluZGV4ZWRHbG9iYWwgPSBJbmRleGVk
RmxhZyB8IEdsb2JhbEZsYWcgfCBTdGF0aWNGbGFnIHwgV2F0Y2hlZEZsYWcsCiAgICAgICAgICAg
ICAvLyBMaWtlIEluZGV4ZWRHbG9iYWwsIGJ1dCB0aGUgcHJvcGVydHkgaXMgYWxzbyByZWFkLW9u
bHksIGxpa2UgTmFOLAogICAgICAgICAgICAgLy8gSW5maW5pdHksIG9yIHVuZGVmaW5lZC4KICAg
ICAgICAgICAgIFJlYWRPbmx5SW5kZXhlZEdsb2JhbCA9IEluZGV4ZWRGbGFnIHwgUmVhZE9ubHlG
bGFnIHwgR2xvYmFsRmxhZyB8IFN0YXRpY0ZsYWcsCkBAIC00NDUsOCArNDQxLDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRUeXBlT2YoUmVnaXN0ZXJJRCogZHN0
LCBSZWdpc3RlcklEKiBzcmMpIHsgcmV0dXJuIGVtaXRVbmFyeU9wKG9wX3R5cGVvZiwgZHN0LCBz
cmMpOyB9CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJbihSZWdpc3RlcklEKiBkc3QsIFJlZ2lz
dGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklEKiBiYXNlKSB7IHJldHVybiBlbWl0QmluYXJ5T3Ao
b3BfaW4sIGRzdCwgcHJvcGVydHksIGJhc2UsIE9wZXJhbmRUeXBlcygpKTsgfQogCi0gICAgICAg
IFJlZ2lzdGVySUQqIGVtaXRHZXRTdGF0aWNWYXIoUmVnaXN0ZXJJRCogZHN0LCBjb25zdCBSZXNv
bHZlUmVzdWx0JiwgY29uc3QgSWRlbnRpZmllciYpOwotICAgICAgICBSZWdpc3RlcklEKiBlbWl0
UHV0U3RhdGljVmFyKGNvbnN0IFJlc29sdmVSZXN1bHQmLCBjb25zdCBJZGVudGlmaWVyJiwgUmVn
aXN0ZXJJRCogdmFsdWUpOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0R2V0U3RhdGljVmFyKFJl
Z2lzdGVySUQqIGRzdCwgY29uc3QgUmVzb2x2ZVJlc3VsdCYpOworICAgICAgICBSZWdpc3RlcklE
KiBlbWl0UHV0U3RhdGljVmFyKGNvbnN0IFJlc29sdmVSZXN1bHQmLCBSZWdpc3RlcklEKiB2YWx1
ZSk7CiAKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFJlc29sdmUoUmVnaXN0ZXJJRCogZHN0LCBj
b25zdCBSZXNvbHZlUmVzdWx0JiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHkpOwogICAgICAg
ICBSZWdpc3RlcklEKiBlbWl0UmVzb2x2ZUJhc2UoUmVnaXN0ZXJJRCogZHN0LCBjb25zdCBSZXNv
bHZlUmVzdWx0JiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHkpOwpAQCAtNTc4LDkgKzU3NCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICAgICAgLy8gUmV0dXJucyB0aGUg
aW5kZXggb2YgdGhlIGFkZGVkIHZhci4KLSAgICAgICAgZW51bSBDb25zdGFudE1vZGUgeyBJc0Nv
bnN0YW50LCBJc1ZhcmlhYmxlIH07Ci0gICAgICAgIGVudW0gRnVuY3Rpb25Nb2RlIHsgSXNGdW5j
dGlvblRvU3BlY2lhbGl6ZSwgTm90RnVuY3Rpb25Pck5vdFNwZWNpYWxpemFibGUgfTsKLSAgICAg
ICAgaW50IGFkZEdsb2JhbFZhcihjb25zdCBJZGVudGlmaWVyJiwgQ29uc3RhbnRNb2RlLCBGdW5j
dGlvbk1vZGUpOworICAgICAgICBpbnQgYWRkR2xvYmFsVmFyKGNvbnN0IElkZW50aWZpZXImLCBi
b29sIGlzQ29uc3RhbnQpOwogCiAgICAgICAgIHZvaWQgYWRkUGFyYW1ldGVyKGNvbnN0IElkZW50
aWZpZXImLCBpbnQgcGFyYW1ldGVySW5kZXgpOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCBkMjQzZThj
ZTAwODQ5YjU1MmQ5OGRiMDUwMWMzNjlhNDE1ZDJlZDBhLi40ZjExM2Y3NzY0OGVlOTExOTQ5Nzdi
MzhjYzRjZGUxMGFmM2FhYmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC00MzAsNyArNDMwLDcgQEAgUmVnaXN0ZXJJ
RCogRnVuY3Rpb25DYWxsUmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYgZ2VuZXJhdG9yLAogICAgIGlmIChyZXNvbHZlUmVzdWx0LmlzU3RhdGljKCkpIHsKICAgICAg
ICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGZ1bmMgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CiAg
ICAgICAgIENhbGxBcmd1bWVudHMgY2FsbEFyZ3VtZW50cyhnZW5lcmF0b3IsIG1fYXJncyk7Ci0g
ICAgICAgIGdlbmVyYXRvci5lbWl0R2V0U3RhdGljVmFyKGZ1bmMuZ2V0KCksIHJlc29sdmVSZXN1
bHQsIG1faWRlbnQpOworICAgICAgICBnZW5lcmF0b3IuZW1pdEdldFN0YXRpY1ZhcihmdW5jLmdl
dCgpLCByZXNvbHZlUmVzdWx0KTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMb2FkKGNhbGxBcmd1
bWVudHMudGhpc1JlZ2lzdGVyKCksIGpzVW5kZWZpbmVkKCkpOwogICAgICAgICByZXR1cm4gZ2Vu
ZXJhdG9yLmVtaXRDYWxsKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uT3JJZ25vcmVkKGRzdCwg
ZnVuYy5nZXQoKSksIGZ1bmMuZ2V0KCksIGNhbGxBcmd1bWVudHMsIGRpdm90KCksIHN0YXJ0T2Zm
c2V0KCksIGVuZE9mZnNldCgpKTsKICAgICB9CkBAIC02MTgsNyArNjE4LDcgQEAgUmVnaXN0ZXJJ
RCogUG9zdGZpeFJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdl
bmVyYXRvciwgUmVnaXMKICAgICB9CiAKICAgICBpZiAocmVzb2x2ZVJlc3VsdC5pc1N0YXRpYygp
ICYmICFyZXNvbHZlUmVzdWx0LmlzUmVhZE9ubHkoKSkgewotICAgICAgICBSZWZQdHI8UmVnaXN0
ZXJJRD4gdmFsdWUgPSBnZW5lcmF0b3IuZW1pdEdldFN0YXRpY1ZhcihnZW5lcmF0b3IubmV3VGVt
cG9yYXJ5KCksIHJlc29sdmVSZXN1bHQsIG1faWRlbnQpOworICAgICAgICBSZWZQdHI8UmVnaXN0
ZXJJRD4gdmFsdWUgPSBnZW5lcmF0b3IuZW1pdEdldFN0YXRpY1ZhcihnZW5lcmF0b3IubmV3VGVt
cG9yYXJ5KCksIHJlc29sdmVSZXN1bHQpOwogICAgICAgICBSZWdpc3RlcklEKiBvbGRWYWx1ZTsK
ICAgICAgICAgaWYgKGRzdCA9PSBnZW5lcmF0b3IuaWdub3JlZFJlc3VsdCgpKSB7CiAgICAgICAg
ICAgICBvbGRWYWx1ZSA9IDA7CkBAIC02MjYsNyArNjI2LDcgQEAgUmVnaXN0ZXJJRCogUG9zdGZp
eFJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwg
UmVnaXMKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG9sZFZhbHVlID0gZW1pdFBvc3RJ
bmNPckRlYyhnZW5lcmF0b3IsIGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIHZhbHVl
LmdldCgpLCBtX29wZXJhdG9yKTsKICAgICAgICAgfQotICAgICAgICBnZW5lcmF0b3IuZW1pdFB1
dFN0YXRpY1ZhcihyZXNvbHZlUmVzdWx0LCBtX2lkZW50LCB2YWx1ZS5nZXQoKSk7CisgICAgICAg
IGdlbmVyYXRvci5lbWl0UHV0U3RhdGljVmFyKHJlc29sdmVSZXN1bHQsIHZhbHVlLmdldCgpKTsK
ICAgICAgICAgcmV0dXJuIG9sZFZhbHVlOwogICAgIH0KICAgICAKQEAgLTgwMyw5ICs4MDMsOSBA
QCBSZWdpc3RlcklEKiBQcmVmaXhSZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdAogICAgIH0KIAogICAgIGlmIChyZXNvbHZlUmVzdWx0
LmlzU3RhdGljKCkgJiYgIXJlc29sdmVSZXN1bHQuaXNSZWFkT25seSgpKSB7Ci0gICAgICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiBwcm9wRHN0ID0gZ2VuZXJhdG9yLmVtaXRHZXRTdGF0aWNWYXIoZ2Vu
ZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCByZXNvbHZlUmVzdWx0LCBtX2lkZW50KTsKKyAg
ICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3BEc3QgPSBnZW5lcmF0b3IuZW1pdEdldFN0YXRp
Y1ZhcihnZW5lcmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIHJlc29sdmVSZXN1bHQpOwogICAg
ICAgICBlbWl0UHJlSW5jT3JEZWMoZ2VuZXJhdG9yLCBwcm9wRHN0LmdldCgpLCBtX29wZXJhdG9y
KTsKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRTdGF0aWNWYXIocmVzb2x2ZVJlc3VsdCwgbV9p
ZGVudCwgcHJvcERzdC5nZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0U3RhdGljVmFy
KHJlc29sdmVSZXN1bHQsIHByb3BEc3QuZ2V0KCkpOwogICAgICAgICByZXR1cm4gZ2VuZXJhdG9y
Lm1vdmVUb0Rlc3RpbmF0aW9uSWZOZWVkZWQoZHN0LCBwcm9wRHN0LmdldCgpKTsKICAgICB9CiAK
QEAgLTEyMjYsOSArMTIyNiw5IEBAIFJlZ2lzdGVySUQqIFJlYWRNb2RpZnlSZXNvbHZlTm9kZTo6
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlCiAgICAgfQogCiAg
ICAgaWYgKHJlc29sdmVSZXN1bHQuaXNTdGF0aWMoKSAmJiAhcmVzb2x2ZVJlc3VsdC5pc1JlYWRP
bmx5KCkpIHsKLSAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNyYzEgPSBnZW5lcmF0b3IuZW1p
dEdldFN0YXRpY1ZhcihnZW5lcmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIHJlc29sdmVSZXN1
bHQsIG1faWRlbnQpOworICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc3JjMSA9IGdlbmVyYXRv
ci5lbWl0R2V0U3RhdGljVmFyKGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgcmVzb2x2
ZVJlc3VsdCk7CiAgICAgICAgIFJlZ2lzdGVySUQqIHJlc3VsdCA9IGVtaXRSZWFkTW9kaWZ5QXNz
aWdubWVudChnZW5lcmF0b3IsIGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwgc3JjMS5n
ZXQoKSksIHNyYzEuZ2V0KCksIG1fcmlnaHQsIG1fb3BlcmF0b3IsIE9wZXJhbmRUeXBlcyhSZXN1
bHRUeXBlOjp1bmtub3duVHlwZSgpLCBtX3JpZ2h0LT5yZXN1bHREZXNjcmlwdG9yKCkpKTsKLSAg
ICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRTdGF0aWNWYXIocmVzb2x2ZVJlc3VsdCwgbV9pZGVudCwg
cmVzdWx0KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRTdGF0aWNWYXIocmVzb2x2ZVJlc3Vs
dCwgcmVzdWx0KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKQEAgLTEyNTYsNyAr
MTI1Niw3IEBAIFJlZ2lzdGVySUQqIEFzc2lnblJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0CiAgICAgICAgIGlmIChkc3QgPT0gZ2Vu
ZXJhdG9yLmlnbm9yZWRSZXN1bHQoKSkKICAgICAgICAgICAgIGRzdCA9IDA7CiAgICAgICAgIFJl
Z2lzdGVySUQqIHZhbHVlID0gZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9yaWdodCk7Ci0gICAg
ICAgIGdlbmVyYXRvci5lbWl0UHV0U3RhdGljVmFyKHJlc29sdmVSZXN1bHQsIG1faWRlbnQsIHZh
bHVlKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRTdGF0aWNWYXIocmVzb2x2ZVJlc3VsdCwg
dmFsdWUpOwogICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgfQogCkBAIC0xMzYxLDcgKzEzNjEs
NyBAQCBSZWdpc3RlcklEKiBDb25zdERlY2xOb2RlOjplbWl0Q29kZVNpbmdsZShCeXRlY29kZUdl
bmVyYXRvciYgZ2VuZXJhdG9yKQogICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZSA9IG1faW5p
dCA/IGdlbmVyYXRvci5lbWl0Tm9kZShtX2luaXQpIDogZ2VuZXJhdG9yLmVtaXRMb2FkKDAsIGpz
VW5kZWZpbmVkKCkpOwogCiAgICAgaWYgKHJlc29sdmVSZXN1bHQuaXNTdGF0aWMoKSkKLSAgICAg
ICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0UHV0U3RhdGljVmFyKHJlc29sdmVSZXN1bHQsIG1faWRl
bnQsIHZhbHVlLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0UHV0U3RhdGlj
VmFyKHJlc29sdmVSZXN1bHQsIHZhbHVlLmdldCgpKTsKICAgICAKICAgICBpZiAoZ2VuZXJhdG9y
LmNvZGVUeXBlKCkgIT0gRXZhbENvZGUpCiAgICAgICAgIHJldHVybiB2YWx1ZS5nZXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCmluZGV4IDUx
NTE2Zjk5MWUwOTBlZGI3NzAyM2Q5NjkzNzRlOGY2Mzc4OTI5MmMuLjQxODYxMjA4MGFmNWViMzA3
NzY4ODgyNzA0YzQ0YmIzYzEzMjE0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdFN0YXRlLmNwcApAQCAtMjE5LDkgKzIxOSw3IEBAIGJvb2wgQWJzdHJhY3RT
dGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmRleEluQmxvY2spCiB7CiAgICAgQVNTRVJUKG1fYmxv
Y2spOwogICAgIEFTU0VSVChtX2lzVmFsaWQpOwotICAgIAotICAgIG1fZGlkQ2xvYmJlciA9IGZh
bHNlOwotICAgIAorICAgICAgICAKICAgICBOb2RlSW5kZXggbm9kZUluZGV4ID0gbV9ibG9jay0+
YXQoaW5kZXhJbkJsb2NrKTsKICAgICBOb2RlJiBub2RlID0gbV9ncmFwaFtub2RlSW5kZXhdOwog
ICAgICAgICAKQEAgLTIzOSwxMiArMjM3LDggQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRl
KHVuc2lnbmVkIGluZGV4SW5CbG9jaykKICAgICAgICAgICAgIAogICAgIGNhc2UgR2V0TG9jYWw6
IHsKICAgICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2YXJpYWJsZUFjY2Vzc0RhdGEgPSBub2Rl
LnZhcmlhYmxlQWNjZXNzRGF0YSgpOwotICAgICAgICBpZiAodmFyaWFibGVBY2Nlc3NEYXRhLT5w
cmVkaWN0aW9uKCkgPT0gU3BlY05vbmUpIHsKLSAgICAgICAgICAgIG1faXNWYWxpZCA9IGZhbHNl
OwotICAgICAgICAgICAgbm9kZS5zZXRDYW5FeGl0KHRydWUpOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIH0KICAgICAgICAgYm9vbCBjYW5FeGl0ID0gZmFsc2U7CisgICAgICAgIGNhbkV4
aXQgfD0gdmFyaWFibGVBY2Nlc3NEYXRhLT5wcmVkaWN0aW9uKCkgPT0gU3BlY05vbmU7CiAgICAg
ICAgIEFic3RyYWN0VmFsdWUgdmFsdWUgPSBtX3ZhcmlhYmxlcy5vcGVyYW5kKHZhcmlhYmxlQWNj
ZXNzRGF0YS0+bG9jYWwoKSk7CiAgICAgICAgIGlmICghdmFyaWFibGVBY2Nlc3NEYXRhLT5pc0Nh
cHR1cmVkKCkpIHsKICAgICAgICAgICAgIGlmICh2YWx1ZS5pc0NsZWFyKCkpCkBAIC0xNDgyLDcg
KzE0NzYsNyBAQCBib29sIEFic3RyYWN0U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQgaW5kZXhJbkJs
b2NrKQogICAgICAgICBmb3JOb2RlKG5vZGUuY2hpbGQxKCkpLmZpbHRlcihTcGVjRnVuY3Rpb24p
OwogICAgICAgICAvLyBGSVhNRTogU2hvdWxkIGJlIGFibGUgdG8gcHJvcGFnYXRlIHRoZSBmYWN0
IHRoYXQgd2Uga25vdyB3aGF0IHRoZSBmdW5jdGlvbiBpcy4KICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIAorICAgICAgICAgICAgCiAgICAgY2FzZSBQdXRCeUlkOgogICAgIGNhc2UgUHV0QnlJZERp
cmVjdDoKICAgICAgICAgbm9kZS5zZXRDYW5FeGl0KHRydWUpOwpAQCAtMTQ5NCwxMyArMTQ4OCw4
IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmRleEluQmxvY2spCiAg
ICAgICAgIG5vZGUuc2V0Q2FuRXhpdChmYWxzZSk7CiAgICAgICAgIGZvck5vZGUobm9kZUluZGV4
KS5tYWtlVG9wKCk7CiAgICAgICAgIGJyZWFrOwotICAgICAgICAKLSAgICBjYXNlIEdsb2JhbFZh
cldhdGNocG9pbnQ6Ci0gICAgICAgIG5vZGUuc2V0Q2FuRXhpdCh0cnVlKTsKLSAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAKICAgICBjYXNlIFB1dEdsb2JhbFZhcjoKLSAgICBjYXNlIFB1dEds
b2JhbFZhckNoZWNrOgogICAgICAgICBub2RlLnNldENhbkV4aXQoZmFsc2UpOwogICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIApAQCAtMTU4OSw3ICsxNTc4LDYgQEAgaW5saW5lIHZvaWQgQWJz
dHJhY3RTdGF0ZTo6Y2xvYmJlclN0cnVjdHVyZXModW5zaWduZWQgaW5kZXhJbkJsb2NrKQogICAg
IGZvciAoc2l6ZV90IGkgPSBtX3ZhcmlhYmxlcy5udW1iZXJPZkxvY2FscygpOyBpLS07KQogICAg
ICAgICBtX3ZhcmlhYmxlcy5sb2NhbChpKS5jbG9iYmVyU3RydWN0dXJlcygpOwogICAgIG1faGF2
ZVN0cnVjdHVyZXMgPSBmYWxzZTsKLSAgICBtX2RpZENsb2JiZXIgPSB0cnVlOwogfQogCiBpbmxp
bmUgYm9vbCBBYnN0cmFjdFN0YXRlOjptZXJnZVN0YXRlQXRUYWlsKEFic3RyYWN0VmFsdWUmIGRl
c3RpbmF0aW9uLCBBYnN0cmFjdFZhbHVlJiBpblZhcmlhYmxlLCBOb2RlSW5kZXggbm9kZUluZGV4
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuaAppbmRleCA5
YmI3NGNkODYzYzBiMzljZGU3MTdmODdmNmYxMTVjZTM0ZDA3NDY0Li42OGYxNmExY2VhZGM4ZWVi
NWE4OGI3ZjdiMThiNmUyY2JiYzZjZDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0U3RhdGUuaApAQCAtMTkzLDkgKzE5Myw2IEBAIHB1YmxpYzoKICAgICAvLyBv
ZiBUaHJvdy4KICAgICBib29sIGV4ZWN1dGUodW5zaWduZWQpOwogICAgIAotICAgIC8vIERpZCB0
aGUgbGFzdCBleGVjdXRlZCBub2RlIGNsb2JiZXIgdGhlIHdvcmxkPwotICAgIGJvb2wgZGlkQ2xv
YmJlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGlkQ2xvYmJlcjsgfQotICAgIAogICAgIC8vIElzIHRo
ZSBleGVjdXRpb24gc3RhdGUgc3RpbGwgdmFsaWQ/IFRoaXMgd2lsbCBiZSBmYWxzZSBpZiBleGVj
dXRlKCkgaGFzCiAgICAgLy8gcmV0dXJuZWQgZmFsc2UgcHJldmlvdXNseS4KICAgICBib29sIGlz
VmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2lzVmFsaWQ7IH0KQEAgLTI3Nyw3ICsyNzQsNiBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9mb3VuZENvbnN0YW50czsKICAgICAKICAgICBib29sIG1faXNW
YWxpZDsKLSAgICBib29sIG1fZGlkQ2xvYmJlcjsKICAgICAKICAgICBCcmFuY2hEaXJlY3Rpb24g
bV9icmFuY2hEaXJlY3Rpb247IC8vIFRoaXMgaXMgb25seSBzZXQgZm9yIGJsb2NrcyB0aGF0IGVu
ZCBpbiBCcmFuY2ggYW5kIHRoYXQgZXhlY3V0ZSB0byBjb21wbGV0aW9uIChpLmUuIG1faXNWYWxp
ZCA9PSB0cnVlKS4KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCmluZGV4IDViZTU1NTU2YTlmMDRiMjQxZmYyYmJiMDJmZWFlOTc1MzQ2Y2Zm
NGUuLjZiOGM5Y2UyZDFhZDE1MjUwNDAxMjQ3NDhiYzhjNmQxYTZiMjc4Y2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0xMjM0LDkg
KzEyMzQsNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhib29sIHVzZXNS
ZXN1bHQsIGludCBjYWxsVGFyZ2V0LCBOb2RlSW5kZXggYwogICAgIC8vIERvZXMgdGhlIGNvZGUg
YmxvY2sncyBzaXplIG1hdGNoIHRoZSBoZXVyaXN0aWNzL3JlcXVpcmVtZW50cyBmb3IgYmVpbmcK
ICAgICAvLyBhbiBpbmxpbmUgY2FuZGlkYXRlPwogICAgIENvZGVCbG9jayogcHJvZmlsZWRCbG9j
ayA9IGV4ZWN1dGFibGUtPnByb2ZpbGVkQ29kZUJsb2NrRm9yKGtpbmQpOwotICAgIGlmICghcHJv
ZmlsZWRCbG9jaykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAogICAgIGlmICghbWlnaHRJ
bmxpbmVGdW5jdGlvbkZvcihwcm9maWxlZEJsb2NrLCBraW5kKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIApAQCAtMjI1NCw2MSArMjI1MSwxMyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICBjYXNlIG9wX2dldF9nbG9iYWxfdmFy
OiB7CiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGljdGlv
bigpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gbV9pbmxpbmVTdGFja1RvcC0+bV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpOwotCiAg
ICAgICAgICAgICBOb2RlSW5kZXggZ2V0R2xvYmFsVmFyID0gYWRkVG9HcmFwaCgKICAgICAgICAg
ICAgICAgICBHZXRHbG9iYWxWYXIsCi0gICAgICAgICAgICAgICAgT3BJbmZvKGdsb2JhbE9iamVj
dC0+YXNzZXJ0UmVnaXN0ZXJJc0luVGhpc09iamVjdChjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5y
ZWdpc3RlclBvaW50ZXIpKSwKKyAgICAgICAgICAgICAgICBPcEluZm8obV9pbmxpbmVTdGFja1Rv
cC0+bV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT5hc3NlcnRSZWdpc3RlcklzSW5UaGlzT2Jq
ZWN0KGN1cnJlbnRJbnN0cnVjdGlvblsyXS51LnJlZ2lzdGVyUG9pbnRlcikpLAogICAgICAgICAg
ICAgICAgIE9wSW5mbyhwcmVkaWN0aW9uKSk7CiAgICAgICAgICAgICBzZXQoY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZCwgZ2V0R2xvYmFsVmFyKTsKICAgICAgICAgICAgIE5FWFRfT1BD
T0RFKG9wX2dldF9nbG9iYWxfdmFyKTsKICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAK
LSAgICAgICAgY2FzZSBvcF9nZXRfZ2xvYmFsX3Zhcl93YXRjaGFibGU6IHsKLSAgICAgICAgICAg
IFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uKCk7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2lubGluZVN0
YWNrVG9wLT5tX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIgPSBtX2lubGluZVN0YWNrVG9wLT5tX2lk
ZW50aWZpZXJSZW1hcFtjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kXTsKLSAgICAgICAg
ICAgIElkZW50aWZpZXIgaWRlbnRpZmllciA9IG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGlkZW50
aWZpZXJOdW1iZXIpOwotICAgICAgICAgICAgU3ltYm9sVGFibGVFbnRyeSBlbnRyeSA9IGdsb2Jh
bE9iamVjdC0+c3ltYm9sVGFibGUoKS5nZXQoaWRlbnRpZmllci5pbXBsKCkpOwotICAgICAgICAg
ICAgaWYgKCFlbnRyeS5jb3VsZEJlV2F0Y2hlZCgpKSB7Ci0gICAgICAgICAgICAgICAgTm9kZUlu
ZGV4IGdldEdsb2JhbFZhciA9IGFkZFRvR3JhcGgoCi0gICAgICAgICAgICAgICAgICAgIEdldEds
b2JhbFZhciwKLSAgICAgICAgICAgICAgICAgICAgT3BJbmZvKGdsb2JhbE9iamVjdC0+YXNzZXJ0
UmVnaXN0ZXJJc0luVGhpc09iamVjdChjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5yZWdpc3RlclBv
aW50ZXIpKSwKLSAgICAgICAgICAgICAgICAgICAgT3BJbmZvKHByZWRpY3Rpb24pKTsKLSAgICAg
ICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgZ2V0R2xvYmFs
VmFyKTsKLSAgICAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9nZXRfZ2xvYmFsX3Zhcl93YXRj
aGFibGUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBUaGUg
d2F0Y2hwb2ludCBpcyBzdGlsbCBpbnRhY3QhIFRoaXMgbWVhbnMgdGhhdCB3ZSB3aWxsIGdldCBu
b3RpZmllZCBpZiB0aGUKLSAgICAgICAgICAgIC8vIGN1cnJlbnQgdmFsdWUgaW4gdGhlIGdsb2Jh
bCB2YXJpYWJsZSBjaGFuZ2VzLiBTbywgd2UgY2FuIGlubGluZSB0aGF0IHZhbHVlLgotICAgICAg
ICAgICAgLy8gTW9yZW92ZXIsIGN1cnJlbnRseSB3ZSBjYW4gYXNzdW1lIHRoYXQgdGhpcyB2YWx1
ZSBpcyBhIEpTRnVuY3Rpb24qLCB3aGljaAotICAgICAgICAgICAgLy8gaW1wbGllcyB0aGF0IGl0
J3MgYSBjZWxsLiBUaGlzIHNpbXBsaWZpZXMgdGhpbmdzLCBzaW5jZSBpbiBnZW5lcmFsIHdlJ2Qg
aGF2ZQotICAgICAgICAgICAgLy8gdG8gdXNlIGEgSlNDb25zdGFudCBmb3Igbm9uLWNlbGxzIGFu
ZCBhIFdlYWtKU0NvbnN0YW50IGZvciBjZWxscy4gU28gaW5zdGVhZAotICAgICAgICAgICAgLy8g
b2YgaGF2aW5nIGJvdGggY2FzZXMgd2UganVzdCBhc3NlcnQgdGhhdCB0aGUgdmFsdWUgaXMgYSBj
ZWxsLgotICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBOQi4gSWYgaXQgd2Fzbid0IGZvciBD
U0UsIEdsb2JhbFZhcldhdGNocG9pbnQgd291bGQgaGF2ZSBubyBuZWVkIGZvciB0aGUKLSAgICAg
ICAgICAgIC8vIHJlZ2lzdGVyIHBvaW50ZXIuIEJ1dCBDU0UgdHJhY2tzIGVmZmVjdHMgb24gZ2xv
YmFsIHZhcmlhYmxlcyBieSBjb21wYXJpbmcKLSAgICAgICAgICAgIC8vIHJlZ2lzdGVyIHBvaW50
ZXJzLiBCZWNhdXNlIENTRSBleGVjdXRlcyBtdWx0aXBsZSB0aW1lcyB3aGlsZSB0aGUgYmFja2Vu
ZAotICAgICAgICAgICAgLy8gZXhlY3V0ZXMgb25jZSwgd2UgdXNlIHRoZSBmb2xsb3dpbmcgcGVy
Zm9ybWFuY2UgdHJhZGUtb2ZmOgotICAgICAgICAgICAgLy8gLSBUaGUgbm9kZSByZWZlcnMgZGly
ZWN0bHkgdG8gdGhlIHJlZ2lzdGVyIHBvaW50ZXIgdG8gbWFrZSBDU0Ugc3VwZXIgY2hlYXAuCi0g
ICAgICAgICAgICAvLyAtIFRvIHBlcmZvcm0gYmFja2VuZCBjb2RlIGdlbmVyYXRpb24sIHRoZSBu
b2RlIG9ubHkgY29udGFpbnMgdGhlIGlkZW50aWZpZXIKLSAgICAgICAgICAgIC8vICAgbnVtYmVy
LCBmcm9tIHdoaWNoIGl0IGlzIHBvc3NpYmxlIHRvIGdldCAodmlhIGEgZmV3IGF2ZXJhZ2UtdGlt
ZSBPKDEpCi0gICAgICAgICAgICAvLyAgIGxvb2t1cHMpIHRvIHRoZSBXYXRjaHBvaW50U2V0Lgot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBhZGRUb0dyYXBoKAotICAgICAgICAgICAgICAgIEds
b2JhbFZhcldhdGNocG9pbnQsCi0gICAgICAgICAgICAgICAgT3BJbmZvKGdsb2JhbE9iamVjdC0+
YXNzZXJ0UmVnaXN0ZXJJc0luVGhpc09iamVjdChjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5yZWdp
c3RlclBvaW50ZXIpKSwKLSAgICAgICAgICAgICAgICBPcEluZm8oaWRlbnRpZmllck51bWJlcikp
OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBKU1ZhbHVlIHNwZWNpZmljVmFsdWUgPSBnbG9i
YWxPYmplY3QtPnJlZ2lzdGVyQXQoZW50cnkuZ2V0SW5kZXgoKSkuZ2V0KCk7Ci0gICAgICAgICAg
ICBBU1NFUlQoc3BlY2lmaWNWYWx1ZS5pc0NlbGwoKSk7Ci0gICAgICAgICAgICBzZXQoY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwKLSAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKFdl
YWtKU0NvbnN0YW50LCBPcEluZm8oc3BlY2lmaWNWYWx1ZS5hc0NlbGwoKSkpKTsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZ2V0X2dsb2JhbF92YXJfd2F0Y2hhYmxl
KTsKLSAgICAgICAgfQogCiAgICAgICAgIGNhc2Ugb3BfcHV0X2dsb2JhbF92YXI6IHsKICAgICAg
ICAgICAgIE5vZGVJbmRleCB2YWx1ZSA9IGdldChjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVy
YW5kKTsKQEAgLTIzMTksMjggKzIyNjgsNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJs
b2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfcHV0X2dsb2Jh
bF92YXIpOwogICAgICAgICB9CiAKLSAgICAgICAgY2FzZSBvcF9wdXRfZ2xvYmFsX3Zhcl9jaGVj
azogewotICAgICAgICAgICAgTm9kZUluZGV4IHZhbHVlID0gZ2V0KGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBtX2lu
bGluZVN0YWNrVG9wLT5tX2NvZGVCbG9jazsKLSAgICAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSBjb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpOwotICAgICAgICAgICAgdW5z
aWduZWQgaWRlbnRpZmllck51bWJlciA9IG1faW5saW5lU3RhY2tUb3AtPm1faWRlbnRpZmllclJl
bWFwW2N1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmRdOwotICAgICAgICAgICAgSWRlbnRp
ZmllciBpZGVudGlmaWVyID0gbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoaWRlbnRpZmllck51bWJl
cik7Ci0gICAgICAgICAgICBTeW1ib2xUYWJsZUVudHJ5IGVudHJ5ID0gZ2xvYmFsT2JqZWN0LT5z
eW1ib2xUYWJsZSgpLmdldChpZGVudGlmaWVyLmltcGwoKSk7Ci0gICAgICAgICAgICBpZiAoIWVu
dHJ5LmNvdWxkQmVXYXRjaGVkKCkpIHsKLSAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKAotICAg
ICAgICAgICAgICAgICAgICBQdXRHbG9iYWxWYXIsCi0gICAgICAgICAgICAgICAgICAgIE9wSW5m
byhnbG9iYWxPYmplY3QtPmFzc2VydFJlZ2lzdGVySXNJblRoaXNPYmplY3QoY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUucmVnaXN0ZXJQb2ludGVyKSksCi0gICAgICAgICAgICAgICAgICAgIHZhbHVl
KTsKLSAgICAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9wdXRfZ2xvYmFsX3Zhcl9jaGVjayk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhZGRUb0dyYXBoKAotICAgICAgICAgICAgICAg
IFB1dEdsb2JhbFZhckNoZWNrLAotICAgICAgICAgICAgICAgIE9wSW5mbyhjb2RlQmxvY2stPmds
b2JhbE9iamVjdCgpLT5hc3NlcnRSZWdpc3RlcklzSW5UaGlzT2JqZWN0KGN1cnJlbnRJbnN0cnVj
dGlvblsxXS51LnJlZ2lzdGVyUG9pbnRlcikpLAotICAgICAgICAgICAgICAgIE9wSW5mbyhpZGVu
dGlmaWVyTnVtYmVyKSwKLSAgICAgICAgICAgICAgICB2YWx1ZSk7Ci0gICAgICAgICAgICBORVhU
X09QQ09ERShvcF9wdXRfZ2xvYmFsX3Zhcl9jaGVjayk7Ci0gICAgICAgIH0KLQogICAgICAgICAv
LyA9PT0gQmxvY2sgdGVybWluYXRvcnMuID09PQogCiAgICAgICAgIGNhc2Ugb3Bfam1wOiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NDYWxsSGVscGVycy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDQ2FsbEhlbHBlcnMuaAppbmRleCA0Y2FjZDQ1
YzE0NTE4MGZlNmMwNWNhZTYwYjc1MDE3ZmVkM2I2OTM5Li41YmM0NWQ4ZTYyYzFjZTM5NTExMTU0
NWExMTg1MjgzZmIyMjI2YTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NDYWxsSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ0Nh
bGxIZWxwZXJzLmgKQEAgLTk0LDEyICs5NCw2IEBAIHB1YmxpYzoKICAgICAgICAgYWRkQ2FsbEFy
Z3VtZW50KGFyZzEpOwogICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMik7CiAgICAgfQotICAg
IAotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50cyhUcnVzdGVkSW1tUHRyIGFy
ZzEpCi0gICAgewotICAgICAgICByZXNldENhbGxBcmd1bWVudHMoKTsKLSAgICAgICAgYWRkQ2Fs
bEFyZ3VtZW50KGFyZzEpOwotICAgIH0KIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFy
Z3VtZW50c0V4ZWNTdGF0ZSgpCiAgICAgewpAQCAtNDM5LDExICs0MzMsNiBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICBzZXR1cFR3b1N0dWJBcmdzPEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BS
SW5mbzo6YXJndW1lbnRHUFIxPihhcmcxLCBhcmcyKTsKICAgICB9Ci0gICAgCi0gICAgQUxXQVlT
X0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzKFRydXN0ZWRJbW1QdHIgYXJnMSkKLSAgICB7Ci0g
ICAgICAgIG1vdmUoYXJnMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICB9CiAKICAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNFeGVjU3RhdGUoKQogICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKaW5kZXggNmY1OGI2YTcxNzY5YzE1
NWVkMjE3Y2NlZTczNmY4YWJkNDk3YjA5NC4uZjI2ZGUwMTI1YmZkNWY3MWYyZTZmNDIzNjA5MWIy
NGVjNGNkYjZjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQ
aGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAK
QEAgLTIxNywyOSArMjE3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIE5vTm9kZTsKICAg
ICB9CiAgICAgCi0gICAgYm9vbCBnbG9iYWxWYXJXYXRjaHBvaW50RWxpbWluYXRpb24oV3JpdGVC
YXJyaWVyPFVua25vd24+KiByZWdpc3RlclBvaW50ZXIpCi0gICAgewotICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSBtX2luZGV4SW5CbG9jazsgaS0tOykgewotICAgICAgICAgICAgTm9kZUluZGV4
IGluZGV4ID0gbV9jdXJyZW50QmxvY2stPmF0KGkpOwotICAgICAgICAgICAgTm9kZSYgbm9kZSA9
IG1fZ3JhcGhbaW5kZXhdOwotICAgICAgICAgICAgc3dpdGNoIChub2RlLm9wKCkpIHsKLSAgICAg
ICAgICAgIGNhc2UgR2xvYmFsVmFyV2F0Y2hwb2ludDoKLSAgICAgICAgICAgICAgICBpZiAobm9k
ZS5yZWdpc3RlclBvaW50ZXIoKSA9PSByZWdpc3RlclBvaW50ZXIpCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSBQdXRHbG9iYWxWYXI6Ci0gICAgICAgICAgICAgICAgaWYgKG5vZGUucmVnaXN0ZXJQb2ludGVy
KCkgPT0gcmVnaXN0ZXJQb2ludGVyKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG1fZ3JhcGguY2xv
YmJlcnNXb3JsZChpbmRleCkpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICAKICAgICBOb2RlSW5kZXggZ2xvYmFsVmFy
U3RvcmVFbGltaW5hdGlvbihXcml0ZUJhcnJpZXI8VW5rbm93bj4qIHJlZ2lzdGVyUG9pbnRlcikK
ICAgICB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1faW5kZXhJbkJsb2NrOyBpLS07KSB7
CkBAIC0yNDksNyArMjI2LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgIHN3aXRjaCAobm9kZS5vcCgpKSB7CiAgICAgICAgICAgICBjYXNlIFB1dEds
b2JhbFZhcjoKLSAgICAgICAgICAgIGNhc2UgUHV0R2xvYmFsVmFyQ2hlY2s6CiAgICAgICAgICAg
ICAgICAgaWYgKG5vZGUucmVnaXN0ZXJQb2ludGVyKCkgPT0gcmVnaXN0ZXJQb2ludGVyKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXg7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBA
IC0xMDA5LDEzICs5ODUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgc2V0UmVwbGFjZW1lbnQo
Z2xvYmFsVmFyTG9hZEVsaW1pbmF0aW9uKG5vZGUucmVnaXN0ZXJQb2ludGVyKCkpKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgR2xvYmFsVmFyV2F0Y2hw
b2ludDoKLSAgICAgICAgICAgIGlmIChnbG9iYWxWYXJXYXRjaHBvaW50RWxpbWluYXRpb24obm9k
ZS5yZWdpc3RlclBvaW50ZXIoKSkpCi0gICAgICAgICAgICAgICAgZWxpbWluYXRlKCk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAogICAgICAgICBjYXNlIFB1dEdsb2JhbFZhcjoK
LSAgICAgICAgY2FzZSBQdXRHbG9iYWxWYXJDaGVjazoKICAgICAgICAgICAgIGlmIChtX2ZpeHBv
aW50U3RhdGUgPT0gRml4cG9pbnROb3RDb252ZXJnZWQpCiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBlbGltaW5hdGUoZ2xvYmFsVmFyU3RvcmVFbGltaW5hdGlvbihub2RlLnJl
Z2lzdGVyUG9pbnRlcigpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NhcGFiaWxpdGllcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmls
aXRpZXMuaAppbmRleCAwMjdiMGY3OGI4ODhiMjhjZDgwMzhhOTllODNlYmJkZGM3MzE2N2QyLi42
OTRlODg2ZWViZmUwM2JhNjkzZDcyMGZkNzE1Mzc4MDJjYTRmZTg4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmgKQEAgLTEyMyw5ICsxMjMsNyBAQCBpbmxp
bmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGVPcGNvZGUoT3Bjb2RlSUQgb3Bjb2RlSUQsIENv
ZGVCbG9jayosIEluc3RydWN0aQogICAgIGNhc2Ugb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fZGly
ZWN0OgogICAgIGNhc2Ugb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fbm9ybWFsOgogICAgIGNhc2Ug
b3BfZ2V0X2dsb2JhbF92YXI6Ci0gICAgY2FzZSBvcF9nZXRfZ2xvYmFsX3Zhcl93YXRjaGFibGU6
CiAgICAgY2FzZSBvcF9wdXRfZ2xvYmFsX3ZhcjoKLSAgICBjYXNlIG9wX3B1dF9nbG9iYWxfdmFy
X2NoZWNrOgogICAgIGNhc2Ugb3Bfam1wOgogICAgIGNhc2Ugb3BfbG9vcDoKICAgICBjYXNlIG9w
X2p0cnVlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFu
dEZvbGRpbmdQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50
Rm9sZGluZ1BoYXNlLmNwcAppbmRleCA5ZTY3MjBjODAyMWJhMWJjZjZlODFhY2M2Mzc2NmM2NzMw
OWQyNmU3Li43YWIyNTI4YTMzYWUxMjM4MzdiMDNkZjdjNjE4YTQ1NjI5MTU5ZTFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNl
LmNwcApAQCAtNTYsOSArNTYsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICBpZiAoIWJsb2NrLT5jZmFGb3VuZENvbnN0YW50cykKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKLSNpZiBERkdfRU5BQkxFKERFQlVHX1BST1BBR0FUSU9OX1ZFUkJPU0Up
Ci0gICAgICAgICAgICBkYXRhTG9nKCJDb25zdGFudCBmb2xkaW5nIGNvbnNpZGVyaW5nIEJsb2Nr
ICMldS5cbiIsIGJsb2NrSW5kZXgpOwotI2VuZGlmCiAgICAgICAgICAgICBzdGF0ZS5iZWdpbkJh
c2ljQmxvY2soYmxvY2spOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleEluQmxvY2sg
PSAwOyBpbmRleEluQmxvY2sgPCBibG9jay0+c2l6ZSgpOyArK2luZGV4SW5CbG9jaykgewogICAg
ICAgICAgICAgICAgIGlmICghc3RhdGUuaXNWYWxpZCgpKQpAQCAtOTMsNyArOTAsNyBAQCBwdWJs
aWM6CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgc3RhdGUuZXhlY3V0ZShpbmRl
eEluQmxvY2spOwogICAgICAgICAgICAgICAgIGlmICghbm9kZS5zaG91bGRHZW5lcmF0ZSgpCi0g
ICAgICAgICAgICAgICAgICAgIHx8IHN0YXRlLmRpZENsb2JiZXIoKQorICAgICAgICAgICAgICAg
ICAgICB8fCBtX2dyYXBoLmNsb2JiZXJzV29ybGQobm9kZSkKICAgICAgICAgICAgICAgICAgICAg
fHwgbm9kZS5oYXNDb25zdGFudCgpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgICAgICBKU1ZhbHVlIHZhbHVlID0gc3RhdGUuZm9yTm9kZShub2RlSW5kZXgpLnZh
bHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvcnJlY3Rh
YmxlSnVtcFBvaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvcnJlY3RhYmxl
SnVtcFBvaW50LmgKaW5kZXggOTNjYjQ5YzAxNzdjNGNhMzAxZjg2MWU3MjAzMjljYjEzZDY2YzBh
OS4uYmZhMTQ5NjA0ZTY3YWEyNWEzMGNmYjY5MGE4NzRmZWNjNGUwZTZmYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb3JyZWN0YWJsZUp1bXBQb2ludC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29ycmVjdGFibGVKdW1wUG9pbnQuaApAQCAt
NjYsMTEgKzY2LDYgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogICAgIAotICAgIGJvb2wgaXNT
ZXQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fY29kZU9mZnNldCAhPSBzdGQ6Om51bWVyaWNf
bGltaXRzPHVpbnQzMl90Pjo6bWF4KCk7Ci0gICAgfQotICAgIAogICAgIHZvaWQgc3dpdGNoVG9M
YXRlSnVtcChNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBjaGVjaykKICAgICB7CiAjaWZu
ZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRD
b21waWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNw
cAppbmRleCBiOGIzM2YyN2JmNDkxZTk2Yjg5ZTgyYzA1OWU5YTNiODUwNTBjNzBiLi41NGI1YWFl
ZTZmYjQ5Zjc0MzNjNWM4ZjYwYjY3MmMwZmUzNzU1ZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcApAQCAtNDQsMTEgKzQ0LDcgQEAgdm9pZCBKSVRD
b21waWxlcjo6bGlua09TUkV4aXRzKCkKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
Y29kZUJsb2NrKCktPm51bWJlck9mT1NSRXhpdHMoKTsgKytpKSB7CiAgICAgICAgIE9TUkV4aXQm
IGV4aXQgPSBjb2RlQmxvY2soKS0+b3NyRXhpdChpKTsKLSAgICAgICAgQVNTRVJUKCFleGl0Lm1f
Y2hlY2suaXNTZXQoKSA9PSAoZXhpdC5tX3dhdGNocG9pbnRJbmRleCAhPSBzdGQ6Om51bWVyaWNf
bGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpKTsKLSAgICAgICAgaWYgKGV4aXQubV93YXRjaHBvaW50
SW5kZXggPT0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKQotICAgICAgICAg
ICAgZXhpdC5tX2NoZWNrLmluaXRpYWxKdW1wKCkubGluayh0aGlzKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgY29kZUJsb2NrKCktPndhdGNocG9pbnQoZXhpdC5tX3dhdGNocG9pbnRJbmRl
eCkuc2V0RGVzdGluYXRpb24obGFiZWwoKSk7CisgICAgICAgIGV4aXQubV9jaGVjay5pbml0aWFs
SnVtcCgpLmxpbmsodGhpcyk7CiAgICAgICAgIGppdEFzc2VydEhhc1ZhbGlkQ2FsbEZyYW1lKCk7
CiAgICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGkpLCAmZ2xvYmFsRGF0YSgpLT5vc3JFeGl0
SW5kZXgpOwogICAgICAgICBleGl0Lm1fY2hlY2suc3dpdGNoVG9MYXRlSnVtcChwYXRjaGFibGVK
dW1wKCkpOwpAQCAtMTk0LDggKzE5MCw2IEBAIHZvaWQgSklUQ29tcGlsZXI6OmxpbmsoTGlua0J1
ZmZlciYgbGlua0J1ZmZlcikKICAgICAgICAgT1NSRXhpdCYgZXhpdCA9IGNvZGVCbG9jaygpLT5v
c3JFeGl0KGkpOwogICAgICAgICBsaW5rQnVmZmVyLmxpbmsoZXhpdC5tX2NoZWNrLmxhdGVKdW1w
KCksIHRhcmdldCk7CiAgICAgICAgIGV4aXQubV9jaGVjay5jb3JyZWN0TGF0ZUp1bXAobGlua0J1
ZmZlcik7Ci0gICAgICAgIGlmIChleGl0Lm1fd2F0Y2hwb2ludEluZGV4ICE9IHN0ZDo6bnVtZXJp
Y19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkKLSAgICAgICAgICAgIGNvZGVCbG9jaygpLT53YXRj
aHBvaW50KGV4aXQubV93YXRjaHBvaW50SW5kZXgpLmNvcnJlY3RMYWJlbHMobGlua0J1ZmZlcik7
CiAgICAgfQogICAgIAogICAgIGNvZGVCbG9jaygpLT5zaHJpbmtUb0ZpdChDb2RlQmxvY2s6Okxh
dGVTaHJpbmspOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCBiOTZmNjlmYWI5
ODY0OGJhNzgxNTZiYmFhM2M3YTI3NWM2N2I5ODkxLi4yOTc4M2M4NjU0ODE3NGQ1NDJiNGM5ZjY2
M2ZhODVmZTQ3YWI5ZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtNDMw
LDIwICs0MzAsOSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiBtX29wSW5mbzsKICAg
ICB9CiAgICAgCi0gICAgYm9vbCBoYXNJZGVudGlmaWVyTnVtYmVyRm9yQ2hlY2soKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIG9wKCkgPT0gR2xvYmFsVmFyV2F0Y2hwb2ludCB8fCBvcCgpID09IFB1
dEdsb2JhbFZhckNoZWNrOwotICAgIH0KLSAgICAKLSAgICB1bnNpZ25lZCBpZGVudGlmaWVyTnVt
YmVyRm9yQ2hlY2soKQotICAgIHsKLSAgICAgICAgQVNTRVJUKGhhc0lkZW50aWZpZXJOdW1iZXJG
b3JDaGVjaygpKTsKLSAgICAgICAgcmV0dXJuIG1fb3BJbmZvMjsKLSAgICB9Ci0gICAgCiAgICAg
Ym9vbCBoYXNSZWdpc3RlclBvaW50ZXIoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG9wKCkgPT0g
R2V0R2xvYmFsVmFyIHx8IG9wKCkgPT0gUHV0R2xvYmFsVmFyIHx8IG9wKCkgPT0gR2xvYmFsVmFy
V2F0Y2hwb2ludCB8fCBvcCgpID09IFB1dEdsb2JhbFZhckNoZWNrOworICAgICAgICByZXR1cm4g
b3AoKSA9PSBHZXRHbG9iYWxWYXIgfHwgb3AoKSA9PSBQdXRHbG9iYWxWYXI7CiAgICAgfQogICAg
IAogICAgIFdyaXRlQmFycmllcjxVbmtub3duPiogcmVnaXN0ZXJQb2ludGVyKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCA5YTgxYmQzMjkyZjFjM2VhZmQyNTY3
MDJmYWQwOTQwOTdlNzk2MDAyLi43NDNmODc5NTUyZjdkYWRlZTU1NWVjYzlhNzc5YzQyNDkzZGQ5
MmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0xNDEsOCAr
MTQxLDYgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKFB1dFNj
b3BlZFZhciwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9iYmVyc1dvcmxkKSBcCiAgICAgbWFj
cm8oR2V0R2xvYmFsVmFyLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAg
bWFjcm8oUHV0R2xvYmFsVmFyLCBOb2RlTXVzdEdlbmVyYXRlKSBcCi0gICAgbWFjcm8oR2xvYmFs
VmFyV2F0Y2hwb2ludCwgTm9kZU11c3RHZW5lcmF0ZSkgXAotICAgIG1hY3JvKFB1dEdsb2JhbFZh
ckNoZWNrLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tGdW5jdGlvbiwgTm9k
ZU11c3RHZW5lcmF0ZSkgXAogICAgIFwKICAgICAvKiBPcHRpbWl6YXRpb25zIGZvciBhcnJheSBt
dXRhdGlvbi4gKi9cCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09T
UkV4aXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcAppbmRl
eCBkMGUwZGU5ZGFmYTNjZGNmMjNiZDAyYzRmMWZjOWI1MWU4NzE0NTc0Li5iY2I5OGExZWRhOTdl
OGYyNjFlZmI2NTQyNDkyYThjMmExZjk4MDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRXhpdC5jcHAKQEAgLTUxLDcgKzUxLDYgQEAgT1NSRXhpdDo6T1NSRXhpdChFeGl0S2lu
ZCBraW5kLCBKU1ZhbHVlU291cmNlIGpzVmFsdWVTb3VyY2UsIE1ldGhvZE9mR2V0dGluZ0FWYWwK
ICAgICAsIG1fY29kZU9yaWdpbihqaXQtPm1fY29kZU9yaWdpbkZvck9TUikKICAgICAsIG1fY29k
ZU9yaWdpbkZvckV4aXRQcm9maWxlKG1fY29kZU9yaWdpbikKICAgICAsIG1fcmVjb3ZlcnlJbmRl
eChyZWNvdmVyeUluZGV4KQotICAgICwgbV93YXRjaHBvaW50SW5kZXgoc3RkOjpudW1lcmljX2xp
bWl0czx1bnNpZ25lZD46Om1heCgpKQogICAgICwgbV9raW5kKGtpbmQpCiAgICAgLCBtX2NvdW50
KDApCiAgICAgLCBtX2FyZ3VtZW50cyhqaXQtPm1fYXJndW1lbnRzLnNpemUoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgKaW5kZXggNjgzZjI2MGYxZDFjYTVkYzNiYjBiMDQ3
YmQ2ZDZjODRkNTc2OWE4ZS4uODQxZmRkZGIzMTE4N2I2ZjBlYmMyNTI3NjY4MWVlNzNhMmQyNDlh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgKQEAgLTk2LDcgKzk2LDYg
QEAgc3RydWN0IE9TUkV4aXQgewogICAgIENvZGVPcmlnaW4gbV9jb2RlT3JpZ2luRm9yRXhpdFBy
b2ZpbGU7CiAgICAgCiAgICAgdW5zaWduZWQgbV9yZWNvdmVyeUluZGV4OwotICAgIHVuc2lnbmVk
IG1fd2F0Y2hwb2ludEluZGV4OwogICAgIAogICAgIEV4aXRLaW5kIG1fa2luZDsKICAgICB1aW50
MzJfdCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAKaW5kZXggMDZhMWNmODgzZTc5MTY3ZmE0ZWJiOGJlZDI3ZGM2MTlkOTMwMWVjNi4uZWMzZDRj
Y2NlNzc0ZTZjY2I0NjIxODNkMzUzMTNlODhiYjMyNGEyMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC05MjQsMTEgKzkyNCw2IEBAIHZvaWQqIERG
R19PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENvbnN0cnVjdChFeGVjU3RhdGUqIGV4ZWNDYWxs
ZWUpCiAgICAgcmV0dXJuIHZpcnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNvbnN0cnVjdCk7
CiB9CiAKLXZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25Ob3RpZnlHbG9iYWxWYXJXcml0ZShX
YXRjaHBvaW50U2V0KiB3YXRjaHBvaW50U2V0KQotewotICAgIHdhdGNocG9pbnRTZXQtPm5vdGlm
eVdyaXRlKCk7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUmVz
b2x2ZShFeGVjU3RhdGUqIGV4ZWMsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSkKIHsKICAgICBK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEgPSAmZXhlYy0+Z2xvYmFsRGF0YSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAppbmRleCAzODE2NmE4M2Y3ZWUyMjViMzAy
MmJiYzAyMzYzNzZlZjZjMzk2MWUyLi41OGFhNjhiZmNjYzMzZjUxZmFiZWQ0ZTAxZDJkZjRmODI5
ZDU3YTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaApAQCAt
MTAwLDcgKzEwMCw2IEBAIHR5cGVkZWYgdm9pZCBERkdfT1BFUkFUSU9OICgqVl9ERkdPcGVyYXRp
b25fRUpDSSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEpTCiB0eXBlZGVmIHZvaWQgREZH
X09QRVJBVElPTiAoKlZfREZHT3BlcmF0aW9uX0VKSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIERGR19P
UEVSQVRJT04gKCpWX0RGR09wZXJhdGlvbl9FSlBQKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIHZvaWQqKTsKIHR5cGVkZWYgdm9pZCBERkdfT1BFUkFUSU9OICgq
Vl9ERkdPcGVyYXRpb25fRVBaSikoRXhlY1N0YXRlKiwgdm9pZCosIGludDMyX3QsIEVuY29kZWRK
U1ZhbHVlKTsKLXR5cGVkZWYgdm9pZCBERkdfT1BFUkFUSU9OICgqVl9ERkdPcGVyYXRpb25fVyko
V2F0Y2hwb2ludFNldCopOwogdHlwZWRlZiB2b2lkKiBERkdfT1BFUkFUSU9OICgqUF9ERkdPcGVy
YXRpb25fRSkoRXhlY1N0YXRlKik7CiAKIC8vIFRoZXNlIHJvdXRpbmVzIGFyZSBwcm92aWRlIGNh
bGxiYWNrcyBvdXQgdG8gQysrIGltcGxlbWVudGF0aW9ucyBvZiBvcGVyYXRpb25zIHRvbyBjb21w
bGV4IHRvIEpJVC4KQEAgLTExNyw3ICsxMTYsNiBAQCBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFU
SU9OIG9wZXJhdGlvbkdldEJ5SWRQcm90b0J1aWxkTGlzdChFeGVjU3RhdGUqLCBFbmNvZGVkSgog
RW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqKSBXVEZfSU5URVJOQUw7CiBFbmNv
ZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxDdXN0b21HZXR0ZXIoRXhlY1N0
YXRlKiwgSlNDZWxsKiwgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMsIElkZW50aWZpZXIqKSBX
VEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxH
ZXR0ZXIoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotdm9pZCBE
RkdfT1BFUkFUSU9OIG9wZXJhdGlvbk5vdGlmeUdsb2JhbFZhcldyaXRlKFdhdGNocG9pbnRTZXQq
IHdhdGNocG9pbnRTZXQpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJ
T04gb3BlcmF0aW9uUmVzb2x2ZShFeGVjU3RhdGUqLCBJZGVudGlmaWVyKikgV1RGX0lOVEVSTkFM
OwogRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25SZXNvbHZlQmFzZShFeGVj
U3RhdGUqLCBJZGVudGlmaWVyKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgREZHX09Q
RVJBVElPTiBvcGVyYXRpb25SZXNvbHZlQmFzZVN0cmljdFB1dChFeGVjU3RhdGUqLCBJZGVudGlm
aWVyKikgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCAwZDQ0YWZiZTZj
NDU5YjZkZTVmZGM2MGNhNDg4OWQ1YjVhODExNTE4Li44NmVlN2EzZWUzYjAzOGY1MDZhMGFkMDA1
YjI2YjA4NjY0OGUzNzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtNDkxLDggKzQ5MSw3
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAg
Ci0gICAgICAgIGNhc2UgUHV0R2xvYmFsVmFyOgotICAgICAgICBjYXNlIFB1dEdsb2JhbFZhckNo
ZWNrOiB7CisgICAgICAgIGNhc2UgUHV0R2xvYmFsVmFyOiB7CiAgICAgICAgICAgICBjaGFuZ2Vk
IHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzVmFsdWUpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTY3MCw3ICs2NjksNiBAQCBwcml2YXRl
OgogICAgICAgICBjYXNlIFRlYXJPZmZBcmd1bWVudHM6CiAgICAgICAgIGNhc2UgQ2hlY2tOdW1i
ZXI6CiAgICAgICAgIGNhc2UgQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkOgotICAgICAgICBjYXNl
IEdsb2JhbFZhcldhdGNocG9pbnQ6CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlRGVmYXVs
dEZsYWdzKG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCA5MzM3ODQ2ODU2
MjdjYmI3MTIxODg2OTg4YTk2NGUyOWNiZmQ4MjVlLi43NGZlNzA2ZjEwMGQ4ZGQ5NmM5OTE1NzMw
NzAyNGZjNWU1OWJmYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oCkBAIC0xNDE0LDExICsxNDE0LDYgQEAgcHVibGljOgogICAgICAgICBtX2pp
dC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgVHJ1c3RlZEltbTMyKGFyZzIpKTsK
ICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsK
ICAgICB9Ci0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0RGR09wZXJhdGlv
bl9XIG9wZXJhdGlvbiwgV2F0Y2hwb2ludFNldCogd2F0Y2hwb2ludFNldCkKLSAgICB7Ci0gICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzKFRydXN0ZWRJbW1QdHIod2F0Y2hwb2ludFNldCkpOwot
ICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOwotICAgIH0KICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGUsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTE+CiAgICAgSklU
Q29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihGdW5jdGlvblR5cGUgb3BlcmF0aW9uLCBOb1Jl
c3VsdFRhZywgQXJndW1lbnRUeXBlMSBhcmcxKQogICAgIHsKQEAgLTE2NzcsMTEgKzE2NzIsNiBA
QCBwdWJsaWM6CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcx
LCBhcmcyLCBFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmczUGF5bG9hZCwgYXJnM1RhZyk7CiAgICAg
ICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiAgICAg
fQotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9ERkdPcGVyYXRpb25fVyBv
cGVyYXRpb24sIFdhdGNocG9pbnRTZXQqIHdhdGNocG9pbnRTZXQpCi0gICAgewotICAgICAgICBt
X2ppdC5zZXR1cEFyZ3VtZW50cyhUcnVzdGVkSW1tUHRyKHdhdGNocG9pbnRTZXQpKTsKLSAgICAg
ICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKLSAgICB9CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRnVuY3Rpb25UeXBlLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUxPgogICAgIEpJVENvbXBp
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVuY3Rpb25UeXBlIG9wZXJhdGlvbiwgTm9SZXN1bHRU
YWcsIEFyZ3VtZW50VHlwZTEgYXJnMSkKICAgICB7CkBAIC0xODAzLDExICsxNzkzLDYgQEAgcHVi
bGljOgogICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1bHQp
OwogICAgICAgICByZXR1cm4gY2FsbDsKICAgICB9Ci0gICAgSklUQ29tcGlsZXI6OkNhbGwgYXBw
ZW5kQ2FsbChjb25zdCBGdW5jdGlvblB0ciYgZnVuY3Rpb24pCi0gICAgewotICAgICAgICBwcmVw
YXJlRm9yRXh0ZXJuYWxDYWxsKCk7Ci0gICAgICAgIHJldHVybiBtX2ppdC5hcHBlbmRDYWxsKGZ1
bmN0aW9uKTsKLSAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVja1NldFJlc3VsdChjb25zdCBGdW5jdGlvblB0ciYgZnVuY3Rpb24sIEdQUlJlZyBy
ZXN1bHQxLCBHUFJSZWcgcmVzdWx0MikKICAgICB7CiAgICAgICAgIEpJVENvbXBpbGVyOjpDYWxs
IGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGZ1bmN0aW9uKTsKQEAgLTIyMDgs
MzIgKzIxOTMsNiBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChhdChtX2NvbXBpbGVJbmRleCku
Y2FuRXhpdCgpIHx8IG1faXNDaGVja2luZ0FyZ3VtZW50VHlwZXMpOwogICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKGtpbmQsIGpzVmFsdWVTb3VyY2UsIG5vZGVVc2UuaW5kZXgoKSwganVtcFRvRmFp
bCwgcmVjb3ZlcnkpOwogICAgIH0KLSAgICAvLyBVc2UgdGhpcyBsaWtlIHlvdSB3b3VsZCB1c2Ug
c3BlY3VsYXRpb25DaGVjaygpLCBleGNlcHQgdGhhdCB5b3UgZG9uJ3QgcGFzcyBpdCBhIGp1bXAK
LSAgICAvLyAoYmVjYXVzZSB5b3UgZG9uJ3QgaGF2ZSB0byBleGVjdXRlIGEgYnJhbmNoOyB0aGF0
J3Mga2luZCBvZiB0aGUgd2hvbGUgcG9pbnQpLCBhbmQgeW91Ci0gICAgLy8gbXVzdCByZWdpc3Rl
ciB0aGUgcmV0dXJuZWQgV2F0Y2hwb2ludCB3aXRoIHNvbWV0aGluZyByZWxldmFudC4gSW4gZ2Vu
ZXJhbCwgdGhpcyBzaG91bGQKLSAgICAvLyBiZSB1c2VkIHdpdGggZXh0cmVtZSBjYXJlLiBVc2Ug
c3BlY3VsYXRpb25DaGVjaygpIHVubGVzcyB5b3UndmUgZ290IGFuIGFtYXppbmcgcmVhc29uCi0g
ICAgLy8gbm90IHRvLgotICAgIFdhdGNocG9pbnQqIHNwZWN1bGF0aW9uV2F0Y2hwb2ludChFeGl0
S2luZCBraW5kLCBKU1ZhbHVlU291cmNlIGpzVmFsdWVTb3VyY2UsIE5vZGVJbmRleCBub2RlSW5k
ZXgpCi0gICAgewotICAgICAgICBpZiAoIW1fY29tcGlsZU9rYXkpCi0gICAgICAgICAgICByZXR1
cm4gMDsKLSAgICAgICAgQVNTRVJUKGF0KG1fY29tcGlsZUluZGV4KS5jYW5FeGl0KCkgfHwgbV9p
c0NoZWNraW5nQXJndW1lbnRUeXBlcyk7Ci0gICAgICAgIE9TUkV4aXQmIGV4aXQgPSBtX2ppdC5j
b2RlQmxvY2soKS0+b3NyRXhpdCgKLSAgICAgICAgICAgIG1faml0LmNvZGVCbG9jaygpLT5hcHBl
bmRPU1JFeGl0KAotICAgICAgICAgICAgICAgIE9TUkV4aXQoa2luZCwganNWYWx1ZVNvdXJjZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIG1faml0LmdyYXBoKCkubWV0aG9kT2ZHZXR0aW5nQVZh
bHVlUHJvZmlsZUZvcihub2RlSW5kZXgpLAotICAgICAgICAgICAgICAgICAgICAgICAgSklUQ29t
cGlsZXI6Okp1bXAoKSwgdGhpcykpKTsKLSAgICAgICAgZXhpdC5tX3dhdGNocG9pbnRJbmRleCA9
IG1faml0LmNvZGVCbG9jaygpLT5hcHBlbmRXYXRjaHBvaW50KAotICAgICAgICAgICAgV2F0Y2hw
b2ludChtX2ppdC53YXRjaHBvaW50TGFiZWwoKSkpOwotICAgICAgICByZXR1cm4gJm1faml0LmNv
ZGVCbG9jaygpLT53YXRjaHBvaW50KGV4aXQubV93YXRjaHBvaW50SW5kZXgpOwotICAgIH0KLSAg
ICAvLyBUaGUgZGVmYXVsdCBmb3Igc3BlY3VsYXRpb24gd2F0Y2hwb2ludHMgaXMgdGhhdCB0aGV5
J3JlIHVuY291bnRlZCwgYmVjYXVzZSB0aGUKLSAgICAvLyBhY3Qgb2YgZmlyaW5nIGEgd2F0Y2hw
b2ludCBpbnZhbGlkYXRlcyBpdC4gU28sIGZ1dHVyZSByZWNvbXBpbGF0aW9ucyB3aWxsIG5vdAot
ICAgIC8vIGF0dGVtcHQgdG8gc2V0IHRoaXMgd2F0Y2hwb2ludCBhZ2Fpbi4KLSAgICBXYXRjaHBv
aW50KiBzcGVjdWxhdGlvbldhdGNocG9pbnQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHNwZWN1
bGF0aW9uV2F0Y2hwb2ludChVbmNvdW50YWJsZVdhdGNocG9pbnQsIEpTVmFsdWVTb3VyY2UoKSwg
Tm9Ob2RlKTsKLSAgICB9CiAgICAgdm9pZCBmb3J3YXJkU3BlY3VsYXRpb25DaGVjayhFeGl0S2lu
ZCBraW5kLCBKU1ZhbHVlU291cmNlIGpzVmFsdWVTb3VyY2UsIE5vZGVJbmRleCBub2RlSW5kZXgs
IE1hY3JvQXNzZW1ibGVyOjpKdW1wIGp1bXBUb0ZhaWwsIGNvbnN0IFZhbHVlUmVjb3ZlcnkmIHZh
bHVlUmVjb3ZlcnkpCiAgICAgewogICAgICAgICBBU1NFUlQoYXQobV9jb21waWxlSW5kZXgpLmNh
bkV4aXQoKSB8fCBtX2lzQ2hlY2tpbmdBcmd1bWVudFR5cGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDljZmEy
OGZjZGIwZTdlZTExZjliMzk3YjJjOWNmNWRhMzBhMjU3Y2UuLjZlNGI1NDgyNzNiMjY4YTM1YTI0
ZmVlZGQzMzYwMjk0YzczNDVmMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtMzU5Niw2MiArMzU5Niw2IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogCi0gICAgY2FzZSBQdXRHbG9iYWxWYXJDaGVjazogewotICAgICAgICBKU1ZhbHVlT3Bl
cmFuZCB2YWx1ZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKLSAgICAgICAgCi0gICAgICAgIFdhdGNo
cG9pbnRTZXQqIHdhdGNocG9pbnRTZXQgPQotICAgICAgICAgICAgbV9qaXQuZ2xvYmFsT2JqZWN0
Rm9yKG5vZGUuY29kZU9yaWdpbiktPnN5bWJvbFRhYmxlKCkuZ2V0KAotICAgICAgICAgICAgICAg
IGlkZW50aWZpZXIobm9kZS5pZGVudGlmaWVyTnVtYmVyRm9yQ2hlY2soKSktPmltcGwoKSkud2F0
Y2hwb2ludFNldCgpOwotICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcigKLSAgICAgICAgICAg
IHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0OCgKLSAgICAg
ICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Ok5vblplcm8sCi0gICAgICAgICAgICAgICAgICAg
IEpJVENvbXBpbGVyOjpBYnNvbHV0ZUFkZHJlc3Mod2F0Y2hwb2ludFNldC0+YWRkcmVzc09mSXNX
YXRjaGVkKCkpKSwKLSAgICAgICAgICAgICAgICB0aGlzLCBvcGVyYXRpb25Ob3RpZnlHbG9iYWxW
YXJXcml0ZSwgTm9SZXN1bHQsIHdhdGNocG9pbnRTZXQpKTsKLSAgICAgICAgCi0gICAgICAgIGlm
IChIZWFwOjppc1dyaXRlQmFycmllckVuYWJsZWQoKSkgewotICAgICAgICAgICAgR1BSVGVtcG9y
YXJ5IHNjcmF0Y2godGhpcyk7Ci0gICAgICAgICAgICBHUFJSZWcgc2NyYXRjaFJlZyA9IHNjcmF0
Y2guZ3ByKCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHdyaXRlQmFycmllcihtX2ppdC5n
bG9iYWxPYmplY3RGb3Iobm9kZS5jb2RlT3JpZ2luKSwgdmFsdWUudGFnR1BSKCksIG5vZGUuY2hp
bGQxKCksIFdyaXRlQmFycmllckZvclZhcmlhYmxlQWNjZXNzLCBzY3JhdGNoUmVnKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIC8vIEZJWE1FOiBpZiB3ZSBoYXBwZW4gdG8gaGF2ZSBhIHNwYXJlIHJl
Z2lzdGVyIC0gYW5kIF9PTkxZXyBpZiB3ZSBoYXBwZW4gdG8gaGF2ZQotICAgICAgICAvLyBhIHNw
YXJlIHJlZ2lzdGVyIC0gYSBnb29kIG9wdGltaXphdGlvbiB3b3VsZCBiZSB0byBwdXQgdGhlIHJl
Z2lzdGVyIHBvaW50ZXIgaW50bwotICAgICAgICAvLyBhIHJlZ2lzdGVyIGFuZCB0aGVuIGRvIGEg
emVybyBvZmZzZXQgc3RvcmUgZm9sbG93ZWQgYnkgYSBmb3VyLW9mZnNldCBzdG9yZSAob3IKLSAg
ICAgICAgLy8gdmljZS12ZXJzYSBkZXBlbmRpbmcgb24gZW5kaWFubmVzcykuCi0gICAgICAgIG1f
aml0LnN0b3JlMzIodmFsdWUudGFnR1BSKCksIG5vZGUucmVnaXN0ZXJQb2ludGVyKCktPnRhZ1Bv
aW50ZXIoKSk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIodmFsdWUucGF5bG9hZEdQUigpLCBub2Rl
LnJlZ2lzdGVyUG9pbnRlcigpLT5wYXlsb2FkUG9pbnRlcigpKTsKLQotICAgICAgICBub1Jlc3Vs
dChtX2NvbXBpbGVJbmRleCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAgICAgCi0gICAg
Y2FzZSBHbG9iYWxWYXJXYXRjaHBvaW50OiB7Ci0gICAgICAgIG1faml0Lmdsb2JhbE9iamVjdEZv
cihub2RlLmNvZGVPcmlnaW4pLT5zeW1ib2xUYWJsZSgpLmdldCgKLSAgICAgICAgICAgIGlkZW50
aWZpZXIobm9kZS5pZGVudGlmaWVyTnVtYmVyRm9yQ2hlY2soKSktPmltcGwoKSkuYWRkV2F0Y2hw
b2ludCgKLSAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbldhdGNocG9pbnQoKSk7Ci0gICAgICAg
IAotI2lmIERGR19FTkFCTEUoSklUX0FTU0VSVCkKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHNjcmF0
Y2godGhpcyk7Ci0gICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gc2NyYXRjaC5ncHIoKTsKLSAg
ICAgICAgbV9qaXQubG9hZDMyKG5vZGUucmVnaXN0ZXJQb2ludGVyKCktPnRhZ1BvaW50ZXIoKSwg
c2NyYXRjaEdQUik7Ci0gICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdE9LID0gbV9qaXQuYnJh
bmNoMzIoCi0gICAgICAgICAgICBKSVRDb21waWxlcjo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsCi0g
ICAgICAgICAgICBUcnVzdGVkSW1tMzIobm9kZS5yZWdpc3RlclBvaW50ZXIoKS0+Z2V0KCkudGFn
KCkpKTsKLSAgICAgICAgbV9qaXQubG9hZDMyKG5vZGUucmVnaXN0ZXJQb2ludGVyKCktPnBheWxv
YWRQb2ludGVyKCksIHNjcmF0Y2hHUFIpOwotICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBvayA9
IG1faml0LmJyYW5jaDMyKAotICAgICAgICAgICAgSklUQ29tcGlsZXI6OkVxdWFsLCBzY3JhdGNo
R1BSLAotICAgICAgICAgICAgVHJ1c3RlZEltbTMyKG5vZGUucmVnaXN0ZXJQb2ludGVyKCktPmdl
dCgpLnBheWxvYWQoKSkpOwotICAgICAgICBub3RPSy5saW5rKCZtX2ppdCk7Ci0gICAgICAgIG1f
aml0LmJyZWFrcG9pbnQoKTsKLSAgICAgICAgb2subGluaygmbV9qaXQpOwotI2VuZGlmCi0gICAg
ICAgIAotICAgICAgICBub1Jlc3VsdChtX2NvbXBpbGVJbmRleCk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KLQogICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZTogewogICAgICAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUuY2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1wb3Jh
cnkgc3RydWN0dXJlKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggNDhiM2U5YTM2YjA3MDA4YTFjNTRmZDJmMWU2MTNh
ZmRlNDc1ZmZmZC4uYzhjOTI3ZDRkM2I2MTBhZWVjZjZhNDgwMzM1ZjA5Mzg3YmU2NThhYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
CkBAIC0zNjE1LDUyICszNjE1LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2Rl
JiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBjYXNlIFB1dEdsb2JhbFZhckNo
ZWNrOiB7Ci0gICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUuY2hpbGQxKCkp
OwotICAgICAgICAKLSAgICAgICAgV2F0Y2hwb2ludFNldCogd2F0Y2hwb2ludFNldCA9Ci0gICAg
ICAgICAgICBtX2ppdC5nbG9iYWxPYmplY3RGb3Iobm9kZS5jb2RlT3JpZ2luKS0+c3ltYm9sVGFi
bGUoKS5nZXQoCi0gICAgICAgICAgICAgICAgaWRlbnRpZmllcihub2RlLmlkZW50aWZpZXJOdW1i
ZXJGb3JDaGVjaygpKS0+aW1wbCgpKS53YXRjaHBvaW50U2V0KCk7Ci0gICAgICAgIGFkZFNsb3dQ
YXRoR2VuZXJhdG9yKAotICAgICAgICAgICAgc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAgICAg
IG1faml0LmJyYW5jaFRlc3Q4KAotICAgICAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6Tm9u
WmVybywKLSAgICAgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6OkFic29sdXRlQWRkcmVzcyh3
YXRjaHBvaW50U2V0LT5hZGRyZXNzT2ZJc1dhdGNoZWQoKSkpLAotICAgICAgICAgICAgICAgIHRo
aXMsIG9wZXJhdGlvbk5vdGlmeUdsb2JhbFZhcldyaXRlLCBOb1Jlc3VsdCwgd2F0Y2hwb2ludFNl
dCkpOwotICAgICAgICAKLSAgICAgICAgaWYgKEhlYXA6OmlzV3JpdGVCYXJyaWVyRW5hYmxlZCgp
KSB7Ci0gICAgICAgICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKLSAgICAgICAgICAg
IEdQUlJlZyBzY3JhdGNoUmVnID0gc2NyYXRjaC5ncHIoKTsKLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgd3JpdGVCYXJyaWVyKG1faml0Lmdsb2JhbE9iamVjdEZvcihub2RlLmNvZGVPcmlnaW4p
LCB2YWx1ZS5ncHIoKSwgbm9kZS5jaGlsZDEoKSwgV3JpdGVCYXJyaWVyRm9yVmFyaWFibGVBY2Nl
c3MsIHNjcmF0Y2hSZWcpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBtX2ppdC5zdG9y
ZVB0cih2YWx1ZS5ncHIoKSwgbm9kZS5yZWdpc3RlclBvaW50ZXIoKSk7Ci0KLSAgICAgICAgbm9S
ZXN1bHQobV9jb21waWxlSW5kZXgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgICAgIAot
ICAgIGNhc2UgR2xvYmFsVmFyV2F0Y2hwb2ludDogewotICAgICAgICBtX2ppdC5nbG9iYWxPYmpl
Y3RGb3Iobm9kZS5jb2RlT3JpZ2luKS0+c3ltYm9sVGFibGUoKS5nZXQoCi0gICAgICAgICAgICBp
ZGVudGlmaWVyKG5vZGUuaWRlbnRpZmllck51bWJlckZvckNoZWNrKCkpLT5pbXBsKCkpLmFkZFdh
dGNocG9pbnQoCi0gICAgICAgICAgICAgICAgc3BlY3VsYXRpb25XYXRjaHBvaW50KCkpOwotICAg
ICAgICAKLSNpZiBERkdfRU5BQkxFKEpJVF9BU1NFUlQpCi0gICAgICAgIEdQUlRlbXBvcmFyeSBz
Y3JhdGNoKHRoaXMpOwotICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3ByKCk7
Ci0gICAgICAgIG1faml0LmxvYWRQdHIobm9kZS5yZWdpc3RlclBvaW50ZXIoKSwgc2NyYXRjaEdQ
Uik7Ci0gICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG9rID0gbV9qaXQuYnJhbmNoUHRyKAotICAg
ICAgICAgICAgSklUQ29tcGlsZXI6OkVxdWFsLCBzY3JhdGNoR1BSLAotICAgICAgICAgICAgVHJ1
c3RlZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KEpTVmFsdWU6OmVuY29kZShub2RlLnJlZ2lz
dGVyUG9pbnRlcigpLT5nZXQoKSkpKSk7Ci0gICAgICAgIG1faml0LmJyZWFrcG9pbnQoKTsKLSAg
ICAgICAgb2subGluaygmbV9qaXQpOwotI2VuZGlmCi0gICAgICAgIAotICAgICAgICBub1Jlc3Vs
dChtX2NvbXBpbGVJbmRleCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQogICAgIGNhc2UgQ2hl
Y2tIYXNJbnN0YW5jZTogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMs
IG5vZGUuY2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1wb3Jhcnkgc3RydWN0dXJlKHRoaXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IDA5YWZkN2E1NWQwMDkxMWYwZmNlNDZlNjAy
N2Q4N2RjMjFjYWYyMTguLmZmNTYxNWY0NDNhNWQ1MDFiODE0YTQ3ZTA1MDEzOTY3NGUxNjlhZTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTI1OSw3ICsyNTksNiBAQCB2b2lkIEpJ
VDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgIERFRklORV9PUChvcF9nZXRfYnlf
dmFsKQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2FyZ3VtZW50X2J5X3ZhbCkKICAgICAgICAg
REVGSU5FX09QKG9wX2dldF9ieV9wbmFtZSkKLSAgICAgICAgREVGSU5FX09QKG9wX2dldF9nbG9i
YWxfdmFyX3dhdGNoYWJsZSkKICAgICAgICAgREVGSU5FX09QKG9wX2dldF9nbG9iYWxfdmFyKQog
ICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X3BuYW1lcykKICAgICAgICAgREVGSU5FX09QKG9wX2dl
dF9zY29wZWRfdmFyKQpAQCAtMzI1LDcgKzMyNCw2IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGls
ZU1haW5QYXNzKCkKICAgICAgICAgREVGSU5FX09QKG9wX3B1dF9ieV92YWwpCiAgICAgICAgIERF
RklORV9PUChvcF9wdXRfZ2V0dGVyX3NldHRlcikKICAgICAgICAgREVGSU5FX09QKG9wX3B1dF9n
bG9iYWxfdmFyKQotICAgICAgICBERUZJTkVfT1Aob3BfcHV0X2dsb2JhbF92YXJfY2hlY2spCiAg
ICAgICAgIERFRklORV9PUChvcF9wdXRfc2NvcGVkX3ZhcikKICAgICAgICAgREVGSU5FX09QKG9w
X3Jlc29sdmUpCiAgICAgICAgIERFRklORV9PUChvcF9yZXNvbHZlX2Jhc2UpCkBAIC00ODMsNyAr
NDgxLDYgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgY2Fz
ZSBvcF9wdXRfYnlfaWRfdHJhbnNpdGlvbl9ub3JtYWw6CiAgICAgICAgIERFRklORV9TTE9XQ0FT
RV9PUChvcF9wdXRfYnlfaWQpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9wdXRfYnlf
dmFsKQotICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfcHV0X2dsb2JhbF92YXJfY2hlY2sp
OwogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfcmVzb2x2ZV9nbG9iYWwpCiAgICAgICAg
IERFRklORV9TTE9XQ0FTRV9PUChvcF9yZXNvbHZlX2dsb2JhbF9keW5hbWljKQogICAgICAgICBE
RUZJTkVfU0xPV0NBU0VfT1Aob3BfcnNoaWZ0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXgg
NjQ5MWVkYmVkOGQ0NmQ4YzM2NjYxODkwYzI2ZWFjN2Q1NDViMjY2Mi4uZDExNDMxMDVhY2ExYmJm
OTU0MmU0Y2Q2NzY0MzY4NmI2NjRjYmM4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC00
NjMsNyArNDYzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgaXNNYXBwZWQoaW50
IHZpcnR1YWxSZWdpc3RlckluZGV4KTsKICAgICAgICAgYm9vbCBnZXRNYXBwZWRQYXlsb2FkKGlu
dCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCYgcGF5bG9hZCk7CiAgICAgICAgIGJv
b2wgZ2V0TWFwcGVkVGFnKGludCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCYgdGFn
KTsKLSAgICAgICAgCisKICAgICAgICAgdm9pZCBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwo
aW50IHZpcnR1YWxSZWdpc3RlckluZGV4KTsKICAgICAgICAgdm9pZCBlbWl0SnVtcFNsb3dDYXNl
SWZOb3RKU0NlbGwoaW50IHZpcnR1YWxSZWdpc3RlckluZGV4LCBSZWdpc3RlcklEIHRhZyk7CiAK
QEAgLTU5OSw3ICs1OTksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0X29w
X2dldF9hcmd1bWVudF9ieV92YWwoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29w
X2dldF9ieV9wbmFtZShJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfZ2V0X2ds
b2JhbF92YXIoSW5zdHJ1Y3Rpb24qKTsKLSAgICAgICAgdm9pZCBlbWl0X29wX2dldF9nbG9iYWxf
dmFyX3dhdGNoYWJsZShJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pIHsgZW1pdF9vcF9nZXRfZ2xv
YmFsX3ZhcihpbnN0cnVjdGlvbik7IH0KICAgICAgICAgdm9pZCBlbWl0X29wX2dldF9zY29wZWRf
dmFyKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pbml0X2xhenlfcmVnKElu
c3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9jaGVja19oYXNfaW5zdGFuY2UoSW5z
dHJ1Y3Rpb24qKTsKQEAgLTY2Myw3ICs2NjIsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
dm9pZCBlbWl0X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX3B1dF9nZXR0ZXJfc2V0dGVyKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9v
cF9wdXRfZ2xvYmFsX3ZhcihJbnN0cnVjdGlvbiopOwotICAgICAgICB2b2lkIGVtaXRfb3BfcHV0
X2dsb2JhbF92YXJfY2hlY2soSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3B1
dF9zY29wZWRfdmFyKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9yZXNvbHZl
KEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9yZXNvbHZlX2Jhc2UoSW5zdHJ1
Y3Rpb24qKTsKQEAgLTc0MSw3ICs3MzksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9p
ZCBlbWl0U2xvd19vcF9wcmVfaW5jKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+
OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX3B1dF9ieV9pZChJbnN0cnVj
dGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBl
bWl0U2xvd19vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+
OjppdGVyYXRvciYpOwotICAgICAgICB2b2lkIGVtaXRTbG93X29wX3B1dF9nbG9iYWxfdmFyX2No
ZWNrKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAg
ICAgICB2b2lkIGVtaXRTbG93X29wX3Jlc29sdmVfZ2xvYmFsKEluc3RydWN0aW9uKiwgVmVjdG9y
PFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX3Jl
c29sdmVfZ2xvYmFsX2R5bmFtaWMoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46
Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfcnNoaWZ0KEluc3RydWN0aW9u
KiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCA0ZmI0MGFhZWMxMGFlNzAw
Yjk2NDMxMGY4YzkxMDIwMzM2ZDBiYzdmLi5iNjRmMTYyNzUyM2M0ZGU3NGExZTIyZDk4NjMxMDNl
YTA3Nzc2ZjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3Bl
cnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzLmNwcApAQCAtMTAyNywyOSArMTAyNyw2IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9n
bG9iYWxfdmFyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGVtaXRX
cml0ZUJhcnJpZXIoZ2xvYmFsT2JqZWN0LCByZWdUMCwgcmVnVDIsIFNob3VsZEZpbHRlckltbWVk
aWF0ZXMsIFdyaXRlQmFycmllckZvclZhcmlhYmxlQWNjZXNzKTsKIH0KIAotdm9pZCBKSVQ6OmVt
aXRfb3BfcHV0X2dsb2JhbF92YXJfY2hlY2soSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKLXsKLSAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51
Lm9wZXJhbmQsIHJlZ1QwKTsKLSAgICAKLSAgICBhZGRTbG93Q2FzZShicmFuY2hUZXN0OChOb25a
ZXJvLCBBYnNvbHV0ZUFkZHJlc3MoY3VycmVudEluc3RydWN0aW9uWzNdLnUucHJlZGljYXRlUG9p
bnRlcikpKTsKLQotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2NvZGVCbG9j
ay0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgCi0gICAgc3RvcmVQdHIocmVnVDAsIGN1cnJlbnRJbnN0
cnVjdGlvblsxXS51LnJlZ2lzdGVyUG9pbnRlcik7Ci0gICAgaWYgKEhlYXA6OmlzV3JpdGVCYXJy
aWVyRW5hYmxlZCgpKQotICAgICAgICBlbWl0V3JpdGVCYXJyaWVyKGdsb2JhbE9iamVjdCwgcmVn
VDAsIHJlZ1QyLCBTaG91bGRGaWx0ZXJJbW1lZGlhdGVzLCBXcml0ZUJhcnJpZXJGb3JWYXJpYWJs
ZUFjY2Vzcyk7Ci19Ci0KLXZvaWQgSklUOjplbWl0U2xvd19vcF9wdXRfZ2xvYmFsX3Zhcl9jaGVj
ayhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46
Oml0ZXJhdG9yJiBpdGVyKQotewotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKLSAgICAKLSAgICBK
SVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfcHV0X2dsb2JhbF92YXJfY2hlY2spOwot
ICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KHJlZ1QwKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVu
dChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkpOwotICAgIHN0
dWJDYWxsLmNhbGwoKTsKLX0KLQogdm9pZCBKSVQ6OnJlc2V0UGF0Y2hHZXRCeUlkKFJlcGF0Y2hC
dWZmZXImIHJlcGF0Y2hCdWZmZXIsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbykKIHsKICAg
ICByZXBhdGNoQnVmZmVyLnJlbGluayhzdHViSW5mby0+Y2FsbFJldHVybkxvY2F0aW9uLCBjdGlf
b3BfZ2V0X2J5X2lkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
UHJvcGVydHlBY2Nlc3MzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBy
b3BlcnR5QWNjZXNzMzJfNjQuY3BwCmluZGV4IDViZWMxOWViZmNmNDI2Y2YzYzM3NWNlZDcwYTAz
YTk5OTE3Y2UzYmMuLjc4YjE3ZDdkZGYwZDk2M2ZmY2IyYWZmZTNjM2IzYmRkYmE3NjJkNzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82
NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMy
XzY0LmNwcApAQCAtMTA5MCwzNyArMTA5MCw2IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9nbG9i
YWxfdmFyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgbWFwKG1fYnl0ZWNv
ZGVPZmZzZXQgKyBPUENPREVfTEVOR1RIKG9wX3B1dF9nbG9iYWxfdmFyKSwgdmFsdWUsIHJlZ1Qx
LCByZWdUMCk7CiB9CiAKLXZvaWQgSklUOjplbWl0X29wX3B1dF9nbG9iYWxfdmFyX2NoZWNrKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCi17Ci0gICAgV3JpdGVCYXJyaWVyPFVua25v
d24+KiByZWdpc3RlclBvaW50ZXIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5yZWdpc3RlclBv
aW50ZXI7Ci0gICAgaW50IHZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsK
LSAgICAKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9jb2RlQmxvY2stPmds
b2JhbE9iamVjdCgpOwotICAgIAotICAgIGVtaXRMb2FkKHZhbHVlLCByZWdUMSwgcmVnVDApOwot
ICAgIAotICAgIGFkZFNsb3dDYXNlKGJyYW5jaFRlc3Q4KE5vblplcm8sIEFic29sdXRlQWRkcmVz
cyhjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5wcmVkaWNhdGVQb2ludGVyKSkpOwotICAgIAotICAg
IGlmIChIZWFwOjppc1dyaXRlQmFycmllckVuYWJsZWQoKSkgewotICAgICAgICBtb3ZlKFRydXN0
ZWRJbW1QdHIoZ2xvYmFsT2JqZWN0KSwgcmVnVDIpOwotICAgICAgICBlbWl0V3JpdGVCYXJyaWVy
KGdsb2JhbE9iamVjdCwgcmVnVDEsIHJlZ1QzLCBTaG91bGRGaWx0ZXJJbW1lZGlhdGVzLCBXcml0
ZUJhcnJpZXJGb3JWYXJpYWJsZUFjY2Vzcyk7Ci0gICAgfQotICAgIAotICAgIHN0b3JlMzIocmVn
VDEsIHJlZ2lzdGVyUG9pbnRlci0+dGFnUG9pbnRlcigpKTsKLSAgICBzdG9yZTMyKHJlZ1QwLCBy
ZWdpc3RlclBvaW50ZXItPnBheWxvYWRQb2ludGVyKCkpOwotICAgIHVubWFwKCk7Ci19Ci0KLXZv
aWQgSklUOjplbWl0U2xvd19vcF9wdXRfZ2xvYmFsX3Zhcl9jaGVjayhJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQot
ewotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKLSAgICAKLSAgICBKSVRTdHViQ2FsbCBzdHViQ2Fs
bCh0aGlzLCBjdGlfb3BfcHV0X2dsb2JhbF92YXJfY2hlY2spOwotICAgIHN0dWJDYWxsLmFkZEFy
Z3VtZW50KHJlZ1QxLCByZWdUMCk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZElt
bTMyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpKTsKLSAgICBzdHViQ2FsbC5jYWxs
KCk7Ci19Ci0KIHZvaWQgSklUOjpyZXNldFBhdGNoR2V0QnlJZChSZXBhdGNoQnVmZmVyJiByZXBh
dGNoQnVmZmVyLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pCiB7CiAgICAgcmVwYXRjaEJ1
ZmZlci5yZWxpbmsoc3R1YkluZm8tPmNhbGxSZXR1cm5Mb2NhdGlvbiwgY3RpX29wX2dldF9ieV9p
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IGY4M2ZiZDQ5MTdl
NDliMzJhNzcwODk1NGFhOGMyODgzOWIyNmM3NTkuLjk4YTU2YzEyNmQ1M2QyMjEyMzZiYWM2M2Ux
NjJhMjgwNzkzMDZjMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCkBA
IC0yMzc3LDE1ICsyMzc3LDYgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oSlNPYmplY3QqLCBvcF9u
ZXdfYXJyYXlfYnVmZmVyKQogICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheShzdGFja0ZyYW1lLmNh
bGxGcmFtZSwgc3RhY2tGcmFtZS5jYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5jb25zdGFudEJ1ZmZl
cihzdGFja0ZyYW1lLmFyZ3NbMF0uaW50MzIoKSksIHN0YWNrRnJhbWUuYXJnc1sxXS5pbnQzMigp
KTsKIH0KIAotREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfcHV0X2dsb2JhbF92YXJfY2hl
Y2spCi17Ci0gICAgU1RVQl9JTklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUpOwotICAgIAotICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2tGcmFtZS5jYWxsRnJhbWU7Ci0gICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwotICAgIHN5bWJvbFRhYmxl
UHV0KGNvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCksIGNhbGxGcmFtZSwgY29kZUJsb2NrLT5pZGVu
dGlmaWVyKHN0YWNrRnJhbWUuYXJnc1sxXS5pbnQzMigpKSwgc3RhY2tGcmFtZS5hcmdzWzBdLmpz
VmFsdWUoKSwgdHJ1ZSk7Ci19Ci0KIERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVl
LCBvcF9yZXNvbHZlKQogewogICAgIFNUVUJfSU5JVF9TVEFDS19GUkFNRShzdGFja0ZyYW1lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAppbmRleCAyNTE3NzYwNzViMzBkNTZlNWRh
MjVjMThiYTNlMzE0YTM5MjNiMjAzLi5hNmY3OTQ3N2FlZDc2YWI4OTM2ZDVlZDBlNmE3NzEzZjUx
NjkyZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCkBAIC00NDUsNyArNDQ1
LDYgQEAgZXh0ZXJuICJDIiB7CiAgICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2J5X2luZGV4
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwogICAgIHZvaWQgSklUX1NUVUIg
Y3RpX29wX3B1dF9ieV92YWwoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiAg
ICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2dldHRlcl9zZXR0ZXIoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7Ci0gICAgdm9pZCBKSVRfU1RVQiBjdGlfb3BfcHV0X2dsb2Jh
bF92YXJfY2hlY2soU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiAgICAgdm9p
ZCBKSVRfU1RVQiBjdGlfb3BfdGVhcl9vZmZfYWN0aXZhdGlvbihTVFVCX0FSR1NfREVDTEFSQVRJ
T04pIFdURl9JTlRFUk5BTDsKICAgICB2b2lkIEpJVF9TVFVCIGN0aV9vcF90ZWFyX29mZl9hcmd1
bWVudHMoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSBXVEZfSU5URVJOQUw7CiAgICAgdm9pZCBKSVRf
U1RVQiBjdGlfb3BfdGhyb3dfcmVmZXJlbmNlX2Vycm9yKFNUVUJfQVJHU19ERUNMQVJBVElPTikg
V1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQ
YXRocy5jcHAKaW5kZXggYWNkODI0ZmUyZjQ2NTA2YjljOTU0M2JkOWNiODNkYzIyMjFkY2Q2My4u
NzEzM2IwZDg1YjM4MmRlMDViOTY0YmMzMGY4ZjQ0ZmI5MTlkMTJkNyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC04NTYsMTQgKzg1Niw2
IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9yZXNvbHZlX3dpdGhfdGhpcykKICAg
ICBMTElOVF9FTkQoKTsKIH0KIAotTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3B1dF9n
bG9iYWxfdmFyX2NoZWNrKQotewotICAgIExMSU5UX0JFR0lOKCk7Ci0gICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKLSAgICBzeW1ib2xUYWJsZVB1dChjb2RlQmxv
Y2stPmdsb2JhbE9iamVjdCgpLCBleGVjLCBjb2RlQmxvY2stPmlkZW50aWZpZXIocGNbNF0udS5v
cGVyYW5kKSwgTExJTlRfT1BfQygyKS5qc1ZhbHVlKCksIHRydWUpOwotICAgIExMSU5UX0VORCgp
OwotfQotCiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0X2J5X2lkKQogewogICAg
IExMSU5UX0JFR0lOKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQ
YXRocy5oCmluZGV4IDJlMDY5ZDA3MzVkZDk3MWM0NDVhOGMwZTA0MzA1YWMwZTFhODVkMTQuLjM1
NTM0NjI4NzU0YjI5NGMzMjg2MTk2ZDAwNTZiNzgwYTllODFiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCkBAIC0xNDcsNyArMTQ3LDYgQEAgTExJ
TlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9yZXNvbHZlX2Jhc2UpOwogTExJTlRf
U0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzKTsK
IExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcmVzb2x2ZV93aXRoX2Jhc2Up
OwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9yZXNvbHZlX3dpdGhfdGhp
cyk7Ci1MTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF9nbG9iYWxfdmFy
X2NoZWNrKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2J5X2lk
KTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2FyZ3VtZW50c19s
ZW5ndGgpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlcjMyXzY0LmFzbQppbmRleCBkMjdmZDgyMjkwY2U0MDhkYzhlZWQ1ZThiZWNhYWYzMWVi
ZTFjOTBhLi45ZjU0MGY4YzA0MmUwMDQ2OTc4NDE5YzBhNTdlNDYwN2QxMThjMmI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjMyXzY0LmFzbQpAQCAtMTAzOSw3ICsxMDM5LDcgQEAgX2xsaW50X29wX3B1dF9zY29wZWRfdmFy
OgogICAgIGRpc3BhdGNoKDQpCiAKIAotbWFjcm8gZ2V0R2xvYmFsVmFyKHNpemUpCitfbGxpbnRf
b3BfZ2V0X2dsb2JhbF92YXI6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRwIDhbUENd
LCB0MAogICAgIGxvYWRpIDRbUENdLCB0MwpAQCAtMTA0NywxNyArMTA0Nyw5IEBAIG1hY3JvIGdl
dEdsb2JhbFZhcihzaXplKQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbdDBdLCB0MQogICAgIHN0
b3JlaSB0MiwgVGFnT2Zmc2V0W2NmciwgdDMsIDhdCiAgICAgc3RvcmVpIHQxLCBQYXlsb2FkT2Zm
c2V0W2NmciwgdDMsIDhdCi0gICAgbG9hZGkgKHNpemUgLSAxKSAqIDRbUENdLCB0MworICAgIGxv
YWRpIDEyW1BDXSwgdDMKICAgICB2YWx1ZVByb2ZpbGUodDIsIHQxLCB0MykKLSAgICBkaXNwYXRj
aChzaXplKQotZW5kCi0KLV9sbGludF9vcF9nZXRfZ2xvYmFsX3ZhcjoKLSAgICBnZXRHbG9iYWxW
YXIoNCkKLQotCi1fbGxpbnRfb3BfZ2V0X2dsb2JhbF92YXJfd2F0Y2hhYmxlOgotICAgIGdldEds
b2JhbFZhcig1KQorICAgIGRpc3BhdGNoKDQpCiAKIAogX2xsaW50X29wX3B1dF9nbG9iYWxfdmFy
OgpAQCAtMTA3MSwyMiArMTA2Myw2IEBAIF9sbGludF9vcF9wdXRfZ2xvYmFsX3ZhcjoKICAgICBk
aXNwYXRjaCgzKQogCiAKLV9sbGludF9vcF9wdXRfZ2xvYmFsX3Zhcl9jaGVjazoKLSAgICB0cmFj
ZUV4ZWN1dGlvbigpCi0gICAgbG9hZHAgMTJbUENdLCB0MgotICAgIGxvYWRpIDhbUENdLCB0MQot
ICAgIGxvYWRpIDRbUENdLCB0MAotICAgIGJ0Ym56IFt0Ml0sIC5vcFB1dEdsb2JhbFZhckNoZWNr
U2xvdwotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQyLCB0MykKLSAgICB3cml0ZUJh
cnJpZXIodDIsIHQzKQotICAgIHN0b3JlaSB0MiwgVGFnT2Zmc2V0W3QwXQotICAgIHN0b3JlaSB0
MywgUGF5bG9hZE9mZnNldFt0MF0KLSAgICBkaXNwYXRjaCg1KQotLm9wUHV0R2xvYmFsVmFyQ2hl
Y2tTbG93OgotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9nbG9iYWxfdmFy
X2NoZWNrKQotICAgIGRpc3BhdGNoKDUpCi0KLQogX2xsaW50X29wX2dldF9ieV9pZDoKICAgICB0
cmFjZUV4ZWN1dGlvbigpCiAgICAgIyBXZSBvbmx5IGRvIG1vbm9tb3JwaGljIGdldF9ieV9pZCBj
YWNoaW5nIGZvciBub3csIGFuZCB3ZSBkbyBub3QgbW9kaWZ5IHRoZQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRleCBh
MTUzNTg2ZjQwMTkwMmY4YzQ3MTAyNzI4OTBkYTFiZGYzOWM3MGYzLi40ZmU0ZDVlNTlkM2UxNTZj
NDEwZWFkNzkyMDljZTBhZDY0NDQyMWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtODkzLDIzICs4OTMsMTUg
QEAgX2xsaW50X29wX3B1dF9zY29wZWRfdmFyOgogICAgIGRpc3BhdGNoKDQpCiAKIAotbWFjcm8g
Z2V0R2xvYmFsVmFyKHNpemUpCitfbGxpbnRfb3BfZ2V0X2dsb2JhbF92YXI6CiAgICAgdHJhY2VF
eGVjdXRpb24oKQogICAgIGxvYWRwIDE2W1BCLCBQQywgOF0sIHQwCiAgICAgbG9hZGlzIDhbUEIs
IFBDLCA4XSwgdDMKICAgICBsb2FkcCBbdDBdLCB0MQogICAgIHN0b3JlcCB0MSwgW2NmciwgdDMs
IDhdCi0gICAgbG9hZHAgKHNpemUgLSAxKSAqIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCAy
NFtQQiwgUEMsIDhdLCB0MAogICAgIHZhbHVlUHJvZmlsZSh0MSwgdDApCi0gICAgZGlzcGF0Y2go
c2l6ZSkKLWVuZAotCi1fbGxpbnRfb3BfZ2V0X2dsb2JhbF92YXI6Ci0gICAgZ2V0R2xvYmFsVmFy
KDQpCi0KLQotX2xsaW50X29wX2dldF9nbG9iYWxfdmFyX3dhdGNoYWJsZToKLSAgICBnZXRHbG9i
YWxWYXIoNSkKKyAgICBkaXNwYXRjaCg0KQogCiAKIF9sbGludF9vcF9wdXRfZ2xvYmFsX3ZhcjoK
QEAgLTkyMiwyMSArOTE0LDYgQEAgX2xsaW50X29wX3B1dF9nbG9iYWxfdmFyOgogICAgIGRpc3Bh
dGNoKDMpCiAKIAotX2xsaW50X29wX3B1dF9nbG9iYWxfdmFyX2NoZWNrOgotICAgIHRyYWNlRXhl
Y3V0aW9uKCkKLSAgICBsb2FkcCAyNFtQQiwgUEMsIDhdLCB0MgotICAgIGxvYWRpcyAxNltQQiwg
UEMsIDhdLCB0MQotICAgIGxvYWRwIDhbUEIsIFBDLCA4XSwgdDAKLSAgICBidGJueiBbdDJdLCAu
b3BQdXRHbG9iYWxWYXJDaGVja1Nsb3cKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0
MikKLSAgICB3cml0ZUJhcnJpZXIodDIpCi0gICAgc3RvcmVwIHQyLCBbdDBdCi0gICAgZGlzcGF0
Y2goNSkKLS5vcFB1dEdsb2JhbFZhckNoZWNrU2xvdzoKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9wdXRfZ2xvYmFsX3Zhcl9jaGVjaykKLSAgICBkaXNwYXRjaCg1KQotCi0KIF9s
bGludF9vcF9nZXRfYnlfaWQ6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgICMgV2Ugb25seSBk
byBtb25vbW9ycGhpYyBnZXRfYnlfaWQgY2FjaGluZyBmb3Igbm93LCBhbmQgd2UgZG8gbm90IG1v
ZGlmeSB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRl
eCBhYTcxYjhhN2I3ZWZiNzM5NTdiZWU4ODUyNDQzNjE3NTRjMTI4MDdlLi41MjVjMDBiYmRhMjUw
Zjk4NGYzZTFmN2QxNTA3NWNmNGZhM2U4ZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuY3BwCkBAIC01MDQsMjUgKzUwNCwyMiBAQCB2b2lkIEpTT2JqZWN0Ojpy
ZWlmeVN0YXRpY0Z1bmN0aW9uc0ZvckRlbGV0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgc3RydWN0
dXJlKCktPnNldFN0YXRpY0Z1bmN0aW9uc1JlaWZpZWQoKTsKIH0KIAotYm9vbCBKU09iamVjdDo6
cmVtb3ZlRGlyZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSkKK3ZvaWQgSlNPYmplY3Q6OnJlbW92ZURpcmVjdChKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgaWYgKHN0cnVjdHVyZSgp
LT5nZXQoZ2xvYmFsRGF0YSwgcHJvcGVydHlOYW1lKSA9PSBXVEY6Om5vdEZvdW5kKQotICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybjsKIAogICAgIHNpemVfdCBvZmZzZXQ7CiAg
ICAgaWYgKHN0cnVjdHVyZSgpLT5pc1VuY2FjaGVhYmxlRGljdGlvbmFyeSgpKSB7CiAgICAgICAg
IG9mZnNldCA9IHN0cnVjdHVyZSgpLT5yZW1vdmVQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9uKGds
b2JhbERhdGEsIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIGlmIChvZmZzZXQgPT0gV1RGOjpub3RG
b3VuZCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcHV0VW5kZWZpbmVkQXRE
aXJlY3RPZmZzZXQob2Zmc2V0KTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChv
ZmZzZXQgIT0gV1RGOjpub3RGb3VuZCkKKyAgICAgICAgICAgIHB1dFVuZGVmaW5lZEF0RGlyZWN0
T2Zmc2V0KG9mZnNldCk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBzZXRTdHJ1Y3R1
cmUoZ2xvYmFsRGF0YSwgU3RydWN0dXJlOjpyZW1vdmVQcm9wZXJ0eVRyYW5zaXRpb24oZ2xvYmFs
RGF0YSwgc3RydWN0dXJlKCksIHByb3BlcnR5TmFtZSwgb2Zmc2V0KSk7Ci0gICAgaWYgKG9mZnNl
dCA9PSBXVEY6Om5vdEZvdW5kKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcHV0VW5kZWZp
bmVkQXREaXJlY3RPZmZzZXQob2Zmc2V0KTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAob2Zm
c2V0ICE9IFdURjo6bm90Rm91bmQpCisgICAgICAgIHB1dFVuZGVmaW5lZEF0RGlyZWN0T2Zmc2V0
KG9mZnNldCk7CiB9CiAKIE5FVkVSX0lOTElORSB2b2lkIEpTT2JqZWN0OjpmaWxsR2V0dGVyUHJv
cGVydHlTbG90KFByb3BlcnR5U2xvdCYgc2xvdCwgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiog
bG9jYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCBh
Yzg2MDFkZWI5Nzg5NjJkZGQzN2VhNDNlYWZmMzJlNTRlODA3NzMzLi42N2FhMTUxNmMwNmY0NjQ1
YmI4ODQ4MDQ5NGM1MzAwY2NlMDJhZGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmgKQEAgLTE3Niw3ICsxNzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICB2b2lkIHRyYW5zaXRpb25UbyhKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKIAotICAgICAg
ICBib29sIHJlbW92ZURpcmVjdChKU0dsb2JhbERhdGEmLCBQcm9wZXJ0eU5hbWUpOyAvLyBSZXR1
cm4gdHJ1ZSBpZiBhbnl0aGluZyBpcyByZW1vdmVkLgorICAgICAgICB2b2lkIHJlbW92ZURpcmVj
dChKU0dsb2JhbERhdGEmLCBQcm9wZXJ0eU5hbWUpOwogICAgICAgICBib29sIGhhc0N1c3RvbVBy
b3BlcnRpZXMoKSB7IHJldHVybiBzdHJ1Y3R1cmUoKS0+ZGlkVHJhbnNpdGlvbigpOyB9CiAgICAg
ICAgIGJvb2wgaGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcygpIHsgcmV0dXJuIHN0cnVjdHVyZSgp
LT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5oCmluZGV4IDJiYmUyMWQwNjU3
Y2Y2MTAzNjQ2Y2ZlNTgxY2ViMDQwZTA2NTU2NjEuLmE5MzMxNzc4MWUyMWVhNWIxZGY3NjUzYzFi
NjBlODA5NTBmM2I5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU3ltYm9sVGFibGVPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmgKQEAgLTcyLDEyICs3Miw5IEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFN5bWJvbFRhYmxlT2JqZWN0VHlwZT4KIGlubGluZSBib29sIHN5bWJvbFRhYmxlR2V0KAog
ICAgIFN5bWJvbFRhYmxlT2JqZWN0VHlwZSogb2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxl
ID0gb2JqZWN0LT5zeW1ib2xUYWJsZSgpOwotICAgIFN5bWJvbFRhYmxlOjppdGVyYXRvciBpdGVy
ID0gc3ltYm9sVGFibGUuZmluZChwcm9wZXJ0eU5hbWUucHVibGljTmFtZSgpKTsKLSAgICBpZiAo
aXRlciA9PSBzeW1ib2xUYWJsZS5lbmQoKSkKKyAgICBTeW1ib2xUYWJsZUVudHJ5IGVudHJ5ID0g
b2JqZWN0LT5zeW1ib2xUYWJsZSgpLmlubGluZUdldChwcm9wZXJ0eU5hbWUucHVibGljTmFtZSgp
KTsKKyAgICBpZiAoZW50cnkuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBT
eW1ib2xUYWJsZUVudHJ5OjpGYXN0IGVudHJ5ID0gaXRlci0+c2Vjb25kOwotICAgIEFTU0VSVCgh
ZW50cnkuaXNOdWxsKCkpOwogICAgIHNsb3Quc2V0VmFsdWUob2JqZWN0LT5yZWdpc3RlckF0KGVu
dHJ5LmdldEluZGV4KCkpLmdldCgpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTg2LDEyICs4
Myw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFN5bWJvbFRhYmxlT2JqZWN0VHlwZT4KIGlubGluZSBi
b29sIHN5bWJvbFRhYmxlR2V0KAogICAgIFN5bWJvbFRhYmxlT2JqZWN0VHlwZSogb2JqZWN0LCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3Ip
CiB7Ci0gICAgU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlID0gb2JqZWN0LT5zeW1ib2xUYWJsZSgp
OwotICAgIFN5bWJvbFRhYmxlOjppdGVyYXRvciBpdGVyID0gc3ltYm9sVGFibGUuZmluZChwcm9w
ZXJ0eU5hbWUucHVibGljTmFtZSgpKTsKLSAgICBpZiAoaXRlciA9PSBzeW1ib2xUYWJsZS5lbmQo
KSkKKyAgICBTeW1ib2xUYWJsZUVudHJ5IGVudHJ5ID0gb2JqZWN0LT5zeW1ib2xUYWJsZSgpLmlu
bGluZUdldChwcm9wZXJ0eU5hbWUucHVibGljTmFtZSgpKTsKKyAgICBpZiAoZW50cnkuaXNOdWxs
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBTeW1ib2xUYWJsZUVudHJ5OjpGYXN0IGVu
dHJ5ID0gaXRlci0+c2Vjb25kOwotICAgIEFTU0VSVCghZW50cnkuaXNOdWxsKCkpOwogICAgIGRl
c2NyaXB0b3Iuc2V0RGVzY3JpcHRvcigKICAgICAgICAgb2JqZWN0LT5yZWdpc3RlckF0KGVudHJ5
LmdldEluZGV4KCkpLmdldCgpLCBlbnRyeS5nZXRBdHRyaWJ1dGVzKCkgfCBEb250RGVsZXRlKTsK
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwMiwxMiArOTYsOSBAQCBpbmxpbmUgYm9vbCBzeW1ib2xU
YWJsZUdldCgKICAgICBTeW1ib2xUYWJsZU9iamVjdFR5cGUqIG9iamVjdCwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90LAogICAgIGJvb2wmIHNsb3RJc1dyaXRl
YWJsZSkKIHsKLSAgICBTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUgPSBvYmplY3QtPnN5bWJvbFRh
YmxlKCk7Ci0gICAgU3ltYm9sVGFibGU6Oml0ZXJhdG9yIGl0ZXIgPSBzeW1ib2xUYWJsZS5maW5k
KHByb3BlcnR5TmFtZS5wdWJsaWNOYW1lKCkpOwotICAgIGlmIChpdGVyID09IHN5bWJvbFRhYmxl
LmVuZCgpKQorICAgIFN5bWJvbFRhYmxlRW50cnkgZW50cnkgPSBvYmplY3QtPnN5bWJvbFRhYmxl
KCkuaW5saW5lR2V0KHByb3BlcnR5TmFtZS5wdWJsaWNOYW1lKCkpOworICAgIGlmIChlbnRyeS5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFN5bWJvbFRhYmxlRW50cnk6OkZh
c3QgZW50cnkgPSBpdGVyLT5zZWNvbmQ7Ci0gICAgQVNTRVJUKCFlbnRyeS5pc051bGwoKSk7CiAg
ICAgc2xvdC5zZXRWYWx1ZShvYmplY3QtPnJlZ2lzdGVyQXQoZW50cnkuZ2V0SW5kZXgoKSkuZ2V0
KCkpOwogICAgIHNsb3RJc1dyaXRlYWJsZSA9ICFlbnRyeS5pc1JlYWRPbmx5KCk7CiAgICAgcmV0
dXJuIHRydWU7CkBAIC0xMjEsMjEgKzExMiwxNSBAQCBpbmxpbmUgYm9vbCBzeW1ib2xUYWJsZVB1
dCgKICAgICBKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSBleGVjLT5nbG9iYWxEYXRhKCk7CiAg
ICAgQVNTRVJUKCFIZWFwOjpoZWFwKHZhbHVlKSB8fCBIZWFwOjpoZWFwKHZhbHVlKSA9PSBIZWFw
OjpoZWFwKG9iamVjdCkpOwogICAgIAotICAgIFN5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSA9IG9i
amVjdC0+c3ltYm9sVGFibGUoKTsKLSAgICBTeW1ib2xUYWJsZTo6aXRlcmF0b3IgaXRlciA9IHN5
bWJvbFRhYmxlLmZpbmQocHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSk7Ci0gICAgaWYgKGl0ZXIg
PT0gc3ltYm9sVGFibGUuZW5kKCkpCisgICAgU3ltYm9sVGFibGVFbnRyeSBlbnRyeSA9IG9iamVj
dC0+c3ltYm9sVGFibGUoKS5pbmxpbmVHZXQocHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSk7Cisg
ICAgaWYgKGVudHJ5LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgYm9vbCB3
YXNGYXQ7Ci0gICAgU3ltYm9sVGFibGVFbnRyeTo6RmFzdCBmYXN0RW50cnkgPSBpdGVyLT5zZWNv
bmQuZ2V0RmFzdCh3YXNGYXQpOwotICAgIEFTU0VSVCghZmFzdEVudHJ5LmlzTnVsbCgpKTsKLSAg
ICBpZiAoZmFzdEVudHJ5LmlzUmVhZE9ubHkoKSkgeworICAgIGlmIChlbnRyeS5pc1JlYWRPbmx5
KCkpIHsKICAgICAgICAgaWYgKHNob3VsZFRocm93KQogICAgICAgICAgICAgdGhyb3dUeXBlRXJy
b3IoZXhlYywgU3RyaWN0TW9kZVJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQotICAgIGlmIChVTkxJS0VMWSh3YXNGYXQpKQotICAgICAgICBp
dGVyLT5zZWNvbmQubm90aWZ5V3JpdGUoKTsKLSAgICBvYmplY3QtPnJlZ2lzdGVyQXQoZmFzdEVu
dHJ5LmdldEluZGV4KCkpLnNldChnbG9iYWxEYXRhLCBvYmplY3QsIHZhbHVlKTsKKyAgICBvYmpl
Y3QtPnJlZ2lzdGVyQXQoZW50cnkuZ2V0SW5kZXgoKSkuc2V0KGdsb2JhbERhdGEsIG9iamVjdCwg
dmFsdWUpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xNTEsNyArMTM2LDYgQEAgaW5saW5l
IGJvb2wgc3ltYm9sVGFibGVQdXRXaXRoQXR0cmlidXRlcygKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIFN5bWJvbFRhYmxlRW50cnkmIGVudHJ5ID0gaXRlci0+c2Vjb25kOwogICAgIEFTU0VS
VCghZW50cnkuaXNOdWxsKCkpOwotICAgIGVudHJ5Lm5vdGlmeVdyaXRlKCk7CiAgICAgZW50cnku
c2V0QXR0cmlidXRlcyhhdHRyaWJ1dGVzKTsKICAgICBvYmplY3QtPnJlZ2lzdGVyQXQoZW50cnku
Z2V0SW5kZXgoKSkuc2V0KGdsb2JhbERhdGEsIG9iamVjdCwgdmFsdWUpOwogICAgIHJldHVybiB0
cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sVGFi
bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sVGFibGUuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OWUyZjIzN2Y4OWJhM2I1Yzc3NTk0Mzk1ZDdi
M2ZmOWYyZjNhYTE2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDk2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJT
eW1ib2xUYWJsZS5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotU3ltYm9sVGFibGVFbnRyeSYgU3lt
Ym9sVGFibGVFbnRyeTo6Y29weVNsb3coY29uc3QgU3ltYm9sVGFibGVFbnRyeSYgb3RoZXIpCi17
Ci0gICAgQVNTRVJUKG90aGVyLmlzRmF0KCkpOwotICAgIEZhdEVudHJ5KiBuZXdGYXRFbnRyeSA9
IG5ldyBGYXRFbnRyeSgqb3RoZXIuZmF0RW50cnkoKSk7Ci0gICAgZnJlZUZhdEVudHJ5KCk7Ci0g
ICAgbV9iaXRzID0gYml0d2lzZV9jYXN0PGludHB0cl90PihuZXdGYXRFbnRyeSkgfCBGYXRGbGFn
OwotICAgIHJldHVybiAqdGhpczsKLX0KLQotdm9pZCBTeW1ib2xUYWJsZUVudHJ5OjpmcmVlRmF0
RW50cnlTbG93KCkKLXsKLSAgICBBU1NFUlQoaXNGYXQoKSk7Ci0gICAgZGVsZXRlIGZhdEVudHJ5
KCk7Ci19Ci0KLWJvb2wgU3ltYm9sVGFibGVFbnRyeTo6Y291bGRCZVdhdGNoZWQoKQotewotICAg
IGlmICghaXNGYXQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFdhdGNocG9pbnRTZXQq
IHdhdGNocG9pbnRzID0gZmF0RW50cnkoKS0+bV93YXRjaHBvaW50cy5nZXQoKTsKLSAgICBpZiAo
IXdhdGNocG9pbnRzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHdhdGNocG9p
bnRzLT5pc1N0aWxsVmFsaWQoKTsKLX0KLQotdm9pZCBTeW1ib2xUYWJsZUVudHJ5OjphdHRlbXB0
VG9XYXRjaCgpCi17Ci0gICAgRmF0RW50cnkqIGVudHJ5ID0gaW5mbGF0ZSgpOwotICAgIGlmICgh
ZW50cnktPm1fd2F0Y2hwb2ludHMpIHsKLSAgICAgICAgZW50cnktPm1fd2F0Y2hwb2ludHMgPSBh
ZG9wdFJlZihuZXcgV2F0Y2hwb2ludFNldCgpKTsKLSAgICAgICAgZW50cnktPm1fd2F0Y2hwb2lu
dHMtPnN0YXJ0V2F0Y2hpbmcoKTsKLSAgICB9Ci19Ci0KLWJvb2wqIFN5bWJvbFRhYmxlRW50cnk6
OmFkZHJlc3NPZklzV2F0Y2hlZCgpCi17Ci0gICAgQVNTRVJUKGNvdWxkQmVXYXRjaGVkKCkpOwot
ICAgIHJldHVybiBmYXRFbnRyeSgpLT5tX3dhdGNocG9pbnRzLT5hZGRyZXNzT2ZJc1dhdGNoZWQo
KTsKLX0KLQotdm9pZCBTeW1ib2xUYWJsZUVudHJ5OjphZGRXYXRjaHBvaW50KFdhdGNocG9pbnQq
IHdhdGNocG9pbnQpCi17Ci0gICAgQVNTRVJUKGNvdWxkQmVXYXRjaGVkKCkpOwotICAgIGZhdEVu
dHJ5KCktPm1fd2F0Y2hwb2ludHMtPmFkZCh3YXRjaHBvaW50KTsKLX0KLQotdm9pZCBTeW1ib2xU
YWJsZUVudHJ5Ojpub3RpZnlXcml0ZVNsb3coKQotewotICAgIFdhdGNocG9pbnRTZXQqIHdhdGNo
cG9pbnRzID0gZmF0RW50cnkoKS0+bV93YXRjaHBvaW50cy5nZXQoKTsKLSAgICBpZiAoIXdhdGNo
cG9pbnRzKQotICAgICAgICByZXR1cm47Ci0gICAgd2F0Y2hwb2ludHMtPm5vdGlmeVdyaXRlKCk7
Ci19Ci0KLVN5bWJvbFRhYmxlRW50cnk6OkZhdEVudHJ5KiBTeW1ib2xUYWJsZUVudHJ5OjppbmZs
YXRlU2xvdygpCi17Ci0gICAgRmF0RW50cnkqIGVudHJ5ID0gbmV3IEZhdEVudHJ5KG1fYml0cyk7
Ci0gICAgbV9iaXRzID0gYml0d2lzZV9jYXN0PGludHB0cl90PihlbnRyeSkgfCBGYXRGbGFnOwot
ICAgIHJldHVybiBlbnRyeTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5oCmluZGV4IDlkZGMzMmM4YzUwZmMwZmM1
YWU1NTFlNjNkMWM3MjFkMzVjNmMwNTEuLmY1NDBhMTJjNzNlZjE3MjZmNmMyZmRhZWZlZDU5MWU1
Y2VlYTM2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJv
bFRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sVGFibGUu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzEsMTYzICszMSw1MyBAQAogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIK
ICNpbmNsdWRlICJVU3RyaW5nLmgiCi0jaW5jbHVkZSAiV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUg
PHd0Zi9BbHdheXNJbmxpbmUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgogCiBuYW1l
c3BhY2UgSlNDIHsKIAotICAgIGNsYXNzIFdhdGNocG9pbnQ7Ci0gICAgY2xhc3MgV2F0Y2hwb2lu
dFNldDsKLQogICAgIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGludCBtaXNzaW5nU3ltYm9sTWFya2Vy
KCkgeyByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKTsgfQogCiAgICAgLy8g
VGhlIGJpdCB0d2lkZGxpbmcgaW4gdGhpcyBjbGFzcyBhc3N1bWVzIHRoYXQgZXZlcnkgcmVnaXN0
ZXIgaW5kZXggaXMgYQogICAgIC8vIHJlYXNvbmFibHkgc21hbGwgcG9zaXRpdmUgb3IgbmVnYXRp
dmUgbnVtYmVyLCBhbmQgdGhlcmVmb3JlIGhhcyBpdHMgaGlnaAogICAgIC8vIGZvdXIgYml0cyBh
bGwgc2V0IG9yIGFsbCB1bnNldC4KIAotICAgIC8vIEluIGFkZGl0aW9uIHRvIGltcGxlbWVudGlu
ZyBzZW1hbnRpY3MtbWFuZGF0ZWQgdmFyaWFibGUgYXR0cmlidXRlcyBhbmQKLSAgICAvLyBpbXBs
ZW1lbnRhdGlvbi1tYW5kYXRlZCB2YXJpYWJsZSBpbmRleGluZywgdGhpcyBjbGFzcyBhbHNvIGlt
cGxlbWVudHMKLSAgICAvLyB3YXRjaHBvaW50cyB0byBiZSB1c2VkIGZvciBKSVQgb3B0aW1pemF0
aW9ucy4gQmVjYXVzZSB3YXRjaHBvaW50cyBhcmUKLSAgICAvLyBtZWFudCB0byBiZSByZWxhdGl2
ZWx5IHJhcmUsIHRoaXMgY2xhc3Mgb3B0aW1pemVzIGhlYXZpbHkgZm9yIHRoZSBjYXNlCi0gICAg
Ly8gdGhhdCB0aGV5IGFyZSBub3QgYmVpbmcgdXNlZC4gVG8gdGhhdCBlbmQsIHRoaXMgY2xhc3Mg
dXNlcyB0aGUgdGhpbi1mYXQKLSAgICAvLyBpZGlvbTogZWl0aGVyIGl0IGlzIHRoaW4sIGluIHdo
aWNoIGNhc2UgaXQgY29udGFpbnMgYW4gaW4tcGxhY2UgZW5jb2RlZAotICAgIC8vIHdvcmQgdGhh
dCBjb25zaXN0cyBvZiBhdHRyaWJ1dGVzLCB0aGUgaW5kZXgsIGFuZCBhIGJpdCBzYXlpbmcgdGhh
dCBpdCBpcwotICAgIC8vIHRoaW47IG9yIGl0IGlzIGZhdCwgaW4gd2hpY2ggY2FzZSBpdCBjb250
YWlucyBhIHBvaW50ZXIgdG8gYSBtYWxsb2MnZAotICAgIC8vIGRhdGEgc3RydWN0dXJlIGFuZCBh
IGJpdCBzYXlpbmcgdGhhdCBpdCBpcyBmYXQuIFRoZSBtYWxsb2MnZCBkYXRhCi0gICAgLy8gc3Ry
dWN0dXJlIHdpbGwgYmUgbWFsbG9jZWQgYSBzZWNvbmQgdGltZSB1cG9uIGNvcHksIHRvIHByZXNl
cnZlIHRoZQotICAgIC8vIHByb3BlcnR5IHRoYXQgaW4tcGxhY2UgZWRpdHMgdG8gU3ltYm9sVGFi
bGVFbnRyeSBkbyBub3QgbWFuaWZlc3QgaW4gYW55Ci0gICAgLy8gY29waWVzLiBIb3dldmVyLCB0
aGUgbWFsbG9jJ2QgRmF0RW50cnkgZGF0YSBzdHJ1Y3R1cmUgY29udGFpbnMgYSByZWYtCi0gICAg
Ly8gY291bnRlZCBwb2ludGVyIHRvIGEgc2hhcmVkIFdhdGNocG9pbnRTZXQuIFRodXMsIGluLXBs
YWNlIGVkaXRzIG9mIHRoZQotICAgIC8vIFdhdGNocG9pbnRTZXQgd2lsbCBtYW5pZmVzdCBpbiBh
bGwgY29waWVzLiBIZXJlJ3MgYSBwaWN0dXJlOgotICAgIC8vCi0gICAgLy8gU3ltYm9sVGFibGVF
bnRyeSAtLT4gRmF0RW50cnkgLS0+IFdhdGNocG9pbnRTZXQKLSAgICAvLwotICAgIC8vIElmIHlv
dSBtYWtlIGEgY29weSBvZiBhIFN5bWJvbFRhYmxlRW50cnksIHlvdSB3aWxsIGhhdmU6Ci0gICAg
Ly8KLSAgICAvLyBvcmlnaW5hbDogU3ltYm9sVGFibGVFbnRyeSAtLT4gRmF0RW50cnkgLS0+IFdh
dGNocG9pbnRTZXQKLSAgICAvLyBjb3B5OiAgICAgU3ltYm9sVGFibGVFbnRyeSAtLT4gRmF0RW50
cnkgLS0tLS1eCi0KICAgICBzdHJ1Y3QgU3ltYm9sVGFibGVFbnRyeSB7Ci0gICAgICAgIC8vIFVz
ZSB0aGUgU3ltYm9sVGFibGVFbnRyeTo6RmFzdCBjbGFzcywgZWl0aGVyIHZpYSBpbXBsaWNpdCBj
YXN0IG9yIGJ5IGNhbGxpbmcKLSAgICAgICAgLy8gZ2V0RmFzdCgpLCB3aGVuIHlvdSAoMSkgb25s
eSBjYXJlIGFib3V0IGlzTnVsbCgpLCBnZXRJbmRleCgpLCBhbmQgaXNSZWFkT25seSgpLAotICAg
ICAgICAvLyBhbmQgKDIpIHlvdSBhcmUgaW4gYSBob3QgcGF0aCB3aGVyZSB5b3UgbmVlZCB0byBt
aW5pbWl6ZSB0aGUgbnVtYmVyIG9mIHRpbWVzCi0gICAgICAgIC8vIHRoYXQgeW91IGJyYW5jaCBv
biBpc0ZhdCgpIHdoZW4gZ2V0dGluZyB0aGUgYml0cygpLgotICAgICAgICBjbGFzcyBGYXN0IHsK
LSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgRmFzdCgpCi0gICAgICAgICAgICAgICAgOiBt
X2JpdHMoMCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgQUxXQVlTX0lOTElORSBGYXN0KGNvbnN0IFN5bWJvbFRhYmxlRW50cnkmIGVudHJ5
KQotICAgICAgICAgICAgICAgIDogbV9iaXRzKGVudHJ5LmJpdHMoKSkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgICAgICBib29sIGlzTnVsbCgpIGNvbnN0
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICFtX2JpdHM7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGludCBnZXRJbmRleCgpIGNvbnN0Ci0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4obV9iaXRzID4+IEZsYWdC
aXRzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgICAgICBib29sIGlzUmVhZE9u
bHkoKSBjb25zdAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBtX2JpdHMg
JiBSZWFkT25seUZsYWc7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IHVuc2lnbmVkIGdldEF0dHJpYnV0ZXMoKSBjb25zdAotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSAwOwotICAgICAgICAgICAgICAgIGlmIChtX2Jp
dHMgJiBSZWFkT25seUZsYWcpCi0gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgfD0gUmVh
ZE9ubHk7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYml0cyAmIERvbnRFbnVtRmxhZykKLSAgICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlcyB8PSBEb250RW51bTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gYXR0cmlidXRlczsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYm9vbCBpc0Zh
dCgpIGNvbnN0Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1fYml0cyAm
IEZhdEZsYWc7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgcHJpdmF0ZToK
LSAgICAgICAgICAgIGZyaWVuZCBzdHJ1Y3QgU3ltYm9sVGFibGVFbnRyeTsKLSAgICAgICAgICAg
IGludHB0cl90IG1fYml0czsKLSAgICAgICAgfTsKLQogICAgICAgICBTeW1ib2xUYWJsZUVudHJ5
KCkKICAgICAgICAgICAgIDogbV9iaXRzKDApCiAgICAgICAgIHsKICAgICAgICAgfQogCiAgICAg
ICAgIFN5bWJvbFRhYmxlRW50cnkoaW50IGluZGV4KQotICAgICAgICAgICAgOiBtX2JpdHMoMCkK
ICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKGlzVmFsaWRJbmRleChpbmRleCkpOwogICAg
ICAgICAgICAgcGFjayhpbmRleCwgZmFsc2UsIGZhbHNlKTsKICAgICAgICAgfQogCiAgICAgICAg
IFN5bWJvbFRhYmxlRW50cnkoaW50IGluZGV4LCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQotICAgICAg
ICAgICAgOiBtX2JpdHMoMCkKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKGlzVmFsaWRJ
bmRleChpbmRleCkpOwogICAgICAgICAgICAgcGFjayhpbmRleCwgYXR0cmlidXRlcyAmIFJlYWRP
bmx5LCBhdHRyaWJ1dGVzICYgRG9udEVudW0pOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAg
ICB+U3ltYm9sVGFibGVFbnRyeSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZyZWVGYXRFbnRy
eSgpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBTeW1ib2xUYWJsZUVudHJ5KGNvbnN0
IFN5bWJvbFRhYmxlRW50cnkmIG90aGVyKQotICAgICAgICAgICAgOiBtX2JpdHMoMCkKLSAgICAg
ICAgewotICAgICAgICAgICAgKnRoaXMgPSBvdGhlcjsKLSAgICAgICAgfQotICAgICAgICAKLSAg
ICAgICAgU3ltYm9sVGFibGVFbnRyeSYgb3BlcmF0b3I9KGNvbnN0IFN5bWJvbFRhYmxlRW50cnkm
IG90aGVyKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoVU5MSUtFTFkob3RoZXIuaXNGYXQo
KSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNvcHlTbG93KG90aGVyKTsKLSAgICAgICAgICAg
IGZyZWVGYXRFbnRyeSgpOwotICAgICAgICAgICAgbV9iaXRzID0gb3RoZXIubV9iaXRzOwotICAg
ICAgICAgICAgcmV0dXJuICp0aGlzOwotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBib29s
IGlzTnVsbCgpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAhYml0cygpOwor
ICAgICAgICAgICAgcmV0dXJuICFtX2JpdHM7CiAgICAgICAgIH0KIAogICAgICAgICBpbnQgZ2V0
SW5kZXgoKSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
aW50PihiaXRzKCkgPj4gRmxhZ0JpdHMpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBB
TFdBWVNfSU5MSU5FIEZhc3QgZ2V0RmFzdCgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBGYXN0KCp0aGlzKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgQUxXQVlT
X0lOTElORSBGYXN0IGdldEZhc3QoYm9vbCYgd2FzRmF0KSBjb25zdAotICAgICAgICB7Ci0gICAg
ICAgICAgICBGYXN0IHJlc3VsdDsKLSAgICAgICAgICAgIHdhc0ZhdCA9IGlzRmF0KCk7Ci0gICAg
ICAgICAgICBpZiAod2FzRmF0KQotICAgICAgICAgICAgICAgIHJlc3VsdC5tX2JpdHMgPSBmYXRF
bnRyeSgpLT5tX2JpdHM7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0
Lm1fYml0cyA9IG1fYml0czsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAg
ICByZXR1cm4gbV9iaXRzID4+IEZsYWdCaXRzOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAg
ICAgIHVuc2lnbmVkIGdldEF0dHJpYnV0ZXMoKSBjb25zdAogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gZ2V0RmFzdCgpLmdldEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgICAgIHVuc2lnbmVk
IGF0dHJpYnV0ZXMgPSAwOworICAgICAgICAgICAgaWYgKG1fYml0cyAmIFJlYWRPbmx5RmxhZykK
KyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzIHw9IFJlYWRPbmx5OworICAgICAgICAgICAgaWYg
KG1fYml0cyAmIERvbnRFbnVtRmxhZykKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzIHw9IERv
bnRFbnVtOworICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXM7CiAgICAgICAgIH0KIAogICAg
ICAgICB2b2lkIHNldEF0dHJpYnV0ZXModW5zaWduZWQgYXR0cmlidXRlcykKQEAgLTE5NywxMjUg
Kzg3LDMwIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIGJvb2wgaXNSZWFkT25seSgpIGNv
bnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiaXRzKCkgJiBSZWFkT25seUZsYWc7
Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGJvb2wgY291bGRCZVdhdGNoZWQoKTsKLSAg
ICAgICAgCi0gICAgICAgIC8vIE5vdGlmeSBhbiBvcHBvcnR1bml0eSB0byBjcmVhdGUgYSB3YXRj
aHBvaW50IGZvciBhIHZhcmlhYmxlLiBUaGlzIGlzCi0gICAgICAgIC8vIGlkZW1wb3RlbnQgYW5k
IGZhaWwtc2lsZW50LiBJdCBpcyBpZGVtcG90ZW50IGluIHRoZSBzZW5zZSB0aGF0IGlmCi0gICAg
ICAgIC8vIGEgd2F0Y2hwb2ludCBzZXQgaGFkIGFscmVhZHkgYmVlbiBjcmVhdGVkLCB0aGVuIGFu
b3RoZXIgb25lIHdpbGwgbm90Ci0gICAgICAgIC8vIGJlIGNyZWF0ZWQuIEhlbmNlIHR3byBjYWxs
cyB0byB0aGlzIG1ldGhvZCBoYXZlIHRoZSBzYW1lIGVmZmVjdCBhcwotICAgICAgICAvLyBvbmUg
Y2FsbC4gSXQgaXMgYWxzbyBmYWlsLXNpbGVudCwgaW4gdGhlIHNlbnNlIHRoYXQgaWYgYSB3YXRj
aHBvaW50Ci0gICAgICAgIC8vIHNldCBoYWQgYmVlbiBjcmVhdGVkIGFuZCBoYWQgYWxyZWFkeSBi
ZWVuIGludmFsaWRhdGVkLCB0aGVuIHRoaXMgd2lsbAotICAgICAgICAvLyBqdXN0IHJldHVybi4g
VGhpcyBtZWFucyB0aGF0IGNvdWxkQmVXYXRjaGVkKCkgbWF5IHJldHVybiBmYWxzZSBldmVuCi0g
ICAgICAgIC8vIGltbWVkaWF0ZWx5IGFmdGVyIGEgY2FsbCB0byBhdHRlbXB0VG9XYXRjaCgpLgot
ICAgICAgICB2b2lkIGF0dGVtcHRUb1dhdGNoKCk7Ci0gICAgICAgIAotICAgICAgICBib29sKiBh
ZGRyZXNzT2ZJc1dhdGNoZWQoKTsKLSAgICAgICAgCi0gICAgICAgIHZvaWQgYWRkV2F0Y2hwb2lu
dChXYXRjaHBvaW50Kik7Ci0gICAgICAgIAotICAgICAgICBXYXRjaHBvaW50U2V0KiB3YXRjaHBv
aW50U2V0KCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGZhdEVudHJ5KCktPm1fd2F0
Y2hwb2ludHMuZ2V0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIEFMV0FZU19JTkxJ
TkUgdm9pZCBub3RpZnlXcml0ZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChMSUtFTFko
IWlzRmF0KCkpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIG5vdGlmeVdy
aXRlU2xvdygpOworICAgICAgICAgICAgcmV0dXJuIG1fYml0cyAmIFJlYWRPbmx5RmxhZzsKICAg
ICAgICAgfQotICAgICAgICAKKwogICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRpYyBjb25zdCBp
bnRwdHJfdCBGYXRGbGFnID0gMHgxOwotICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgUmVh
ZE9ubHlGbGFnID0gMHgyOwotICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgRG9udEVudW1G
bGFnID0gMHg0OwotICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgTm90TnVsbEZsYWcgPSAw
eDg7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBGbGFnQml0cyA9IDQ7Ci0gICAgICAg
IAotICAgICAgICBjbGFzcyBGYXRFbnRyeSB7Ci0gICAgICAgICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgRmF0RW50cnkoaW50cHRyX3Qg
Yml0cykKLSAgICAgICAgICAgICAgICA6IG1fYml0cyhiaXRzIHwgRmF0RmxhZykKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgaW50cHRyX3Qg
bV9iaXRzOyAvLyBhbHdheXMgaGFzIEZhdEZsYWcgc2V0IGFuZCBleGFjdGx5IG1hdGNoZXMgd2hh
dCB0aGUgYml0cyB3b3VsZCBoYXZlIGJlZW4gaWYgdGhpcyB3YXNuJ3QgZmF0LgotICAgICAgICAg
ICAgCi0gICAgICAgICAgICBSZWZQdHI8V2F0Y2hwb2ludFNldD4gbV93YXRjaHBvaW50czsKLSAg
ICAgICAgfTsKLSAgICAgICAgCi0gICAgICAgIFN5bWJvbFRhYmxlRW50cnkmIGNvcHlTbG93KGNv
bnN0IFN5bWJvbFRhYmxlRW50cnkmKTsKLSAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBu
b3RpZnlXcml0ZVNsb3coKTsKLSAgICAgICAgCi0gICAgICAgIGJvb2wgaXNGYXQoKSBjb25zdAot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9iaXRzICYgRmF0RmxhZzsKLSAgICAgICAg
fQotICAgICAgICAKLSAgICAgICAgY29uc3QgRmF0RW50cnkqIGZhdEVudHJ5KCkgY29uc3QKLSAg
ICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGlzRmF0KCkpOwotICAgICAgICAgICAgcmV0dXJu
IGJpdHdpc2VfY2FzdDxjb25zdCBGYXRFbnRyeSo+KG1fYml0cyAmIH5GYXRGbGFnKTsKLSAgICAg
ICAgfQotICAgICAgICAKLSAgICAgICAgRmF0RW50cnkqIGZhdEVudHJ5KCkKLSAgICAgICAgewot
ICAgICAgICAgICAgQVNTRVJUKGlzRmF0KCkpOwotICAgICAgICAgICAgcmV0dXJuIGJpdHdpc2Vf
Y2FzdDxGYXRFbnRyeSo+KG1fYml0cyAmIH5GYXRGbGFnKTsKLSAgICAgICAgfQotICAgICAgICAK
LSAgICAgICAgRmF0RW50cnkqIGluZmxhdGUoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAo
TElLRUxZKGlzRmF0KCkpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYXRFbnRyeSgpOwotICAg
ICAgICAgICAgcmV0dXJuIGluZmxhdGVTbG93KCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIEZhdEVudHJ5KiBpbmZsYXRlU2xvdygpOwotICAgICAgICAKLSAgICAgICAgQUxXQVlTX0lO
TElORSBpbnRwdHJfdCBiaXRzKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGlz
RmF0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhdEVudHJ5KCktPm1fYml0czsKLSAgICAg
ICAgICAgIHJldHVybiBtX2JpdHM7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIEFMV0FZ
U19JTkxJTkUgaW50cHRyX3QmIGJpdHMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoaXNG
YXQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmF0RW50cnkoKS0+bV9iaXRzOwotICAgICAg
ICAgICAgcmV0dXJuIG1fYml0czsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBm
cmVlRmF0RW50cnkoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoTElLRUxZKCFpc0ZhdCgp
KSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBmcmVlRmF0RW50cnlTbG93
KCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgZnJlZUZhdEVudHJ5U2xvdygp
OworICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgUmVhZE9ubHlGbGFnID0gMHgxOworICAg
ICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgRG9udEVudW1GbGFnID0gMHgyOworICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgTm90TnVsbEZsYWcgPSAweDQ7CisgICAgICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBGbGFnQml0cyA9IDM7CiAKICAgICAgICAgdm9pZCBwYWNrKGludCBpbmRl
eCwgYm9vbCByZWFkT25seSwgYm9vbCBkb250RW51bSkKICAgICAgICAgewotICAgICAgICAgICAg
aW50cHRyX3QmIGJpdHNSZWYgPSBiaXRzKCk7Ci0gICAgICAgICAgICBiaXRzUmVmID0gKHN0YXRp
Y19jYXN0PGludHB0cl90PihpbmRleCkgPDwgRmxhZ0JpdHMpIHwgTm90TnVsbEZsYWc7CisgICAg
ICAgICAgICBtX2JpdHMgPSAoaW5kZXggPDwgRmxhZ0JpdHMpIHwgTm90TnVsbEZsYWc7CiAgICAg
ICAgICAgICBpZiAocmVhZE9ubHkpCi0gICAgICAgICAgICAgICAgYml0c1JlZiB8PSBSZWFkT25s
eUZsYWc7CisgICAgICAgICAgICAgICAgbV9iaXRzIHw9IFJlYWRPbmx5RmxhZzsKICAgICAgICAg
ICAgIGlmIChkb250RW51bSkKLSAgICAgICAgICAgICAgICBiaXRzUmVmIHw9IERvbnRFbnVtRmxh
ZzsKKyAgICAgICAgICAgICAgICBtX2JpdHMgfD0gRG9udEVudW1GbGFnOwogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICBib29sIGlzVmFsaWRJbmRleChpbnQgaW5kZXgpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiAoKHN0YXRpY19jYXN0PGludHB0cl90PihpbmRleCkgPDwgRmxh
Z0JpdHMpID4+IEZsYWdCaXRzKSA9PSBzdGF0aWNfY2FzdDxpbnRwdHJfdD4oaW5kZXgpOworICAg
ICAgICAgICAgcmV0dXJuICgoaW5kZXggPDwgRmxhZ0JpdHMpID4+IEZsYWdCaXRzKSA9PSBpbmRl
eDsKICAgICAgICAgfQogCi0gICAgICAgIGludHB0cl90IG1fYml0czsKKyAgICAgICAgaW50IG1f
Yml0czsKICAgICB9OwogCiAgICAgc3RydWN0IFN5bWJvbFRhYmxlSW5kZXhIYXNoVHJhaXRzIDog
SGFzaFRyYWl0czxTeW1ib2xUYWJsZUVudHJ5PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9TZWdtZW50ZWRWZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL1NlZ21lbnRlZFZlY3Rvci5oCmlu
ZGV4IDYzZDg5ZDdhYjAwNzI1ZTk0ZmM0ZWQyMjVhNDg1MDNiZjJlYjU0NDUuLjk5ZDVmOTQ0YmRj
OTkwMTRlOTY3ZTYxYzhkMWRkNjBmZTU5MTAzYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1NlZ21lbnRlZFZlY3Rvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1NlZ21lbnRlZFZlY3Rvci5o
CkBAIC0zNCwxMiArMzQsMTIgQEAKIG5hbWVzcGFjZSBXVEYgewogCiAgICAgLy8gQW4gaXRlcmF0
b3IgZm9yIFNlZ21lbnRlZFZlY3Rvci4gSXQgc3VwcG9ydHMgb25seSB0aGUgcHJlICsrIG9wZXJh
dG9yCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBTZWdtZW50U2l6ZSA9IDgsIHNp
emVfdCBJbmxpbmVDYXBhY2l0eSA9IDMyPiBjbGFzcyBTZWdtZW50ZWRWZWN0b3I7Ci0gICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBTZWdtZW50U2l6ZSA9IDgsIHNpemVfdCBJbmxpbmVD
YXBhY2l0eSA9IDMyPiBjbGFzcyBTZWdtZW50ZWRWZWN0b3JJdGVyYXRvciB7CisgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQsIHNpemVfdCBTZWdtZW50U2l6ZT4gY2xhc3MgU2VnbWVudGVkVmVjdG9y
OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3QgU2VnbWVudFNpemU+IGNsYXNzIFNl
Z21lbnRlZFZlY3Rvckl0ZXJhdG9yIHsKICAgICBwcml2YXRlOgotICAgICAgICBmcmllbmQgY2xh
c3MgU2VnbWVudGVkVmVjdG9yPFQsIFNlZ21lbnRTaXplLCBJbmxpbmVDYXBhY2l0eT47CisgICAg
ICAgIGZyaWVuZCBjbGFzcyBTZWdtZW50ZWRWZWN0b3I8VCwgU2VnbWVudFNpemU+OwogICAgIHB1
YmxpYzoKLSAgICAgICAgdHlwZWRlZiBTZWdtZW50ZWRWZWN0b3JJdGVyYXRvcjxULCBTZWdtZW50
U2l6ZSwgSW5saW5lQ2FwYWNpdHk+IEl0ZXJhdG9yOworICAgICAgICB0eXBlZGVmIFNlZ21lbnRl
ZFZlY3Rvckl0ZXJhdG9yPFQsIFNlZ21lbnRTaXplPiBJdGVyYXRvcjsKIAogICAgICAgICB+U2Vn
bWVudGVkVmVjdG9ySXRlcmF0b3IoKSB7IH0KIApAQCAtNzUsNyArNzUsNyBAQCBuYW1lc3BhY2Ug
V1RGIHsKICAgICAgICAgICAgIHJldHVybiBtX2luZGV4ICE9IG90aGVyLm1faW5kZXggfHwgbV9z
ZWdtZW50ICE9IG90aGVyLm1fc2VnbWVudCB8fCAmbV92ZWN0b3IgIT0gJm90aGVyLm1fdmVjdG9y
OwogICAgICAgICB9CiAKLSAgICAgICAgU2VnbWVudGVkVmVjdG9ySXRlcmF0b3ImIG9wZXJhdG9y
PShjb25zdCBTZWdtZW50ZWRWZWN0b3JJdGVyYXRvcjxULCBTZWdtZW50U2l6ZSwgSW5saW5lQ2Fw
YWNpdHk+JiBvdGhlcikKKyAgICAgICAgU2VnbWVudGVkVmVjdG9ySXRlcmF0b3ImIG9wZXJhdG9y
PShjb25zdCBTZWdtZW50ZWRWZWN0b3JJdGVyYXRvcjxULCBTZWdtZW50U2l6ZT4mIG90aGVyKQog
ICAgICAgICB7CiAgICAgICAgICAgICBtX3ZlY3RvciA9IG90aGVyLm1fdmVjdG9yOwogICAgICAg
ICAgICAgbV9zZWdtZW50ID0gb3RoZXIubV9zZWdtZW50OwpAQCAtODQsMjggKzg0LDI1IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgICAgICB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBTZWdtZW50
ZWRWZWN0b3JJdGVyYXRvcihTZWdtZW50ZWRWZWN0b3I8VCwgU2VnbWVudFNpemUsIElubGluZUNh
cGFjaXR5PiYgdmVjdG9yLCBzaXplX3Qgc2VnbWVudCwgc2l6ZV90IGluZGV4KQorICAgICAgICBT
ZWdtZW50ZWRWZWN0b3JJdGVyYXRvcihTZWdtZW50ZWRWZWN0b3I8VCwgU2VnbWVudFNpemU+JiB2
ZWN0b3IsIHNpemVfdCBzZWdtZW50LCBzaXplX3QgaW5kZXgpCiAgICAgICAgICAgICA6IG1fdmVj
dG9yKHZlY3RvcikKICAgICAgICAgICAgICwgbV9zZWdtZW50KHNlZ21lbnQpCiAgICAgICAgICAg
ICAsIG1faW5kZXgoaW5kZXgpCiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIFNlZ21l
bnRlZFZlY3RvcjxULCBTZWdtZW50U2l6ZSwgSW5saW5lQ2FwYWNpdHk+JiBtX3ZlY3RvcjsKKyAg
ICAgICAgU2VnbWVudGVkVmVjdG9yPFQsIFNlZ21lbnRTaXplPiYgbV92ZWN0b3I7CiAgICAgICAg
IHNpemVfdCBtX3NlZ21lbnQ7CiAgICAgICAgIHNpemVfdCBtX2luZGV4OwogICAgIH07CiAKICAg
ICAvLyBTZWdtZW50ZWRWZWN0b3IgaXMganVzdCBsaWtlIFZlY3RvciwgYnV0IGl0IGRvZXNuJ3Qg
bW92ZSB0aGUgdmFsdWVzCiAgICAgLy8gc3RvcmVkIGluIGl0cyBidWZmZXIgd2hlbiBpdCBncm93
cy4gVGhlcmVmb3JlLCBpdCBpcyBzYWZlIHRvIGtlZXAKLSAgICAvLyBwb2ludGVycyBpbnRvIGEg
U2VnbWVudGVkVmVjdG9yLiBUaGUgZGVmYXVsdCB0dW5pbmcgdmFsdWVzIGFyZQotICAgIC8vIG9w
dGltaXplZCBmb3Igc2VnbWVudGVkIHZlY3RvcnMgdGhhdCBnZXQgbGFyZ2U7IHlvdSBtYXkgd2Fu
dCB0byB1c2UKLSAgICAvLyBTZWdtZW50ZWRWZWN0b3I8dGhpbmd5LCAxLCAwPiBpZiB5b3UgZG9u
J3QgZXhwZWN0IGEgbG90IG9mIGVudHJpZXMuCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHNp
emVfdCBTZWdtZW50U2l6ZSwgc2l6ZV90IElubGluZUNhcGFjaXR5PgotICAgIGNsYXNzIFNlZ21l
bnRlZFZlY3RvciB7Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBTZWdtZW50ZWRWZWN0b3JJdGVyYXRv
cjxULCBTZWdtZW50U2l6ZSwgSW5saW5lQ2FwYWNpdHk+OworICAgIC8vIHBvaW50ZXJzIGludG8g
YSBTZWdtZW50ZWRWZWN0b3IuCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBTZWdt
ZW50U2l6ZT4gY2xhc3MgU2VnbWVudGVkVmVjdG9yIHsKKyAgICAgICAgZnJpZW5kIGNsYXNzIFNl
Z21lbnRlZFZlY3Rvckl0ZXJhdG9yPFQsIFNlZ21lbnRTaXplPjsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIHR5cGVkZWYgU2VnbWVudGVkVmVjdG9ySXRlcmF0b3I8VCwgU2VnbWVudFNpemUsIElubGlu
ZUNhcGFjaXR5PiBJdGVyYXRvcjsKKyAgICAgICAgdHlwZWRlZiBTZWdtZW50ZWRWZWN0b3JJdGVy
YXRvcjxULCBTZWdtZW50U2l6ZT4gSXRlcmF0b3I7CiAKICAgICAgICAgU2VnbWVudGVkVmVjdG9y
KCkKICAgICAgICAgICAgIDogbV9zaXplKDApCkBAIC0yNTMsNyArMjUwLDcgQEAgbmFtZXNwYWNl
IFdURiB7CiAKICAgICAgICAgc2l6ZV90IG1fc2l6ZTsKICAgICAgICAgU2VnbWVudCBtX2lubGlu
ZVNlZ21lbnQ7Ci0gICAgICAgIFZlY3RvcjxTZWdtZW50KiwgSW5saW5lQ2FwYWNpdHk+IG1fc2Vn
bWVudHM7CisgICAgICAgIFZlY3RvcjxTZWdtZW50KiwgMzI+IG1fc2VnbWVudHM7CiAgICAgfTsK
IAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjM1ZmUwNzkxY2Y2YTFkZjU2MDhiZmZjNDcx
ZDk2MDZjMTRhYmYzMS4uZTIyN2FhN2FmYzliZmI2YzA3NjAyN2NhZTM4N2QyYzA5YTFlYjg0ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2LTEzICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5y
ZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MTIwMTcyLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMjAxNzIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4OTc2CisK
KyAgICAgICAgVGhlIHBhdGNoIGNhdXNlcyBjb21waWxhdGlvbiBmYWlsdXJlcyBvbiBHdGssIFF0
IGFuZCBBcHBsZSBXaW4KKyAgICAgICAgYm90cyAoUmVxdWVzdGVkIGJ5IHpkb2JlcnNlayBvbiAj
d2Via2l0KS4KKworICAgICAgICAqIGZhc3QvanMvZGZnLWNhbGwtZnVuY3Rpb24taGl0LXdhdGNo
cG9pbnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvanMvZGZnLWNhbGwt
ZnVuY3Rpb24taGl0LXdhdGNocG9pbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2pz
L2pzYy10ZXN0LWxpc3Q6CisgICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWNhbGwt
ZnVuY3Rpb24taGl0LXdhdGNocG9pbnQuanM6IFJlbW92ZWQuCisKIDIwMTItMDYtMTMgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ29tbWl0IHRoZSByZXN0IG9m
IGNoYW5nZXMgZm9yIHIxMjAxNjcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2Rm
Zy1jYWxsLWZ1bmN0aW9uLWhpdC13YXRjaHBvaW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvanMvZGZnLWNhbGwtZnVuY3Rpb24taGl0LXdhdGNocG9pbnQtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDVjZGZiODFlZTRlNmNmODVmOWExNjJhYTE3
Y2IxNjA4NjUwMjIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvanMvZGZnLWNhbGwtZnVuY3Rpb24taGl0LXdhdGNocG9pbnQt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjA5ICswLDAgQEAKLVRlc3RzIGNvcnJl
Y3RuZXNzIG9mIGZ1bmN0aW9uIGNhbGxzIHdoZW4gdGhlIGZ1bmN0aW9uIGlzIG92ZXJ3cml0dGVu
LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBiYXIoaSwgaSArIDEpIGlz
IDEKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyAzCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgNQotUEFT
UyBiYXIoaSwgaSArIDEpIGlzIDcKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyA5Ci1QQVNTIGJhcihp
LCBpICsgMSkgaXMgMTEKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyAxMwotUEFTUyBiYXIoaSwgaSAr
IDEpIGlzIDE1Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTcKLVBBU1MgYmFyKGksIGkgKyAxKSBp
cyAxOQotUEFTUyBiYXIoaSwgaSArIDEpIGlzIDIxCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjMK
LVBBU1MgYmFyKGksIGkgKyAxKSBpcyAyNQotUEFTUyBiYXIoaSwgaSArIDEpIGlzIDI3Ci1QQVNT
IGJhcihpLCBpICsgMSkgaXMgMjkKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyAzMQotUEFTUyBiYXIo
aSwgaSArIDEpIGlzIDMzCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMzUKLVBBU1MgYmFyKGksIGkg
KyAxKSBpcyAzNwotUEFTUyBiYXIoaSwgaSArIDEpIGlzIDM5Ci1QQVNTIGJhcihpLCBpICsgMSkg
aXMgNDEKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyA0MwotUEFTUyBiYXIoaSwgaSArIDEpIGlzIDQ1
Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgNDcKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyA0OQotUEFT
UyBiYXIoaSwgaSArIDEpIGlzIDUxCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgNTMKLVBBU1MgYmFy
KGksIGkgKyAxKSBpcyA1NQotUEFTUyBiYXIoaSwgaSArIDEpIGlzIDU3Ci1QQVNTIGJhcihpLCBp
ICsgMSkgaXMgNTkKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyA2MQotUEFTUyBiYXIoaSwgaSArIDEp
IGlzIDYzCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgNjUKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyA2
NwotUEFTUyBiYXIoaSwgaSArIDEpIGlzIDY5Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgNzEKLVBB
U1MgYmFyKGksIGkgKyAxKSBpcyA3MwotUEFTUyBiYXIoaSwgaSArIDEpIGlzIDc1Ci1QQVNTIGJh
cihpLCBpICsgMSkgaXMgNzcKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyA3OQotUEFTUyBiYXIoaSwg
aSArIDEpIGlzIDgxCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgODMKLVBBU1MgYmFyKGksIGkgKyAx
KSBpcyA4NQotUEFTUyBiYXIoaSwgaSArIDEpIGlzIDg3Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMg
ODkKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyA5MQotUEFTUyBiYXIoaSwgaSArIDEpIGlzIDkzCi1Q
QVNTIGJhcihpLCBpICsgMSkgaXMgOTUKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyA5NwotUEFTUyBi
YXIoaSwgaSArIDEpIGlzIDk5Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTAxCi1QQVNTIGJhcihp
LCBpICsgMSkgaXMgMTAzCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTA1Ci1QQVNTIGJhcihpLCBp
ICsgMSkgaXMgMTA3Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTA5Ci1QQVNTIGJhcihpLCBpICsg
MSkgaXMgMTExCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTEzCi1QQVNTIGJhcihpLCBpICsgMSkg
aXMgMTE1Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTE3Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMg
MTE5Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTIxCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTIz
Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTI1Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTI3Ci1Q
QVNTIGJhcihpLCBpICsgMSkgaXMgMTI5Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTMxCi1QQVNT
IGJhcihpLCBpICsgMSkgaXMgMTMzCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTM1Ci1QQVNTIGJh
cihpLCBpICsgMSkgaXMgMTM3Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTM5Ci1QQVNTIGJhcihp
LCBpICsgMSkgaXMgMTQxCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTQzCi1QQVNTIGJhcihpLCBp
ICsgMSkgaXMgMTQ1Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTQ3Ci1QQVNTIGJhcihpLCBpICsg
MSkgaXMgMTQ5Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTUxCi1QQVNTIGJhcihpLCBpICsgMSkg
aXMgMTUzCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTU1Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMg
MTU3Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTU5Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTYx
Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTYzCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTY1Ci1Q
QVNTIGJhcihpLCBpICsgMSkgaXMgMTY3Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTY5Ci1QQVNT
IGJhcihpLCBpICsgMSkgaXMgMTcxCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTczCi1QQVNTIGJh
cihpLCBpICsgMSkgaXMgMTc1Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTc3Ci1QQVNTIGJhcihp
LCBpICsgMSkgaXMgMTc5Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTgxCi1QQVNTIGJhcihpLCBp
ICsgMSkgaXMgMTgzCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTg1Ci1QQVNTIGJhcihpLCBpICsg
MSkgaXMgMTg3Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTg5Ci1QQVNTIGJhcihpLCBpICsgMSkg
aXMgMTkxCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTkzCi1QQVNTIGJhcihpLCBpICsgMSkgaXMg
MTk1Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTk3Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMTk5
Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjAxCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjAzCi1Q
QVNTIGJhcihpLCBpICsgMSkgaXMgMjA1Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjA3Ci1QQVNT
IGJhcihpLCBpICsgMSkgaXMgMjA5Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjExCi1QQVNTIGJh
cihpLCBpICsgMSkgaXMgMjEzCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjE1Ci1QQVNTIGJhcihp
LCBpICsgMSkgaXMgMjE3Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjE5Ci1QQVNTIGJhcihpLCBp
ICsgMSkgaXMgMjIxCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjIzCi1QQVNTIGJhcihpLCBpICsg
MSkgaXMgMjI1Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjI3Ci1QQVNTIGJhcihpLCBpICsgMSkg
aXMgMjI5Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjMxCi1QQVNTIGJhcihpLCBpICsgMSkgaXMg
MjMzCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjM1Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjM3
Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjM5Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjQxCi1Q
QVNTIGJhcihpLCBpICsgMSkgaXMgMjQzCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjQ1Ci1QQVNT
IGJhcihpLCBpICsgMSkgaXMgMjQ3Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjQ5Ci1QQVNTIGJh
cihpLCBpICsgMSkgaXMgMjUxCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjUzCi1QQVNTIGJhcihp
LCBpICsgMSkgaXMgMjU1Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjU3Ci1QQVNTIGJhcihpLCBp
ICsgMSkgaXMgMjU5Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjYxCi1QQVNTIGJhcihpLCBpICsg
MSkgaXMgMjYzCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjY1Ci1QQVNTIGJhcihpLCBpICsgMSkg
aXMgMjY3Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjY5Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMg
MjcxCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjczCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjc1
Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjc3Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjc5Ci1Q
QVNTIGJhcihpLCBpICsgMSkgaXMgMjgxCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjgzCi1QQVNT
IGJhcihpLCBpICsgMSkgaXMgMjg1Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjg3Ci1QQVNTIGJh
cihpLCBpICsgMSkgaXMgMjg5Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjkxCi1QQVNTIGJhcihp
LCBpICsgMSkgaXMgMjkzCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjk1Ci1QQVNTIGJhcihpLCBp
ICsgMSkgaXMgMjk3Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgMjk5Ci1QQVNTIGJhcihpLCBpICsg
MSkgaXMgLTEKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyAtMQotUEFTUyBiYXIoaSwgaSArIDEpIGlz
IC0xCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgLTEKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyAtMQot
UEFTUyBiYXIoaSwgaSArIDEpIGlzIC0xCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgLTEKLVBBU1Mg
YmFyKGksIGkgKyAxKSBpcyAtMQotUEFTUyBiYXIoaSwgaSArIDEpIGlzIC0xCi1QQVNTIGJhcihp
LCBpICsgMSkgaXMgLTEKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyAtMQotUEFTUyBiYXIoaSwgaSAr
IDEpIGlzIC0xCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgLTEKLVBBU1MgYmFyKGksIGkgKyAxKSBp
cyAtMQotUEFTUyBiYXIoaSwgaSArIDEpIGlzIC0xCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgLTEK
LVBBU1MgYmFyKGksIGkgKyAxKSBpcyAtMQotUEFTUyBiYXIoaSwgaSArIDEpIGlzIC0xCi1QQVNT
IGJhcihpLCBpICsgMSkgaXMgLTEKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyAtMQotUEFTUyBiYXIo
aSwgaSArIDEpIGlzIC0xCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgLTEKLVBBU1MgYmFyKGksIGkg
KyAxKSBpcyAtMQotUEFTUyBiYXIoaSwgaSArIDEpIGlzIC0xCi1QQVNTIGJhcihpLCBpICsgMSkg
aXMgLTEKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyAtMQotUEFTUyBiYXIoaSwgaSArIDEpIGlzIC0x
Ci1QQVNTIGJhcihpLCBpICsgMSkgaXMgLTEKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyAtMQotUEFT
UyBiYXIoaSwgaSArIDEpIGlzIC0xCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgLTEKLVBBU1MgYmFy
KGksIGkgKyAxKSBpcyAtMQotUEFTUyBiYXIoaSwgaSArIDEpIGlzIC0xCi1QQVNTIGJhcihpLCBp
ICsgMSkgaXMgLTEKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyAtMQotUEFTUyBiYXIoaSwgaSArIDEp
IGlzIC0xCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgLTEKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyAt
MQotUEFTUyBiYXIoaSwgaSArIDEpIGlzIC0xCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgLTEKLVBB
U1MgYmFyKGksIGkgKyAxKSBpcyAtMQotUEFTUyBiYXIoaSwgaSArIDEpIGlzIC0xCi1QQVNTIGJh
cihpLCBpICsgMSkgaXMgLTEKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyAtMQotUEFTUyBiYXIoaSwg
aSArIDEpIGlzIC0xCi1QQVNTIGJhcihpLCBpICsgMSkgaXMgLTEKLVBBU1MgYmFyKGksIGkgKyAx
KSBpcyAtMQotUEFTUyBiYXIoaSwgaSArIDEpIGlzIC0xCi1QQVNTIGJhcihpLCBpICsgMSkgaXMg
LTEKLVBBU1MgYmFyKGksIGkgKyAxKSBpcyAtMQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMv
ZGZnLWNhbGwtZnVuY3Rpb24taGl0LXdhdGNocG9pbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
anMvZGZnLWNhbGwtZnVuY3Rpb24taGl0LXdhdGNocG9pbnQuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDNjNmVlNmJlNGJmN2QxYWU2NzBkMGIzODIyMDZlNTdmZmNmNWRiNS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2pzL2RmZy1jYWxsLWZ1bmN0aW9uLWhpdC13YXRjaHBvaW50Lmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwxMCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvZGZnLWNhbGwtZnVuY3Rpb24taGl0LXdhdGNocG9pbnQuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9qc2MtdGVzdC1saXN0
IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9qc2MtdGVzdC1saXN0CmluZGV4IGMzNzQyNGNjYmVmZmRm
MTRiOGRjNzE0MGE0MzA4ZDE0ZDg2OGQ3ZWYuLjE4OWJmMzFmZmY5MDk2ODhlM2E5MmQzOGU3NWFm
NzVjN2MxZTY4ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvanMvanNjLXRlc3QtbGlz
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2pzYy10ZXN0LWxpc3QKQEAgLTY0LDQ1ICs2NCwy
MyBAQCBmYXN0L2pzL2RlYnVnZ2VyCiBmYXN0L2pzL2RlY2xhcmF0aW9uLWluLWJsb2NrCiBmYXN0
L2pzL2RlbGV0ZS1nZXR0ZXJzLXNldHRlcnMKIGZhc3QvanMvZGVsZXRlLXRoZW4tcHV0Ci1mYXN0
L2pzL2RmZy1hZGQtbm90LW51bWJlcgotZmFzdC9qcy9kZmctYXJndW1lbnRzLWFsaWFzLWVzY2Fw
ZQotZmFzdC9qcy9kZmctYXJndW1lbnRzLWFsaWFzLW9uZS1ibG9jay1vc3ItZXhpdAotZmFzdC9q
cy9kZmctYXJndW1lbnRzLWFsaWFzLW9uZS1ibG9jay1vdmVyd3JpdGUtYXJndW1lbnRzCi1mYXN0
L2pzL2RmZy1hcmd1bWVudHMtYWxpYXMtb25lLWJsb2NrLW92ZXJ3cml0ZQotZmFzdC9qcy9kZmct
YXJndW1lbnRzLWFsaWFzLW9uZS1ibG9jawotZmFzdC9qcy9kZmctYXJndW1lbnRzLWFsaWFzCi1m
YXN0L2pzL2RmZy1hcmd1bWVudHMtY3Jvc3MtY29kZS1vcmlnaW4KLWZhc3QvanMvZGZnLWFyZ3Vt
ZW50cy1taXhlZC1hbGlhcwogZmFzdC9qcy9kZmctYXJndW1lbnRzLW9zci1leGl0Ci1mYXN0L2pz
L2RmZy1hcmd1bWVudHMtb3V0LW9mLWJvdW5kcworZmFzdC9qcy9kZmctYXJndW1lbnRzLW1peGVk
LWFsaWFzCitmYXN0L2pzL2RmZy1hcmd1bWVudHMtY3Jvc3MtY29kZS1vcmlnaW4KIGZhc3QvanMv
ZGZnLWFyZ3VtZW50cy11bmV4cGVjdGVkLWVzY2FwZQorZmFzdC9qcy9kZmctYXJndW1lbnRzLWFs
aWFzCitmYXN0L2pzL2RmZy1hcmd1bWVudHMtYWxpYXMtZXNjYXBlCiBmYXN0L2pzL2RmZy1hcnJh
eS1sZW5ndGgtZGVhZAotZmFzdC9qcy9kZmctYnJhbmNoLW5vdC1mYWlsCi1mYXN0L2pzL2RmZy1j
aGVjay10d28tc3RydWN0dXJlcwotZmFzdC9qcy9kZmctY29uc3RhbnQtZm9sZC1maXJzdC1sb2Nh
bC1yZWFkLWFmdGVyLWJsb2NrLW1lcmdlCiBmYXN0L2pzL2RmZy1jb252ZXJ0LXRoaXMtZG9tLXdp
bmRvdwotZmFzdC9qcy9kZmctY3NlLWNmYS1kaXNjcmVwYW5jeQotZmFzdC9qcy9kZmctZGVhZC1t
aW4tb25lLWFyZwotZmFzdC9qcy9kZmctZGVhZC1taW4tdHdvLWFyZ3MKLWZhc3QvanMvZGZnLWRl
YWQtc3BlY3VsYXRpb24KLWZhc3QvanMvZGZnLWRlYWQtdmFyaWFibGUtb24tZXhpdAotZmFzdC9q
cy9kZmctZG91YmxlLXVzZS1vZi1wb3N0LXNpbXBsaWZpY2F0aW9uLWRvdWJsZS1wcmVkaWN0aW9u
CiBmYXN0L2pzL2RmZy1kb3VibGUtdm90ZS1mdXp6CiBmYXN0L2pzL2RmZy1leGNlcHRpb24KIGZh
c3QvanMvZGZnLWZsb2F0MzJhcnJheQogZmFzdC9qcy9kZmctZmxvYXQ2NGFycmF5Ci1mYXN0L2pz
L2RmZy1mbHVzaC1nZXQtbG9jYWwKIGZhc3QvanMvZGZnLWdldC1ieS12YWwtY2xvYmJlcgogZmFz
dC9qcy9kZmctZ2V0LWJ5LXZhbC1nZXR0ZXItY3NlCiBmYXN0L2pzL2RmZy1nZXR0ZXItdGhyb3cK
IGZhc3QvanMvZGZnLWdldHRlcgotZmFzdC9qcy9kZmctaW5saW5lLWFyZ3VtZW50cy1iZWNvbWUt
ZG91YmxlCi1mYXN0L2pzL2RmZy1pbmxpbmUtYXJndW1lbnRzLWJlY29tZS1pbnQzMgogZmFzdC9q
cy9kZmctaW5saW5lLWFyZ3VtZW50cy1pbnQzMgotZmFzdC9qcy9kZmctaW5saW5lLWFyZ3VtZW50
cy1vc3ItZXhpdC1hbmQtY2FwdHVyZQotZmFzdC9qcy9kZmctaW5saW5lLWFyZ3VtZW50cy1vdXQt
b2YtYm91bmRzCi1mYXN0L2pzL2RmZy1pbmxpbmUtYXJndW1lbnRzLXJlc2V0LWNoYW5nZXR5cGUK
LWZhc3QvanMvZGZnLWlubGluZS1hcmd1bWVudHMtcmVzZXQKIGZhc3QvanMvZGZnLWlubGluZS1h
cmd1bWVudHMtc2ltcGxlCiBmYXN0L2pzL2RmZy1pbmxpbmUtYXJndW1lbnRzLXVzZS1kaXJlY3Rs
eS1mcm9tLWlubGluZWQtY29kZQogZmFzdC9qcy9kZmctaW5saW5lLWFyZ3VtZW50cy11c2UtZnJv
bS1hbGwtdGhlLXBsYWNlcy1icm9rZW4KQEAgLTExOCw3ICs5Niw2IEBAIGZhc3QvanMvZGZnLWlu
bGluZS11bnVzZWQtdGhpcy1tZXRob2QtY2hlY2sKIGZhc3QvanMvZGZnLWlubGluZS11bnVzZWQt
dGhpcwogZmFzdC9qcy9kZmctaW5saW5pbmctcmVnLWFsbG9jCiBmYXN0L2pzL2RmZy1pbnQxNmFy
cmF5Ci1mYXN0L2pzL2RmZy1pbnQzMi10by1kb3VibGUtb24ta25vd24tbnVtYmVyCiBmYXN0L2pz
L2RmZy1pbnQzMmFycmF5LW92ZXJmbG93LXZhbHVlcwogZmFzdC9qcy9kZmctaW50MzJhcnJheQog
ZmFzdC9qcy9kZmctaW50OGFycmF5CkBAIC0xMjgsMjQgKzEwNSwxNSBAQCBmYXN0L2pzL2RmZy1p
bnRyaW5zaWMtdW51c2VkLXRoaXMtbWV0aG9kLWNoZWNrCiBmYXN0L2pzL2RmZy1pbnRyaW5zaWMt
dW51c2VkLXRoaXMKIGZhc3QvanMvZGZnLW1pbi1tYXgKIGZhc3QvanMvZGZnLW11bHRpcGx5Ci1m
YXN0L2pzL2RmZy1uZWdhdGl2ZS1hcnJheS1pbmRleAotZmFzdC9qcy9kZmctb2J2aW91cy1jb25z
dGFudC1jZmEKIGZhc3QvanMvZGZnLW90aGVyLWJyYW5jaAogZmFzdC9qcy9kZmctcG9pc29uLWZ1
enoKLWZhc3QvanMvZGZnLXByb3RvLWFjY2Vzcy1pbmxpbmUtb3NyLWV4aXQKLWZhc3QvanMvZGZn
LXB1dC1ieS1pZC1wcm90b3R5cGUtY2hlY2sKLWZhc3QvanMvZGZnLXB1dGJ5dmFsLWNmYS1jbG9i
YmVyCiBmYXN0L2pzL2RmZy1zdHJpbmctc3RyaWN0ZXEKLWZhc3QvanMvZGZnLXRlYXItb2ZmLWFy
Z3VtZW50cy1ub3QtYWN0aXZhdGlvbgogZmFzdC9qcy9kZmctdWludDE2YXJyYXkKLWZhc3QvanMv
ZGZnLXVpbnQzMi10by1udW1iZXItb24tY2FwdHVyZWQtdmFyaWFibGUKLWZhc3QvanMvZGZnLXVp
bnQzMi10by1udW1iZXIKLWZhc3QvanMvZGZnLXVpbnQzMmFycmF5LW92ZXJmbG93LWNvbnN0YW50
CiBmYXN0L2pzL2RmZy11aW50MzJhcnJheS1vdmVyZmxvdy12YWx1ZXMKLWZhc3QvanMvZGZnLXVp
bnQzMmFycmF5CitmYXN0L2pzL2RmZy11aW50MzItdG8tbnVtYmVyCitmYXN0L2pzL2RmZy11aW50
MzItdG8tbnVtYmVyLW9uLWNhcHR1cmVkLXZhcmlhYmxlCiBmYXN0L2pzL2RmZy11aW50OGFycmF5
CiBmYXN0L2pzL2RmZy11aW50OGNsYW1wZWRhcnJheQotZmFzdC9qcy9kZmctd2Vhay1qcy1jb25z
dGFudC1zaWxlbnQtZmlsbAogZmFzdC9qcy9kaWN0aW9uYXJ5LW5vLWNhY2hlCiBmYXN0L2pzL2Rp
Y3Rpb25hcnktcHJvdG90eXBlLWNhY2hpbmcKIGZhc3QvanMvZG8td2hpbGUtc2VtaWNvbG9uCkBA
IC0xNTgsNyArMTI2LDYgQEAgZmFzdC9qcy9ldmFsLXZhci1kZWNsCiBmYXN0L2pzL2V4Y2VwdGlv
bi1leHByZXNzaW9uLW9mZnNldAogZmFzdC9qcy9leGNlcHRpb24tZm9yLW5vbm9iamVjdAogZmFz
dC9qcy9leGNlcHRpb24tbGluZW51bXMKLWZhc3QvanMvZXhjZXB0aW9uLXByb3BhZ2F0ZS1mcm9t
LWRmZy10by1sbGludAogZmFzdC9qcy9leGNlcHRpb24tcHJvcGVydGllcwogZmFzdC9qcy9leGNl
cHRpb24tdHJ5LWZpbmFsbHktc2NvcGUtZXJyb3IKIGZhc3QvanMvZXhjZXB0aW9uLXdpdGgtaGFu
ZGxlci1pbnNpZGUtZXZhbC13aXRoLWR5bmFtaWMtc2NvcGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1jYWxsLWZ1bmN0aW9uLWhpdC13YXRjaHBvaW50
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWNhbGwtZnVuY3Rpb24t
aGl0LXdhdGNocG9pbnQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzYWExNzA2
ZDA5MWE4MzYwNjAwNjA2NjQ0MWFiYTdiOThiMzU3NDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMv
ZGZnLWNhbGwtZnVuY3Rpb24taGl0LXdhdGNocG9pbnQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwy
MyArMCwwIEBACi1kZXNjcmlwdGlvbigKLSJUZXN0cyBjb3JyZWN0bmVzcyBvZiBmdW5jdGlvbiBj
YWxscyB3aGVuIHRoZSBmdW5jdGlvbiBpcyBvdmVyd3JpdHRlbi4iCi0pOwotCi1mdW5jdGlvbiBm
b28oYSwgYikgewotICAgIHJldHVybiBhICsgYjsKLX0KLQotZnVuY3Rpb24gYmFyKGEsIGIpIHsK
LSAgICByZXR1cm4gZm9vKGEsIGIpOwotfQotCi1mb3IgKHZhciBpID0gMDsgaSA8IDIwMDsgKytp
KSB7Ci0gICAgaWYgKGkgPT0gMTUwKQotICAgICAgICBmb28gPSBmdW5jdGlvbihhLCBiKSB7IHJl
dHVybiBhIC0gYjsgfQotICAgIHZhciBleHBlY3RlZDsKLSAgICBpZiAoaSA8IDE1MCkKLSAgICAg
ICAgZXhwZWN0ZWQgPSBpICsgaSArIDE7Ci0gICAgZWxzZQotICAgICAgICBleHBlY3RlZCA9IC0x
OwotICAgIHNob3VsZEJlKCJiYXIoaSwgaSArIDEpIiwgIiIgKyBleHBlY3RlZCk7Ci19Ci0K
</data>

          </attachment>
      

    </bug>

</bugzilla>