<?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>97348</bug_id>
          
          <creation_ts>2012-09-21 10:42:15 -0700</creation_ts>
          <short_desc>[BlackBerry] Really fix bug 95488 that user can get the authentication challenge dialog while the other tab has focus.</short_desc>
          <delta_ts>2012-09-21 14:02:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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="Lyon Chen">liachen</reporter>
          <assigned_to name="Lyon Chen">liachen</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joenotcharles</cc>
    
    <cc>mifenton</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>725626</commentid>
    <comment_count>0</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-09-21 10:42:15 -0700</bug_when>
    <thetext>Bug 95488 (https://bugs.webkit.org/show_bug.cgi?id=95488) is closed after its first patch is in. We need another patch to really fix the issue that pop up authentication challenge dialog when the page has no focus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725654</commentid>
    <comment_count>1</comment_count>
      <attachid>165157</attachid>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-09-21 11:24:13 -0700</bug_when>
    <thetext>Created attachment 165157
patch for 97348</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725658</commentid>
    <comment_count>2</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-09-21 11:25:57 -0700</bug_when>
    <thetext>+Yong, Rob, Joe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725659</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-21 11:26:39 -0700</bug_when>
    <thetext>Attachment 165157 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebKit/blackberry/ChangeLog:10:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Source/WebKit/blackberry/ChangeLog:11:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Source/WebKit/blackberry/ChangeLog:13:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Source/WebCore/ChangeLog:12:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Source/WebCore/ChangeLog:13:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Source/WebCore/ChangeLog:14:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Source/WebCore/ChangeLog:17:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Source/WebCore/ChangeLog:20:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 8 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725664</commentid>
    <comment_count>4</comment_count>
      <attachid>165160</attachid>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-09-21 11:34:26 -0700</bug_when>
    <thetext>Created attachment 165160
Fixing coding style errors in ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725733</commentid>
    <comment_count>5</comment_count>
      <attachid>165160</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-09-21 13:01:54 -0700</bug_when>
    <thetext>Comment on attachment 165160
Fixing coding style errors in ChangeLog

We already have deferLoading, you should use that instead of this new &quot;freeze&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725767</commentid>
    <comment_count>6</comment_count>
      <attachid>165180</attachid>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-09-21 13:41:27 -0700</bug_when>
    <thetext>Created attachment 165180
Update to use deferLoading</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725781</commentid>
    <comment_count>7</comment_count>
      <attachid>165180</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-09-21 13:53:04 -0700</bug_when>
    <thetext>Comment on attachment 165180
Update to use deferLoading

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725787</commentid>
    <comment_count>8</comment_count>
      <attachid>165180</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-21 13:56:32 -0700</bug_when>
    <thetext>Comment on attachment 165180
Update to use deferLoading

Rejecting attachment 165180 from review queue.

jmason@rim.com does not have reviewer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have reviewer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have reviewer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your reviewer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725789</commentid>
    <comment_count>9</comment_count>
      <attachid>165180</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-21 13:57:10 -0700</bug_when>
    <thetext>Comment on attachment 165180
Update to use deferLoading

Rejecting attachment 165180 from commit-queue.

jmason@rim.com does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725799</commentid>
    <comment_count>10</comment_count>
      <attachid>165180</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-21 14:02:18 -0700</bug_when>
    <thetext>Comment on attachment 165180
Update to use deferLoading

Clearing flags on attachment: 165180

Committed r129251: &lt;http://trac.webkit.org/changeset/129251&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725800</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-21 14:02:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165157</attachid>
            <date>2012-09-21 11:24:13 -0700</date>
            <delta_ts>2012-09-21 11:34:26 -0700</delta_ts>
            <desc>patch for 97348</desc>
            <filename>97348.patch</filename>
            <type>text/plain</type>
            <size>35269</size>
            <attacher name="Lyon Chen">liachen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhOTBjZmRiLi4zNDJmNWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEg
QEAKKzIwMTItMDktMjEgIExpYW5naHVpIENoZW4gIDxsaWFjaGVuQHJpbS5jb20+CisKKyAgICAg
ICAgW0JsYWNrQmVycnldIFJlYWxseSBmaXggYnVnIDk1NDg4IHRoYXQgdXNlciBjYW4gZ2V0IHRo
ZSBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UgZGlhbG9nIHdoaWxlIHRoZSBvdGhlciB0YWIgaGFz
IGZvY3VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTczNDgKKyAgICAgICAgSW50ZXJuYWwgUFI6IDE4NjU5Ny4KKworICAgICAgICBJbnRlcm5hbGx5
IHJldmlld2VkIGJ5IFlvbmcgTGksIEpvZSBNYXNvbi4KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgc2luZ2xldG9uIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlTWFuYWdlciB0byBtYW5hZ2UgYXV0aGVudGljYXRpb24KKyAgICAgICAgY2hhbGxlbmdl
IGRpYWxvZy4gSXQgZG9lcyBmb2xsb3dpbmcgdGhpbmdzOgorICAgICAgICAqIFJlY29yZCBwYWdl
IGNyZWF0aW9uL2RlbGV0aW9uLCBzbyBpdCBrbm93cyB3aGF0IHBhZ2UgaXMgcHJlc2VudCBvciBu
b3QuCisgICAgICAgICogUmVjb3JkIHBhZ2UgdmlzaWJpbGl0eSBjaGFuZ2Ugc28gaXQga25vd3Mg
d2hlbiB0byBkaXNwbGF5IGEgZGlhbG9nIG9yIG5vdC4KKyAgICAgICAgKiBBY2NlcHQgYXV0aGVu
dGljYXRpb24gY2hhbGxlbmdlLCBhbmQgZGVjaWRlIHdoZXRoZXIgdG8gcG9zdHBvbmUgdGhlCisg
ICAgICAgIGNoYWxsZW5nZSBkaWFsb2cgYmFzZWQgb24gd2hldGhlciB0aGVyZSBpcyBhY3RpdmUg
YXV0aGVudGljYXRpb24gY2hhbGxlbmdlCisgICAgICAgIGRpYWxvZyBhbHJlYWR5IGFuZCB3aGV0
aGVyIGl0cyBwYWdlIGlzIHZpc2libGUgb3Igbm90LgorICAgICAgICAqIFdoZW4gYSBjaGFsbGVu
Z2UgcmVzdWx0IGNvbWVzIGJhY2ssIG5vdGlmeSB0aGUgcmVzdWx0IHRvIGFsbCBjbGllbnRzCisg
ICAgICAgIGF1dGhlbnRpY2F0aW5nIGZvciB0aGUgc2FtZSBwcm90ZWN0aW9uIHNwYWNlLCBhbmQg
dGhlbiBzdGFydCB0aGUgbmV4dAorICAgICAgICBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UgZnJv
bSB0aGUgc2FtZSBwYWdlLCBpZiB0aGVyZSBpcyBvbmUuCisgICAgICAgICogV2hlbiBhIHBhZ2Ug
YmVjb21lcyB2aXNpYmxlLCBzdGFydCB0aGUgZmlyc3QgYXV0aGVudGljYXRpb24gY2hhbGxlbmdl
CisgICAgICAgIGRpYWxvZyB0aGF0IGhhcyBiZWVuIGJsb2NrZWQgYmVmb3JlLgorCisgICAgICAg
IEFuZCB0byBzdXBwb3J0IHRoaXMgbmV3IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlciwg
YW5kIG1ha2luZyB0aGUKKyAgICAgICAgY2hhbGxlbmdlIHJlYWxseSBhc3luY2hyb25vdXMsIE5l
dHdvcmtKb2IgaGFzIGJlZW4gdXBkYXRlZCB0byBzdXBwb3J0CisgICAgICAgIHRoZSBjb25jZXB0
IG9mICJmcmVlemUiLCB3aGljaCBtZWFucyBidWZmZXJpbmcgYWxsIG5ldHdvcmsgbG9hZGluZyBz
dGF0dXMKKyAgICAgICAgY2hhbmdlIGJ1dCBkb24ndCBzZW5kIHRoZW0gdG8gTmV0d29ya0pvYiBj
bGllbnRzLgorICAgICAgICBUaGlzIGlzIG5lY2Vzc2FyeSB3aGVuIGF1dGhlbnRpY2F0aW9uIGNo
YWxsZW5nZSBpcyBhc3luY2hyb25vdXMsIGFzIHRoZQorICAgICAgICBwcmV2aW91cyBuZXR3b3Jr
IGxvYWRpbmcgc3RhdHVzIHdpbGwgbGlrZWx5IGNvbWUgYmVmb3JlIHVzZXIgbWFrZSBhbnkKKyAg
ICAgICAgZGVjaXNpb24uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGZvciBwbGF0Zm9ybSBzcGVj
aWZpYyBpbnRlcm5hbCBjaGFuZ2UuCisKKyAgICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21h
a2U6CisgICAgICAgICogcGxhdGZvcm0vYmxhY2tiZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ2hhbGxl
bmdlSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpDaGFsbGVuZ2VJbmZvOjpDaGFsbGVuZ2VJbmZv
KToKKyAgICAgICAgKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlclByaXZhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyUHJpdmF0ZTo6QXV0
aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJQcml2YXRlOjpyZXN1bWVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1h
bmFnZXJQcml2YXRlOjpzdGFydEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlclByaXZhdGU6OnBhZ2VFeGlzdHMp
OgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjpBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjpwYWdlQ3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXI6OnBhZ2VEZWxldGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6cGFnZVZpc2liaWxpdHlDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6
YXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2VNYW5hZ2VyOjpjYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXI6Om5vdGlmeUNoYWxs
ZW5nZVJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1h
bmFnZXI6Omluc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlTWFuYWdlcjo6aW5pdCk6CisgICAgICAgICogcGxhdGZvcm0vYmxhY2tiZXJyeS9BdXRoZW50
aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFj
a2JlcnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6TWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Om9uQXV0aGVudGljYXRpb25OZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpub3RpZnlDaGFsbGVu
Z2VSZXN1bHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQ
bGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjpOZXR3b3JrSm9iKToKKyAgICAgICAgKFdlYkNv
cmU6Ok5ldHdvcmtKb2I6On5OZXR3b3JrSm9iKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6aGFuZGxlTm90aWZ5U3RhdHVzUmVjZWl2ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6bm90aWZ5SGVhZGVyc1JlY2VpdmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OmhhbmRsZU5vdGlmeU11bHRpcGFydEhlYWRlclJlY2Vp
dmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OmhhbmRsZU5vdGlmeURhdGFSZWNl
aXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjpoYW5kbGVOb3RpZnlDbG9zZSk6
CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjpzZW5kUmVxdWVzdFdpdGhDcmVkZW50aWFs
cyk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjpmcmVlemUpOgorICAgICAgICAoV2Vi
Q29yZTo6TmV0d29ya0pvYjo6dW5mcmVlemUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pv
Yjo6bm90aWZ5Q2hhbGxlbmdlUmVzdWx0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvTmV0d29ya0pvYi5oOgorICAgICAgICAoTmV0d29ya0pvYik6CisKIDIwMTItMDkt
MjEgIEV2YW4gV2FsbGFjZSAgPGV2YW4uZXhlQGdtYWlsLmNvbT4KIAogICAgICAgICBbV2ViU29j
a2V0XSBSZWNlaXZpbmcgYSBsYXJnZSBtZXNzYWdlIGlzIHJlYWxseSBzbG93CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXggNTNjMmQzNS4uMWJjYjVjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtNjAsNiArNjAsNyBAQCBMSVNU
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9jcHAvV2ViRE9NU3RyaW5nLmNw
cAogICAgIGJpbmRpbmdzL2NwcC9XZWJFeGNlcHRpb25IYW5kbGVyLmNwcAogICAgIHBsYXRmb3Jt
L2JsYWNrYmVycnkvQ29va2llRGF0YWJhc2VCYWNraW5nU3RvcmUvQ29va2llRGF0YWJhc2VCYWNr
aW5nU3RvcmUuY3BwCisgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZU1hbmFnZXIuY3BwCiAgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9Db29raWVNYW5hZ2VyLmNw
cAogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvQ29va2llTWFwLmNwcAogICAgIHBsYXRmb3JtL2Js
YWNrYmVycnkvQ29va2llUGFyc2VyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYmxhY2tiZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1h
bmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0MGE0MmIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor
ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlci5oIgorCisjaW5jbHVkZSAiQ3Jl
ZGVudGlhbC5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJQYWdlQ2xpZW50QmxhY2tC
ZXJyeS5oIgorI2luY2x1ZGUgIlByb3RlY3Rpb25TcGFjZS5oIgorCisjaW5jbHVkZSA8QmxhY2tC
ZXJyeVBsYXRmb3JtQXNzZXJ0Lmg+CisjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtTG9nLmg+
CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordHlwZWRlZiBIYXNoTWFwPFBhZ2VDbGllbnRCbGFja0Jl
cnJ5KiwgYm9vbD4gUGFnZVZpc2liaWxpdHlNYXA7CisKK3N0cnVjdCBDaGFsbGVuZ2VJbmZvIHsK
KyAgICBDaGFsbGVuZ2VJbmZvKGNvbnN0IEtVUkwmLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBj
b25zdCBDcmVkZW50aWFsJiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDbGllbnQqLCBQYWdlQ2xp
ZW50QmxhY2tCZXJyeSopOworCisgICAgS1VSTCB1cmw7CisgICAgUHJvdGVjdGlvblNwYWNlIHNw
YWNlOworICAgIENyZWRlbnRpYWwgY3JlZGVudGlhbDsKKyAgICBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZUNsaWVudCogYXV0aENsaWVudDsKKyAgICBQYWdlQ2xpZW50QmxhY2tCZXJyeSogcGFnZUNs
aWVudDsKKyAgICBib29sIGJsb2NrZWQ7Cit9OworCitDaGFsbGVuZ2VJbmZvOjpDaGFsbGVuZ2VJ
bmZvKGNvbnN0IEtVUkwmIGFVcmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFByb3RlY3Rpb25TcGFjZSYgYVNwYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBDcmVkZW50aWFsJiBhQ3JlZGVudGlhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDbGllbnQqIGFuQXV0aENsaWVudCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUGFnZUNsaWVudEJsYWNrQmVycnkqIGFQYWdlQ2xpZW50KQor
ICAgIDogdXJsKGFVcmwpCisgICAgLCBzcGFjZShhU3BhY2UpCisgICAgLCBjcmVkZW50aWFsKGFD
cmVkZW50aWFsKQorICAgICwgYXV0aENsaWVudChhbkF1dGhDbGllbnQpCisgICAgLCBwYWdlQ2xp
ZW50KGFQYWdlQ2xpZW50KQorICAgICwgYmxvY2tlZChmYWxzZSkKK3sKK30KKworY2xhc3MgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyUHJpdmF0ZSB7CitwdWJsaWM6CisgICAgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyUHJpdmF0ZSgpOworCisgICAgYm9vbCByZXN1bWVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlQ2xpZW50QmxhY2tCZXJyeSopOworICAgIHZvaWQgc3Rh
cnRBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShDaGFsbGVuZ2VJbmZvKik7CisgICAgYm9vbCBwYWdl
RXhpc3RzKFBhZ2VDbGllbnRCbGFja0JlcnJ5Kik7CisKKyAgICBDaGFsbGVuZ2VJbmZvKiBtX2Fj
dGl2ZUNoYWxsZW5nZTsKKyAgICBQYWdlVmlzaWJpbGl0eU1hcCBtX3BhZ2VWaXNpYmlsaXR5TWFw
OworICAgIFZlY3RvcjxPd25QdHI8Q2hhbGxlbmdlSW5mbz4gPiBtX2NoYWxsZW5nZXM7Cit9Owor
CitBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJQcml2YXRlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZU1hbmFnZXJQcml2YXRlKCkKKyAgICA6IG1fYWN0aXZlQ2hhbGxlbmdlKDApCit7Cit9
CisKK2Jvb2wgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyUHJpdmF0ZTo6cmVzdW1lQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUNsaWVudEJsYWNrQmVycnkqIGNsaWVudCkKK3sKKyAg
ICBBU1NFUlQoIW1fYWN0aXZlQ2hhbGxlbmdlKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV9jaGFsbGVuZ2VzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChtX2NoYWxsZW5nZXNb
aV0tPnBhZ2VDbGllbnQgPT0gY2xpZW50ICYmIG1fY2hhbGxlbmdlc1tpXS0+YmxvY2tlZCkgewor
ICAgICAgICAgICAgc3RhcnRBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX2NoYWxsZW5nZXNbaV0u
Z2V0KCkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2Vy
UHJpdmF0ZTo6c3RhcnRBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShDaGFsbGVuZ2VJbmZvKiBpbmZv
KQoreworICAgIG1fYWN0aXZlQ2hhbGxlbmdlID0gaW5mbzsKKyAgICBtX2FjdGl2ZUNoYWxsZW5n
ZS0+YmxvY2tlZCA9IGZhbHNlOworICAgIG1fYWN0aXZlQ2hhbGxlbmdlLT5wYWdlQ2xpZW50LT5h
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX2FjdGl2ZUNoYWxsZW5nZS0+dXJsLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2FjdGl2
ZUNoYWxsZW5nZS0+c3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fYWN0aXZlQ2hhbGxlbmdlLT5jcmVkZW50aWFsKTsKK30K
KworYm9vbCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJQcml2YXRlOjpwYWdlRXhpc3Rz
KFBhZ2VDbGllbnRCbGFja0JlcnJ5KiBjbGllbnQpCit7CisgICAgcmV0dXJuIG1fcGFnZVZpc2li
aWxpdHlNYXAuZmluZChjbGllbnQpICE9IG1fcGFnZVZpc2liaWxpdHlNYXAuZW5kKCk7Cit9CisK
K0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VN
YW5hZ2VyKCkKKyAgICA6IGQoYWRvcHRQdHIobmV3IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFu
YWdlclByaXZhdGUpKQoreworfQorCit2b2lkIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdl
cjo6cGFnZUNyZWF0ZWQoUGFnZUNsaWVudEJsYWNrQmVycnkqIGNsaWVudCkKK3sKKyAgICBkLT5t
X3BhZ2VWaXNpYmlsaXR5TWFwLmFkZChjbGllbnQsIHRydWUpOworfQorCit2b2lkIEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6cGFnZURlbGV0ZWQoUGFnZUNsaWVudEJsYWNrQmVycnkq
IGNsaWVudCkKK3sKKyAgICBkLT5tX3BhZ2VWaXNpYmlsaXR5TWFwLnJlbW92ZShjbGllbnQpOwor
CisgICAgaWYgKGQtPm1fYWN0aXZlQ2hhbGxlbmdlICYmIGQtPm1fYWN0aXZlQ2hhbGxlbmdlLT5w
YWdlQ2xpZW50ID09IGNsaWVudCkKKyAgICAgICAgZC0+bV9hY3RpdmVDaGFsbGVuZ2UgPSAwOwor
CisgICAgVmVjdG9yPE93blB0cjxDaGFsbGVuZ2VJbmZvPiA+IGV4aXN0aW5nOworICAgIGQtPm1f
Y2hhbGxlbmdlcy5zd2FwKGV4aXN0aW5nKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
ZXhpc3Rpbmcuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKGV4aXN0aW5nW2ldLT5wYWdlQ2xp
ZW50ICE9IGNsaWVudCkKKyAgICAgICAgICAgIGQtPm1fY2hhbGxlbmdlcy5hcHBlbmQoZXhpc3Rp
bmdbaV0ucmVsZWFzZSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VNYW5hZ2VyOjpwYWdlVmlzaWJpbGl0eUNoYW5nZWQoUGFnZUNsaWVudEJsYWNrQmVycnkqIGNs
aWVudCwgYm9vbCB2aXNpYmxlKQoreworICAgIFBhZ2VWaXNpYmlsaXR5TWFwOjppdGVyYXRvciBp
dGVyID0gZC0+bV9wYWdlVmlzaWJpbGl0eU1hcC5maW5kKGNsaWVudCk7CisKKyAgICBBU1NFUlQo
aXRlciAhPSBkLT5tX3BhZ2VWaXNpYmlsaXR5TWFwLmVuZCgpKTsKKyAgICBpZiAoaXRlciA9PSBk
LT5tX3BhZ2VWaXNpYmlsaXR5TWFwLmVuZCgpKSB7CisgICAgICAgIGQtPm1fcGFnZVZpc2liaWxp
dHlNYXAuYWRkKGNsaWVudCwgdmlzaWJsZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAoaXRlci0+c2Vjb25kID09IHZpc2libGUpCisgICAgICAgIHJldHVybjsKKworICAgIGl0
ZXItPnNlY29uZCA9IHZpc2libGU7CisgICAgaWYgKCF2aXNpYmxlKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoZC0+bV9hY3RpdmVDaGFsbGVuZ2UpCisgICAgICAgIHJldHVybjsKKworICAg
IGQtPnJlc3VtZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNsaWVudCk7Cit9CisKK3ZvaWQgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjphdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25z
dCBLVVJMJiB1cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBzcGFjZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBDcmVkZW50aWFsJiBjcmVkZW50aWFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xp
ZW50KiBhdXRoQ2xpZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFBhZ2VDbGllbnRCbGFja0JlcnJ5KiBwYWdlQ2xpZW50KQor
eworICAgIEJMQUNLQkVSUllfQVNTRVJUKGF1dGhDbGllbnQpOworICAgIEJMQUNLQkVSUllfQVNT
RVJUKHBhZ2VDbGllbnQpOworCisgICAgQ2hhbGxlbmdlSW5mbyogaW5mbyA9IG5ldyBDaGFsbGVu
Z2VJbmZvKHVybCwgc3BhY2UsIGNyZWRlbnRpYWwsIGF1dGhDbGllbnQsIHBhZ2VDbGllbnQpOwor
ICAgIGQtPm1fY2hhbGxlbmdlcy5hcHBlbmQoYWRvcHRQdHIoaW5mbykpOworCisgICAgaWYgKGQt
Pm1fYWN0aXZlQ2hhbGxlbmdlIHx8ICFwYWdlQ2xpZW50LT5pc1Zpc2libGUoKSkgeworICAgICAg
ICBpbmZvLT5ibG9ja2VkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGQt
PnN0YXJ0QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoaW5mbyk7Cit9CisKK3ZvaWQgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjpjYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZUNsaWVudCogY2xpZW50KQoreworICAgIEJMQUNLQkVSUllfQVNT
RVJUKGNsaWVudCk7CisKKyAgICBpZiAoZC0+bV9hY3RpdmVDaGFsbGVuZ2UgJiYgZC0+bV9hY3Rp
dmVDaGFsbGVuZ2UtPmF1dGhDbGllbnQgPT0gY2xpZW50KQorICAgICAgICBkLT5tX2FjdGl2ZUNo
YWxsZW5nZSA9IDA7CisKKyAgICBWZWN0b3I8T3duUHRyPENoYWxsZW5nZUluZm8+ID4gZXhpc3Rp
bmc7CisgICAgZC0+bV9jaGFsbGVuZ2VzLnN3YXAoZXhpc3RpbmcpOworCisgICAgQ2hhbGxlbmdl
SW5mbyogbmV4dCA9IDA7CisgICAgUGFnZUNsaWVudEJsYWNrQmVycnkqIHBhZ2UgPSAwOworCisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBleGlzdGluZy5zaXplKCk7ICsraSkgeworICAgICAg
ICBpZiAoZXhpc3RpbmdbaV0tPmF1dGhDbGllbnQgIT0gY2xpZW50KSB7CisgICAgICAgICAgICBp
ZiAocGFnZSAmJiAhbmV4dCAmJiBleGlzdGluZ1tpXS0+cGFnZUNsaWVudCA9PSBwYWdlKQorICAg
ICAgICAgICAgICAgIG5leHQgPSBleGlzdGluZ1tpXS5nZXQoKTsKKyAgICAgICAgICAgIGQtPm1f
Y2hhbGxlbmdlcy5hcHBlbmQoZXhpc3RpbmdbaV0ucmVsZWFzZSgpKTsKKyAgICAgICAgfSBlbHNl
IGlmIChkLT5tX2FjdGl2ZUNoYWxsZW5nZSA9PSBleGlzdGluZ1tpXS5nZXQoKSkKKyAgICAgICAg
ICAgIHBhZ2UgPSBleGlzdGluZ1tpXS0+cGFnZUNsaWVudDsKKyAgICB9CisKKyAgICBpZiAobmV4
dCkKKyAgICAgICAgZC0+c3RhcnRBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShuZXh0KTsKK30KKwor
dm9pZCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXI6Om5vdGlmeUNoYWxsZW5nZVJlc3Vs
dChjb25zdCBLVVJMJiB1cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgc3BhY2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUmVzdWx0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ3JlZGVudGlhbCYg
Y3JlZGVudGlhbCkKK3sKKyAgICBkLT5tX2FjdGl2ZUNoYWxsZW5nZSA9IDA7CisKKyAgICBWZWN0
b3I8T3duUHRyPENoYWxsZW5nZUluZm8+ID4gZXhpc3Rpbmc7CisgICAgZC0+bV9jaGFsbGVuZ2Vz
LnN3YXAoZXhpc3RpbmcpOworCisgICAgQ2hhbGxlbmdlSW5mbyogbmV4dCA9IDA7CisgICAgUGFn
ZUNsaWVudEJsYWNrQmVycnkqIHBhZ2UgPSAwOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBleGlzdGluZy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoZXhpc3RpbmdbaV0tPnNwYWNl
ICE9IHNwYWNlKSB7CisgICAgICAgICAgICBpZiAocGFnZSAmJiAhbmV4dCAmJiBleGlzdGluZ1tp
XS0+cGFnZUNsaWVudCA9PSBwYWdlKQorICAgICAgICAgICAgICAgIG5leHQgPSBleGlzdGluZ1tp
XS5nZXQoKTsKKyAgICAgICAgICAgIGQtPm1fY2hhbGxlbmdlcy5hcHBlbmQoZXhpc3RpbmdbaV0u
cmVsZWFzZSgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBhZ2UgPSBleGlzdGlu
Z1tpXS0+cGFnZUNsaWVudDsKKyAgICAgICAgICAgIGV4aXN0aW5nW2ldLT5hdXRoQ2xpZW50LT5u
b3RpZnlDaGFsbGVuZ2VSZXN1bHQoZXhpc3RpbmdbaV0tPnVybCwgc3BhY2UsIHJlc3VsdCwgY3Jl
ZGVudGlhbCk7CisKKyAgICAgICAgICAgIC8vIEFmdGVyIGNhbGxpbmcgbm90aWZ5Q2hhbGxlbmdl
UmVzdWx0KCksIHBhZ2UgY291bGQgYmUgZGVzdHJveWVkIG9yIHNvbWV0aGluZy4KKyAgICAgICAg
ICAgIGlmICghZC0+cGFnZUV4aXN0cyhwYWdlKSB8fCAhcGFnZS0+aXNWaXNpYmxlKCkpCisgICAg
ICAgICAgICAgICAgcGFnZSA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobmV4dCkK
KyAgICAgICAgZC0+c3RhcnRBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShuZXh0KTsKK30KKworLy8g
S2VlcCBmb2xsb3dpbmcgY29kZSBhdCB0aGUgZW5kIG9mIHRoaXMgZmlsZSEhIQorc3RhdGljIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlciogc19tYW5hZ2VyID0gMDsKKworQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VNYW5hZ2VyKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXI6Omlu
c3RhbmNlKCkKK3sKKyAgICBBU1NFUlQoc19tYW5hZ2VyKTsKKyAgICByZXR1cm4gc19tYW5hZ2Vy
OworfQorCit2b2lkIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6aW5pdCgpCit7Cisg
ICAgQVNTRVJUKCFzX21hbmFnZXIpOworICAgIHNfbWFuYWdlciA9IG5ldyBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZU1hbmFnZXIoKTsKK30KKworLy8gTm8gbW9yZSBjb2RlIGFmdGVyIHRoaXMgbGlu
ZSwgYWxsIG5ldyBjb2RlIHNob3VsZCBjb21lIGJlZm9yZSBzX21hbmFnZXIgZGVjbGFyYXRpb24h
ISEKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYmxhY2tiZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VN
YW5hZ2VyLmgKaW5kZXggNTIyMjRmNS4uMjBlNzk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlTWFuYWdlci5oCkBAIC0xOSw4ICsxOSwxMyBAQAogI2lmbmRlZiBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZU1hbmFnZXJfaAogI2RlZmluZSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFn
ZXJfaAogCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCitjbGFzcyBQYWdlQ2xpZW50QmxhY2tC
ZXJyeTsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZU1hbmFnZXJQcml2YXRlOwogY2xhc3MgQ3JlZGVudGlhbDsKIGNsYXNzIEtVUkw7CiBjbGFz
cyBQcm90ZWN0aW9uU3BhY2U7CkBAIC0zNSw2ICs0MCwzNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUNoYWxsZW5nZVJlc3VsdChjb25zdCBLVVJMJiwgY29uc3QgUHJvdGVjdGlv
blNwYWNlJiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZXN1bHQsIGNvbnN0IENyZWRlbnRpYWwm
KSA9IDA7CiB9OwogCitjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIgeworcHVi
bGljOgorICAgIHN0YXRpYyB2b2lkIGluaXQoKTsKKyAgICBzdGF0aWMgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VNYW5hZ2VyKiBpbnN0YW5jZSgpOworCisgICAgdm9pZCBwYWdlQ3JlYXRlZChQYWdl
Q2xpZW50QmxhY2tCZXJyeSopOworICAgIHZvaWQgcGFnZURlbGV0ZWQoUGFnZUNsaWVudEJsYWNr
QmVycnkqKTsKKyAgICB2b2lkIHBhZ2VWaXNpYmlsaXR5Q2hhbmdlZChQYWdlQ2xpZW50QmxhY2tC
ZXJyeSosIGJvb2wgdmlzaWJsZSk7CisKKyAgICB2b2lkIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KGNvbnN0IEtVUkwmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUHJv
dGVjdGlvblNwYWNlJiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENy
ZWRlbnRpYWwmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VDbGllbnQqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFn
ZUNsaWVudEJsYWNrQmVycnkqKTsKKworICAgIHZvaWQgY2FuY2VsQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDbGllbnQqKTsKKworICAgIHZvaWQgbm90aWZ5
Q2hhbGxlbmdlUmVzdWx0KGNvbnN0IEtVUkwmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgQ3JlZGVudGlhbCYpOworCitwcml2YXRlOgorICAgIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlTWFuYWdlcigpOworICAgIH5BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFn
ZXIoKTsKKworICAgIE93blB0cjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJQcml2YXRl
PiBkOworfTsKKworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYmxhY2tiZXJyeS9QYWdlQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYmxhY2tiZXJyeS9QYWdlQ2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IGJkYjJmMTYu
LmYyYzdjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkv
UGFnZUNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFj
a2JlcnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgaW50IHNob3dBbGVydERpYWxvZyhCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBh
Z2VDbGllbnQ6OkFsZXJ0VHlwZSkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNWaXNpYmxlKCkgY29uc3QgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpLVVJMJiwg
Y29uc3QgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlh
bCYsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50KikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpLVVJMJiwg
Y29uc3QgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlh
bCYpID0gMDsKICAgICB2aXJ0dWFsIFNhdmVDcmVkZW50aWFsVHlwZSBub3RpZnlTaG91bGRTYXZl
Q3JlZGVudGlhbChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN5bmNQcm94eUNyZWRlbnRp
YWwoY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0
ZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2ti
ZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcAppbmRleCBjODI3ZWQ3Li42NTUz
NDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2Jl
cnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJy
eS5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNpZiBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oIgogCisjaW5jbHVkZSAiQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUg
IkNyZWRlbnRpYWwuaCIKICNpbmNsdWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgpAQCAtMTE0LDYg
KzExNSw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZTo6TWVkaWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxh
eWVyKiBwbGF5ZXIpCiAgICAgLCBtX3VzZXJEcml2ZW5TZWVrVGltZXIodGhpcywgJk1lZGlhUGxh
eWVyUHJpdmF0ZTo6dXNlckRyaXZlblNlZWtUaW1lckZpcmVkKQogICAgICwgbV9sYXN0U2Vla1Rp
bWUoMCkKICAgICAsIG1fbGFzdFNlZWtUaW1lUGVuZGluZyhmYWxzZSkKKyAgICAsIG1faXNBdXRo
ZW50aWNhdGlvbkNoYWxsZW5naW5nKGZhbHNlKQogICAgICwgbV93YWl0TWV0YWRhdGFUaW1lcih0
aGlzLCAmTWVkaWFQbGF5ZXJQcml2YXRlOjp3YWl0TWV0YWRhdGFUaW1lckZpcmVkKQogICAgICwg
bV93YWl0TWV0YWRhdGFQb3BEaWFsb2dDb3VudGVyKDApCiB7CkBAIC0xMjEsNiArMTIzLDkgQEAg
TWVkaWFQbGF5ZXJQcml2YXRlOjpNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIqIHBsYXll
cikKIAogTWVkaWFQbGF5ZXJQcml2YXRlOjp+TWVkaWFQbGF5ZXJQcml2YXRlKCkKIHsKKyAgICBp
ZiAobV9pc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdpbmcpCisgICAgICAgIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlTWFuYWdlcjo6aW5zdGFuY2UoKS0+Y2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UodGhpcyk7CisKICAgICBpZiAoaXNGdWxsc2NyZWVuKCkpIHsKICAgICAgICAgbV93ZWJDb3Jl
UGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllckV4aXRGdWxsc2NyZWVuKCk7
CiAgICAgfQpAQCAtNzA5LDEyICs3MTQsMTggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6Om9u
QXV0aGVudGljYXRpb25OZWVkZWQoTU1SQXV0aENoYWxsZW5nZSYgYXV0aENoYWxsZW5nZSkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChmcmFtZVZpZXcoKSAmJiBmcmFtZVZpZXco
KS0+aG9zdFdpbmRvdygpKQotICAgICAgICBmcmFtZVZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0
Zm9ybVBhZ2VDbGllbnQoKS0+YXV0aGVudGljYXRpb25DaGFsbGVuZ2UodXJsLCBwcm90ZWN0aW9u
U3BhY2UsIGNyZWRlbnRpYWwsIHRoaXMpOworICAgIG1faXNBdXRoZW50aWNhdGlvbkNoYWxsZW5n
aW5nID0gdHJ1ZTsKKyAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXI6Omluc3RhbmNl
KCktPmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVybCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3Rp
b25TcGFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWwsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV93ZWJDb3JlUGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5t
ZWRpYVBsYXllckhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpOwogfQogCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZTo6bm90aWZ5Q2hhbGxlbmdlUmVzdWx0KGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UsIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlUmVzdWx0IHJlc3VsdCwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsK
KyAgICBtX2lzQXV0aGVudGljYXRpb25DaGFsbGVuZ2luZyA9IGZhbHNlOworCiAgICAgaWYgKHJl
c3VsdCAhPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVN1Y2Nlc3MgfHwgIXVybC5pc1ZhbGlkKCkp
CiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0
ZUJsYWNrQmVycnkuaAppbmRleCAyODk2NjkyLi41YTA4M2I1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJs
YWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2Jl
cnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaApAQCAtMTc0LDYgKzE3NCw3IEBAIHBy
aXZhdGU6CiAgICAgVGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlPiBtX3VzZXJEcml2ZW5TZWVrVGlt
ZXI7CiAgICAgZmxvYXQgbV9sYXN0U2Vla1RpbWU7CiAgICAgYm9vbCBtX2xhc3RTZWVrVGltZVBl
bmRpbmc7CisgICAgYm9vbCBtX2lzQXV0aGVudGljYXRpb25DaGFsbGVuZ2luZzsKICAgICB2b2lk
IHdhaXRNZXRhZGF0YVRpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlPiopOwogICAg
IFRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZT4gbV93YWl0TWV0YWRhdGFUaW1lcjsKICAgICBpbnQg
bV93YWl0TWV0YWRhdGFQb3BEaWFsb2dDb3VudGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwCmluZGV4IDk4
ZWJlNjAuLjlhMzZlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHAKQEAgLTE5LDYgKzE5LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrSm9iLmgiCiAKKyNpbmNsdWRlICJB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNp
bmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDb29raWVNYW5hZ2VyLmgiCkBAIC04
NCw5ICs4NSwxOSBAQCBOZXR3b3JrSm9iOjpOZXR3b3JrSm9iKCkKICAgICAsIG1fZGVmZXJyZWRE
YXRhKCp0aGlzKQogICAgICwgbV9kZWZlckxvYWRpbmdDb3VudCgwKQogICAgICwgbV9mcmFtZSgw
KQorICAgICwgbV9pc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdpbmcoZmFsc2UpCisgICAgLCBtX2Zy
ZWV6ZWQoZmFsc2UpCisgICAgLCBtX2ZyZWV6ZWRTdGF0dXMoQmxhY2tCZXJyeTo6UGxhdGZvcm06
OkZpbHRlclN0cmVhbTo6U3RhdHVzSW52YWxpZCkKKyAgICAsIG1fZnJlZXplZENsb3NlU3RhdHVz
KEJsYWNrQmVycnk6OlBsYXRmb3JtOjpGaWx0ZXJTdHJlYW06OlN0YXR1c0ludmFsaWQpCiB7CiB9
CiAKK05ldHdvcmtKb2I6On5OZXR3b3JrSm9iKCkKK3sKKyAgICBpZiAobV9pc0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdpbmcpCisgICAgICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6
aW5zdGFuY2UoKS0+Y2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodGhpcyk7Cit9CisKIGJv
b2wgTmV0d29ya0pvYjo6aW5pdGlhbGl6ZShpbnQgcGxheWVySWQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBwYWdlR3JvdXBOYW1lLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IEtVUkwmIHVybCwKQEAgLTE3Nyw2ICsxODgsMTIgQEAgdm9pZCBO
ZXR3b3JrSm9iOjpub3RpZnlTdGF0dXNSZWNlaXZlZChpbnQgc3RhdHVzLCBjb25zdCBjaGFyKiBt
ZXNzYWdlKQogCiB2b2lkIE5ldHdvcmtKb2I6OmhhbmRsZU5vdGlmeVN0YXR1c1JlY2VpdmVkKGlu
dCBzdGF0dXMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKKyAgICBpZiAobV9mcmVlemVkKSB7
CisgICAgICAgIG1fZnJlZXplZFN0YXR1cyA9IHN0YXR1czsKKyAgICAgICAgbV9mcmVlemVkU3Rh
dHVzTWVzc2FnZSA9IG1lc3NhZ2U7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBD
aGVjayBmb3IgbWVzc2FnZXMgb3V0IG9mIG9yZGVyIG9yIGFmdGVyIGNhbmNlbC4KICAgICBpZiAo
bV9yZXNwb25zZVNlbnQgfHwgbV9jYW5jZWxsZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTIwMywx
NCArMjIwLDE3IEBAIHZvaWQgTmV0d29ya0pvYjo6aGFuZGxlTm90aWZ5U3RhdHVzUmVjZWl2ZWQo
aW50IHN0YXR1cywgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogCiAgICAgbV9yZXNwb25zZS5zZXRI
VFRQU3RhdHVzVGV4dChtZXNzYWdlKTsKIAotICAgIGlmIChpc1VuYXV0aG9yaXplZChtX2V4dGVu
ZGVkU3RhdHVzQ29kZSkpIHsKKyAgICBpZiAoaXNVbmF1dGhvcml6ZWQobV9leHRlbmRlZFN0YXR1
c0NvZGUpKQogICAgICAgICBwdXJnZUNyZWRlbnRpYWxzKCk7Ci0gICAgICAgIEJsYWNrQmVycnk6
OlBsYXRmb3JtOjpsb2coQmxhY2tCZXJyeTo6UGxhdGZvcm06OkxvZ0xldmVsQ3JpdGljYWwsICJB
dXRoZW50aWNhdGlvbiBmYWlsZWQsIHB1cmdlIHRoZSBzdG9yZWQgY3JlZGVudGlhbHMgZm9yIHRo
aXMgc2l0ZS4iKTsKLSAgICB9CiB9CiAKIHZvaWQgTmV0d29ya0pvYjo6bm90aWZ5SGVhZGVyc1Jl
Y2VpdmVkKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdDo6SGVhZGVyTGlzdCYg
aGVhZGVycykKIHsKKyAgICBpZiAobV9mcmVlemVkKSB7CisgICAgICAgIG1fZnJlZXplZEhlYWRl
cnMgPSBoZWFkZXJzOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgQmxhY2tCZXJyeTo6
UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpIZWFkZXJMaXN0Ojpjb25zdF9pdGVyYXRvciBlbmRJ
dCA9IGhlYWRlcnMuZW5kKCk7CiAgICAgZm9yIChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29y
a1JlcXVlc3Q6OkhlYWRlckxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gaGVhZGVycy5iZWdpbigp
OyBpdCAhPSBlbmRJdDsgKytpdCkgewogICAgICAgICBpZiAoc2hvdWxkRGVmZXJMb2FkaW5nKCkp
CkBAIC0zNDAsNiArMzYwLDExIEBAIHZvaWQgTmV0d29ya0pvYjo6aGFuZGxlTm90aWZ5SGVhZGVy
UmVjZWl2ZWQoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsCiAKIHZvaWQgTmV0
d29ya0pvYjo6aGFuZGxlTm90aWZ5TXVsdGlwYXJ0SGVhZGVyUmVjZWl2ZWQoY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CisgICAgaWYgKG1fZnJlZXplZCkgeworICAg
ICAgICBtX2ZyZWV6ZWRNdWx0aXBhcnRIZWFkZXJzLnB1c2hfYmFjayhzdGQ6Om1ha2VfcGFpcihr
ZXkudXRmOCh0cnVlKS5kYXRhKCksIHZhbHVlLnV0ZjgodHJ1ZSkuZGF0YSgpKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBpZiAoIW1fbXVsdGlwYXJ0UmVzcG9uc2UpIHsKICAgICAg
ICAgLy8gQ3JlYXRlIGEgbmV3IHJlc3BvbnNlIGJhc2VkIG9uIHRoZSBvcmlnaW5hbCBzZXQgb2Yg
aGVhZGVycyArIHRoZQogICAgICAgICAvLyByZXBsYWNlbWVudCBoZWFkZXJzLiBXZSBvbmx5IHJl
cGxhY2UgdGhlIHNhbWUgZmV3IGhlYWRlcnMgdGhhdCBnZWNrbwpAQCAtMzk3LDYgKzQyMiwxMSBA
QCB2b2lkIE5ldHdvcmtKb2I6Om5vdGlmeURhdGFSZWNlaXZlZFBsYWluKGNvbnN0IGNoYXIqIGJ1
Ziwgc2l6ZV90IGxlbikKIAogdm9pZCBOZXR3b3JrSm9iOjpoYW5kbGVOb3RpZnlEYXRhUmVjZWl2
ZWQoY29uc3QgY2hhciogYnVmLCBzaXplX3QgbGVuKQogeworICAgIGlmIChtX2ZyZWV6ZWQpIHsK
KyAgICAgICAgbV9mcmVlemVkRGF0YS5hcHBlbmQoQmxhY2tCZXJyeTo6UGxhdGZvcm06OmNyZWF0
ZU5ldHdvcmtCdWZmZXJXaXRoRGF0YShidWYsIGxlbikpOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgLy8gQ2hlY2sgZm9yIG1lc3NhZ2VzIG91dCBvZiBvcmRlciBvciBhZnRlciBjYW5j
ZWwuCiAgICAgaWYgKCghbV9pc0ZpbGUgJiYgIW1fc3RhdHVzUmVjZWl2ZWQpIHx8IG1fY2FuY2Vs
bGVkKQogICAgICAgICByZXR1cm47CkBAIC00ODQsNiArNTE0LDEyIEBAIHZvaWQgTmV0d29ya0pv
Yjo6aGFuZGxlTm90aWZ5Q2xvc2UoaW50IHN0YXR1cykKICNpZm5kZWYgTkRFQlVHCiAgICAgbV9p
c1J1bm5pbmcgPSBmYWxzZTsKICNlbmRpZgorCisgICAgaWYgKG1fZnJlZXplZCkgeworICAgICAg
ICBtX2ZyZWV6ZWRDbG9zZVN0YXR1cyA9IHN0YXR1czsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIGlmICghbV9jYW5jZWxsZWQpIHsKICAgICAgICAgaWYgKCFtX3N0YXR1c1JlY2VpdmVk
KSB7CiAgICAgICAgICAgICAvLyBDb25uZWN0aW9uIGZhaWxlZCBiZWZvcmUgc2VuZGluZyBub3Rp
ZnlTdGF0dXNSZWNlaXZlZDogdXNlIGdlbmVyaWMgTmV0d29ya0Vycm9yLgpAQCAtNDk1LDYgKzUz
MSw3IEBAIHZvaWQgTmV0d29ya0pvYjo6aGFuZGxlTm90aWZ5Q2xvc2UoaW50IHN0YXR1cykKICAg
ICAgICAgICAgICAgICBtX2V4dGVuZGVkU3RhdHVzQ29kZSA9IEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpGaWx0ZXJTdHJlYW06OlN0YXR1c1Rvb01hbnlSZWRpcmVjdHM7CiAKICAgICAgICAgICAgIHNl
bmRSZXNwb25zZUlmTmVlZGVkKCk7CisKICAgICAgICAgICAgIGlmIChpc0NsaWVudEF2YWlsYWJs
ZSgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGlzRXJyb3Ioc3RhdHVzKSkKICAgICAgICAgICAg
ICAgICAgICAgbV9leHRlbmRlZFN0YXR1c0NvZGUgPSBzdGF0dXM7CkBAIC03NjcsNyArODA0LDE1
IEBAIGJvb2wgTmV0d29ya0pvYjo6c2VuZFJlcXVlc3RXaXRoQ3JlZGVudGlhbHMoUHJvdGVjdGlv
blNwYWNlU2VydmVyVHlwZSB0eXBlLCBQcm90CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgICAgICBtX2hhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+bV9jdXJyZW50V2ViQ2hh
bGxlbmdlID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKTsKLSAgICAgICAgICAgIG1fZnJhbWUt
PnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+YXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UobmV3VVJMLCBwcm90ZWN0aW9uU3BhY2UsIENyZWRlbnRpYWwoKSwg
dGhpcyk7CisKKyAgICAgICAgICAgIG1faXNBdXRoZW50aWNhdGlvbkNoYWxsZW5naW5nID0gdHJ1
ZTsKKyAgICAgICAgICAgIGZyZWV6ZSgpOworCisgICAgICAgICAgICBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZU1hbmFnZXI6Omluc3RhbmNlKCktPmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG5ld1VS
TCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGlvblNwYWNlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDcmVkZW50aWFsKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgp
LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgfQogCkBAIC04MjYsMTMgKzg3MSw3MSBAQCB2b2lkIE5ldHdvcmtKb2I6OmZpcmVEZWxldGVK
b2JUaW1lcihUaW1lcjxOZXR3b3JrSm9iPiopCiAgICAgTmV0d29ya01hbmFnZXI6Omluc3RhbmNl
KCktPmRlbGV0ZUpvYih0aGlzKTsKIH0KIAordm9pZCBOZXR3b3JrSm9iOjpmcmVlemUoKQorewor
ICAgIG1fZnJlZXplZCA9IHRydWU7Cit9CisKK3ZvaWQgTmV0d29ya0pvYjo6dW5mcmVlemUoYm9v
bCByZWNvdmVyKQoreworICAgIGlmICghbV9mcmVlemVkKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX2ZyZWV6ZWQgPSBmYWxzZTsKKworICAgIGlmIChtX2ZyZWV6ZWRTdGF0dXMgIT0gQmxhY2tC
ZXJyeTo6UGxhdGZvcm06OkZpbHRlclN0cmVhbTo6U3RhdHVzSW52YWxpZCkgeworICAgICAgICBp
ZiAocmVjb3ZlcikKKyAgICAgICAgICAgIG5vdGlmeVN0YXR1c1JlY2VpdmVkKG1fZnJlZXplZFN0
YXR1cywgbV9mcmVlemVkU3RhdHVzTWVzc2FnZS51dGY4KHRydWUpLmRhdGEoKSk7CisKKyAgICAg
ICAgbV9mcmVlemVkU3RhdHVzID0gQmxhY2tCZXJyeTo6UGxhdGZvcm06OkZpbHRlclN0cmVhbTo6
U3RhdHVzSW52YWxpZDsKKyAgICAgICAgbV9mcmVlemVkU3RhdHVzTWVzc2FnZSA9ICIiOworICAg
IH0KKworICAgIGlmICghbV9mcmVlemVkSGVhZGVycy5lbXB0eSgpKSB7CisgICAgICAgIGlmIChy
ZWNvdmVyKQorICAgICAgICAgICAgbm90aWZ5SGVhZGVyc1JlY2VpdmVkKG1fZnJlZXplZEhlYWRl
cnMpOworCisgICAgICAgIG1fZnJlZXplZEhlYWRlcnMuY2xlYXIoKTsKKyAgICB9CisgICAgaWYg
KCFtX2ZyZWV6ZWRNdWx0aXBhcnRIZWFkZXJzLmVtcHR5KCkpIHsKKyAgICAgICAgaWYgKHJlY292
ZXIpIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9mcmVlemVkTXVsdGlw
YXJ0SGVhZGVycy5zaXplKCk7ICsraSkKKyAgICAgICAgICAgICAgICBub3RpZnlNdWx0aXBhcnRI
ZWFkZXJSZWNlaXZlZChtX2ZyZWV6ZWRNdWx0aXBhcnRIZWFkZXJzW2ldLmZpcnN0LmNfc3RyKCks
IG1fZnJlZXplZE11bHRpcGFydEhlYWRlcnNbaV0uc2Vjb25kLmNfc3RyKCkpOworICAgICAgICB9
CisKKyAgICAgICAgbV9mcmVlemVkTXVsdGlwYXJ0SGVhZGVycy5jbGVhcigpOworICAgIH0KKyAg
ICBpZiAoIW1fZnJlZXplZERhdGEuaXNFbXB0eSgpKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV9mcmVlemVkRGF0YS5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHJl
Y292ZXIpCisgICAgICAgICAgICAgICAgbm90aWZ5RGF0YVJlY2VpdmVkKG1fZnJlZXplZERhdGFb
aV0pOworCisgICAgICAgICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6cmVsZWFzZU5ldHdvcmtC
dWZmZXIobV9mcmVlemVkRGF0YVtpXSk7CisgICAgICAgIH0KKworICAgICAgICBtX2ZyZWV6ZWRE
YXRhLmNsZWFyKCk7CisgICAgfQorCisgICAgaWYgKG1fZnJlZXplZENsb3NlU3RhdHVzICE9IEJs
YWNrQmVycnk6OlBsYXRmb3JtOjpGaWx0ZXJTdHJlYW06OlN0YXR1c0ludmFsaWQpIHsKKyAgICAg
ICAgaWYgKHJlY292ZXIpCisgICAgICAgICAgICBub3RpZnlDbG9zZShtX2ZyZWV6ZWRDbG9zZVN0
YXR1cyk7CisKKyAgICAgICAgbV9mcmVlemVkQ2xvc2VTdGF0dXMgPSBCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6RmlsdGVyU3RyZWFtOjpTdGF0dXNJbnZhbGlkOworICAgIH0KK30KKwogdm9pZCBOZXR3
b3JrSm9iOjpub3RpZnlDaGFsbGVuZ2VSZXN1bHQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBQcm90
ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZXN1
bHQgcmVzdWx0LCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKQogeworICAgIG1faXNBdXRo
ZW50aWNhdGlvbkNoYWxsZW5naW5nID0gZmFsc2U7CisKICAgICBpZiAocmVzdWx0ICE9IEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlU3VjY2VzcyB8fCBwcm90ZWN0aW9uU3BhY2UuaG9zdCgpLmlzRW1w
dHkoKSB8fCAhdXJsLmlzVmFsaWQoKSkgeworICAgICAgICB1bmZyZWV6ZSh0cnVlKTsKICAgICAg
ICAgbV9uZXdKb2JXaXRoQ3JlZGVudGlhbHNTdGFydGVkID0gZmFsc2U7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKKyAgICB1bmZyZWV6ZShmYWxzZSk7CisKICAgICBpZiAobV9oYW5kbGUtPmdl
dEludGVybmFsKCktPm1fY3VycmVudFdlYkNoYWxsZW5nZS5pc051bGwoKSkKICAgICAgICAgbV9o
YW5kbGUtPmdldEludGVybmFsKCktPm1fY3VycmVudFdlYkNoYWxsZW5nZSA9IEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKHByb3RlY3Rpb25TcGFjZSwgY3JlZGVudGlhbCwgMCwgbV9yZXNwb25zZSwg
UmVzb3VyY2VFcnJvcigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmgKaW5kZXggMzUyNjM3NC4uZDg4OWFjZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05l
dHdvcmtKb2IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvTmV0d29ya0pvYi5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8bmV0d29yay9GaWx0
ZXJTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIEJsYWNrQmVycnkgewpAQCAtNDksNiArNTAsOCBAQCBjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBOZXR3b3JrSm9iIDogcHVibGljIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlQ2xpZW50LCBwdWJsaWMgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkZpbHRlclN0cmVh
bSB7CiBwdWJsaWM6CiAgICAgTmV0d29ya0pvYigpOworICAgIH5OZXR3b3JrSm9iKCk7CisKICAg
ICBib29sIGluaXRpYWxpemUoaW50IHBsYXllcklkLAogICAgICAgICAgICAgICAgICAgICBjb25z
dCBTdHJpbmcmIHBhZ2VHcm91cE5hbWUsCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEtVUkwm
LApAQCAtMTM2LDYgKzEzOSw5IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBzdGF0dXNDb2Rl
IDwgMCB8fCAoNDAwIDw9IHN0YXR1c0NvZGUgJiYgc3RhdHVzQ29kZSA8IDYwMCk7CiAgICAgfQog
CisgICAgdm9pZCBmcmVlemUoKTsKKyAgICB2b2lkIHVuZnJlZXplKGJvb2wgcmVjb3Zlcik7CisK
IHByaXZhdGU6CiAgICAgaW50IG1fcGxheWVySWQ7CiAgICAgU3RyaW5nIG1fcGFnZUdyb3VwTmFt
ZTsKQEAgLTE3MSw2ICsxNzcsMTYgQEAgcHJpdmF0ZToKICAgICBEZWZlcnJlZERhdGEgbV9kZWZl
cnJlZERhdGE7CiAgICAgaW50IG1fZGVmZXJMb2FkaW5nQ291bnQ7CiAgICAgY29uc3QgRnJhbWUq
IG1fZnJhbWU7CisKKyAgICBib29sIG1faXNBdXRoZW50aWNhdGlvbkNoYWxsZW5naW5nOworCisg
ICAgYm9vbCBtX2ZyZWV6ZWQ7CisgICAgaW50IG1fZnJlZXplZFN0YXR1czsKKyAgICBpbnQgbV9m
cmVlemVkQ2xvc2VTdGF0dXM7CisgICAgU3RyaW5nIG1fZnJlZXplZFN0YXR1c01lc3NhZ2U7Cisg
ICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpIZWFkZXJMaXN0IG1fZnJl
ZXplZEhlYWRlcnM7CisgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpI
ZWFkZXJMaXN0IG1fZnJlZXplZE11bHRpcGFydEhlYWRlcnM7CisgICAgVmVjdG9yPEJsYWNrQmVy
cnk6OlBsYXRmb3JtOjpOZXR3b3JrQnVmZmVyKj4gbV9mcmVlemVkRGF0YTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvQmxhY2tCZXJyeUdsb2JhbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0Js
YWNrQmVycnlHbG9iYWwuY3BwCmluZGV4IGZjOWNkNWEuLmQ4YjVjNTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvQmxhY2tCZXJyeUdsb2JhbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9CbGFja0JlcnJ5R2xvYmFsLmNwcApAQCAtMjAsNiAr
MjAsNyBAQAogI2luY2x1ZGUgIkJsYWNrQmVycnlHbG9iYWwuaCIKIAogI2luY2x1ZGUgIkFwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmgiCisjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VN
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiQ2FjaGVDbGllbnRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAi
Q29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2Fj
aGUuaCIKQEAgLTgwLDYgKzgxLDggQEAgdm9pZCBnbG9iYWxJbml0aWFsaXplKCkKICAgICBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6U2V0dGluZ3MqIHNldHRpbmdzID0gQmxhY2tCZXJyeTo6UGxhdGZv
cm06OlNldHRpbmdzOjppbnN0YW5jZSgpOwogCiAgICAgSW1hZ2VTb3VyY2U6OnNldE1heFBpeGVs
c1BlckRlY29kZWRJbWFnZShzZXR0aW5ncy0+bWF4UGl4ZWxzUGVyRGVjb2RlZEltYWdlKCkpOwor
CisgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjppbml0KCk7CiB9CiAKIHZvaWQg
Y29sbGVjdEphdmFzY3JpcHRHYXJiYWdlTm93KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlBhZ2UuY3BwCmluZGV4IDIzMjZkYmYuLjEyODA3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtNDI3LDYgKzQyNyw4IEBAIFdlYlBhZ2VQcml2YXRl
OjpXZWJQYWdlUHJpdmF0ZShXZWJQYWdlKiB3ZWJQYWdlLCBXZWJQYWdlQ2xpZW50KiBjbGllbnQs
IGNvbnN0IEluCiAgICAgICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpEZXZpY2VJbmZvOjppbnN0
YW5jZSgpOwogICAgICAgICBkZWZhdWx0VXNlckFnZW50KCk7CiAgICAgfQorCisgICAgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjppbnN0YW5jZSgpLT5wYWdlQ3JlYXRlZCh0aGlzKTsK
IH0KIAogV2ViUGFnZTo6V2ViUGFnZShXZWJQYWdlQ2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYlN0
cmluZyYgcGFnZUdyb3VwTmFtZSwgY29uc3QgUGxhdGZvcm06OkludFJlY3QmIHJlY3QpCkBAIC00
MzgsNiArNDQwLDcgQEAgV2ViUGFnZTo6V2ViUGFnZShXZWJQYWdlQ2xpZW50KiBjbGllbnQsIGNv
bnN0IFdlYlN0cmluZyYgcGFnZUdyb3VwTmFtZSwgY29uc3QgUGwKIAogV2ViUGFnZVByaXZhdGU6
On5XZWJQYWdlUHJpdmF0ZSgpCiB7CisgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2Vy
OjppbnN0YW5jZSgpLT5wYWdlRGVsZXRlZCh0aGlzKTsKICAgICAvLyBIYW5kIHRoZSBiYWNraW5n
c3RvcmUgYmFjayB0byBhbm90aGVyIG93bmVyIGlmIG5lY2Vzc2FyeS4KICAgICBtX3dlYlBhZ2Ut
PnNldFZpc2libGUoZmFsc2UpOwogICAgIGlmIChCYWNraW5nU3RvcmVQcml2YXRlOjpjdXJyZW50
QmFja2luZ1N0b3JlT3duZXIoKSA9PSBtX3dlYlBhZ2UpCkBAIC0yMjEwLDE4ICsyMjEzLDE5IEBA
IGJvb2wgV2ViUGFnZVByaXZhdGU6OmlzQWN0aXZlKCkgY29uc3QKICAgICByZXR1cm4gbV9jbGll
bnQtPmlzQWN0aXZlKCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByaXZhdGU6OmF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0
aW9uU3BhY2UsIGNvbnN0IENyZWRlbnRpYWwmIGlucHV0Q3JlZGVudGlhbCwgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VDbGllbnQqIGNsaWVudCkKK3ZvaWQgV2ViUGFnZVByaXZhdGU6OmF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBw
cm90ZWN0aW9uU3BhY2UsIGNvbnN0IENyZWRlbnRpYWwmIGlucHV0Q3JlZGVudGlhbCkKIHsKICAg
ICBXZWJTdHJpbmcgdXNlcm5hbWU7CiAgICAgV2ViU3RyaW5nIHBhc3N3b3JkOworICAgIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlciogYXV0aG1nciA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlTWFuYWdlcjo6aW5zdGFuY2UoKTsKIAogI2lmICFkZWZpbmVkKFBVQkxJQ19CVUlMRCkgfHwg
IVBVQkxJQ19CVUlMRAogICAgIGlmIChtX2R1bXBSZW5kZXJUcmVlKSB7CiAgICAgICAgIENyZWRl
bnRpYWwgY3JlZGVudGlhbChpbnB1dENyZWRlbnRpYWwsIGlucHV0Q3JlZGVudGlhbC5wZXJzaXN0
ZW5jZSgpKTsKICAgICAgICAgaWYgKG1fZHVtcFJlbmRlclRyZWUtPmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShjcmVkZW50aWFsKSkKLSAgICAgICAgICAgIGNsaWVudC0+bm90aWZ5
Q2hhbGxlbmdlUmVzdWx0KHVybCwgcHJvdGVjdGlvblNwYWNlLCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVN1Y2Nlc3MsIGNyZWRlbnRpYWwpOworICAgICAgICAgICAgYXV0aG1nci0+bm90aWZ5Q2hh
bGxlbmdlUmVzdWx0KHVybCwgcHJvdGVjdGlvblNwYWNlLCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVN1Y2Nlc3MsIGNyZWRlbnRpYWwpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBjbGllbnQt
Pm5vdGlmeUNoYWxsZW5nZVJlc3VsdCh1cmwsIHByb3RlY3Rpb25TcGFjZSwgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VDYW5jZWxsZWQsIGlucHV0Q3JlZGVudGlhbCk7CisgICAgICAgICAgICBhdXRo
bWdyLT5ub3RpZnlDaGFsbGVuZ2VSZXN1bHQodXJsLCBwcm90ZWN0aW9uU3BhY2UsIEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlQ2FuY2VsbGVkLCBpbnB1dENyZWRlbnRpYWwpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogI2VuZGlmCkBAIC0yMjQyLDkgKzIyNDYsOSBAQCB2b2lkIFdlYlBhZ2VQcml2
YXRlOjphdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFByb3Rl
Y3Rpb25TcAogI2VuZGlmCiAKICAgICBpZiAoaXNDb25maXJtZWQpCi0gICAgICAgIGNsaWVudC0+
bm90aWZ5Q2hhbGxlbmdlUmVzdWx0KHVybCwgcHJvdGVjdGlvblNwYWNlLCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVN1Y2Nlc3MsIGNyZWRlbnRpYWwpOworICAgICAgICBhdXRobWdyLT5ub3RpZnlD
aGFsbGVuZ2VSZXN1bHQodXJsLCBwcm90ZWN0aW9uU3BhY2UsIEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlU3VjY2VzcywgY3JlZGVudGlhbCk7CiAgICAgZWxzZQotICAgICAgICBjbGllbnQtPm5vdGlm
eUNoYWxsZW5nZVJlc3VsdCh1cmwsIHByb3RlY3Rpb25TcGFjZSwgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VDYW5jZWxsZWQsIGlucHV0Q3JlZGVudGlhbCk7CisgICAgICAgIGF1dGhtZ3ItPm5vdGlm
eUNoYWxsZW5nZVJlc3VsdCh1cmwsIHByb3RlY3Rpb25TcGFjZSwgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VDYW5jZWxsZWQsIGlucHV0Q3JlZGVudGlhbCk7CiB9CiAKIFBhZ2VDbGllbnRCbGFja0Jl
cnJ5OjpTYXZlQ3JlZGVudGlhbFR5cGUgV2ViUGFnZVByaXZhdGU6Om5vdGlmeVNob3VsZFNhdmVD
cmVkZW50aWFsKGJvb2wgaXNOZXcpCkBAIC0zMjM2LDYgKzMyNDAsNyBAQCB2b2lkIFdlYlBhZ2U6
OnNldFZpc2libGUoYm9vbCB2aXNpYmxlKQogICAgICAgICByZXR1cm47CiAKICAgICBkLT5zZXRW
aXNpYmxlKHZpc2libGUpOworICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6aW5z
dGFuY2UoKS0+cGFnZVZpc2liaWxpdHlDaGFuZ2VkKGQsIHZpc2libGUpOwogCiAgICAgaWYgKCF2
aXNpYmxlKSB7CiAgICAgICAgIGQtPnN1c3BlbmRCYWNraW5nU3RvcmUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmggYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCmluZGV4IDdjMjI2ZjMuLmJjYjdkNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaApAQCAtMjAxLDcgKzIwMSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBzaG93QWxlcnREaWFsb2coV2ViUGFnZUNsaWVudDo6
QWxlcnRUeXBlIGF0eXBlKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV92aXNpYmxlOyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OktV
UkwmLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmLCBjb25zdCBXZWJDb3JlOjpDcmVk
ZW50aWFsJiwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VDbGllbnQqKTsKKyAgICB2
aXJ0dWFsIHZvaWQgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6S1VSTCYs
IGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYsIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRp
YWwmKTsKICAgICB2aXJ0dWFsIFNhdmVDcmVkZW50aWFsVHlwZSBub3RpZnlTaG91bGRTYXZlQ3Jl
ZGVudGlhbChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc3luY1Byb3h5Q3JlZGVudGlhbChjb25z
dCBXZWJDb3JlOjpDcmVkZW50aWFsJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmlu
ZGV4IDVjYzU0MTAuLjIwODQ2M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI3IEBACisyMDEyLTA5LTIxICBMaWFuZ2h1aSBDaGVuICA8bGlhY2hlbkByaW0uY29t
PgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBSZWFsbHkgZml4IGJ1ZyA5NTQ4OCB0aGF0IHVzZXIg
Y2FuIGdldCB0aGUgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlIGRpYWxvZyB3aGlsZSB0aGUgb3Ro
ZXIgdGFiIGhhcyBmb2N1cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk3MzQ4CisgICAgICAgIEludGVybmFsIFBSOiAxODY1OTcuCisKKyAgICAgICAg
SW50ZXJuYWxseSByZXZpZXdlZCBieSBZb25nIExpLCBKb2UgTWFzb24uCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXBkYXRlIFdlYlBhZ2UgdG8gdXNl
IG5ldyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuCisgICAgICAgICogUmVnaXN0ZXIg
cGFnZSBjcmVhdGlvbi9kZWxldGlvbiBhbmQgdmlzaWJpbGl0eSBjaGFuZ2UgdG8gdGhlIG5ldwor
ICAgICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuCisgICAgICAgICogSW5pdGlh
bGl6ZSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIgaW4gR2xvYmFsSW5pdGlhbGl6ZSgp
IGZ1bmN0aW9uLgorCisgICAgICAgICogQXBpL0JsYWNrQmVycnlHbG9iYWwuY3BwOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpnbG9iYWxJbml0aWFsaXplKToKKyAgICAgICAgKiBBcGkv
V2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRl
OjpXZWJQYWdlUHJpdmF0ZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQ
cml2YXRlOjp+V2ViUGFnZVByaXZhdGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpX
ZWJQYWdlUHJpdmF0ZTo6YXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpzZXRWaXNpYmxlKToKKyAgICAgICAgKiBBcGkvV2ViUGFn
ZV9wLmg6CisgICAgICAgIChXZWJQYWdlUHJpdmF0ZSk6CisKIDIwMTItMDktMjEgIENoYXJsZXMg
V2VpICA8Y2hhcmxlcy53ZWlAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFdyb25nIHNl
cGVyYXRvciBmb3Igdmlld3BvcnQgbWV0YSBpbiBQb3B1cCBzY3JpcHRzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165160</attachid>
            <date>2012-09-21 11:34:26 -0700</date>
            <delta_ts>2012-09-21 13:41:27 -0700</delta_ts>
            <desc>Fixing coding style errors in ChangeLog</desc>
            <filename>97348-2.patch</filename>
            <type>text/plain</type>
            <size>35297</size>
            <attacher name="Lyon Chen">liachen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhOTBjZmRiLi41NjU0NjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEg
QEAKKzIwMTItMDktMjEgIExpYW5naHVpIENoZW4gIDxsaWFjaGVuQHJpbS5jb20+CisKKyAgICAg
ICAgW0JsYWNrQmVycnldIFJlYWxseSBmaXggYnVnIDk1NDg4IHRoYXQgdXNlciBjYW4gZ2V0IHRo
ZSBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UgZGlhbG9nIHdoaWxlIHRoZSBvdGhlciB0YWIgaGFz
IGZvY3VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTczNDgKKyAgICAgICAgSW50ZXJuYWwgUFI6IDE4NjU5Ny4KKworICAgICAgICBJbnRlcm5hbGx5
IHJldmlld2VkIGJ5IFlvbmcgTGksIEpvZSBNYXNvbi4KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgc2luZ2xldG9uIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlTWFuYWdlciB0byBtYW5hZ2UgYXV0aGVudGljYXRpb24KKyAgICAgICAgY2hhbGxlbmdl
IGRpYWxvZy4gSXQgZG9lcyBmb2xsb3dpbmcgdGhpbmdzOgorICAgICAgICBSZWNvcmQgcGFnZSBj
cmVhdGlvbi9kZWxldGlvbiwgc28gaXQga25vd3Mgd2hhdCBwYWdlIGlzIHByZXNlbnQgb3Igbm90
LgorICAgICAgICBSZWNvcmQgcGFnZSB2aXNpYmlsaXR5IGNoYW5nZSBzbyBpdCBrbm93cyB3aGVu
IHRvIGRpc3BsYXkgYSBkaWFsb2cgb3Igbm90LgorICAgICAgICBBY2NlcHQgYXV0aGVudGljYXRp
b24gY2hhbGxlbmdlLCBhbmQgZGVjaWRlIHdoZXRoZXIgdG8gcG9zdHBvbmUgdGhlCisgICAgICAg
ICAgICBjaGFsbGVuZ2UgZGlhbG9nIGJhc2VkIG9uIHdoZXRoZXIgdGhlcmUgaXMgYWN0aXZlIGF1
dGhlbnRpY2F0aW9uIGNoYWxsZW5nZQorICAgICAgICAgICAgZGlhbG9nIGFscmVhZHkgYW5kIHdo
ZXRoZXIgaXRzIHBhZ2UgaXMgdmlzaWJsZSBvciBub3QuCisgICAgICAgIFdoZW4gYSBjaGFsbGVu
Z2UgcmVzdWx0IGNvbWVzIGJhY2ssIG5vdGlmeSB0aGUgcmVzdWx0IHRvIGFsbCBjbGllbnRzCisg
ICAgICAgICAgICBhdXRoZW50aWNhdGluZyBmb3IgdGhlIHNhbWUgcHJvdGVjdGlvbiBzcGFjZSwg
YW5kIHRoZW4gc3RhcnQgdGhlIG5leHQKKyAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGNoYWxs
ZW5nZSBmcm9tIHRoZSBzYW1lIHBhZ2UsIGlmIHRoZXJlIGlzIG9uZS4KKyAgICAgICAgV2hlbiBh
IHBhZ2UgYmVjb21lcyB2aXNpYmxlLCBzdGFydCB0aGUgZmlyc3QgYXV0aGVudGljYXRpb24gY2hh
bGxlbmdlCisgICAgICAgICAgICBkaWFsb2cgdGhhdCBoYXMgYmVlbiBibG9ja2VkIGJlZm9yZS4K
KworICAgICAgICBBbmQgdG8gc3VwcG9ydCB0aGlzIG5ldyBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZU1hbmFnZXIsIGFuZCBtYWtpbmcgdGhlCisgICAgICAgICAgICBjaGFsbGVuZ2UgcmVhbGx5IGFz
eW5jaHJvbm91cywgTmV0d29ya0pvYiBoYXMgYmVlbiB1cGRhdGVkIHRvIHN1cHBvcnQKKyAgICAg
ICAgICAgIHRoZSBjb25jZXB0IG9mICJmcmVlemUiLCB3aGljaCBtZWFucyBidWZmZXJpbmcgYWxs
IG5ldHdvcmsgbG9hZGluZyBzdGF0dXMKKyAgICAgICAgICAgIGNoYW5nZSBidXQgZG9uJ3Qgc2Vu
ZCB0aGVtIHRvIE5ldHdvcmtKb2IgY2xpZW50cy4KKyAgICAgICAgVGhpcyBpcyBuZWNlc3Nhcnkg
d2hlbiBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UgaXMgYXN5bmNocm9ub3VzLCBhcyB0aGUKKyAg
ICAgICAgICAgIHByZXZpb3VzIG5ldHdvcmsgbG9hZGluZyBzdGF0dXMgd2lsbCBsaWtlbHkgY29t
ZSBiZWZvcmUgdXNlciBtYWtlIGFueQorICAgICAgICAgICAgZGVjaXNpb24uCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIGZvciBwbGF0Zm9ybSBzcGVjaWZpYyBpbnRlcm5hbCBjaGFuZ2UuCisKKyAg
ICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAgICogcGxhdGZvcm0vYmxh
Y2tiZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoQ2hhbGxlbmdlSW5mbyk6CisgICAgICAgIChXZWJDb3Jl
OjpDaGFsbGVuZ2VJbmZvOjpDaGFsbGVuZ2VJbmZvKToKKyAgICAgICAgKEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlTWFuYWdlclByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2VNYW5hZ2VyUHJpdmF0ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2Vy
UHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFn
ZXJQcml2YXRlOjpyZXN1bWVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJQcml2YXRlOjpzdGFydEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlTWFuYWdlclByaXZhdGU6OnBhZ2VFeGlzdHMpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjpwYWdl
Q3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFn
ZXI6OnBhZ2VEZWxldGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlTWFuYWdlcjo6cGFnZVZpc2liaWxpdHlDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6YXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjpjYW5jZWxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZU1hbmFnZXI6Om5vdGlmeUNoYWxsZW5nZVJlc3VsdCk6CisgICAgICAgIChXZWJD
b3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXI6Omluc3RhbmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6aW5pdCk6CisgICAgICAg
ICogcGxhdGZvcm0vYmxhY2tiZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5h
Z2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclBy
aXZhdGVCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGU6Om9uQXV0aGVudGljYXRpb25OZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlOjpub3RpZnlDaGFsbGVuZ2VSZXN1bHQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oOgor
ICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9i
OjpOZXR3b3JrSm9iKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6On5OZXR3b3JrSm9i
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6aGFu
ZGxlTm90aWZ5U3RhdHVzUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6
bm90aWZ5SGVhZGVyc1JlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6Omhh
bmRsZU5vdGlmeU11bHRpcGFydEhlYWRlclJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtKb2I6OmhhbmRsZU5vdGlmeURhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpO
ZXR3b3JrSm9iOjpoYW5kbGVOb3RpZnlDbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
Sm9iOjpzZW5kUmVxdWVzdFdpdGhDcmVkZW50aWFscyk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3
b3JrSm9iOjpmcmVlemUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6dW5mcmVlemUp
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6bm90aWZ5Q2hhbGxlbmdlUmVzdWx0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5oOgorICAg
ICAgICAoTmV0d29ya0pvYik6CisKIDIwMTItMDktMjEgIEV2YW4gV2FsbGFjZSAgPGV2YW4uZXhl
QGdtYWlsLmNvbT4KIAogICAgICAgICBbV2ViU29ja2V0XSBSZWNlaXZpbmcgYSBsYXJnZSBtZXNz
YWdlIGlzIHJlYWxseSBzbG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJs
YWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UK
aW5kZXggNTNjMmQzNS4uMWJjYjVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJy
eS5jbWFrZQpAQCAtNjAsNiArNjAsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAg
ICBiaW5kaW5ncy9jcHAvV2ViRE9NU3RyaW5nLmNwcAogICAgIGJpbmRpbmdzL2NwcC9XZWJFeGNl
cHRpb25IYW5kbGVyLmNwcAogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvQ29va2llRGF0YWJhc2VC
YWNraW5nU3RvcmUvQ29va2llRGF0YWJhc2VCYWNraW5nU3RvcmUuY3BwCisgICAgcGxhdGZvcm0v
YmxhY2tiZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuY3BwCiAgICAgcGxhdGZv
cm0vYmxhY2tiZXJyeS9Db29raWVNYW5hZ2VyLmNwcAogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkv
Q29va2llTWFwLmNwcAogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvQ29va2llUGFyc2VyLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9BdXRoZW50aWNh
dGlvbkNoYWxsZW5nZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2ti
ZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmU0MGE0MmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlci5j
cHAKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2gg
SW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlTWFuYWdlci5oIgorCisjaW5jbHVkZSAiQ3JlZGVudGlhbC5oIgorI2luY2x1ZGUgIktVUkwu
aCIKKyNpbmNsdWRlICJQYWdlQ2xpZW50QmxhY2tCZXJyeS5oIgorI2luY2x1ZGUgIlByb3RlY3Rp
b25TcGFjZS5oIgorCisjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtQXNzZXJ0Lmg+CisjaW5j
bHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtTG9nLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMu
aD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordHlw
ZWRlZiBIYXNoTWFwPFBhZ2VDbGllbnRCbGFja0JlcnJ5KiwgYm9vbD4gUGFnZVZpc2liaWxpdHlN
YXA7CisKK3N0cnVjdCBDaGFsbGVuZ2VJbmZvIHsKKyAgICBDaGFsbGVuZ2VJbmZvKGNvbnN0IEtV
UkwmLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBjb25zdCBDcmVkZW50aWFsJiwgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VDbGllbnQqLCBQYWdlQ2xpZW50QmxhY2tCZXJyeSopOworCisgICAgS1VS
TCB1cmw7CisgICAgUHJvdGVjdGlvblNwYWNlIHNwYWNlOworICAgIENyZWRlbnRpYWwgY3JlZGVu
dGlhbDsKKyAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNsaWVudCogYXV0aENsaWVudDsKKyAg
ICBQYWdlQ2xpZW50QmxhY2tCZXJyeSogcGFnZUNsaWVudDsKKyAgICBib29sIGJsb2NrZWQ7Cit9
OworCitDaGFsbGVuZ2VJbmZvOjpDaGFsbGVuZ2VJbmZvKGNvbnN0IEtVUkwmIGFVcmwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgYVNwYWNlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDcmVkZW50aWFsJiBhQ3JlZGVudGlh
bCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VD
bGllbnQqIGFuQXV0aENsaWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFnZUNs
aWVudEJsYWNrQmVycnkqIGFQYWdlQ2xpZW50KQorICAgIDogdXJsKGFVcmwpCisgICAgLCBzcGFj
ZShhU3BhY2UpCisgICAgLCBjcmVkZW50aWFsKGFDcmVkZW50aWFsKQorICAgICwgYXV0aENsaWVu
dChhbkF1dGhDbGllbnQpCisgICAgLCBwYWdlQ2xpZW50KGFQYWdlQ2xpZW50KQorICAgICwgYmxv
Y2tlZChmYWxzZSkKK3sKK30KKworY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2Vy
UHJpdmF0ZSB7CitwdWJsaWM6CisgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyUHJp
dmF0ZSgpOworCisgICAgYm9vbCByZXN1bWVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlQ2xp
ZW50QmxhY2tCZXJyeSopOworICAgIHZvaWQgc3RhcnRBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShD
aGFsbGVuZ2VJbmZvKik7CisgICAgYm9vbCBwYWdlRXhpc3RzKFBhZ2VDbGllbnRCbGFja0JlcnJ5
Kik7CisKKyAgICBDaGFsbGVuZ2VJbmZvKiBtX2FjdGl2ZUNoYWxsZW5nZTsKKyAgICBQYWdlVmlz
aWJpbGl0eU1hcCBtX3BhZ2VWaXNpYmlsaXR5TWFwOworICAgIFZlY3RvcjxPd25QdHI8Q2hhbGxl
bmdlSW5mbz4gPiBtX2NoYWxsZW5nZXM7Cit9OworCitBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1h
bmFnZXJQcml2YXRlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJQcml2YXRlKCkKKyAg
ICA6IG1fYWN0aXZlQ2hhbGxlbmdlKDApCit7Cit9CisKK2Jvb2wgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VNYW5hZ2VyUHJpdmF0ZTo6cmVzdW1lQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUNs
aWVudEJsYWNrQmVycnkqIGNsaWVudCkKK3sKKyAgICBBU1NFUlQoIW1fYWN0aXZlQ2hhbGxlbmdl
KTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jaGFsbGVuZ2VzLnNpemUoKTsgKytp
KSB7CisgICAgICAgIGlmIChtX2NoYWxsZW5nZXNbaV0tPnBhZ2VDbGllbnQgPT0gY2xpZW50ICYm
IG1fY2hhbGxlbmdlc1tpXS0+YmxvY2tlZCkgeworICAgICAgICAgICAgc3RhcnRBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZShtX2NoYWxsZW5nZXNbaV0uZ2V0KCkpOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyUHJpdmF0ZTo6c3RhcnRBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShDaGFsbGVuZ2VJbmZvKiBpbmZvKQoreworICAgIG1fYWN0aXZlQ2hhbGxlbmdl
ID0gaW5mbzsKKyAgICBtX2FjdGl2ZUNoYWxsZW5nZS0+YmxvY2tlZCA9IGZhbHNlOworICAgIG1f
YWN0aXZlQ2hhbGxlbmdlLT5wYWdlQ2xpZW50LT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX2Fj
dGl2ZUNoYWxsZW5nZS0+dXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZUNoYWxsZW5nZS0+c3BhY2UsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fYWN0
aXZlQ2hhbGxlbmdlLT5jcmVkZW50aWFsKTsKK30KKworYm9vbCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZU1hbmFnZXJQcml2YXRlOjpwYWdlRXhpc3RzKFBhZ2VDbGllbnRCbGFja0JlcnJ5KiBjbGll
bnQpCit7CisgICAgcmV0dXJuIG1fcGFnZVZpc2liaWxpdHlNYXAuZmluZChjbGllbnQpICE9IG1f
cGFnZVZpc2liaWxpdHlNYXAuZW5kKCk7Cit9CisKK0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFu
YWdlcjo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyKCkKKyAgICA6IGQoYWRvcHRQdHIo
bmV3IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlclByaXZhdGUpKQoreworfQorCit2b2lk
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6cGFnZUNyZWF0ZWQoUGFnZUNsaWVudEJs
YWNrQmVycnkqIGNsaWVudCkKK3sKKyAgICBkLT5tX3BhZ2VWaXNpYmlsaXR5TWFwLmFkZChjbGll
bnQsIHRydWUpOworfQorCit2b2lkIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6cGFn
ZURlbGV0ZWQoUGFnZUNsaWVudEJsYWNrQmVycnkqIGNsaWVudCkKK3sKKyAgICBkLT5tX3BhZ2VW
aXNpYmlsaXR5TWFwLnJlbW92ZShjbGllbnQpOworCisgICAgaWYgKGQtPm1fYWN0aXZlQ2hhbGxl
bmdlICYmIGQtPm1fYWN0aXZlQ2hhbGxlbmdlLT5wYWdlQ2xpZW50ID09IGNsaWVudCkKKyAgICAg
ICAgZC0+bV9hY3RpdmVDaGFsbGVuZ2UgPSAwOworCisgICAgVmVjdG9yPE93blB0cjxDaGFsbGVu
Z2VJbmZvPiA+IGV4aXN0aW5nOworICAgIGQtPm1fY2hhbGxlbmdlcy5zd2FwKGV4aXN0aW5nKTsK
KworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXhpc3Rpbmcuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgaWYgKGV4aXN0aW5nW2ldLT5wYWdlQ2xpZW50ICE9IGNsaWVudCkKKyAgICAgICAgICAg
IGQtPm1fY2hhbGxlbmdlcy5hcHBlbmQoZXhpc3RpbmdbaV0ucmVsZWFzZSgpKTsKKyAgICB9Cit9
CisKK3ZvaWQgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjpwYWdlVmlzaWJpbGl0eUNo
YW5nZWQoUGFnZUNsaWVudEJsYWNrQmVycnkqIGNsaWVudCwgYm9vbCB2aXNpYmxlKQoreworICAg
IFBhZ2VWaXNpYmlsaXR5TWFwOjppdGVyYXRvciBpdGVyID0gZC0+bV9wYWdlVmlzaWJpbGl0eU1h
cC5maW5kKGNsaWVudCk7CisKKyAgICBBU1NFUlQoaXRlciAhPSBkLT5tX3BhZ2VWaXNpYmlsaXR5
TWFwLmVuZCgpKTsKKyAgICBpZiAoaXRlciA9PSBkLT5tX3BhZ2VWaXNpYmlsaXR5TWFwLmVuZCgp
KSB7CisgICAgICAgIGQtPm1fcGFnZVZpc2liaWxpdHlNYXAuYWRkKGNsaWVudCwgdmlzaWJsZSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoaXRlci0+c2Vjb25kID09IHZpc2li
bGUpCisgICAgICAgIHJldHVybjsKKworICAgIGl0ZXItPnNlY29uZCA9IHZpc2libGU7CisgICAg
aWYgKCF2aXNpYmxlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZC0+bV9hY3RpdmVDaGFs
bGVuZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGQtPnJlc3VtZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKGNsaWVudCk7Cit9CisKK3ZvaWQgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2Vy
OjphdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBLVVJMJiB1cmwsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUHJv
dGVjdGlvblNwYWNlJiBzcGFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50KiBhdXRoQ2xpZW50LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhZ2VD
bGllbnRCbGFja0JlcnJ5KiBwYWdlQ2xpZW50KQoreworICAgIEJMQUNLQkVSUllfQVNTRVJUKGF1
dGhDbGllbnQpOworICAgIEJMQUNLQkVSUllfQVNTRVJUKHBhZ2VDbGllbnQpOworCisgICAgQ2hh
bGxlbmdlSW5mbyogaW5mbyA9IG5ldyBDaGFsbGVuZ2VJbmZvKHVybCwgc3BhY2UsIGNyZWRlbnRp
YWwsIGF1dGhDbGllbnQsIHBhZ2VDbGllbnQpOworICAgIGQtPm1fY2hhbGxlbmdlcy5hcHBlbmQo
YWRvcHRQdHIoaW5mbykpOworCisgICAgaWYgKGQtPm1fYWN0aXZlQ2hhbGxlbmdlIHx8ICFwYWdl
Q2xpZW50LT5pc1Zpc2libGUoKSkgeworICAgICAgICBpbmZvLT5ibG9ja2VkID0gdHJ1ZTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGQtPnN0YXJ0QXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoaW5mbyk7Cit9CisKK3ZvaWQgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjpjYW5j
ZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNsaWVudCog
Y2xpZW50KQoreworICAgIEJMQUNLQkVSUllfQVNTRVJUKGNsaWVudCk7CisKKyAgICBpZiAoZC0+
bV9hY3RpdmVDaGFsbGVuZ2UgJiYgZC0+bV9hY3RpdmVDaGFsbGVuZ2UtPmF1dGhDbGllbnQgPT0g
Y2xpZW50KQorICAgICAgICBkLT5tX2FjdGl2ZUNoYWxsZW5nZSA9IDA7CisKKyAgICBWZWN0b3I8
T3duUHRyPENoYWxsZW5nZUluZm8+ID4gZXhpc3Rpbmc7CisgICAgZC0+bV9jaGFsbGVuZ2VzLnN3
YXAoZXhpc3RpbmcpOworCisgICAgQ2hhbGxlbmdlSW5mbyogbmV4dCA9IDA7CisgICAgUGFnZUNs
aWVudEJsYWNrQmVycnkqIHBhZ2UgPSAwOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBl
eGlzdGluZy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoZXhpc3RpbmdbaV0tPmF1dGhDbGll
bnQgIT0gY2xpZW50KSB7CisgICAgICAgICAgICBpZiAocGFnZSAmJiAhbmV4dCAmJiBleGlzdGlu
Z1tpXS0+cGFnZUNsaWVudCA9PSBwYWdlKQorICAgICAgICAgICAgICAgIG5leHQgPSBleGlzdGlu
Z1tpXS5nZXQoKTsKKyAgICAgICAgICAgIGQtPm1fY2hhbGxlbmdlcy5hcHBlbmQoZXhpc3Rpbmdb
aV0ucmVsZWFzZSgpKTsKKyAgICAgICAgfSBlbHNlIGlmIChkLT5tX2FjdGl2ZUNoYWxsZW5nZSA9
PSBleGlzdGluZ1tpXS5nZXQoKSkKKyAgICAgICAgICAgIHBhZ2UgPSBleGlzdGluZ1tpXS0+cGFn
ZUNsaWVudDsKKyAgICB9CisKKyAgICBpZiAobmV4dCkKKyAgICAgICAgZC0+c3RhcnRBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShuZXh0KTsKK30KKwordm9pZCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZU1hbmFnZXI6Om5vdGlmeUNoYWxsZW5nZVJlc3VsdChjb25zdCBLVVJMJiB1cmwsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFByb3RlY3Rpb25TcGFjZSYgc3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUmVzdWx0
IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKK3sKKyAgICBkLT5tX2Fj
dGl2ZUNoYWxsZW5nZSA9IDA7CisKKyAgICBWZWN0b3I8T3duUHRyPENoYWxsZW5nZUluZm8+ID4g
ZXhpc3Rpbmc7CisgICAgZC0+bV9jaGFsbGVuZ2VzLnN3YXAoZXhpc3RpbmcpOworCisgICAgQ2hh
bGxlbmdlSW5mbyogbmV4dCA9IDA7CisgICAgUGFnZUNsaWVudEJsYWNrQmVycnkqIHBhZ2UgPSAw
OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBleGlzdGluZy5zaXplKCk7ICsraSkgewor
ICAgICAgICBpZiAoZXhpc3RpbmdbaV0tPnNwYWNlICE9IHNwYWNlKSB7CisgICAgICAgICAgICBp
ZiAocGFnZSAmJiAhbmV4dCAmJiBleGlzdGluZ1tpXS0+cGFnZUNsaWVudCA9PSBwYWdlKQorICAg
ICAgICAgICAgICAgIG5leHQgPSBleGlzdGluZ1tpXS5nZXQoKTsKKyAgICAgICAgICAgIGQtPm1f
Y2hhbGxlbmdlcy5hcHBlbmQoZXhpc3RpbmdbaV0ucmVsZWFzZSgpKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIHBhZ2UgPSBleGlzdGluZ1tpXS0+cGFnZUNsaWVudDsKKyAgICAgICAg
ICAgIGV4aXN0aW5nW2ldLT5hdXRoQ2xpZW50LT5ub3RpZnlDaGFsbGVuZ2VSZXN1bHQoZXhpc3Rp
bmdbaV0tPnVybCwgc3BhY2UsIHJlc3VsdCwgY3JlZGVudGlhbCk7CisKKyAgICAgICAgICAgIC8v
IEFmdGVyIGNhbGxpbmcgbm90aWZ5Q2hhbGxlbmdlUmVzdWx0KCksIHBhZ2UgY291bGQgYmUgZGVz
dHJveWVkIG9yIHNvbWV0aGluZy4KKyAgICAgICAgICAgIGlmICghZC0+cGFnZUV4aXN0cyhwYWdl
KSB8fCAhcGFnZS0+aXNWaXNpYmxlKCkpCisgICAgICAgICAgICAgICAgcGFnZSA9IDA7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBpZiAobmV4dCkKKyAgICAgICAgZC0+c3RhcnRBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZShuZXh0KTsKK30KKworLy8gS2VlcCBmb2xsb3dpbmcgY29kZSBhdCB0aGUg
ZW5kIG9mIHRoaXMgZmlsZSEhIQorc3RhdGljIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdl
ciogc19tYW5hZ2VyID0gMDsKKworQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyKiBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXI6Omluc3RhbmNlKCkKK3sKKyAgICBBU1NFUlQoc19t
YW5hZ2VyKTsKKyAgICByZXR1cm4gc19tYW5hZ2VyOworfQorCit2b2lkIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlTWFuYWdlcjo6aW5pdCgpCit7CisgICAgQVNTRVJUKCFzX21hbmFnZXIpOworICAg
IHNfbWFuYWdlciA9IG5ldyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIoKTsKK30KKwor
Ly8gTm8gbW9yZSBjb2RlIGFmdGVyIHRoaXMgbGluZSwgYWxsIG5ldyBjb2RlIHNob3VsZCBjb21l
IGJlZm9yZSBzX21hbmFnZXIgZGVjbGFyYXRpb24hISEKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9BdXRoZW50
aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNr
YmVycnkvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyLmgKaW5kZXggNTIyMjRmNS4uMjBl
Nzk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9BdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ibGFja2JlcnJ5L0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlci5oCkBAIC0xOSw4ICsx
OSwxMyBAQAogI2lmbmRlZiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJfaAogI2RlZmlu
ZSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJfaAogCisjaW5jbHVkZSA8d3RmL093blB0
ci5oPgorCitjbGFzcyBQYWdlQ2xpZW50QmxhY2tCZXJyeTsKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJQcml2YXRlOwogY2xhc3Mg
Q3JlZGVudGlhbDsKIGNsYXNzIEtVUkw7CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CkBAIC0zNSw2
ICs0MCwzNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNoYWxsZW5nZVJlc3Vs
dChjb25zdCBLVVJMJiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VSZXN1bHQsIGNvbnN0IENyZWRlbnRpYWwmKSA9IDA7CiB9OwogCitjbGFzcyBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGluaXQo
KTsKKyAgICBzdGF0aWMgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyKiBpbnN0YW5jZSgp
OworCisgICAgdm9pZCBwYWdlQ3JlYXRlZChQYWdlQ2xpZW50QmxhY2tCZXJyeSopOworICAgIHZv
aWQgcGFnZURlbGV0ZWQoUGFnZUNsaWVudEJsYWNrQmVycnkqKTsKKyAgICB2b2lkIHBhZ2VWaXNp
YmlsaXR5Q2hhbmdlZChQYWdlQ2xpZW50QmxhY2tCZXJyeSosIGJvb2wgdmlzaWJsZSk7CisKKyAg
ICB2b2lkIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEtVUkwmLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENyZWRlbnRpYWwmLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDbGllbnQqLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFnZUNsaWVudEJsYWNrQmVycnkqKTsKKworICAg
IHZvaWQgY2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VDbGllbnQqKTsKKworICAgIHZvaWQgbm90aWZ5Q2hhbGxlbmdlUmVzdWx0KGNvbnN0IEtVUkwm
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VS
ZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ3JlZGVudGlhbCYp
OworCitwcml2YXRlOgorICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcigpOworICAg
IH5BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIoKTsKKworICAgIE93blB0cjxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJQcml2YXRlPiBkOworfTsKKworCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QYWdlQ2xpZW50
QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QYWdlQ2xp
ZW50QmxhY2tCZXJyeS5oCmluZGV4IGJkYjJmMTYuLmYyYzdjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGFnZUNsaWVudEJsYWNrQmVycnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5
LmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IHNob3dBbGVydERp
YWxvZyhCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VDbGllbnQ6OkFsZXJ0VHlwZSkgPSAwOwog
ICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wg
aXNWaXNpYmxlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlJiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlQ2xpZW50KikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlJiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpID0gMDsKICAgICB2aXJ0dWFsIFNhdmVD
cmVkZW50aWFsVHlwZSBub3RpZnlTaG91bGRTYXZlQ3JlZGVudGlhbChib29sKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHN5bmNQcm94eUNyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlh
bCYpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFj
a0JlcnJ5LmNwcAppbmRleCBjODI3ZWQ3Li42NTUzNDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNr
QmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVy
cnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNp
ZiBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5o
IgogCisjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgIkNyZWRlbnRpYWwuaCIKICNpbmNsdWRlICJD
cmVkZW50aWFsU3RvcmFnZS5oIgpAQCAtMTE0LDYgKzExNSw3IEBAIE1lZGlhUGxheWVyUHJpdmF0
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgLCBtX3VzZXJE
cml2ZW5TZWVrVGltZXIodGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZTo6dXNlckRyaXZlblNlZWtU
aW1lckZpcmVkKQogICAgICwgbV9sYXN0U2Vla1RpbWUoMCkKICAgICAsIG1fbGFzdFNlZWtUaW1l
UGVuZGluZyhmYWxzZSkKKyAgICAsIG1faXNBdXRoZW50aWNhdGlvbkNoYWxsZW5naW5nKGZhbHNl
KQogICAgICwgbV93YWl0TWV0YWRhdGFUaW1lcih0aGlzLCAmTWVkaWFQbGF5ZXJQcml2YXRlOjp3
YWl0TWV0YWRhdGFUaW1lckZpcmVkKQogICAgICwgbV93YWl0TWV0YWRhdGFQb3BEaWFsb2dDb3Vu
dGVyKDApCiB7CkBAIC0xMjEsNiArMTIzLDkgQEAgTWVkaWFQbGF5ZXJQcml2YXRlOjpNZWRpYVBs
YXllclByaXZhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKIAogTWVkaWFQbGF5ZXJQcml2YXRlOjp+
TWVkaWFQbGF5ZXJQcml2YXRlKCkKIHsKKyAgICBpZiAobV9pc0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdpbmcpCisgICAgICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6aW5zdGFuY2Uo
KS0+Y2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodGhpcyk7CisKICAgICBpZiAoaXNGdWxs
c2NyZWVuKCkpIHsKICAgICAgICAgbV93ZWJDb3JlUGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgp
LT5tZWRpYVBsYXllckV4aXRGdWxsc2NyZWVuKCk7CiAgICAgfQpAQCAtNzA5LDEyICs3MTQsMTgg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6Om9uQXV0aGVudGljYXRpb25OZWVkZWQoTU1SQXV0
aENoYWxsZW5nZSYgYXV0aENoYWxsZW5nZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGlmIChmcmFtZVZpZXcoKSAmJiBmcmFtZVZpZXcoKS0+aG9zdFdpbmRvdygpKQotICAgICAgICBm
cmFtZVZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+YXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UodXJsLCBwcm90ZWN0aW9uU3BhY2UsIGNyZWRlbnRpYWwsIHRoaXMpOwor
ICAgIG1faXNBdXRoZW50aWNhdGlvbkNoYWxsZW5naW5nID0gdHJ1ZTsKKyAgICBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZU1hbmFnZXI6Omluc3RhbmNlKCktPmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KHVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3Rpb25TcGFjZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWRlbnRpYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV93ZWJDb3Jl
UGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllckhvc3RXaW5kb3coKS0+cGxh
dGZvcm1QYWdlQ2xpZW50KCkpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bm90aWZ5
Q2hhbGxlbmdlUmVzdWx0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBw
cm90ZWN0aW9uU3BhY2UsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUmVzdWx0IHJlc3VsdCwgY29u
c3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsKKyAgICBtX2lzQXV0aGVudGljYXRpb25DaGFs
bGVuZ2luZyA9IGZhbHNlOworCiAgICAgaWYgKHJlc3VsdCAhPSBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVN1Y2Nlc3MgfHwgIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBs
YXllclByaXZhdGVCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaAppbmRleCAyODk2Njky
Li41YTA4M2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9i
bGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNr
QmVycnkuaApAQCAtMTc0LDYgKzE3NCw3IEBAIHByaXZhdGU6CiAgICAgVGltZXI8TWVkaWFQbGF5
ZXJQcml2YXRlPiBtX3VzZXJEcml2ZW5TZWVrVGltZXI7CiAgICAgZmxvYXQgbV9sYXN0U2Vla1Rp
bWU7CiAgICAgYm9vbCBtX2xhc3RTZWVrVGltZVBlbmRpbmc7CisgICAgYm9vbCBtX2lzQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2luZzsKICAgICB2b2lkIHdhaXRNZXRhZGF0YVRpbWVyRmlyZWQoVGlt
ZXI8TWVkaWFQbGF5ZXJQcml2YXRlPiopOwogICAgIFRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZT4g
bV93YWl0TWV0YWRhdGFUaW1lcjsKICAgICBpbnQgbV93YWl0TWV0YWRhdGFQb3BEaWFsb2dDb3Vu
dGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L05ldHdvcmtKb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFj
a2JlcnJ5L05ldHdvcmtKb2IuY3BwCmluZGV4IDk4ZWJlNjAuLjlhMzZlNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29y
a0pvYi5jcHAKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJOZXR3b3JrSm9iLmgiCiAKKyNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFn
ZXIuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNp
bmNsdWRlICJDb29raWVNYW5hZ2VyLmgiCkBAIC04NCw5ICs4NSwxOSBAQCBOZXR3b3JrSm9iOjpO
ZXR3b3JrSm9iKCkKICAgICAsIG1fZGVmZXJyZWREYXRhKCp0aGlzKQogICAgICwgbV9kZWZlckxv
YWRpbmdDb3VudCgwKQogICAgICwgbV9mcmFtZSgwKQorICAgICwgbV9pc0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdpbmcoZmFsc2UpCisgICAgLCBtX2ZyZWV6ZWQoZmFsc2UpCisgICAgLCBtX2ZyZWV6
ZWRTdGF0dXMoQmxhY2tCZXJyeTo6UGxhdGZvcm06OkZpbHRlclN0cmVhbTo6U3RhdHVzSW52YWxp
ZCkKKyAgICAsIG1fZnJlZXplZENsb3NlU3RhdHVzKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpGaWx0
ZXJTdHJlYW06OlN0YXR1c0ludmFsaWQpCiB7CiB9CiAKK05ldHdvcmtKb2I6On5OZXR3b3JrSm9i
KCkKK3sKKyAgICBpZiAobV9pc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdpbmcpCisgICAgICAgIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6aW5zdGFuY2UoKS0+Y2FuY2VsQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UodGhpcyk7Cit9CisKIGJvb2wgTmV0d29ya0pvYjo6aW5pdGlhbGl6ZShp
bnQgcGxheWVySWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBw
YWdlR3JvdXBOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEtVUkwmIHVy
bCwKQEAgLTE3Nyw2ICsxODgsMTIgQEAgdm9pZCBOZXR3b3JrSm9iOjpub3RpZnlTdGF0dXNSZWNl
aXZlZChpbnQgc3RhdHVzLCBjb25zdCBjaGFyKiBtZXNzYWdlKQogCiB2b2lkIE5ldHdvcmtKb2I6
OmhhbmRsZU5vdGlmeVN0YXR1c1JlY2VpdmVkKGludCBzdGF0dXMsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKIHsKKyAgICBpZiAobV9mcmVlemVkKSB7CisgICAgICAgIG1fZnJlZXplZFN0YXR1cyA9
IHN0YXR1czsKKyAgICAgICAgbV9mcmVlemVkU3RhdHVzTWVzc2FnZSA9IG1lc3NhZ2U7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBDaGVjayBmb3IgbWVzc2FnZXMgb3V0IG9mIG9y
ZGVyIG9yIGFmdGVyIGNhbmNlbC4KICAgICBpZiAobV9yZXNwb25zZVNlbnQgfHwgbV9jYW5jZWxs
ZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTIwMywxNCArMjIwLDE3IEBAIHZvaWQgTmV0d29ya0pv
Yjo6aGFuZGxlTm90aWZ5U3RhdHVzUmVjZWl2ZWQoaW50IHN0YXR1cywgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQogCiAgICAgbV9yZXNwb25zZS5zZXRIVFRQU3RhdHVzVGV4dChtZXNzYWdlKTsKIAot
ICAgIGlmIChpc1VuYXV0aG9yaXplZChtX2V4dGVuZGVkU3RhdHVzQ29kZSkpIHsKKyAgICBpZiAo
aXNVbmF1dGhvcml6ZWQobV9leHRlbmRlZFN0YXR1c0NvZGUpKQogICAgICAgICBwdXJnZUNyZWRl
bnRpYWxzKCk7Ci0gICAgICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpsb2coQmxhY2tCZXJyeTo6
UGxhdGZvcm06OkxvZ0xldmVsQ3JpdGljYWwsICJBdXRoZW50aWNhdGlvbiBmYWlsZWQsIHB1cmdl
IHRoZSBzdG9yZWQgY3JlZGVudGlhbHMgZm9yIHRoaXMgc2l0ZS4iKTsKLSAgICB9CiB9CiAKIHZv
aWQgTmV0d29ya0pvYjo6bm90aWZ5SGVhZGVyc1JlY2VpdmVkKEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpOZXR3b3JrUmVxdWVzdDo6SGVhZGVyTGlzdCYgaGVhZGVycykKIHsKKyAgICBpZiAobV9mcmVl
emVkKSB7CisgICAgICAgIG1fZnJlZXplZEhlYWRlcnMgPSBoZWFkZXJzOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpI
ZWFkZXJMaXN0Ojpjb25zdF9pdGVyYXRvciBlbmRJdCA9IGhlYWRlcnMuZW5kKCk7CiAgICAgZm9y
IChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3Q6OkhlYWRlckxpc3Q6OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gaGVhZGVycy5iZWdpbigpOyBpdCAhPSBlbmRJdDsgKytpdCkgewogICAg
ICAgICBpZiAoc2hvdWxkRGVmZXJMb2FkaW5nKCkpCkBAIC0zNDAsNiArMzYwLDExIEBAIHZvaWQg
TmV0d29ya0pvYjo6aGFuZGxlTm90aWZ5SGVhZGVyUmVjZWl2ZWQoY29uc3QgU3RyaW5nJiBrZXks
IGNvbnN0IFN0cmluZyYgdmFsCiAKIHZvaWQgTmV0d29ya0pvYjo6aGFuZGxlTm90aWZ5TXVsdGlw
YXJ0SGVhZGVyUmVjZWl2ZWQoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUp
CiB7CisgICAgaWYgKG1fZnJlZXplZCkgeworICAgICAgICBtX2ZyZWV6ZWRNdWx0aXBhcnRIZWFk
ZXJzLnB1c2hfYmFjayhzdGQ6Om1ha2VfcGFpcihrZXkudXRmOCh0cnVlKS5kYXRhKCksIHZhbHVl
LnV0ZjgodHJ1ZSkuZGF0YSgpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAo
IW1fbXVsdGlwYXJ0UmVzcG9uc2UpIHsKICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHJlc3BvbnNl
IGJhc2VkIG9uIHRoZSBvcmlnaW5hbCBzZXQgb2YgaGVhZGVycyArIHRoZQogICAgICAgICAvLyBy
ZXBsYWNlbWVudCBoZWFkZXJzLiBXZSBvbmx5IHJlcGxhY2UgdGhlIHNhbWUgZmV3IGhlYWRlcnMg
dGhhdCBnZWNrbwpAQCAtMzk3LDYgKzQyMiwxMSBAQCB2b2lkIE5ldHdvcmtKb2I6Om5vdGlmeURh
dGFSZWNlaXZlZFBsYWluKGNvbnN0IGNoYXIqIGJ1Ziwgc2l6ZV90IGxlbikKIAogdm9pZCBOZXR3
b3JrSm9iOjpoYW5kbGVOb3RpZnlEYXRhUmVjZWl2ZWQoY29uc3QgY2hhciogYnVmLCBzaXplX3Qg
bGVuKQogeworICAgIGlmIChtX2ZyZWV6ZWQpIHsKKyAgICAgICAgbV9mcmVlemVkRGF0YS5hcHBl
bmQoQmxhY2tCZXJyeTo6UGxhdGZvcm06OmNyZWF0ZU5ldHdvcmtCdWZmZXJXaXRoRGF0YShidWYs
IGxlbikpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gQ2hlY2sgZm9yIG1lc3Nh
Z2VzIG91dCBvZiBvcmRlciBvciBhZnRlciBjYW5jZWwuCiAgICAgaWYgKCghbV9pc0ZpbGUgJiYg
IW1fc3RhdHVzUmVjZWl2ZWQpIHx8IG1fY2FuY2VsbGVkKQogICAgICAgICByZXR1cm47CkBAIC00
ODQsNiArNTE0LDEyIEBAIHZvaWQgTmV0d29ya0pvYjo6aGFuZGxlTm90aWZ5Q2xvc2UoaW50IHN0
YXR1cykKICNpZm5kZWYgTkRFQlVHCiAgICAgbV9pc1J1bm5pbmcgPSBmYWxzZTsKICNlbmRpZgor
CisgICAgaWYgKG1fZnJlZXplZCkgeworICAgICAgICBtX2ZyZWV6ZWRDbG9zZVN0YXR1cyA9IHN0
YXR1czsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmICghbV9jYW5jZWxsZWQpIHsK
ICAgICAgICAgaWYgKCFtX3N0YXR1c1JlY2VpdmVkKSB7CiAgICAgICAgICAgICAvLyBDb25uZWN0
aW9uIGZhaWxlZCBiZWZvcmUgc2VuZGluZyBub3RpZnlTdGF0dXNSZWNlaXZlZDogdXNlIGdlbmVy
aWMgTmV0d29ya0Vycm9yLgpAQCAtNDk1LDYgKzUzMSw3IEBAIHZvaWQgTmV0d29ya0pvYjo6aGFu
ZGxlTm90aWZ5Q2xvc2UoaW50IHN0YXR1cykKICAgICAgICAgICAgICAgICBtX2V4dGVuZGVkU3Rh
dHVzQ29kZSA9IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpGaWx0ZXJTdHJlYW06OlN0YXR1c1Rvb01h
bnlSZWRpcmVjdHM7CiAKICAgICAgICAgICAgIHNlbmRSZXNwb25zZUlmTmVlZGVkKCk7CisKICAg
ICAgICAgICAgIGlmIChpc0NsaWVudEF2YWlsYWJsZSgpKSB7CiAgICAgICAgICAgICAgICAgaWYg
KGlzRXJyb3Ioc3RhdHVzKSkKICAgICAgICAgICAgICAgICAgICAgbV9leHRlbmRlZFN0YXR1c0Nv
ZGUgPSBzdGF0dXM7CkBAIC03NjcsNyArODA0LDE1IEBAIGJvb2wgTmV0d29ya0pvYjo6c2VuZFJl
cXVlc3RXaXRoQ3JlZGVudGlhbHMoUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSB0eXBlLCBQcm90
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICBtX2hhbmRsZS0+
Z2V0SW50ZXJuYWwoKS0+bV9jdXJyZW50V2ViQ2hhbGxlbmdlID0gQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoKTsKLSAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgp
LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+YXV0aGVudGljYXRpb25DaGFsbGVuZ2UobmV3VVJMLCBw
cm90ZWN0aW9uU3BhY2UsIENyZWRlbnRpYWwoKSwgdGhpcyk7CisKKyAgICAgICAgICAgIG1faXNB
dXRoZW50aWNhdGlvbkNoYWxsZW5naW5nID0gdHJ1ZTsKKyAgICAgICAgICAgIGZyZWV6ZSgpOwor
CisgICAgICAgICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXI6Omluc3RhbmNlKCkt
PmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG5ld1VSTCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHJvdGVjdGlvblNwYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVkZW50aWFsKCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZnJh
bWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSk7CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCkBAIC04MjYsMTMgKzg3MSw3MSBA
QCB2b2lkIE5ldHdvcmtKb2I6OmZpcmVEZWxldGVKb2JUaW1lcihUaW1lcjxOZXR3b3JrSm9iPiop
CiAgICAgTmV0d29ya01hbmFnZXI6Omluc3RhbmNlKCktPmRlbGV0ZUpvYih0aGlzKTsKIH0KIAor
dm9pZCBOZXR3b3JrSm9iOjpmcmVlemUoKQoreworICAgIG1fZnJlZXplZCA9IHRydWU7Cit9CisK
K3ZvaWQgTmV0d29ya0pvYjo6dW5mcmVlemUoYm9vbCByZWNvdmVyKQoreworICAgIGlmICghbV9m
cmVlemVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2ZyZWV6ZWQgPSBmYWxzZTsKKworICAg
IGlmIChtX2ZyZWV6ZWRTdGF0dXMgIT0gQmxhY2tCZXJyeTo6UGxhdGZvcm06OkZpbHRlclN0cmVh
bTo6U3RhdHVzSW52YWxpZCkgeworICAgICAgICBpZiAocmVjb3ZlcikKKyAgICAgICAgICAgIG5v
dGlmeVN0YXR1c1JlY2VpdmVkKG1fZnJlZXplZFN0YXR1cywgbV9mcmVlemVkU3RhdHVzTWVzc2Fn
ZS51dGY4KHRydWUpLmRhdGEoKSk7CisKKyAgICAgICAgbV9mcmVlemVkU3RhdHVzID0gQmxhY2tC
ZXJyeTo6UGxhdGZvcm06OkZpbHRlclN0cmVhbTo6U3RhdHVzSW52YWxpZDsKKyAgICAgICAgbV9m
cmVlemVkU3RhdHVzTWVzc2FnZSA9ICIiOworICAgIH0KKworICAgIGlmICghbV9mcmVlemVkSGVh
ZGVycy5lbXB0eSgpKSB7CisgICAgICAgIGlmIChyZWNvdmVyKQorICAgICAgICAgICAgbm90aWZ5
SGVhZGVyc1JlY2VpdmVkKG1fZnJlZXplZEhlYWRlcnMpOworCisgICAgICAgIG1fZnJlZXplZEhl
YWRlcnMuY2xlYXIoKTsKKyAgICB9CisgICAgaWYgKCFtX2ZyZWV6ZWRNdWx0aXBhcnRIZWFkZXJz
LmVtcHR5KCkpIHsKKyAgICAgICAgaWYgKHJlY292ZXIpIHsKKyAgICAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9mcmVlemVkTXVsdGlwYXJ0SGVhZGVycy5zaXplKCk7ICsraSkKKyAg
ICAgICAgICAgICAgICBub3RpZnlNdWx0aXBhcnRIZWFkZXJSZWNlaXZlZChtX2ZyZWV6ZWRNdWx0
aXBhcnRIZWFkZXJzW2ldLmZpcnN0LmNfc3RyKCksIG1fZnJlZXplZE11bHRpcGFydEhlYWRlcnNb
aV0uc2Vjb25kLmNfc3RyKCkpOworICAgICAgICB9CisKKyAgICAgICAgbV9mcmVlemVkTXVsdGlw
YXJ0SGVhZGVycy5jbGVhcigpOworICAgIH0KKyAgICBpZiAoIW1fZnJlZXplZERhdGEuaXNFbXB0
eSgpKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9mcmVlemVkRGF0YS5zaXpl
KCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHJlY292ZXIpCisgICAgICAgICAgICAgICAgbm90
aWZ5RGF0YVJlY2VpdmVkKG1fZnJlZXplZERhdGFbaV0pOworCisgICAgICAgICAgICBCbGFja0Jl
cnJ5OjpQbGF0Zm9ybTo6cmVsZWFzZU5ldHdvcmtCdWZmZXIobV9mcmVlemVkRGF0YVtpXSk7Cisg
ICAgICAgIH0KKworICAgICAgICBtX2ZyZWV6ZWREYXRhLmNsZWFyKCk7CisgICAgfQorCisgICAg
aWYgKG1fZnJlZXplZENsb3NlU3RhdHVzICE9IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpGaWx0ZXJT
dHJlYW06OlN0YXR1c0ludmFsaWQpIHsKKyAgICAgICAgaWYgKHJlY292ZXIpCisgICAgICAgICAg
ICBub3RpZnlDbG9zZShtX2ZyZWV6ZWRDbG9zZVN0YXR1cyk7CisKKyAgICAgICAgbV9mcmVlemVk
Q2xvc2VTdGF0dXMgPSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6RmlsdGVyU3RyZWFtOjpTdGF0dXNJ
bnZhbGlkOworICAgIH0KK30KKwogdm9pZCBOZXR3b3JrSm9iOjpub3RpZnlDaGFsbGVuZ2VSZXN1
bHQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFj
ZSwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZXN1bHQgcmVzdWx0LCBjb25zdCBDcmVkZW50aWFs
JiBjcmVkZW50aWFsKQogeworICAgIG1faXNBdXRoZW50aWNhdGlvbkNoYWxsZW5naW5nID0gZmFs
c2U7CisKICAgICBpZiAocmVzdWx0ICE9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU3VjY2VzcyB8
fCBwcm90ZWN0aW9uU3BhY2UuaG9zdCgpLmlzRW1wdHkoKSB8fCAhdXJsLmlzVmFsaWQoKSkgewor
ICAgICAgICB1bmZyZWV6ZSh0cnVlKTsKICAgICAgICAgbV9uZXdKb2JXaXRoQ3JlZGVudGlhbHNT
dGFydGVkID0gZmFsc2U7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICB1bmZyZWV6ZShm
YWxzZSk7CisKICAgICBpZiAobV9oYW5kbGUtPmdldEludGVybmFsKCktPm1fY3VycmVudFdlYkNo
YWxsZW5nZS5pc051bGwoKSkKICAgICAgICAgbV9oYW5kbGUtPmdldEludGVybmFsKCktPm1fY3Vy
cmVudFdlYkNoYWxsZW5nZSA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHByb3RlY3Rpb25TcGFj
ZSwgY3JlZGVudGlhbCwgMCwgbV9yZXNwb25zZSwgUmVzb3VyY2VFcnJvcigpKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtK
b2IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3Jr
Sm9iLmgKaW5kZXggMzUyNjM3NC4uZDg4OWFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5oCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSA8bmV0d29yay9GaWx0ZXJTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEJsYWNrQmVy
cnkgewpAQCAtNDksNiArNTAsOCBAQCBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBOZXR3
b3JrSm9iIDogcHVibGljIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50LCBwdWJsaWMgQmxh
Y2tCZXJyeTo6UGxhdGZvcm06OkZpbHRlclN0cmVhbSB7CiBwdWJsaWM6CiAgICAgTmV0d29ya0pv
YigpOworICAgIH5OZXR3b3JrSm9iKCk7CisKICAgICBib29sIGluaXRpYWxpemUoaW50IHBsYXll
cklkLAogICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHBhZ2VHcm91cE5hbWUsCiAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEtVUkwmLApAQCAtMTM2LDYgKzEzOSw5IEBAIHByaXZh
dGU6CiAgICAgICAgIHJldHVybiBzdGF0dXNDb2RlIDwgMCB8fCAoNDAwIDw9IHN0YXR1c0NvZGUg
JiYgc3RhdHVzQ29kZSA8IDYwMCk7CiAgICAgfQogCisgICAgdm9pZCBmcmVlemUoKTsKKyAgICB2
b2lkIHVuZnJlZXplKGJvb2wgcmVjb3Zlcik7CisKIHByaXZhdGU6CiAgICAgaW50IG1fcGxheWVy
SWQ7CiAgICAgU3RyaW5nIG1fcGFnZUdyb3VwTmFtZTsKQEAgLTE3MSw2ICsxNzcsMTYgQEAgcHJp
dmF0ZToKICAgICBEZWZlcnJlZERhdGEgbV9kZWZlcnJlZERhdGE7CiAgICAgaW50IG1fZGVmZXJM
b2FkaW5nQ291bnQ7CiAgICAgY29uc3QgRnJhbWUqIG1fZnJhbWU7CisKKyAgICBib29sIG1faXNB
dXRoZW50aWNhdGlvbkNoYWxsZW5naW5nOworCisgICAgYm9vbCBtX2ZyZWV6ZWQ7CisgICAgaW50
IG1fZnJlZXplZFN0YXR1czsKKyAgICBpbnQgbV9mcmVlemVkQ2xvc2VTdGF0dXM7CisgICAgU3Ry
aW5nIG1fZnJlZXplZFN0YXR1c01lc3NhZ2U7CisgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5l
dHdvcmtSZXF1ZXN0OjpIZWFkZXJMaXN0IG1fZnJlZXplZEhlYWRlcnM7CisgICAgQmxhY2tCZXJy
eTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpIZWFkZXJMaXN0IG1fZnJlZXplZE11bHRpcGFy
dEhlYWRlcnM7CisgICAgVmVjdG9yPEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrQnVmZmVy
Kj4gbV9mcmVlemVkRGF0YTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvQmxhY2tCZXJyeUdsb2JhbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0JsYWNrQmVycnlHbG9iYWwuY3BwCmluZGV4IGZj
OWNkNWEuLmQ4YjVjNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
QmxhY2tCZXJyeUdsb2JhbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9C
bGFja0JlcnJ5R2xvYmFsLmNwcApAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgIkJsYWNrQmVy
cnlHbG9iYWwuaCIKIAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCisjaW5j
bHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiQ2FjaGVD
bGllbnRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUg
IkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCIKQEAgLTgwLDYgKzgxLDggQEAgdm9p
ZCBnbG9iYWxJbml0aWFsaXplKCkKICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6U2V0dGluZ3Mq
IHNldHRpbmdzID0gQmxhY2tCZXJyeTo6UGxhdGZvcm06OlNldHRpbmdzOjppbnN0YW5jZSgpOwog
CiAgICAgSW1hZ2VTb3VyY2U6OnNldE1heFBpeGVsc1BlckRlY29kZWRJbWFnZShzZXR0aW5ncy0+
bWF4UGl4ZWxzUGVyRGVjb2RlZEltYWdlKCkpOworCisgICAgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VNYW5hZ2VyOjppbml0KCk7CiB9CiAKIHZvaWQgY29sbGVjdEphdmFzY3JpcHRHYXJiYWdlTm93
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDIzMjZkYmYu
LjEyODA3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAt
NDI3LDYgKzQyNyw4IEBAIFdlYlBhZ2VQcml2YXRlOjpXZWJQYWdlUHJpdmF0ZShXZWJQYWdlKiB3
ZWJQYWdlLCBXZWJQYWdlQ2xpZW50KiBjbGllbnQsIGNvbnN0IEluCiAgICAgICAgIEJsYWNrQmVy
cnk6OlBsYXRmb3JtOjpEZXZpY2VJbmZvOjppbnN0YW5jZSgpOwogICAgICAgICBkZWZhdWx0VXNl
ckFnZW50KCk7CiAgICAgfQorCisgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjpp
bnN0YW5jZSgpLT5wYWdlQ3JlYXRlZCh0aGlzKTsKIH0KIAogV2ViUGFnZTo6V2ViUGFnZShXZWJQ
YWdlQ2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYlN0cmluZyYgcGFnZUdyb3VwTmFtZSwgY29uc3Qg
UGxhdGZvcm06OkludFJlY3QmIHJlY3QpCkBAIC00MzgsNiArNDQwLDcgQEAgV2ViUGFnZTo6V2Vi
UGFnZShXZWJQYWdlQ2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYlN0cmluZyYgcGFnZUdyb3VwTmFt
ZSwgY29uc3QgUGwKIAogV2ViUGFnZVByaXZhdGU6On5XZWJQYWdlUHJpdmF0ZSgpCiB7CisgICAg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjppbnN0YW5jZSgpLT5wYWdlRGVsZXRlZCh0
aGlzKTsKICAgICAvLyBIYW5kIHRoZSBiYWNraW5nc3RvcmUgYmFjayB0byBhbm90aGVyIG93bmVy
IGlmIG5lY2Vzc2FyeS4KICAgICBtX3dlYlBhZ2UtPnNldFZpc2libGUoZmFsc2UpOwogICAgIGlm
IChCYWNraW5nU3RvcmVQcml2YXRlOjpjdXJyZW50QmFja2luZ1N0b3JlT3duZXIoKSA9PSBtX3dl
YlBhZ2UpCkBAIC0yMjEwLDE4ICsyMjEzLDE5IEBAIGJvb2wgV2ViUGFnZVByaXZhdGU6OmlzQWN0
aXZlKCkgY29uc3QKICAgICByZXR1cm4gbV9jbGllbnQtPmlzQWN0aXZlKCk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByaXZhdGU6OmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEtVUkwmIHVybCwg
Y29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UsIGNvbnN0IENyZWRlbnRpYWwm
IGlucHV0Q3JlZGVudGlhbCwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDbGllbnQqIGNsaWVudCkK
K3ZvaWQgV2ViUGFnZVByaXZhdGU6OmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UsIGNvbnN0IENyZWRl
bnRpYWwmIGlucHV0Q3JlZGVudGlhbCkKIHsKICAgICBXZWJTdHJpbmcgdXNlcm5hbWU7CiAgICAg
V2ViU3RyaW5nIHBhc3N3b3JkOworICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlciog
YXV0aG1nciA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6aW5zdGFuY2UoKTsKIAog
I2lmICFkZWZpbmVkKFBVQkxJQ19CVUlMRCkgfHwgIVBVQkxJQ19CVUlMRAogICAgIGlmIChtX2R1
bXBSZW5kZXJUcmVlKSB7CiAgICAgICAgIENyZWRlbnRpYWwgY3JlZGVudGlhbChpbnB1dENyZWRl
bnRpYWwsIGlucHV0Q3JlZGVudGlhbC5wZXJzaXN0ZW5jZSgpKTsKICAgICAgICAgaWYgKG1fZHVt
cFJlbmRlclRyZWUtPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjcmVkZW50aWFs
KSkKLSAgICAgICAgICAgIGNsaWVudC0+bm90aWZ5Q2hhbGxlbmdlUmVzdWx0KHVybCwgcHJvdGVj
dGlvblNwYWNlLCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVN1Y2Nlc3MsIGNyZWRlbnRpYWwpOwor
ICAgICAgICAgICAgYXV0aG1nci0+bm90aWZ5Q2hhbGxlbmdlUmVzdWx0KHVybCwgcHJvdGVjdGlv
blNwYWNlLCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVN1Y2Nlc3MsIGNyZWRlbnRpYWwpOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBjbGllbnQtPm5vdGlmeUNoYWxsZW5nZVJlc3VsdCh1cmws
IHByb3RlY3Rpb25TcGFjZSwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDYW5jZWxsZWQsIGlucHV0
Q3JlZGVudGlhbCk7CisgICAgICAgICAgICBhdXRobWdyLT5ub3RpZnlDaGFsbGVuZ2VSZXN1bHQo
dXJsLCBwcm90ZWN0aW9uU3BhY2UsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2FuY2VsbGVkLCBp
bnB1dENyZWRlbnRpYWwpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCkBAIC0yMjQy
LDkgKzIyNDYsOSBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjphdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFByb3RlY3Rpb25TcAogI2VuZGlmCiAKICAgICBpZiAo
aXNDb25maXJtZWQpCi0gICAgICAgIGNsaWVudC0+bm90aWZ5Q2hhbGxlbmdlUmVzdWx0KHVybCwg
cHJvdGVjdGlvblNwYWNlLCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVN1Y2Nlc3MsIGNyZWRlbnRp
YWwpOworICAgICAgICBhdXRobWdyLT5ub3RpZnlDaGFsbGVuZ2VSZXN1bHQodXJsLCBwcm90ZWN0
aW9uU3BhY2UsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU3VjY2VzcywgY3JlZGVudGlhbCk7CiAg
ICAgZWxzZQotICAgICAgICBjbGllbnQtPm5vdGlmeUNoYWxsZW5nZVJlc3VsdCh1cmwsIHByb3Rl
Y3Rpb25TcGFjZSwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDYW5jZWxsZWQsIGlucHV0Q3JlZGVu
dGlhbCk7CisgICAgICAgIGF1dGhtZ3ItPm5vdGlmeUNoYWxsZW5nZVJlc3VsdCh1cmwsIHByb3Rl
Y3Rpb25TcGFjZSwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDYW5jZWxsZWQsIGlucHV0Q3JlZGVu
dGlhbCk7CiB9CiAKIFBhZ2VDbGllbnRCbGFja0JlcnJ5OjpTYXZlQ3JlZGVudGlhbFR5cGUgV2Vi
UGFnZVByaXZhdGU6Om5vdGlmeVNob3VsZFNhdmVDcmVkZW50aWFsKGJvb2wgaXNOZXcpCkBAIC0z
MjM2LDYgKzMyNDAsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldFZpc2libGUoYm9vbCB2aXNpYmxlKQog
ICAgICAgICByZXR1cm47CiAKICAgICBkLT5zZXRWaXNpYmxlKHZpc2libGUpOworICAgIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6aW5zdGFuY2UoKS0+cGFnZVZpc2liaWxpdHlDaGFu
Z2VkKGQsIHZpc2libGUpOwogCiAgICAgaWYgKCF2aXNpYmxlKSB7CiAgICAgICAgIGQtPnN1c3Bl
bmRCYWNraW5nU3RvcmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZV9wLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5o
CmluZGV4IDdjMjI2ZjMuLmJjYjdkNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZV9wLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJQYWdlX3AuaApAQCAtMjAxLDcgKzIwMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBz
aG93QWxlcnREaWFsb2coV2ViUGFnZUNsaWVudDo6QWxlcnRUeXBlIGF0eXBlKTsKICAgICB2aXJ0
dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNWaXNpYmxlKCkg
Y29uc3QgeyByZXR1cm4gbV92aXNpYmxlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2UmLCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiwgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VDbGllbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgYXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25T
cGFjZSYsIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsKICAgICB2aXJ0dWFsIFNhdmVDcmVk
ZW50aWFsVHlwZSBub3RpZnlTaG91bGRTYXZlQ3JlZGVudGlhbChib29sKTsKICAgICB2aXJ0dWFs
IHZvaWQgc3luY1Byb3h5Q3JlZGVudGlhbChjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IDVjYzU0MTAuLmRiYjY1MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA5LTIxICBM
aWFuZ2h1aSBDaGVuICA8bGlhY2hlbkByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBS
ZWFsbHkgZml4IGJ1ZyA5NTQ4OCB0aGF0IHVzZXIgY2FuIGdldCB0aGUgYXV0aGVudGljYXRpb24g
Y2hhbGxlbmdlIGRpYWxvZyB3aGlsZSB0aGUgb3RoZXIgdGFiIGhhcyBmb2N1cy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MzQ4CisgICAgICAgIElu
dGVybmFsIFBSOiAxODY1OTcuCisKKyAgICAgICAgSW50ZXJuYWxseSByZXZpZXdlZCBieSBZb25n
IExpLCBKb2UgTWFzb24uCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVwZGF0ZSBXZWJQYWdlIHRvIHVzZSBuZXcgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VN
YW5hZ2VyLgorICAgICAgICBSZWdpc3RlciBwYWdlIGNyZWF0aW9uL2RlbGV0aW9uIGFuZCB2aXNp
YmlsaXR5IGNoYW5nZSB0byB0aGUgbmV3CisgICAgICAgICAgICBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZU1hbmFnZXIuCisgICAgICAgIEluaXRpYWxpemUgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VN
YW5hZ2VyIGluIEdsb2JhbEluaXRpYWxpemUoKSBmdW5jdGlvbi4KKworICAgICAgICAqIEFwaS9C
bGFja0JlcnJ5R2xvYmFsLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6Z2xvYmFs
SW5pdGlhbGl6ZSk6CisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6V2ViUGFnZVByaXZhdGUpOgorICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6fldlYlBhZ2VQcml2YXRlKToKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6c2V0Vmlz
aWJsZSk6CisgICAgICAgICogQXBpL1dlYlBhZ2VfcC5oOgorICAgICAgICAoV2ViUGFnZVByaXZh
dGUpOgorCiAyMDEyLTA5LTIxICBDaGFybGVzIFdlaSAgPGNoYXJsZXMud2VpQHRvcmNobW9iaWxl
LmNvbS5jbj4KIAogICAgICAgICBXcm9uZyBzZXBlcmF0b3IgZm9yIHZpZXdwb3J0IG1ldGEgaW4g
UG9wdXAgc2NyaXB0cwo=
</data>
<flag name="review"
          id="177134"
          type_id="1"
          status="-"
          setter="joenotcharles"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165180</attachid>
            <date>2012-09-21 13:41:27 -0700</date>
            <delta_ts>2012-09-21 14:02:18 -0700</delta_ts>
            <desc>Update to use deferLoading</desc>
            <filename>97348-3.patch</filename>
            <type>text/plain</type>
            <size>30897</size>
            <attacher name="Lyon Chen">liachen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwOGJjYTI0Li43NGE5MGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzYg
QEAKKzIwMTItMDktMjEgIExpYW5naHVpIENoZW4gIDxsaWFjaGVuQHJpbS5jb20+CisKKyAgICAg
ICAgW0JsYWNrQmVycnldIFJlYWxseSBmaXggYnVnIDk1NDg4IHRoYXQgdXNlciBjYW4gZ2V0IHRo
ZSBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UgZGlhbG9nIHdoaWxlIHRoZSBvdGhlciB0YWIgaGFz
IGZvY3VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTczNDgKKyAgICAgICAgSW50ZXJuYWwgUFI6IDE4NjU5Ny4KKworICAgICAgICBJbnRlcm5hbGx5
IHJldmlld2VkIGJ5IFlvbmcgTGksIEpvZSBNYXNvbi4KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgc2luZ2xldG9uIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlTWFuYWdlciB0byBtYW5hZ2UgYXV0aGVudGljYXRpb24KKyAgICAgICAgY2hhbGxlbmdl
IGRpYWxvZy4gSXQgZG9lcyBmb2xsb3dpbmcgdGhpbmdzOgorICAgICAgICBSZWNvcmQgcGFnZSBj
cmVhdGlvbi9kZWxldGlvbiwgc28gaXQga25vd3Mgd2hhdCBwYWdlIGlzIHByZXNlbnQgb3Igbm90
LgorICAgICAgICBSZWNvcmQgcGFnZSB2aXNpYmlsaXR5IGNoYW5nZSBzbyBpdCBrbm93cyB3aGVu
IHRvIGRpc3BsYXkgYSBkaWFsb2cgb3Igbm90LgorICAgICAgICBBY2NlcHQgYXV0aGVudGljYXRp
b24gY2hhbGxlbmdlLCBhbmQgZGVjaWRlIHdoZXRoZXIgdG8gcG9zdHBvbmUgdGhlCisgICAgICAg
ICAgICBjaGFsbGVuZ2UgZGlhbG9nIGJhc2VkIG9uIHdoZXRoZXIgdGhlcmUgaXMgYWN0aXZlIGF1
dGhlbnRpY2F0aW9uIGNoYWxsZW5nZQorICAgICAgICAgICAgZGlhbG9nIGFscmVhZHkgYW5kIHdo
ZXRoZXIgaXRzIHBhZ2UgaXMgdmlzaWJsZSBvciBub3QuCisgICAgICAgIFdoZW4gYSBjaGFsbGVu
Z2UgcmVzdWx0IGNvbWVzIGJhY2ssIG5vdGlmeSB0aGUgcmVzdWx0IHRvIGFsbCBjbGllbnRzCisg
ICAgICAgICAgICBhdXRoZW50aWNhdGluZyBmb3IgdGhlIHNhbWUgcHJvdGVjdGlvbiBzcGFjZSwg
YW5kIHRoZW4gc3RhcnQgdGhlIG5leHQKKyAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGNoYWxs
ZW5nZSBmcm9tIHRoZSBzYW1lIHBhZ2UsIGlmIHRoZXJlIGlzIG9uZS4KKyAgICAgICAgV2hlbiBh
IHBhZ2UgYmVjb21lcyB2aXNpYmxlLCBzdGFydCB0aGUgZmlyc3QgYXV0aGVudGljYXRpb24gY2hh
bGxlbmdlCisgICAgICAgICAgICBkaWFsb2cgdGhhdCBoYXMgYmVlbiBibG9ja2VkIGJlZm9yZS4K
KworICAgICAgICBBbmQgdG8gc3VwcG9ydCB0aGlzIG5ldyBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZU1hbmFnZXIsIGFuZCBtYWtpbmcgdGhlCisgICAgICAgICAgICBjaGFsbGVuZ2UgcmVhbGx5IGFz
eW5jaHJvbm91cywgTmV0d29ya0pvYiBoYXMgYmVlbiB1cGRhdGVkIHRvIHN1cHBvcnQKKyAgICAg
ICAgICAgIHRoZSBjb25jZXB0IG9mICJmcmVlemUiLCB3aGljaCBtZWFucyBidWZmZXJpbmcgYWxs
IG5ldHdvcmsgbG9hZGluZyBzdGF0dXMKKyAgICAgICAgICAgIGNoYW5nZSBidXQgZG9uJ3Qgc2Vu
ZCB0aGVtIHRvIE5ldHdvcmtKb2IgY2xpZW50cy4KKyAgICAgICAgVGhpcyBpcyBuZWNlc3Nhcnkg
d2hlbiBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UgaXMgYXN5bmNocm9ub3VzLCBhcyB0aGUKKyAg
ICAgICAgICAgIHByZXZpb3VzIG5ldHdvcmsgbG9hZGluZyBzdGF0dXMgd2lsbCBsaWtlbHkgY29t
ZSBiZWZvcmUgdXNlciBtYWtlIGFueQorICAgICAgICAgICAgZGVjaXNpb24uCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIGZvciBwbGF0Zm9ybSBzcGVjaWZpYyBpbnRlcm5hbCBjaGFuZ2UuCisKKyAg
ICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAgICogcGxhdGZvcm0vYmxh
Y2tiZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoQ2hhbGxlbmdlSW5mbyk6CisgICAgICAgIChXZWJDb3Jl
OjpDaGFsbGVuZ2VJbmZvOjpDaGFsbGVuZ2VJbmZvKToKKyAgICAgICAgKEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlTWFuYWdlclByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2VNYW5hZ2VyUHJpdmF0ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2Vy
UHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFn
ZXJQcml2YXRlOjpyZXN1bWVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJQcml2YXRlOjpzdGFydEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlTWFuYWdlclByaXZhdGU6OnBhZ2VFeGlzdHMpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjpwYWdl
Q3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFn
ZXI6OnBhZ2VEZWxldGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlTWFuYWdlcjo6cGFnZVZpc2liaWxpdHlDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6YXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjpjYW5jZWxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZU1hbmFnZXI6Om5vdGlmeUNoYWxsZW5nZVJlc3VsdCk6CisgICAgICAgIChXZWJD
b3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXI6Omluc3RhbmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6aW5pdCk6CisgICAgICAg
ICogcGxhdGZvcm0vYmxhY2tiZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5h
Z2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclBy
aXZhdGVCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGU6Om9uQXV0aGVudGljYXRpb25OZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlOjpub3RpZnlDaGFsbGVuZ2VSZXN1bHQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oOgor
ICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9i
OjpOZXR3b3JrSm9iKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6On5OZXR3b3JrSm9i
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6aGFu
ZGxlTm90aWZ5U3RhdHVzUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6
aGFuZGxlTm90aWZ5Q2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6c2VuZFJl
cXVlc3RXaXRoQ3JlZGVudGlhbHMpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6bm90
aWZ5Q2hhbGxlbmdlUmVzdWx0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvTmV0d29ya0pvYi5oOgorICAgICAgICAoTmV0d29ya0pvYik6CisKIDIwMTItMDktMjEgIFNp
bW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5AZGlnaWEuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjkyNDguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVy
cnkuY21ha2UKaW5kZXggNTNjMmQzNS4uMWJjYjVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
QmxhY2tCZXJyeS5jbWFrZQpAQCAtNjAsNiArNjAsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NP
VVJDRVMKICAgICBiaW5kaW5ncy9jcHAvV2ViRE9NU3RyaW5nLmNwcAogICAgIGJpbmRpbmdzL2Nw
cC9XZWJFeGNlcHRpb25IYW5kbGVyLmNwcAogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvQ29va2ll
RGF0YWJhc2VCYWNraW5nU3RvcmUvQ29va2llRGF0YWJhc2VCYWNraW5nU3RvcmUuY3BwCisgICAg
cGxhdGZvcm0vYmxhY2tiZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuY3BwCiAg
ICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9Db29raWVNYW5hZ2VyLmNwcAogICAgIHBsYXRmb3JtL2Js
YWNrYmVycnkvQ29va2llTWFwLmNwcAogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvQ29va2llUGFy
c2VyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9B
dXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYmxhY2tiZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0MGE0MmIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
TWFuYWdlci5jcHAKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
UmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlTWFuYWdlci5oIgorCisjaW5jbHVkZSAiQ3JlZGVudGlhbC5oIgorI2luY2x1
ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJQYWdlQ2xpZW50QmxhY2tCZXJyeS5oIgorI2luY2x1ZGUg
IlByb3RlY3Rpb25TcGFjZS5oIgorCisjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtQXNzZXJ0
Lmg+CisjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtTG9nLmg+CisjaW5jbHVkZSA8d3RmL0Fz
c2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKwordHlwZWRlZiBIYXNoTWFwPFBhZ2VDbGllbnRCbGFja0JlcnJ5KiwgYm9vbD4gUGFnZVZp
c2liaWxpdHlNYXA7CisKK3N0cnVjdCBDaGFsbGVuZ2VJbmZvIHsKKyAgICBDaGFsbGVuZ2VJbmZv
KGNvbnN0IEtVUkwmLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBjb25zdCBDcmVkZW50aWFsJiwg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VDbGllbnQqLCBQYWdlQ2xpZW50QmxhY2tCZXJyeSopOwor
CisgICAgS1VSTCB1cmw7CisgICAgUHJvdGVjdGlvblNwYWNlIHNwYWNlOworICAgIENyZWRlbnRp
YWwgY3JlZGVudGlhbDsKKyAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNsaWVudCogYXV0aENs
aWVudDsKKyAgICBQYWdlQ2xpZW50QmxhY2tCZXJyeSogcGFnZUNsaWVudDsKKyAgICBib29sIGJs
b2NrZWQ7Cit9OworCitDaGFsbGVuZ2VJbmZvOjpDaGFsbGVuZ2VJbmZvKGNvbnN0IEtVUkwmIGFV
cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYg
YVNwYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDcmVkZW50aWFsJiBh
Q3JlZGVudGlhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VDbGllbnQqIGFuQXV0aENsaWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUGFnZUNsaWVudEJsYWNrQmVycnkqIGFQYWdlQ2xpZW50KQorICAgIDogdXJsKGFVcmwpCisg
ICAgLCBzcGFjZShhU3BhY2UpCisgICAgLCBjcmVkZW50aWFsKGFDcmVkZW50aWFsKQorICAgICwg
YXV0aENsaWVudChhbkF1dGhDbGllbnQpCisgICAgLCBwYWdlQ2xpZW50KGFQYWdlQ2xpZW50KQor
ICAgICwgYmxvY2tlZChmYWxzZSkKK3sKK30KKworY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VNYW5hZ2VyUHJpdmF0ZSB7CitwdWJsaWM6CisgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VN
YW5hZ2VyUHJpdmF0ZSgpOworCisgICAgYm9vbCByZXN1bWVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShQYWdlQ2xpZW50QmxhY2tCZXJyeSopOworICAgIHZvaWQgc3RhcnRBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShDaGFsbGVuZ2VJbmZvKik7CisgICAgYm9vbCBwYWdlRXhpc3RzKFBhZ2VDbGllbnRC
bGFja0JlcnJ5Kik7CisKKyAgICBDaGFsbGVuZ2VJbmZvKiBtX2FjdGl2ZUNoYWxsZW5nZTsKKyAg
ICBQYWdlVmlzaWJpbGl0eU1hcCBtX3BhZ2VWaXNpYmlsaXR5TWFwOworICAgIFZlY3RvcjxPd25Q
dHI8Q2hhbGxlbmdlSW5mbz4gPiBtX2NoYWxsZW5nZXM7Cit9OworCitBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZU1hbmFnZXJQcml2YXRlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJQcml2
YXRlKCkKKyAgICA6IG1fYWN0aXZlQ2hhbGxlbmdlKDApCit7Cit9CisKK2Jvb2wgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VNYW5hZ2VyUHJpdmF0ZTo6cmVzdW1lQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoUGFnZUNsaWVudEJsYWNrQmVycnkqIGNsaWVudCkKK3sKKyAgICBBU1NFUlQoIW1fYWN0aXZl
Q2hhbGxlbmdlKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jaGFsbGVuZ2VzLnNp
emUoKTsgKytpKSB7CisgICAgICAgIGlmIChtX2NoYWxsZW5nZXNbaV0tPnBhZ2VDbGllbnQgPT0g
Y2xpZW50ICYmIG1fY2hhbGxlbmdlc1tpXS0+YmxvY2tlZCkgeworICAgICAgICAgICAgc3RhcnRB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX2NoYWxsZW5nZXNbaV0uZ2V0KCkpOworICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK3ZvaWQgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyUHJpdmF0ZTo6c3RhcnRBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShDaGFsbGVuZ2VJbmZvKiBpbmZvKQoreworICAgIG1fYWN0aXZl
Q2hhbGxlbmdlID0gaW5mbzsKKyAgICBtX2FjdGl2ZUNoYWxsZW5nZS0+YmxvY2tlZCA9IGZhbHNl
OworICAgIG1fYWN0aXZlQ2hhbGxlbmdlLT5wYWdlQ2xpZW50LT5hdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShtX2FjdGl2ZUNoYWxsZW5nZS0+dXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZUNoYWxsZW5nZS0+c3BhY2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fYWN0aXZlQ2hhbGxlbmdlLT5jcmVkZW50aWFsKTsKK30KKworYm9vbCBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZU1hbmFnZXJQcml2YXRlOjpwYWdlRXhpc3RzKFBhZ2VDbGllbnRCbGFja0Jl
cnJ5KiBjbGllbnQpCit7CisgICAgcmV0dXJuIG1fcGFnZVZpc2liaWxpdHlNYXAuZmluZChjbGll
bnQpICE9IG1fcGFnZVZpc2liaWxpdHlNYXAuZW5kKCk7Cit9CisKK0F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlTWFuYWdlcjo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyKCkKKyAgICA6IGQo
YWRvcHRQdHIobmV3IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlclByaXZhdGUpKQorewor
fQorCit2b2lkIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6cGFnZUNyZWF0ZWQoUGFn
ZUNsaWVudEJsYWNrQmVycnkqIGNsaWVudCkKK3sKKyAgICBkLT5tX3BhZ2VWaXNpYmlsaXR5TWFw
LmFkZChjbGllbnQsIHRydWUpOworfQorCit2b2lkIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFu
YWdlcjo6cGFnZURlbGV0ZWQoUGFnZUNsaWVudEJsYWNrQmVycnkqIGNsaWVudCkKK3sKKyAgICBk
LT5tX3BhZ2VWaXNpYmlsaXR5TWFwLnJlbW92ZShjbGllbnQpOworCisgICAgaWYgKGQtPm1fYWN0
aXZlQ2hhbGxlbmdlICYmIGQtPm1fYWN0aXZlQ2hhbGxlbmdlLT5wYWdlQ2xpZW50ID09IGNsaWVu
dCkKKyAgICAgICAgZC0+bV9hY3RpdmVDaGFsbGVuZ2UgPSAwOworCisgICAgVmVjdG9yPE93blB0
cjxDaGFsbGVuZ2VJbmZvPiA+IGV4aXN0aW5nOworICAgIGQtPm1fY2hhbGxlbmdlcy5zd2FwKGV4
aXN0aW5nKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXhpc3Rpbmcuc2l6ZSgpOyAr
K2kpIHsKKyAgICAgICAgaWYgKGV4aXN0aW5nW2ldLT5wYWdlQ2xpZW50ICE9IGNsaWVudCkKKyAg
ICAgICAgICAgIGQtPm1fY2hhbGxlbmdlcy5hcHBlbmQoZXhpc3RpbmdbaV0ucmVsZWFzZSgpKTsK
KyAgICB9Cit9CisKK3ZvaWQgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjpwYWdlVmlz
aWJpbGl0eUNoYW5nZWQoUGFnZUNsaWVudEJsYWNrQmVycnkqIGNsaWVudCwgYm9vbCB2aXNpYmxl
KQoreworICAgIFBhZ2VWaXNpYmlsaXR5TWFwOjppdGVyYXRvciBpdGVyID0gZC0+bV9wYWdlVmlz
aWJpbGl0eU1hcC5maW5kKGNsaWVudCk7CisKKyAgICBBU1NFUlQoaXRlciAhPSBkLT5tX3BhZ2VW
aXNpYmlsaXR5TWFwLmVuZCgpKTsKKyAgICBpZiAoaXRlciA9PSBkLT5tX3BhZ2VWaXNpYmlsaXR5
TWFwLmVuZCgpKSB7CisgICAgICAgIGQtPm1fcGFnZVZpc2liaWxpdHlNYXAuYWRkKGNsaWVudCwg
dmlzaWJsZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoaXRlci0+c2Vjb25k
ID09IHZpc2libGUpCisgICAgICAgIHJldHVybjsKKworICAgIGl0ZXItPnNlY29uZCA9IHZpc2li
bGU7CisgICAgaWYgKCF2aXNpYmxlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZC0+bV9h
Y3RpdmVDaGFsbGVuZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGQtPnJlc3VtZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKGNsaWVudCk7Cit9CisKK3ZvaWQgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VNYW5hZ2VyOjphdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBLVVJMJiB1cmwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgUHJvdGVjdGlvblNwYWNlJiBzcGFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDcmVkZW50aWFsJiBjcmVk
ZW50aWFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50KiBhdXRoQ2xpZW50LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFBhZ2VDbGllbnRCbGFja0JlcnJ5KiBwYWdlQ2xpZW50KQoreworICAgIEJMQUNLQkVSUllf
QVNTRVJUKGF1dGhDbGllbnQpOworICAgIEJMQUNLQkVSUllfQVNTRVJUKHBhZ2VDbGllbnQpOwor
CisgICAgQ2hhbGxlbmdlSW5mbyogaW5mbyA9IG5ldyBDaGFsbGVuZ2VJbmZvKHVybCwgc3BhY2Us
IGNyZWRlbnRpYWwsIGF1dGhDbGllbnQsIHBhZ2VDbGllbnQpOworICAgIGQtPm1fY2hhbGxlbmdl
cy5hcHBlbmQoYWRvcHRQdHIoaW5mbykpOworCisgICAgaWYgKGQtPm1fYWN0aXZlQ2hhbGxlbmdl
IHx8ICFwYWdlQ2xpZW50LT5pc1Zpc2libGUoKSkgeworICAgICAgICBpbmZvLT5ibG9ja2VkID0g
dHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGQtPnN0YXJ0QXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoaW5mbyk7Cit9CisKK3ZvaWQgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5h
Z2VyOjpjYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZUNsaWVudCogY2xpZW50KQoreworICAgIEJMQUNLQkVSUllfQVNTRVJUKGNsaWVudCk7CisKKyAg
ICBpZiAoZC0+bV9hY3RpdmVDaGFsbGVuZ2UgJiYgZC0+bV9hY3RpdmVDaGFsbGVuZ2UtPmF1dGhD
bGllbnQgPT0gY2xpZW50KQorICAgICAgICBkLT5tX2FjdGl2ZUNoYWxsZW5nZSA9IDA7CisKKyAg
ICBWZWN0b3I8T3duUHRyPENoYWxsZW5nZUluZm8+ID4gZXhpc3Rpbmc7CisgICAgZC0+bV9jaGFs
bGVuZ2VzLnN3YXAoZXhpc3RpbmcpOworCisgICAgQ2hhbGxlbmdlSW5mbyogbmV4dCA9IDA7Cisg
ICAgUGFnZUNsaWVudEJsYWNrQmVycnkqIHBhZ2UgPSAwOworCisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBleGlzdGluZy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoZXhpc3RpbmdbaV0t
PmF1dGhDbGllbnQgIT0gY2xpZW50KSB7CisgICAgICAgICAgICBpZiAocGFnZSAmJiAhbmV4dCAm
JiBleGlzdGluZ1tpXS0+cGFnZUNsaWVudCA9PSBwYWdlKQorICAgICAgICAgICAgICAgIG5leHQg
PSBleGlzdGluZ1tpXS5nZXQoKTsKKyAgICAgICAgICAgIGQtPm1fY2hhbGxlbmdlcy5hcHBlbmQo
ZXhpc3RpbmdbaV0ucmVsZWFzZSgpKTsKKyAgICAgICAgfSBlbHNlIGlmIChkLT5tX2FjdGl2ZUNo
YWxsZW5nZSA9PSBleGlzdGluZ1tpXS5nZXQoKSkKKyAgICAgICAgICAgIHBhZ2UgPSBleGlzdGlu
Z1tpXS0+cGFnZUNsaWVudDsKKyAgICB9CisKKyAgICBpZiAobmV4dCkKKyAgICAgICAgZC0+c3Rh
cnRBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShuZXh0KTsKK30KKwordm9pZCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZU1hbmFnZXI6Om5vdGlmeUNoYWxsZW5nZVJlc3VsdChjb25zdCBLVVJMJiB1cmws
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgc3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUmVzdWx0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKK3sKKyAg
ICBkLT5tX2FjdGl2ZUNoYWxsZW5nZSA9IDA7CisKKyAgICBWZWN0b3I8T3duUHRyPENoYWxsZW5n
ZUluZm8+ID4gZXhpc3Rpbmc7CisgICAgZC0+bV9jaGFsbGVuZ2VzLnN3YXAoZXhpc3RpbmcpOwor
CisgICAgQ2hhbGxlbmdlSW5mbyogbmV4dCA9IDA7CisgICAgUGFnZUNsaWVudEJsYWNrQmVycnkq
IHBhZ2UgPSAwOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBleGlzdGluZy5zaXplKCk7
ICsraSkgeworICAgICAgICBpZiAoZXhpc3RpbmdbaV0tPnNwYWNlICE9IHNwYWNlKSB7CisgICAg
ICAgICAgICBpZiAocGFnZSAmJiAhbmV4dCAmJiBleGlzdGluZ1tpXS0+cGFnZUNsaWVudCA9PSBw
YWdlKQorICAgICAgICAgICAgICAgIG5leHQgPSBleGlzdGluZ1tpXS5nZXQoKTsKKyAgICAgICAg
ICAgIGQtPm1fY2hhbGxlbmdlcy5hcHBlbmQoZXhpc3RpbmdbaV0ucmVsZWFzZSgpKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBhZ2UgPSBleGlzdGluZ1tpXS0+cGFnZUNsaWVudDsK
KyAgICAgICAgICAgIGV4aXN0aW5nW2ldLT5hdXRoQ2xpZW50LT5ub3RpZnlDaGFsbGVuZ2VSZXN1
bHQoZXhpc3RpbmdbaV0tPnVybCwgc3BhY2UsIHJlc3VsdCwgY3JlZGVudGlhbCk7CisKKyAgICAg
ICAgICAgIC8vIEFmdGVyIGNhbGxpbmcgbm90aWZ5Q2hhbGxlbmdlUmVzdWx0KCksIHBhZ2UgY291
bGQgYmUgZGVzdHJveWVkIG9yIHNvbWV0aGluZy4KKyAgICAgICAgICAgIGlmICghZC0+cGFnZUV4
aXN0cyhwYWdlKSB8fCAhcGFnZS0+aXNWaXNpYmxlKCkpCisgICAgICAgICAgICAgICAgcGFnZSA9
IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobmV4dCkKKyAgICAgICAgZC0+c3RhcnRB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShuZXh0KTsKK30KKworLy8gS2VlcCBmb2xsb3dpbmcgY29k
ZSBhdCB0aGUgZW5kIG9mIHRoaXMgZmlsZSEhIQorc3RhdGljIEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlTWFuYWdlciogc19tYW5hZ2VyID0gMDsKKworQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5h
Z2VyKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXI6Omluc3RhbmNlKCkKK3sKKyAgICBB
U1NFUlQoc19tYW5hZ2VyKTsKKyAgICByZXR1cm4gc19tYW5hZ2VyOworfQorCit2b2lkIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6aW5pdCgpCit7CisgICAgQVNTRVJUKCFzX21hbmFn
ZXIpOworICAgIHNfbWFuYWdlciA9IG5ldyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIo
KTsKK30KKworLy8gTm8gbW9yZSBjb2RlIGFmdGVyIHRoaXMgbGluZSwgYWxsIG5ldyBjb2RlIHNo
b3VsZCBjb21lIGJlZm9yZSBzX21hbmFnZXIgZGVjbGFyYXRpb24hISEKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJy
eS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2JsYWNrYmVycnkvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyLmgKaW5kZXggNTIy
MjRmNS4uMjBlNzk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2ti
ZXJyeS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlci5oCkBA
IC0xOSw4ICsxOSwxMyBAQAogI2lmbmRlZiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJf
aAogI2RlZmluZSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJfaAogCisjaW5jbHVkZSA8
d3RmL093blB0ci5oPgorCitjbGFzcyBQYWdlQ2xpZW50QmxhY2tCZXJyeTsKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJQcml2YXRl
OwogY2xhc3MgQ3JlZGVudGlhbDsKIGNsYXNzIEtVUkw7CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7
CkBAIC0zNSw2ICs0MCwzNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNoYWxs
ZW5nZVJlc3VsdChjb25zdCBLVVJMJiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VSZXN1bHQsIGNvbnN0IENyZWRlbnRpYWwmKSA9IDA7CiB9OwogCitjbGFz
cyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIgeworcHVibGljOgorICAgIHN0YXRpYyB2
b2lkIGluaXQoKTsKKyAgICBzdGF0aWMgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyKiBp
bnN0YW5jZSgpOworCisgICAgdm9pZCBwYWdlQ3JlYXRlZChQYWdlQ2xpZW50QmxhY2tCZXJyeSop
OworICAgIHZvaWQgcGFnZURlbGV0ZWQoUGFnZUNsaWVudEJsYWNrQmVycnkqKTsKKyAgICB2b2lk
IHBhZ2VWaXNpYmlsaXR5Q2hhbmdlZChQYWdlQ2xpZW50QmxhY2tCZXJyeSosIGJvb2wgdmlzaWJs
ZSk7CisKKyAgICB2b2lkIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEtVUkwmLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENyZWRlbnRpYWwmLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDbGllbnQq
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFnZUNsaWVudEJsYWNrQmVycnkq
KTsKKworICAgIHZvaWQgY2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VDbGllbnQqKTsKKworICAgIHZvaWQgbm90aWZ5Q2hhbGxlbmdlUmVzdWx0KGNv
bnN0IEtVUkwmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFByb3RlY3Rp
b25TcGFjZSYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VSZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ3Jl
ZGVudGlhbCYpOworCitwcml2YXRlOgorICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdl
cigpOworICAgIH5BdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIoKTsKKworICAgIE93blB0
cjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXJQcml2YXRlPiBkOworfTsKKworCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1h
bmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9Q
YWdlQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJy
eS9QYWdlQ2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IGJkYjJmMTYuLmYyYzdjMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGFnZUNsaWVudEJsYWNrQmVy
cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGllbnRC
bGFja0JlcnJ5LmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IHNo
b3dBbGVydERpYWxvZyhCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VDbGllbnQ6OkFsZXJ0VHlw
ZSkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIGJvb2wgaXNWaXNpYmxlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlJiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYsIFdlYkNvcmU6OkF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50KikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlJiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpID0gMDsKICAgICB2aXJ0
dWFsIFNhdmVDcmVkZW50aWFsVHlwZSBub3RpZnlTaG91bGRTYXZlQ3JlZGVudGlhbChib29sKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHN5bmNQcm94eUNyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6
Q3JlZGVudGlhbCYpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclBy
aXZhdGVCbGFja0JlcnJ5LmNwcAppbmRleCBhZjA2YTIzLi5kNjk2YWQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJp
dmF0ZUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKQEAgLTIxLDYgKzIx
LDcgQEAKICNpZiBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlQmxh
Y2tCZXJyeS5oIgogCisjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgIkNyZWRlbnRpYWwuaCIKICNp
bmNsdWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgpAQCAtMTE0LDYgKzExNSw3IEBAIE1lZGlhUGxh
eWVyUHJpdmF0ZTo6TWVkaWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAg
LCBtX3VzZXJEcml2ZW5TZWVrVGltZXIodGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZTo6dXNlckRy
aXZlblNlZWtUaW1lckZpcmVkKQogICAgICwgbV9sYXN0U2Vla1RpbWUoMCkKICAgICAsIG1fbGFz
dFNlZWtUaW1lUGVuZGluZyhmYWxzZSkKKyAgICAsIG1faXNBdXRoZW50aWNhdGlvbkNoYWxsZW5n
aW5nKGZhbHNlKQogICAgICwgbV93YWl0TWV0YWRhdGFUaW1lcih0aGlzLCAmTWVkaWFQbGF5ZXJQ
cml2YXRlOjp3YWl0TWV0YWRhdGFUaW1lckZpcmVkKQogICAgICwgbV93YWl0TWV0YWRhdGFQb3BE
aWFsb2dDb3VudGVyKDApCiB7CkBAIC0xMjEsNiArMTIzLDkgQEAgTWVkaWFQbGF5ZXJQcml2YXRl
OjpNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKIAogTWVkaWFQbGF5ZXJQ
cml2YXRlOjp+TWVkaWFQbGF5ZXJQcml2YXRlKCkKIHsKKyAgICBpZiAobV9pc0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdpbmcpCisgICAgICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6
aW5zdGFuY2UoKS0+Y2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodGhpcyk7CisKICAgICBp
ZiAoaXNGdWxsc2NyZWVuKCkpIHsKICAgICAgICAgbV93ZWJDb3JlUGxheWVyLT5tZWRpYVBsYXll
ckNsaWVudCgpLT5tZWRpYVBsYXllckV4aXRGdWxsc2NyZWVuKCk7CiAgICAgfQpAQCAtNzEwLDEy
ICs3MTUsMTggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6Om9uQXV0aGVudGljYXRpb25OZWVk
ZWQoTU1SQXV0aENoYWxsZW5nZSYgYXV0aENoYWxsZW5nZSkKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGlmIChmcmFtZVZpZXcoKSAmJiBmcmFtZVZpZXcoKS0+aG9zdFdpbmRvdygpKQot
ICAgICAgICBmcmFtZVZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+
YXV0aGVudGljYXRpb25DaGFsbGVuZ2UodXJsLCBwcm90ZWN0aW9uU3BhY2UsIGNyZWRlbnRpYWws
IHRoaXMpOworICAgIG1faXNBdXRoZW50aWNhdGlvbkNoYWxsZW5naW5nID0gdHJ1ZTsKKyAgICBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXI6Omluc3RhbmNlKCktPmF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKHVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3Rpb25TcGFjZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWRlbnRpYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV93ZWJDb3JlUGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllckhvc3RXaW5k
b3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZTo6bm90aWZ5Q2hhbGxlbmdlUmVzdWx0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgUHJvdGVjdGlv
blNwYWNlJiBwcm90ZWN0aW9uU3BhY2UsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUmVzdWx0IHJl
c3VsdCwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsKKyAgICBtX2lzQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2luZyA9IGZhbHNlOworCiAgICAgaWYgKHJlc3VsdCAhPSBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVN1Y2Nlc3MgfHwgIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJy
eS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaAppbmRl
eCAyODk2NjkyLi41YTA4M2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJp
dmF0ZUJsYWNrQmVycnkuaApAQCAtMTc0LDYgKzE3NCw3IEBAIHByaXZhdGU6CiAgICAgVGltZXI8
TWVkaWFQbGF5ZXJQcml2YXRlPiBtX3VzZXJEcml2ZW5TZWVrVGltZXI7CiAgICAgZmxvYXQgbV9s
YXN0U2Vla1RpbWU7CiAgICAgYm9vbCBtX2xhc3RTZWVrVGltZVBlbmRpbmc7CisgICAgYm9vbCBt
X2lzQXV0aGVudGljYXRpb25DaGFsbGVuZ2luZzsKICAgICB2b2lkIHdhaXRNZXRhZGF0YVRpbWVy
RmlyZWQoVGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlPiopOwogICAgIFRpbWVyPE1lZGlhUGxheWVy
UHJpdmF0ZT4gbV93YWl0TWV0YWRhdGFUaW1lcjsKICAgICBpbnQgbV93YWl0TWV0YWRhdGFQb3BE
aWFsb2dDb3VudGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwCmluZGV4IDk4ZWJlNjAuLmNjYTg5YjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3
b3JrSm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvTmV0d29ya0pvYi5jcHAKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJOZXR3b3JrSm9iLmgiCiAKKyNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZU1hbmFnZXIuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGll
bnQuaCIKICNpbmNsdWRlICJDb29raWVNYW5hZ2VyLmgiCkBAIC04NCw5ICs4NSwxNiBAQCBOZXR3
b3JrSm9iOjpOZXR3b3JrSm9iKCkKICAgICAsIG1fZGVmZXJyZWREYXRhKCp0aGlzKQogICAgICwg
bV9kZWZlckxvYWRpbmdDb3VudCgwKQogICAgICwgbV9mcmFtZSgwKQorICAgICwgbV9pc0F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdpbmcoZmFsc2UpCiB7CiB9CiAKK05ldHdvcmtKb2I6On5OZXR3b3Jr
Sm9iKCkKK3sKKyAgICBpZiAobV9pc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdpbmcpCisgICAgICAg
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6aW5zdGFuY2UoKS0+Y2FuY2VsQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UodGhpcyk7Cit9CisKIGJvb2wgTmV0d29ya0pvYjo6aW5pdGlhbGl6
ZShpbnQgcGxheWVySWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5n
JiBwYWdlR3JvdXBOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEtVUkwm
IHVybCwKQEAgLTIwMywxMCArMjExLDggQEAgdm9pZCBOZXR3b3JrSm9iOjpoYW5kbGVOb3RpZnlT
dGF0dXNSZWNlaXZlZChpbnQgc3RhdHVzLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAKICAgICBt
X3Jlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KG1lc3NhZ2UpOwogCi0gICAgaWYgKGlzVW5hdXRo
b3JpemVkKG1fZXh0ZW5kZWRTdGF0dXNDb2RlKSkgeworICAgIGlmIChpc1VuYXV0aG9yaXplZCht
X2V4dGVuZGVkU3RhdHVzQ29kZSkpCiAgICAgICAgIHB1cmdlQ3JlZGVudGlhbHMoKTsKLSAgICAg
ICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OmxvZyhCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TG9nTGV2
ZWxDcml0aWNhbCwgIkF1dGhlbnRpY2F0aW9uIGZhaWxlZCwgcHVyZ2UgdGhlIHN0b3JlZCBjcmVk
ZW50aWFscyBmb3IgdGhpcyBzaXRlLiIpOwotICAgIH0KIH0KIAogdm9pZCBOZXR3b3JrSm9iOjpu
b3RpZnlIZWFkZXJzUmVjZWl2ZWQoQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0
OjpIZWFkZXJMaXN0JiBoZWFkZXJzKQpAQCAtNDg0LDYgKzQ5MCw3IEBAIHZvaWQgTmV0d29ya0pv
Yjo6aGFuZGxlTm90aWZ5Q2xvc2UoaW50IHN0YXR1cykKICNpZm5kZWYgTkRFQlVHCiAgICAgbV9p
c1J1bm5pbmcgPSBmYWxzZTsKICNlbmRpZgorCiAgICAgaWYgKCFtX2NhbmNlbGxlZCkgewogICAg
ICAgICBpZiAoIW1fc3RhdHVzUmVjZWl2ZWQpIHsKICAgICAgICAgICAgIC8vIENvbm5lY3Rpb24g
ZmFpbGVkIGJlZm9yZSBzZW5kaW5nIG5vdGlmeVN0YXR1c1JlY2VpdmVkOiB1c2UgZ2VuZXJpYyBO
ZXR3b3JrRXJyb3IuCkBAIC00OTUsNiArNTAyLDcgQEAgdm9pZCBOZXR3b3JrSm9iOjpoYW5kbGVO
b3RpZnlDbG9zZShpbnQgc3RhdHVzKQogICAgICAgICAgICAgICAgIG1fZXh0ZW5kZWRTdGF0dXND
b2RlID0gQmxhY2tCZXJyeTo6UGxhdGZvcm06OkZpbHRlclN0cmVhbTo6U3RhdHVzVG9vTWFueVJl
ZGlyZWN0czsKIAogICAgICAgICAgICAgc2VuZFJlc3BvbnNlSWZOZWVkZWQoKTsKKwogICAgICAg
ICAgICAgaWYgKGlzQ2xpZW50QXZhaWxhYmxlKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoaXNF
cnJvcihzdGF0dXMpKQogICAgICAgICAgICAgICAgICAgICBtX2V4dGVuZGVkU3RhdHVzQ29kZSA9
IHN0YXR1czsKQEAgLTc2Nyw3ICs3NzUsMTUgQEAgYm9vbCBOZXR3b3JrSm9iOjpzZW5kUmVxdWVz
dFdpdGhDcmVkZW50aWFscyhQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHR5cGUsIFByb3QKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAgIG1faGFuZGxlLT5nZXRJ
bnRlcm5hbCgpLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2UgPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSgpOwotICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnBs
YXRmb3JtUGFnZUNsaWVudCgpLT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZShuZXdVUkwsIHByb3Rl
Y3Rpb25TcGFjZSwgQ3JlZGVudGlhbCgpLCB0aGlzKTsKKworICAgICAgICAgICAgbV9pc0F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdpbmcgPSB0cnVlOworICAgICAgICAgICAgdXBkYXRlRGVmZXJMb2Fk
aW5nQ291bnQoMSk7CisKKyAgICAgICAgICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdl
cjo6aW5zdGFuY2UoKS0+YXV0aGVudGljYXRpb25DaGFsbGVuZ2UobmV3VVJMLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcm90ZWN0aW9uU3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENy
ZWRlbnRpYWwoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnBsYXRmb3JtUGFn
ZUNsaWVudCgpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKQEAgLTgy
OCwxMSArODQ0LDE3IEBAIHZvaWQgTmV0d29ya0pvYjo6ZmlyZURlbGV0ZUpvYlRpbWVyKFRpbWVy
PE5ldHdvcmtKb2I+KikKIAogdm9pZCBOZXR3b3JrSm9iOjpub3RpZnlDaGFsbGVuZ2VSZXN1bHQo
Y29uc3QgS1VSTCYgdXJsLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSwg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZXN1bHQgcmVzdWx0LCBjb25zdCBDcmVkZW50aWFsJiBj
cmVkZW50aWFsKQogeworICAgIG1faXNBdXRoZW50aWNhdGlvbkNoYWxsZW5naW5nID0gZmFsc2U7
CisKICAgICBpZiAocmVzdWx0ICE9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU3VjY2VzcyB8fCBw
cm90ZWN0aW9uU3BhY2UuaG9zdCgpLmlzRW1wdHkoKSB8fCAhdXJsLmlzVmFsaWQoKSkgewogICAg
ICAgICBtX25ld0pvYldpdGhDcmVkZW50aWFsc1N0YXJ0ZWQgPSBmYWxzZTsKKyAgICAgICAgdXBk
YXRlRGVmZXJMb2FkaW5nQ291bnQoLTEpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAg
Y2FuY2VsSm9iKCk7CisgICAgdXBkYXRlRGVmZXJMb2FkaW5nQ291bnQoLTEpOworCiAgICAgaWYg
KG1faGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2UuaXNOdWxsKCkp
CiAgICAgICAgIG1faGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2Ug
PSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShwcm90ZWN0aW9uU3BhY2UsIGNyZWRlbnRpYWwsIDAs
IG1fcmVzcG9uc2UsIFJlc291cmNlRXJyb3IoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5oCmluZGV4IDM1MjYz
NzQuLjhiZmI0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
YmxhY2tiZXJyeS9OZXR3b3JrSm9iLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
PG5ldHdvcmsvRmlsdGVyU3RyZWFtLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBCbGFja0JlcnJ5IHsKQEAgLTQ5LDYgKzUw
LDggQEAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgTmV0d29ya0pvYiA6IHB1YmxpYyBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZUNsaWVudCwgcHVibGljIEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpGaWx0ZXJTdHJlYW0gewogcHVibGljOgogICAgIE5ldHdvcmtKb2IoKTsKKyAgICB+TmV0d29y
a0pvYigpOworCiAgICAgYm9vbCBpbml0aWFsaXplKGludCBwbGF5ZXJJZCwKICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgU3RyaW5nJiBwYWdlR3JvdXBOYW1lLAogICAgICAgICAgICAgICAgICAg
ICBjb25zdCBLVVJMJiwKQEAgLTE3MSw2ICsxNzQsOCBAQCBwcml2YXRlOgogICAgIERlZmVycmVk
RGF0YSBtX2RlZmVycmVkRGF0YTsKICAgICBpbnQgbV9kZWZlckxvYWRpbmdDb3VudDsKICAgICBj
b25zdCBGcmFtZSogbV9mcmFtZTsKKworICAgIGJvb2wgbV9pc0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdpbmc7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL0JsYWNrQmVycnlHbG9iYWwuY3BwIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9CbGFja0JlcnJ5R2xvYmFsLmNwcAppbmRleCBmYzljZDVhLi5kOGI1
YzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0JsYWNrQmVycnlH
bG9iYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvQmxhY2tCZXJyeUds
b2JhbC5jcHAKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlICJCbGFja0JlcnJ5R2xvYmFsLmgi
CiAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgorI2luY2x1ZGUgIkF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlci5oIgogI2luY2x1ZGUgIkNhY2hlQ2xpZW50QmxhY2tC
ZXJyeS5oIgogI2luY2x1ZGUgIkNvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlICJDcm9zc09yaWdp
blByZWZsaWdodFJlc3VsdENhY2hlLmgiCkBAIC04MCw2ICs4MSw4IEBAIHZvaWQgZ2xvYmFsSW5p
dGlhbGl6ZSgpCiAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlNldHRpbmdzKiBzZXR0aW5ncyA9
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpTZXR0aW5nczo6aW5zdGFuY2UoKTsKIAogICAgIEltYWdl
U291cmNlOjpzZXRNYXhQaXhlbHNQZXJEZWNvZGVkSW1hZ2Uoc2V0dGluZ3MtPm1heFBpeGVsc1Bl
ckRlY29kZWRJbWFnZSgpKTsKKworICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6
aW5pdCgpOwogfQogCiB2b2lkIGNvbGxlY3RKYXZhc2NyaXB0R2FyYmFnZU5vdygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCAyMzI2ZGJmLi4xMjgwNzU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTQyNyw2ICs0Mjcs
OCBAQCBXZWJQYWdlUHJpdmF0ZTo6V2ViUGFnZVByaXZhdGUoV2ViUGFnZSogd2ViUGFnZSwgV2Vi
UGFnZUNsaWVudCogY2xpZW50LCBjb25zdCBJbgogICAgICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6RGV2aWNlSW5mbzo6aW5zdGFuY2UoKTsKICAgICAgICAgZGVmYXVsdFVzZXJBZ2VudCgpOwog
ICAgIH0KKworICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlcjo6aW5zdGFuY2UoKS0+
cGFnZUNyZWF0ZWQodGhpcyk7CiB9CiAKIFdlYlBhZ2U6OldlYlBhZ2UoV2ViUGFnZUNsaWVudCog
Y2xpZW50LCBjb25zdCBXZWJTdHJpbmcmIHBhZ2VHcm91cE5hbWUsIGNvbnN0IFBsYXRmb3JtOjpJ
bnRSZWN0JiByZWN0KQpAQCAtNDM4LDYgKzQ0MCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoV2ViUGFn
ZUNsaWVudCogY2xpZW50LCBjb25zdCBXZWJTdHJpbmcmIHBhZ2VHcm91cE5hbWUsIGNvbnN0IFBs
CiAKIFdlYlBhZ2VQcml2YXRlOjp+V2ViUGFnZVByaXZhdGUoKQogeworICAgIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlTWFuYWdlcjo6aW5zdGFuY2UoKS0+cGFnZURlbGV0ZWQodGhpcyk7CiAgICAg
Ly8gSGFuZCB0aGUgYmFja2luZ3N0b3JlIGJhY2sgdG8gYW5vdGhlciBvd25lciBpZiBuZWNlc3Nh
cnkuCiAgICAgbV93ZWJQYWdlLT5zZXRWaXNpYmxlKGZhbHNlKTsKICAgICBpZiAoQmFja2luZ1N0
b3JlUHJpdmF0ZTo6Y3VycmVudEJhY2tpbmdTdG9yZU93bmVyKCkgPT0gbV93ZWJQYWdlKQpAQCAt
MjIxMCwxOCArMjIxMywxOSBAQCBib29sIFdlYlBhZ2VQcml2YXRlOjppc0FjdGl2ZSgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fY2xpZW50LT5pc0FjdGl2ZSgpOwogfQogCi12b2lkIFdlYlBhZ2VQcml2
YXRlOjphdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFByb3Rl
Y3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlLCBjb25zdCBDcmVkZW50aWFsJiBpbnB1dENyZWRl
bnRpYWwsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xpZW50KiBjbGllbnQpCit2b2lkIFdlYlBh
Z2VQcml2YXRlOjphdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0
IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlLCBjb25zdCBDcmVkZW50aWFsJiBpbnB1
dENyZWRlbnRpYWwpCiB7CiAgICAgV2ViU3RyaW5nIHVzZXJuYW1lOwogICAgIFdlYlN0cmluZyBw
YXNzd29yZDsKKyAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXIqIGF1dGhtZ3IgPSBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZU1hbmFnZXI6Omluc3RhbmNlKCk7CiAKICNpZiAhZGVmaW5l
ZChQVUJMSUNfQlVJTEQpIHx8ICFQVUJMSUNfQlVJTEQKICAgICBpZiAobV9kdW1wUmVuZGVyVHJl
ZSkgewogICAgICAgICBDcmVkZW50aWFsIGNyZWRlbnRpYWwoaW5wdXRDcmVkZW50aWFsLCBpbnB1
dENyZWRlbnRpYWwucGVyc2lzdGVuY2UoKSk7CiAgICAgICAgIGlmIChtX2R1bXBSZW5kZXJUcmVl
LT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY3JlZGVudGlhbCkpCi0gICAgICAg
ICAgICBjbGllbnQtPm5vdGlmeUNoYWxsZW5nZVJlc3VsdCh1cmwsIHByb3RlY3Rpb25TcGFjZSwg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VTdWNjZXNzLCBjcmVkZW50aWFsKTsKKyAgICAgICAgICAg
IGF1dGhtZ3ItPm5vdGlmeUNoYWxsZW5nZVJlc3VsdCh1cmwsIHByb3RlY3Rpb25TcGFjZSwgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VTdWNjZXNzLCBjcmVkZW50aWFsKTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgY2xpZW50LT5ub3RpZnlDaGFsbGVuZ2VSZXN1bHQodXJsLCBwcm90ZWN0aW9u
U3BhY2UsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2FuY2VsbGVkLCBpbnB1dENyZWRlbnRpYWwp
OworICAgICAgICAgICAgYXV0aG1nci0+bm90aWZ5Q2hhbGxlbmdlUmVzdWx0KHVybCwgcHJvdGVj
dGlvblNwYWNlLCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNhbmNlbGxlZCwgaW5wdXRDcmVkZW50
aWFsKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtMjI0Miw5ICsyMjQ2LDkg
QEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6YXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgS1VS
TCYgdXJsLCBjb25zdCBQcm90ZWN0aW9uU3AKICNlbmRpZgogCiAgICAgaWYgKGlzQ29uZmlybWVk
KQotICAgICAgICBjbGllbnQtPm5vdGlmeUNoYWxsZW5nZVJlc3VsdCh1cmwsIHByb3RlY3Rpb25T
cGFjZSwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTdWNjZXNzLCBjcmVkZW50aWFsKTsKKyAgICAg
ICAgYXV0aG1nci0+bm90aWZ5Q2hhbGxlbmdlUmVzdWx0KHVybCwgcHJvdGVjdGlvblNwYWNlLCBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZVN1Y2Nlc3MsIGNyZWRlbnRpYWwpOwogICAgIGVsc2UKLSAg
ICAgICAgY2xpZW50LT5ub3RpZnlDaGFsbGVuZ2VSZXN1bHQodXJsLCBwcm90ZWN0aW9uU3BhY2Us
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2FuY2VsbGVkLCBpbnB1dENyZWRlbnRpYWwpOworICAg
ICAgICBhdXRobWdyLT5ub3RpZnlDaGFsbGVuZ2VSZXN1bHQodXJsLCBwcm90ZWN0aW9uU3BhY2Us
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2FuY2VsbGVkLCBpbnB1dENyZWRlbnRpYWwpOwogfQog
CiBQYWdlQ2xpZW50QmxhY2tCZXJyeTo6U2F2ZUNyZWRlbnRpYWxUeXBlIFdlYlBhZ2VQcml2YXRl
Ojpub3RpZnlTaG91bGRTYXZlQ3JlZGVudGlhbChib29sIGlzTmV3KQpAQCAtMzIzNiw2ICszMjQw
LDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRWaXNpYmxlKGJvb2wgdmlzaWJsZSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgZC0+c2V0VmlzaWJsZSh2aXNpYmxlKTsKKyAgICBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZU1hbmFnZXI6Omluc3RhbmNlKCktPnBhZ2VWaXNpYmlsaXR5Q2hhbmdlZChkLCB2aXNp
YmxlKTsKIAogICAgIGlmICghdmlzaWJsZSkgewogICAgICAgICBkLT5zdXNwZW5kQmFja2luZ1N0
b3JlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2Vf
cC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAppbmRleCA3YzIy
NmYzLi5iY2I3ZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
YlBhZ2VfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgK
QEAgLTIwMSw3ICsyMDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgc2hvd0FsZXJ0RGlh
bG9nKFdlYlBhZ2VDbGllbnQ6OkFsZXJ0VHlwZSBhdHlwZSk7CiAgICAgdmlydHVhbCBib29sIGlz
QWN0aXZlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzVmlzaWJsZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdmlzaWJsZTsgfQotICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJiwg
Y29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlQ2xpZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNv
bnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmLCBjb25z
dCBXZWJDb3JlOjpDcmVkZW50aWFsJik7CiAgICAgdmlydHVhbCBTYXZlQ3JlZGVudGlhbFR5cGUg
bm90aWZ5U2hvdWxkU2F2ZUNyZWRlbnRpYWwoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHN5bmNQ
cm94eUNyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwppbmRleCA1Y2M1NDEwLi5kYmI2NTI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0wOS0yMSAgTGlhbmdodWkgQ2hl
biAgPGxpYWNoZW5AcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gUmVhbGx5IGZpeCBi
dWcgOTU0ODggdGhhdCB1c2VyIGNhbiBnZXQgdGhlIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBk
aWFsb2cgd2hpbGUgdGhlIG90aGVyIHRhYiBoYXMgZm9jdXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzM0OAorICAgICAgICBJbnRlcm5hbCBQUjog
MTg2NTk3LgorCisgICAgICAgIEludGVybmFsbHkgcmV2aWV3ZWQgYnkgWW9uZyBMaSwgSm9lIE1h
c29uLgorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRh
dGUgV2ViUGFnZSB0byB1c2UgbmV3IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlci4KKyAg
ICAgICAgUmVnaXN0ZXIgcGFnZSBjcmVhdGlvbi9kZWxldGlvbiBhbmQgdmlzaWJpbGl0eSBjaGFu
Z2UgdG8gdGhlIG5ldworICAgICAgICAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2Vy
LgorICAgICAgICBJbml0aWFsaXplIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlciBpbiBH
bG9iYWxJbml0aWFsaXplKCkgZnVuY3Rpb24uCisKKyAgICAgICAgKiBBcGkvQmxhY2tCZXJyeUds
b2JhbC5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Omdsb2JhbEluaXRpYWxpemUp
OgorICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6V2ViUGFnZVByaXZhdGU6OldlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6V2ViUGFnZVByaXZhdGU6On5XZWJQYWdlUHJpdmF0ZSk6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjphdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OnNldFZpc2libGUpOgorICAg
ICAgICAqIEFwaS9XZWJQYWdlX3AuaDoKKyAgICAgICAgKFdlYlBhZ2VQcml2YXRlKToKKwogMjAx
Mi0wOS0yMSAgQ2hhcmxlcyBXZWkgIDxjaGFybGVzLndlaUB0b3JjaG1vYmlsZS5jb20uY24+CiAK
ICAgICAgICAgV3Jvbmcgc2VwZXJhdG9yIGZvciB2aWV3cG9ydCBtZXRhIGluIFBvcHVwIHNjcmlw
dHMK
</data>

          </attachment>
      

    </bug>

</bugzilla>