<?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>108688</bug_id>
          
          <creation_ts>2013-02-01 13:56:49 -0800</creation_ts>
          <short_desc>Add ASSERT_WITH_SECURITY_IMPLICATION to detect bad cast in DOM, CSS, etc.</short_desc>
          <delta_ts>2013-02-05 08:57:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Abhishek Arya">inferno</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>alecflett</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dgrogan</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>dpranke</cc>
    
    <cc>d-r</cc>
    
    <cc>eric</cc>
    
    <cc>fmalita</cc>
    
    <cc>japhet</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jsbell</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pdr</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>schenney</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>823234</commentid>
    <comment_count>0</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-02-01 13:56:49 -0800</bug_when>
    <thetext>Add ASSERT_WITH_SECURITY_IMPLICATION to detect bad cast in DOM, CSS, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823245</commentid>
    <comment_count>1</comment_count>
      <attachid>186132</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-02-01 14:04:33 -0800</bug_when>
    <thetext>Created attachment 186132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823421</commentid>
    <comment_count>2</comment_count>
      <attachid>186132</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-01 16:36:23 -0800</bug_when>
    <thetext>Comment on attachment 186132
Patch

Attachment 186132 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16344187</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824436</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-04 09:22:55 -0800</bug_when>
    <thetext>So remind me... these are ASSERTS which are on for builds sent through your fuzzers? but not generally for release buidls?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824437</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-04 09:23:24 -0800</bug_when>
    <thetext>Could you give some context (here, or on the security list) about how well this has worked/hasn&apos;t?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824439</commentid>
    <comment_count>5</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-02-04 09:25:57 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; So remind me... these are ASSERTS which are on for builds sent through your fuzzers? but not generally for release buidls?

Yes, only for the fuzzing builds, they won&apos;t impact any production branches. http://trac.webkit.org/changeset/140633/trunk/Source/WTF/wtf/Assertions.h

(In reply to comment #4)
&gt; Could you give some context (here, or on the security list) about how well this has worked/hasn&apos;t?

If you open https://bugs.webkit.org/show_bug.cgi?id=107699, you will see the list of bugs it is finding. (in blocks field - 107748 108150 108153 108307 108503 108522 108828 108829). This is just the beginning, since clusterfuzz has been down a lot last week because of migration work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824441</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-04 09:28:29 -0800</bug_when>
    <thetext>Wow.  8 real sec bugs found with just a couple asserts... not bad man.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824444</commentid>
    <comment_count>7</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-02-04 09:29:39 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Wow.  8 real sec bugs found with just a couple asserts... not bad man.

Just filed the 9th :) https://bugs.webkit.org/show_bug.cgi?id=108833</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824525</commentid>
    <comment_count>8</comment_count>
      <attachid>186132</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-04 10:27:23 -0800</bug_when>
    <thetext>Comment on attachment 186132
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824545</commentid>
    <comment_count>9</comment_count>
      <attachid>186132</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-02-04 10:45:07 -0800</bug_when>
    <thetext>Comment on attachment 186132
Patch

Clearing flags on attachment: 186132

Committed r141783: &lt;http://trac.webkit.org/changeset/141783&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824546</commentid>
    <comment_count>10</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-02-04 10:45:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825259</commentid>
    <comment_count>11</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-05 01:22:39 -0800</bug_when>
    <thetext>Heeey, please build before land. ews won&apos;t help you in this case :-/
http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20ASAN/builds/3122</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825511</commentid>
    <comment_count>12</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-02-05 08:57:25 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Heeey, please build before land. ews won&apos;t help you in this case :-/
&gt; http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20ASAN/builds/3122

Sorry about that. We definitely need an ASAN ews, we rely a lot on this tool these days and can&apos;t expect what life would look like without it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186132</attachid>
            <date>2013-02-01 14:04:33 -0800</date>
            <delta_ts>2013-02-04 10:45:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108688-20130201140115.patch</filename>
            <type>text/plain</type>
            <size>49221</size>
            <attacher name="Abhishek Arya">inferno</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTU4ZWZiOGMyYjcyNDZi
