<?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>40512</bug_id>
          
          <creation_ts>2010-06-11 18:18:43 -0700</creation_ts>
          <short_desc>Fix the rest of the references to the old Tokenizer class (now DocumentParser)</short_desc>
          <delta_ts>2010-06-13 21:40:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>40491</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>237197</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-11 18:18:43 -0700</bug_when>
    <thetext>Fix the rest of the references to the old Tokenizer class (now DocumentParser)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237200</commentid>
    <comment_count>1</comment_count>
      <attachid>58534</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-11 18:24:19 -0700</bug_when>
    <thetext>Created attachment 58534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237208</commentid>
    <comment_count>2</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-06-11 18:48:16 -0700</bug_when>
    <thetext>Some questions from IRC review:

1) Is there a need to rename the existing parser classes before they are ready to be phased out?
2) Should XMLTokenizer* be renamed too?
3) Likewise the various Tokenizer helper classes in the loader/ directory for handling tree building for non-HTML non-XML types (TextTokenizer, PluginTokenizer, MediaTokenizer, ImageTokenizer, maybe more I am missing).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237269</commentid>
    <comment_count>3</comment_count>
      <attachid>58534</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-12 04:06:13 -0700</bug_when>
    <thetext>Comment on attachment 58534
Patch

Rejecting patch 58534 from commit-queue.

Failed to run &quot;[u&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Darin Adler&apos;, u&apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
t.h
patching file WebCore/loader/TextDocument.cpp
Hunk #1 FAILED at 183.
1 out of 1 hunk FAILED -- saving rejects to file WebCore/loader/TextDocument.cpp.rej
patching file WebCore/loader/TextDocument.h
patching file WebCore/svg/SVGDocumentExtensions.cpp
patching file WebCore/wml/WMLDocument.cpp
patching file WebCore/wml/WMLErrorHandling.cpp
Hunk #1 FAILED at 38.
1 out of 1 hunk FAILED -- saving rejects to file WebCore/wml/WMLErrorHandling.cpp.rej
patching file WebCore/wml/WMLTemplateElement.cpp

Full output: http://webkit-commit-queue.appspot.com/results/3257227</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237511</commentid>
    <comment_count>4</comment_count>
      <attachid>58534</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-13 00:03:40 -0700</bug_when>
    <thetext>Comment on attachment 58534
Patch

Rejecting patch 58534 from commit-queue.

Unexpected failure when processing patch!  Please file a bug against webkit-patch.
Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--build&apos;, &apos;--non-interactive&apos;, &apos;--ignore-builders&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;, 58534, &apos;--test&apos;, &apos;--parent-command=commit-queue&apos;, &apos;--no-update&apos;]&quot; exit_code: 1
Last 500 characters of output:
date_status
    return NetworkTransaction().run(lambda: self._post_status_to_server(queue_name, status, patch, results_file))
  File &quot;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/common/net/networktransaction.py&quot;, line 56, in run
    self._check_for_timeout()
  File &quot;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/common/net/networktransaction.py&quot;, line 63, in _check_for_timeout
    raise NetworkTimeout()
webkitpy.common.net.networktransaction.NetworkTimeout</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237633</commentid>
    <comment_count>5</comment_count>
      <attachid>58605</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-13 17:20:53 -0700</bug_when>
    <thetext>Created attachment 58605
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237701</commentid>
    <comment_count>6</comment_count>
      <attachid>58605</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-13 21:40:31 -0700</bug_when>
    <thetext>Comment on attachment 58605
Patch for landing

Clearing flags on attachment: 58605

Committed r61104: &lt;http://trac.webkit.org/changeset/61104&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237702</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-13 21:40:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58534</attachid>
            <date>2010-06-11 18:24:19 -0700</date>
            <delta_ts>2010-06-13 17:19:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40512-20100611182416.patch</filename>
            <type>text/plain</type>
            <size>51884</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDU1MDA5OThiYjYwMTU5YmM5Njg4NzI1NjFjODJhNGMyNDI2OGQ0NC4uZmJkMzM1ZmM5MGM2YmZk