ZDM3NTM1MzRjYWVhNzUwY2JkM2VjZGQ1Yy4uNmFmNGFjYjkxOGUzYzlhY2NlYTU0OGU3NjRhMWVj
MWI3NjkwZWM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDEzLTAyLTAxICBBYmhp
c2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OIHRvIGRldGVjdCBiYWQgY2FzdCBpbiBET00sIENTUywg
ZXRjLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4
Njg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBN
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbjo6cGVybWlzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnJlcXVl
c3RQZXJtaXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hHcmFtbWFyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaEdyYW1tYXI6OnNldFNyYyk6CisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoR3JhbW1hckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoR3JhbW1hckxpc3Q6OmFkZEZyb21VcmkpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjptZW51TGlzdE9wdGlvbkFjY2Vzc2liaWxpdHlPYmpl
Y3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6Y2VsbEZvckNvbHVtbkFuZFJvdyk6
CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NGb250RmFjZVJ1bGU6OnJlYXR0YWNoKToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpmaWxsSW1hZ2VTZXQp
OgorICAgICAgICAqIGNzcy9DU1NQYWdlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YWdlUnVsZTo6cmVhdHRhY2gpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVJ1bGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVSdWxlOjpyZWF0dGFjaCk6CisgICAgICAgICogY3NzL1N0
eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5Rm9udFZhcmlh
bnRMaWdhdHVyZXM6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0
eVRleHREZWNvcmF0aW9uOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJv
cGVydHlab29tOjphcHBseVZhbHVlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVHcmlkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJlc29sdmVyOjpjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb25XaXRoSW5saW5lU3ludGF4KToK
KyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTRmlsdGVyUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRDU1NGaWx0ZXJSdWxlOjpyZWF0dGFjaCk6CisgICAgICAgICogY3NzL1dlYktpdENT
U0tleWZyYW1lc1J1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTS2V5ZnJhbWVz
UnVsZTo6cmVhdHRhY2gpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTVmlld3BvcnRSdWxlOjpyZWF0dGFjaCk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6dG9TaW1w
bGVFZGl0Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnN0YXJ0T2ZQYXJhZ3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6ZW5k
T2ZQYXJhZ3JhcGgpOgorICAgICAgICAqIGh0bWwvSFRNTENvbGxlY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGl2ZU5vZGVMaXN0QmFzZTo6c2V0SXRlbUNhY2hlKToKKyAgICAgICAgKiBs
b2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxl
TG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogbG9hZGVyL1dvcmtlclRocmVhZGFi
bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6
TWFpblRocmVhZEJyaWRnZTo6bWFpblRocmVhZENyZWF0ZUxvYWRlcik6CisgICAgICAgICogcGFn
ZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6ZnJhbWVGb3JXaWRnZXQpOgor
ICAgICAgICAqIHBsYXRmb3JtL1JlZkNvdW50ZWRTdXBwbGVtZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpSZWZDb3VudGVkU3VwcGxlbWVudDo6ZnJvbSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzcGxpdEJsb2Nr
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Zmlyc3RMaW5lQmxvY2spOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmNyZWF0ZUxpbmVCb3hlcyk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxIZWlnaHRVc2luZyk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OnBvc2l0aW9uRm9y
UG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdSb290SW5saW5lQm94OjpsYXlvdXRDaGFyYWN0ZXJzSW5UZXh0
Qm94ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUm9vdElubGluZUJveDo6bGF5b3V0Q2hpbGRC
b3hlcyk6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0OjpyZXNldEludGVybmFsc09iamVjdCk6CisgICAgICAg
ICogdGVzdGluZy92OC9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRl
c3RTdXBwb3J0OjpyZXNldEludGVybmFsc09iamVjdCk6CisgICAgICAgICogd29ya2Vycy9EZWZh
dWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRX
b3JrZXJQcm94eTo6YWRkVG9Xb3JrZXJEb2N1bWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVkV29ya2VyQ29ubmVjdFRhc2s6OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKiB3b3JrZXJzL1No
YXJlZFdvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXI6OmNyZWF0ZSk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNsb3NlV29ya2VyQ29udGV4dFRhc2s6OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKiB3b3JrZXJz
L1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VXb3Jr
ZXJDb250ZXh0VGFzazo6cGVyZm9ybVRhc2spOgorICAgICAgICAoV2ViQ29yZTo6Y29ubmVjdFRv
V29ya2VyQ29udGV4dEluc3BlY3RvclRhc2spOgorICAgICAgICAoV2ViQ29yZTo6ZGlzY29ubmVj
dEZyb21Xb3JrZXJDb250ZXh0SW5zcGVjdG9yVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpkaXNw
YXRjaE9uSW5zcGVjdG9yQmFja2VuZFRhc2spOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyU2Ny
aXB0TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRlcjo6bG9h
ZFN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZFNodXRkb3duRmluaXNoVGFzazo6cGVyZm9ybVRh
c2spOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkU2h1dGRvd25TdGFydFRhc2s6OnBl
cmZvcm1UYXNrKToKKwogMjAxMy0wMi0wMSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZWxheCBnb3RvIGZpbGUgbWF0Y2hp
bmcgYWdhaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCA4ZTlhNTczN2JkN2Mw
MGIwMzc3YTM3YTkzYzYzNjEwYTc5NWYwMzk0Li4zMGU4YTI5ZGU3OGVjYTRjMjBjODY3YzcxZTcz
YjRlOTE0MzJhNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMy0wMi0wMSAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEFkZCBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTiB0byBkZXRlY3Qg
YmFkIGNhc3QgaW4gRE9NLCBDU1MsIGV0Yy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwODY4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJy
eTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6aGFuZGxlTW91c2VFdmVudCk6CisgICAgICAgICog
V2ViS2l0U3VwcG9ydC9GYXRGaW5nZXJzLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6RmF0RmluZ2Vyczo6c2V0U3VjY2Vzc2Z1bEZhdEZpbmdlcnNSZXN1bHQpOgorCiAyMDEzLTAx
LTMxICBKYWNreSBKaWFuZyAgPHpoYWppYW5nQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVy
cnldIEJpbmcgSW1hZ2VzIHZpZXdwb3J0IGNhdXNlcyBsYXlvdXQgImZ1biIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggMGE0NTQwYzI1MzM3MWMxMzM4Y2E2Mzg4ZmI1NWM4MDNkM2JlZmEz
Mi4uNTNjZjQ5NTA5MWM0ODU5ZDg1ZTk4MWE5MjJjY2IzOTU2YmE3MjZkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMy0wMi0wMSAgQWJoaXNoZWsgQXJ5
YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTiB0byBkZXRlY3QgYmFkIGNhc3QgaW4gRE9NLCBDU1MsIGV0Yy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODY4OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL0lEQkZh
Y3RvcnlCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJREJGYWN0b3J5QmFja2Vu
ZFByb3h5OjphbGxvd0luZGV4ZWREQik6CisgICAgICAgIChXZWJLaXQ6OmdldFdlYkZyYW1lKToK
KyAgICAgICAgKiBzcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TG9jYWxGaWxlU3lzdGVtOjpkZWxldGVGaWxlU3lzdGVtKToKKyAgICAgICAgKiBzcmMv
V2ViU2hhcmVkV29ya2VySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZFdvcmtl
ckltcGw6OmNvbm5lY3RUYXNrKToKKyAgICAgICAgKFdlYktpdDo6cmVzdW1lV29ya2VyQ29udGV4
dFRhc2spOgorICAgICAgICAoV2ViS2l0Ojpjb25uZWN0VG9Xb3JrZXJDb250ZXh0SW5zcGVjdG9y
VGFzayk6CisgICAgICAgIChXZWJLaXQ6OnJlY29ubmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3Rv
clRhc2spOgorICAgICAgICAoV2ViS2l0OjpkaXNjb25uZWN0RnJvbVdvcmtlckNvbnRleHRJbnNw
ZWN0b3JUYXNrKToKKyAgICAgICAgKFdlYktpdDo6ZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tlbmRU
YXNrKToKKwogMjAxMy0wMi0wMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gIFJvbGxlZCBDaHJvbWl1bSBERVBTIHRvIHIx
ODAxMzEuICBSZXF1ZXN0ZWQgYnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggZTFlM2UxNWNiMzUzNzVkNWNk
M2M3OWZmZWM2Y2JmZjE5MWUzZGM3MS4uZDU2NTBkM2Q4MTEzYTU0MjA3ZThhY2NkOWI2MmM5ZWNi
NjhlOWE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wMi0wMSAgQWJo
aXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBBU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTiB0byBkZXRlY3QgYmFkIGNhc3QgaW4gRE9NLCBDU1Ms
IGV0Yy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
ODY4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisKIDIwMTMtMDItMDEgIFNp
bW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5AZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0g
TWFrZSBRV2ViSGlzdG9yeSB1bml0IHRlc3RzIG1vcmUgcm9idXN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IGQ3
YjQxNzhlM2M3NzRlNzBiYjhhMTU5ODZmOTQxY2U4YTNiMTQ2N2IuLjUyZWM2MThkNTlkZTE4YTNk
NDM1NGQyODFhNTk3YTZhNGY0MGYwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC0xMDksNyArMTA5LDcgQEAg
Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICAsIG1fc3RhdGUoSWRsZSkKICAgICAsIG1fdGFz
a1RpbWVyKGFkb3B0UHRyKG5ldyBUaW1lcjxOb3RpZmljYXRpb24+KHRoaXMsICZOb3RpZmljYXRp
b246OnRhc2tUaW1lckZpcmVkKSkpCiB7Ci0gICAgQVNTRVJUKGNvbnRleHQtPmlzRG9jdW1lbnQo
KSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oY29udGV4dC0+aXNEb2N1
bWVudCgpKTsKICAgICBtX25vdGlmaWNhdGlvbkNlbnRlciA9IERPTVdpbmRvd05vdGlmaWNhdGlv
bnM6OndlYmtpdE5vdGlmaWNhdGlvbnMoc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KS0+
ZG9tV2luZG93KCkpOwogICAgIAogICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xp
ZW50KCkpOwpAQCAtMjU5LDcgKzI1OSw3IEBAIHZvaWQgTm90aWZpY2F0aW9uOjp0YXNrVGltZXJG
aXJlZChUaW1lcjxOb3RpZmljYXRpb24+KiB0aW1lcikKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKIGNvbnN0IFN0cmluZyYgTm90aWZpY2F0aW9uOjpwZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgQVNTRVJUKGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7
CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oY29udGV4dC0+aXNEb2N1bWVu
dCgpKTsKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KS0+cGFnZSgp
KTsKICAgICByZXR1cm4gcGVybWlzc2lvblN0cmluZyhOb3RpZmljYXRpb25Db250cm9sbGVyOjpm
cm9tKHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCktPnBhZ2UoKSktPmNsaWVudCgpLT5j
aGVja1Blcm1pc3Npb24oY29udGV4dCkpOwogfQpAQCAtMjg1LDcgKzI4NSw3IEBAIGNvbnN0IFN0
cmluZyYgTm90aWZpY2F0aW9uOjpwZXJtaXNzaW9uU3RyaW5nKE5vdGlmaWNhdGlvbkNsaWVudDo6
UGVybWlzc2lvbiBwZXJtCiAKIHZvaWQgTm90aWZpY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBl
cm1pc3Npb25DYWxsYmFjaz4gY2FsbGJhY2spCiB7Ci0gICAgQVNTRVJUKGNvbnRleHQtPmlzRG9j
dW1lbnQoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oY29udGV4dC0+
aXNEb2N1bWVudCgpKTsKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0
KS0+cGFnZSgpKTsKICAgICBOb3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKHN0YXRpY19jYXN0
PERvY3VtZW50Kj4oY29udGV4dCktPnBhZ2UoKSktPmNsaWVudCgpLT5yZXF1ZXN0UGVybWlzc2lv
bihjb250ZXh0LCBjYWxsYmFjayk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hHcmFtbWFyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaEdyYW1tYXIuY3BwCmluZGV4IDE3MzZlMWU0YTk0MTlhNmRlM2RlOWY3MWQzOWIx
YzA5OTliMDBmNmMuLjUwYTE0MDYwMDU2ZGUzMWU2OTVkZDQwNDU3MzUyYzEyY2U3OTc1YWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaEdyYW1tYXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaEdyYW1tYXIuY3BwCkBA
IC00NSw3ICs0NSw3IEBAIFBhc3NSZWZQdHI8U3BlZWNoR3JhbW1hcj4gU3BlZWNoR3JhbW1hcjo6
Y3JlYXRlKGNvbnN0IEtVUkwmIHNyYywgZG91YmxlIHdlaWdodCkKIAogdm9pZCBTcGVlY2hHcmFt
bWFyOjpzZXRTcmMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwgY29uc3QgU3RyaW5nJiBzcmMpCiB7Ci0gICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQtPmlzRG9jdW1lbnQoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNEb2N1bWVudCgpKTsKICAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwog
ICAgIG1fc3JjID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHNyYyk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hHcmFtbWFyTGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hHcmFtbWFyTGlzdC5jcHAKaW5kZXggODQx
ZGYyOTQ4ZWEwZDQyZmRiZjAyMDNjNzU5NTFmYjZkYzNkZjE2Mi4uOTg1M2VmN2EwNDA0NGNjYTBj
NzlkNjAyMDYxMDE0MTJmNjkxNjE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoR3JhbW1hckxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaEdyYW1tYXJMaXN0LmNwcApAQCAtNDgsNyArNDgsNyBAQCBTcGVlY2hH
cmFtbWFyKiBTcGVlY2hHcmFtbWFyTGlzdDo6aXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KSBjb25z
dAogCiB2b2lkIFNwZWVjaEdyYW1tYXJMaXN0OjphZGRGcm9tVXJpKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGNvbnN0IFN0cmluZyYgc3JjLCBkb3VibGUg
d2VpZ2h0KQogewotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0RvY3VtZW50
KCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGlj
X2Nhc3Q8RG9jdW1lbnQqPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICBtX2dyYW1tYXJz
LmFwcGVuZChTcGVlY2hHcmFtbWFyOjpjcmVhdGUoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHNyYyks
IHdlaWdodCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggMjliMTZh
M2U4ZGQyMDE2OTM4ZTc2MzdmMWZmZmNhOGNmZTZkMDE1Ny4uOTVmNDVlYTUxZGE2Zjg2MTU2OWZm
MTNjZGRhMzdkZjQ3ZGQ5MzIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCkBA
IC02NSw3ICs2NSw3IEBAIFBhc3NSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUoU2NyaXB0CiAgICAgfQogI2VuZGlmIC8v
IEVOQUJMRShXT1JLRVJTKQogCi0gICAgQVNTRVJUKGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7Cisg
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oY29udGV4dC0+aXNEb2N1bWVudCgp
KTsKICAgICByZXR1cm4gV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKHN0YXRpY19jYXN0PERvY3Vt
ZW50Kj4oY29udGV4dCksIGNsaWVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAKaW5kZXgg
YWMzZWExZmFiOTQxNTA2NDYxNjk5Njg5YjFiYTk2Yzk1ZGY3NTkxZi4uMTMyMDczMGRlMzZlYTY3
NGY0MTc3NDRkOGE3YjU3NzJlM2IxZTQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAKQEAgLTcz
LDcgKzczLDcgQEAgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uKiBBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RQb3B1cDo6bWVudUxpc3RPcHRpb25BY2Nlc3NpYmkKICAgICAgICAgcmV0dXJuIDA7CiAK
ICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBkb2N1bWVudCgpLT5heE9iamVjdENh
Y2hlKCktPmdldE9yQ3JlYXRlKE1lbnVMaXN0T3B0aW9uUm9sZSk7Ci0gICAgQVNTRVJUKG9iamVj
dC0+aXNNZW51TGlzdE9wdGlvbigpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTihvYmplY3QtPmlzTWVudUxpc3RPcHRpb24oKSk7CiAKICAgICBBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RPcHRpb24qIG9wdGlvbiA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlNZW51TGlzdE9w
dGlvbio+KG9iamVjdCk7CiAgICAgb3B0aW9uLT5zZXRFbGVtZW50KGVsZW1lbnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCmlu
ZGV4IDdhZjg5NjM5ZmIwOTM1NDU3OWExNzljNWIwMzA3YzI0MmQyMzMyMDAuLjk5NjhiMTRmZDhl
NDFlNTEzODg4MzZhYmM5Zjg5NGI0MTk1ZjY1NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAKQEAgLTU3OSw3ICs1NzksNyBA
QCBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsKiBBY2Nlc3NpYmlsaXR5VGFibGU6OmNlbGxGb3JDb2x1
bW5BbmRSb3codW5zaWduZWQgY29sdW1uLAogICAgICAgICByZXR1cm4gMDsKICAgICAKICAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBjZWxsT2JqZWN0ID0gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNy
ZWF0ZShjZWxsKTsKLSAgICBBU1NFUlQoY2VsbE9iamVjdC0+aXNUYWJsZUNlbGwoKSk7CisgICAg
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oY2VsbE9iamVjdC0+aXNUYWJsZUNlbGwo
KSk7CiAgICAgCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlUYWJsZUNlbGwq
PihjZWxsT2JqZWN0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
RmFjZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAKaW5k
ZXggM2IzYzRlMmQ2YTNmNGY4Y2I4ZGYzYWEyNDBmNmJjZWFiNGIzZjBhMy4uMDYxYzNjNWQyNjZi
ZjNjMDI4OGExNmUzYjNhODcxNGU4MjUwNGJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlUnVsZS5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgU3RyaW5nIENTU0ZvbnRGYWNlUnVsZTo6Y3Nz
VGV4dCgpIGNvbnN0CiB2b2lkIENTU0ZvbnRGYWNlUnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlQmFz
ZSogcnVsZSkKIHsKICAgICBBU1NFUlQocnVsZSk7Ci0gICAgQVNTRVJUKHJ1bGUtPmlzRm9udEZh
Y2VSdWxlKCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHJ1bGUtPmlz
Rm9udEZhY2VSdWxlKCkpOwogICAgIG1fZm9udEZhY2VSdWxlID0gc3RhdGljX2Nhc3Q8U3R5bGVS
dWxlRm9udEZhY2UqPihydWxlKTsKICAgICBpZiAobV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVyKQog
ICAgICAgICBtX3Byb3BlcnRpZXNDU1NPTVdyYXBwZXItPnJlYXR0YWNoKG1fZm9udEZhY2VSdWxl
LT5tdXRhYmxlUHJvcGVydGllcygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVl
LmNwcAppbmRleCA1NGFkYmMxNTM5MTBlZDk4NmI5YzY2ZmRmMWE0N2U3MjJhZDQzMTdmLi4wMjQ5
NDcyY2MxZGQ3YmNlMzU3NTAzZjJkYTllNTFjOWEyMzY2YTg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ltYWdlU2V0VmFsdWUuY3BwCkBAIC02MiwxMyArNjIsMTMgQEAgdm9pZCBDU1NJbWFnZVNl
dFZhbHVlOjpmaWxsSW1hZ2VTZXQoKQogICAgIHNpemVfdCBpID0gMDsKICAgICB3aGlsZSAoaSA8
IGxlbmd0aCkgewogICAgICAgICBDU1NWYWx1ZSogaW1hZ2VWYWx1ZSA9IGl0ZW0oaSk7Ci0gICAg
ICAgIEFTU0VSVChpbWFnZVZhbHVlLT5pc0ltYWdlVmFsdWUoKSk7CisgICAgICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGltYWdlVmFsdWUtPmlzSW1hZ2VWYWx1ZSgpKTsKICAg
ICAgICAgU3RyaW5nIGltYWdlVVJMID0gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KGltYWdl
VmFsdWUpLT51cmwoKTsKIAogICAgICAgICArK2k7CiAgICAgICAgIEFTU0VSVChpIDwgbGVuZ3Ro
KTsKICAgICAgICAgQ1NTVmFsdWUqIHNjYWxlRmFjdG9yVmFsdWUgPSBpdGVtKGkpOwotICAgICAg
ICBBU1NFUlQoc2NhbGVGYWN0b3JWYWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKTsKKyAgICAgICAg
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oc2NhbGVGYWN0b3JWYWx1ZS0+aXNQcmlt
aXRpdmVWYWx1ZSgpKTsKICAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZSo+KHNjYWxlRmFjdG9yVmFsdWUpLT5nZXRGbG9hdFZhbHVlKCk7CiAK
ICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFnZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmNw
cAppbmRleCBlYThjODNjNTZkYzc3MzIzNWU2MTY4OTI2MGU4NzI2YmMzODMxOTY0Li5hNTc0Mzhk
OWEzZmEwNDg2NGRlNjRkZGJiZTFiMmQzMDc3N2Y4YmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFnZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdl
UnVsZS5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgU3RyaW5nIENTU1BhZ2VSdWxlOjpjc3NUZXh0KCkg
Y29uc3QKIHZvaWQgQ1NTUGFnZVJ1bGU6OnJlYXR0YWNoKFN0eWxlUnVsZUJhc2UqIHJ1bGUpCiB7
CiAgICAgQVNTRVJUKHJ1bGUpOwotICAgIEFTU0VSVChydWxlLT5pc1BhZ2VSdWxlKCkpOworICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHJ1bGUtPmlzUGFnZVJ1bGUoKSk7CiAg
ICAgbV9wYWdlUnVsZSA9IHN0YXRpY19jYXN0PFN0eWxlUnVsZVBhZ2UqPihydWxlKTsKICAgICBp
ZiAobV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVyKQogICAgICAgICBtX3Byb3BlcnRpZXNDU1NPTVdy
YXBwZXItPnJlYXR0YWNoKG1fcGFnZVJ1bGUtPm11dGFibGVQcm9wZXJ0aWVzKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcAppbmRleCA2ZGFjNmJlM2ZjM2FlZWY5MjIyOWUwNzgyNTll
MjNlNWNmOTRjZjFhLi5jMmVlOTc0MmIzMDQzNmY4MjJlMDUzMmVhZGE4OWZhNDUxNWU0ZmJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIFN0cmlu
ZyBDU1NTdHlsZVJ1bGU6OmNzc1RleHQoKSBjb25zdAogdm9pZCBDU1NTdHlsZVJ1bGU6OnJlYXR0
YWNoKFN0eWxlUnVsZUJhc2UqIHJ1bGUpCiB7CiAgICAgQVNTRVJUKHJ1bGUpOwotICAgIEFTU0VS
VChydWxlLT5pc1N0eWxlUnVsZSgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTihydWxlLT5pc1N0eWxlUnVsZSgpKTsKICAgICBtX3N0eWxlUnVsZSA9IHN0YXRpY19jYXN0
PFN0eWxlUnVsZSo+KHJ1bGUpOwogICAgIGlmIChtX3Byb3BlcnRpZXNDU1NPTVdyYXBwZXIpCiAg
ICAgICAgIG1fcHJvcGVydGllc0NTU09NV3JhcHBlci0+cmVhdHRhY2gobV9zdHlsZVJ1bGUtPm11
dGFibGVQcm9wZXJ0aWVzKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAppbmRleCA2
ZDc4YzY4NDQ0MmNjN2UyNGViZjlhNjI4NjdiZDg4OTlmZTc5OGU2Li40NjgzZTNjMzg4YTkzNzI4
N2QxZDUzMDg3NTdmMjJhNDQ1MTQ1Y2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNw
cApAQCAtODczLDcgKzg3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogI2lmICFBU1NFUlRfRElT
QUJMRUQKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBBU1NFUlQodmFsdWUtPmlzUHJpbWl0
aXZlVmFsdWUoKSk7CisgICAgICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
Tih2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKTsKICAgICAgICAgICAgIEFTU0VSVChzdGF0aWNf
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5v
cm1hbCk7CiAgICAgICAgIH0KICNlbmRpZgpAQCAtMTEzNyw3ICsxMTM3LDcgQEAgcHVibGljOgog
ICAgICAgICBFVGV4dERlY29yYXRpb24gdCA9IFJlbmRlclN0eWxlOjppbml0aWFsVGV4dERlY29y
YXRpb24oKTsKICAgICAgICAgZm9yIChDU1NWYWx1ZUxpc3RJdGVyYXRvciBpKHZhbHVlKTsgaS5o
YXNNb3JlKCk7IGkuYWR2YW5jZSgpKSB7CiAgICAgICAgICAgICBDU1NWYWx1ZSogaXRlbSA9IGku
dmFsdWUoKTsKLSAgICAgICAgICAgIEFTU0VSVChpdGVtLT5pc1ByaW1pdGl2ZVZhbHVlKCkpOwor
ICAgICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXRlbS0+aXNQcmlt
aXRpdmVWYWx1ZSgpKTsKICAgICAgICAgICAgIHQgfD0gKnN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4oaXRlbSk7CiAgICAgICAgIH0KICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUo
KS0+c2V0VGV4dERlY29yYXRpb24odCk7CkBAIC0xNjA5LDcgKzE2MDksNyBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIq
IHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVCh2
YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKTsKKyAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04odmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSk7CiAgICAgICAgIENTU1ByaW1p
dGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
Kj4odmFsdWUpOwogCiAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBD
U1NWYWx1ZU5vcm1hbCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGZi
NzRlMjc1MWIzNTc1MjNjZWU2MWQ3MzY2OTFhNGY0YjdhMTBmNjcuLmFjNGY4MWRmODRmZDExMjcx
N2ZiNzdmYTAwNzEzMTEzYmFjM2JmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5j
cHAKQEAgLTI5NjYsNyArMjk2Niw3IEBAIHN0YXRpYyBib29sIGNyZWF0ZUdyaWRQb3NpdGlvbihD
U1NWYWx1ZSogdmFsdWUsIEdyaWRQb3NpdGlvbiYgcG9zaXRpb24pCiAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKLSAgICBBU1NFUlQocHJpbWl0aXZlVmFsdWUtPmlzTnVtYmVyKCkpOworICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHByaW1pdGl2ZVZhbHVlLT5pc051bWJlcigpKTsKICAg
ICBwb3NpdGlvbi5zZXRJbnRlZ2VyUG9zaXRpb24ocHJpbWl0aXZlVmFsdWUtPmdldEludFZhbHVl
KCkpOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzA0OCw3ICszMDQ4LDcgQEAgdm9pZCBTdHls
ZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1
ZSkKIAogI2lmIEVOQUJMRShDU1NfVkFSSUFCTEVTKQogICAgIGlmIChpZCA9PSBDU1NQcm9wZXJ0
eVZhcmlhYmxlKSB7Ci0gICAgICAgIEFTU0VSVCh2YWx1ZS0+aXNWYXJpYWJsZVZhbHVlKCkpOwor
ICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTih2YWx1ZS0+aXNWYXJpYWJs
ZVZhbHVlKCkpOwogICAgICAgICBDU1NWYXJpYWJsZVZhbHVlKiB2YXJpYWJsZSA9IHN0YXRpY19j
YXN0PENTU1ZhcmlhYmxlVmFsdWUqPih2YWx1ZSk7CiAgICAgICAgIEFTU0VSVCghdmFyaWFibGUt
Pm5hbWUoKS5pc0VtcHR5KCkpOwogICAgICAgICBBU1NFUlQoIXZhcmlhYmxlLT52YWx1ZSgpLmlz
RW1wdHkoKSk7CkBAIC0zMTg5LDggKzMxODksOCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5
UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICAgICAg
ICAgIENTU1ZhbHVlKiBzZWNvbmQgPSBsaXN0LT5pdGVtKGkgKyAxKTsKICAgICAgICAgICAgICAg
ICBpZiAoIXNlY29uZCkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKGZpcnN0LT5pc1ByaW1pdGl2ZVZhbHVlKCkpOwotICAgICAgICAgICAgICAg
IEFTU0VSVChzZWNvbmQtPmlzUHJpbWl0aXZlVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oZmlyc3QtPmlzUHJpbWl0aXZlVmFsdWUoKSk7
CisgICAgICAgICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oc2Vjb25k
LT5pc1ByaW1pdGl2ZVZhbHVlKCkpOwogICAgICAgICAgICAgICAgIFN0cmluZyBzdGFydFF1b3Rl
ID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihmaXJzdCktPmdldFN0cmluZ1ZhbHVl
KCk7CiAgICAgICAgICAgICAgICAgU3RyaW5nIGVuZFF1b3RlID0gc3RhdGljX2Nhc3Q8Q1NTUHJp
bWl0aXZlVmFsdWUqPihzZWNvbmQpLT5nZXRTdHJpbmdWYWx1ZSgpOwogICAgICAgICAgICAgICAg
IHF1b3Rlcy0+YWRkUGFpcihzdGQ6Om1ha2VfcGFpcihzdGFydFF1b3RlLCBlbmRRdW90ZSkpOwpA
QCAtNTAxOSw3ICs1MDE5LDcgQEAgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJPcGVyYXRpb24+IFN0
eWxlUmVzb2x2ZXI6OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbldpdGgKIFBhc3NSZWZQdHI8
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBTdHlsZVJlc29sdmVyOjpjcmVhdGVDdXN0b21GaWx0ZXJP
cGVyYXRpb25XaXRoSW5saW5lU3ludGF4KFdlYktpdENTU0ZpbHRlclZhbHVlKiBmaWx0ZXJWYWx1
ZSkKIHsKICAgICBDU1NWYWx1ZSogc2hhZGVyc1ZhbHVlID0gZmlsdGVyVmFsdWUtPml0ZW1XaXRo
b3V0Qm91bmRzQ2hlY2soMCk7Ci0gICAgQVNTRVJUKHNoYWRlcnNWYWx1ZS0+aXNWYWx1ZUxpc3Qo
KSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oc2hhZGVyc1ZhbHVlLT5p
c1ZhbHVlTGlzdCgpKTsKICAgICBDU1NWYWx1ZUxpc3QqIHNoYWRlcnNMaXN0ID0gc3RhdGljX2Nh
c3Q8Q1NTVmFsdWVMaXN0Kj4oc2hhZGVyc1ZhbHVlKTsKIAogICAgIHVuc2lnbmVkIHNoYWRlcnNM
aXN0TGVuZ3RoID0gc2hhZGVyc0xpc3QtPmxlbmd0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU0ZpbHRlclJ1bGUuY3BwCmluZGV4IGI2ZTVmZjNmODNlNWU2ZWE1MGNkMWZlZjg3NjJl
ZmM3NjZkMmMzZjguLmQ3NmI4NWUyN2FiYTE5MWZkZWMyYzY3Zjk4NThiODU3MmM4MDA1YjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGaWx0ZXJSdWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRmlsdGVyUnVsZS5jcHAKQEAgLTgwLDcgKzgw
LDcgQEAgU3RyaW5nIFdlYktpdENTU0ZpbHRlclJ1bGU6OmNzc1RleHQoKSBjb25zdAogdm9pZCBX
ZWJLaXRDU1NGaWx0ZXJSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNlKiBydWxlKQogewogICAg
IEFTU0VSVChydWxlKTsKLSAgICBBU1NFUlQocnVsZS0+aXNGaWx0ZXJSdWxlKCkpOworICAgIEFT
U0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHJ1bGUtPmlzRmlsdGVyUnVsZSgpKTsKICAg
ICBtX2ZpbHRlclJ1bGUgPSBzdGF0aWNfY2FzdDxTdHlsZVJ1bGVGaWx0ZXIqPihydWxlKTsKICAg
ICBpZiAobV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVyKQogICAgICAgICBtX3Byb3BlcnRpZXNDU1NP
TVdyYXBwZXItPnJlYXR0YWNoKG1fZmlsdGVyUnVsZS0+bXV0YWJsZVByb3BlcnRpZXMoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAKaW5kZXggNjkw
ZDRkZWJmM2VhMjUwYjFlNGQ5ZTIyMThmNjIxNDU5ZDFhMDhiYS4uNjA5MzM0YjFiZDczZTU0MzBi
ZWYwYjQwYjIzMzVhMzVlNmU3ZDdkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU0tleWZyYW1lc1J1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NLZXlmcmFtZXNSdWxlLmNwcApAQCAtMjAzLDcgKzIwMyw3IEBAIENTU1J1bGVMaXN0KiBXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlOjpjc3NSdWxlcygpCiB2b2lkIFdlYktpdENTU0tleWZyYW1lc1J1
bGU6OnJlYXR0YWNoKFN0eWxlUnVsZUJhc2UqIHJ1bGUpCiB7CiAgICAgQVNTRVJUKHJ1bGUpOwot
ICAgIEFTU0VSVChydWxlLT5pc0tleWZyYW1lc1J1bGUoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04ocnVsZS0+aXNLZXlmcmFtZXNSdWxlKCkpOwogICAgIG1fa2V5ZnJh
bWVzUnVsZSA9IHN0YXRpY19jYXN0PFN0eWxlUnVsZUtleWZyYW1lcyo+KHJ1bGUpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwCmluZGV4IDExODZm
NDNlM2Y0MTYzZTNlOGM0Yzc0ZjIwZmMwMDUyMDA5ODE0YjYuLmZiNjQxZmY2YjhkZmY3YzRkNzc5
MGM3NjUyNTQxYmUwOTYxZDBkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NWaWV3cG9ydFJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NW
aWV3cG9ydFJ1bGUuY3BwCkBAIC03OSw3ICs3OSw3IEBAIFN0cmluZyBXZWJLaXRDU1NWaWV3cG9y
dFJ1bGU6OmNzc1RleHQoKSBjb25zdAogdm9pZCBXZWJLaXRDU1NWaWV3cG9ydFJ1bGU6OnJlYXR0
YWNoKFN0eWxlUnVsZUJhc2UqIHJ1bGUpCiB7CiAgICAgQVNTRVJUKHJ1bGUpOwotICAgIEFTU0VS
VChydWxlLT5pc1ZpZXdwb3J0UnVsZSgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTihydWxlLT5pc1ZpZXdwb3J0UnVsZSgpKTsKICAgICBtX3ZpZXdwb3J0UnVsZSA9IHN0
YXRpY19jYXN0PFN0eWxlUnVsZVZpZXdwb3J0Kj4ocnVsZSk7CiAKICAgICBpZiAobV9wcm9wZXJ0
aWVzQ1NTT01XcmFwcGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCmluZGV4IGQw
OTNkOTU0YWRiNDk1NDU0MjkyZjBlNWQ0YzdhNzMzYzVlNGJiZDAuLmNjNWJhNWU4MDYzOGE1ZjYy
NjgyNTQzN2Q1ZGU0MTM1ZTU5ZmQ4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwcml2YXRlOgogaW5saW5lIFNpbXBsZUVkaXRDb21tYW5k
KiB0b1NpbXBsZUVkaXRDb21tYW5kKEVkaXRDb21tYW5kKiBjb21tYW5kKQogewogICAgIEFTU0VS
VChjb21tYW5kKTsKLSAgICBBU1NFUlQoY29tbWFuZC0+aXNTaW1wbGVFZGl0Q29tbWFuZCgpKTsK
KyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihjb21tYW5kLT5pc1NpbXBsZUVk
aXRDb21tYW5kKCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaW1wbGVFZGl0Q29tbWFuZCo+
KGNvbW1hbmQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2li
bGVfdW5pdHMuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcApp
bmRleCA0NTUzMDUwNDQwZTU4MTA2MjI1MmI4NTZmMjNkM2Q3YjkwNzdlYzc2Li42NzMzMzRkNjg2
ZjIwMjg1NWQ5NjQ4MTk2NjlmYjM3MzA4NGM0NmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
dmlzaWJsZV91bml0cy5jcHAKQEAgLTExMzYsNyArMTEzNiw3IEBAIFZpc2libGVQb3NpdGlvbiBz
dGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYywgRWRpdGluZ0JvdW5kYXJ5
Q3Jvc3NpCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBpZiAoci0+aXNUZXh0KCkgJiYg
dG9SZW5kZXJUZXh0KHIpLT5yZW5kZXJlZFRleHRMZW5ndGgoKSkgewotICAgICAgICAgICAgQVNT
RVJUKG4tPmlzVGV4dE5vZGUoKSk7CisgICAgICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTihuLT5pc1RleHROb2RlKCkpOwogICAgICAgICAgICAgdHlwZSA9IFBvc2l0aW9u
OjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3I7CiAgICAgICAgICAgICBpZiAoc3R5bGUtPnByZXNl
cnZlTmV3bGluZSgpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIqIGNoYXJzID0gdG9S
ZW5kZXJUZXh0KHIpLT5jaGFyYWN0ZXJzKCk7CkBAIC0xMjE4LDcgKzEyMTgsNyBAQCBWaXNpYmxl
UG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZjLCBFZGl0aW5n
Qm91bmRhcnlDcm9zc2luZwogCiAgICAgICAgIC8vIEZJWE1FOiBXZSBhdm9pZCByZXR1cm5pbmcg
YSBwb3NpdGlvbiB3aGVyZSB0aGUgcmVuZGVyZXIgY2FuJ3QgYWNjZXB0IHRoZSBjYXJldC4KICAg
ICAgICAgaWYgKHItPmlzVGV4dCgpICYmIHRvUmVuZGVyVGV4dChyKS0+cmVuZGVyZWRUZXh0TGVu
Z3RoKCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChuLT5pc1RleHROb2RlKCkpOworICAgICAgICAg
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04obi0+aXNUZXh0Tm9kZSgpKTsKICAg
ICAgICAgICAgIGludCBsZW5ndGggPSB0b1JlbmRlclRleHQociktPnRleHRMZW5ndGgoKTsKICAg
ICAgICAgICAgIHR5cGUgPSBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yOwogICAg
ICAgICAgICAgaWYgKHN0eWxlLT5wcmVzZXJ2ZU5ld2xpbmUoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDb2xsZWN0aW9uLmNwcAppbmRleCAxZDYwYjI2ZWZmMDdjNzNhNTM2YTgzOTM2ZjE3MWQz
ODY4ZTUwZTFkLi44YWQwYmI3OGE0MWQ4MzkyMjhlMjg5NmM3MGNkMGVhZjRhOTRmZGE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcApAQCAtNDE4LDcgKzQxOCw3IEBAIEFM
V0FZU19JTkxJTkUgdm9pZCBMaXZlTm9kZUxpc3RCYXNlOjpzZXRJdGVtQ2FjaGUoTm9kZSogaXRl
bSwgdW5zaWduZWQgb2Zmc2V0LCB1CiB7CiAgICAgc2V0SXRlbUNhY2hlKGl0ZW0sIG9mZnNldCk7
CiAgICAgaWYgKG92ZXJyaWRlc0l0ZW1BZnRlcigpKSB7Ci0gICAgICAgIEFTU0VSVChpdGVtLT5p
c0VsZW1lbnROb2RlKCkpOworICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
TihpdGVtLT5pc0VsZW1lbnROb2RlKCkpOwogICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBIVE1M
Q29sbGVjdGlvbio+KHRoaXMpLT5tX2NhY2hlZEVsZW1lbnRzQXJyYXlPZmZzZXQgPSBlbGVtZW50
c0FycmF5T2Zmc2V0OwogICAgIH0gZWxzZQogICAgICAgICBBU1NFUlQoIWVsZW1lbnRzQXJyYXlP
ZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4
IDcyMGJhNGVlYTE1OTI3Y2MyNWRkMDA1Nzg4NGE1ZDNlZjZkZGY3NjYuLjUzZTM0NzgzNDliNDdk
NGY1MTIzNDJhNzYzODNlMDAzNjc3MDVlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhy
ZWFkYWJsZUxvYWRlci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUGFzc1JlZlB0cjxUaHJlYWRhYmxl
TG9hZGVyPiBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y28KICAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShzdGF0aWNf
Y2FzdDxXb3JrZXJDb250ZXh0Kj4oY29udGV4dCksIGNsaWVudCwgV29ya2VyUnVuTG9vcDo6ZGVm
YXVsdE1vZGUoKSwgcmVxdWVzdCwgb3B0aW9ucyk7CiAjZW5kaWYgLy8gRU5BQkxFKFdPUktFUlMp
CiAKLSAgICBBU1NFUlQoY29udGV4dC0+aXNEb2N1bWVudCgpKTsKKyAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTihjb250ZXh0LT5pc0RvY3VtZW50KCkpOwogICAgIHJldHVybiBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNv
bnRleHQpLCBjbGllbnQsIHJlcXVlc3QsIG9wdGlvbnMpOwogfQogCkBAIC02NSw3ICs2NSw3IEBA
IHZvaWQgVGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJT
KQogCi0gICAgQVNTRVJUKGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oY29udGV4dC0+aXNEb2N1bWVudCgpKTsKICAgICBEb2N1bWVu
dFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoc3RhdGljX2Nhc3Q8
RG9jdW1lbnQqPihjb250ZXh0KSwgcmVxdWVzdCwgY2xpZW50LCBvcHRpb25zKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4
IDNhMjYyNDRjMGViNmNhOTc3ODk2Nzk5YTU4ZGU4YTVlOGQ3YTI2MDMuLjQ0NjE4ODkzZDJlOGU4
OTRhNmE5N2UyZDMwODg4ZGJkZTViYjZiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBXb3JrZXJU
aHJlYWRhYmxlTG9hZGVyOjpNYWluVGhyZWFkQnJpZGdlOjp+TWFpblRocmVhZEJyaWRnZSgpCiB2
b2lkIFdvcmtlclRocmVhZGFibGVMb2FkZXI6Ok1haW5UaHJlYWRCcmlkZ2U6Om1haW5UaHJlYWRD
cmVhdGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTWFpblRocmVhZEJy
aWRnZSogdGhpc1B0ciwgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+
IHJlcXVlc3REYXRhLCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zLCBjb25zdCBTdHJp
bmcmIG91dGdvaW5nUmVmZXJyZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAg
ICBBU1NFUlQoY29udGV4dC0+aXNEb2N1bWVudCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTihjb250ZXh0LT5pc0RvY3VtZW50KCkpOwogICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCk7CiAKICAgICBPd25QdHI8UmVz
b3VyY2VSZXF1ZXN0PiByZXF1ZXN0KFJlc291cmNlUmVxdWVzdDo6YWRvcHQocmVxdWVzdERhdGEp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggNjFkNDRjZWIxYTRkN2Q0MTc3ZDg5ZjE3OTJjZDFj
N2Q0NjU4NjY2MC4uZjZmZWIyYjllYWJlNjY1NTczMjYxNjRmZmEzNTc4ZDc1NTljMDNmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAKQEAgLTYzMCw3ICs2MzAsNyBAQCBGcmFtZSogRnJhbWU6OmZyYW1l
Rm9yV2lkZ2V0KGNvbnN0IFdpZGdldCogd2lkZ2V0KQogCiAgICAgLy8gQXNzdW1lIGFsbCB3aWRn
ZXRzIGFyZSBlaXRoZXIgYSBGcmFtZVZpZXcgb3Igb3duZWQgYnkgYSBSZW5kZXJXaWRnZXQuCiAg
ICAgLy8gRklYTUU6IFRoYXQgYXNzdW1wdGlvbiBpcyBub3QgcmlnaHQgZm9yIHNjcm9sbCBiYXJz
IQotICAgIEFTU0VSVCh3aWRnZXQtPmlzRnJhbWVWaWV3KCkpOworICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKHdpZGdldC0+aXNGcmFtZVZpZXcoKSk7CiAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGNvbnN0IEZyYW1lVmlldyo+KHdpZGdldCktPmZyYW1lKCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlZkNvdW50ZWRTdXBwbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWZDb3VudGVkU3VwcGxlbWVudC5oCmluZGV4IDRiZGM1
NmZkNWY2YWZkMWU2MWY5MWNiZDU3N2I4NzcyOTVkMTE5YWIuLmI5YWQ4MWEyODdlNzcxYTQ1OTc3
ZmJjMWNmYTAzNTMwODFjODgzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1JlZkNvdW50ZWRTdXBwbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVm
Q291bnRlZFN1cHBsZW1lbnQuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN1
cHBsZW1lbnQ8VD4qIGZvdW5kID0gaG9zdC0+cmVxdWlyZVN1cHBsZW1lbnQoa2V5KTsKICAgICAg
ICAgaWYgKCFmb3VuZCkKICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBBU1NFUlQoZm91
bmQtPmlzUmVmQ291bnRlZFdyYXBwZXIoKSk7CisgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKGZvdW5kLT5pc1JlZkNvdW50ZWRXcmFwcGVyKCkpOwogICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8V3JhcHBlcio+KGZvdW5kKS0+d3JhcHBlZCgpOwogICAgIH0KIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBhMjcxNjk5MDNhNDg3
ZmM5NjVlZmJiODkxODQ0OWM4YzE1Y2ViOTkzLi41YTRhODNkOTU5NDI1NzM0YjI2NjE0NDc0ZTNk
Y2Q3NmUwZDA0N2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAK
QEAgLTYwNSw3ICs2MDUsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpzcGxpdEJsb2NrcyhSZW5kZXJC
bG9jayogZnJvbUJsb2NrLCBSZW5kZXJCbG9jayogdG9CbG9jaywKICAgICBSZW5kZXJPYmplY3Qq
IGN1cnJDaGlsZE5leHRTaWJsaW5nID0gY3VyckNoaWxkLT5uZXh0U2libGluZygpOwogCiAgICAg
d2hpbGUgKGN1cnIgJiYgY3VyciAhPSBmcm9tQmxvY2spIHsKLSAgICAgICAgQVNTRVJUKGN1cnIt
PmlzUmVuZGVyQmxvY2soKSk7CisgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKGN1cnItPmlzUmVuZGVyQmxvY2soKSk7CiAgICAgICAgIAogICAgICAgICBSZW5kZXJCbG9j
ayogYmxvY2tDdXJyID0gdG9SZW5kZXJCbG9jayhjdXJyKTsKICAgICAgICAgCkBAIC02Mzk2LDcg
KzYzOTYsNyBAQCBSZW5kZXJCbG9jayogUmVuZGVyQmxvY2s6OmZpcnN0TGluZUJsb2NrKCkgY29u
c3QKICAgICAgICAgaWYgKGZpcnN0TGluZUJsb2NrLT5pc1JlcGxhY2VkKCkgfHwgZmlyc3RMaW5l
QmxvY2stPmlzRmxvYXRpbmcoKSB8fCAKICAgICAgICAgICAgICFwYXJlbnRCbG9jayB8fCBwYXJl
bnRCbG9jay0+Zmlyc3RDaGlsZCgpICE9IGZpcnN0TGluZUJsb2NrIHx8ICFwYXJlbnRCbG9jay0+
aXNCbG9ja0Zsb3coKSkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBBU1NFUlQocGFyZW50
QmxvY2stPmlzUmVuZGVyQmxvY2soKSk7CisgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKHBhcmVudEJsb2NrLT5pc1JlbmRlckJsb2NrKCkpOwogICAgICAgICBmaXJzdExp
bmVCbG9jayA9IHRvUmVuZGVyQmxvY2socGFyZW50QmxvY2spOwogICAgIH0gCiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmlu
ZGV4IDhmODU1NTQ1MGE5OWRmYmIxNGJjYmU2Y2FiNDFmOTg5Y2YwOTE3OTEuLmI1YWI4NzEzMDcx
Y2NiYTk5ZDE1ZGM2OWQ5YTc4YzNiZjA0OWQwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC00NTUsNyArNDU1LDcgQEAg
SW5saW5lRmxvd0JveCogUmVuZGVyQmxvY2s6OmNyZWF0ZUxpbmVCb3hlcyhSZW5kZXJPYmplY3Qq
IG9iaiwgY29uc3QgTGluZUluZm8mIGwKICAgICBJbmxpbmVGbG93Qm94KiByZXN1bHQgPSAwOwog
ICAgIGJvb2wgaGFzRGVmYXVsdExpbmVCb3hDb250YWluID0gc3R5bGUoKS0+bGluZUJveENvbnRh
aW4oKSA9PSBSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVCb3hDb250YWluKCk7CiAgICAgZG8gewot
ICAgICAgICBBU1NFUlQob2JqLT5pc1JlbmRlcklubGluZSgpIHx8IG9iaiA9PSB0aGlzKTsKKyAg
ICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqLT5pc1JlbmRlcklubGlu
ZSgpIHx8IG9iaiA9PSB0aGlzKTsKIAogICAgICAgICBSZW5kZXJJbmxpbmUqIGlubGluZUZsb3cg
PSAob2JqICE9IHRoaXMpID8gdG9SZW5kZXJJbmxpbmUob2JqKSA6IDA7CiAKQEAgLTQ3NSw3ICs0
NzUsNyBAQCBJbmxpbmVGbG93Qm94KiBSZW5kZXJCbG9jazo6Y3JlYXRlTGluZUJveGVzKFJlbmRl
ck9iamVjdCogb2JqLCBjb25zdCBMaW5lSW5mbyYgbAogICAgICAgICAgICAgLy8gV2UgbmVlZCB0
byBtYWtlIGEgbmV3IGJveCBmb3IgdGhpcyByZW5kZXIgb2JqZWN0LiAgT25jZQogICAgICAgICAg
ICAgLy8gbWFkZSwgd2UgbmVlZCB0byBwbGFjZSBpdCBhdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50
IGxpbmUuCiAgICAgICAgICAgICBJbmxpbmVCb3gqIG5ld0JveCA9IGNyZWF0ZUlubGluZUJveEZv
clJlbmRlcmVyKG9iaiwgb2JqID09IHRoaXMpOwotICAgICAgICAgICAgQVNTRVJUKG5ld0JveC0+
aXNJbmxpbmVGbG93Qm94KCkpOworICAgICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04obmV3Qm94LT5pc0lubGluZUZsb3dCb3goKSk7CiAgICAgICAgICAgICBwYXJlbnRC
b3ggPSB0b0lubGluZUZsb3dCb3gobmV3Qm94KTsKICAgICAgICAgICAgIHBhcmVudEJveC0+c2V0
Rmlyc3RMaW5lU3R5bGVCaXQobGluZUluZm8uaXNGaXJzdExpbmUoKSk7CiAgICAgICAgICAgICBw
YXJlbnRCb3gtPnNldElzSG9yaXpvbnRhbChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggYTAzYjdmOThlM2U5ODRmODUx
MTUzM2VjYzAwMzVlYzJmODVlZjBlOS4uZmZiYTkxNWVkMTQxYWM0NTlkNDY0YzJjNzI5YTk3NWE3
MDcyM2RhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTI2NDcs
NyArMjY0Nyw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
SGVpZ2h0VXNpbmcoU2l6ZVR5cGUgc2l6ZVR5cGUsIExlbmd0CiAgICAgICAgICAgICAvLyBGSVhN
RTogVGhpcyBjYWxjdWxhdGlvbiBpcyBub3QgcGF0Y2hlZCBmb3IgYmxvY2stZmxvdyB5ZXQuCiAg
ICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY1
MDAKICAgICAgICAgICAgIGlmIChjYi0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgY2ItPnN0
eWxlKCktPmhlaWdodCgpLmlzQXV0bygpICYmICEoY2ItPnN0eWxlKCktPnRvcCgpLmlzQXV0bygp
IHx8IGNiLT5zdHlsZSgpLT5ib3R0b20oKS5pc0F1dG8oKSkpIHsKLSAgICAgICAgICAgICAgICBB
U1NFUlQoY2ItPmlzUmVuZGVyQmxvY2soKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oY2ItPmlzUmVuZGVyQmxvY2soKSk7CiAgICAgICAgICAgICAg
ICAgUmVuZGVyQmxvY2sqIGJsb2NrID0gdG9SZW5kZXJCbG9jayhjYik7CiAgICAgICAgICAgICAg
ICAgTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzIGNvbXB1dGVkVmFsdWVzOwogICAgICAgICAg
ICAgICAgIGJsb2NrLT5jb21wdXRlTG9naWNhbEhlaWdodChibG9jay0+bG9naWNhbEhlaWdodCgp
LCAwLCBjb21wdXRlZFZhbHVlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdUZXh0LmNwcAppbmRleCAxNjZkOWMyM2RhNDJiZDUwMDhlNzljNTYwNjIzNGQ2NDEx
MjdiYTcyLi5kMWFiMzJlNmZjM2Y1NzAzMWQwZjZhZDFjMTVlNWZiNDMyZjYxMzdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKQEAgLTQ3Miw3
ICs0NzIsNyBAQCBWaXNpYmxlUG9zaXRpb24gUmVuZGVyU1ZHVGV4dDo6cG9zaXRpb25Gb3JQb2lu
dChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNvbnRlbgogICAgIGlmICghcm9vdEJveCkKICAg
ICAgICAgcmV0dXJuIGNyZWF0ZVZpc2libGVQb3NpdGlvbigwLCBET1dOU1RSRUFNKTsKIAotICAg
IEFTU0VSVChyb290Qm94LT5pc1NWR1Jvb3RJbmxpbmVCb3goKSk7CisgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04ocm9vdEJveC0+aXNTVkdSb290SW5saW5lQm94KCkpOwogICAg
IEFTU0VSVCghcm9vdEJveC0+bmV4dFJvb3RCb3goKSk7CiAgICAgQVNTRVJUKGNoaWxkcmVuSW5s
aW5lKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jv
b3RJbmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5s
aW5lQm94LmNwcAppbmRleCBlZmZmN2FmZTdhMzU0NDFmZTYwNmI4MTgyN2FkYzlmZWQyOWYwYTI1
Li5mMDE2YTY3OWUxMTk4ZWFlZDY0OTlhNzM0OWFhNDkyMmNiYWFjOTIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAKQEAgLTEwOSw3
ICsxMDksNyBAQCB2b2lkIFNWR1Jvb3RJbmxpbmVCb3g6OmxheW91dENoYXJhY3RlcnNJblRleHRC
b3hlcyhJbmxpbmVGbG93Qm94KiBzdGFydCwgU1ZHVGV4dAogICAgICAgICAgICAgaWYgKCFub2Rl
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBBU1NFUlQoY2hpbGQt
PmlzSW5saW5lRmxvd0JveCgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKGNoaWxkLT5pc0lubGluZUZsb3dCb3goKSk7CiAKICAgICAgICAgICAgIFNWR0lu
bGluZUZsb3dCb3gqIGZsb3dCb3ggPSBzdGF0aWNfY2FzdDxTVkdJbmxpbmVGbG93Qm94Kj4oY2hp
bGQpOwogICAgICAgICAgICAgYm9vbCBpc1RleHRQYXRoID0gbm9kZS0+aGFzVGFnTmFtZShTVkdO
YW1lczo6dGV4dFBhdGhUYWcpOwpAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgU1ZHUm9vdElubGlu
ZUJveDo6bGF5b3V0Q2hpbGRCb3hlcyhJbmxpbmVGbG93Qm94KiBzdGFydCwgRmxvYXRSZWN0KiBj
aGlsZFJlCiAgICAgICAgICAgICBpZiAoIWNoaWxkLT5yZW5kZXJlcigpLT5ub2RlKCkpCiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIEFTU0VSVChjaGlsZC0+aXNJbmxp
bmVGbG93Qm94KCkpOworICAgICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oY2hpbGQtPmlzSW5saW5lRmxvd0JveCgpKTsKIAogICAgICAgICAgICAgU1ZHSW5saW5lRmxv
d0JveCogZmxvd0JveCA9IHN0YXRpY19jYXN0PFNWR0lubGluZUZsb3dCb3gqPihjaGlsZCk7CiAg
ICAgICAgICAgICBsYXlvdXRDaGlsZEJveGVzKGZsb3dCb3gpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCmluZGV4IDgyM2IzYWMwZTliMmQ2
MmZjNGQ4MjI3ZDM2NTcwMjQzZTU0MTI0NjIuLjA5ODFkYTg2NDA0YzY2OTE1MWU3MTNiMThhNDZk
Yzc4ZTRiZWFiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29y
ZVRlc3RTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVU
ZXN0U3VwcG9ydC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCByZXNldEludGVybmFsc09iamVj
dChKU0NvbnRleHRSZWYgY29udGV4dCkKICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAg
ICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7Ci0gICAgQVNTRVJUKHNjcmlwdENvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oc2NyaXB0Q29udGV4dC0+aXNEb2N1bWVudCgp
KTsKICAgICBQYWdlKiBwYWdlID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihzY3JpcHRDb250ZXh0
KS0+ZnJhbWUoKS0+cGFnZSgpOwogICAgIEludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZShwYWdlKTsKICAgICBJbnRlcm5hbFNldHRpbmdzOjpmcm9tKHBhZ2UpLT5yZXNldFRvQ29uc2lz
dGVudFN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL3Y4L1dlYkNv
cmVUZXN0U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL3Y4L1dlYkNvcmVUZXN0
U3VwcG9ydC5jcHAKaW5kZXggMzMyYTE0N2FhZWFiNzViNzA5NzMyYWNhNjExZDY2ZGVmYjAyNzNk
Mi4uYjZjMDAxNDViZGI4MmE1NWFkOTQ2NmM5N2MwYzkzYjYyOTM0ZTUwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy92OC9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvdjgvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcApAQCAtNTksNyAr
NTksNyBAQCB2b2lkIHJlc2V0SW50ZXJuYWxzT2JqZWN0KHY4OjpMb2NhbDx2ODo6Q29udGV4dD4g
Y29udGV4dCkKICAgICB2ODo6SGFuZGxlU2NvcGUgc2NvcGU7CiAKICAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwot
ICAgIEFTU0VSVChzY3JpcHRDb250ZXh0LT5pc0RvY3VtZW50KCkpOworICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHNjcmlwdENvbnRleHQtPmlzRG9jdW1lbnQoKSk7CiAgICAg
UGFnZSogcGFnZSA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4oc2NyaXB0Q29udGV4dCktPmZyYW1l
KCktPnBhZ2UoKTsKICAgICBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUocGFnZSk7
CiAgICAgSW50ZXJuYWxTZXR0aW5nczo6ZnJvbShwYWdlKS0+cmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29y
a2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRX
b3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCBlYzQxZDIyM2U2NmIwZmNlYzFlYzQ4OTEwODk1NTMw
MzA2YmNmYjMzLi5lYzQ2MTg3Njk4MmFiZTE2ZTIyMWRhNzk2MmQ1Y2NiYmIxMjY2YWVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0
b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5LmNwcApAQCAtMjI4LDcgKzIyOCw3IEBAIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6
OndvcmtlckNvbnRleHREZXN0cm95ZWQoKQogdm9pZCBTaGFyZWRXb3JrZXJQcm94eTo6YWRkVG9X
b3JrZXJEb2N1bWVudHMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICAv
LyBOZXN0ZWQgd29ya2VycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQsIHNvIHBhc3NlZC1pbiBjb250
ZXh0IHNob3VsZCBhbHdheXMgYmUgYSBEb2N1bWVudC4KLSAgICBBU1NFUlQoY29udGV4dC0+aXNE
b2N1bWVudCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihjb250ZXh0
LT5pc0RvY3VtZW50KCkpOwogICAgIEFTU0VSVCghaXNDbG9zaW5nKCkpOwogICAgIE11dGV4TG9j
a2VyIGxvY2sobV93b3JrZXJEb2N1bWVudHNMb2NrKTsKICAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpOwpAQCAtMjcyLDExICsyNzIsMTEgQEAg
cHJpdmF0ZToKICAgICB7CiAgICAgICAgIFJlZlB0cjxNZXNzYWdlUG9ydD4gcG9ydCA9IE1lc3Nh
Z2VQb3J0OjpjcmVhdGUoKnNjcmlwdENvbnRleHQpOwogICAgICAgICBwb3J0LT5lbnRhbmdsZSht
X2NoYW5uZWwucmVsZWFzZSgpKTsKLSAgICAgICAgQVNTRVJUKHNjcmlwdENvbnRleHQtPmlzV29y
a2VyQ29udGV4dCgpKTsKKyAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
c2NyaXB0Q29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOwogICAgICAgICBXb3JrZXJDb250ZXh0
KiB3b3JrZXJDb250ZXh0ID0gc3RhdGljX2Nhc3Q8V29ya2VyQ29udGV4dCo+KHNjcmlwdENvbnRl
eHQpOwogICAgICAgICAvLyBTaW5jZSBjbG9zZSgpIHN0b3BzIHRoZSB0aHJlYWQgZXZlbnQgbG9v
cCwgdGhpcyBzaG91bGQgbm90IGV2ZXIgZ2V0IGNhbGxlZCB3aGlsZSBjbG9zaW5nLgogICAgICAg
ICBBU1NFUlQoIXdvcmtlckNvbnRleHQtPmlzQ2xvc2luZygpKTsKLSAgICAgICAgQVNTRVJUKHdv
cmtlckNvbnRleHQtPmlzU2hhcmVkV29ya2VyQ29udGV4dCgpKTsKKyAgICAgICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04od29ya2VyQ29udGV4dC0+aXNTaGFyZWRXb3JrZXJDb250
ZXh0KCkpOwogICAgICAgICB3b3JrZXJDb250ZXh0LT5kaXNwYXRjaEV2ZW50KGNyZWF0ZUNvbm5l
Y3RFdmVudChwb3J0KSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1NoYXJlZFdvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtl
ci5jcHAKaW5kZXggYzY2ZjBiNzQzNjIwNzc0ZTdiODYzYmY5ZjQ2NTMzZDg0Njg5OGE1Zi4uOWMx
YmM3ZjY1MWQ4ZjhjODE3NTEwMDQxYjA3OTNlNjYxMTM0ZTE4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvU2hhcmVkV29ya2VyLmNwcApAQCAtNzAsNyArNzAsNyBAQCBQYXNzUmVmUHRyPFNoYXJl
ZFdvcmtlcj4gU2hhcmVkV29ya2VyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgYwogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIFdlIGRvbid0IGN1cnJlbnRseSBz
dXBwb3J0IG5lc3RlZCB3b3JrZXJzLCBzbyB3b3JrZXJzIGNhbiBvbmx5IGJlIGNyZWF0ZWQgZnJv
bSBkb2N1bWVudHMuCi0gICAgQVNTRVJUKGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oY29udGV4dC0+aXNEb2N1bWVudCgpKTsKICAg
ICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpOwog
ICAgIGlmICghZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCktPmNhbkFjY2Vzc1NoYXJlZFdvcmtl
cnMoZG9jdW1lbnQtPnRvcE9yaWdpbigpKSkgewogICAgICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCmluZGV4IGM0ZWMyMjJmOTFl
Nzk2ZWJiZDM5ZDdkMDM4NmJmZDdkOGUyOWZlMmEuLjg4YjE5OGQzZmIyMGE3ZmFlOGY0ODk0ZmRm
MTdjMThiOGQ3NGI2NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNw
cApAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRh
c2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCAqY29udGV4dCkKICAgICB7Ci0gICAgICAgIEFTU0VS
VChjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7CisgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsKICAgICAgICAgV29y
a2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9IHN0YXRpY19jYXN0PFdvcmtlckNvbnRleHQqPihj
b250ZXh0KTsKICAgICAgICAgLy8gTm90aWZ5IHBhcmVudCB0aGF0IHRoaXMgY29udGV4dCBpcyBj
bG9zZWQuIFBhcmVudCBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBXb3JrZXJUaHJlYWQ6OnN0
b3AoKS4KICAgICAgICAgd29ya2VyQ29udGV4dC0+dGhyZWFkKCktPndvcmtlclJlcG9ydGluZ1By
b3h5KCkud29ya2VyQ29udGV4dENsb3NlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCA3OWFlYTgyZDBiYmU4NzRjNzQ4ZThkMGQ1
NTcyMGU3MWY5YTJjYzQ4Li4xNWFjYTZkOTI0OWFiNTg2ZGEyY2IyZTY3ODBlNmNmZmUzZTk5MTAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cApAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1U
YXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQpCiAgICAgewotICAgICAg
ICBBU1NFUlQoc2NyaXB0Q29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOworICAgICAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihzY3JpcHRDb250ZXh0LT5pc1dvcmtlckNvbnRl
eHQoKSk7CiAgICAgICAgIERlZGljYXRlZFdvcmtlckNvbnRleHQqIGNvbnRleHQgPSBzdGF0aWNf
Y2FzdDxEZWRpY2F0ZWRXb3JrZXJDb250ZXh0Kj4oc2NyaXB0Q29udGV4dCk7CiAgICAgICAgIE93
blB0cjxNZXNzYWdlUG9ydEFycmF5PiBwb3J0cyA9IE1lc3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRz
KCpzY3JpcHRDb250ZXh0LCBtX2NoYW5uZWxzLnJlbGVhc2UoKSk7CiAgICAgICAgIGNvbnRleHQt
PmRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUocG9ydHMucmVsZWFzZSgpLCBtX21l
c3NhZ2UpKTsKQEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3
b3JrZXJPYmplY3REZXN0cm95ZWRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KgogI2lm
IEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogc3RhdGljIHZvaWQgY29ubmVjdFRvV29ya2Vy
Q29udGV4dEluc3BlY3RvclRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgYm9v
bCkKIHsKLSAgICBBU1NFUlQoY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOworICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsK
ICAgICBzdGF0aWNfY2FzdDxXb3JrZXJDb250ZXh0Kj4oY29udGV4dCktPndvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIoKS0+Y29ubmVjdEZyb250ZW5kKCk7CiB9CiAjZW5kaWYKQEAgLTM5Myw3ICsz
OTMsNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpjb25uZWN0VG9JbnNwZWN0b3IoV29y
a2VyQ29udGV4dFByb3h5OjpQYWdlSW5zcGVjdG9yKgogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RF
QlVHR0VSKQogc3RhdGljIHZvaWQgZGlzY29ubmVjdEZyb21Xb3JrZXJDb250ZXh0SW5zcGVjdG9y
VGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBib29sKQogewotICAgIEFTU0VS
VChjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04oY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOwogICAgIHN0YXRpY19jYXN0
PFdvcmtlckNvbnRleHQqPihjb250ZXh0KS0+d29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpLT5k
aXNjb25uZWN0RnJvbnRlbmQoKTsKIH0KICNlbmRpZgpAQCAtNDExLDcgKzQxMSw3IEBAIHZvaWQg
V29ya2VyTWVzc2FnaW5nUHJveHk6OmRpc2Nvbm5lY3RGcm9tSW5zcGVjdG9yKCkKICNpZiBFTkFC
TEUoSkFWQVNDUklQVF9ERUJVR0dFUikKIHN0YXRpYyB2b2lkIGRpc3BhdGNoT25JbnNwZWN0b3JC
YWNrZW5kVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCiB7Ci0gICAgQVNTRVJUKGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsKKyAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihjb250ZXh0LT5pc1dvcmtlckNvbnRl
eHQoKSk7CiAgICAgc3RhdGljX2Nhc3Q8V29ya2VyQ29udGV4dCo+KGNvbnRleHQpLT53b3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyKCktPmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChtZXNzYWdl
KTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJT
Y3JpcHRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2Fk
ZXIuY3BwCmluZGV4IDVjYjJhNjAxYzc0Y2VlNDEyYzIxODdiYWU0YWI1MWRiYjkyNGMxNjYuLmRl
NDBiYzk1YWQ5N2I4NGU5ZGIzNzcxOWVkYmM3ODM0NzZkODE3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9p
ZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGkKICAgICBpZiAoIXJlcXVlc3QpCiAgICAgICAgIHJldHVybjsK
IAotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7
CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOwogCiAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMg
b3B0aW9uczsKICAgICBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMgPSBBbGxvd1N0b3JlZENyZWRl
bnRpYWxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IGM0ZGQ2
NTVlOTM2OGY0YzU1MzQ5NWIzYzM4MGY1MjllOGQ3ODFiNDUuLjcxZDdmODZmMDE2OGJkZjgwMGQ5
ZDllMTQyMjVhNGZlNzg5MjBmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHAKQEAgLTIwNyw3ICsyMDcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcGVy
Zm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCAqY29udGV4dCkKICAgICB7Ci0gICAgICAg
IEFTU0VSVChjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7CisgICAgICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsKICAgICAg
ICAgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9IHN0YXRpY19jYXN0PFdvcmtlckNvbnRl
eHQqPihjb250ZXh0KTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICB3b3JrZXJDb250
ZXh0LT5jbGVhckluc3BlY3RvcigpOwpAQCAtMjI4LDcgKzIyOCw3IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0ICpjb250ZXh0
KQogICAgIHsKLSAgICAgICAgQVNTRVJUKGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsKKyAg
ICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oY29udGV4dC0+aXNXb3JrZXJD
b250ZXh0KCkpOwogICAgICAgICBXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0ID0gc3RhdGlj
X2Nhc3Q8V29ya2VyQ29udGV4dCo+KGNvbnRleHQpOwogCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFT
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDBkNGEyM2Ni
ZDIwMmFkMTdhOGZmNWU0ZWY5ZmEyZDg2OGE5YTRiODAuLjAxNjk4YWIyYTIxN2FmNmY3MGIyNzIx
MTJmMzMxMDI0MmQ3NjNiZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdl
LmNwcApAQCAtNDAyMSw3ICs0MDIxLDcgQEAgYm9vbCBXZWJQYWdlUHJpdmF0ZTo6aGFuZGxlTW91
c2VFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCiAKICAgICAgICAgICAgIC8v
IFdlIGRvIGZvY3VzIDxzZWxlY3Q+LzxvcHRpb24+IG9uIG1vdXNlIGRvd24gc28gdGhhdCBhIEZv
Y3VzIGV2ZW50IGlzIGZpcmVkIGFuZCBoYXZlIHRoZQogICAgICAgICAgICAgLy8gZWxlbWVudCBw
YWludGVkIGluIGl0cyBmb2N1cyBzdGF0ZSBvbiByZXBhaW50LgotICAgICAgICAgICAgQVNTRVJU
KG5vZGUtPmlzRWxlbWVudE5vZGUoKSk7CisgICAgICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTihub2RlLT5pc0VsZW1lbnROb2RlKCkpOwogICAgICAgICAgICAgaWYgKG5v
ZGUtPmlzRWxlbWVudE5vZGUoKSkgewogICAgICAgICAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQg
PSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSk7CiAgICAgICAgICAgICAgICAgZWxlbWVudC0+
Zm9jdXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBw
b3J0L0ZhdEZpbmdlcnMuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvRmF0RmluZ2Vycy5jcHAKaW5kZXggYTg1Njk0NTUzOTFkYzg3NjUwNjJhMzk5MWZkYzU3YjAz
ZDljNmVkNC4uZmQyZWQ2Y2ZiYmRjOGIzMjU4OTZhMzUyMTJhNDEyNzYyNzliMDA3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRmF0RmluZ2Vycy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRmF0RmluZ2Vy
cy5jcHAKQEAgLTQ3OCw3ICs0NzgsNyBAQCB2b2lkIEZhdEZpbmdlcnM6OnNldFN1Y2Nlc3NmdWxG
YXRGaW5nZXJzUmVzdWx0KEZhdEZpbmdlcnNSZXN1bHQmIHJlc3VsdCwgTm9kZSogYgogCiAgICAg
Ym9vbCBpc1RleHRJbnB1dEVsZW1lbnQgPSBmYWxzZTsKICAgICBpZiAobV90YXJnZXRUeXBlID09
IENsaWNrYWJsZUVsZW1lbnQpIHsKLSAgICAgICAgQVNTRVJUKGJlc3ROb2RlLT5pc0VsZW1lbnRO
b2RlKCkpOworICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihiZXN0Tm9k
ZS0+aXNFbGVtZW50Tm9kZSgpKTsKICAgICAgICAgRWxlbWVudCogYmVzdEVsZW1lbnQgPSBzdGF0
aWNfY2FzdDxFbGVtZW50Kj4oYmVzdE5vZGUpOwogICAgICAgICBpc1RleHRJbnB1dEVsZW1lbnQg
PSBET01TdXBwb3J0Ojppc1RleHRJbnB1dEVsZW1lbnQoYmVzdEVsZW1lbnQpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94
eS5jcHAKaW5kZXggZDQ2ODExMDhiYTMwYzAwM2NkYTE2ZTNlNGEyNDIyZjFiNDFiYjM4Zi4uZDU1
ZTE2NTU3YjUwODBiNjcyMDVjMzU1MGY5MDUwYTViMDIwZDMzNCAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAKQEAgLTE2
Myw3ICsxNjMsNyBAQCBwcml2YXRlOgogYm9vbCBJREJGYWN0b3J5QmFja2VuZFByb3h5OjphbGxv
d0luZGV4ZWREQihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiBjYWxsYmFja3MpCiB7CiAgICAgYm9vbCBhbGxvd2VkOwotICAgIEFTU0VSVChjb250
ZXh0LT5pc0RvY3VtZW50KCkgfHwgY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOworICAgIEFT
U0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGNvbnRleHQtPmlzRG9jdW1lbnQoKSB8fCBj
b250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7CiAgICAgaWYgKGNvbnRleHQtPmlzRG9jdW1lbnQo
KSkgewogICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+
KGNvbnRleHQpOwogICAgICAgICBXZWJGcmFtZUltcGwqIHdlYkZyYW1lID0gV2ViRnJhbWVJbXBs
Ojpmcm9tRnJhbWUoZG9jdW1lbnQtPmZyYW1lKCkpOwpAQCAtMTk1LDcgKzE5NSw3IEBAIGJvb2wg
SURCRmFjdG9yeUJhY2tlbmRQcm94eTo6YWxsb3dJbmRleGVkREIoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgY29uCiAKIHN0YXRpYyBXZWJGcmFtZUltcGwqIGdldFdlYkZyYW1lKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgQVNTRVJUKGNvbnRleHQtPmlz
RG9jdW1lbnQoKSB8fCBjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7CisgICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04oY29udGV4dC0+aXNEb2N1bWVudCgpIHx8IGNvbnRleHQt
PmlzV29ya2VyQ29udGV4dCgpKTsKICAgICBpZiAoY29udGV4dC0+aXNEb2N1bWVudCgpKSB7CiAg
ICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4
dCk7CiAgICAgICAgIHJldHVybiBXZWJGcmFtZUltcGw6OmZyb21GcmFtZShkb2N1bWVudC0+ZnJh
bWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbEZpbGVT
eXN0ZW1DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbEZpbGVT
eXN0ZW1DaHJvbWl1bS5jcHAKaW5kZXggN2ZlNTQ1ZDE2NDM0NDk5ZTM5MzVmYjk2MjMwYzBjNzY2
MDk4OGMzMi4uNTkxM2Y4MzI1MGM5MjAyNTg5OGIwMTQ0ZjBhNjg4NmFkMjY3Mzk3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsRmlsZVN5c3RlbUNocm9t
aXVtLmNwcApAQCAtMjMzLDcgKzIzMyw3IEBAIHZvaWQgTG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0
RmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBGaWxlU3lzCiB2b2lk
IExvY2FsRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBGaWxlU3lzdGVtVHlwZSB0eXBlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrcz4gY2FsbGJhY2tzKQogewogICAgIEFTU0VSVChjb250ZXh0KTsKLSAgICBBU1NF
UlQoY29udGV4dC0+aXNEb2N1bWVudCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTihjb250ZXh0LT5pc0RvY3VtZW50KCkpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KTsKICAgICBXZWJGcmFtZUltcGwqIHdl
YkZyYW1lID0gV2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUoZG9jdW1lbnQtPmZyYW1lKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTaGFyZWRXb3JrZXJJbXBsLmNwcApp
bmRleCAzMzUxNzM3M2E4NmQ3MTRkNWIxZDAwYzAyOThjNDZlNGRmNmQxMjQ2Li41YWM1ODM0MmRm
ZTIwYmIyMzkzNGFiMTRhN2FlMWI5MWJhN2JkZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTaGFyZWRXb3JrZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTaGFyZWRXb3JrZXJJbXBsLmNwcApAQCAtMzU3LDkgKzM1Nyw5IEBA
IHZvaWQgV2ViU2hhcmVkV29ya2VySW1wbDo6Y29ubmVjdFRhc2soU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgUGFzc093blB0CiAgICAgLy8gV3JhcCB0aGUgcGFzc2VkLWluIGNoYW5u
ZWwgaW4gYSBNZXNzYWdlUG9ydCwgYW5kIHNlbmQgaXQgb2ZmIHZpYSBhIGNvbm5lY3QgZXZlbnQu
CiAgICAgUmVmUHRyPE1lc3NhZ2VQb3J0PiBwb3J0ID0gTWVzc2FnZVBvcnQ6OmNyZWF0ZSgqY29u
dGV4dCk7CiAgICAgcG9ydC0+ZW50YW5nbGUoY2hhbm5lbCk7Ci0gICAgQVNTRVJUKGNvbnRleHQt
PmlzV29ya2VyQ29udGV4dCgpKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
Tihjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7CiAgICAgV29ya2VyQ29udGV4dCogd29ya2Vy
Q29udGV4dCA9IHN0YXRpY19jYXN0PFdvcmtlckNvbnRleHQqPihjb250ZXh0KTsKLSAgICBBU1NF
UlQod29ya2VyQ29udGV4dC0+aXNTaGFyZWRXb3JrZXJDb250ZXh0KCkpOworICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHdvcmtlckNvbnRleHQtPmlzU2hhcmVkV29ya2VyQ29u
dGV4dCgpKTsKICAgICB3b3JrZXJDb250ZXh0LT5kaXNwYXRjaEV2ZW50KGNyZWF0ZUNvbm5lY3RF
dmVudChwb3J0KSk7CiB9CiAKQEAgLTM5Niw3ICszOTYsNyBAQCB2b2lkIFdlYlNoYXJlZFdvcmtl
ckltcGw6OnBhdXNlV29ya2VyQ29udGV4dE9uU3RhcnQoKQogCiBzdGF0aWMgdm9pZCByZXN1bWVX
b3JrZXJDb250ZXh0VGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBib29sKQog
ewotICAgIEFTU0VSVChjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7CisgICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04oY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOwogICAg
IHN0YXRpY19jYXN0PFdvcmtlckNvbnRleHQqPihjb250ZXh0KS0+d29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlcigpLT5yZXN1bWUoKTsKIH0KIApAQCAtNDA5LDcgKzQwOSw3IEBAIHZvaWQgV2ViU2hh
cmVkV29ya2VySW1wbDo6cmVzdW1lV29ya2VyQ29udGV4dCgpCiAKIHN0YXRpYyB2b2lkIGNvbm5l
Y3RUb1dvcmtlckNvbnRleHRJbnNwZWN0b3JUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIGJvb2wpCiB7Ci0gICAgQVNTRVJUKGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsK
KyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihjb250ZXh0LT5pc1dvcmtlckNv
bnRleHQoKSk7CiAgICAgc3RhdGljX2Nhc3Q8V29ya2VyQ29udGV4dCo+KGNvbnRleHQpLT53b3Jr
ZXJJbnNwZWN0b3JDb250cm9sbGVyKCktPmNvbm5lY3RGcm9udGVuZCgpOwogfQogCkBAIC00MjAs
NyArNDIwLDcgQEAgdm9pZCBXZWJTaGFyZWRXb3JrZXJJbXBsOjphdHRhY2hEZXZUb29scygpCiAK
IHN0YXRpYyB2b2lkIHJlY29ubmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2soU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBzYXZlZFN0YXRlKQogewot
ICAgIEFTU0VSVChjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7CisgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOwogICAgIFdv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIqIGljID0gc3RhdGljX2Nhc3Q8V29ya2VyQ29udGV4dCo+
KGNvbnRleHQpLT53b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCk7CiAgICAgaWMtPnJlc3RvcmVJ
bnNwZWN0b3JTdGF0ZUZyb21Db29raWUoc2F2ZWRTdGF0ZSk7CiAgICAgaWMtPnJlc3VtZSgpOwpA
QCAtNDMzLDcgKzQzMyw3IEBAIHZvaWQgV2ViU2hhcmVkV29ya2VySW1wbDo6cmVhdHRhY2hEZXZU
b29scyhjb25zdCBXZWJTdHJpbmcmIHNhdmVkU3RhdGUpCiAKIHN0YXRpYyB2b2lkIGRpc2Nvbm5l
Y3RGcm9tV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgYm9vbCkKIHsKLSAgICBBU1NFUlQoY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkp
OworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGNvbnRleHQtPmlzV29ya2Vy
Q29udGV4dCgpKTsKICAgICBzdGF0aWNfY2FzdDxXb3JrZXJDb250ZXh0Kj4oY29udGV4dCktPndv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZGlzY29ubmVjdEZyb250ZW5kKCk7CiB9CiAKQEAg
LTQ0NCw3ICs0NDQsNyBAQCB2b2lkIFdlYlNoYXJlZFdvcmtlckltcGw6OmRldGFjaERldlRvb2xz
KCkKIAogc3RhdGljIHZvaWQgZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tlbmRUYXNrKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBB
U1NFUlQoY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsKICAgICBzdGF0aWNf
Y2FzdDxXb3JrZXJDb250ZXh0Kj4oY29udGV4dCktPndvcmtlckluc3BlY3RvckNvbnRyb2xsZXIo
KS0+ZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKG1lc3NhZ2UpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3Bw
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNw
cAppbmRleCA2MWM4YWNkODY3M2RmYTk3N2Q1ZjYxMzE0NjlmZTNiYjlhMDE4OTgyLi4wOTQ5NGNk
ODU5Njg0ZWM3MTcyZDhhOTg0N2U1ZWYzYjM1ZTk4NmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTE0
MjIsNyArMTQyMiw3IEBAIHB1YmxpYzoKICAgICAgICAgU2Nyb2xsVmlldyogcGFyZW50U2Nyb2xs
VmlldyA9IHBhcmVudCgpOwogICAgICAgICBRUmVjdCBjbGlwUmVjdDsKICAgICAgICAgaWYgKHBh
cmVudFNjcm9sbFZpZXcpIHsKLSAgICAgICAgICAgIEFTU0VSVChwYXJlbnRTY3JvbGxWaWV3LT5p
c0ZyYW1lVmlldygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKHBhcmVudFNjcm9sbFZpZXctPmlzRnJhbWVWaWV3KCkpOwogICAgICAgICAgICAgY2xpcFJl
Y3QgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnRTY3JvbGxWaWV3KS0+d2luZG93Q2xp
cFJlY3QoKTsKICAgICAgICAgICAgIGNsaXBSZWN0LnRyYW5zbGF0ZSgtd2luZG93UmVjdC54KCks
IC13aW5kb3dSZWN0LnkoKSk7CiAgICAgICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>