NDk1NGZlZDVhZGUwMDM2NzVjNjhmM2EyOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwxMjggQEAKIAogICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBGaXggdGhlIHJlc3Qgb2YgdGhlIHJl
ZmVyZW5jZXMgdG8gdGhlIG9sZCBUb2tlbml6ZXIgY2xhc3MgKG5vdyBEb2N1bWVudFBhcnNlcikK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNTEyCisK
KyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2VzLCB0aHVzIG5vIG5ldyB0ZXN0cy4KKyAgICAg
ICAgVGhpcyB3YXMgbW9zdGx5IGRvbmUgYnkgZG8td2ViY29yZS1yZW5hbWU6CisgICAgICAgIHRv
a2VuaXplciA9PiBwYXJzZXIKKyAgICAgICAgbV90b2tlbml6ZXIgPT4gbV9wYXJzZXIKKyAgICAg
ICAgY3JlYXRlVGV4dFRva2VuaXplciA9PiBjcmVhdGVUZXh0RG9jdW1lbnRQYXJzZXIKKyAgICAg
ICAgY3JlYXRlVG9rZW5pemVyID0+IGNyZWF0ZVBhcnNlcgorICAgICAgICBnZXRUb2tlbml6ZXIg
PT4gZ2V0UGFyc2VyCisKKyAgICAgICAgSG93ZXZlciBoYWQgdG8gYmUgY2FyZWZ1bCB0byBhdm9p
ZCByZW5hbWluZyB0aGluZ3MgcmVsYXRlZCB0bworICAgICAgICBjc3MvdG9rZW5pemVyLmZsZXgg
KHdoaWNoIHdlIHNob3VsZCBsYXRlciByZW5hbWUgdG8gQ1NTVG9rZW5pemVyLmZsZXgpCisKKyAg
ICAgICAgU3RpbGwgYSBjb3VwbGUgcmVmZXJlbmNlcyB3aXRoICJ0b2siIGFuZCAiYXNIVE1MVG9r
ZW5pemVyIiB3aGljaCBJJ2xsCisgICAgICAgIGdldCBpbiB0aGUgbmV4dCBwYXRjaC4KKworICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0xvYWRlZCk6CisgICAg
ICAgICogYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6b3Bl
bik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2FuY2VsUGFyc2luZyk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6aW1wbGljaXRPcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjppbXBsaWNpdENsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3cml0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZmluaXNoUGFyc2luZyk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlUGVuZGluZ1NoZWV0KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpwYXJzZXIpOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudFBhcnNlci5oOgorICAgICAgICAqIGRvbS9WaWV3cG9ydEFyZ3VtZW50
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBvcnRWaWV3cG9ydFdhcm5pbmcpOgorICAgICAg
ICAqIGRvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGVuZGluZ0NhbGxiYWNrczo6Y2FsbEFuZFJlbW92ZUZpcnN0Q2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6UGVuZGluZ0NhbGxiYWNrczo6UGVuZGluZ1N0YXJ0RWxlbWVudE5TQ2FsbGJhY2s6
OmNhbGwpOgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ0NhbGxiYWNrczo6UGVuZGluZ0VuZEVs
ZW1lbnROU0NhbGxiYWNrOjpjYWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdDYWxsYmFj
a3M6OlBlbmRpbmdDaGFyYWN0ZXJzQ2FsbGJhY2s6OmNhbGwpOgorICAgICAgICAoV2ViQ29yZTo6
UGVuZGluZ0NhbGxiYWNrczo6UGVuZGluZ1Byb2Nlc3NpbmdJbnN0cnVjdGlvbkNhbGxiYWNrOjpj
YWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdDYWxsYmFja3M6OlBlbmRpbmdDREFUQUJs
b2NrQ2FsbGJhY2s6OmNhbGwpOgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ0NhbGxiYWNrczo6
UGVuZGluZ0NvbW1lbnRDYWxsYmFjazo6Y2FsbCk6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5n
Q2FsbGJhY2tzOjpQZW5kaW5nSW50ZXJuYWxTdWJzZXRDYWxsYmFjazo6Y2FsbCk6CisgICAgICAg
IChXZWJDb3JlOjpQZW5kaW5nQ2FsbGJhY2tzOjopOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UGFy
c2VyKToKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0RWxlbWVudE5zSGFuZGxlcik6CisgICAgICAg
IChXZWJDb3JlOjplbmRFbGVtZW50TnNIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNoYXJh
Y3RlcnNIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnByb2Nlc3NpbmdJbnN0cnVjdGlvbkhh
bmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y2RhdGFCbG9ja0hhbmRsZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Y29tbWVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6d2FybmluZ0hhbmRs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6ZmF0YWxFcnJvckhhbmRsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6bm9ybWFsRXJyb3JIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEVudGl0eUhh
bmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnREb2N1bWVudEhhbmRsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6ZW5kRG9jdW1lbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmludGVy
bmFsU3Vic2V0SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpleHRlcm5hbFN1YnNldEhhbmRs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VYTUxEb2N1bWVudEZyYWdtZW50KToKKyAgICAg
ICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJz
ZVhNTERvY3VtZW50RnJhZ21lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTDVFbnRpdHlQYXJzZXIu
Y3BwOgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKToKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TERvY3VtZW50UGFyc2VyOjpzdG9wUGFyc2luZyk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OnJlbW92ZWRGcm9tVHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXI6OmZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxQYXJzZXI6OnJlcG9ydEVycm9yVG9Db25zb2xlKToKKyAgICAgICAgKiBodG1sL0hUTUxW
aWV3U291cmNlRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZXdTb3VyY2VE
b2N1bWVudDo6Y3JlYXRlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWV3U291cmNl
RG9jdW1lbnQ6OmFkZExpbmUpOgorICAgICAgICAqIGh0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVu
dC5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudExvYWRlcjo6aXNMb2FkaW5nSW5BUElTZW5zZSk6CisgICAgICAgICogbG9h
ZGVyL0RvY3VtZW50V3JpdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50V3JpdGVy
OjpiZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFdyaXRlcjo6YWRkRGF0YSk6Cisg
ICAgICAgICogbG9hZGVyL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZUUERpcmVjdG9yeURvY3VtZW50OjpjcmVhdGVQYXJzZXIpOgorICAgICAgICAqIGxvYWRl
ci9GVFBEaXJlY3RvcnlEb2N1bWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3RvcExvYWRpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0b3ApOgorICAgICAgICAqIGxvYWRlci9JbWFnZURv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRG9jdW1lbnQ6OmNyZWF0ZVBhcnNl
cik6CisgICAgICAgICogbG9hZGVyL0ltYWdlRG9jdW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIv
TWVkaWFEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURvY3VtZW50OjpjcmVh
dGVQYXJzZXIpOgorICAgICAgICAqIGxvYWRlci9NZWRpYURvY3VtZW50Lmg6CisgICAgICAgICog
bG9hZGVyL1BsdWdpbkRvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRvY3Vt
ZW50OjpjcmVhdGVQYXJzZXIpOgorICAgICAgICAqIGxvYWRlci9QbHVnaW5Eb2N1bWVudC5oOgor
ICAgICAgICAqIGxvYWRlci9TaW5rRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2lu
a0RvY3VtZW50OjpjcmVhdGVQYXJzZXIpOgorICAgICAgICAqIGxvYWRlci9TaW5rRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBsb2FkZXIvVGV4dERvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRleHREb2N1bWVudDo6Y3JlYXRlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRl
eHREb2N1bWVudFBhcnNlcik6CisgICAgICAgICogbG9hZGVyL1RleHREb2N1bWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpyZXBvcnRXYXJuaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0RvY3VtZW50RXh0ZW5zaW9uczo6cmVwb3J0RXJyb3IpOgorICAgICAgICAqIHdtbC9XTUxE
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXTUxEb2N1bWVudDo6ZmluaXNoZWRQYXJz
aW5nKToKKyAgICAgICAgKiB3bWwvV01MRXJyb3JIYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZXBvcnRXTUxFcnJvcik6CisgICAgICAgICogd21sL1dNTFRlbXBsYXRlRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXTUxUZW1wbGF0ZUVsZW1lbnQ6OnJlZ2lzdGVyVGVtcGxh
dGVzSW5Eb2N1bWVudCk6CisKKzIwMTAtMDYtMTEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIFJl
bmFtZSB0aGUgbGFzdCBmZXcgKlRva2VuaXplciBjbGFzc2VzICh3aGljaCBkb24ndCBoYXZlIHRo
ZWlyIG93biBmaWxlcykgdG8gKkRvY3VtZW50UGFyc2VyCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDUwOAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggZjNiY2M0ZTZmZTJl
MzkyMmNmNmI5YTBmYTUxN2I3ZmVmYjljNTNiNy4uYzc2MzllNTUyOWM0NmVmOGY1OTY4OWM1OThj
MjRmY2I4M2Y5NjAxZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTg1Myw3ICsxODUzLDcgQEAgYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKIAogYm9v
bCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0xvYWRlZCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuICFtX3JlbmRlcmVyLT5kb2N1bWVudCgpLT50b2tlbml6ZXIoKTsKKyAgICByZXR1cm4gIW1f
cmVuZGVyZXItPmRvY3VtZW50KCktPnBhcnNlcigpOwogfQogCiBkb3VibGUgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6ZXN0aW1hdGVkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IGNmMjEwNDUwYzk3OWRk
Mzk0ZjIzZTVmMTA3N2E0YzljNzIwYzk1ZmUuLjU3YTI4MjRhODUyNjU4YTk2ZWNkMDMyZTQ1MTU0
NTg2NmZkMTM1Y2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRM
aXN0ZW5lci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVy
LmNwcApAQCAtNjQsMTAgKzY0LDEwIEBAIFBhc3NSZWZQdHI8VjhMYXp5RXZlbnRMaXN0ZW5lcj4g
Y3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcihOb2RlKiBub2RlLCBBdHRyaWJ1CiAgICAgICAg
ICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQo
KS0+dG9rZW5pemVyKCkpIHsKKyAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpLT5wYXJzZXIo
KSkgewogICAgICAgICAgICAgLy8gRklYTUU6IENoYW5nZSB0byB1c2Ugc2NyaXB0LT5ldmVudEhh
bmRsZXJMaW5lTnVtYmVyKCkgd2hlbiBpbXBsZW1lbnRlZC4KLSAgICAgICAgICAgIGxpbmVOdW1i
ZXIgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+dG9rZW5pemVyKCktPmxpbmVOdW1iZXIoKTsKLSAgICAg
ICAgICAgIGNvbHVtbk51bWJlciA9IGZyYW1lLT5kb2N1bWVudCgpLT50b2tlbml6ZXIoKS0+Y29s
dW1uTnVtYmVyKCk7CisgICAgICAgICAgICBsaW5lTnVtYmVyID0gZnJhbWUtPmRvY3VtZW50KCkt
PnBhcnNlcigpLT5saW5lTnVtYmVyKCk7CisgICAgICAgICAgICBjb2x1bW5OdW1iZXIgPSBmcmFt
ZS0+ZG9jdW1lbnQoKS0+cGFyc2VyKCktPmNvbHVtbk51bWJlcigpOwogICAgICAgICB9CiAgICAg
ICAgIHNvdXJjZVVSTCA9IG5vZGUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpOwogICAgIH0K
QEAgLTk3LDEwICs5NywxMCBAQCBQYXNzUmVmUHRyPFY4TGF6eUV2ZW50TGlzdGVuZXI+IGNyZWF0
ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoRnJhbWUqIGZyYW1lLCBBdHRyaQogICAgICAgICByZXR1
cm4gMDsKICAgICB9CiAKLSAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCktPnRva2VuaXplcigpKSB7
CisgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpLT5wYXJzZXIoKSkgewogICAgICAgICAvLyBGSVhN
RTogQ2hhbmdlIHRvIHVzZSBzY3JpcHQtPmV2ZW50SGFuZGxlckxpbmVOdW1iZXIoKSB3aGVuIGlt
cGxlbWVudGVkLgotICAgICAgICBsaW5lTnVtYmVyID0gZnJhbWUtPmRvY3VtZW50KCktPnRva2Vu
aXplcigpLT5saW5lTnVtYmVyKCk7Ci0gICAgICAgIGNvbHVtbk51bWJlciA9IGZyYW1lLT5kb2N1
bWVudCgpLT50b2tlbml6ZXIoKS0+Y29sdW1uTnVtYmVyKCk7CisgICAgICAgIGxpbmVOdW1iZXIg
PSBmcmFtZS0+ZG9jdW1lbnQoKS0+cGFyc2VyKCktPmxpbmVOdW1iZXIoKTsKKyAgICAgICAgY29s
dW1uTnVtYmVyID0gZnJhbWUtPmRvY3VtZW50KCktPnBhcnNlcigpLT5jb2x1bW5OdW1iZXIoKTsK
ICAgICB9CiAgICAgc291cmNlVVJMID0gZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygp
OwogICAgIHJldHVybiBWOExhenlFdmVudExpc3RlbmVyOjpjcmVhdGUoYXR0ci0+bG9jYWxOYW1l
KCkuc3RyaW5nKCksIGZyYW1lLT5kb2N1bWVudCgpLT5pc1NWR0RvY3VtZW50KCksIGF0dHItPnZh
bHVlKCksIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBXb3JsZENvbnRleHRI
YW5kbGUoVXNlTWFpbldvcmxkKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOGViMTFjNmQwMTBkMDljZmYxNzQ3
NTUyMDFkZDFlMmRhNWI4OWI1Zi4uZDRkYjA1YjZjMGU4ZGQwMmViNDA1ZGRmZTc0N2Y3Mjk0ODkz
M2MxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtNDg5LDcgKzQ4OSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92
ZWRMYXN0UmVmKCkKICAgICAgICAgZGVsZXRlQWxsVmFsdWVzKG1fbWFya2Vycyk7CiAgICAgICAg
IG1fbWFya2Vycy5jbGVhcigpOwogCi0gICAgICAgIG1fdG9rZW5pemVyLmNsZWFyKCk7CisgICAg
ICAgIG1fcGFyc2VyLmNsZWFyKCk7CiAKICAgICAgICAgbV9jc3NDYW52YXNFbGVtZW50cy5jbGVh
cigpOwogCkBAIC01MjMsNyArNTIzLDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAgZGVz
dHJveUFsbFdyYXBwZXJDYWNoZXMoKTsKICNlbmRpZgogCi0gICAgbV90b2tlbml6ZXIuY2xlYXIo
KTsKKyAgICBtX3BhcnNlci5jbGVhcigpOwogICAgIG1fZG9jdW1lbnQgPSAwOwogICAgIG1fZG9j
TG9hZGVyLmNsZWFyKCk7CiAKQEAgLTE2NjEsNyArMTY2MSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNl
dFZpc3VhbGx5T3JkZXJlZCgpCiAgICAgICAgIHJlbmRlcmVyKCktPnN0eWxlKCktPnNldFZpc3Vh
bGx5T3JkZXJlZCh0cnVlKTsKIH0KIAotRG9jdW1lbnRQYXJzZXIqIERvY3VtZW50OjpjcmVhdGVU
b2tlbml6ZXIoKQorRG9jdW1lbnRQYXJzZXIqIERvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQogewog
ICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBwcm9iYWJseSBwYXNzIHRoZSBmcmFtZSBpbnN0ZWFk
CiAgICAgcmV0dXJuIG5ldyBYTUxEb2N1bWVudFBhcnNlcih0aGlzLCB2aWV3KCkpOwpAQCAtMTY3
Niw3ICsxNjc2LDcgQEAgdm9pZCBEb2N1bWVudDo6b3BlbihEb2N1bWVudCogb3duZXJEb2N1bWVu
dCkKICAgICB9CiAKICAgICBpZiAobV9mcmFtZSkgewotICAgICAgICBpZiAobV9mcmFtZS0+bG9h
ZGVyKCktPmlzTG9hZGluZ01haW5SZXNvdXJjZSgpIHx8ICh0b2tlbml6ZXIoKSAmJiB0b2tlbml6
ZXIoKS0+ZXhlY3V0aW5nU2NyaXB0KCkpKQorICAgICAgICBpZiAobV9mcmFtZS0+bG9hZGVyKCkt
PmlzTG9hZGluZ01haW5SZXNvdXJjZSgpIHx8IChwYXJzZXIoKSAmJiBwYXJzZXIoKS0+ZXhlY3V0
aW5nU2NyaXB0KCkpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIAogICAgICAgICBpZiAobV9m
cmFtZS0+bG9hZGVyKCktPnN0YXRlKCkgPT0gRnJhbWVTdGF0ZVByb3Zpc2lvbmFsKQpAQCAtMTY5
NCwxMiArMTY5NCwxMiBAQCB2b2lkIERvY3VtZW50OjpvcGVuKERvY3VtZW50KiBvd25lckRvY3Vt
ZW50KQogCiB2b2lkIERvY3VtZW50OjpjYW5jZWxQYXJzaW5nKCkKIHsKLSAgICBpZiAobV90b2tl
bml6ZXIpIHsKLSAgICAgICAgLy8gV2UgaGF2ZSB0byBjbGVhciB0aGUgdG9rZW5pemVyIHRvIGF2
b2lkIHBvc3NpYmx5IHRyaWdnZXJpbmcKKyAgICBpZiAobV9wYXJzZXIpIHsKKyAgICAgICAgLy8g
V2UgaGF2ZSB0byBjbGVhciB0aGUgcGFyc2VyIHRvIGF2b2lkIHBvc3NpYmx5IHRyaWdnZXJpbmcK
ICAgICAgICAgLy8gdGhlIG9ubG9hZCBoYW5kbGVyIHdoZW4gY2xvc2luZyBhcyBhIHNpZGUgZWZm
ZWN0IG9mIGEgY2FuY2VsLXN0eWxlCiAgICAgICAgIC8vIGNoYW5nZSwgc3VjaCBhcyBvcGVuaW5n
IGEgbmV3IGRvY3VtZW50IG9yIGNsb3NpbmcgdGhlIHdpbmRvdyB3aGlsZQogICAgICAgICAvLyBz
dGlsbCBwYXJzaW5nCi0gICAgICAgIG1fdG9rZW5pemVyLmNsZWFyKCk7CisgICAgICAgIG1fcGFy
c2VyLmNsZWFyKCk7CiAgICAgICAgIGNsb3NlKCk7CiAgICAgfQogfQpAQCAtMTcwOCwxNSArMTcw
OCwxNSBAQCB2b2lkIERvY3VtZW50OjppbXBsaWNpdE9wZW4oKQogewogICAgIGNhbmNlbFBhcnNp
bmcoKTsKIAotICAgIG1fdG9rZW5pemVyLmNsZWFyKCk7CisgICAgbV9wYXJzZXIuY2xlYXIoKTsK
IAogICAgIHJlbW92ZUNoaWxkcmVuKCk7CiAKLSAgICBtX3Rva2VuaXplciA9IGNyZWF0ZVRva2Vu
aXplcigpOworICAgIG1fcGFyc2VyID0gY3JlYXRlUGFyc2VyKCk7CiAgICAgc2V0UGFyc2luZyh0
cnVlKTsKIAogICAgIGlmIChtX2ZyYW1lKQotICAgICAgICBtX3Rva2VuaXplci0+c2V0WFNTQXVk
aXRvcihtX2ZyYW1lLT5zY3JpcHQoKS0+eHNzQXVkaXRvcigpKTsKKyAgICAgICAgbV9wYXJzZXIt
PnNldFhTU0F1ZGl0b3IobV9mcmFtZS0+c2NyaXB0KCktPnhzc0F1ZGl0b3IoKSk7CiAKICAgICAv
LyBJZiB3ZSByZWxvYWQsIHRoZSBhbmltYXRpb24gY29udHJvbGxlciBzdGlja3MgYXJvdW5kIGFu
ZCBoYXMKICAgICAvLyBhIHN0YWxlIGFuaW1hdGlvbiB0aW1lLiBXZSBuZWVkIHRvIHVwZGF0ZSBp
dCBoZXJlLgpAQCAtMTc5NCwxOCArMTc5NCwxOCBAQCB2b2lkIERvY3VtZW50OjppbXBsaWNpdENs
b3NlKCkKICAgICB9CiAKICAgICBib29sIHdhc0xvY2F0aW9uQ2hhbmdlUGVuZGluZyA9IGZyYW1l
KCkgJiYgZnJhbWUoKS0+cmVkaXJlY3RTY2hlZHVsZXIoKS0+bG9jYXRpb25DaGFuZ2VQZW5kaW5n
KCk7Ci0gICAgYm9vbCBkb2xvYWQgPSAhcGFyc2luZygpICYmIG1fdG9rZW5pemVyICYmICFtX3By
b2Nlc3NpbmdMb2FkRXZlbnQgJiYgIXdhc0xvY2F0aW9uQ2hhbmdlUGVuZGluZzsKKyAgICBib29s
IGRvbG9hZCA9ICFwYXJzaW5nKCkgJiYgbV9wYXJzZXIgJiYgIW1fcHJvY2Vzc2luZ0xvYWRFdmVu
dCAmJiAhd2FzTG9jYXRpb25DaGFuZ2VQZW5kaW5nOwogICAgIAogICAgIGlmICghZG9sb2FkKQog
ICAgICAgICByZXR1cm47CiAKICAgICBtX3Byb2Nlc3NpbmdMb2FkRXZlbnQgPSB0cnVlOwogCi0g
ICAgbV93ZWxsRm9ybWVkID0gbV90b2tlbml6ZXIgJiYgbV90b2tlbml6ZXItPndlbGxGb3JtZWQo
KTsKKyAgICBtX3dlbGxGb3JtZWQgPSBtX3BhcnNlciAmJiBtX3BhcnNlci0+d2VsbEZvcm1lZCgp
OwogCi0gICAgLy8gV2UgaGF2ZSB0byBjbGVhciB0aGUgdG9rZW5pemVyLCBpbiBjYXNlIHNvbWVv
bmUgZG9jdW1lbnQud3JpdGUoKXMgZnJvbSB0aGUKKyAgICAvLyBXZSBoYXZlIHRvIGNsZWFyIHRo
ZSBwYXJzZXIsIGluIGNhc2Ugc29tZW9uZSBkb2N1bWVudC53cml0ZSgpcyBmcm9tIHRoZQogICAg
IC8vIG9uTG9hZCBldmVudCBoYW5kbGVyLCBhcyBpbiBSYWRhciAzMjA2NTI0LgotICAgIG1fdG9r
ZW5pemVyLmNsZWFyKCk7CisgICAgbV9wYXJzZXIuY2xlYXIoKTsKIAogICAgIC8vIFBhcnNlciBz
aG91bGQgaGF2ZSBwaWNrZWQgdXAgYWxsIHByZWxvYWRzIGJ5IG5vdwogICAgIG1fZG9jTG9hZGVy
LT5jbGVhclByZWxvYWRzKCk7CkBAIC0xOTUzLDIxICsxOTUzLDIxIEBAIHZvaWQgRG9jdW1lbnQ6
OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgdGV4dCwgRG9jdW1lbnQqIG93bmVyRG9jdW1l
bnQpCiAgICAgICAgIHByaW50ZigiQmVnaW5uaW5nIGEgZG9jdW1lbnQud3JpdGUgYXQgJWRcbiIs
IGVsYXBzZWRUaW1lKCkpOwogI2VuZGlmCiAKLSAgICBpZiAoIW1fdG9rZW5pemVyKQorICAgIGlm
ICghbV9wYXJzZXIpCiAgICAgICAgIG9wZW4ob3duZXJEb2N1bWVudCk7CiAKLSAgICBBU1NFUlQo
bV90b2tlbml6ZXIpOworICAgIEFTU0VSVChtX3BhcnNlcik7CiAgICAgYm9vbCB3YXNGb3JjZWRT
eW5jaHJvbm91cyA9IGZhbHNlOwotICAgIEhUTUxEb2N1bWVudFBhcnNlciogdG9rZW5pemVyID0g
bV90b2tlbml6ZXItPmFzSFRNTFRva2VuaXplcigpOwotICAgIGlmICh0b2tlbml6ZXIpIHsKLSAg
ICAgICAgd2FzRm9yY2VkU3luY2hyb25vdXMgPSB0b2tlbml6ZXItPmZvcmNlU3luY2hyb25vdXMo
KTsKLSAgICAgICAgdG9rZW5pemVyLT5zZXRGb3JjZVN5bmNocm9ub3VzKHRydWUpOworICAgIEhU
TUxEb2N1bWVudFBhcnNlciogcGFyc2VyID0gbV9wYXJzZXItPmFzSFRNTFRva2VuaXplcigpOwor
ICAgIGlmIChwYXJzZXIpIHsKKyAgICAgICAgd2FzRm9yY2VkU3luY2hyb25vdXMgPSBwYXJzZXIt
PmZvcmNlU3luY2hyb25vdXMoKTsKKyAgICAgICAgcGFyc2VyLT5zZXRGb3JjZVN5bmNocm9ub3Vz
KHRydWUpOwogICAgIH0KIAotICAgIG1fdG9rZW5pemVyLT53cml0ZSh0ZXh0LCBmYWxzZSk7Cisg
ICAgbV9wYXJzZXItPndyaXRlKHRleHQsIGZhbHNlKTsKIAotICAgIGlmIChtX3Rva2VuaXplciAm
JiB0b2tlbml6ZXIgJiYgbV90b2tlbml6ZXItPmFzSFRNTFRva2VuaXplcigpID09IHRva2VuaXpl
cikKLSAgICAgICAgdG9rZW5pemVyLT5zZXRGb3JjZVN5bmNocm9ub3VzKHdhc0ZvcmNlZFN5bmNo
cm9ub3VzKTsKKyAgICBpZiAobV9wYXJzZXIgJiYgcGFyc2VyICYmIG1fcGFyc2VyLT5hc0hUTUxU
b2tlbml6ZXIoKSA9PSBwYXJzZXIpCisgICAgICAgIHBhcnNlci0+c2V0Rm9yY2VTeW5jaHJvbm91
cyh3YXNGb3JjZWRTeW5jaHJvbm91cyk7CiAKICNpZmRlZiBJTlNUUlVNRU5UX0xBWU9VVF9TQ0hF
RFVMSU5HCiAgICAgaWYgKCFvd25lckVsZW1lbnQoKSkKQEAgLTE5OTMsMTMgKzE5OTMsMTMgQEAg
dm9pZCBEb2N1bWVudDo6ZmluaXNoUGFyc2luZygpCiAgICAgICAgIHByaW50ZigiUmVjZWl2ZWQg
YWxsIGRhdGEgYXQgJWRcbiIsIGVsYXBzZWRUaW1lKCkpOwogI2VuZGlmCiAgICAgCi0gICAgLy8g
TGV0IHRoZSB0b2tlbml6ZXIgZ28gdGhyb3VnaCBhcyBtdWNoIGRhdGEgYXMgaXQgY2FuLiAgVGhl
cmUgd2lsbCBiZSB0aHJlZSBwb3NzaWJsZSBvdXRjb21lcyBhZnRlcgorICAgIC8vIExldCB0aGUg
cGFyc2VyIGdvIHRocm91Z2ggYXMgbXVjaCBkYXRhIGFzIGl0IGNhbi4gIFRoZXJlIHdpbGwgYmUg
dGhyZWUgcG9zc2libGUgb3V0Y29tZXMgYWZ0ZXIKICAgICAvLyBmaW5pc2goKSBpcyBjYWxsZWQ6
CiAgICAgLy8gKDEpIEFsbCByZW1haW5pbmcgZGF0YSBpcyBwYXJzZWQsIGRvY3VtZW50IGlzbid0
IGxvYWRlZCB5ZXQKLSAgICAvLyAoMikgQWxsIHJlbWFpbmluZyBkYXRhIGlzIHBhcnNlZCwgZG9j
dW1lbnQgaXMgbG9hZGVkLCB0b2tlbml6ZXIgZ2V0cyBkZWxldGVkCisgICAgLy8gKDIpIEFsbCBy
ZW1haW5pbmcgZGF0YSBpcyBwYXJzZWQsIGRvY3VtZW50IGlzIGxvYWRlZCwgcGFyc2VyIGdldHMg
ZGVsZXRlZAogICAgIC8vICgzKSBEYXRhIGlzIHN0aWxsIHJlbWFpbmluZyB0byBiZSBwYXJzZWQu
Ci0gICAgaWYgKG1fdG9rZW5pemVyKQotICAgICAgICBtX3Rva2VuaXplci0+ZmluaXNoKCk7Cisg
ICAgaWYgKG1fcGFyc2VyKQorICAgICAgICBtX3BhcnNlci0+ZmluaXNoKCk7CiB9CiAKIGNvbnN0
IEtVUkwmIERvY3VtZW50Ojp2aXJ0dWFsVVJMKCkgY29uc3QKQEAgLTI1NjQsOCArMjU2NCw4IEBA
IHZvaWQgRG9jdW1lbnQ6OnJlbW92ZVBlbmRpbmdTaGVldCgpCiAKICAgICB1cGRhdGVTdHlsZVNl
bGVjdG9yKCk7CiAgICAgCi0gICAgaWYgKCFtX3BlbmRpbmdTdHlsZXNoZWV0cyAmJiBtX3Rva2Vu
aXplcikKLSAgICAgICAgbV90b2tlbml6ZXItPmV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclN0eWxl
c2hlZXRzKCk7CisgICAgaWYgKCFtX3BlbmRpbmdTdHlsZXNoZWV0cyAmJiBtX3BhcnNlcikKKyAg
ICAgICAgbV9wYXJzZXItPmV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKCk7CiAK
ICAgICBpZiAoIW1fcGVuZGluZ1N0eWxlc2hlZXRzICYmIG1fZ290b0FuY2hvck5lZWRlZEFmdGVy
U3R5bGVzaGVldHNMb2FkICYmIHZpZXcoKSkKICAgICAgICAgdmlldygpLT5zY3JvbGxUb0ZyYWdt
ZW50KG1fZnJhbWUtPmxvYWRlcigpLT51cmwoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBmOWZiMDk3NjZlODM1ZmRj
ZWJlN2E3NWRlM2YzMTNlNjQ1N2Q2MmEwLi4xMmMxMzVjOWQ2OGI3YTg0OWVmYzMwMjFjMjVlOTA0
NzQ0MmJmZjA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTUzNSw4ICs1MzUsOCBAQCBwdWJsaWM6CiAgICAgQ1NTU3R5
bGVTaGVldCogZWxlbWVudFNoZWV0KCk7CiAgICAgQ1NTU3R5bGVTaGVldCogbWFwcGVkRWxlbWVu
dFNoZWV0KCk7CiAgICAgCi0gICAgdmlydHVhbCBEb2N1bWVudFBhcnNlciogY3JlYXRlVG9rZW5p
emVyKCk7Ci0gICAgRG9jdW1lbnRQYXJzZXIqIHRva2VuaXplcigpIHsgcmV0dXJuIG1fdG9rZW5p
emVyLmdldCgpOyB9CisgICAgdmlydHVhbCBEb2N1bWVudFBhcnNlciogY3JlYXRlUGFyc2VyKCk7
CisgICAgRG9jdW1lbnRQYXJzZXIqIHBhcnNlcigpIHsgcmV0dXJuIG1fcGFyc2VyLmdldCgpOyB9
CiAgICAgCiAgICAgYm9vbCBwcmludGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbnRpbmc7IH0K
ICAgICB2b2lkIHNldFByaW50aW5nKGJvb2wgcCkgeyBtX3ByaW50aW5nID0gcDsgfQpAQCAtMTAz
MCw3ICsxMDMwLDcgQEAgcHJpdmF0ZToKIAogICAgIEZyYW1lKiBtX2ZyYW1lOwogICAgIE93blB0
cjxEb2NMb2FkZXI+IG1fZG9jTG9hZGVyOwotICAgIE93blB0cjxEb2N1bWVudFBhcnNlcj4gbV90
b2tlbml6ZXI7CisgICAgT3duUHRyPERvY3VtZW50UGFyc2VyPiBtX3BhcnNlcjsKICAgICBib29s
IG1fd2VsbEZvcm1lZDsKIAogICAgIC8vIERvY3VtZW50IFVSTHMuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2RvbS9Eb2N1bWVudFBhcnNlci5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRQYXJzZXIuaApp
bmRleCBlOGJlYmY5OWI4MDIxNDBjYWE2MTM2ZDQwZjk5Mjk5MjAwNmFkYTBjLi40ZTE4YzY3OTM2
MDMxYjViNzllYTUxMzY4NGRkZjg0M2Q2ZTU1YmVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9E
b2N1bWVudFBhcnNlci5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmgKQEAgLTcy
LDggKzcyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB7CiAgICAgICAgIH0KIAot
ICAgICAgICAvLyBUaGUgdG9rZW5pemVyIGhhcyBidWZmZXJzLCBzbyBwYXJzaW5nIG1heSBjb250
aW51ZSBldmVuIGFmdGVyCi0gICAgICAgIC8vIGl0IHN0b3BzIHJlY2VpdmluZyBkYXRhLiBXZSB1
c2UgbV9wYXJzZXJTdG9wcGVkIHRvIHN0b3AgdGhlIHRva2VuaXplcgorICAgICAgICAvLyBUaGUg
cGFyc2VyIGhhcyBidWZmZXJzLCBzbyBwYXJzaW5nIG1heSBjb250aW51ZSBldmVuIGFmdGVyCisg
ICAgICAgIC8vIGl0IHN0b3BzIHJlY2VpdmluZyBkYXRhLiBXZSB1c2UgbV9wYXJzZXJTdG9wcGVk
IHRvIHN0b3AgdGhlIHBhcnNlcgogICAgICAgICAvLyBldmVuIHdoZW4gaXQgaGFzIGJ1ZmZlcmVk
IGRhdGEuCiAgICAgICAgIGJvb2wgbV9wYXJzZXJTdG9wcGVkOwogICAgICAgICBib29sIG1faW5W
aWV3U291cmNlTW9kZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRz
LmNwcCBiL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcAppbmRleCAzMzY0Njk3NTNi
MWQzNzQ3YjE2NjRhZjg5Nzc0YWQzMzQ2Y2RhYjBiLi4yM2QwMjk3ZDk4Nzc5NDAxMTZmOGNhNjVl
MzhmNWZjZDI1OTg3OTFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50
cy5jcHAKKysrIGIvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCkBAIC0xMDUsNyAr
MTA1LDcgQEAgc3RhdGljIE1lc3NhZ2VMZXZlbCB2aWV3cG9ydEVycm9yTWVzc2FnZUxldmVsKFZp
ZXdwb3J0RXJyb3JDb2RlIGVycm9yQ29kZSkKIAogdm9pZCByZXBvcnRWaWV3cG9ydFdhcm5pbmco
RG9jdW1lbnQqIGRvY3VtZW50LCBWaWV3cG9ydEVycm9yQ29kZSBlcnJvckNvZGUsIGNvbnN0IFN0
cmluZyYgcmVwbGFjZW1lbnQpCiB7Ci0gICAgRG9jdW1lbnRQYXJzZXIqIHRva2VuaXplciA9IGRv
Y3VtZW50LT50b2tlbml6ZXIoKTsKKyAgICBEb2N1bWVudFBhcnNlciogcGFyc2VyID0gZG9jdW1l
bnQtPnBhcnNlcigpOwogCiAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7CiAg
ICAgaWYgKCFmcmFtZSkKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIHJlcG9ydFZpZXdwb3J0V2Fy
bmluZyhEb2N1bWVudCogZG9jdW1lbnQsIFZpZXdwb3J0RXJyb3JDb2RlIGVycm9yQ29kZSwgY29u
cwogICAgIFN0cmluZyBtZXNzYWdlID0gdmlld3BvcnRFcnJvck1lc3NhZ2VUZW1wbGF0ZShlcnJv
ckNvZGUpOwogICAgIG1lc3NhZ2UucmVwbGFjZSgiJXJlcGxhY2VtZW50IiwgcmVwbGFjZW1lbnQp
OwogCi0gICAgZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSFRNTE1l
c3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCB2aWV3cG9ydEVycm9yTWVzc2FnZUxldmVsKGVy
cm9yQ29kZSksIG1lc3NhZ2UsIHRva2VuaXplciA/IHRva2VuaXplci0+bGluZU51bWJlcigpICsg
MSA6IDAsIGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKSk7CisgICAgZnJhbWUtPmRvbVdpbmRvdygp
LT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCB2aWV3cG9ydEVycm9yTWVzc2FnZUxldmVsKGVycm9yQ29kZSksIG1lc3NhZ2UsIHBhcnNlciA/
IHBhcnNlci0+bGluZU51bWJlcigpICsgMSA6IDAsIGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1hN
TERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNl
ckxpYnhtbDIuY3BwCmluZGV4IGZmOTg2MWFjOTMxOWY3MTU4YmRmOGFhNzZjN2RhYTVhMmQxYTlk
MGUuLjJhMWJhYzYwOTNkN2VkYWM5OGQxZWViMzFlOGVlZjc2ODhmNzVmYjQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvV2ViQ29yZS9k
b20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtMTgwLDEwICsxODAsMTAgQEAgcHVi
bGljOgogICAgICAgICBtX2NhbGxiYWNrcy5hcHBlbmQoY2FsbGJhY2spOwogICAgIH0KIAotICAg
IHZvaWQgY2FsbEFuZFJlbW92ZUZpcnN0Q2FsbGJhY2soWE1MRG9jdW1lbnRQYXJzZXIqIHRva2Vu
aXplcikKKyAgICB2b2lkIGNhbGxBbmRSZW1vdmVGaXJzdENhbGxiYWNrKFhNTERvY3VtZW50UGFy
c2VyKiBwYXJzZXIpCiAgICAgewogICAgICAgICBPd25QdHI8UGVuZGluZ0NhbGxiYWNrPiBjYWxs
YmFjayhtX2NhbGxiYWNrcy50YWtlRmlyc3QoKSk7Ci0gICAgICAgIGNhbGxiYWNrLT5jYWxsKHRv
a2VuaXplcik7CisgICAgICAgIGNhbGxiYWNrLT5jYWxsKHBhcnNlcik7CiAgICAgfQogCiAgICAg
Ym9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFja3MuaXNFbXB0eSgpOyB9CkBA
IC0xOTEsNyArMTkxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdHJ1Y3QgUGVuZGluZ0Nh
bGxiYWNrIHsKICAgICAgICAgdmlydHVhbCB+UGVuZGluZ0NhbGxiYWNrKCkgeyB9Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiB0b2tlbml6ZXIpID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikgPSAwOwog
ICAgIH07CiAKICAgICBzdHJ1Y3QgUGVuZGluZ1N0YXJ0RWxlbWVudE5TQ2FsbGJhY2sgOiBwdWJs
aWMgUGVuZGluZ0NhbGxiYWNrIHsKQEAgLTIwOSw5ICsyMDksOSBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgeG1sRnJlZShhdHRyaWJ1dGVzKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwg
dm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiB0b2tlbml6ZXIpCisgICAgICAgIHZpcnR1YWwg
dm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHRva2VuaXplci0+c3RhcnRFbGVtZW50TnMoeG1sTG9jYWxOYW1lLCB4bWxQcmVmaXgsIHht
bFVSSSwKKyAgICAgICAgICAgIHBhcnNlci0+c3RhcnRFbGVtZW50TnMoeG1sTG9jYWxOYW1lLCB4
bWxQcmVmaXgsIHhtbFVSSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bmJfbmFtZXNwYWNlcywgY29uc3RfY2FzdDxjb25zdCB4bWxDaGFyKio+KG5hbWVzcGFjZXMpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYl9hdHRyaWJ1dGVzLCBuYl9k
ZWZhdWx0ZWQsIGNvbnN0X2Nhc3Q8Y29uc3QgeG1sQ2hhcioqPihhdHRyaWJ1dGVzKSk7CiAgICAg
ICAgIH0KQEAgLTIyNyw5ICsyMjcsOSBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICBzdHJ1Y3Qg
UGVuZGluZ0VuZEVsZW1lbnROU0NhbGxiYWNrIDogcHVibGljIFBlbmRpbmdDYWxsYmFjayB7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiB0b2tlbml6ZXIpCisg
ICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHRva2VuaXplci0+ZW5kRWxlbWVudE5zKCk7CisgICAgICAgICAg
ICBwYXJzZXItPmVuZEVsZW1lbnROcygpOwogICAgICAgICB9CiAgICAgfTsKIApAQCAtMjM5LDkg
KzIzOSw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB4bWxGcmVlKHMpOwogICAgICAgICB9CiAK
LSAgICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHRva2VuaXplcikK
KyAgICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKICAg
ICAgICAgewotICAgICAgICAgICAgdG9rZW5pemVyLT5jaGFyYWN0ZXJzKHMsIGxlbik7CisgICAg
ICAgICAgICBwYXJzZXItPmNoYXJhY3RlcnMocywgbGVuKTsKICAgICAgICAgfQogCiAgICAgICAg
IHhtbENoYXIqIHM7CkBAIC0yNTUsOSArMjU1LDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHht
bEZyZWUoZGF0YSk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbChYTUxE
b2N1bWVudFBhcnNlciogdG9rZW5pemVyKQorICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbChYTUxE
b2N1bWVudFBhcnNlciogcGFyc2VyKQogICAgICAgICB7Ci0gICAgICAgICAgICB0b2tlbml6ZXIt
PnByb2Nlc3NpbmdJbnN0cnVjdGlvbih0YXJnZXQsIGRhdGEpOworICAgICAgICAgICAgcGFyc2Vy
LT5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb24odGFyZ2V0LCBkYXRhKTsKICAgICAgICAgfQogCiAgICAg
ICAgIHhtbENoYXIqIHRhcmdldDsKQEAgLTI3MCw5ICsyNzAsOSBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgeG1sRnJlZShzKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjYWxs
KFhNTERvY3VtZW50UGFyc2VyKiB0b2tlbml6ZXIpCisgICAgICAgIHZpcnR1YWwgdm9pZCBjYWxs
KFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHRva2Vu
aXplci0+Y2RhdGFCbG9jayhzLCBsZW4pOworICAgICAgICAgICAgcGFyc2VyLT5jZGF0YUJsb2Nr
KHMsIGxlbik7CiAgICAgICAgIH0KIAogICAgICAgICB4bWxDaGFyKiBzOwpAQCAtMjg1LDkgKzI4
NSw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB4bWxGcmVlKHMpOwogICAgICAgICB9CiAKLSAg
ICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHRva2VuaXplcikKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKICAgICAg
ICAgewotICAgICAgICAgICAgdG9rZW5pemVyLT5jb21tZW50KHMpOworICAgICAgICAgICAgcGFy
c2VyLT5jb21tZW50KHMpOwogICAgICAgICB9CiAKICAgICAgICAgeG1sQ2hhciogczsKQEAgLTMw
MSw5ICszMDEsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgeG1sRnJlZShzeXN0ZW1JRCk7CiAg
ICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbChYTUxEb2N1bWVudFBhcnNlciog
dG9rZW5pemVyKQorICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbChYTUxEb2N1bWVudFBhcnNlciog
cGFyc2VyKQogICAgICAgICB7Ci0gICAgICAgICAgICB0b2tlbml6ZXItPmludGVybmFsU3Vic2V0
KG5hbWUsIGV4dGVybmFsSUQsIHN5c3RlbUlEKTsKKyAgICAgICAgICAgIHBhcnNlci0+aW50ZXJu
YWxTdWJzZXQobmFtZSwgZXh0ZXJuYWxJRCwgc3lzdGVtSUQpOwogICAgICAgICB9CiAKICAgICAg
ICAgeG1sQ2hhciogbmFtZTsKQEAgLTMxNyw5ICszMTcsOSBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgeG1sRnJlZShtZXNzYWdlKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBj
YWxsKFhNTERvY3VtZW50UGFyc2VyKiB0b2tlbml6ZXIpCisgICAgICAgIHZpcnR1YWwgdm9pZCBj
YWxsKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHRv
a2VuaXplci0+aGFuZGxlRXJyb3IodHlwZSwgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obWVzc2Fn
ZSksIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcik7CisgICAgICAgICAgICBwYXJzZXItPmhhbmRs
ZUVycm9yKHR5cGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1lc3NhZ2UpLCBsaW5lTnVtYmVy
LCBjb2x1bW5OdW1iZXIpOwogICAgICAgICB9CiAKICAgICAgICAgWE1MRG9jdW1lbnRQYXJzZXI6
OkVycm9yVHlwZSB0eXBlOwpAQCAtMTA2MSw3ICsxMDYxLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6aW50ZXJuYWxTdWJzZXQoY29uc3QgeG1sQ2hhciogbmFtZSwgY29uc3QgeG1sQ2hhciog
ZXh0ZXIKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgWE1MRG9jdW1lbnRQYXJzZXIqIGdldFRv
a2VuaXplcih2b2lkKiBjbG9zdXJlKQorc3RhdGljIGlubGluZSBYTUxEb2N1bWVudFBhcnNlciog
Z2V0UGFyc2VyKHZvaWQqIGNsb3N1cmUpCiB7CiAgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0g
c3RhdGljX2Nhc3Q8eG1sUGFyc2VyQ3R4dFB0cj4oY2xvc3VyZSk7CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFhNTERvY3VtZW50UGFyc2VyKj4oY3R4dC0+X3ByaXZhdGUpOwpAQCAtMTA4Niw3ICsx
MDg2LDcgQEAgc3RhdGljIHZvaWQgc3RhcnRFbGVtZW50TnNIYW5kbGVyKHZvaWQqIGNsb3N1cmUs
IGNvbnN0IHhtbENoYXIqIGxvY2FsbmFtZSwgY29uc3QKICAgICBpZiAoaGFja0Fyb3VuZExpYlhN
TEVudGl0eUJ1ZyhjbG9zdXJlKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZ2V0VG9rZW5pemVy
KGNsb3N1cmUpLT5zdGFydEVsZW1lbnROcyhsb2NhbG5hbWUsIHByZWZpeCwgdXJpLCBuYl9uYW1l
c3BhY2VzLCBuYW1lc3BhY2VzLCBuYl9hdHRyaWJ1dGVzLCBuYl9kZWZhdWx0ZWQsIGxpYnhtbEF0
dHJpYnV0ZXMpOworICAgIGdldFBhcnNlcihjbG9zdXJlKS0+c3RhcnRFbGVtZW50TnMobG9jYWxu
YW1lLCBwcmVmaXgsIHVyaSwgbmJfbmFtZXNwYWNlcywgbmFtZXNwYWNlcywgbmJfYXR0cmlidXRl
cywgbmJfZGVmYXVsdGVkLCBsaWJ4bWxBdHRyaWJ1dGVzKTsKIH0KIAogc3RhdGljIHZvaWQgZW5k
RWxlbWVudE5zSGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiwgY29uc3QgeG1s
Q2hhciosIGNvbnN0IHhtbENoYXIqKQpAQCAtMTA5NCw3ICsxMDk0LDcgQEAgc3RhdGljIHZvaWQg
ZW5kRWxlbWVudE5zSGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiwgY29uc3Qg
eG1sQ2hhciosIGMKICAgICBpZiAoaGFja0Fyb3VuZExpYlhNTEVudGl0eUJ1ZyhjbG9zdXJlKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUpLT5lbmRFbGVtZW50
TnMoKTsKKyAgICBnZXRQYXJzZXIoY2xvc3VyZSktPmVuZEVsZW1lbnROcygpOwogfQogCiBzdGF0
aWMgdm9pZCBjaGFyYWN0ZXJzSGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiBz
LCBpbnQgbGVuKQpAQCAtMTEwMiw3ICsxMTAyLDcgQEAgc3RhdGljIHZvaWQgY2hhcmFjdGVyc0hh
bmRsZXIodm9pZCogY2xvc3VyZSwgY29uc3QgeG1sQ2hhciogcywgaW50IGxlbikKICAgICBpZiAo
aGFja0Fyb3VuZExpYlhNTEVudGl0eUJ1ZyhjbG9zdXJlKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUpLT5jaGFyYWN0ZXJzKHMsIGxlbik7CisgICAgZ2V0UGFy
c2VyKGNsb3N1cmUpLT5jaGFyYWN0ZXJzKHMsIGxlbik7CiB9CiAKIHN0YXRpYyB2b2lkIHByb2Nl
c3NpbmdJbnN0cnVjdGlvbkhhbmRsZXIodm9pZCogY2xvc3VyZSwgY29uc3QgeG1sQ2hhciogdGFy
Z2V0LCBjb25zdCB4bWxDaGFyKiBkYXRhKQpAQCAtMTExMCw3ICsxMTEwLDcgQEAgc3RhdGljIHZv
aWQgcHJvY2Vzc2luZ0luc3RydWN0aW9uSGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxD
aGFyKiB0YXJnZXQsIGMKICAgICBpZiAoaGFja0Fyb3VuZExpYlhNTEVudGl0eUJ1ZyhjbG9zdXJl
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUpLT5wcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24odGFyZ2V0LCBkYXRhKTsKKyAgICBnZXRQYXJzZXIoY2xvc3VyZSktPnBy
b2Nlc3NpbmdJbnN0cnVjdGlvbih0YXJnZXQsIGRhdGEpOwogfQogCiBzdGF0aWMgdm9pZCBjZGF0
YUJsb2NrSGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiBzLCBpbnQgbGVuKQpA
QCAtMTExOCw3ICsxMTE4LDcgQEAgc3RhdGljIHZvaWQgY2RhdGFCbG9ja0hhbmRsZXIodm9pZCog
Y2xvc3VyZSwgY29uc3QgeG1sQ2hhciogcywgaW50IGxlbikKICAgICBpZiAoaGFja0Fyb3VuZExp
YlhNTEVudGl0eUJ1ZyhjbG9zdXJlKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZ2V0VG9rZW5p
emVyKGNsb3N1cmUpLT5jZGF0YUJsb2NrKHMsIGxlbik7CisgICAgZ2V0UGFyc2VyKGNsb3N1cmUp
LT5jZGF0YUJsb2NrKHMsIGxlbik7CiB9CiAKIHN0YXRpYyB2b2lkIGNvbW1lbnRIYW5kbGVyKHZv
aWQqIGNsb3N1cmUsIGNvbnN0IHhtbENoYXIqIGNvbW1lbnQpCkBAIC0xMTI2LDcgKzExMjYsNyBA
QCBzdGF0aWMgdm9pZCBjb21tZW50SGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFy
KiBjb21tZW50KQogICAgIGlmIChoYWNrQXJvdW5kTGliWE1MRW50aXR5QnVnKGNsb3N1cmUpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBnZXRUb2tlbml6ZXIoY2xvc3VyZSktPmNvbW1lbnQoY29t
bWVudCk7CisgICAgZ2V0UGFyc2VyKGNsb3N1cmUpLT5jb21tZW50KGNvbW1lbnQpOwogfQogCiBX
VEZfQVRUUklCVVRFX1BSSU5URigyLCAzKQpAQCAtMTEzNCw3ICsxMTM0LDcgQEAgc3RhdGljIHZv
aWQgd2FybmluZ0hhbmRsZXIodm9pZCogY2xvc3VyZSwgY29uc3QgY2hhciogbWVzc2FnZSwgLi4u
KQogewogICAgIHZhX2xpc3QgYXJnczsKICAgICB2YV9zdGFydChhcmdzLCBtZXNzYWdlKTsKLSAg
ICBnZXRUb2tlbml6ZXIoY2xvc3VyZSktPmVycm9yKFhNTERvY3VtZW50UGFyc2VyOjp3YXJuaW5n
LCBtZXNzYWdlLCBhcmdzKTsKKyAgICBnZXRQYXJzZXIoY2xvc3VyZSktPmVycm9yKFhNTERvY3Vt
ZW50UGFyc2VyOjp3YXJuaW5nLCBtZXNzYWdlLCBhcmdzKTsKICAgICB2YV9lbmQoYXJncyk7CiB9
CiAKQEAgLTExNDMsNyArMTE0Myw3IEBAIHN0YXRpYyB2b2lkIGZhdGFsRXJyb3JIYW5kbGVyKHZv
aWQqIGNsb3N1cmUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIC4uLikKIHsKICAgICB2YV9saXN0IGFy
Z3M7CiAgICAgdmFfc3RhcnQoYXJncywgbWVzc2FnZSk7Ci0gICAgZ2V0VG9rZW5pemVyKGNsb3N1
cmUpLT5lcnJvcihYTUxEb2N1bWVudFBhcnNlcjo6ZmF0YWwsIG1lc3NhZ2UsIGFyZ3MpOworICAg
IGdldFBhcnNlcihjbG9zdXJlKS0+ZXJyb3IoWE1MRG9jdW1lbnRQYXJzZXI6OmZhdGFsLCBtZXNz
YWdlLCBhcmdzKTsKICAgICB2YV9lbmQoYXJncyk7CiB9CiAKQEAgLTExNTIsNyArMTE1Miw3IEBA
IHN0YXRpYyB2b2lkIG5vcm1hbEVycm9ySGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCBjaGFy
KiBtZXNzYWdlLCAuLi4pCiB7CiAgICAgdmFfbGlzdCBhcmdzOwogICAgIHZhX3N0YXJ0KGFyZ3Ms
IG1lc3NhZ2UpOwotICAgIGdldFRva2VuaXplcihjbG9zdXJlKS0+ZXJyb3IoWE1MRG9jdW1lbnRQ
YXJzZXI6Om5vbkZhdGFsLCBtZXNzYWdlLCBhcmdzKTsKKyAgICBnZXRQYXJzZXIoY2xvc3VyZSkt
PmVycm9yKFhNTERvY3VtZW50UGFyc2VyOjpub25GYXRhbCwgbWVzc2FnZSwgYXJncyk7CiAgICAg
dmFfZW5kKGFyZ3MpOwogfQogCkBAIC0xMTk5LDEyICsxMTk5LDEyIEBAIHN0YXRpYyB4bWxFbnRp
dHlQdHIgZ2V0RW50aXR5SGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiBuYW1l
KQogICAgIH0KIAogICAgIGVudCA9IHhtbEdldERvY0VudGl0eShjdHh0LT5teURvYywgbmFtZSk7
Ci0gICAgaWYgKCFlbnQgJiYgKGdldFRva2VuaXplcihjbG9zdXJlKS0+aXNYSFRNTERvY3VtZW50
KCkKKyAgICBpZiAoIWVudCAmJiAoZ2V0UGFyc2VyKGNsb3N1cmUpLT5pc1hIVE1MRG9jdW1lbnQo
KQogI2lmIEVOQUJMRShYSFRNTE1QKQotICAgICAgICAgICAgICAgICB8fCBnZXRUb2tlbml6ZXIo
Y2xvc3VyZSktPmlzWEhUTUxNUERvY3VtZW50KCkKKyAgICAgICAgICAgICAgICAgfHwgZ2V0UGFy
c2VyKGNsb3N1cmUpLT5pc1hIVE1MTVBEb2N1bWVudCgpCiAjZW5kaWYKICNpZiBFTkFCTEUoV01M
KQotICAgICAgICAgICAgICAgICB8fCBnZXRUb2tlbml6ZXIoY2xvc3VyZSktPmlzV01MRG9jdW1l
bnQoKQorICAgICAgICAgICAgICAgICB8fCBnZXRQYXJzZXIoY2xvc3VyZSktPmlzV01MRG9jdW1l
bnQoKQogI2VuZGlmCiAgICAgICAgKSkgewogICAgICAgICBlbnQgPSBnZXRYSFRNTEVudGl0eShu
YW1lKTsKQEAgLTEyMTgsMTkgKzEyMTgsMTkgQEAgc3RhdGljIHhtbEVudGl0eVB0ciBnZXRFbnRp
dHlIYW5kbGVyKHZvaWQqIGNsb3N1cmUsIGNvbnN0IHhtbENoYXIqIG5hbWUpCiBzdGF0aWMgdm9p
ZCBzdGFydERvY3VtZW50SGFuZGxlcih2b2lkKiBjbG9zdXJlKQogewogICAgIHhtbFBhcnNlckN0
eHQqIGN0eHQgPSBzdGF0aWNfY2FzdDx4bWxQYXJzZXJDdHh0Kj4oY2xvc3VyZSk7Ci0gICAgZ2V0
VG9rZW5pemVyKGNsb3N1cmUpLT5zdGFydERvY3VtZW50KGN0eHQtPnZlcnNpb24sIGN0eHQtPmVu
Y29kaW5nLCBjdHh0LT5zdGFuZGFsb25lKTsKKyAgICBnZXRQYXJzZXIoY2xvc3VyZSktPnN0YXJ0
RG9jdW1lbnQoY3R4dC0+dmVyc2lvbiwgY3R4dC0+ZW5jb2RpbmcsIGN0eHQtPnN0YW5kYWxvbmUp
OwogICAgIHhtbFNBWDJTdGFydERvY3VtZW50KGNsb3N1cmUpOwogfQogCiBzdGF0aWMgdm9pZCBl
bmREb2N1bWVudEhhbmRsZXIodm9pZCogY2xvc3VyZSkKIHsKLSAgICBnZXRUb2tlbml6ZXIoY2xv
c3VyZSktPmVuZERvY3VtZW50KCk7CisgICAgZ2V0UGFyc2VyKGNsb3N1cmUpLT5lbmREb2N1bWVu
dCgpOwogICAgIHhtbFNBWDJFbmREb2N1bWVudChjbG9zdXJlKTsKIH0KIAogc3RhdGljIHZvaWQg
aW50ZXJuYWxTdWJzZXRIYW5kbGVyKHZvaWQqIGNsb3N1cmUsIGNvbnN0IHhtbENoYXIqIG5hbWUs
IGNvbnN0IHhtbENoYXIqIGV4dGVybmFsSUQsIGNvbnN0IHhtbENoYXIqIHN5c3RlbUlEKQogewot
ICAgIGdldFRva2VuaXplcihjbG9zdXJlKS0+aW50ZXJuYWxTdWJzZXQobmFtZSwgZXh0ZXJuYWxJ
RCwgc3lzdGVtSUQpOworICAgIGdldFBhcnNlcihjbG9zdXJlKS0+aW50ZXJuYWxTdWJzZXQobmFt
ZSwgZXh0ZXJuYWxJRCwgc3lzdGVtSUQpOwogICAgIHhtbFNBWDJJbnRlcm5hbFN1YnNldChjbG9z
dXJlLCBuYW1lLCBleHRlcm5hbElELCBzeXN0ZW1JRCk7CiB9CiAKQEAgLTEyNDYsNyArMTI0Niw3
IEBAIHN0YXRpYyB2b2lkIGV4dGVybmFsU3Vic2V0SGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25z
dCB4bWxDaGFyKiwgY29uc3QgeG1sQ2hhcioKICAgICAgICAgfHwgKGV4dElkID09ICItLy9XM0Mv
L0RURCBYSFRNTCAxLjEgcGx1cyBNYXRoTUwgMi4wIHBsdXMgU1ZHIDEuMS8vRU4iKQogICAgICAg
ICB8fCAoZXh0SWQgPT0gIi0vL1dBUEZPUlVNLy9EVEQgWEhUTUwgTW9iaWxlIDEuMC8vRU4iKQog
ICAgICAgICkKLSAgICAgICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUpLT5zZXRJc1hIVE1MRG9jdW1l
bnQodHJ1ZSk7IC8vIGNvbnRyb2xzIGlmIHdlIHJlcGxhY2UgZW50aXRpZXMgb3Igbm90LgorICAg
ICAgICBnZXRQYXJzZXIoY2xvc3VyZSktPnNldElzWEhUTUxEb2N1bWVudCh0cnVlKTsgLy8gY29u
dHJvbHMgaWYgd2UgcmVwbGFjZSBlbnRpdGllcyBvciBub3QuCiB9CiAKIHN0YXRpYyB2b2lkIGln
bm9yYWJsZVdoaXRlc3BhY2VIYW5kbGVyKHZvaWQqLCBjb25zdCB4bWxDaGFyKiwgaW50KQpAQCAt
MTM4OCwyMiArMTM4OCwyMiBAQCBib29sIHBhcnNlWE1MRG9jdW1lbnRGcmFnbWVudChjb25zdCBT
dHJpbmcmIGNodW5rLCBEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRQogICAgIGlmICghY2h1
bmsubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgWE1MRG9jdW1lbnRQYXJz
ZXIgdG9rZW5pemVyKGZyYWdtZW50LCBwYXJlbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pOworICAg
IFhNTERvY3VtZW50UGFyc2VyIHBhcnNlcihmcmFnbWVudCwgcGFyZW50LCBzY3JpcHRpbmdQZXJt
aXNzaW9uKTsKIAogICAgIENTdHJpbmcgY2h1bmtBc1V0ZjggPSBjaHVuay51dGY4KCk7Ci0gICAg
dG9rZW5pemVyLmluaXRpYWxpemVQYXJzZXJDb250ZXh0KGNodW5rQXNVdGY4LmRhdGEoKSk7Cisg
ICAgcGFyc2VyLmluaXRpYWxpemVQYXJzZXJDb250ZXh0KGNodW5rQXNVdGY4LmRhdGEoKSk7CiAK
LSAgICB4bWxQYXJzZUNvbnRlbnQodG9rZW5pemVyLmNvbnRleHQoKSk7CisgICAgeG1sUGFyc2VD
b250ZW50KHBhcnNlci5jb250ZXh0KCkpOwogCi0gICAgdG9rZW5pemVyLmVuZERvY3VtZW50KCk7
CisgICAgcGFyc2VyLmVuZERvY3VtZW50KCk7CiAKICAgICAvLyBDaGVjayBpZiBhbGwgdGhlIGNo
dW5rIGhhcyBiZWVuIHByb2Nlc3NlZC4KLSAgICBsb25nIGJ5dGVzUHJvY2Vzc2VkID0geG1sQnl0
ZUNvbnN1bWVkKHRva2VuaXplci5jb250ZXh0KCkpOworICAgIGxvbmcgYnl0ZXNQcm9jZXNzZWQg
PSB4bWxCeXRlQ29uc3VtZWQocGFyc2VyLmNvbnRleHQoKSk7CiAgICAgaWYgKGJ5dGVzUHJvY2Vz
c2VkID09IC0xIHx8ICgodW5zaWduZWQgbG9uZylieXRlc1Byb2Nlc3NlZCkgIT0gY2h1bmtBc1V0
ZjgubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIE5vIGVycm9yIGlm
IHRoZSBjaHVuayBpcyB3ZWxsIGZvcm1lZCBvciBpdCBpcyBub3QgYnV0IHdlIGhhdmUgbm8gZXJy
b3IuCi0gICAgcmV0dXJuIHRva2VuaXplci5jb250ZXh0KCktPndlbGxGb3JtZWQgfHwgeG1sQ3R4
dEdldExhc3RFcnJvcih0b2tlbml6ZXIuY29udGV4dCgpKSA9PSAwOworICAgIHJldHVybiBwYXJz
ZXIuY29udGV4dCgpLT53ZWxsRm9ybWVkIHx8IHhtbEN0eHRHZXRMYXN0RXJyb3IocGFyc2VyLmNv
bnRleHQoKSkgPT0gMDsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwIGIvV2ViQ29y
ZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAKaW5kZXggZjA3YmM1ZTEyMzc2MDcwZGEzNWJh
NzI1ZmE1ZWRhZjVlZDFjZjA3MS4uODlmNTQyZjZiYTc4NTAxMDdkOTkyNDNlYjA4ODYwYWJiZjc3
MDYxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAKKysr
IGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAKQEAgLTI2MiwxMyArMjYyLDEz
IEBAIGJvb2wgcGFyc2VYTUxEb2N1bWVudEZyYWdtZW50KGNvbnN0IFN0cmluZyYgY2h1bmssIERv
Y3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBFCiAgICAgaWYgKCFjaHVuay5sZW5ndGgoKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBYTUxEb2N1bWVudFBhcnNlciB0b2tlbml6ZXIoZnJh
Z21lbnQsIHBhcmVudCwgc2NyaXB0aW5nUGVybWlzc2lvbik7CisgICAgWE1MRG9jdW1lbnRQYXJz
ZXIgcGFyc2VyKGZyYWdtZW50LCBwYXJlbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pOwogCi0gICAg
dG9rZW5pemVyLndyaXRlKFN0cmluZygiPHF4bWxzdHJlYW1kdW1teWVsZW1lbnQ+IiksIGZhbHNl
KTsKLSAgICB0b2tlbml6ZXIud3JpdGUoY2h1bmssIGZhbHNlKTsKLSAgICB0b2tlbml6ZXIud3Jp
dGUoU3RyaW5nKCI8L3F4bWxzdHJlYW1kdW1teWVsZW1lbnQ+IiksIGZhbHNlKTsKLSAgICB0b2tl
bml6ZXIuZmluaXNoKCk7Ci0gICAgcmV0dXJuICF0b2tlbml6ZXIuaGFzRXJyb3IoKTsKKyAgICBw
YXJzZXIud3JpdGUoU3RyaW5nKCI8cXhtbHN0cmVhbWR1bW15ZWxlbWVudD4iKSwgZmFsc2UpOwor
ICAgIHBhcnNlci53cml0ZShjaHVuaywgZmFsc2UpOworICAgIHBhcnNlci53cml0ZShTdHJpbmco
IjwvcXhtbHN0cmVhbWR1bW15ZWxlbWVudD4iKSwgZmFsc2UpOworICAgIHBhcnNlci5maW5pc2go
KTsKKyAgICByZXR1cm4gIXBhcnNlci5oYXNFcnJvcigpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1RW50aXR5
UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNUVudGl0eVBhcnNlci5jcHAKaW5kZXggMTc3
YjdiZjYzOWEwNjk3MTUxNjBlNTg4YTg3Y2U4NmQzYzEwMzgzMi4uMWZjNTQxYmMwZTc5OWVmMDEz
Nzc2MzgzNzVlODVkN2Y5ODkzZjA2YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1RW50
aXR5UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVFbnRpdHlQYXJzZXIuY3BwCkBA
IC0zMiw3ICszMiw3IEBACiAKIC8vIFVzZSBfX0dOVUNfXyBpbnN0ZWFkIG9mIFBMQVRGT1JNKEdD
QykgdG8gc3RheSBjb25zaXN0ZW50IHdpdGggdGhlIGdwZXJmIGdlbmVyYXRlZCBjIGZpbGUKICNp
ZmRlZiBfX0dOVUNfXwotLy8gVGhlIG1haW4gdG9rZW5pemVyIGluY2x1ZGVzIHRoaXMgdG9vIHNv
IHdlIGFyZSBnZXR0aW5nIHR3byBjb3BpZXMgb2YgdGhlIGRhdGEuIEhvd2V2ZXIsIHRoaXMgd2F5
IHRoZSBjb2RlIGdldHMgaW5saW5lZC4KKy8vIFRoZSBtYWluIHBhcnNlciBpbmNsdWRlcyB0aGlz
IHRvbyBzbyB3ZSBhcmUgZ2V0dGluZyB0d28gY29waWVzIG9mIHRoZSBkYXRhLiBIb3dldmVyLCB0
aGlzIHdheSB0aGUgY29kZSBnZXRzIGlubGluZWQuCiAjaW5jbHVkZSAiSFRNTEVudGl0eU5hbWVz
LmMiCiAjZWxzZQogLy8gTm90IGlubGluZWQgZm9yIG5vbi1HQ0MgY29tcGlsZXJzCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRG9j
dW1lbnQuY3BwCmluZGV4IDFmODc5MGNlMGE3ZmNhNGM4ZDM0NzVlZWU0NDdjMjdkYjZiNTRiZGIu
LjA1MDc0YTQ2NWY2MzgyOWYxZjcxOWE4ZTg5MDIzNjYzZjQyMTI4YzggMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1l
bnQuY3BwCkBAIC0yODMsNyArMjgzLDcgQEAgdm9pZCBIVE1MRG9jdW1lbnQ6OnJlbGVhc2VFdmVu
dHMoKQogewogfQogCi1Eb2N1bWVudFBhcnNlciogSFRNTERvY3VtZW50OjpjcmVhdGVUb2tlbml6
ZXIoKQorRG9jdW1lbnRQYXJzZXIqIEhUTUxEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKIHsKICAg
ICBib29sIHJlcG9ydEVycm9ycyA9IGZhbHNlOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50LmgKaW5kZXggMGUyNzRlNTZiYjIwYWQ0ZmNhNTBiMmJkMjQyNTgwM2JhMTMzMWQ5MC4u
MzNhZTM2OWZhNmI2YjNiOTJmNjVjOGQ4Y2U5NDE4YTJjZmZmNzNiZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxEb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQu
aApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxFbGVt
ZW50PiBjcmVhdGVFbGVtZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFtZSwgRXhjZXB0aW9u
Q29kZSYpOwogCiAgICAgdmlydHVhbCBib29sIGlzRnJhbWVTZXQoKSBjb25zdDsKLSAgICB2aXJ0
dWFsIERvY3VtZW50UGFyc2VyKiBjcmVhdGVUb2tlbml6ZXIoKTsKKyAgICB2aXJ0dWFsIERvY3Vt
ZW50UGFyc2VyKiBjcmVhdGVQYXJzZXIoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lUGFy
c2VNb2RlKCk7CiAKICAgICB2b2lkIGFkZEl0ZW1Ub01hcChIYXNoQ291bnRlZFNldDxBdG9taWNT
dHJpbmdJbXBsKj4mLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBh
cnNlci5jcHAKaW5kZXggN2EwY2UwZDgwOGViMGQ2Yjc0NzMxMzkwODE4Y2JhZTk3Yjk2MDhlNS4u
N2I2ZDUxOGZlZTFjNzljYmRmYzI3Mjk5Yzc0YzQwNGEzY2FiMjkwZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxE
b2N1bWVudFBhcnNlci5jcHAKQEAgLTY2LDE1ICs2NiwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLS8vIFRoaXMgdmFsdWUgaXMgdXNlZCB0
byBkZWZpbmUgaG93IG1hbnkgY2hhcmFjdGVycyB0aGUgdG9rZW5pemVyIHdpbGwgcHJvY2VzcyBi
ZWZvcmUKKy8vIFRoaXMgdmFsdWUgaXMgdXNlZCB0byBkZWZpbmUgaG93IG1hbnkgY2hhcmFjdGVy
cyB0aGUgcGFyc2VyIHdpbGwgcHJvY2VzcyBiZWZvcmUKIC8vIHllaWxkaW5nIGNvbnRyb2wuCi0v
LyBUbyBpbmNyZWFzZSByZXNwb25zaXZuZXNzIHJlZHVjZSB0aGUgdG9rZW5pemVyIGNodW5rIHNp
emUuCisvLyBUbyBpbmNyZWFzZSByZXNwb25zaXZuZXNzIHJlZHVjZSB0aGUgcGFyc2VyIGNodW5r
IHNpemUuCiBzdGF0aWMgY29uc3QgaW50IGRlZmF1bHRUb2tlbml6ZXJDaHVua1NpemUgPSA0MDk2
OwogCiAvLyBGSVhNRTogV2Ugd291bGQgbGlrZSB0aGlzIGNvbnN0YW50IHRvIGJlIDIwMG1zLgog
Ly8gWWllbGRpbmcgbW9yZSBhZ2dyZXNzaXZlbHkgcmVzdWx0cyBpbiBpbmNyZWFzZWQgcmVzcG9u
c2l2ZW5lc3MgYW5kIGJldHRlciBpbmNyZW1lbnRhbCByZW5kZXJpbmcuCiAvLyBJdCBzbG93cyBk
b3duIG92ZXJhbGwgcGFnZS1sb2FkIG9uIHNsb3dlciBtYWNoaW5lcywgdGhvdWdoLCBzbyBmb3Ig
bm93IHdlIHNldCBhIHZhbHVlIG9mIDUwMC4KLS8vIEZvciBzbWFsbGVyIGNodW5rcyAoYWJvdmUp
IGRlY3JlYXNlIHRoZSB2YWx1ZSBvZiBUaW1lckRlbGF5IGFzIHRoZSB0aGUgdG9rZW5pemVyIHNo
b3VsZCBub3QKKy8vIEZvciBzbWFsbGVyIGNodW5rcyAoYWJvdmUpIGRlY3JlYXNlIHRoZSB2YWx1
ZSBvZiBUaW1lckRlbGF5IGFzIHRoZSB0aGUgcGFyc2VyIHNob3VsZCBub3QKIC8vIHlpZWxkIGZv
ciBhcyBsb25nIGEgcGVyaW9kIG90aGVyd2lzZSBpdCB3aWxsIHRha2Ugd2F5IHRvIGxvbmcgdG8g
bG9hZCBhIHBhZ2UuCiBzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRUb2tlbml6ZXJUaW1lRGVs
YXkgPSAwLjUwMDsKIApAQCAtMTc2Myw3ICsxNzYzLDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJz
ZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc3RyLCBib29sIGFwcGVuZERhdGEpCiAg
ICAgZWxzZQogICAgICAgICBzZXRTcmMoc291cmNlKTsKIAotICAgIC8vIE9uY2UgYSB0aW1lciBp
cyBzZXQsIGl0IGhhcyBjb250cm9sIG9mIHdoZW4gdGhlIHRva2VuaXplciBjb250aW51ZXMuCisg
ICAgLy8gT25jZSBhIHRpbWVyIGlzIHNldCwgaXQgaGFzIGNvbnRyb2wgb2Ygd2hlbiB0aGUgcGFy
c2VyIGNvbnRpbnVlcy4KICAgICBpZiAobV90aW1lci5pc0FjdGl2ZSgpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTE4MDEsNyArMTgwMSw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpzdG9w
UGFyc2luZygpCiAgICAgbV90aW1lci5zdG9wKCk7CiAKICAgICAvLyBGSVhNRTogV2h5IGlzIEhU
TUxEb2N1bWVudFBhcnNlciB0aGUgb25seSBEb2N1bWVudFBhcnNlciB3aGljaCBjYWxscyBjaGVj
a0NvbXBsZXRlZD8KLSAgICAvLyBUaGUgRnJhbWVMb2FkZXIgbmVlZHMgdG8ga25vdyB0aGF0IHRo
ZSB0b2tlbml6ZXIgaGFzIGZpbmlzaGVkIHdpdGggaXRzIGRhdGEsCisgICAgLy8gVGhlIEZyYW1l
TG9hZGVyIG5lZWRzIHRvIGtub3cgdGhhdCB0aGUgcGFyc2VyIGhhcyBmaW5pc2hlZCB3aXRoIGl0
cyBkYXRhLAogICAgIC8vIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBoYXBwZW5lZCBuYXR1cmFs
bHkgb3IgZHVlIHRvIG1hbnVhbCBpbnRlcnZlbnRpb24uCiAgICAgaWYgKCFtX2ZyYWdtZW50ICYm
IG1fZG9jLT5mcmFtZSgpKQogICAgICAgICBtX2RvYy0+ZnJhbWUoKS0+bG9hZGVyKCktPmNoZWNr
Q29tcGxldGVkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXgg
MmI2ODI0YTM0ZmQ5ZmQ5NmM0MGE3ZWM1NGJhZDU4M2ZiYzZlOTBmMC4uM2RlZDM1YTY5YjNkMWQ3
ZGY5ZWRmNTNhYjE3ZjIxNjhiZThiOGEyNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmNwcApAQCAtMTc5LDggKzE3OSw4IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6cmVtb3ZlZEZyb21UcmVlKGJvb2wgZGVlcCkKICAgICAvLyBJZiB0aGUgZm9ybSBhbmQgZWxl
bWVudCBhcmUgYm90aCBpbiB0aGUgc2FtZSB0cmVlLCBwcmVzZXJ2ZSB0aGUgY29ubmVjdGlvbiB0
byB0aGUgZm9ybS4KICAgICAvLyBPdGhlcndpc2UsIG51bGwgb3V0IG91ciBmb3JtIGFuZCByZW1v
dmUgb3Vyc2VsdmVzIGZyb20gdGhlIGZvcm0ncyBsaXN0IG9mIGVsZW1lbnRzLgogICAgIEhUTUxQ
YXJzZXIqIHBhcnNlciA9IDA7Ci0gICAgaWYgKERvY3VtZW50UGFyc2VyKiB0b2tlbml6ZXIgPSBk
b2N1bWVudCgpLT50b2tlbml6ZXIoKSkKLSAgICAgICAgcGFyc2VyID0gdG9rZW5pemVyLT5odG1s
UGFyc2VyKCk7CisgICAgaWYgKERvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkb2N1bWVudCgpLT5w
YXJzZXIoKSkKKyAgICAgICAgcGFyc2VyID0gcGFyc2VyLT5odG1sUGFyc2VyKCk7CiAKICAgICBp
ZiAobV9mb3JtICYmICEocGFyc2VyICYmIHBhcnNlci0+aXNIYW5kbGluZ1Jlc2lkdWFsU3R5bGVB
Y3Jvc3NCbG9ja3MoKSkgJiYgZmluZFJvb3QodGhpcykgIT0gZmluZFJvb3QobV9mb3JtKSkgewog
ICAgICAgICBtX2Zvcm0tPnJlbW92ZUZvcm1FbGVtZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0hUTUxQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxQYXJzZXIuY3BwCmlu
ZGV4IDE2MWI5N2YxMzZlYTBlZWI3YzhjOTFjNGE5OWQ3Y2MzZTYzODY2NzYuLjQ4NDM4NTk4YWI2
ZDgwMDE1YjYwZjI3OGJiZDZmNGYzMDU1MmE3NmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9I
VE1MUGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5jcHAKQEAgLTE2Mzgs
NyArMTYzOCw3IEBAIHZvaWQgSFRNTFBhcnNlcjo6ZmluaXNoZWQoKQogICAgIGZyZWVCbG9jaygp
OwogICAgIHNldEN1cnJlbnQoMCk7CiAKLSAgICAvLyBXYXJuaW5nLCB0aGlzIG1heSBkZWxldGUg
dGhlIHRva2VuaXplciBhbmQgcGFyc2VyLCBzbyBkb24ndCB0cnkgdG8gZG8gYW55dGhpbmcgZWxz
ZSBhZnRlciB0aGlzLgorICAgIC8vIFdhcm5pbmcsIHRoaXMgbWF5IGRlbGV0ZSB0aGUgcGFyc2Vy
LCBzbyBkb24ndCB0cnkgdG8gZG8gYW55dGhpbmcgZWxzZSBhZnRlciB0aGlzLgogICAgIGlmICgh
bV9pc1BhcnNpbmdGcmFnbWVudCkKICAgICAgICAgbV9kb2N1bWVudC0+ZmluaXNoZWRQYXJzaW5n
KCk7CiB9CkBAIC0xNjQ5LDcgKzE2NDksNyBAQCB2b2lkIEhUTUxQYXJzZXI6OnJlcG9ydEVycm9y
VG9Db25zb2xlKEhUTUxQYXJzZXJFcnJvckNvZGUgZXJyb3JDb2RlLCBjb25zdCBBdG9taQogICAg
IGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBIVE1MRG9jdW1lbnRQYXJz
ZXIqIGh0bWxUb2tlbml6ZXIgPSBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnRQYXJzZXIqPihtX2Rv
Y3VtZW50LT50b2tlbml6ZXIoKSk7CisgICAgSFRNTERvY3VtZW50UGFyc2VyKiBodG1sVG9rZW5p
emVyID0gc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50UGFyc2VyKj4obV9kb2N1bWVudC0+cGFyc2Vy
KCkpOwogICAgIGludCBsaW5lTnVtYmVyID0gaHRtbFRva2VuaXplci0+bGluZU51bWJlcigpICsg
MTsKIAogICAgIEF0b21pY1N0cmluZyB0YWcxOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hU
TUxWaWV3U291cmNlRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9j
dW1lbnQuY3BwCmluZGV4IDlkMjZkN2FiODEyMWM3NjQwOTVlMWVhZjhkZGQwYTIzNGQ2NmJhN2Yu
LjUzOTFkZGMyZDgwNGNjZGY1NzZiNmI1NmFlY2ViNWQyN2U1MjMxMzkgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgSFRNTFZpZXdTb3Vy
Y2VEb2N1bWVudDo6SFRNTFZpZXdTb3VyY2VEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFN0
cmluZyYgbWltZVQKICAgICBzZXRVc2VzQmVmb3JlQWZ0ZXJSdWxlcyh0cnVlKTsKIH0KIAotRG9j
dW1lbnRQYXJzZXIqIEhUTUxWaWV3U291cmNlRG9jdW1lbnQ6OmNyZWF0ZVRva2VuaXplcigpCitE
b2N1bWVudFBhcnNlciogSFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKIHsK
ICAgICAvLyBVc2UgSFRNTERvY3VtZW50UGFyc2VyIGlmIGFwcGxpY2FibGUsIG90aGVyd2lzZSB1
c2UgVGV4dERvY3VtZW50UGFyc2VyLgogICAgIGlmIChtX3R5cGUgPT0gInRleHQvaHRtbCIgfHwg
bV90eXBlID09ICJhcHBsaWNhdGlvbi94aHRtbCt4bWwiIHx8IG1fdHlwZSA9PSAiaW1hZ2Uvc3Zn
K3htbCIgfHwgRE9NSW1wbGVtZW50YXRpb246OmlzWE1MTUlNRVR5cGUobV90eXBlKQpAQCAtNjMs
NyArNjMsNyBAQCBEb2N1bWVudFBhcnNlciogSFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6Y3JlYXRl
VG9rZW5pemVyKCkKICAgICAgICAgcmV0dXJuIG5ldyBIVE1MRG9jdW1lbnRQYXJzZXIodGhpcyk7
CiAgICAgfQogCi0gICAgcmV0dXJuIGNyZWF0ZVRleHRUb2tlbml6ZXIodGhpcyk7CisgICAgcmV0
dXJuIGNyZWF0ZVRleHREb2N1bWVudFBhcnNlcih0aGlzKTsKIH0KIAogdm9pZCBIVE1MVmlld1Nv
dXJjZURvY3VtZW50OjpjcmVhdGVDb250YWluaW5nVGFibGUoKQpAQCAtMjQ0LDcgKzI0NCw3IEBA
IHZvaWQgSFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6YWRkTGluZShjb25zdCBTdHJpbmcmIGNsYXNz
TmFtZSkKICAgICBtX2N1cnJlbnQgPSBtX3RkID0gdGQ7CiAKICNpZmRlZiBERUJVR19MSU5FX05V
TUJFUlMKLSAgICBSZWZQdHI8VGV4dD4gbGluZU51bWJlclRleHQgPSBUZXh0OjpjcmVhdGUodGhp
cywgU3RyaW5nOjpudW1iZXIodG9rZW5pemVyKCktPmxpbmVOdW1iZXIoKSArIDEpICsgIiAiKTsK
KyAgICBSZWZQdHI8VGV4dD4gbGluZU51bWJlclRleHQgPSBUZXh0OjpjcmVhdGUodGhpcywgU3Ry
aW5nOjpudW1iZXIocGFyc2VyKCktPmxpbmVOdW1iZXIoKSArIDEpICsgIiAiKTsKICAgICB0ZC0+
YWRkQ2hpbGQobGluZU51bWJlclRleHQpOwogICAgIGxpbmVOdW1iZXJUZXh0LT5hdHRhY2goKTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQu
aCBiL1dlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmgKaW5kZXggMTdkYjhlZjdk
MjcwY2FmOTk5ZmQ3OTk2ZjdjMTBhNGMyOTg4ZjA2Mi4uN2RlN2YzMTExNDdmZDE3MTNjMmQwMDM2
NTczMmM2MDViOWVmZGFhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNl
RG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5oCkBA
IC00MiwxNSArNDIsMTUgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxWaWV3U291cmNlRG9jdW1lbnQoZnJhbWUsIG1pbWVUeXBlKSk7CiAgICAgfQogCi0gICAgdm9p
ZCBhZGRWaWV3U291cmNlVG9rZW4oVG9rZW4qKTsgLy8gVXNlZCBieSB0aGUgSFRNTCB0b2tlbml6
ZXIuCi0gICAgdm9pZCBhZGRWaWV3U291cmNlVGV4dChjb25zdCBTdHJpbmcmKTsgLy8gVXNlZCBi
eSB0aGUgcGxhaW50ZXh0IHRva2VuaXplci4KKyAgICB2b2lkIGFkZFZpZXdTb3VyY2VUb2tlbihU
b2tlbiopOyAvLyBVc2VkIGJ5IHRoZSBIVE1MRG9jdW1lbnRQYXJzZXIuCisgICAgdm9pZCBhZGRW
aWV3U291cmNlVGV4dChjb25zdCBTdHJpbmcmKTsgLy8gVXNlZCBieSB0aGUgVGV4dERvY3VtZW50
UGFyc2VyLgogICAgIHZvaWQgYWRkVmlld1NvdXJjZURvY3R5cGVUb2tlbihEb2N0eXBlVG9rZW4q
KTsKIAogcHJpdmF0ZToKICAgICBIVE1MVmlld1NvdXJjZURvY3VtZW50KEZyYW1lKiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSk7CiAKICAgICAvLyBSZXR1cm5zIEhUTUxEb2N1bWVudFBhcnNlciBv
ciBUZXh0RG9jdW1lbnRQYXJzZXIgYmFzZWQgb24gbV90eXBlLgotICAgIHZpcnR1YWwgRG9jdW1l
bnRQYXJzZXIqIGNyZWF0ZVRva2VuaXplcigpOworICAgIHZpcnR1YWwgRG9jdW1lbnRQYXJzZXIq
IGNyZWF0ZVBhcnNlcigpOwogCiAgICAgdm9pZCBjcmVhdGVDb250YWluaW5nVGFibGUoKTsKICAg
ICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGFkZFNwYW5XaXRoQ2xhc3NOYW1lKGNvbnN0IFN0cmluZyYp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGExYjFjZDA2ZDM1NzUyODE2MmI3ZmJm
NjBiZjE5MDdkODA5ZmFiYjEuLjZjNGY3NmJiNjBhNWM1OWI1MmFjMzdkZWM1OTRlMGIyNzViM2Iw
NzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTM5Myw3ICszOTMsNyBAQCBib29s
IERvY3VtZW50TG9hZGVyOjppc0xvYWRpbmdJbkFQSVNlbnNlKCkgY29uc3QKICAgICAgICAgRG9j
dW1lbnQqIGRvYyA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAgICAgICAgIGlmIChkb2MtPmRvY0xv
YWRlcigpLT5yZXF1ZXN0Q291bnQoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg
ICBpZiAoRG9jdW1lbnRQYXJzZXIqIHRvayA9IGRvYy0+dG9rZW5pemVyKCkpCisgICAgICAgIGlm
IChEb2N1bWVudFBhcnNlciogdG9rID0gZG9jLT5wYXJzZXIoKSkKICAgICAgICAgICAgIGlmICh0
b2stPnByb2Nlc3NpbmdEYXRhKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwIGIvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IDQ5ZjU3MjEzYzY4NWY1M2ZjZTRiNGI3
YzAxMDY1NDAwODQ3NmQzYWQuLmNjMjYzMmIzYTRiYTA4OGMyNDNmY2RlNTQ2NmEyZThkZTgwMDE0
MTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAorKysgYi9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBE
b2N1bWVudFdyaXRlcjo6YmVnaW4oY29uc3QgS1VSTCYgdXJsLCBib29sIGRpc3BhdGNoLCBTZWN1
cml0eU9yaWdpbiogb3JpZ2kKICAgICBSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gY3JlYXRl
RG9jdW1lbnQoKTsKICAgICAKICAgICAvLyBJZiB0aGUgbmV3IGRvY3VtZW50IGlzIGZvciBhIFBs
dWdpbiBidXQgd2UncmUgc3VwcG9zZWQgdG8gYmUgc2FuZGJveGVkIGZyb20gUGx1Z2lucywKLSAg
ICAvLyB0aGVuIHJlcGxhY2UgdGhlIGRvY3VtZW50IHdpdGggb25lIHdob3NlIHRva2VuaXplciB3
aWxsIGlnbm9yZSB0aGUgaW5jb21pbmcgZGF0YSAoYnVnIDM5MzIzKQorICAgIC8vIHRoZW4gcmVw
bGFjZSB0aGUgZG9jdW1lbnQgd2l0aCBvbmUgd2hvc2UgcGFyc2VyIHdpbGwgaWdub3JlIHRoZSBp
bmNvbWluZyBkYXRhIChidWcgMzkzMjMpCiAgICAgaWYgKGRvY3VtZW50LT5pc1BsdWdpbkRvY3Vt
ZW50KCkgJiYgbV9mcmFtZS0+bG9hZGVyKCktPmlzU2FuZGJveGVkKFNhbmRib3hQbHVnaW5zKSkK
ICAgICAgICAgZG9jdW1lbnQgPSBTaW5rRG9jdW1lbnQ6OmNyZWF0ZShtX2ZyYW1lKTsKIApAQCAt
MTM2LDEwICsxMzYsMTAgQEAgdm9pZCBEb2N1bWVudFdyaXRlcjo6YWRkRGF0YShjb25zdCBjaGFy
KiBzdHIsIGludCBsZW4sIGJvb2wgZmx1c2gpCiAgICAgaWYgKGxlbiA9PSAtMSkKICAgICAgICAg
bGVuID0gc3RybGVuKHN0cik7CiAKLSAgICBEb2N1bWVudFBhcnNlciogdG9rZW5pemVyID0gbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+dG9rZW5pemVyKCk7Ci0gICAgaWYgKHRva2VuaXplciAmJiB0b2tl
bml6ZXItPndhbnRzUmF3RGF0YSgpKSB7CisgICAgRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IG1f
ZnJhbWUtPmRvY3VtZW50KCktPnBhcnNlcigpOworICAgIGlmIChwYXJzZXIgJiYgcGFyc2VyLT53
YW50c1Jhd0RhdGEoKSkgewogICAgICAgICBpZiAobGVuID4gMCkKLSAgICAgICAgICAgIHRva2Vu
aXplci0+d3JpdGVSYXdEYXRhKHN0ciwgbGVuKTsKKyAgICAgICAgICAgIHBhcnNlci0+d3JpdGVS
YXdEYXRhKHN0ciwgbGVuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKQEAgLTE4Niw5
ICsxODYsOSBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjphZGREYXRhKGNvbnN0IGNoYXIqIHN0ciwg
aW50IGxlbiwgYm9vbCBmbHVzaCkKICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cmVjYWxj
U3R5bGUoTm9kZTo6Rm9yY2UpOwogICAgIH0KIAotICAgIGlmICh0b2tlbml6ZXIpIHsKLSAgICAg
ICAgQVNTRVJUKCF0b2tlbml6ZXItPndhbnRzUmF3RGF0YSgpKTsKLSAgICAgICAgdG9rZW5pemVy
LT53cml0ZShkZWNvZGVkLCB0cnVlKTsKKyAgICBpZiAocGFyc2VyKSB7CisgICAgICAgIEFTU0VS
VCghcGFyc2VyLT53YW50c1Jhd0RhdGEoKSk7CisgICAgICAgIHBhcnNlci0+d3JpdGUoZGVjb2Rl
ZCwgdHJ1ZSk7CiAgICAgfQogfQogCkBAIC0yMDIsOCArMjAyLDggQEAgdm9pZCBEb2N1bWVudFdy
aXRlcjo6YWRkRGF0YShjb25zdCBTdHJpbmcmIHN0cikKICAgICAgICAgbV9mcmFtZS0+ZG9jdW1l
bnQoKS0+c2V0UGFyc2VNb2RlKERvY3VtZW50OjpTdHJpY3QpOwogICAgIH0KIAotICAgIGlmIChE
b2N1bWVudFBhcnNlciogdG9rZW5pemVyID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dG9rZW5pemVy
KCkpCi0gICAgICAgIHRva2VuaXplci0+d3JpdGUoc3RyLCB0cnVlKTsKKyAgICBpZiAoRG9jdW1l
bnRQYXJzZXIqIHBhcnNlciA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnBhcnNlcigpKQorICAgICAg
ICBwYXJzZXItPndyaXRlKHN0ciwgdHJ1ZSk7CiB9CiAKIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmVu
ZCgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAg
Yi9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKaW5kZXggNzlhZDgzZjM2
ZGU5NGQxZTJmNjUwMGFhODkyOTVmZDllZmY2MWIxYi4uNWQxYjJiZjk5OTA4MTdlNmJhOTkyNzVj
NGM5YjRjY2UxZGVmNjJlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5
RG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeURvY3VtZW50LmNw
cApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgICAgICAKIHByaXZhdGU6Ci0g
ICAgLy8gVGhlIHRva2VuaXplciB3aWxsIGF0dGVtcHQgdG8gbG9hZCB0aGUgZG9jdW1lbnQgdGVt
cGxhdGUgc3BlY2lmaWVkIHZpYSB0aGUgcHJlZmVyZW5jZQorICAgIC8vIFRoZSBwYXJzZXIgd2ls
bCBhdHRlbXB0IHRvIGxvYWQgdGhlIGRvY3VtZW50IHRlbXBsYXRlIHNwZWNpZmllZCB2aWEgdGhl
IHByZWZlcmVuY2UKICAgICAvLyBGYWlsaW5nIHRoYXQsIGl0IHdpbGwgZmFsbCBiYWNrIGFuZCBj
cmVhdGUgdGhlIGJhc2ljIGRvY3VtZW50IHdoaWNoIHdpbGwgaGF2ZSBhIG1pbmltYWwKICAgICAv
LyB0YWJsZSBmb3IgcHJlc2VudGluZyB0aGUgRlRQIGRpcmVjdG9yeSBpbiBhIHVzZWZ1bCBtYW5u
ZXIKICAgICBib29sIGxvYWREb2N1bWVudFRlbXBsYXRlKCk7CkBAIC00NDIsNyArNDQyLDcgQEAg
RlRQRGlyZWN0b3J5RG9jdW1lbnQ6OkZUUERpcmVjdG9yeURvY3VtZW50KEZyYW1lKiBmcmFtZSkK
ICNlbmRpZgogfQogCi1Eb2N1bWVudFBhcnNlciogRlRQRGlyZWN0b3J5RG9jdW1lbnQ6OmNyZWF0
ZVRva2VuaXplcigpCitEb2N1bWVudFBhcnNlciogRlRQRGlyZWN0b3J5RG9jdW1lbnQ6OmNyZWF0
ZVBhcnNlcigpCiB7CiAgICAgcmV0dXJuIG5ldyBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcih0
aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeURvY3VtZW50
LmggYi9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlEb2N1bWVudC5oCmluZGV4IDk2NDM1NmVl
NDc5OGQxMGY3ODBhZmQxZTBiYTBiMWY2MWUxOGJhMGEuLmY3NDUwOGM1ZGY0OTNjYzI3MGE2NDM0
ZWVjZDZlYzQwMjQ0NzBkNWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9y
eURvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5RG9jdW1lbnQuaApA
QCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgRlRQRGlyZWN0b3J5RG9j
dW1lbnQoRnJhbWUqKTsKLSAgICB2aXJ0dWFsIERvY3VtZW50UGFyc2VyKiBjcmVhdGVUb2tlbml6
ZXIoKTsKKyAgICB2aXJ0dWFsIERvY3VtZW50UGFyc2VyKiBjcmVhdGVQYXJzZXIoKTsKIH07CiAg
ICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYTVi
OGZmYjA0MzhiMjBjYjhhNGY3OWVkYWU1NzgwZWYxNjJhZDY3NC4uOTc0NThmYTBhOGU1YzQ0Yzgz
NGMyOTgxMDA5N2E2OTM5ODg0YWQxMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNTQ4LDgg
KzU0OCw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0oY29uc3QgY2hhciogYWN0aW9u
LCBjb25zdCBTdHJpbmcmIHVybCwgUGFzc1JlZlB0cjxGCiAKIHZvaWQgRnJhbWVMb2FkZXI6OnN0
b3BMb2FkaW5nKFVubG9hZEV2ZW50UG9saWN5IHVubG9hZEV2ZW50UG9saWN5LCBEYXRhYmFzZVBv
bGljeSBkYXRhYmFzZVBvbGljeSkKIHsKLSAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSAmJiBt
X2ZyYW1lLT5kb2N1bWVudCgpLT50b2tlbml6ZXIoKSkKLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1l
bnQoKS0+dG9rZW5pemVyKCktPnN0b3BQYXJzaW5nKCk7CisgICAgaWYgKG1fZnJhbWUtPmRvY3Vt
ZW50KCkgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cGFyc2VyKCkpCisgICAgICAgIG1fZnJhbWUt
PmRvY3VtZW50KCktPnBhcnNlcigpLT5zdG9wUGFyc2luZygpOwogCiAgICAgaWYgKHVubG9hZEV2
ZW50UG9saWN5ICE9IFVubG9hZEV2ZW50UG9saWN5Tm9uZSkgewogICAgICAgICBpZiAobV9mcmFt
ZS0+ZG9jdW1lbnQoKSkgewpAQCAtNjE4LDggKzYxOCw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0
b3AoKQogICAgIC8vIFRoZSBmcmFtZSdzIGxhc3QgcmVmIG1heSBiZSByZW1vdmVkIGFuZCBpdCB3
aWxsIGJlIGRlbGV0ZWQgYnkgY2hlY2tDb21wbGV0ZWQoKS4KICAgICBSZWZQdHI8RnJhbWU+IHBy
b3RlY3RvcihtX2ZyYW1lKTsKICAgICAKLSAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKS0+dG9r
ZW5pemVyKCkpCi0gICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnRva2VuaXplcigpLT5zdG9w
UGFyc2luZygpOworICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpLT5wYXJzZXIoKSkKKyAgICAg
ICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cGFyc2VyKCktPnN0b3BQYXJzaW5nKCk7CiAgICAgbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+ZmluaXNoUGFyc2luZygpOwogCiAgICAgaWYgKG1faWNvbkxvYWRl
cikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ltYWdlRG9jdW1lbnQuY3BwIGIvV2ViQ29y
ZS9sb2FkZXIvSW1hZ2VEb2N1bWVudC5jcHAKaW5kZXggNDc4NWYwNGFiYTNlODVjODhmY2M4MmNh
MDc2NWI0ZjFjNWJmNTE4MS4uOGFiNDEyZmNlNDdkODk0M2RhNmNjYThjZTBjN2U4MGQzYTg0NTNm
NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvSW1hZ2VEb2N1bWVudC5jcHAKKysrIGIvV2Vi
Q29yZS9sb2FkZXIvSW1hZ2VEb2N1bWVudC5jcHAKQEAgLTE5Miw3ICsxOTIsNyBAQCBJbWFnZURv
Y3VtZW50OjpJbWFnZURvY3VtZW50KEZyYW1lKiBmcmFtZSkKICAgICBzZXRQYXJzZU1vZGUoQ29t
cGF0KTsKIH0KICAgICAKLURvY3VtZW50UGFyc2VyKiBJbWFnZURvY3VtZW50OjpjcmVhdGVUb2tl
bml6ZXIoKQorRG9jdW1lbnRQYXJzZXIqIEltYWdlRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCiB7
CiAgICAgcmV0dXJuIG5ldyBJbWFnZVRva2VuaXplcih0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvbG9hZGVyL0ltYWdlRG9jdW1lbnQuaCBiL1dlYkNvcmUvbG9hZGVyL0ltYWdlRG9jdW1l
bnQuaAppbmRleCBjYzY1YWJmMjM2MDVhMDRhNDg3MTdkZTRjMTAzNWY3ZmU2ZTk1MWRhLi5iZDYy
N2I0MjU1ODAxZTY1MjFjZmM4NWQ5NTgzMjBmYmJjZGZkY2RjIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2xvYWRlci9JbWFnZURvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvSW1hZ2VEb2N1bWVu
dC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSW1hZ2VEb2N1bWVu
dChGcmFtZSopOwogCi0gICAgdmlydHVhbCBEb2N1bWVudFBhcnNlciogY3JlYXRlVG9rZW5pemVy
KCk7CisgICAgdmlydHVhbCBEb2N1bWVudFBhcnNlciogY3JlYXRlUGFyc2VyKCk7CiAgICAgdmly
dHVhbCBib29sIGlzSW1hZ2VEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICAK
ICAgICB2b2lkIGNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9NZWRpYURvY3VtZW50LmNwcCBiL1dlYkNvcmUvbG9hZGVyL01lZGlhRG9jdW1lbnQu
Y3BwCmluZGV4IGRiMDBlMDhiMDk5ZGJhZDhhMmVjYTA3ZjUxOGM5ZTBjYTEzYjBkM2EuLmU1MDVj
MmY1ZTkzNzc3ZDFlNjk5Zjc4NTk4YWY0YzU0MmY0YjRhMWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL01lZGlhRG9jdW1l
bnQuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgTWVkaWFEb2N1bWVudDo6fk1lZGlhRG9jdW1lbnQo
KQogICAgIEFTU0VSVCghbV9yZXBsYWNlTWVkaWFFbGVtZW50VGltZXIuaXNBY3RpdmUoKSk7CiB9
CiAKLURvY3VtZW50UGFyc2VyKiBNZWRpYURvY3VtZW50OjpjcmVhdGVUb2tlbml6ZXIoKQorRG9j
dW1lbnRQYXJzZXIqIE1lZGlhRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCiB7CiAgICAgcmV0dXJu
IG5ldyBNZWRpYURvY3VtZW50UGFyc2VyKHRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9s
b2FkZXIvTWVkaWFEb2N1bWVudC5oIGIvV2ViQ29yZS9sb2FkZXIvTWVkaWFEb2N1bWVudC5oCmlu
ZGV4IDM0MTQ5ZTVmOWVmZGYyM2JiZDk1MDA4OGVhNzE4YWUwZWY2ODc3M2EuLjk4ZWIwMmZjN2Jk
NTNkMWJlNTg1ZWY1YjZhNWQyYjU4NmFiZWRhM2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVy
L01lZGlhRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9NZWRpYURvY3VtZW50LmgKQEAg
LTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYURvY3VtZW50KEZyYW1lKik7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgaXNNZWRpYURvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfSAg
ICAgICAgCi0gICAgdmlydHVhbCBEb2N1bWVudFBhcnNlciogY3JlYXRlVG9rZW5pemVyKCk7Cisg
ICAgdmlydHVhbCBEb2N1bWVudFBhcnNlciogY3JlYXRlUGFyc2VyKCk7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9QbHVnaW5Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2xvYWRlci9QbHVnaW5Eb2N1bWVu
dC5jcHAKaW5kZXggOGRiMDk5YWIxZTExMWQwZGY1MDdjYTRiYzNlZTAyMzIyZGQ2NjAwYy4uNzgz
M2Q0MTIyZTYxZDI2YjFhMzY0MDJkYWIyMjljM2M2NDA2MzBmNCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9sb2FkZXIvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL1BsdWdpbkRv
Y3VtZW50LmNwcApAQCAtMTUyLDcgKzE1Miw3IEBAIFBsdWdpbkRvY3VtZW50OjpQbHVnaW5Eb2N1
bWVudChGcmFtZSogZnJhbWUpCiAgICAgc2V0UGFyc2VNb2RlKENvbXBhdCk7CiB9CiAgICAgCi1E
b2N1bWVudFBhcnNlciogUGx1Z2luRG9jdW1lbnQ6OmNyZWF0ZVRva2VuaXplcigpCitEb2N1bWVu
dFBhcnNlciogUGx1Z2luRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCiB7CiAgICAgcmV0dXJuIG5l
dyBQbHVnaW5Eb2N1bWVudFBhcnNlcih0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9h
ZGVyL1BsdWdpbkRvY3VtZW50LmggYi9XZWJDb3JlL2xvYWRlci9QbHVnaW5Eb2N1bWVudC5oCmlu
ZGV4IDlmZmRiODhmYjM5M2RmZjM2OTQ1OWRiMTExNGRjZWE5MzZiZDhlN2EuLmUzZjk4YTdkOTkw
NDNiOWQ2YTQ0OGY0ZTgwNGNmZTIwYTlmNGZiYTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVy
L1BsdWdpbkRvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvUGx1Z2luRG9jdW1lbnQuaApA
QCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFBsdWdpbkRvY3VtZW50KEZy
YW1lKik7CiAKLSAgICB2aXJ0dWFsIERvY3VtZW50UGFyc2VyKiBjcmVhdGVUb2tlbml6ZXIoKTsK
KyAgICB2aXJ0dWFsIERvY3VtZW50UGFyc2VyKiBjcmVhdGVQYXJzZXIoKTsKIH07CiAgICAgCiB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9s
b2FkZXIvU2lua0RvY3VtZW50LmNwcAppbmRleCA5ZTNjNjcwNGI0ZWFiMjIyMmRhNGE1MDkzOWM3
YzMxYmY4NjE0NGU0Li5kNDBlNTY3MjMwNjkxZDZiMjFmOTNhYmVjNTM5NzEyNTY1NWZhZTk3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUv
bG9hZGVyL1NpbmtEb2N1bWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgU2lua0RvY3VtZW50OjpT
aW5rRG9jdW1lbnQoRnJhbWUqIGZyYW1lKQogICAgIHNldFBhcnNlTW9kZShDb21wYXQpOwogfQog
ICAgIAotRG9jdW1lbnRQYXJzZXIqIFNpbmtEb2N1bWVudDo6Y3JlYXRlVG9rZW5pemVyKCkKK0Rv
Y3VtZW50UGFyc2VyKiBTaW5rRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCiB7CiAgICAgcmV0dXJu
IG5ldyBTaW5rRG9jdW1lbnRQYXJzZXIodGhpcyk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xv
YWRlci9TaW5rRG9jdW1lbnQuaCBiL1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5oCmluZGV4
IGQyMjNjOTVjMzA1OGVhY2VlMzg5MjhlMGE2ZTY2YzA1OTFkYzYyM2IuLjM4NjY2MGM1ZjQyNzdi
Y2Q5YTk5M2ZmOTRkMjk1YjRiODdlNWMyNDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1Np
bmtEb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5oCkBAIC00MCw3
ICs0MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU2lua0RvY3VtZW50KEZyYW1lKik7CiAg
ICAgCi0gICAgdmlydHVhbCBEb2N1bWVudFBhcnNlciogY3JlYXRlVG9rZW5pemVyKCk7CisgICAg
dmlydHVhbCBEb2N1bWVudFBhcnNlciogY3JlYXRlUGFyc2VyKCk7CiB9OwogCiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL1RleHREb2N1bWVudC5jcHAgYi9XZWJDb3JlL2xvYWRlci9UZXh0
RG9jdW1lbnQuY3BwCmluZGV4IDVmYzUzMjkxZmRiMzk3NmNkMGZmYWFlZDJlZWExMzE1NTlmNTQ4
YTEuLjY4MzM1YTc4YjRjNDVhY2I0NDEzNmU3NGI0YTA1OTcwMDZjMTE3MDYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvbG9hZGVyL1RleHREb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvVGV4
dERvY3VtZW50LmNwcApAQCAtMTgzLDEyICsxODMsMTIgQEAgVGV4dERvY3VtZW50OjpUZXh0RG9j
dW1lbnQoRnJhbWUqIGZyYW1lKQogewogfQogCi1Eb2N1bWVudFBhcnNlciogVGV4dERvY3VtZW50
OjpjcmVhdGVUb2tlbml6ZXIoKQorRG9jdW1lbnRQYXJzZXIqIFRleHREb2N1bWVudDo6Y3JlYXRl
UGFyc2VyKCkKIHsKICAgICByZXR1cm4gbmV3IFRleHREb2N1bWVudFBhcnNlcih0aGlzKTsKIH0K
IAotRG9jdW1lbnRQYXJzZXIqIGNyZWF0ZVRleHRUb2tlbml6ZXIoSFRNTFZpZXdTb3VyY2VEb2N1
bWVudCogZG9jdW1lbnQpCitEb2N1bWVudFBhcnNlciogY3JlYXRlVGV4dERvY3VtZW50UGFyc2Vy
KEhUTUxWaWV3U291cmNlRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIHJldHVybiBuZXcgVGV4
dERvY3VtZW50UGFyc2VyKGRvY3VtZW50KTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVy
L1RleHREb2N1bWVudC5oIGIvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmgKaW5kZXggZDgz
ZWQ5NDExMzE3YTFjYzBmMzQ2YmM1YWNjZjNmYjE3ZWMwMzgxYS4uMDJjN2FmNTZjNWI0ZGZlZTdh
NWVkZDZhMDAyZjJjNzEyODFiMDFhMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvVGV4dERv
Y3VtZW50LmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmgKQEAgLTQxLDEwICs0
MSwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFRleHREb2N1bWVudChGcmFtZSopOwogICAg
IAotICAgIHZpcnR1YWwgRG9jdW1lbnRQYXJzZXIqIGNyZWF0ZVRva2VuaXplcigpOworICAgIHZp
cnR1YWwgRG9jdW1lbnRQYXJzZXIqIGNyZWF0ZVBhcnNlcigpOwogfTsKIAotRG9jdW1lbnRQYXJz
ZXIqIGNyZWF0ZVRleHRUb2tlbml6ZXIoSFRNTFZpZXdTb3VyY2VEb2N1bWVudCopOworRG9jdW1l
bnRQYXJzZXIqIGNyZWF0ZVRleHREb2N1bWVudFBhcnNlcihIVE1MVmlld1NvdXJjZURvY3VtZW50
Kik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25z
LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggMjQ3M2U3
ZWIyMTYzN2Q1MTJlYWE5YWUyM2ZlNTJhNmU3NmJiMzRlZC4uN2IyODVlYjg2MWY3YTUxNzg4MGJk
ODkzZjk1ZDQwYTFhZjI4ODQ2MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRF
eHRlbnNpb25zLmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3Bw
CkBAIC0xMjgsMTMgKzEyOCwxMyBAQCBib29sIFNWR0RvY3VtZW50RXh0ZW5zaW9uczo6c2FtcGxl
QW5pbWF0aW9uQXRUaW1lKGNvbnN0IFN0cmluZyYgZWxlbWVudElkLCBTVkdTTQogdm9pZCBTVkdE
b2N1bWVudEV4dGVuc2lvbnM6OnJlcG9ydFdhcm5pbmcoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
ewogICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvYy0+ZnJhbWUoKSkKLSAgICAgICAgZnJhbWUt
PmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJXYXJuaW5nOiAiICsgbWVzc2FnZSwgbV9k
b2MtPnRva2VuaXplcigpID8gbV9kb2MtPnRva2VuaXplcigpLT5saW5lTnVtYmVyKCkgOiAxLCBT
dHJpbmcoKSk7CisgICAgICAgIGZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNz
YWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAi
V2FybmluZzogIiArIG1lc3NhZ2UsIG1fZG9jLT5wYXJzZXIoKSA/IG1fZG9jLT5wYXJzZXIoKS0+
bGluZU51bWJlcigpIDogMSwgU3RyaW5nKCkpOwogfQogCiB2b2lkIFNWR0RvY3VtZW50RXh0ZW5z
aW9uczo6cmVwb3J0RXJyb3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlmIChGcmFt
ZSogZnJhbWUgPSBtX2RvYy0+ZnJhbWUoKSkKLSAgICAgICAgZnJhbWUtPmRvbVdpbmRvdygpLT5j
b25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJy
b3JNZXNzYWdlTGV2ZWwsICJFcnJvcjogIiArIG1lc3NhZ2UsIG1fZG9jLT50b2tlbml6ZXIoKSA/
IG1fZG9jLT50b2tlbml6ZXIoKS0+bGluZU51bWJlcigpIDogMSwgU3RyaW5nKCkpOworICAgICAg
ICBmcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yOiAiICsgbWVzc2Fn
ZSwgbV9kb2MtPnBhcnNlcigpID8gbV9kb2MtPnBhcnNlcigpLT5saW5lTnVtYmVyKCkgOiAxLCBT
dHJpbmcoKSk7CiB9CiAKIHZvaWQgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOjphZGRQZW5kaW5nUmVz
b3VyY2UoY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgU1ZHU3R5bGVkRWxlbWVudCogb2JqKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS93bWwvV01MRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS93bWwvV01MRG9j
dW1lbnQuY3BwCmluZGV4IDRiODljOTlmNWE3NzY5MTZiMGUyNTY1M2QyY2FkNDZmNTE5MzBkZDMu
LmJhNGJiNTcyOWQzZGNkMzUwMGYzYjg3YzIzMTVkMTVkODFlNGUwNmEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvd21sL1dNTERvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL3dtbC9XTUxEb2N1bWVudC5j
cHAKQEAgLTQ3LDggKzQ3LDggQEAgV01MRG9jdW1lbnQ6On5XTUxEb2N1bWVudCgpCiAKIHZvaWQg
V01MRG9jdW1lbnQ6OmZpbmlzaGVkUGFyc2luZygpCiB7Ci0gICAgaWYgKERvY3VtZW50UGFyc2Vy
KiB0b2tlbml6ZXIgPSB0aGlzLT50b2tlbml6ZXIoKSkgewotICAgICAgICBpZiAoIXRva2VuaXpl
ci0+d2VsbEZvcm1lZCgpKSB7CisgICAgaWYgKERvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSB0aGlz
LT5wYXJzZXIoKSkgeworICAgICAgICBpZiAoIXBhcnNlci0+d2VsbEZvcm1lZCgpKSB7CiAgICAg
ICAgICAgICBEb2N1bWVudDo6ZmluaXNoZWRQYXJzaW5nKCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvd21sL1dNTEVycm9ySGFuZGxpbmcuY3Bw
IGIvV2ViQ29yZS93bWwvV01MRXJyb3JIYW5kbGluZy5jcHAKaW5kZXggYmM4NzQ3ZmI5OTQ0ZWRk
NTE3MTAyMDBkODY5MjY3NWQyNzdkN2IwZS4uODUzMjgyMjIzM2E3ZWFhYTg0ZjgwNGZmZDVjZWMy
OGY3NmY5MmZlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS93bWwvV01MRXJyb3JIYW5kbGluZy5jcHAK
KysrIGIvV2ViQ29yZS93bWwvV01MRXJyb3JIYW5kbGluZy5jcHAKQEAgLTM4LDE3ICszOCwxNyBA
QCB2b2lkIHJlcG9ydFdNTEVycm9yKERvY3VtZW50KiBkb2MsIFdNTEVycm9yQ29kZSBlcnJvcikK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgU3RyaW5nIGVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2Fn
ZUZvckVycm9yQ29kZShlcnJvcik7Ci0gICAgWE1MRG9jdW1lbnRQYXJzZXIqIHRva2VuaXplciA9
IHN0YXRpY19jYXN0PFhNTERvY3VtZW50UGFyc2VyKj4oZG9jLT50b2tlbml6ZXIoKSk7Ci0gICAg
aWYgKHRva2VuaXplciAmJiBlcnJvciAhPSBXTUxFcnJvckRlY2tOb3RBY2Nlc3NpYmxlKSB7Cisg
ICAgWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IHN0YXRpY19jYXN0PFhNTERvY3VtZW50UGFy
c2VyKj4oZG9jLT5wYXJzZXIoKSk7CisgICAgaWYgKHBhcnNlciAmJiBlcnJvciAhPSBXTUxFcnJv
ckRlY2tOb3RBY2Nlc3NpYmxlKSB7CiAgICAgICAgIC8vIFNvbWUgZXJyb3JzIGFyZSByZXBvcnRl
ZCBhcyByZXN1bHQgb2YgYW4gaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKSBjYWxsLgogICAgICAgICAv
LyBJZiB0aGlzIGhhcHBlbmVkLCBwYXJzaW5nIGhhcyBiZWVuIHN0b3BwZWQsIGFuZCB0aGUgZG9j
dW1lbnQgZnJhZ21lbnQKICAgICAgICAgLy8gaXMgd3JhcHBlZCBpbiBhIFhIVE1MIGVycm9yIGRv
Y3VtZW50LiBUaGF0IG1lYW5zIGluc2VydGVkSW50b0RvY3VtZW50KCkKICAgICAgICAgLy8gd2ls
bCBiZSBjYWxsZWQgYWdhaW4gLSBkbyBOT1QgcmVwb3J0IHRoZSBlcnJvciB0d2ljZSwgdGhhdCB3
b3VsZCByZXN1bHQKICAgICAgICAgLy8gaW4gYW4gaW5maW5pdGUgZXJyb3IgcmVwb3J0aW5nIGxv
b3AuCi0gICAgICAgIGlmICghdG9rZW5pemVyLT53ZWxsRm9ybWVkKCkpCisgICAgICAgIGlmICgh
cGFyc2VyLT53ZWxsRm9ybWVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdG9r
ZW5pemVyLT5oYW5kbGVFcnJvcihYTUxEb2N1bWVudFBhcnNlcjo6ZmF0YWwsIGVycm9yTWVzc2Fn
ZS5sYXRpbjEoKS5kYXRhKCksIHRva2VuaXplci0+bGluZU51bWJlcigpLCB0b2tlbml6ZXItPmNv
bHVtbk51bWJlcigpKTsKKyAgICAgICAgcGFyc2VyLT5oYW5kbGVFcnJvcihYTUxEb2N1bWVudFBh
cnNlcjo6ZmF0YWwsIGVycm9yTWVzc2FnZS5sYXRpbjEoKS5kYXRhKCksIHBhcnNlci0+bGluZU51
bWJlcigpLCBwYXJzZXItPmNvbHVtbk51bWJlcigpKTsKICAgICB9IGVsc2UgewogICAgICAgICBG
cmFtZSogZnJhbWUgPSBkb2MtPmZyYW1lKCk7CiAgICAgICAgIGlmICghZnJhbWUpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3dtbC9XTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIGIvV2ViQ29yZS93bWwvV01M
VGVtcGxhdGVFbGVtZW50LmNwcAppbmRleCAyNTM3YzNiMGQ1YzZjMjg1YzlhNmE4NWRkODU0ZmM4
NDE2Y2JhNDVkLi4yN2M4MjhjNzc2MmY2NTEzM2IzMjA3ZGNmNWRlNzg4YjI0YTIzY2I2IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3dtbC9XTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUv
d21sL1dNTFRlbXBsYXRlRWxlbWVudC5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBXTUxUZW1w
bGF0ZUVsZW1lbnQ6OnJlZ2lzdGVyVGVtcGxhdGVzSW5Eb2N1bWVudChEb2N1bWVudCogZG9jKQog
ICAgICAgICByZXR1cm47CiAKICAgICAvLyBPbmx5IG9uZSB0ZW1wbGF0ZSBlbGVtZW50IHNob3Vs
ZCBiZSBhbGxvd2VkIGluIGEgZG9jdW1lbnQKLSAgICAvLyBDYWxsaW5nIHNldFRlbXBsYXRlRWxl
bWVudCgpIHR3aWNlIG9uIGEgV01MQ2FyZEVsZW1lbnQsIHdpbGwgcmVzdWx0IGluIGEgdG9rZW5p
emVyIGVycm9yLgorICAgIC8vIENhbGxpbmcgc2V0VGVtcGxhdGVFbGVtZW50KCkgdHdpY2Ugb24g
YSBXTUxDYXJkRWxlbWVudCwgd2lsbCByZXN1bHQgaW4gYSBwYXJzZXIgZXJyb3IuCiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CiAgICAgICAgIFdNTFRlbXBsYXRl
RWxlbWVudCogdGVtcCA9IHN0YXRpY19jYXN0PFdNTFRlbXBsYXRlRWxlbWVudCo+KG5vZGVMaXN0
LT5pdGVtKGkpKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58605</attachid>
            <date>2010-06-13 17:20:53 -0700</date>
            <delta_ts>2010-06-13 21:40:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-40512-20100613172040.patch</filename>
            <type>text/plain</type>
            <size>56056</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDQ3M2Y2NzFmMGJjY2JlNWVjMjdiYzkyYzBjYWFhOGQ0ZGYyYmQ2MS4uODZjNWY4MzM3OWExOWM4
MDhjZjJmOTBjZmQ5ZjhlY2ZkMDkyN2RiYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjUgQEAKKzIwMTAtMDYtMTEgIEVy
aWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgIEZpeCB0aGUgcmVzdCBvZiB0aGUgcmVmZXJlbmNlcyB0byB0aGUg
b2xkIFRva2VuaXplciBjbGFzcyAobm93IERvY3VtZW50UGFyc2VyKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA1MTIKKworICAgICAgICBObyBmdW5j
dGlvbmFsIGNoYW5nZXMsIHRodXMgbm8gbmV3IHRlc3RzLgorICAgICAgICBUaGlzIHdhcyBtb3N0
bHkgZG9uZSBieSBkby13ZWJjb3JlLXJlbmFtZToKKyAgICAgICAgdG9rZW5pemVyID0+IHBhcnNl
cgorICAgICAgICBtX3Rva2VuaXplciA9PiBtX3BhcnNlcgorICAgICAgICBjcmVhdGVUZXh0VG9r
ZW5pemVyID0+IGNyZWF0ZVRleHREb2N1bWVudFBhcnNlcgorICAgICAgICBjcmVhdGVUb2tlbml6
ZXIgPT4gY3JlYXRlUGFyc2VyCisgICAgICAgIGdldFRva2VuaXplciA9PiBnZXRQYXJzZXIKKwor
ICAgICAgICBIb3dldmVyIGhhZCB0byBiZSBjYXJlZnVsIHRvIGF2b2lkIHJlbmFtaW5nIHRoaW5n
cyByZWxhdGVkIHRvCisgICAgICAgIGNzcy90b2tlbml6ZXIuZmxleCAod2hpY2ggd2Ugc2hvdWxk
IGxhdGVyIHJlbmFtZSB0byBDU1NUb2tlbml6ZXIuZmxleCkKKworICAgICAgICBTdGlsbCBhIGNv
dXBsZSByZWZlcmVuY2VzIHdpdGggInRvayIgYW5kICJhc0hUTUxUb2tlbml6ZXIiIHdoaWNoIEkn
bGwKKyAgICAgICAgZ2V0IGluIHRoZSBuZXh0IHBhdGNoLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzTG9hZGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9TY3JpcHRFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF0dHJp
YnV0ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6On5Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRl
UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpvcGVuKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpjYW5jZWxQYXJzaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjppbXBsaWNpdE9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmltcGxpY2l0
Q2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndyaXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpmaW5pc2hQYXJzaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpyZW1vdmVQZW5kaW5nU2hlZXQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnBhcnNlcik6CisgICAgICAgICogZG9tL0RvY3VtZW50
UGFyc2VyLmg6CisgICAgICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlcG9ydFZpZXdwb3J0V2FybmluZyk6CisgICAgICAgICogZG9tL1hNTERvY3Vt
ZW50UGFyc2VyTGlieG1sMi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nQ2FsbGJhY2tz
OjpjYWxsQW5kUmVtb3ZlRmlyc3RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5n
Q2FsbGJhY2tzOjpQZW5kaW5nU3RhcnRFbGVtZW50TlNDYWxsYmFjazo6Y2FsbCk6CisgICAgICAg
IChXZWJDb3JlOjpQZW5kaW5nQ2FsbGJhY2tzOjpQZW5kaW5nRW5kRWxlbWVudE5TQ2FsbGJhY2s6
OmNhbGwpOgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ0NhbGxiYWNrczo6UGVuZGluZ0NoYXJh
Y3RlcnNDYWxsYmFjazo6Y2FsbCk6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nQ2FsbGJhY2tz
OjpQZW5kaW5nUHJvY2Vzc2luZ0luc3RydWN0aW9uQ2FsbGJhY2s6OmNhbGwpOgorICAgICAgICAo
V2ViQ29yZTo6UGVuZGluZ0NhbGxiYWNrczo6UGVuZGluZ0NEQVRBQmxvY2tDYWxsYmFjazo6Y2Fs
bCk6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nQ2FsbGJhY2tzOjpQZW5kaW5nQ29tbWVudENh
bGxiYWNrOjpjYWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdDYWxsYmFja3M6OlBlbmRp
bmdJbnRlcm5hbFN1YnNldENhbGxiYWNrOjpjYWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRp
bmdDYWxsYmFja3M6Oik6CisgICAgICAgIChXZWJDb3JlOjpnZXRQYXJzZXIpOgorICAgICAgICAo
V2ViQ29yZTo6c3RhcnRFbGVtZW50TnNIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmVuZEVs
ZW1lbnROc0hhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y2hhcmFjdGVyc0hhbmRsZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6cHJvY2Vzc2luZ0luc3RydWN0aW9uSGFuZGxlcik6CisgICAgICAg
IChXZWJDb3JlOjpjZGF0YUJsb2NrSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpjb21tZW50
SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjp3YXJuaW5nSGFuZGxlcik6CisgICAgICAgIChX
ZWJDb3JlOjpmYXRhbEVycm9ySGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpub3JtYWxFcnJv
ckhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RW50aXR5SGFuZGxlcik6CisgICAgICAg
IChXZWJDb3JlOjpzdGFydERvY3VtZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjplbmRE
b2N1bWVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6aW50ZXJuYWxTdWJzZXRIYW5kbGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmV4dGVybmFsU3Vic2V0SGFuZGxlcik6CisgICAgICAgIChX
ZWJDb3JlOjpwYXJzZVhNTERvY3VtZW50RnJhZ21lbnQpOgorICAgICAgICAqIGRvbS9YTUxEb2N1
bWVudFBhcnNlclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlWE1MRG9jdW1lbnRGcmFn
bWVudCk6CisgICAgICAgICogaHRtbC9IVE1MNUVudGl0eVBhcnNlci5jcHA6CisgICAgICAgICog
aHRtbC9IVE1MRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50Ojpj
cmVhdGVQYXJzZXIpOgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3Vt
ZW50UGFyc2VyOjp3cml0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6
OnN0b3BQYXJzaW5nKToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6cmVtb3ZlZEZyb21U
cmVlKToKKyAgICAgICAgKiBodG1sL0hUTUxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFBhcnNlcjo6ZmluaXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlcjo6cmVw
b3J0RXJyb3JUb0NvbnNvbGUpOgorICAgICAgICAqIGh0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlld1NvdXJjZURvY3VtZW50OjpjcmVhdGVQ
YXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6YWRkTGlu
ZSk6CisgICAgICAgICogaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50Lmg6CisgICAgICAgICog
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyOjppc0xvYWRpbmdJbkFQSVNlbnNlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRXcml0
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRXcml0ZXI6OmJlZ2luKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50V3JpdGVyOjphZGREYXRhKToKKyAgICAgICAgKiBsb2FkZXIv
RlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RlRQRGlyZWN0b3J5
RG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcik6CisgICAgICAgICogbG9hZGVyL0ZUUERpcmVjdG9yeURv
Y3VtZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpzdG9wTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6c3RvcCk6CisgICAgICAgICogbG9hZGVyL0ltYWdlRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKToKKyAgICAgICAgKiBs
b2FkZXIvSW1hZ2VEb2N1bWVudC5oOgorICAgICAgICAqIGxvYWRlci9NZWRpYURvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcik6CisgICAg
ICAgICogbG9hZGVyL01lZGlhRG9jdW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvUGx1Z2luRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRG9jdW1lbnQ6OmNyZWF0ZVBhcnNl
cik6CisgICAgICAgICogbG9hZGVyL1BsdWdpbkRvY3VtZW50Lmg6CisgICAgICAgICogbG9hZGVy
L1NpbmtEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW5rRG9jdW1lbnQ6OmNyZWF0
ZVBhcnNlcik6CisgICAgICAgICogbG9hZGVyL1NpbmtEb2N1bWVudC5oOgorICAgICAgICAqIGxv
YWRlci9UZXh0RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dERvY3VtZW50Ojpj
cmVhdGVQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGV4dERvY3VtZW50UGFyc2Vy
KToKKyAgICAgICAgKiBsb2FkZXIvVGV4dERvY3VtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0Rv
Y3VtZW50RXh0ZW5zaW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdEb2N1bWVudEV4dGVu
c2lvbnM6OnJlcG9ydFdhcm5pbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRG9jdW1lbnRFeHRl
bnNpb25zOjpyZXBvcnRFcnJvcik6CisgICAgICAgICogd21sL1dNTERvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldNTERvY3VtZW50OjpmaW5pc2hlZFBhcnNpbmcpOgorICAgICAgICAq
IHdtbC9XTUxFcnJvckhhbmRsaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlcG9ydFdNTEVy
cm9yKToKKyAgICAgICAgKiB3bWwvV01MVGVtcGxhdGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldNTFRlbXBsYXRlRWxlbWVudDo6cmVnaXN0ZXJUZW1wbGF0ZXNJbkRvY3VtZW50KToK
KwogMjAxMC0wNi0xMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjkzNGFmNGVmZTY0NWIxMmIxYjc2NWU2YjE3YzRhNGRm
Nzc4NGQ0NS4uMjlkYTZkMThiZjQ5YWY0MDA2ZGI2YWY3ZDM1ZTRlOTI0YjYwMWM4NyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNTQ1LDE0ICsxMDU0
NSwxNCBAQAogCQlFMUYxRTgyRTBDM0MyQkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lvbnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFNMVEV4dGVuc2lvbnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjU3QTIwRjAxMjU1QjAwODkxRUJCIC8qIFRocmVh
ZEdsb2JhbERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGhyZWFkR2xv
YmFsRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGNTdBNTBGMDEyNTZC
MDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUaHJlYWRHbG9iYWxEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJRTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2IC8qIERvY1R5cGVTdHJpbmdzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERvY1R5cGVTdHJpbmdzLmNwcDsg
cGF0aCA9IERvY1R5cGVTdHJpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
RTQwNkYzRkIxMTk4MzA3RDAwOUQ1OUQ2IC8qIENvbG9yRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb2xvckRhdGEuY3BwOyBwYXRoID0gQ29sb3JEYXRhLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTQwNkY0MDIxMTk4MzI5QTAwOUQ1OUQ2
IC8qIEhUTUxFbnRpdHlOYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBIVE1MRW50aXR5TmFtZXMuY3BwOyBwYXRoID0gSFRNTEVudGl0eU5hbWVzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTQxRUEwMzgxMTk4MzZEQjAwNzEwQkM1IC8qIENT
U1Byb3BlcnR5TmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
Q1NTUHJvcGVydHlOYW1lcy5jcHA7IHBhdGggPSBDU1NQcm9wZXJ0eU5hbWVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTQxRUEwMzkxMTk4Mzc0OTAwNzEwQkM1IC8qIENTU1Zh
bHVlS2V5d29yZHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ1NT
VmFsdWVLZXl3b3Jkcy5jcHA7IHBhdGggPSBDU1NWYWx1ZUtleXdvcmRzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2IC8qIERvY1R5cGVT
dHJpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY1R5cGVT
dHJpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQwNkYzRkIxMTk4MzA3
RDAwOUQ1OUQ2IC8qIENvbG9yRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDb2xvckRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDA2
RjQwMjExOTgzMjlBMDA5RDU5RDYgLyogSFRNTEVudGl0eU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxFbnRpdHlOYW1lcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0MTVGMTBDMEQ5QTA1ODcwMDMzQ0U5NyAvKiBFbGVtZW50VGlt
ZUNvbnRyb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVsZW1lbnRUaW1lQ29udHJvbC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTVGMTY4MEQ5QTE2NUQwMDMzQ0U5
NyAvKiBET01FbGVtZW50VGltZUNvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NRWxlbWVudFRpbWVDb250cm9sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0MTVGMTgzMEQ5QTFBODMwMDMzQ0U5NyAvKiBFbGVtZW50VGltZUNvbnRyb2wuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudFRpbWVDb250cm9sLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQ
cm9wZXJ0eU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENT
U1Byb3BlcnR5TmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDFFQTAz
OTExOTgzNzQ5MDA3MTBCQzUgLyogQ1NTVmFsdWVLZXl3b3Jkcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NWYWx1ZUtleXdvcmRzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTQ0MEEyRDQxMTkxQTUwQjAwMDgyMEIwIC8qIFNWR0ZFTGlnaHRp
bmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRkVMaWdodGlu
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0NDBBMkQ2MTE5MUE1MjMwMDA4
MjBCMCAvKiBTVkdGRUxpZ2h0aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNWR0ZFTGlnaHRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ0NjEzOEYw
Q0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxBdWRpb0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEF1ZGlvRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAKaW5kZXggZjNiY2M0ZTZmZTJlMzkyMmNmNmI5YTBmYTUxN2I3ZmVm
YjljNTNiNy4uYzc2MzllNTUyOWM0NmVmOGY1OTY4OWM1OThjMjRmY2I4M2Y5NjAxZSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cApAQCAtMTg1Myw3ICsxODUzLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojph
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKIAogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojppc0xvYWRlZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFtX3JlbmRlcmVyLT5kb2N1
bWVudCgpLT50b2tlbml6ZXIoKTsKKyAgICByZXR1cm4gIW1fcmVuZGVyZXItPmRvY3VtZW50KCkt
PnBhcnNlcigpOwogfQogCiBkb3VibGUgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZXN0aW1h
dGVkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEV2
ZW50TGlzdGVuZXIuY3BwCmluZGV4IGNmMjEwNDUwYzk3OWRkMzk0ZjIzZTVmMTA3N2E0YzljNzIw
Yzk1ZmUuLjU3YTI4MjRhODUyNjU4YTk2ZWNkMDMyZTQ1MTU0NTg2NmZkMTM1Y2MgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmNwcApAQCAtNjQsMTAgKzY0LDEw
IEBAIFBhc3NSZWZQdHI8VjhMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlQXR0cmlidXRlRXZlbnRM
aXN0ZW5lcihOb2RlKiBub2RlLCBBdHRyaWJ1CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgfQogCi0gICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKS0+dG9rZW5pemVyKCkpIHsKKyAg
ICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpLT5wYXJzZXIoKSkgewogICAgICAgICAgICAgLy8g
RklYTUU6IENoYW5nZSB0byB1c2Ugc2NyaXB0LT5ldmVudEhhbmRsZXJMaW5lTnVtYmVyKCkgd2hl
biBpbXBsZW1lbnRlZC4KLSAgICAgICAgICAgIGxpbmVOdW1iZXIgPSBmcmFtZS0+ZG9jdW1lbnQo
KS0+dG9rZW5pemVyKCktPmxpbmVOdW1iZXIoKTsKLSAgICAgICAgICAgIGNvbHVtbk51bWJlciA9
IGZyYW1lLT5kb2N1bWVudCgpLT50b2tlbml6ZXIoKS0+Y29sdW1uTnVtYmVyKCk7CisgICAgICAg
ICAgICBsaW5lTnVtYmVyID0gZnJhbWUtPmRvY3VtZW50KCktPnBhcnNlcigpLT5saW5lTnVtYmVy
KCk7CisgICAgICAgICAgICBjb2x1bW5OdW1iZXIgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+cGFyc2Vy
KCktPmNvbHVtbk51bWJlcigpOwogICAgICAgICB9CiAgICAgICAgIHNvdXJjZVVSTCA9IG5vZGUt
PmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpOwogICAgIH0KQEAgLTk3LDEwICs5NywxMCBAQCBQ
YXNzUmVmUHRyPFY4TGF6eUV2ZW50TGlzdGVuZXI+IGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVu
ZXIoRnJhbWUqIGZyYW1lLCBBdHRyaQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBp
ZiAoZnJhbWUtPmRvY3VtZW50KCktPnRva2VuaXplcigpKSB7CisgICAgaWYgKGZyYW1lLT5kb2N1
bWVudCgpLT5wYXJzZXIoKSkgewogICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRvIHVzZSBzY3Jp
cHQtPmV2ZW50SGFuZGxlckxpbmVOdW1iZXIoKSB3aGVuIGltcGxlbWVudGVkLgotICAgICAgICBs
aW5lTnVtYmVyID0gZnJhbWUtPmRvY3VtZW50KCktPnRva2VuaXplcigpLT5saW5lTnVtYmVyKCk7
Ci0gICAgICAgIGNvbHVtbk51bWJlciA9IGZyYW1lLT5kb2N1bWVudCgpLT50b2tlbml6ZXIoKS0+
Y29sdW1uTnVtYmVyKCk7CisgICAgICAgIGxpbmVOdW1iZXIgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+
cGFyc2VyKCktPmxpbmVOdW1iZXIoKTsKKyAgICAgICAgY29sdW1uTnVtYmVyID0gZnJhbWUtPmRv
Y3VtZW50KCktPnBhcnNlcigpLT5jb2x1bW5OdW1iZXIoKTsKICAgICB9CiAgICAgc291cmNlVVJM
ID0gZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpOwogICAgIHJldHVybiBWOExhenlF
dmVudExpc3RlbmVyOjpjcmVhdGUoYXR0ci0+bG9jYWxOYW1lKCkuc3RyaW5nKCksIGZyYW1lLT5k
b2N1bWVudCgpLT5pc1NWR0RvY3VtZW50KCksIGF0dHItPnZhbHVlKCksIHNvdXJjZVVSTCwgbGlu
ZU51bWJlciwgY29sdW1uTnVtYmVyLCBXb3JsZENvbnRleHRIYW5kbGUoVXNlTWFpbldvcmxkKSk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggOTc3YzRiY2RmYjdlMmU3MmRlNWE5MTg4NzM5MjdlMTJhZjk4NjdjNi4u
NGY0MzA1NTQyYTFlMjg1MDI1ZmIyYjU5Y2M2Njk1ODRhOWQ2MTNjNiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
NDkwLDcgKzQ5MCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKCkKICAgICAgICAg
ZGVsZXRlQWxsVmFsdWVzKG1fbWFya2Vycyk7CiAgICAgICAgIG1fbWFya2Vycy5jbGVhcigpOwog
Ci0gICAgICAgIG1fdG9rZW5pemVyLmNsZWFyKCk7CisgICAgICAgIG1fcGFyc2VyLmNsZWFyKCk7
CiAKICAgICAgICAgbV9jc3NDYW52YXNFbGVtZW50cy5jbGVhcigpOwogCkBAIC01MjQsNyArNTI0
LDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAgZGVzdHJveUFsbFdyYXBwZXJDYWNoZXMo
KTsKICNlbmRpZgogCi0gICAgbV90b2tlbml6ZXIuY2xlYXIoKTsKKyAgICBtX3BhcnNlci5jbGVh
cigpOwogICAgIG1fZG9jdW1lbnQgPSAwOwogICAgIG1fZG9jTG9hZGVyLmNsZWFyKCk7CiAKQEAg
LTE2NjIsNyArMTY2Miw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNldFZpc3VhbGx5T3JkZXJlZCgpCiAg
ICAgICAgIHJlbmRlcmVyKCktPnN0eWxlKCktPnNldFZpc3VhbGx5T3JkZXJlZCh0cnVlKTsKIH0K
IAotRG9jdW1lbnRQYXJzZXIqIERvY3VtZW50OjpjcmVhdGVUb2tlbml6ZXIoKQorRG9jdW1lbnRQ
YXJzZXIqIERvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQogewogICAgIC8vIEZJWE1FOiB0aGlzIHNo
b3VsZCBwcm9iYWJseSBwYXNzIHRoZSBmcmFtZSBpbnN0ZWFkCiAgICAgcmV0dXJuIG5ldyBYTUxE
b2N1bWVudFBhcnNlcih0aGlzLCB2aWV3KCkpOwpAQCAtMTY3Nyw3ICsxNjc3LDcgQEAgdm9pZCBE
b2N1bWVudDo6b3BlbihEb2N1bWVudCogb3duZXJEb2N1bWVudCkKICAgICB9CiAKICAgICBpZiAo
bV9mcmFtZSkgewotICAgICAgICBpZiAobV9mcmFtZS0+bG9hZGVyKCktPmlzTG9hZGluZ01haW5S
ZXNvdXJjZSgpIHx8ICh0b2tlbml6ZXIoKSAmJiB0b2tlbml6ZXIoKS0+ZXhlY3V0aW5nU2NyaXB0
KCkpKQorICAgICAgICBpZiAobV9mcmFtZS0+bG9hZGVyKCktPmlzTG9hZGluZ01haW5SZXNvdXJj
ZSgpIHx8IChwYXJzZXIoKSAmJiBwYXJzZXIoKS0+ZXhlY3V0aW5nU2NyaXB0KCkpKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgIAogICAgICAgICBpZiAobV9mcmFtZS0+bG9hZGVyKCktPnN0YXRl
KCkgPT0gRnJhbWVTdGF0ZVByb3Zpc2lvbmFsKQpAQCAtMTY5NSwxMiArMTY5NSwxMiBAQCB2b2lk
IERvY3VtZW50OjpvcGVuKERvY3VtZW50KiBvd25lckRvY3VtZW50KQogCiB2b2lkIERvY3VtZW50
OjpjYW5jZWxQYXJzaW5nKCkKIHsKLSAgICBpZiAobV90b2tlbml6ZXIpIHsKLSAgICAgICAgLy8g
V2UgaGF2ZSB0byBjbGVhciB0aGUgdG9rZW5pemVyIHRvIGF2b2lkIHBvc3NpYmx5IHRyaWdnZXJp
bmcKKyAgICBpZiAobV9wYXJzZXIpIHsKKyAgICAgICAgLy8gV2UgaGF2ZSB0byBjbGVhciB0aGUg
cGFyc2VyIHRvIGF2b2lkIHBvc3NpYmx5IHRyaWdnZXJpbmcKICAgICAgICAgLy8gdGhlIG9ubG9h
ZCBoYW5kbGVyIHdoZW4gY2xvc2luZyBhcyBhIHNpZGUgZWZmZWN0IG9mIGEgY2FuY2VsLXN0eWxl
CiAgICAgICAgIC8vIGNoYW5nZSwgc3VjaCBhcyBvcGVuaW5nIGEgbmV3IGRvY3VtZW50IG9yIGNs
b3NpbmcgdGhlIHdpbmRvdyB3aGlsZQogICAgICAgICAvLyBzdGlsbCBwYXJzaW5nCi0gICAgICAg
IG1fdG9rZW5pemVyLmNsZWFyKCk7CisgICAgICAgIG1fcGFyc2VyLmNsZWFyKCk7CiAgICAgICAg
IGNsb3NlKCk7CiAgICAgfQogfQpAQCAtMTcwOSwxNSArMTcwOSwxNSBAQCB2b2lkIERvY3VtZW50
OjppbXBsaWNpdE9wZW4oKQogewogICAgIGNhbmNlbFBhcnNpbmcoKTsKIAotICAgIG1fdG9rZW5p
emVyLmNsZWFyKCk7CisgICAgbV9wYXJzZXIuY2xlYXIoKTsKIAogICAgIHJlbW92ZUNoaWxkcmVu
KCk7CiAKLSAgICBtX3Rva2VuaXplciA9IGNyZWF0ZVRva2VuaXplcigpOworICAgIG1fcGFyc2Vy
ID0gY3JlYXRlUGFyc2VyKCk7CiAgICAgc2V0UGFyc2luZyh0cnVlKTsKIAogICAgIGlmIChtX2Zy
YW1lKQotICAgICAgICBtX3Rva2VuaXplci0+c2V0WFNTQXVkaXRvcihtX2ZyYW1lLT5zY3JpcHQo
KS0+eHNzQXVkaXRvcigpKTsKKyAgICAgICAgbV9wYXJzZXItPnNldFhTU0F1ZGl0b3IobV9mcmFt
ZS0+c2NyaXB0KCktPnhzc0F1ZGl0b3IoKSk7CiAKICAgICAvLyBJZiB3ZSByZWxvYWQsIHRoZSBh
bmltYXRpb24gY29udHJvbGxlciBzdGlja3MgYXJvdW5kIGFuZCBoYXMKICAgICAvLyBhIHN0YWxl
IGFuaW1hdGlvbiB0aW1lLiBXZSBuZWVkIHRvIHVwZGF0ZSBpdCBoZXJlLgpAQCAtMTc5NSwxOCAr
MTc5NSwxOCBAQCB2b2lkIERvY3VtZW50OjppbXBsaWNpdENsb3NlKCkKICAgICB9CiAKICAgICBi
b29sIHdhc0xvY2F0aW9uQ2hhbmdlUGVuZGluZyA9IGZyYW1lKCkgJiYgZnJhbWUoKS0+cmVkaXJl
Y3RTY2hlZHVsZXIoKS0+bG9jYXRpb25DaGFuZ2VQZW5kaW5nKCk7Ci0gICAgYm9vbCBkb2xvYWQg
PSAhcGFyc2luZygpICYmIG1fdG9rZW5pemVyICYmICFtX3Byb2Nlc3NpbmdMb2FkRXZlbnQgJiYg
IXdhc0xvY2F0aW9uQ2hhbmdlUGVuZGluZzsKKyAgICBib29sIGRvbG9hZCA9ICFwYXJzaW5nKCkg
JiYgbV9wYXJzZXIgJiYgIW1fcHJvY2Vzc2luZ0xvYWRFdmVudCAmJiAhd2FzTG9jYXRpb25DaGFu
Z2VQZW5kaW5nOwogICAgIAogICAgIGlmICghZG9sb2FkKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtX3Byb2Nlc3NpbmdMb2FkRXZlbnQgPSB0cnVlOwogCi0gICAgbV93ZWxsRm9ybWVkID0gbV90
b2tlbml6ZXIgJiYgbV90b2tlbml6ZXItPndlbGxGb3JtZWQoKTsKKyAgICBtX3dlbGxGb3JtZWQg
PSBtX3BhcnNlciAmJiBtX3BhcnNlci0+d2VsbEZvcm1lZCgpOwogCi0gICAgLy8gV2UgaGF2ZSB0
byBjbGVhciB0aGUgdG9rZW5pemVyLCBpbiBjYXNlIHNvbWVvbmUgZG9jdW1lbnQud3JpdGUoKXMg
ZnJvbSB0aGUKKyAgICAvLyBXZSBoYXZlIHRvIGNsZWFyIHRoZSBwYXJzZXIsIGluIGNhc2Ugc29t
ZW9uZSBkb2N1bWVudC53cml0ZSgpcyBmcm9tIHRoZQogICAgIC8vIG9uTG9hZCBldmVudCBoYW5k
bGVyLCBhcyBpbiBSYWRhciAzMjA2NTI0LgotICAgIG1fdG9rZW5pemVyLmNsZWFyKCk7CisgICAg
bV9wYXJzZXIuY2xlYXIoKTsKIAogICAgIC8vIFBhcnNlciBzaG91bGQgaGF2ZSBwaWNrZWQgdXAg
YWxsIHByZWxvYWRzIGJ5IG5vdwogICAgIG1fZG9jTG9hZGVyLT5jbGVhclByZWxvYWRzKCk7CkBA
IC0xOTU0LDIxICsxOTU0LDIxIEBAIHZvaWQgRG9jdW1lbnQ6OndyaXRlKGNvbnN0IFNlZ21lbnRl
ZFN0cmluZyYgdGV4dCwgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQpCiAgICAgICAgIHByaW50Zigi
QmVnaW5uaW5nIGEgZG9jdW1lbnQud3JpdGUgYXQgJWRcbiIsIGVsYXBzZWRUaW1lKCkpOwogI2Vu
ZGlmCiAKLSAgICBpZiAoIW1fdG9rZW5pemVyKQorICAgIGlmICghbV9wYXJzZXIpCiAgICAgICAg
IG9wZW4ob3duZXJEb2N1bWVudCk7CiAKLSAgICBBU1NFUlQobV90b2tlbml6ZXIpOworICAgIEFT
U0VSVChtX3BhcnNlcik7CiAgICAgYm9vbCB3YXNGb3JjZWRTeW5jaHJvbm91cyA9IGZhbHNlOwot
ICAgIEhUTUxEb2N1bWVudFBhcnNlciogdG9rZW5pemVyID0gbV90b2tlbml6ZXItPmFzSFRNTFRv
a2VuaXplcigpOwotICAgIGlmICh0b2tlbml6ZXIpIHsKLSAgICAgICAgd2FzRm9yY2VkU3luY2hy
b25vdXMgPSB0b2tlbml6ZXItPmZvcmNlU3luY2hyb25vdXMoKTsKLSAgICAgICAgdG9rZW5pemVy
LT5zZXRGb3JjZVN5bmNocm9ub3VzKHRydWUpOworICAgIEhUTUxEb2N1bWVudFBhcnNlciogcGFy
c2VyID0gbV9wYXJzZXItPmFzSFRNTFRva2VuaXplcigpOworICAgIGlmIChwYXJzZXIpIHsKKyAg
ICAgICAgd2FzRm9yY2VkU3luY2hyb25vdXMgPSBwYXJzZXItPmZvcmNlU3luY2hyb25vdXMoKTsK
KyAgICAgICAgcGFyc2VyLT5zZXRGb3JjZVN5bmNocm9ub3VzKHRydWUpOwogICAgIH0KIAotICAg
IG1fdG9rZW5pemVyLT53cml0ZSh0ZXh0LCBmYWxzZSk7CisgICAgbV9wYXJzZXItPndyaXRlKHRl
eHQsIGZhbHNlKTsKIAotICAgIGlmIChtX3Rva2VuaXplciAmJiB0b2tlbml6ZXIgJiYgbV90b2tl
bml6ZXItPmFzSFRNTFRva2VuaXplcigpID09IHRva2VuaXplcikKLSAgICAgICAgdG9rZW5pemVy
LT5zZXRGb3JjZVN5bmNocm9ub3VzKHdhc0ZvcmNlZFN5bmNocm9ub3VzKTsKKyAgICBpZiAobV9w
YXJzZXIgJiYgcGFyc2VyICYmIG1fcGFyc2VyLT5hc0hUTUxUb2tlbml6ZXIoKSA9PSBwYXJzZXIp
CisgICAgICAgIHBhcnNlci0+c2V0Rm9yY2VTeW5jaHJvbm91cyh3YXNGb3JjZWRTeW5jaHJvbm91
cyk7CiAKICNpZmRlZiBJTlNUUlVNRU5UX0xBWU9VVF9TQ0hFRFVMSU5HCiAgICAgaWYgKCFvd25l
ckVsZW1lbnQoKSkKQEAgLTE5OTQsMTMgKzE5OTQsMTMgQEAgdm9pZCBEb2N1bWVudDo6ZmluaXNo
UGFyc2luZygpCiAgICAgICAgIHByaW50ZigiUmVjZWl2ZWQgYWxsIGRhdGEgYXQgJWRcbiIsIGVs
YXBzZWRUaW1lKCkpOwogI2VuZGlmCiAgICAgCi0gICAgLy8gTGV0IHRoZSB0b2tlbml6ZXIgZ28g
dGhyb3VnaCBhcyBtdWNoIGRhdGEgYXMgaXQgY2FuLiAgVGhlcmUgd2lsbCBiZSB0aHJlZSBwb3Nz
aWJsZSBvdXRjb21lcyBhZnRlcgorICAgIC8vIExldCB0aGUgcGFyc2VyIGdvIHRocm91Z2ggYXMg
bXVjaCBkYXRhIGFzIGl0IGNhbi4gIFRoZXJlIHdpbGwgYmUgdGhyZWUgcG9zc2libGUgb3V0Y29t
ZXMgYWZ0ZXIKICAgICAvLyBmaW5pc2goKSBpcyBjYWxsZWQ6CiAgICAgLy8gKDEpIEFsbCByZW1h
aW5pbmcgZGF0YSBpcyBwYXJzZWQsIGRvY3VtZW50IGlzbid0IGxvYWRlZCB5ZXQKLSAgICAvLyAo
MikgQWxsIHJlbWFpbmluZyBkYXRhIGlzIHBhcnNlZCwgZG9jdW1lbnQgaXMgbG9hZGVkLCB0b2tl
bml6ZXIgZ2V0cyBkZWxldGVkCisgICAgLy8gKDIpIEFsbCByZW1haW5pbmcgZGF0YSBpcyBwYXJz
ZWQsIGRvY3VtZW50IGlzIGxvYWRlZCwgcGFyc2VyIGdldHMgZGVsZXRlZAogICAgIC8vICgzKSBE
YXRhIGlzIHN0aWxsIHJlbWFpbmluZyB0byBiZSBwYXJzZWQuCi0gICAgaWYgKG1fdG9rZW5pemVy
KQotICAgICAgICBtX3Rva2VuaXplci0+ZmluaXNoKCk7CisgICAgaWYgKG1fcGFyc2VyKQorICAg
ICAgICBtX3BhcnNlci0+ZmluaXNoKCk7CiB9CiAKIGNvbnN0IEtVUkwmIERvY3VtZW50Ojp2aXJ0
dWFsVVJMKCkgY29uc3QKQEAgLTI1NjUsOCArMjU2NSw4IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92
ZVBlbmRpbmdTaGVldCgpCiAKICAgICB1cGRhdGVTdHlsZVNlbGVjdG9yKCk7CiAgICAgCi0gICAg
aWYgKCFtX3BlbmRpbmdTdHlsZXNoZWV0cyAmJiBtX3Rva2VuaXplcikKLSAgICAgICAgbV90b2tl
bml6ZXItPmV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKCk7CisgICAgaWYgKCFt
X3BlbmRpbmdTdHlsZXNoZWV0cyAmJiBtX3BhcnNlcikKKyAgICAgICAgbV9wYXJzZXItPmV4ZWN1
dGVTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoIW1fcGVuZGluZ1N0
eWxlc2hlZXRzICYmIG1fZ290b0FuY2hvck5lZWRlZEFmdGVyU3R5bGVzaGVldHNMb2FkICYmIHZp
ZXcoKSkKICAgICAgICAgdmlldygpLT5zY3JvbGxUb0ZyYWdtZW50KG1fZnJhbWUtPmxvYWRlcigp
LT51cmwoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAppbmRleCA3Y2U5N2NiNzNiMDhkMjdjMmRlOWYyMmQ5M2Y1NmM2NGYxODUy
ZDAzLi42ZWQ3ZjkwZDgyOTVkOTQzZjg0ZTQxNDA0N2ZhODE1MGJmOWM2ZDM5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTUzNiw4ICs1MzYsOCBAQCBwdWJsaWM6CiAgICAgQ1NTU3R5bGVTaGVldCogZWxlbWVudFNoZWV0
KCk7CiAgICAgQ1NTU3R5bGVTaGVldCogbWFwcGVkRWxlbWVudFNoZWV0KCk7CiAgICAgCi0gICAg
dmlydHVhbCBEb2N1bWVudFBhcnNlciogY3JlYXRlVG9rZW5pemVyKCk7Ci0gICAgRG9jdW1lbnRQ
YXJzZXIqIHRva2VuaXplcigpIHsgcmV0dXJuIG1fdG9rZW5pemVyLmdldCgpOyB9CisgICAgdmly
dHVhbCBEb2N1bWVudFBhcnNlciogY3JlYXRlUGFyc2VyKCk7CisgICAgRG9jdW1lbnRQYXJzZXIq
IHBhcnNlcigpIHsgcmV0dXJuIG1fcGFyc2VyLmdldCgpOyB9CiAgICAgCiAgICAgYm9vbCBwcmlu
dGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbnRpbmc7IH0KICAgICB2b2lkIHNldFByaW50aW5n
KGJvb2wgcCkgeyBtX3ByaW50aW5nID0gcDsgfQpAQCAtMTAzMyw3ICsxMDMzLDcgQEAgcHJpdmF0
ZToKIAogICAgIEZyYW1lKiBtX2ZyYW1lOwogICAgIE93blB0cjxEb2NMb2FkZXI+IG1fZG9jTG9h
ZGVyOwotICAgIE93blB0cjxEb2N1bWVudFBhcnNlcj4gbV90b2tlbml6ZXI7CisgICAgT3duUHRy
PERvY3VtZW50UGFyc2VyPiBtX3BhcnNlcjsKICAgICBib29sIG1fd2VsbEZvcm1lZDsKIAogICAg
IC8vIERvY3VtZW50IFVSTHMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudFBhcnNl
ci5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRQYXJzZXIuaAppbmRleCBlOGJlYmY5OWI4MDIxNDBj
YWE2MTM2ZDQwZjk5Mjk5MjAwNmFkYTBjLi40ZTE4YzY3OTM2MDMxYjViNzllYTUxMzY4NGRkZjg0
M2Q2ZTU1YmVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudFBhcnNlci5oCisrKyBi
L1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmgKQEAgLTcyLDggKzcyLDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBUaGUgdG9rZW5p
emVyIGhhcyBidWZmZXJzLCBzbyBwYXJzaW5nIG1heSBjb250aW51ZSBldmVuIGFmdGVyCi0gICAg
ICAgIC8vIGl0IHN0b3BzIHJlY2VpdmluZyBkYXRhLiBXZSB1c2UgbV9wYXJzZXJTdG9wcGVkIHRv
IHN0b3AgdGhlIHRva2VuaXplcgorICAgICAgICAvLyBUaGUgcGFyc2VyIGhhcyBidWZmZXJzLCBz
byBwYXJzaW5nIG1heSBjb250aW51ZSBldmVuIGFmdGVyCisgICAgICAgIC8vIGl0IHN0b3BzIHJl
Y2VpdmluZyBkYXRhLiBXZSB1c2UgbV9wYXJzZXJTdG9wcGVkIHRvIHN0b3AgdGhlIHBhcnNlcgog
ICAgICAgICAvLyBldmVuIHdoZW4gaXQgaGFzIGJ1ZmZlcmVkIGRhdGEuCiAgICAgICAgIGJvb2wg
bV9wYXJzZXJTdG9wcGVkOwogICAgICAgICBib29sIG1faW5WaWV3U291cmNlTW9kZTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcCBiL1dlYkNvcmUvZG9tL1Zp
ZXdwb3J0QXJndW1lbnRzLmNwcAppbmRleCAzMzY0Njk3NTNiMWQzNzQ3YjE2NjRhZjg5Nzc0YWQz
MzQ2Y2RhYjBiLi4yM2QwMjk3ZDk4Nzc5NDAxMTZmOGNhNjVlMzhmNWZjZDI1OTg3OTFkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKKysrIGIvV2ViQ29yZS9k
b20vVmlld3BvcnRBcmd1bWVudHMuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIE1lc3Nh
Z2VMZXZlbCB2aWV3cG9ydEVycm9yTWVzc2FnZUxldmVsKFZpZXdwb3J0RXJyb3JDb2RlIGVycm9y
Q29kZSkKIAogdm9pZCByZXBvcnRWaWV3cG9ydFdhcm5pbmcoRG9jdW1lbnQqIGRvY3VtZW50LCBW
aWV3cG9ydEVycm9yQ29kZSBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQpCiB7
Ci0gICAgRG9jdW1lbnRQYXJzZXIqIHRva2VuaXplciA9IGRvY3VtZW50LT50b2tlbml6ZXIoKTsK
KyAgICBEb2N1bWVudFBhcnNlciogcGFyc2VyID0gZG9jdW1lbnQtPnBhcnNlcigpOwogCiAgICAg
RnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTEx
NCw3ICsxMTQsNyBAQCB2b2lkIHJlcG9ydFZpZXdwb3J0V2FybmluZyhEb2N1bWVudCogZG9jdW1l
bnQsIFZpZXdwb3J0RXJyb3JDb2RlIGVycm9yQ29kZSwgY29ucwogICAgIFN0cmluZyBtZXNzYWdl
ID0gdmlld3BvcnRFcnJvck1lc3NhZ2VUZW1wbGF0ZShlcnJvckNvZGUpOwogICAgIG1lc3NhZ2Uu
cmVwbGFjZSgiJXJlcGxhY2VtZW50IiwgcmVwbGFjZW1lbnQpOwogCi0gICAgZnJhbWUtPmRvbVdp
bmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3Nh
Z2VUeXBlLCB2aWV3cG9ydEVycm9yTWVzc2FnZUxldmVsKGVycm9yQ29kZSksIG1lc3NhZ2UsIHRv
a2VuaXplciA/IHRva2VuaXplci0+bGluZU51bWJlcigpICsgMSA6IDAsIGRvY3VtZW50LT51cmwo
KS5zdHJpbmcoKSk7CisgICAgZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3Nh
Z2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCB2aWV3cG9ydEVycm9yTWVzc2Fn
ZUxldmVsKGVycm9yQ29kZSksIG1lc3NhZ2UsIHBhcnNlciA/IHBhcnNlci0+bGluZU51bWJlcigp
ICsgMSA6IDAsIGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1s
Mi5jcHAgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IGZm
OTg2MWFjOTMxOWY3MTU4YmRmOGFhNzZjN2RhYTVhMmQxYTlkMGUuLjJhMWJhYzYwOTNkN2VkYWM5
OGQxZWViMzFlOGVlZjc2ODhmNzVmYjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTERvY3Vt
ZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJM
aWJ4bWwyLmNwcApAQCAtMTgwLDEwICsxODAsMTAgQEAgcHVibGljOgogICAgICAgICBtX2NhbGxi
YWNrcy5hcHBlbmQoY2FsbGJhY2spOwogICAgIH0KIAotICAgIHZvaWQgY2FsbEFuZFJlbW92ZUZp
cnN0Q2FsbGJhY2soWE1MRG9jdW1lbnRQYXJzZXIqIHRva2VuaXplcikKKyAgICB2b2lkIGNhbGxB
bmRSZW1vdmVGaXJzdENhbGxiYWNrKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCiAgICAgewog
ICAgICAgICBPd25QdHI8UGVuZGluZ0NhbGxiYWNrPiBjYWxsYmFjayhtX2NhbGxiYWNrcy50YWtl
Rmlyc3QoKSk7Ci0gICAgICAgIGNhbGxiYWNrLT5jYWxsKHRva2VuaXplcik7CisgICAgICAgIGNh
bGxiYWNrLT5jYWxsKHBhcnNlcik7CiAgICAgfQogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qg
eyByZXR1cm4gbV9jYWxsYmFja3MuaXNFbXB0eSgpOyB9CkBAIC0xOTEsNyArMTkxLDcgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBzdHJ1Y3QgUGVuZGluZ0NhbGxiYWNrIHsKICAgICAgICAgdmly
dHVhbCB+UGVuZGluZ0NhbGxiYWNrKCkgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsKFhN
TERvY3VtZW50UGFyc2VyKiB0b2tlbml6ZXIpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGNh
bGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikgPSAwOwogICAgIH07CiAKICAgICBzdHJ1Y3Qg
UGVuZGluZ1N0YXJ0RWxlbWVudE5TQ2FsbGJhY2sgOiBwdWJsaWMgUGVuZGluZ0NhbGxiYWNrIHsK
QEAgLTIwOSw5ICsyMDksOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgeG1sRnJlZShhdHRyaWJ1
dGVzKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsKFhNTERvY3VtZW50
UGFyc2VyKiB0b2tlbml6ZXIpCisgICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsKFhNTERvY3VtZW50
UGFyc2VyKiBwYXJzZXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHRva2VuaXplci0+c3RhcnRF
bGVtZW50TnMoeG1sTG9jYWxOYW1lLCB4bWxQcmVmaXgsIHhtbFVSSSwKKyAgICAgICAgICAgIHBh
cnNlci0+c3RhcnRFbGVtZW50TnMoeG1sTG9jYWxOYW1lLCB4bWxQcmVmaXgsIHhtbFVSSSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmJfbmFtZXNwYWNlcywgY29uc3Rf
Y2FzdDxjb25zdCB4bWxDaGFyKio+KG5hbWVzcGFjZXMpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBuYl9hdHRyaWJ1dGVzLCBuYl9kZWZhdWx0ZWQsIGNvbnN0X2Nhc3Q8
Y29uc3QgeG1sQ2hhcioqPihhdHRyaWJ1dGVzKSk7CiAgICAgICAgIH0KQEAgLTIyNyw5ICsyMjcs
OSBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICBzdHJ1Y3QgUGVuZGluZ0VuZEVsZW1lbnROU0Nh
bGxiYWNrIDogcHVibGljIFBlbmRpbmdDYWxsYmFjayB7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBj
YWxsKFhNTERvY3VtZW50UGFyc2VyKiB0b2tlbml6ZXIpCisgICAgICAgIHZpcnR1YWwgdm9pZCBj
YWxsKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHRv
a2VuaXplci0+ZW5kRWxlbWVudE5zKCk7CisgICAgICAgICAgICBwYXJzZXItPmVuZEVsZW1lbnRO
cygpOwogICAgICAgICB9CiAgICAgfTsKIApAQCAtMjM5LDkgKzIzOSw5IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICB4bWxGcmVlKHMpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lk
IGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHRva2VuaXplcikKKyAgICAgICAgdmlydHVhbCB2b2lk
IGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKICAgICAgICAgewotICAgICAgICAgICAg
dG9rZW5pemVyLT5jaGFyYWN0ZXJzKHMsIGxlbik7CisgICAgICAgICAgICBwYXJzZXItPmNoYXJh
Y3RlcnMocywgbGVuKTsKICAgICAgICAgfQogCiAgICAgICAgIHhtbENoYXIqIHM7CkBAIC0yNTUs
OSArMjU1LDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHhtbEZyZWUoZGF0YSk7CiAgICAgICAg
IH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbChYTUxEb2N1bWVudFBhcnNlciogdG9rZW5p
emVyKQorICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbChYTUxEb2N1bWVudFBhcnNlciogcGFyc2Vy
KQogICAgICAgICB7Ci0gICAgICAgICAgICB0b2tlbml6ZXItPnByb2Nlc3NpbmdJbnN0cnVjdGlv
bih0YXJnZXQsIGRhdGEpOworICAgICAgICAgICAgcGFyc2VyLT5wcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24odGFyZ2V0LCBkYXRhKTsKICAgICAgICAgfQogCiAgICAgICAgIHhtbENoYXIqIHRhcmdldDsK
QEAgLTI3MCw5ICsyNzAsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgeG1sRnJlZShzKTsKICAg
ICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiB0
b2tlbml6ZXIpCisgICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiBw
YXJzZXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHRva2VuaXplci0+Y2RhdGFCbG9jayhzLCBs
ZW4pOworICAgICAgICAgICAgcGFyc2VyLT5jZGF0YUJsb2NrKHMsIGxlbik7CiAgICAgICAgIH0K
IAogICAgICAgICB4bWxDaGFyKiBzOwpAQCAtMjg1LDkgKzI4NSw5IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICB4bWxGcmVlKHMpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGNh
bGwoWE1MRG9jdW1lbnRQYXJzZXIqIHRva2VuaXplcikKKyAgICAgICAgdmlydHVhbCB2b2lkIGNh
bGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKICAgICAgICAgewotICAgICAgICAgICAgdG9r
ZW5pemVyLT5jb21tZW50KHMpOworICAgICAgICAgICAgcGFyc2VyLT5jb21tZW50KHMpOwogICAg
ICAgICB9CiAKICAgICAgICAgeG1sQ2hhciogczsKQEAgLTMwMSw5ICszMDEsOSBAQCBwcml2YXRl
OgogICAgICAgICAgICAgeG1sRnJlZShzeXN0ZW1JRCk7CiAgICAgICAgIH0KIAotICAgICAgICB2
aXJ0dWFsIHZvaWQgY2FsbChYTUxEb2N1bWVudFBhcnNlciogdG9rZW5pemVyKQorICAgICAgICB2
aXJ0dWFsIHZvaWQgY2FsbChYTUxEb2N1bWVudFBhcnNlciogcGFyc2VyKQogICAgICAgICB7Ci0g
ICAgICAgICAgICB0b2tlbml6ZXItPmludGVybmFsU3Vic2V0KG5hbWUsIGV4dGVybmFsSUQsIHN5
c3RlbUlEKTsKKyAgICAgICAgICAgIHBhcnNlci0+aW50ZXJuYWxTdWJzZXQobmFtZSwgZXh0ZXJu
YWxJRCwgc3lzdGVtSUQpOwogICAgICAgICB9CiAKICAgICAgICAgeG1sQ2hhciogbmFtZTsKQEAg
LTMxNyw5ICszMTcsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgeG1sRnJlZShtZXNzYWdlKTsK
ICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2Vy
KiB0b2tlbml6ZXIpCisgICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2Vy
KiBwYXJzZXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHRva2VuaXplci0+aGFuZGxlRXJyb3Io
dHlwZSwgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obWVzc2FnZSksIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlcik7CisgICAgICAgICAgICBwYXJzZXItPmhhbmRsZUVycm9yKHR5cGUsIHJlaW50ZXJw
cmV0X2Nhc3Q8Y2hhcio+KG1lc3NhZ2UpLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOwogICAg
ICAgICB9CiAKICAgICAgICAgWE1MRG9jdW1lbnRQYXJzZXI6OkVycm9yVHlwZSB0eXBlOwpAQCAt
MTA2MSw3ICsxMDYxLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6aW50ZXJuYWxTdWJzZXQo
Y29uc3QgeG1sQ2hhciogbmFtZSwgY29uc3QgeG1sQ2hhciogZXh0ZXIKICAgICB9CiB9CiAKLXN0
YXRpYyBpbmxpbmUgWE1MRG9jdW1lbnRQYXJzZXIqIGdldFRva2VuaXplcih2b2lkKiBjbG9zdXJl
KQorc3RhdGljIGlubGluZSBYTUxEb2N1bWVudFBhcnNlciogZ2V0UGFyc2VyKHZvaWQqIGNsb3N1
cmUpCiB7CiAgICAgeG1sUGFyc2VyQ3R4dFB0ciBjdHh0ID0gc3RhdGljX2Nhc3Q8eG1sUGFyc2Vy
Q3R4dFB0cj4oY2xvc3VyZSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFhNTERvY3VtZW50UGFy
c2VyKj4oY3R4dC0+X3ByaXZhdGUpOwpAQCAtMTA4Niw3ICsxMDg2LDcgQEAgc3RhdGljIHZvaWQg
c3RhcnRFbGVtZW50TnNIYW5kbGVyKHZvaWQqIGNsb3N1cmUsIGNvbnN0IHhtbENoYXIqIGxvY2Fs
bmFtZSwgY29uc3QKICAgICBpZiAoaGFja0Fyb3VuZExpYlhNTEVudGl0eUJ1ZyhjbG9zdXJlKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUpLT5zdGFydEVsZW1l
bnROcyhsb2NhbG5hbWUsIHByZWZpeCwgdXJpLCBuYl9uYW1lc3BhY2VzLCBuYW1lc3BhY2VzLCBu
Yl9hdHRyaWJ1dGVzLCBuYl9kZWZhdWx0ZWQsIGxpYnhtbEF0dHJpYnV0ZXMpOworICAgIGdldFBh
cnNlcihjbG9zdXJlKS0+c3RhcnRFbGVtZW50TnMobG9jYWxuYW1lLCBwcmVmaXgsIHVyaSwgbmJf
bmFtZXNwYWNlcywgbmFtZXNwYWNlcywgbmJfYXR0cmlidXRlcywgbmJfZGVmYXVsdGVkLCBsaWJ4
bWxBdHRyaWJ1dGVzKTsKIH0KIAogc3RhdGljIHZvaWQgZW5kRWxlbWVudE5zSGFuZGxlcih2b2lk
KiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiwgY29uc3QgeG1sQ2hhciosIGNvbnN0IHhtbENoYXIq
KQpAQCAtMTA5NCw3ICsxMDk0LDcgQEAgc3RhdGljIHZvaWQgZW5kRWxlbWVudE5zSGFuZGxlcih2
b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiwgY29uc3QgeG1sQ2hhciosIGMKICAgICBpZiAo
aGFja0Fyb3VuZExpYlhNTEVudGl0eUJ1ZyhjbG9zdXJlKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUpLT5lbmRFbGVtZW50TnMoKTsKKyAgICBnZXRQYXJzZXIo
Y2xvc3VyZSktPmVuZEVsZW1lbnROcygpOwogfQogCiBzdGF0aWMgdm9pZCBjaGFyYWN0ZXJzSGFu
ZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiBzLCBpbnQgbGVuKQpAQCAtMTEwMiw3
ICsxMTAyLDcgQEAgc3RhdGljIHZvaWQgY2hhcmFjdGVyc0hhbmRsZXIodm9pZCogY2xvc3VyZSwg
Y29uc3QgeG1sQ2hhciogcywgaW50IGxlbikKICAgICBpZiAoaGFja0Fyb3VuZExpYlhNTEVudGl0
eUJ1ZyhjbG9zdXJlKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZ2V0VG9rZW5pemVyKGNsb3N1
cmUpLT5jaGFyYWN0ZXJzKHMsIGxlbik7CisgICAgZ2V0UGFyc2VyKGNsb3N1cmUpLT5jaGFyYWN0
ZXJzKHMsIGxlbik7CiB9CiAKIHN0YXRpYyB2b2lkIHByb2Nlc3NpbmdJbnN0cnVjdGlvbkhhbmRs
ZXIodm9pZCogY2xvc3VyZSwgY29uc3QgeG1sQ2hhciogdGFyZ2V0LCBjb25zdCB4bWxDaGFyKiBk
YXRhKQpAQCAtMTExMCw3ICsxMTEwLDcgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc2luZ0luc3RydWN0
aW9uSGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiB0YXJnZXQsIGMKICAgICBp
ZiAoaGFja0Fyb3VuZExpYlhNTEVudGl0eUJ1ZyhjbG9zdXJlKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUpLT5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb24odGFyZ2V0
LCBkYXRhKTsKKyAgICBnZXRQYXJzZXIoY2xvc3VyZSktPnByb2Nlc3NpbmdJbnN0cnVjdGlvbih0
YXJnZXQsIGRhdGEpOwogfQogCiBzdGF0aWMgdm9pZCBjZGF0YUJsb2NrSGFuZGxlcih2b2lkKiBj
bG9zdXJlLCBjb25zdCB4bWxDaGFyKiBzLCBpbnQgbGVuKQpAQCAtMTExOCw3ICsxMTE4LDcgQEAg
c3RhdGljIHZvaWQgY2RhdGFCbG9ja0hhbmRsZXIodm9pZCogY2xvc3VyZSwgY29uc3QgeG1sQ2hh
ciogcywgaW50IGxlbikKICAgICBpZiAoaGFja0Fyb3VuZExpYlhNTEVudGl0eUJ1ZyhjbG9zdXJl
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUpLT5jZGF0YUJs
b2NrKHMsIGxlbik7CisgICAgZ2V0UGFyc2VyKGNsb3N1cmUpLT5jZGF0YUJsb2NrKHMsIGxlbik7
CiB9CiAKIHN0YXRpYyB2b2lkIGNvbW1lbnRIYW5kbGVyKHZvaWQqIGNsb3N1cmUsIGNvbnN0IHht
bENoYXIqIGNvbW1lbnQpCkBAIC0xMTI2LDcgKzExMjYsNyBAQCBzdGF0aWMgdm9pZCBjb21tZW50
SGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiBjb21tZW50KQogICAgIGlmICho
YWNrQXJvdW5kTGliWE1MRW50aXR5QnVnKGNsb3N1cmUpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBnZXRUb2tlbml6ZXIoY2xvc3VyZSktPmNvbW1lbnQoY29tbWVudCk7CisgICAgZ2V0UGFyc2Vy
KGNsb3N1cmUpLT5jb21tZW50KGNvbW1lbnQpOwogfQogCiBXVEZfQVRUUklCVVRFX1BSSU5URigy
LCAzKQpAQCAtMTEzNCw3ICsxMTM0LDcgQEAgc3RhdGljIHZvaWQgd2FybmluZ0hhbmRsZXIodm9p
ZCogY2xvc3VyZSwgY29uc3QgY2hhciogbWVzc2FnZSwgLi4uKQogewogICAgIHZhX2xpc3QgYXJn
czsKICAgICB2YV9zdGFydChhcmdzLCBtZXNzYWdlKTsKLSAgICBnZXRUb2tlbml6ZXIoY2xvc3Vy
ZSktPmVycm9yKFhNTERvY3VtZW50UGFyc2VyOjp3YXJuaW5nLCBtZXNzYWdlLCBhcmdzKTsKKyAg
ICBnZXRQYXJzZXIoY2xvc3VyZSktPmVycm9yKFhNTERvY3VtZW50UGFyc2VyOjp3YXJuaW5nLCBt
ZXNzYWdlLCBhcmdzKTsKICAgICB2YV9lbmQoYXJncyk7CiB9CiAKQEAgLTExNDMsNyArMTE0Myw3
IEBAIHN0YXRpYyB2b2lkIGZhdGFsRXJyb3JIYW5kbGVyKHZvaWQqIGNsb3N1cmUsIGNvbnN0IGNo
YXIqIG1lc3NhZ2UsIC4uLikKIHsKICAgICB2YV9saXN0IGFyZ3M7CiAgICAgdmFfc3RhcnQoYXJn
cywgbWVzc2FnZSk7Ci0gICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUpLT5lcnJvcihYTUxEb2N1bWVu
dFBhcnNlcjo6ZmF0YWwsIG1lc3NhZ2UsIGFyZ3MpOworICAgIGdldFBhcnNlcihjbG9zdXJlKS0+
ZXJyb3IoWE1MRG9jdW1lbnRQYXJzZXI6OmZhdGFsLCBtZXNzYWdlLCBhcmdzKTsKICAgICB2YV9l
bmQoYXJncyk7CiB9CiAKQEAgLTExNTIsNyArMTE1Miw3IEBAIHN0YXRpYyB2b2lkIG5vcm1hbEVy
cm9ySGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCBjaGFyKiBtZXNzYWdlLCAuLi4pCiB7CiAg
ICAgdmFfbGlzdCBhcmdzOwogICAgIHZhX3N0YXJ0KGFyZ3MsIG1lc3NhZ2UpOwotICAgIGdldFRv
a2VuaXplcihjbG9zdXJlKS0+ZXJyb3IoWE1MRG9jdW1lbnRQYXJzZXI6Om5vbkZhdGFsLCBtZXNz
YWdlLCBhcmdzKTsKKyAgICBnZXRQYXJzZXIoY2xvc3VyZSktPmVycm9yKFhNTERvY3VtZW50UGFy
c2VyOjpub25GYXRhbCwgbWVzc2FnZSwgYXJncyk7CiAgICAgdmFfZW5kKGFyZ3MpOwogfQogCkBA
IC0xMTk5LDEyICsxMTk5LDEyIEBAIHN0YXRpYyB4bWxFbnRpdHlQdHIgZ2V0RW50aXR5SGFuZGxl
cih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiBuYW1lKQogICAgIH0KIAogICAgIGVudCA9
IHhtbEdldERvY0VudGl0eShjdHh0LT5teURvYywgbmFtZSk7Ci0gICAgaWYgKCFlbnQgJiYgKGdl
dFRva2VuaXplcihjbG9zdXJlKS0+aXNYSFRNTERvY3VtZW50KCkKKyAgICBpZiAoIWVudCAmJiAo
Z2V0UGFyc2VyKGNsb3N1cmUpLT5pc1hIVE1MRG9jdW1lbnQoKQogI2lmIEVOQUJMRShYSFRNTE1Q
KQotICAgICAgICAgICAgICAgICB8fCBnZXRUb2tlbml6ZXIoY2xvc3VyZSktPmlzWEhUTUxNUERv
Y3VtZW50KCkKKyAgICAgICAgICAgICAgICAgfHwgZ2V0UGFyc2VyKGNsb3N1cmUpLT5pc1hIVE1M
TVBEb2N1bWVudCgpCiAjZW5kaWYKICNpZiBFTkFCTEUoV01MKQotICAgICAgICAgICAgICAgICB8
fCBnZXRUb2tlbml6ZXIoY2xvc3VyZSktPmlzV01MRG9jdW1lbnQoKQorICAgICAgICAgICAgICAg
ICB8fCBnZXRQYXJzZXIoY2xvc3VyZSktPmlzV01MRG9jdW1lbnQoKQogI2VuZGlmCiAgICAgICAg
KSkgewogICAgICAgICBlbnQgPSBnZXRYSFRNTEVudGl0eShuYW1lKTsKQEAgLTEyMTgsMTkgKzEy
MTgsMTkgQEAgc3RhdGljIHhtbEVudGl0eVB0ciBnZXRFbnRpdHlIYW5kbGVyKHZvaWQqIGNsb3N1
cmUsIGNvbnN0IHhtbENoYXIqIG5hbWUpCiBzdGF0aWMgdm9pZCBzdGFydERvY3VtZW50SGFuZGxl
cih2b2lkKiBjbG9zdXJlKQogewogICAgIHhtbFBhcnNlckN0eHQqIGN0eHQgPSBzdGF0aWNfY2Fz
dDx4bWxQYXJzZXJDdHh0Kj4oY2xvc3VyZSk7Ci0gICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUpLT5z
dGFydERvY3VtZW50KGN0eHQtPnZlcnNpb24sIGN0eHQtPmVuY29kaW5nLCBjdHh0LT5zdGFuZGFs
b25lKTsKKyAgICBnZXRQYXJzZXIoY2xvc3VyZSktPnN0YXJ0RG9jdW1lbnQoY3R4dC0+dmVyc2lv
biwgY3R4dC0+ZW5jb2RpbmcsIGN0eHQtPnN0YW5kYWxvbmUpOwogICAgIHhtbFNBWDJTdGFydERv
Y3VtZW50KGNsb3N1cmUpOwogfQogCiBzdGF0aWMgdm9pZCBlbmREb2N1bWVudEhhbmRsZXIodm9p
ZCogY2xvc3VyZSkKIHsKLSAgICBnZXRUb2tlbml6ZXIoY2xvc3VyZSktPmVuZERvY3VtZW50KCk7
CisgICAgZ2V0UGFyc2VyKGNsb3N1cmUpLT5lbmREb2N1bWVudCgpOwogICAgIHhtbFNBWDJFbmRE
b2N1bWVudChjbG9zdXJlKTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZXJuYWxTdWJzZXRIYW5kbGVy
KHZvaWQqIGNsb3N1cmUsIGNvbnN0IHhtbENoYXIqIG5hbWUsIGNvbnN0IHhtbENoYXIqIGV4dGVy
bmFsSUQsIGNvbnN0IHhtbENoYXIqIHN5c3RlbUlEKQogewotICAgIGdldFRva2VuaXplcihjbG9z
dXJlKS0+aW50ZXJuYWxTdWJzZXQobmFtZSwgZXh0ZXJuYWxJRCwgc3lzdGVtSUQpOworICAgIGdl
dFBhcnNlcihjbG9zdXJlKS0+aW50ZXJuYWxTdWJzZXQobmFtZSwgZXh0ZXJuYWxJRCwgc3lzdGVt
SUQpOwogICAgIHhtbFNBWDJJbnRlcm5hbFN1YnNldChjbG9zdXJlLCBuYW1lLCBleHRlcm5hbElE
LCBzeXN0ZW1JRCk7CiB9CiAKQEAgLTEyNDYsNyArMTI0Niw3IEBAIHN0YXRpYyB2b2lkIGV4dGVy
bmFsU3Vic2V0SGFuZGxlcih2b2lkKiBjbG9zdXJlLCBjb25zdCB4bWxDaGFyKiwgY29uc3QgeG1s
Q2hhcioKICAgICAgICAgfHwgKGV4dElkID09ICItLy9XM0MvL0RURCBYSFRNTCAxLjEgcGx1cyBN
YXRoTUwgMi4wIHBsdXMgU1ZHIDEuMS8vRU4iKQogICAgICAgICB8fCAoZXh0SWQgPT0gIi0vL1dB
UEZPUlVNLy9EVEQgWEhUTUwgTW9iaWxlIDEuMC8vRU4iKQogICAgICAgICkKLSAgICAgICAgZ2V0
VG9rZW5pemVyKGNsb3N1cmUpLT5zZXRJc1hIVE1MRG9jdW1lbnQodHJ1ZSk7IC8vIGNvbnRyb2xz
IGlmIHdlIHJlcGxhY2UgZW50aXRpZXMgb3Igbm90LgorICAgICAgICBnZXRQYXJzZXIoY2xvc3Vy
ZSktPnNldElzWEhUTUxEb2N1bWVudCh0cnVlKTsgLy8gY29udHJvbHMgaWYgd2UgcmVwbGFjZSBl
bnRpdGllcyBvciBub3QuCiB9CiAKIHN0YXRpYyB2b2lkIGlnbm9yYWJsZVdoaXRlc3BhY2VIYW5k
bGVyKHZvaWQqLCBjb25zdCB4bWxDaGFyKiwgaW50KQpAQCAtMTM4OCwyMiArMTM4OCwyMiBAQCBi
b29sIHBhcnNlWE1MRG9jdW1lbnRGcmFnbWVudChjb25zdCBTdHJpbmcmIGNodW5rLCBEb2N1bWVu
dEZyYWdtZW50KiBmcmFnbWVudCwgRQogICAgIGlmICghY2h1bmsubGVuZ3RoKCkpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCi0gICAgWE1MRG9jdW1lbnRQYXJzZXIgdG9rZW5pemVyKGZyYWdtZW50
LCBwYXJlbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pOworICAgIFhNTERvY3VtZW50UGFyc2VyIHBh
cnNlcihmcmFnbWVudCwgcGFyZW50LCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKIAogICAgIENTdHJp
bmcgY2h1bmtBc1V0ZjggPSBjaHVuay51dGY4KCk7Ci0gICAgdG9rZW5pemVyLmluaXRpYWxpemVQ
YXJzZXJDb250ZXh0KGNodW5rQXNVdGY4LmRhdGEoKSk7CisgICAgcGFyc2VyLmluaXRpYWxpemVQ
YXJzZXJDb250ZXh0KGNodW5rQXNVdGY4LmRhdGEoKSk7CiAKLSAgICB4bWxQYXJzZUNvbnRlbnQo
dG9rZW5pemVyLmNvbnRleHQoKSk7CisgICAgeG1sUGFyc2VDb250ZW50KHBhcnNlci5jb250ZXh0
KCkpOwogCi0gICAgdG9rZW5pemVyLmVuZERvY3VtZW50KCk7CisgICAgcGFyc2VyLmVuZERvY3Vt
ZW50KCk7CiAKICAgICAvLyBDaGVjayBpZiBhbGwgdGhlIGNodW5rIGhhcyBiZWVuIHByb2Nlc3Nl
ZC4KLSAgICBsb25nIGJ5dGVzUHJvY2Vzc2VkID0geG1sQnl0ZUNvbnN1bWVkKHRva2VuaXplci5j
b250ZXh0KCkpOworICAgIGxvbmcgYnl0ZXNQcm9jZXNzZWQgPSB4bWxCeXRlQ29uc3VtZWQocGFy
c2VyLmNvbnRleHQoKSk7CiAgICAgaWYgKGJ5dGVzUHJvY2Vzc2VkID09IC0xIHx8ICgodW5zaWdu
ZWQgbG9uZylieXRlc1Byb2Nlc3NlZCkgIT0gY2h1bmtBc1V0ZjgubGVuZ3RoKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIC8vIE5vIGVycm9yIGlmIHRoZSBjaHVuayBpcyB3ZWxsIGZv
cm1lZCBvciBpdCBpcyBub3QgYnV0IHdlIGhhdmUgbm8gZXJyb3IuCi0gICAgcmV0dXJuIHRva2Vu
aXplci5jb250ZXh0KCktPndlbGxGb3JtZWQgfHwgeG1sQ3R4dEdldExhc3RFcnJvcih0b2tlbml6
ZXIuY29udGV4dCgpKSA9PSAwOworICAgIHJldHVybiBwYXJzZXIuY29udGV4dCgpLT53ZWxsRm9y
bWVkIHx8IHhtbEN0eHRHZXRMYXN0RXJyb3IocGFyc2VyLmNvbnRleHQoKSkgPT0gMDsKIH0KIAog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJz
ZXJRdC5jcHAKaW5kZXggZjA3YmM1ZTEyMzc2MDcwZGEzNWJhNzI1ZmE1ZWRhZjVlZDFjZjA3MS4u
ODlmNTQyZjZiYTc4NTAxMDdkOTkyNDNlYjA4ODYwYWJiZjc3MDYxOSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9j
dW1lbnRQYXJzZXJRdC5jcHAKQEAgLTI2MiwxMyArMjYyLDEzIEBAIGJvb2wgcGFyc2VYTUxEb2N1
bWVudEZyYWdtZW50KGNvbnN0IFN0cmluZyYgY2h1bmssIERvY3VtZW50RnJhZ21lbnQqIGZyYWdt
ZW50LCBFCiAgICAgaWYgKCFjaHVuay5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
LSAgICBYTUxEb2N1bWVudFBhcnNlciB0b2tlbml6ZXIoZnJhZ21lbnQsIHBhcmVudCwgc2NyaXB0
aW5nUGVybWlzc2lvbik7CisgICAgWE1MRG9jdW1lbnRQYXJzZXIgcGFyc2VyKGZyYWdtZW50LCBw
YXJlbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24pOwogCi0gICAgdG9rZW5pemVyLndyaXRlKFN0cmlu
ZygiPHF4bWxzdHJlYW1kdW1teWVsZW1lbnQ+IiksIGZhbHNlKTsKLSAgICB0b2tlbml6ZXIud3Jp
dGUoY2h1bmssIGZhbHNlKTsKLSAgICB0b2tlbml6ZXIud3JpdGUoU3RyaW5nKCI8L3F4bWxzdHJl
YW1kdW1teWVsZW1lbnQ+IiksIGZhbHNlKTsKLSAgICB0b2tlbml6ZXIuZmluaXNoKCk7Ci0gICAg
cmV0dXJuICF0b2tlbml6ZXIuaGFzRXJyb3IoKTsKKyAgICBwYXJzZXIud3JpdGUoU3RyaW5nKCI8
cXhtbHN0cmVhbWR1bW15ZWxlbWVudD4iKSwgZmFsc2UpOworICAgIHBhcnNlci53cml0ZShjaHVu
aywgZmFsc2UpOworICAgIHBhcnNlci53cml0ZShTdHJpbmcoIjwvcXhtbHN0cmVhbWR1bW15ZWxl
bWVudD4iKSwgZmFsc2UpOworICAgIHBhcnNlci5maW5pc2goKTsKKyAgICByZXR1cm4gIXBhcnNl
ci5oYXNFcnJvcigpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1RW50aXR5UGFyc2VyLmNwcCBiL1dlYkNvcmUv
aHRtbC9IVE1MNUVudGl0eVBhcnNlci5jcHAKaW5kZXggZjU5ODlmOWMyMDNjYTkzMmE1MGY3NWI1
YWUwYjAzNjY0N2Q3OGU3Yi4uZjE2ODI0NWI0YTM2YmM3ODIzMzExYjNkMjE1MzUwYjQ2Nzk1Njdk
YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1RW50aXR5UGFyc2VyLmNwcAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTDVFbnRpdHlQYXJzZXIuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKIC8v
IFVzZSBfX0dOVUNfXyBpbnN0ZWFkIG9mIFBMQVRGT1JNKEdDQykgdG8gc3RheSBjb25zaXN0ZW50
IHdpdGggdGhlIGdwZXJmIGdlbmVyYXRlZCBjIGZpbGUKICNpZmRlZiBfX0dOVUNfXwotLy8gVGhl
IG1haW4gdG9rZW5pemVyIGluY2x1ZGVzIHRoaXMgdG9vIHNvIHdlIGFyZSBnZXR0aW5nIHR3byBj
b3BpZXMgb2YgdGhlIGRhdGEuIEhvd2V2ZXIsIHRoaXMgd2F5IHRoZSBjb2RlIGdldHMgaW5saW5l
ZC4KKy8vIFRoZSBtYWluIHBhcnNlciBpbmNsdWRlcyB0aGlzIHRvbyBzbyB3ZSBhcmUgZ2V0dGlu
ZyB0d28gY29waWVzIG9mIHRoZSBkYXRhLiBIb3dldmVyLCB0aGlzIHdheSB0aGUgY29kZSBnZXRz
IGlubGluZWQuCiAjaW5jbHVkZSAiSFRNTEVudGl0eU5hbWVzLmNwcCIKICNlbHNlCiAvLyBOb3Qg
aW5saW5lZCBmb3Igbm9uLUdDQyBjb21waWxlcnMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKaW5kZXggMWY4
NzkwY2UwYTdmY2E0YzhkMzQ3NWVlZTQ0N2MyN2RiNmI1NGJkYi4uMDUwNzRhNDY1ZjYzODI5ZjFm
NzE5YThlODkwMjM2NjNmNDIxMjhjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1
bWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKQEAgLTI4Myw3ICsy
ODMsNyBAQCB2b2lkIEhUTUxEb2N1bWVudDo6cmVsZWFzZUV2ZW50cygpCiB7CiB9CiAKLURvY3Vt
ZW50UGFyc2VyKiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZVRva2VuaXplcigpCitEb2N1bWVudFBhcnNl
ciogSFRNTERvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQogewogICAgIGJvb2wgcmVwb3J0RXJyb3Jz
ID0gZmFsc2U7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MRG9jdW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAppbmRleCAwZTI3
NGU1NmJiMjBhZDRmY2E1MGIyYmQyNDI1ODAzYmExMzMxZDkwLi4zM2FlMzY5ZmE2YjZiM2I5MmY2
NWM4ZDhjZTk0MThhMmNmZmY3M2JkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERvY3Vt
ZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCkBAIC04OCw3ICs4OCw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiB0YWdOYW1lLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2aXJ0
dWFsIGJvb2wgaXNGcmFtZVNldCgpIGNvbnN0OwotICAgIHZpcnR1YWwgRG9jdW1lbnRQYXJzZXIq
IGNyZWF0ZVRva2VuaXplcigpOworICAgIHZpcnR1YWwgRG9jdW1lbnRQYXJzZXIqIGNyZWF0ZVBh
cnNlcigpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVQYXJzZU1vZGUoKTsKIAogICAgIHZv
aWQgYWRkSXRlbVRvTWFwKEhhc2hDb3VudGVkU2V0PEF0b21pY1N0cmluZ0ltcGwqPiYsIGNvbnN0
IEF0b21pY1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudFBh
cnNlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCAyYjA4
ZmU5MDUzZWQ2ZmE5MGUzNTE3ZjJhMDNiYWU5NTRlNWFmZTFlLi4wYjI5ZGM5Y2QxZWVkODk3OTM3
MTc2YmI2YWI2OGQzYmVmMjBiNTZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERvY3Vt
ZW50UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcApA
QCAtNjYsMTUgKzY2LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKIAotLy8gVGhpcyB2YWx1ZSBpcyB1c2VkIHRvIGRlZmluZSBob3cgbWFueSBj
aGFyYWN0ZXJzIHRoZSB0b2tlbml6ZXIgd2lsbCBwcm9jZXNzIGJlZm9yZQorLy8gVGhpcyB2YWx1
ZSBpcyB1c2VkIHRvIGRlZmluZSBob3cgbWFueSBjaGFyYWN0ZXJzIHRoZSBwYXJzZXIgd2lsbCBw
cm9jZXNzIGJlZm9yZQogLy8geWVpbGRpbmcgY29udHJvbC4KLS8vIFRvIGluY3JlYXNlIHJlc3Bv
bnNpdm5lc3MgcmVkdWNlIHRoZSB0b2tlbml6ZXIgY2h1bmsgc2l6ZS4KKy8vIFRvIGluY3JlYXNl
IHJlc3BvbnNpdm5lc3MgcmVkdWNlIHRoZSBwYXJzZXIgY2h1bmsgc2l6ZS4KIHN0YXRpYyBjb25z
dCBpbnQgZGVmYXVsdFRva2VuaXplckNodW5rU2l6ZSA9IDQwOTY7CiAKIC8vIEZJWE1FOiBXZSB3
b3VsZCBsaWtlIHRoaXMgY29uc3RhbnQgdG8gYmUgMjAwbXMuCiAvLyBZaWVsZGluZyBtb3JlIGFn
Z3Jlc3NpdmVseSByZXN1bHRzIGluIGluY3JlYXNlZCByZXNwb25zaXZlbmVzcyBhbmQgYmV0dGVy
IGluY3JlbWVudGFsIHJlbmRlcmluZy4KIC8vIEl0IHNsb3dzIGRvd24gb3ZlcmFsbCBwYWdlLWxv
YWQgb24gc2xvd2VyIG1hY2hpbmVzLCB0aG91Z2gsIHNvIGZvciBub3cgd2Ugc2V0IGEgdmFsdWUg
b2YgNTAwLgotLy8gRm9yIHNtYWxsZXIgY2h1bmtzIChhYm92ZSkgZGVjcmVhc2UgdGhlIHZhbHVl
IG9mIFRpbWVyRGVsYXkgYXMgdGhlIHRoZSB0b2tlbml6ZXIgc2hvdWxkIG5vdAorLy8gRm9yIHNt
YWxsZXIgY2h1bmtzIChhYm92ZSkgZGVjcmVhc2UgdGhlIHZhbHVlIG9mIFRpbWVyRGVsYXkgYXMg
dGhlIHRoZSBwYXJzZXIgc2hvdWxkIG5vdAogLy8geWllbGQgZm9yIGFzIGxvbmcgYSBwZXJpb2Qg
b3RoZXJ3aXNlIGl0IHdpbGwgdGFrZSB3YXkgdG8gbG9uZyB0byBsb2FkIGEgcGFnZS4KIHN0YXRp
YyBjb25zdCBkb3VibGUgZGVmYXVsdFRva2VuaXplclRpbWVEZWxheSA9IDAuNTAwOwogCkBAIC0x
NzYzLDcgKzE3NjMsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6d3JpdGUoY29uc3QgU2Vn
bWVudGVkU3RyaW5nJiBzdHIsIGJvb2wgYXBwZW5kRGF0YSkKICAgICBlbHNlCiAgICAgICAgIHNl
dFNyYyhzb3VyY2UpOwogCi0gICAgLy8gT25jZSBhIHRpbWVyIGlzIHNldCwgaXQgaGFzIGNvbnRy
b2wgb2Ygd2hlbiB0aGUgdG9rZW5pemVyIGNvbnRpbnVlcy4KKyAgICAvLyBPbmNlIGEgdGltZXIg
aXMgc2V0LCBpdCBoYXMgY29udHJvbCBvZiB3aGVuIHRoZSBwYXJzZXIgY29udGludWVzLgogICAg
IGlmIChtX3RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTgwMSw3ICsx
ODAxLDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnN0b3BQYXJzaW5nKCkKICAgICBtX3Rp
bWVyLnN0b3AoKTsKIAogICAgIC8vIEZJWE1FOiBXaHkgaXMgSFRNTERvY3VtZW50UGFyc2VyIHRo
ZSBvbmx5IERvY3VtZW50UGFyc2VyIHdoaWNoIGNhbGxzIGNoZWNrQ29tcGxldGVkPwotICAgIC8v
IFRoZSBGcmFtZUxvYWRlciBuZWVkcyB0byBrbm93IHRoYXQgdGhlIHRva2VuaXplciBoYXMgZmlu
aXNoZWQgd2l0aCBpdHMgZGF0YSwKKyAgICAvLyBUaGUgRnJhbWVMb2FkZXIgbmVlZHMgdG8ga25v
dyB0aGF0IHRoZSBwYXJzZXIgaGFzIGZpbmlzaGVkIHdpdGggaXRzIGRhdGEsCiAgICAgLy8gcmVn
YXJkbGVzcyBvZiB3aGV0aGVyIGl0IGhhcHBlbmVkIG5hdHVyYWxseSBvciBkdWUgdG8gbWFudWFs
IGludGVydmVudGlvbi4KICAgICBpZiAoIW1fZnJhZ21lbnQgJiYgbV9kb2MtPmZyYW1lKCkpCiAg
ICAgICAgIG1fZG9jLT5mcmFtZSgpLT5sb2FkZXIoKS0+Y2hlY2tDb21wbGV0ZWQoKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAyYjY4MjRhMzRmZDlmZDk2YzQw
YTdlYzU0YmFkNTgzZmJjNmU5MGYwLi5kM2UxZjJlNzAwNWUyNjI4ZTk4YTc1YTlkNjY4MjVjNWI1
NzM0NGMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0xNzgs
MTEgKzE3OCwxMSBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnJlbW92ZWRGcm9tVHJl
ZShib29sIGRlZXApCiB7CiAgICAgLy8gSWYgdGhlIGZvcm0gYW5kIGVsZW1lbnQgYXJlIGJvdGgg
aW4gdGhlIHNhbWUgdHJlZSwgcHJlc2VydmUgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIGZvcm0uCiAg
ICAgLy8gT3RoZXJ3aXNlLCBudWxsIG91dCBvdXIgZm9ybSBhbmQgcmVtb3ZlIG91cnNlbHZlcyBm
cm9tIHRoZSBmb3JtJ3MgbGlzdCBvZiBlbGVtZW50cy4KLSAgICBIVE1MUGFyc2VyKiBwYXJzZXIg
PSAwOwotICAgIGlmIChEb2N1bWVudFBhcnNlciogdG9rZW5pemVyID0gZG9jdW1lbnQoKS0+dG9r
ZW5pemVyKCkpCi0gICAgICAgIHBhcnNlciA9IHRva2VuaXplci0+aHRtbFBhcnNlcigpOworICAg
IEhUTUxQYXJzZXIqIHRyZWVCdWlsZGVyID0gMDsKKyAgICBpZiAoRG9jdW1lbnRQYXJzZXIqIHBh
cnNlciA9IGRvY3VtZW50KCktPnBhcnNlcigpKQorICAgICAgICB0cmVlQnVpbGRlciA9IHBhcnNl
ci0+aHRtbFBhcnNlcigpOwogCi0gICAgaWYgKG1fZm9ybSAmJiAhKHBhcnNlciAmJiBwYXJzZXIt
PmlzSGFuZGxpbmdSZXNpZHVhbFN0eWxlQWNyb3NzQmxvY2tzKCkpICYmIGZpbmRSb290KHRoaXMp
ICE9IGZpbmRSb290KG1fZm9ybSkpIHsKKyAgICBpZiAobV9mb3JtICYmICEodHJlZUJ1aWxkZXIg
JiYgdHJlZUJ1aWxkZXItPmlzSGFuZGxpbmdSZXNpZHVhbFN0eWxlQWNyb3NzQmxvY2tzKCkpICYm
IGZpbmRSb290KHRoaXMpICE9IGZpbmRSb290KG1fZm9ybSkpIHsKICAgICAgICAgbV9mb3JtLT5y
ZW1vdmVGb3JtRWxlbWVudCh0aGlzKTsKICAgICAgICAgbV9mb3JtID0gMDsKICAgICB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFBh
cnNlci5jcHAKaW5kZXggMjQwMWNiYmU1MjVkZmI0OGFkNjljMGU2M2JkZGRmNjRjMTI3ZmMwNi4u
MDYyYzY5NDQ0MTFhMzBlNjliOGQwYmQ4YjkwODk5YmMwYzIwMDIwNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MUGFyc2VyLmNw
cApAQCAtMTYzNyw3ICsxNjM3LDcgQEAgdm9pZCBIVE1MUGFyc2VyOjpmaW5pc2hlZCgpCiAgICAg
ZnJlZUJsb2NrKCk7CiAgICAgc2V0Q3VycmVudCgwKTsKIAotICAgIC8vIFdhcm5pbmcsIHRoaXMg
bWF5IGRlbGV0ZSB0aGUgdG9rZW5pemVyIGFuZCBwYXJzZXIsIHNvIGRvbid0IHRyeSB0byBkbyBh
bnl0aGluZyBlbHNlIGFmdGVyIHRoaXMuCisgICAgLy8gV2FybmluZywgdGhpcyBtYXkgZGVsZXRl
IHRoZSBwYXJzZXIsIHNvIGRvbid0IHRyeSB0byBkbyBhbnl0aGluZyBlbHNlIGFmdGVyIHRoaXMu
CiAgICAgaWYgKCFtX2lzUGFyc2luZ0ZyYWdtZW50KQogICAgICAgICBtX2RvY3VtZW50LT5maW5p
c2hlZFBhcnNpbmcoKTsKIH0KQEAgLTE2NDgsNyArMTY0OCw3IEBAIHZvaWQgSFRNTFBhcnNlcjo6
cmVwb3J0RXJyb3JUb0NvbnNvbGUoSFRNTFBhcnNlckVycm9yQ29kZSBlcnJvckNvZGUsIGNvbnN0
IEF0b21pCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIEhUTUxE
b2N1bWVudFBhcnNlciogaHRtbFRva2VuaXplciA9IHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudFBh
cnNlcio+KG1fZG9jdW1lbnQtPnRva2VuaXplcigpKTsKKyAgICBIVE1MRG9jdW1lbnRQYXJzZXIq
IGh0bWxUb2tlbml6ZXIgPSBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnRQYXJzZXIqPihtX2RvY3Vt
ZW50LT5wYXJzZXIoKSk7CiAgICAgaW50IGxpbmVOdW1iZXIgPSBodG1sVG9rZW5pemVyLT5saW5l
TnVtYmVyKCkgKyAxOwogCiAgICAgQXRvbWljU3RyaW5nIHRhZzE7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFZp
ZXdTb3VyY2VEb2N1bWVudC5jcHAKaW5kZXggOWQyNmQ3YWI4MTIxYzc2NDA5NWUxZWFmOGRkZDBh
MjM0ZDY2YmE3Zi4uNTM5MWRkYzJkODA0Y2NkZjU3NmI2YjU2YWVjZWI1ZDI3ZTUyMzEzOSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuY3BwCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBI
VE1MVmlld1NvdXJjZURvY3VtZW50OjpIVE1MVmlld1NvdXJjZURvY3VtZW50KEZyYW1lKiBmcmFt
ZSwgY29uc3QgU3RyaW5nJiBtaW1lVAogICAgIHNldFVzZXNCZWZvcmVBZnRlclJ1bGVzKHRydWUp
OwogfQogCi1Eb2N1bWVudFBhcnNlciogSFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6Y3JlYXRlVG9r
ZW5pemVyKCkKK0RvY3VtZW50UGFyc2VyKiBIVE1MVmlld1NvdXJjZURvY3VtZW50OjpjcmVhdGVQ
YXJzZXIoKQogewogICAgIC8vIFVzZSBIVE1MRG9jdW1lbnRQYXJzZXIgaWYgYXBwbGljYWJsZSwg
b3RoZXJ3aXNlIHVzZSBUZXh0RG9jdW1lbnRQYXJzZXIuCiAgICAgaWYgKG1fdHlwZSA9PSAidGV4
dC9odG1sIiB8fCBtX3R5cGUgPT0gImFwcGxpY2F0aW9uL3hodG1sK3htbCIgfHwgbV90eXBlID09
ICJpbWFnZS9zdmcreG1sIiB8fCBET01JbXBsZW1lbnRhdGlvbjo6aXNYTUxNSU1FVHlwZShtX3R5
cGUpCkBAIC02Myw3ICs2Myw3IEBAIERvY3VtZW50UGFyc2VyKiBIVE1MVmlld1NvdXJjZURvY3Vt
ZW50OjpjcmVhdGVUb2tlbml6ZXIoKQogICAgICAgICByZXR1cm4gbmV3IEhUTUxEb2N1bWVudFBh
cnNlcih0aGlzKTsKICAgICB9CiAKLSAgICByZXR1cm4gY3JlYXRlVGV4dFRva2VuaXplcih0aGlz
KTsKKyAgICByZXR1cm4gY3JlYXRlVGV4dERvY3VtZW50UGFyc2VyKHRoaXMpOwogfQogCiB2b2lk
IEhUTUxWaWV3U291cmNlRG9jdW1lbnQ6OmNyZWF0ZUNvbnRhaW5pbmdUYWJsZSgpCkBAIC0yNDQs
NyArMjQ0LDcgQEAgdm9pZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjphZGRMaW5lKGNvbnN0IFN0
cmluZyYgY2xhc3NOYW1lKQogICAgIG1fY3VycmVudCA9IG1fdGQgPSB0ZDsKIAogI2lmZGVmIERF
QlVHX0xJTkVfTlVNQkVSUwotICAgIFJlZlB0cjxUZXh0PiBsaW5lTnVtYmVyVGV4dCA9IFRleHQ6
OmNyZWF0ZSh0aGlzLCBTdHJpbmc6Om51bWJlcih0b2tlbml6ZXIoKS0+bGluZU51bWJlcigpICsg
MSkgKyAiICIpOworICAgIFJlZlB0cjxUZXh0PiBsaW5lTnVtYmVyVGV4dCA9IFRleHQ6OmNyZWF0
ZSh0aGlzLCBTdHJpbmc6Om51bWJlcihwYXJzZXIoKS0+bGluZU51bWJlcigpICsgMSkgKyAiICIp
OwogICAgIHRkLT5hZGRDaGlsZChsaW5lTnVtYmVyVGV4dCk7CiAgICAgbGluZU51bWJlclRleHQt
PmF0dGFjaCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3Vy
Y2VEb2N1bWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuaAppbmRl
eCAxN2RiOGVmN2QyNzBjYWY5OTlmZDc5OTZmN2MxMGE0YzI5ODhmMDYyLi43ZGU3ZjMxMTE0N2Zk
MTcxM2MyZDAwMzY1NzMyYzYwNWI5ZWZkYWFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TFZpZXdTb3VyY2VEb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURv
Y3VtZW50LmgKQEAgLTQyLDE1ICs0MiwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSFRNTFZpZXdTb3VyY2VEb2N1bWVudChmcmFtZSwgbWltZVR5cGUpKTsKICAgICB9
CiAKLSAgICB2b2lkIGFkZFZpZXdTb3VyY2VUb2tlbihUb2tlbiopOyAvLyBVc2VkIGJ5IHRoZSBI
VE1MIHRva2VuaXplci4KLSAgICB2b2lkIGFkZFZpZXdTb3VyY2VUZXh0KGNvbnN0IFN0cmluZyYp
OyAvLyBVc2VkIGJ5IHRoZSBwbGFpbnRleHQgdG9rZW5pemVyLgorICAgIHZvaWQgYWRkVmlld1Nv
dXJjZVRva2VuKFRva2VuKik7IC8vIFVzZWQgYnkgdGhlIEhUTUxEb2N1bWVudFBhcnNlci4KKyAg
ICB2b2lkIGFkZFZpZXdTb3VyY2VUZXh0KGNvbnN0IFN0cmluZyYpOyAvLyBVc2VkIGJ5IHRoZSBU
ZXh0RG9jdW1lbnRQYXJzZXIuCiAgICAgdm9pZCBhZGRWaWV3U291cmNlRG9jdHlwZVRva2VuKERv
Y3R5cGVUb2tlbiopOwogCiBwcml2YXRlOgogICAgIEhUTUxWaWV3U291cmNlRG9jdW1lbnQoRnJh
bWUqLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAogICAgIC8vIFJldHVybnMgSFRNTERvY3Vt
ZW50UGFyc2VyIG9yIFRleHREb2N1bWVudFBhcnNlciBiYXNlZCBvbiBtX3R5cGUuCi0gICAgdmly
dHVhbCBEb2N1bWVudFBhcnNlciogY3JlYXRlVG9rZW5pemVyKCk7CisgICAgdmlydHVhbCBEb2N1
bWVudFBhcnNlciogY3JlYXRlUGFyc2VyKCk7CiAKICAgICB2b2lkIGNyZWF0ZUNvbnRhaW5pbmdU
YWJsZSgpOwogICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gYWRkU3BhbldpdGhDbGFzc05hbWUoY29u
c3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAgYi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggYTFiMWNkMDZkMzU3
NTI4MTYyYjdmYmY2MGJmMTkwN2Q4MDlmYWJiMS4uNmM0Zjc2YmI2MGE1YzU5YjUyYWMzN2RlYzU5
NGUwYjI3NWIzYjA3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMzkzLDcgKzM5
Myw3IEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9hZGluZ0luQVBJU2Vuc2UoKSBjb25zdAog
ICAgICAgICBEb2N1bWVudCogZG9jID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKICAgICAgICAgaWYg
KGRvYy0+ZG9jTG9hZGVyKCktPnJlcXVlc3RDb3VudCgpKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIGlmIChEb2N1bWVudFBhcnNlciogdG9rID0gZG9jLT50b2tlbml6ZXIoKSkK
KyAgICAgICAgaWYgKERvY3VtZW50UGFyc2VyKiB0b2sgPSBkb2MtPnBhcnNlcigpKQogICAgICAg
ICAgICAgaWYgKHRvay0+cHJvY2Vzc2luZ0RhdGEoKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5j
cHAgYi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKaW5kZXggNDlmNTcyMTNjNjg1
ZjUzZmNlNGI0YjdjMDEwNjU0MDA4NDc2ZDNhZC4uY2MyNjMyYjNhNGJhMDg4YzI0M2ZjZGU1NDY2
YTJlOGRlODAwMTQxNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIu
Y3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAtOTksNyArOTks
NyBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjpiZWdpbihjb25zdCBLVVJMJiB1cmwsIGJvb2wgZGlz
cGF0Y2gsIFNlY3VyaXR5T3JpZ2luKiBvcmlnaQogICAgIFJlZlB0cjxEb2N1bWVudD4gZG9jdW1l
bnQgPSBjcmVhdGVEb2N1bWVudCgpOwogICAgIAogICAgIC8vIElmIHRoZSBuZXcgZG9jdW1lbnQg
aXMgZm9yIGEgUGx1Z2luIGJ1dCB3ZSdyZSBzdXBwb3NlZCB0byBiZSBzYW5kYm94ZWQgZnJvbSBQ
bHVnaW5zLAotICAgIC8vIHRoZW4gcmVwbGFjZSB0aGUgZG9jdW1lbnQgd2l0aCBvbmUgd2hvc2Ug
dG9rZW5pemVyIHdpbGwgaWdub3JlIHRoZSBpbmNvbWluZyBkYXRhIChidWcgMzkzMjMpCisgICAg
Ly8gdGhlbiByZXBsYWNlIHRoZSBkb2N1bWVudCB3aXRoIG9uZSB3aG9zZSBwYXJzZXIgd2lsbCBp
Z25vcmUgdGhlIGluY29taW5nIGRhdGEgKGJ1ZyAzOTMyMykKICAgICBpZiAoZG9jdW1lbnQtPmlz
UGx1Z2luRG9jdW1lbnQoKSAmJiBtX2ZyYW1lLT5sb2FkZXIoKS0+aXNTYW5kYm94ZWQoU2FuZGJv
eFBsdWdpbnMpKQogICAgICAgICBkb2N1bWVudCA9IFNpbmtEb2N1bWVudDo6Y3JlYXRlKG1fZnJh
bWUpOwogCkBAIC0xMzYsMTAgKzEzNiwxMCBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjphZGREYXRh
KGNvbnN0IGNoYXIqIHN0ciwgaW50IGxlbiwgYm9vbCBmbHVzaCkKICAgICBpZiAobGVuID09IC0x
KQogICAgICAgICBsZW4gPSBzdHJsZW4oc3RyKTsKIAotICAgIERvY3VtZW50UGFyc2VyKiB0b2tl
bml6ZXIgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT50b2tlbml6ZXIoKTsKLSAgICBpZiAodG9rZW5p
emVyICYmIHRva2VuaXplci0+d2FudHNSYXdEYXRhKCkpIHsKKyAgICBEb2N1bWVudFBhcnNlciog
cGFyc2VyID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cGFyc2VyKCk7CisgICAgaWYgKHBhcnNlciAm
JiBwYXJzZXItPndhbnRzUmF3RGF0YSgpKSB7CiAgICAgICAgIGlmIChsZW4gPiAwKQotICAgICAg
ICAgICAgdG9rZW5pemVyLT53cml0ZVJhd0RhdGEoc3RyLCBsZW4pOworICAgICAgICAgICAgcGFy
c2VyLT53cml0ZVJhd0RhdGEoc3RyLCBsZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IApAQCAtMTg2LDkgKzE4Niw5IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmFkZERhdGEoY29uc3Qg
Y2hhciogc3RyLCBpbnQgbGVuLCBib29sIGZsdXNoKQogICAgICAgICBtX2ZyYW1lLT5kb2N1bWVu
dCgpLT5yZWNhbGNTdHlsZShOb2RlOjpGb3JjZSk7CiAgICAgfQogCi0gICAgaWYgKHRva2VuaXpl
cikgewotICAgICAgICBBU1NFUlQoIXRva2VuaXplci0+d2FudHNSYXdEYXRhKCkpOwotICAgICAg
ICB0b2tlbml6ZXItPndyaXRlKGRlY29kZWQsIHRydWUpOworICAgIGlmIChwYXJzZXIpIHsKKyAg
ICAgICAgQVNTRVJUKCFwYXJzZXItPndhbnRzUmF3RGF0YSgpKTsKKyAgICAgICAgcGFyc2VyLT53
cml0ZShkZWNvZGVkLCB0cnVlKTsKICAgICB9CiB9CiAKQEAgLTIwMiw4ICsyMDIsOCBAQCB2b2lk
IERvY3VtZW50V3JpdGVyOjphZGREYXRhKGNvbnN0IFN0cmluZyYgc3RyKQogICAgICAgICBtX2Zy
YW1lLT5kb2N1bWVudCgpLT5zZXRQYXJzZU1vZGUoRG9jdW1lbnQ6OlN0cmljdCk7CiAgICAgfQog
Ci0gICAgaWYgKERvY3VtZW50UGFyc2VyKiB0b2tlbml6ZXIgPSBtX2ZyYW1lLT5kb2N1bWVudCgp
LT50b2tlbml6ZXIoKSkKLSAgICAgICAgdG9rZW5pemVyLT53cml0ZShzdHIsIHRydWUpOworICAg
IGlmIChEb2N1bWVudFBhcnNlciogcGFyc2VyID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cGFyc2Vy
KCkpCisgICAgICAgIHBhcnNlci0+d3JpdGUoc3RyLCB0cnVlKTsKIH0KIAogdm9pZCBEb2N1bWVu
dFdyaXRlcjo6ZW5kKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeURv
Y3VtZW50LmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAppbmRl
eCA3OWFkODNmMzZkZTk0ZDFlMmY2NTAwYWE4OTI5NWZkOWVmZjYxYjFiLi41ZDFiMmJmOTk5MDgx
N2U2YmE5OTI3NWM0YzliNGNjZTFkZWY2MmViIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9G
VFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5
RG9jdW1lbnQuY3BwCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgICAgIAog
cHJpdmF0ZToKLSAgICAvLyBUaGUgdG9rZW5pemVyIHdpbGwgYXR0ZW1wdCB0byBsb2FkIHRoZSBk
b2N1bWVudCB0ZW1wbGF0ZSBzcGVjaWZpZWQgdmlhIHRoZSBwcmVmZXJlbmNlCisgICAgLy8gVGhl
IHBhcnNlciB3aWxsIGF0dGVtcHQgdG8gbG9hZCB0aGUgZG9jdW1lbnQgdGVtcGxhdGUgc3BlY2lm
aWVkIHZpYSB0aGUgcHJlZmVyZW5jZQogICAgIC8vIEZhaWxpbmcgdGhhdCwgaXQgd2lsbCBmYWxs
IGJhY2sgYW5kIGNyZWF0ZSB0aGUgYmFzaWMgZG9jdW1lbnQgd2hpY2ggd2lsbCBoYXZlIGEgbWlu
aW1hbAogICAgIC8vIHRhYmxlIGZvciBwcmVzZW50aW5nIHRoZSBGVFAgZGlyZWN0b3J5IGluIGEg
dXNlZnVsIG1hbm5lcgogICAgIGJvb2wgbG9hZERvY3VtZW50VGVtcGxhdGUoKTsKQEAgLTQ0Miw3
ICs0NDIsNyBAQCBGVFBEaXJlY3RvcnlEb2N1bWVudDo6RlRQRGlyZWN0b3J5RG9jdW1lbnQoRnJh
bWUqIGZyYW1lKQogI2VuZGlmCiB9CiAKLURvY3VtZW50UGFyc2VyKiBGVFBEaXJlY3RvcnlEb2N1
bWVudDo6Y3JlYXRlVG9rZW5pemVyKCkKK0RvY3VtZW50UGFyc2VyKiBGVFBEaXJlY3RvcnlEb2N1
bWVudDo6Y3JlYXRlUGFyc2VyKCkKIHsKICAgICByZXR1cm4gbmV3IEZUUERpcmVjdG9yeURvY3Vt
ZW50UGFyc2VyKHRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0
b3J5RG9jdW1lbnQuaCBiL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeURvY3VtZW50LmgKaW5k
ZXggOTY0MzU2ZWU0Nzk4ZDEwZjc4MGFmZDFlMGJhMGIxZjYxZTE4YmEwYS4uZjc0NTA4YzVkZjQ5
M2NjMjcwYTY0MzRlZWNkNmVjNDAyNDQ3MGQ1ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIv
RlRQRGlyZWN0b3J5RG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlE
b2N1bWVudC5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBGVFBE
aXJlY3RvcnlEb2N1bWVudChGcmFtZSopOwotICAgIHZpcnR1YWwgRG9jdW1lbnRQYXJzZXIqIGNy
ZWF0ZVRva2VuaXplcigpOworICAgIHZpcnR1YWwgRG9jdW1lbnRQYXJzZXIqIGNyZWF0ZVBhcnNl
cigpOwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAppbmRleCBhNWI4ZmZiMDQzOGIyMGNiOGE0Zjc5ZWRhZTU3ODBlZjE2MmFkNjc0Li45NzQ1OGZh
MGE4ZTVjNDRjODM0YzI5ODEwMDk3YTY5Mzk4ODRhZDEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CkBAIC01NDgsOCArNTQ4LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3VibWl0Rm9ybShjb25zdCBj
aGFyKiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdXJsLCBQYXNzUmVmUHRyPEYKIAogdm9pZCBGcmFt
ZUxvYWRlcjo6c3RvcExvYWRpbmcoVW5sb2FkRXZlbnRQb2xpY3kgdW5sb2FkRXZlbnRQb2xpY3ks
IERhdGFiYXNlUG9saWN5IGRhdGFiYXNlUG9saWN5KQogewotICAgIGlmIChtX2ZyYW1lLT5kb2N1
bWVudCgpICYmIG1fZnJhbWUtPmRvY3VtZW50KCktPnRva2VuaXplcigpKQotICAgICAgICBtX2Zy
YW1lLT5kb2N1bWVudCgpLT50b2tlbml6ZXIoKS0+c3RvcFBhcnNpbmcoKTsKKyAgICBpZiAobV9m
cmFtZS0+ZG9jdW1lbnQoKSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5wYXJzZXIoKSkKKyAgICAg
ICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cGFyc2VyKCktPnN0b3BQYXJzaW5nKCk7CiAKICAgICBp
ZiAodW5sb2FkRXZlbnRQb2xpY3kgIT0gVW5sb2FkRXZlbnRQb2xpY3lOb25lKSB7CiAgICAgICAg
IGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpKSB7CkBAIC02MTgsOCArNjE4LDggQEAgdm9pZCBGcmFt
ZUxvYWRlcjo6c3RvcCgpCiAgICAgLy8gVGhlIGZyYW1lJ3MgbGFzdCByZWYgbWF5IGJlIHJlbW92
ZWQgYW5kIGl0IHdpbGwgYmUgZGVsZXRlZCBieSBjaGVja0NvbXBsZXRlZCgpLgogICAgIFJlZlB0
cjxGcmFtZT4gcHJvdGVjdG9yKG1fZnJhbWUpOwogICAgIAotICAgIGlmIChtX2ZyYW1lLT5kb2N1
bWVudCgpLT50b2tlbml6ZXIoKSkKLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dG9rZW5p
emVyKCktPnN0b3BQYXJzaW5nKCk7CisgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCktPnBhcnNl
cigpKQorICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5wYXJzZXIoKS0+c3RvcFBhcnNpbmco
KTsKICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5maW5pc2hQYXJzaW5nKCk7CiAKICAgICBpZiAo
bV9pY29uTG9hZGVyKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvSW1hZ2VEb2N1bWVudC5j
cHAgYi9XZWJDb3JlL2xvYWRlci9JbWFnZURvY3VtZW50LmNwcAppbmRleCA0Nzg1ZjA0YWJhM2U4
NWM4OGZjYzgyY2EwNzY1YjRmMWM1YmY1MTgxLi44YWI0MTJmY2U0N2Q4OTQzZGE2Y2NhOGNlMGM3
ZTgwZDNhODQ1M2Y3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9JbWFnZURvY3VtZW50LmNw
cAorKysgYi9XZWJDb3JlL2xvYWRlci9JbWFnZURvY3VtZW50LmNwcApAQCAtMTkyLDcgKzE5Miw3
IEBAIEltYWdlRG9jdW1lbnQ6OkltYWdlRG9jdW1lbnQoRnJhbWUqIGZyYW1lKQogICAgIHNldFBh
cnNlTW9kZShDb21wYXQpOwogfQogICAgIAotRG9jdW1lbnRQYXJzZXIqIEltYWdlRG9jdW1lbnQ6
OmNyZWF0ZVRva2VuaXplcigpCitEb2N1bWVudFBhcnNlciogSW1hZ2VEb2N1bWVudDo6Y3JlYXRl
UGFyc2VyKCkKIHsKICAgICByZXR1cm4gbmV3IEltYWdlVG9rZW5pemVyKHRoaXMpOwogfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvSW1hZ2VEb2N1bWVudC5oIGIvV2ViQ29yZS9sb2FkZXIv
SW1hZ2VEb2N1bWVudC5oCmluZGV4IGNjNjVhYmYyMzYwNWEwNGE0ODcxN2RlNGMxMDM1ZjdmZTZl
OTUxZGEuLmJkNjI3YjQyNTU4MDFlNjUyMWNmYzg1ZDk1ODMyMGZiYmNkZmRjZGMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvbG9hZGVyL0ltYWdlRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9J
bWFnZURvY3VtZW50LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBJ
bWFnZURvY3VtZW50KEZyYW1lKik7CiAKLSAgICB2aXJ0dWFsIERvY3VtZW50UGFyc2VyKiBjcmVh
dGVUb2tlbml6ZXIoKTsKKyAgICB2aXJ0dWFsIERvY3VtZW50UGFyc2VyKiBjcmVhdGVQYXJzZXIo
KTsKICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZURvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIAogICAgIHZvaWQgY3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL01lZGlhRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9sb2FkZXIvTWVk
aWFEb2N1bWVudC5jcHAKaW5kZXggZGIwMGUwOGIwOTlkYmFkOGEyZWNhMDdmNTE4YzllMGNhMTNi
MGQzYS4uZTUwNWMyZjVlOTM3NzdkMWU2OTlmNzg1OThhZjRjNTQyZjRiNGExYiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9sb2FkZXIvTWVkaWFEb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIv
TWVkaWFEb2N1bWVudC5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBNZWRpYURvY3VtZW50Ojp+TWVk
aWFEb2N1bWVudCgpCiAgICAgQVNTRVJUKCFtX3JlcGxhY2VNZWRpYUVsZW1lbnRUaW1lci5pc0Fj
dGl2ZSgpKTsKIH0KIAotRG9jdW1lbnRQYXJzZXIqIE1lZGlhRG9jdW1lbnQ6OmNyZWF0ZVRva2Vu
aXplcigpCitEb2N1bWVudFBhcnNlciogTWVkaWFEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKIHsK
ICAgICByZXR1cm4gbmV3IE1lZGlhRG9jdW1lbnRQYXJzZXIodGhpcyk7CiB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2xvYWRlci9NZWRpYURvY3VtZW50LmggYi9XZWJDb3JlL2xvYWRlci9NZWRpYURv
Y3VtZW50LmgKaW5kZXggMzQxNDllNWY5ZWZkZjIzYmJkOTUwMDg4ZWE3MThhZTBlZjY4NzczYS4u
OThlYjAyZmM3YmQ1M2QxYmU1ODVlZjViNmE1ZDJiNTg2YWJlZGEzZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9sb2FkZXIvTWVkaWFEb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL01lZGlhRG9j
dW1lbnQuaApAQCAtNDYsNyArNDYsNyBAQCBwcml2YXRlOgogICAgIE1lZGlhRG9jdW1lbnQoRnJh
bWUqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhRG9jdW1lbnQoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9ICAgICAgICAKLSAgICB2aXJ0dWFsIERvY3VtZW50UGFyc2VyKiBjcmVhdGVUb2tl
bml6ZXIoKTsKKyAgICB2aXJ0dWFsIERvY3VtZW50UGFyc2VyKiBjcmVhdGVQYXJzZXIoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL1BsdWdpbkRvY3VtZW50LmNwcCBiL1dlYkNvcmUvbG9hZGVyL1Bs
dWdpbkRvY3VtZW50LmNwcAppbmRleCA4ZGIwOTlhYjFlMTExZDBkZjUwN2NhNGJjM2VlMDIzMjJk
ZDY2MDBjLi43ODMzZDQxMjJlNjFkMjZiMWEzNjQwMmRhYjIyOWMzYzY0MDYzMGY0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2xvYWRlci9QbHVnaW5Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9sb2Fk
ZXIvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0xNTIsNyArMTUyLDcgQEAgUGx1Z2luRG9jdW1lbnQ6
OlBsdWdpbkRvY3VtZW50KEZyYW1lKiBmcmFtZSkKICAgICBzZXRQYXJzZU1vZGUoQ29tcGF0KTsK
IH0KICAgICAKLURvY3VtZW50UGFyc2VyKiBQbHVnaW5Eb2N1bWVudDo6Y3JlYXRlVG9rZW5pemVy
KCkKK0RvY3VtZW50UGFyc2VyKiBQbHVnaW5Eb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKIHsKICAg
ICByZXR1cm4gbmV3IFBsdWdpbkRvY3VtZW50UGFyc2VyKHRoaXMpOwogfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9sb2FkZXIvUGx1Z2luRG9jdW1lbnQuaCBiL1dlYkNvcmUvbG9hZGVyL1BsdWdpbkRv
Y3VtZW50LmgKaW5kZXggOWZmZGI4OGZiMzkzZGZmMzY5NDU5ZGIxMTE0ZGNlYTkzNmJkOGU3YS4u
ZTNmOThhN2Q5OTA0M2I5ZDZhNDQ4ZjRlODA0Y2ZlMjBhOWY0ZmJhMCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9sb2FkZXIvUGx1Z2luRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9QbHVnaW5E
b2N1bWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgUGx1Z2lu
RG9jdW1lbnQoRnJhbWUqKTsKIAotICAgIHZpcnR1YWwgRG9jdW1lbnRQYXJzZXIqIGNyZWF0ZVRv
a2VuaXplcigpOworICAgIHZpcnR1YWwgRG9jdW1lbnRQYXJzZXIqIGNyZWF0ZVBhcnNlcigpOwog
fTsKICAgICAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5jcHAg
Yi9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuY3BwCmluZGV4IDllM2M2NzA0YjRlYWIyMjIy
ZGE0YTUwOTM5YzdjMzFiZjg2MTQ0ZTQuLmQ0MGU1NjcyMzA2OTFkNmIyMWY5M2FiZWM1Mzk3MTI1
NjU1ZmFlOTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5jcHAKKysr
IGIvV2ViQ29yZS9sb2FkZXIvU2lua0RvY3VtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBTaW5r
RG9jdW1lbnQ6OlNpbmtEb2N1bWVudChGcmFtZSogZnJhbWUpCiAgICAgc2V0UGFyc2VNb2RlKENv
bXBhdCk7CiB9CiAgICAgCi1Eb2N1bWVudFBhcnNlciogU2lua0RvY3VtZW50OjpjcmVhdGVUb2tl
bml6ZXIoKQorRG9jdW1lbnRQYXJzZXIqIFNpbmtEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKIHsK
ICAgICByZXR1cm4gbmV3IFNpbmtEb2N1bWVudFBhcnNlcih0aGlzKTsKIH0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5oIGIvV2ViQ29yZS9sb2FkZXIvU2lua0RvY3Vt
ZW50LmgKaW5kZXggZDIyM2M5NWMzMDU4ZWFjZWUzODkyOGUwYTZlNjZjMDU5MWRjNjIzYi4uMzg2
NjYwYzVmNDI3N2JjZDlhOTkzZmY5NGQyOTViNGI4N2U1YzI0MyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9sb2FkZXIvU2lua0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvU2lua0RvY3VtZW50
LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTaW5rRG9jdW1lbnQo
RnJhbWUqKTsKICAgICAKLSAgICB2aXJ0dWFsIERvY3VtZW50UGFyc2VyKiBjcmVhdGVUb2tlbml6
ZXIoKTsKKyAgICB2aXJ0dWFsIERvY3VtZW50UGFyc2VyKiBjcmVhdGVQYXJzZXIoKTsKIH07CiAK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcCBiL1dlYkNvcmUv
bG9hZGVyL1RleHREb2N1bWVudC5jcHAKaW5kZXggNWZjNTMyOTFmZGIzOTc2Y2QwZmZhYWVkMmVl
YTEzMTU1OWY1NDhhMS4uNjgzMzVhNzhiNGM0NWFjYjQ0MTM2ZTc0YjRhMDU5NzAwNmMxMTcwNiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcAorKysgYi9XZWJDb3Jl
L2xvYWRlci9UZXh0RG9jdW1lbnQuY3BwCkBAIC0xODMsMTIgKzE4MywxMiBAQCBUZXh0RG9jdW1l
bnQ6OlRleHREb2N1bWVudChGcmFtZSogZnJhbWUpCiB7CiB9CiAKLURvY3VtZW50UGFyc2VyKiBU
ZXh0RG9jdW1lbnQ6OmNyZWF0ZVRva2VuaXplcigpCitEb2N1bWVudFBhcnNlciogVGV4dERvY3Vt
ZW50OjpjcmVhdGVQYXJzZXIoKQogewogICAgIHJldHVybiBuZXcgVGV4dERvY3VtZW50UGFyc2Vy
KHRoaXMpOwogfQogCi1Eb2N1bWVudFBhcnNlciogY3JlYXRlVGV4dFRva2VuaXplcihIVE1MVmll
d1NvdXJjZURvY3VtZW50KiBkb2N1bWVudCkKK0RvY3VtZW50UGFyc2VyKiBjcmVhdGVUZXh0RG9j
dW1lbnRQYXJzZXIoSFRNTFZpZXdTb3VyY2VEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgcmV0
dXJuIG5ldyBUZXh0RG9jdW1lbnRQYXJzZXIoZG9jdW1lbnQpOwogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmggYi9XZWJDb3JlL2xvYWRlci9UZXh0RG9jdW1lbnQu
aAppbmRleCBkODNlZDk0MTEzMTdhMWNjMGYzNDZiYzVhY2NmM2ZiMTdlYzAzODFhLi4wMmM3YWY1
NmM1YjRkZmVlN2E1ZWRkNmEwMDJmMmM3MTI4MWIwMWEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xv
YWRlci9UZXh0RG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9UZXh0RG9jdW1lbnQuaApA
QCAtNDEsMTAgKzQxLDEwIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgVGV4dERvY3VtZW50KEZy
YW1lKik7CiAgICAgCi0gICAgdmlydHVhbCBEb2N1bWVudFBhcnNlciogY3JlYXRlVG9rZW5pemVy
KCk7CisgICAgdmlydHVhbCBEb2N1bWVudFBhcnNlciogY3JlYXRlUGFyc2VyKCk7CiB9OwogCi1E
b2N1bWVudFBhcnNlciogY3JlYXRlVGV4dFRva2VuaXplcihIVE1MVmlld1NvdXJjZURvY3VtZW50
Kik7CitEb2N1bWVudFBhcnNlciogY3JlYXRlVGV4dERvY3VtZW50UGFyc2VyKEhUTUxWaWV3U291
cmNlRG9jdW1lbnQqKTsKIAogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVu
dEV4dGVuc2lvbnMuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNwcApp
bmRleCAyNDczZTdlYjIxNjM3ZDUxMmVhYTlhZTIzZmU1MmE2ZTc2YmIzNGVkLi43YjI4NWViODYx
ZjdhNTE3ODgwYmQ4OTNmOTVkNDBhMWFmMjg4NDYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9T
VkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0
ZW5zaW9ucy5jcHAKQEAgLTEyOCwxMyArMTI4LDEzIEBAIGJvb2wgU1ZHRG9jdW1lbnRFeHRlbnNp
b25zOjpzYW1wbGVBbmltYXRpb25BdFRpbWUoY29uc3QgU3RyaW5nJiBlbGVtZW50SWQsIFNWR1NN
CiB2b2lkIFNWR0RvY3VtZW50RXh0ZW5zaW9uczo6cmVwb3J0V2FybmluZyhjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCiB7CiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jLT5mcmFtZSgpKQotICAg
ICAgICBmcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIldhcm5pbmc6ICIgKyBt
ZXNzYWdlLCBtX2RvYy0+dG9rZW5pemVyKCkgPyBtX2RvYy0+dG9rZW5pemVyKCktPmxpbmVOdW1i
ZXIoKSA6IDEsIFN0cmluZygpKTsKKyAgICAgICAgZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xl
KCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNz
YWdlTGV2ZWwsICJXYXJuaW5nOiAiICsgbWVzc2FnZSwgbV9kb2MtPnBhcnNlcigpID8gbV9kb2Mt
PnBhcnNlcigpLT5saW5lTnVtYmVyKCkgOiAxLCBTdHJpbmcoKSk7CiB9CiAKIHZvaWQgU1ZHRG9j
dW1lbnRFeHRlbnNpb25zOjpyZXBvcnRFcnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAg
ICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jLT5mcmFtZSgpKQotICAgICAgICBmcmFtZS0+ZG9t
V2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3Nh
Z2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yOiAiICsgbWVzc2FnZSwgbV9kb2MtPnRv
a2VuaXplcigpID8gbV9kb2MtPnRva2VuaXplcigpLT5saW5lTnVtYmVyKCkgOiAxLCBTdHJpbmco
KSk7CisgICAgICAgIGZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpT
TWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiRXJyb3I6
ICIgKyBtZXNzYWdlLCBtX2RvYy0+cGFyc2VyKCkgPyBtX2RvYy0+cGFyc2VyKCktPmxpbmVOdW1i
ZXIoKSA6IDEsIFN0cmluZygpKTsKIH0KIAogdm9pZCBTVkdEb2N1bWVudEV4dGVuc2lvbnM6OmFk
ZFBlbmRpbmdSZXNvdXJjZShjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBTVkdTdHlsZWRFbGVtZW50
KiBvYmopCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dtbC9XTUxEb2N1bWVudC5jcHAgYi9XZWJDb3Jl
L3dtbC9XTUxEb2N1bWVudC5jcHAKaW5kZXggNGI4OWM5OWY1YTc3NjkxNmIwZTI1NjUzZDJjYWQ0
NmY1MTkzMGRkMy4uYmE0YmI1NzI5ZDNkY2QzNTAwZjNiODdjMjMxNWQxNWQ4MWU0ZTA2YSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS93bWwvV01MRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvd21sL1dN
TERvY3VtZW50LmNwcApAQCAtNDcsOCArNDcsOCBAQCBXTUxEb2N1bWVudDo6fldNTERvY3VtZW50
KCkKIAogdm9pZCBXTUxEb2N1bWVudDo6ZmluaXNoZWRQYXJzaW5nKCkKIHsKLSAgICBpZiAoRG9j
dW1lbnRQYXJzZXIqIHRva2VuaXplciA9IHRoaXMtPnRva2VuaXplcigpKSB7Ci0gICAgICAgIGlm
ICghdG9rZW5pemVyLT53ZWxsRm9ybWVkKCkpIHsKKyAgICBpZiAoRG9jdW1lbnRQYXJzZXIqIHBh
cnNlciA9IHRoaXMtPnBhcnNlcigpKSB7CisgICAgICAgIGlmICghcGFyc2VyLT53ZWxsRm9ybWVk
KCkpIHsKICAgICAgICAgICAgIERvY3VtZW50OjpmaW5pc2hlZFBhcnNpbmcoKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93bWwvV01MRXJyb3JI
YW5kbGluZy5jcHAgYi9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcAppbmRleCBiYzg3
NDdmYjk5NDRlZGQ1MTcxMDIwMGQ4NjkyNjc1ZDI3N2Q3YjBlLi44NTMyODIyMjMzYTdlYWFhODRm
ODA0ZmZkNWNlYzI4Zjc2ZjkyZmVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3dtbC9XTUxFcnJvckhh
bmRsaW5nLmNwcAorKysgYi9XZWJDb3JlL3dtbC9XTUxFcnJvckhhbmRsaW5nLmNwcApAQCAtMzgs
MTcgKzM4LDE3IEBAIHZvaWQgcmVwb3J0V01MRXJyb3IoRG9jdW1lbnQqIGRvYywgV01MRXJyb3JD
b2RlIGVycm9yKQogICAgICAgICByZXR1cm47CiAKICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlID0g
ZXJyb3JNZXNzYWdlRm9yRXJyb3JDb2RlKGVycm9yKTsKLSAgICBYTUxEb2N1bWVudFBhcnNlciog
dG9rZW5pemVyID0gc3RhdGljX2Nhc3Q8WE1MRG9jdW1lbnRQYXJzZXIqPihkb2MtPnRva2VuaXpl
cigpKTsKLSAgICBpZiAodG9rZW5pemVyICYmIGVycm9yICE9IFdNTEVycm9yRGVja05vdEFjY2Vz
c2libGUpIHsKKyAgICBYTUxEb2N1bWVudFBhcnNlciogcGFyc2VyID0gc3RhdGljX2Nhc3Q8WE1M
RG9jdW1lbnRQYXJzZXIqPihkb2MtPnBhcnNlcigpKTsKKyAgICBpZiAocGFyc2VyICYmIGVycm9y
ICE9IFdNTEVycm9yRGVja05vdEFjY2Vzc2libGUpIHsKICAgICAgICAgLy8gU29tZSBlcnJvcnMg
YXJlIHJlcG9ydGVkIGFzIHJlc3VsdCBvZiBhbiBpbnNlcnRlZEludG9Eb2N1bWVudCgpIGNhbGwu
CiAgICAgICAgIC8vIElmIHRoaXMgaGFwcGVuZWQsIHBhcnNpbmcgaGFzIGJlZW4gc3RvcHBlZCwg
YW5kIHRoZSBkb2N1bWVudCBmcmFnbWVudAogICAgICAgICAvLyBpcyB3cmFwcGVkIGluIGEgWEhU
TUwgZXJyb3IgZG9jdW1lbnQuIFRoYXQgbWVhbnMgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQogICAg
ICAgICAvLyB3aWxsIGJlIGNhbGxlZCBhZ2FpbiAtIGRvIE5PVCByZXBvcnQgdGhlIGVycm9yIHR3
aWNlLCB0aGF0IHdvdWxkIHJlc3VsdAogICAgICAgICAvLyBpbiBhbiBpbmZpbml0ZSBlcnJvciBy
ZXBvcnRpbmcgbG9vcC4KLSAgICAgICAgaWYgKCF0b2tlbml6ZXItPndlbGxGb3JtZWQoKSkKKyAg
ICAgICAgaWYgKCFwYXJzZXItPndlbGxGb3JtZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICB0b2tlbml6ZXItPmhhbmRsZUVycm9yKFhNTERvY3VtZW50UGFyc2VyOjpmYXRhbCwg
ZXJyb3JNZXNzYWdlLmxhdGluMSgpLmRhdGEoKSwgdG9rZW5pemVyLT5saW5lTnVtYmVyKCksIHRv
a2VuaXplci0+Y29sdW1uTnVtYmVyKCkpOworICAgICAgICBwYXJzZXItPmhhbmRsZUVycm9yKFhN
TERvY3VtZW50UGFyc2VyOjpmYXRhbCwgZXJyb3JNZXNzYWdlLmxhdGluMSgpLmRhdGEoKSwgcGFy
c2VyLT5saW5lTnVtYmVyKCksIHBhcnNlci0+Y29sdW1uTnVtYmVyKCkpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIEZyYW1lKiBmcmFtZSA9IGRvYy0+ZnJhbWUoKTsKICAgICAgICAgaWYgKCFmcmFt
ZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd21sL1dNTFRlbXBsYXRlRWxlbWVudC5jcHAgYi9XZWJD
b3JlL3dtbC9XTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCmluZGV4IDI1MzdjM2IwZDVjNmMyODVjOWE2
YTg1ZGQ4NTRmYzg0MTZjYmE0NWQuLjI3YzgyOGM3NzYyZjY1MTMzYjMyMDdkY2Y1ZGU3ODhiMjRh
MjNjYjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd21sL1dNTFRlbXBsYXRlRWxlbWVudC5jcHAKKysr
IGIvV2ViQ29yZS93bWwvV01MVGVtcGxhdGVFbGVtZW50LmNwcApAQCAtOTgsNyArOTgsNyBAQCB2
b2lkIFdNTFRlbXBsYXRlRWxlbWVudDo6cmVnaXN0ZXJUZW1wbGF0ZXNJbkRvY3VtZW50KERvY3Vt
ZW50KiBkb2MpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE9ubHkgb25lIHRlbXBsYXRlIGVs
ZW1lbnQgc2hvdWxkIGJlIGFsbG93ZWQgaW4gYSBkb2N1bWVudAotICAgIC8vIENhbGxpbmcgc2V0
VGVtcGxhdGVFbGVtZW50KCkgdHdpY2Ugb24gYSBXTUxDYXJkRWxlbWVudCwgd2lsbCByZXN1bHQg
aW4gYSB0b2tlbml6ZXIgZXJyb3IuCisgICAgLy8gQ2FsbGluZyBzZXRUZW1wbGF0ZUVsZW1lbnQo
KSB0d2ljZSBvbiBhIFdNTENhcmRFbGVtZW50LCB3aWxsIHJlc3VsdCBpbiBhIHBhcnNlciBlcnJv
ci4KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAg
V01MVGVtcGxhdGVFbGVtZW50KiB0ZW1wID0gc3RhdGljX2Nhc3Q8V01MVGVtcGxhdGVFbGVtZW50
Kj4obm9kZUxpc3QtPml0ZW0oaSkpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>