<?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>129646</bug_id>
          
          <creation_ts>2014-03-03 17:12:01 -0800</creation_ts>
          <short_desc>REGRESSION(r165013): New code is not thread safe, asserting on a worker test (Requested by ap on #webkit).</short_desc>
          <delta_ts>2014-03-03 17:16:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>127794</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>986604</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-03 17:12:01 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/165013 broke the build:
New code is not thread safe, asserting on a worker test (Requested by ap on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986606</commentid>
    <comment_count>1</comment_count>
      <attachid>225720</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-03 17:12:30 -0800</bug_when>
    <thetext>Created attachment 225720
ROLLOUT of r165013

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986610</commentid>
    <comment_count>2</comment_count>
      <attachid>225720</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-03 17:16:22 -0800</bug_when>
    <thetext>Comment on attachment 225720
ROLLOUT of r165013

Clearing flags on attachment: 225720

Committed r165027: &lt;http://trac.webkit.org/changeset/165027&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986611</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-03 17:16:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225720</attachid>
            <date>2014-03-03 17:12:30 -0800</date>
            <delta_ts>2014-03-03 17:16:22 -0800</delta_ts>
            <desc>ROLLOUT of r165013</desc>
            <filename>bug-129646-20140303171230.patch</filename>
            <type>text/plain</type>
            <size>69257</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1MDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTI0ZDU0NWU3OTMyNmFj
OWI4YWYwNDdhZjFkYzE3NWZjZWMxNTk0Yi4uYTc0NzA4OTQwMzQ4ZGNhNWQ0MThiZDhhZTYyNWM1
NzgyOTIxN2YwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDE0LTAzLTAzICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTY1MDEzLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8xNjUwMTMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyOTY0NgorCisgICAgICAgIE5ldyBjb2RlIGlzIG5vdCB0aHJlYWQgc2FmZSwgYXNz
ZXJ0aW5nIG9uIGEgd29ya2VyIHRlc3QKKyAgICAgICAgKFJlcXVlc3RlZCBieSBhcCBvbiAjd2Vi
a2l0KS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGVkaXRpbmcvRGVs
ZXRlQnV0dG9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVCdXR0b25D
b250cm9sbGVyOjpjcmVhdGVEZWxldGlvblVJKToKKyAgICAgICAgKiBodG1sL0RPTVVSTC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpET01VUkw6OnJldm9rZU9iamVjdFVSTCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpyZXBsYXlYSFIpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjphcmVBbGxMb2FkZXJzUGFnZUNhY2hlQWNjZXB0YWJsZSk6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjp0ZWxsQ2xpZW50QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2Fkcyk6CisgICAgICAg
ICogbG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVy
Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5
V2ViQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZlOjpjcmVh
dGUpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hlZXQ6OkNhY2hlZENTU1N0eWxlU2hlZXQp
OgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0Lmg6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
Rm9udDo6Q2FjaGVkRm9udCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaDoK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2Fj
aGVkSW1hZ2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jlc291cmNl
KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaDoKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlOjp+Q2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNWR0RvY3VtZW50KToKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
U2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdDo6Q2FjaGVkU2NyaXB0
KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0Lmg6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRU
ZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZFRleHRUcmFjay5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFhTTFN0eWxlU2hlZXQ6OkNhY2hlZFhTTFN0
eWxlU2hlZXQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0Lmg6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeUNhY2hlOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJl
dmFsaWRhdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVz
b3VyY2VGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlc291cmNlRm9y
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6YWRkSW1hZ2VUb0NhY2hl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVJbWFnZUZyb21DYWNoZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6ZXZpY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW4pOgorICAgICAgICAoV2Vi
Q29yZTo6TWVtb3J5Q2FjaGU6OmdldE9yaWdpbnNXaXRoQ2FjaGUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVVybEZyb21DYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6Z2V0U3RhdGlzdGljcyk6CisgICAgICAgIChXZWJD
b3JlOjpNZW1vcnlDYWNoZTo6c2V0RGlzYWJsZWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9N
ZW1vcnlDYWNoZS5oOgorICAgICAgICAqIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3Q6OlJlc291cmNlUmVxdWVzdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90
dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjppc0xvYWRpbmdGcm9tTWVtb3J5Q2Fj
aGUpOgorCiAyMDE0LTAzLTAzICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CiAKICAgICAgICAgU3BhY2UgYmV0d2VlbiBkb3VibGUgdW5kZXJsaW5lcyBkb2VzIG5vdCBz
Y2FsZSB3aXRoIGZvbnQgc2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiM2M2ZjBmOTUwOTU3YTBmNTFkODc4NmNj
YmEzMmVjZDVmNzQ1MjJiLi5jNzEwMjJjNDRmOGFlMjFhNjFiMjNiMDFkNTI0ZTdjZWYwMmU0MjQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAzLTAzICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTY1MDEzLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNjUw
MTMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTY0
NgorCisgICAgICAgIE5ldyBjb2RlIGlzIG5vdCB0aHJlYWQgc2FmZSwgYXNzZXJ0aW5nIG9uIGEg
d29ya2VyIHRlc3QKKyAgICAgICAgKFJlcXVlc3RlZCBieSBhcCBvbiAjd2Via2l0KS4KKworICAg
ICAgICAqIFdlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRz
LmRlZi5pbjoKKwogMjAxNC0wMy0wMyAgTWFydGluIEhvY2sgIDxtaG9ja0BhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNlc3Npb25zIHRvIE1lbW9yeUNhY2hlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IGJlODI3Y2JkNWIyYzVhODI3NTVhZTg0MzNlODU0MTg5YzI2ZTRlMGIuLmFjYWYxZWYw
ZGU4Nzc5NzI3NmVkODdiYTA2MjRmOTljNmQ2NzY3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MSBAQAorMjAxNC0wMy0wMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2NTAxMy4KKyAgICAgICAgaHR0
cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTY1MDEzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk2NDYKKworICAgICAgICBOZXcgY29kZSBp
cyBub3QgdGhyZWFkIHNhZmUsIGFzc2VydGluZyBvbiBhIHdvcmtlciB0ZXN0CisgICAgICAgIChS
ZXF1ZXN0ZWQgYnkgYXAgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvRGlz
a0NhY2hlTW9uaXRvci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVN
b25pdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpEaXNrQ2FjaGVNb25pdG9yOjpEaXNrQ2FjaGVN
b25pdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpk
aWRDYWNoZVJlc291cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKwogMjAxNC0wMy0wMyAgRW5yaWNhIENhc3Vj
Y2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgV2ViS2l0Ml06IFRleHQgZmll
bGRzIGRvbid0IHpvb20gaW4gd2hlbiBmb2N1c2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDQw
Njk3YjVjNDM4ZGJmZDNiNWNlYTQ0ZGU2MDAzMmFhMGQ3MDQ4Y2EuLmZkODJiMWM4ODBlNmM5Yzdi
MGNjYmRjM2Q1NmE5ZDYyNjljYTY5ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNjksOSAr
MTY5LDggQEAgX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTEzZ2V0U3RhdGlzdGljc0V2CiBfX1pO
N1dlYkNvcmUxMU1lbW9yeUNhY2hlMTNzZXRDYXBhY2l0aWVzRWpqagogX19aTjdXZWJDb3JlMTFN
ZW1vcnlDYWNoZTE0ZXZpY3RSZXNvdXJjZXNFdgogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE0
cmVzb3VyY2VGb3JVUkxFUktOU18zVVJMRQotX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE0cmVz
b3VyY2VGb3JVUkxFUktOU18zVVJMRU5TXzlTZXNzaW9uSURFCiBfX1pON1dlYkNvcmUxMU1lbW9y
eUNhY2hlMTVhZGRJbWFnZVRvQ2FjaGVFUDdDR0ltYWdlUktOU18zVVJMRVJLTjNXVEY2U3RyaW5n
RQotX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE4cmVzb3VyY2VGb3JSZXF1ZXN0RVJLTlNfMTVS
ZXNvdXJjZVJlcXVlc3RFTlNfOVNlc3Npb25JREUKK19fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUx
OHJlc291cmNlRm9yUmVxdWVzdEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19aTjdXZWJDb3Jl
MTFNZW1vcnlDYWNoZTE5Z2V0T3JpZ2luc1dpdGhDYWNoZUVSTjNXVEY3SGFzaFNldElOUzFfNlJl
ZlB0cklOU18xNFNlY3VyaXR5T3JpZ2luRUVFTlNfMThTZWN1cml0eU9yaWdpbkhhc2hFTlMxXzEw
SGFzaFRyYWl0c0lTNV9FRUVFCiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMjByZW1vdmVJbWFn
ZUZyb21DYWNoZUVSS05TXzNVUkxFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMU1lbW9y
eUNhY2hlMjVyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luRVBOU18xNFNlY3VyaXR5T3JpZ2luRQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAK
aW5kZXggMTVlNjdlNjZiZjY1MWM5MWM4N2VjYTdmNDU2YmU5YTI5ZTMzYjFjZS4uODIwYjBhY2Uw
NDc5NmY0YzY0NWQ0ZjhmZDczYTI2MmI2MDNhMWQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwCkBAIC0yNTQsNyArMjU0LDcgQEAg
dm9pZCBEZWxldGVCdXR0b25Db250cm9sbGVyOjpjcmVhdGVEZWxldGlvblVJKCkKICAgICBpZiAo
YnV0dG9uSW1hZ2UtPmlzTnVsbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBidXR0b24tPnNl
dENhY2hlZEltYWdlKG5ldyBDYWNoZWRJbWFnZShidXR0b25JbWFnZS5nZXQoKSwgbV9mcmFtZS5w
YWdlKCktPnNlc3Npb25JRCgpKSk7CisgICAgYnV0dG9uLT5zZXRDYWNoZWRJbWFnZShuZXcgQ2Fj
aGVkSW1hZ2UoYnV0dG9uSW1hZ2UuZ2V0KCkpKTsKIAogICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hp
bGQoYnV0dG9uLmdldCgpLCBlYyk7CiAgICAgQVNTRVJUKCFlYyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RPTVVSTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5j
cHAKaW5kZXggNWI0OWRjYzAyNjA4NjVkOTc2ZDI1Mjg5NjRiODk5NjAxMWI4MDMxMS4uNGU0NDI1
NDlkNmRlMzY2MWFiNWIxZGNlZmJhYmU0MzIyZTViNWU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9ET01VUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNw
cApAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgRE9NVVJMOjpyZXZva2VPYmplY3RVUkwoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgY29uCiAjaWYgRU5BQkxF
KENBQ0hFX1BBUlRJVElPTklORykKICAgICByZXF1ZXN0LnNldENhY2hlUGFydGl0aW9uKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPnRvcE9yaWdpbigpLT5jYWNoZVBhcnRpdGlvbigpKTsKICNlbmRp
ZgotICAgIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgcmVxdWVzdCk7CisgICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVl
c3RGcm9tQ2FjaGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcmVxdWVzdCk7CiAKICAgICBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5wdWJsaWNVUkxNYW5hZ2VyKCkucmV2b2tlKHVybCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4
IDMwMTI5MDU5MTRiZmE0MzhmMjg1ZTM4ZDJhY2FmYTkyZjc4MWJkZGIuLmNmZWU1ZDhjYjMxMmYz
MGIwNmQyY2MxMmU4YzFlYmEyYWQ0NWFiNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0yODIsNyArMjgyLDcgQEAgQ2FjaGVkUmVz
b3VyY2UqIEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2UoRnJhbWUqIGZyYW1lLCBj
b25zdCBVUkwmIHVybCkKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgICAgICBy
ZXF1ZXN0LnNldENhY2hlUGFydGl0aW9uKGZyYW1lLT5kb2N1bWVudCgpLT50b3BPcmlnaW4oKS0+
Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICAgICAgY2FjaGVkUmVzb3VyY2UgPSBtZW1v
cnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgZnJhbWUtPnBhZ2UoKS0+c2Vz
c2lvbklEKCkpOworICAgICAgICBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291
cmNlRm9yUmVxdWVzdChyZXF1ZXN0KTsKICAgICB9CiAKICAgICByZXR1cm4gY2FjaGVkUmVzb3Vy
Y2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudC5jcHAKaW5kZXggZjdiZTMzZTMxN2UwZTAwZjVkYTA5NjgzNWZjYzNjZGI0Nzk3MDg4OS4u
YTY1NDhiNmI3OWJkNWZhODQxNDY4NDFjZjVkZmY2YzU1ZTYwM2I5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtNTk0
LDcgKzU5NCw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVwbGF5WEhSKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJ
VElPTklORykKICAgICByZXF1ZXN0LnNldENhY2hlUGFydGl0aW9uKG1fcGFnZUFnZW50LT5tYWlu
RnJhbWUoKS0+ZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2Vu
ZGlmCi0gICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+
cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIG1fcGFnZUFnZW50LT5wYWdlKCktPnNlc3Npb25J
RCgpKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgp
LT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCk7CiAgICAgaWYgKGNhY2hlZFJlc291cmNlKQog
ICAgICAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUoY2FjaGVkUmVzb3VyY2UpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCAwNTlhMTIwOTc3NGNkZGM4MDI0
NWViYzM4NTFhYjg2MTJhZDkxZWZkLi40NTU5NTYzOWE2ZTBkOTNjYmM4ODkyZjkxYTE1MzZjNjI3
MjQ3ZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTEw
MywxMCArMTAzLDcgQEAgc3RhdGljIGJvb2wgYXJlQWxsTG9hZGVyc1BhZ2VDYWNoZUFjY2VwdGFi
bGUoY29uc3QgUmVzb3VyY2VMb2FkZXJNYXAmIGxvYWRlcnMpCiAgICAgICAgIGlmICghaGFuZGxl
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGlmICghbG9hZGVyLT5mcmFt
ZUxvYWRlcigpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIENhY2hlZFJl
c291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKGhh
bmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCksIGxvYWRlci0+ZnJhbWVMb2FkZXIoKS0+ZnJhbWUo
KS5wYWdlKCktPnNlc3Npb25JRCgpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJl
c291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwoaGFuZGxlLT5maXJzdFJlcXVl
c3QoKS51cmwoKSk7CiAgICAgICAgIGlmICghY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDI5
NGEyM2M3MTNmZDlmMmRkNGU0OGE1MzVkNDllYWQyY2JmOGJlYTcuLjk0ZTA1MTk3MDFiN2I5NWUy
MmQ5NjcxYTVkOGYzODJkZTI2ODM5YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcApAQCAtMzM3Nyw3ICszMzc3LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6dGVsbENsaWVudEFi
b3V0UGFzdE1lbW9yeUNhY2hlTG9hZHMoKQogCiAgICAgc2l6ZV90IHNpemUgPSBwYXN0TG9hZHMu
c2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAg
IENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVx
dWVzdChwYXN0TG9hZHNbaV0sIG1fZnJhbWUucGFnZSgpLT5zZXNzaW9uSUQoKSk7CisgICAgICAg
IENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVx
dWVzdChwYXN0TG9hZHNbaV0pOwogCiAgICAgICAgIC8vIEZJWE1FOiBUaGVzZSBsb2FkcywgbG9h
ZGVkIGZyb20gY2FjaGUsIGJ1dCBub3cgZ29uZSBmcm9tIHRoZSBjYWNoZSBieSB0aGUgdGltZQog
ICAgICAgICAvLyBQYWdlOjpzZXRNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYmxlZCh0cnVlKSBp
cyBjYWxsZWQsIHdpbGwgbm90IGJlIHNlZW4gYnkgdGhlIGNsaWVudC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSW1hZ2VMb2FkZXIuY3BwCmluZGV4IGU0OGQ0N2JhOGRiOWZkZDRjMWE1ZTg0NWQ5NjcyYWI1
ODRhZDZmMzUuLjMwNmExYjc2YWQ2NWFjYzIyMmFhYTNhNTZiY2FjNmZkNTk0ZGJiODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTFBhcnNlcklkaW9tcy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5k
ZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0ltYWdlLmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKQEAgLTE4OSw3ICsxODgsNyBAQCB2b2lkIEltYWdlTG9hZGVyOjp1cGRhdGVG
cm9tRWxlbWVudCgpCiAgICAgICAgIGlmIChtX2xvYWRNYW51YWxseSkgewogICAgICAgICAgICAg
Ym9vbCBhdXRvTG9hZE90aGVySW1hZ2VzID0gZG9jdW1lbnQuY2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+YXV0b0xvYWRJbWFnZXMoKTsKICAgICAgICAgICAgIGRvY3VtZW50LmNhY2hlZFJlc291cmNl
TG9hZGVyKCktPnNldEF1dG9Mb2FkSW1hZ2VzKGZhbHNlKTsKLSAgICAgICAgICAgIG5ld0ltYWdl
ID0gbmV3IENhY2hlZEltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIG1fZWxlbWVudC5k
b2N1bWVudCgpLnBhZ2UoKS0+c2Vzc2lvbklEKCkpOworICAgICAgICAgICAgbmV3SW1hZ2UgPSBu
ZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSk7CiAgICAgICAgICAgICBu
ZXdJbWFnZS0+c2V0TG9hZGluZyh0cnVlKTsKICAgICAgICAgICAgIG5ld0ltYWdlLT5zZXRPd25p
bmdDYWNoZWRSZXNvdXJjZUxvYWRlcihkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKTsK
ICAgICAgICAgICAgIGRvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCktPm1fZG9jdW1lbnRS
ZXNvdXJjZXMuc2V0KG5ld0ltYWdlLT51cmwoKSwgbmV3SW1hZ2UuZ2V0KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApp
bmRleCAwMjRkMjhmNWI5MjgwYTk0MzQwZTM3ZmQ3NmMzYTg0MGZlZmIzYzczLi4zMWYxYTFiNzFj
MjU3MWQzODBhOTY1OTg3YzQxY2EzZjYwZjcxNDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtNTU0LDcgKzU1
NCw3IEBAIFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6Y3Jl
YXRlKGNvbnN0IFN0cmluZyYgbWFya3VwU3RyaW5nCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElP
TklORykKICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldENhY2hlUGFydGl0aW9uKGZyYW1lLT5k
b2N1bWVudCgpLT50b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICAg
ICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgp
LT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgZnJhbWUtPnBhZ2UoKS0+c2Vzc2lvbklEKCkp
OworICAgICAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9y
eUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0KTsKICAgICAgICAgICAgICAgICBp
ZiAoY2FjaGVkUmVzb3VyY2UpIHsKICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VCdWZmZXIq
IGRhdGEgPSBjYWNoZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAgICAgICAgICAgICAg
ICAgICAgcmVzb3VyY2UgPSBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShkYXRhID8gZGF0YS0+c2hh
cmVkQnVmZmVyKCkgOiAwLCBzdWJyZXNvdXJjZVVSTCwgY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNl
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0
eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxl
U2hlZXQuY3BwCmluZGV4IGU4YWFkNDdiNmZhYzU4OTViMGM0OTczMDRkMTgzOGVhMjEzZjdjMWMu
LjY5YmNlOGY0MDMwN2I0NjM4ZTU4OTA3NTQ0N2VkZTQwNTE0MjBmYzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTQw
LDggKzQwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRDU1NTdHlsZVNoZWV0
OjpDYWNoZWRDU1NTdHlsZVNoZWV0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1
ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgOiBD
YWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIENTU1N0eWxlU2hlZXQsIHNlc3Npb25JRCkK
K0NhY2hlZENTU1N0eWxlU2hlZXQ6OkNhY2hlZENTU1N0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKKyAgICA6IENh
Y2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgQ1NTU3R5bGVTaGVldCkKICAgICAsIG1fZGVj
b2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoInRleHQvY3NzIiwgY2hhcnNldCkpCiB7
CiAgICAgLy8gUHJlZmVyIHRleHQvY3NzIGJ1dCBhY2NlcHQgYW55IHR5cGUgKGRlbGwuY29tIHNl
cnZlcyBhIHN0eWxlc2hlZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkQ1NTU3R5bGVTaGVldC5oCmluZGV4IDViN2I3NDg2ODQyMzRlYjNhNmYyNzU0ZmMxYjljNjA0
ODZkMGEwMGUuLmY4YmIwYzY1NWQ3NjZlMjM5NGQ3ODQ4YTQ0MDRjZmI0MWFhNGMyODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaApA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBDYWNoZWRD
U1NTdHlsZVNoZWV0IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKICAgICBwdWJsaWM6
Ci0gICAgICAgIENhY2hlZENTU1N0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgU3RyaW5nJiBjaGFyc2V0LCBTZXNzaW9uSUQpOworICAgICAgICBDYWNoZWRDU1NTdHlsZVNo
ZWV0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7CiAgICAg
ICAgIHZpcnR1YWwgfkNhY2hlZENTU1N0eWxlU2hlZXQoKTsKIAogICAgICAgICBjb25zdCBTdHJp
bmcgc2hlZXRUZXh0KGJvb2wgZW5mb3JjZU1JTUVUeXBlID0gdHJ1ZSwgYm9vbCogaGFzVmFsaWRN
SU1FVHlwZSA9IDApIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZEZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZv
bnQuY3BwCmluZGV4IDJhMWExNDM3NDNhMjg1MzhiZDg0MjZhN2I4MmI1ODdhYTdlYWQ1N2QuLmZi
ZjY1OGNjMDI4NWRhODQzYzQwZGIxYjU3MDMxMGYxNjIwZDgxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKQEAgLTUwLDggKzUwLDggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1DYWNoZWRGb250OjpDYWNoZWRGb250KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQotICAgIDogQ2FjaGVk
UmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBGb250UmVzb3VyY2UsIHNlc3Npb25JRCkKK0NhY2hl
ZEZvbnQ6OkNhY2hlZEZvbnQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3Qp
CisgICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIEZvbnRSZXNvdXJjZSkKICAg
ICAsIG1fbG9hZEluaXRpYXRlZChmYWxzZSkKICAgICAsIG1faGFzQ3JlYXRlZEZvbnREYXRhV3Jh
cHBpbmdSZXNvdXJjZShmYWxzZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRGb250LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
Rm9udC5oCmluZGV4IGZiMjE2NTkzMjgyZGIwODYwMzEwMTk4NTEyMGRkZTAzODhiYWQ5OGYuLjc0
NGI2MmQ2YWY5YmM0ZmI0YjRhYjc2ZTA1ZjQ4Mjc1Y2E1MWI3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaApAQCAtNDIsNyArNDIsNyBAQCBzdHJ1Y3QgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YTsKIAogY2xhc3MgQ2FjaGVkRm9udCBmaW5hbCA6IHB1YmxpYyBDYWNo
ZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkRm9udChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBTZXNzaW9uSUQpOworICAgIENhY2hlZEZvbnQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7
CiAgICAgdmlydHVhbCB+Q2FjaGVkRm9udCgpOwogCiAgICAgdm9pZCBiZWdpbkxvYWRJZk5lZWRl
ZChDYWNoZWRSZXNvdXJjZUxvYWRlciogZGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggYjkyYTk3NWQzMzRlOTZmMzYyYzgwYmQ1ODRiOGU5Y2Fl
NTFiMmY2My4uNGMyNjY3YjU0MGY0OGY0ZDBmNThmMGI0ZjI1ZWExM2VkM2Y4MjUzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC02MCw4ICs2MCw4
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklE
KQotICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBJbWFnZVJlc291cmNlLCBz
ZXNzaW9uSUQpCitDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXNvdXJjZVJlcXVlc3QpCisgICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3Qs
IEltYWdlUmVzb3VyY2UpCiAgICAgLCBtX2ltYWdlKDApCiAgICAgLCBtX2lzTWFudWFsbHlDYWNo
ZWQoZmFsc2UpCiAgICAgLCBtX3Nob3VsZFBhaW50QnJva2VuSW1hZ2UodHJ1ZSkKQEAgLTY5LDgg
KzY5LDggQEAgQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVzb3VyY2VSZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2kKICAgICBzZXRTdGF0dXMoVW5rbm93bik7
CiB9CiAKLUNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShJbWFnZSogaW1hZ2UsIFNlc3Npb25JRCBz
ZXNzaW9uSUQpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QoKSwgSW1hZ2VS
ZXNvdXJjZSwgc2Vzc2lvbklEKQorQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKEltYWdlKiBpbWFn
ZSkKKyAgICA6IENhY2hlZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCgpLCBJbWFnZVJlc291cmNl
KQogICAgICwgbV9pbWFnZShpbWFnZSkKICAgICAsIG1faXNNYW51YWxseUNhY2hlZChmYWxzZSkK
ICAgICAsIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZSh0cnVlKQpAQCAtNzksMTggKzc5LDggQEAg
Q2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKEltYWdlKiBpbWFnZSwgU2Vzc2lvbklEIHNlc3Npb25J
RCkKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKIH0KIAotQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdl
KGNvbnN0IFVSTCYgdXJsLCBJbWFnZSogaW1hZ2UsIFNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAg
OiBDYWNoZWRSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QodXJsKSwgSW1hZ2VSZXNvdXJjZSwgc2Vz
c2lvbklEKQotICAgICwgbV9pbWFnZShpbWFnZSkKLSAgICAsIG1faXNNYW51YWxseUNhY2hlZChm
YWxzZSkKLSAgICAsIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZSh0cnVlKQotewotICAgIHNldFN0
YXR1cyhDYWNoZWQpOwotICAgIHNldExvYWRpbmcoZmFsc2UpOwotfQotCi1DYWNoZWRJbWFnZTo6
Q2FjaGVkSW1hZ2UoY29uc3QgVVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgQ2FjaGVkSW1hZ2U6OkNh
Y2hlQmVoYXZpb3JUeXBlIHR5cGUsIFNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgOiBDYWNoZWRS
ZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QodXJsKSwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklEKQor
Q2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKGNvbnN0IFVSTCYgdXJsLCBJbWFnZSogaW1hZ2UsIENh
Y2hlZEltYWdlOjpDYWNoZUJlaGF2aW9yVHlwZSB0eXBlKQorICAgIDogQ2FjaGVkUmVzb3VyY2Uo
UmVzb3VyY2VSZXF1ZXN0KHVybCksIEltYWdlUmVzb3VyY2UpCiAgICAgLCBtX2ltYWdlKGltYWdl
KQogICAgICwgbV9pc01hbnVhbGx5Q2FjaGVkKHR5cGUgPT0gQ2FjaGVkSW1hZ2U6Ok1hbnVhbGx5
Q2FjaGVkKQogICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCmluZGV4IDg2YWYwM2ZkMDE4NTU4NmQ1ZGE3
ZDM0YzQ3ZGRlMmUwNjYzMmNiZTcuLmI3ZDcyMTE2NzM5MTY2NzhkZWFjYTBkOGYwYTY0ZDM4YWMy
NzcyZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCkBAIC01
MCwxMCArNTAsOSBAQCBjbGFzcyBDYWNoZWRJbWFnZSBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNv
dXJjZSwgcHVibGljIEltYWdlT2JzZXJ2ZXIgewogcHVibGljOgogICAgIGVudW0gQ2FjaGVCZWhh
dmlvclR5cGUgeyBBdXRvbWF0aWNhbGx5Q2FjaGVkLCBNYW51YWxseUNhY2hlZCB9OwogCi0gICAg
Q2FjaGVkSW1hZ2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKLSAgICBDYWNo
ZWRJbWFnZShJbWFnZSosIFNlc3Npb25JRCk7Ci0gICAgQ2FjaGVkSW1hZ2UoY29uc3QgVVJMJiwg
SW1hZ2UqLCBTZXNzaW9uSUQpOwotICAgIENhY2hlZEltYWdlKGNvbnN0IFVSTCYsIEltYWdlKiwg
Q2FjaGVCZWhhdmlvclR5cGUsIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkSW1hZ2UoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkSW1hZ2UoSW1hZ2UqKTsKKyAgICBDYWNoZWRJbWFn
ZShjb25zdCBVUkwmLCBJbWFnZSosIENhY2hlQmVoYXZpb3JUeXBlID0gQXV0b21hdGljYWxseUNh
Y2hlZCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkSW1hZ2UoKTsKIAogICAgIEltYWdlKiBpbWFnZSgp
OyAvLyBSZXR1cm5zIHRoZSBudWxsSW1hZ2UoKSBpZiB0aGUgaW1hZ2UgaXMgbm90IGF2YWlsYWJs
ZSB5ZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3
UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291
cmNlLmNwcAppbmRleCBjNDY1ZDJmMTFkYTk1OTZhMWEwODEzOTFiZmI5NjRmOGMxMzg5YWRlLi43
MWQ4NmRhOGQwNGE3Y2Q0NjkyM2ZmZDNjYjBjNzNlYjU5ZWRlZjZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKQEAgLTM1LDggKzM1
LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRSYXdSZXNvdXJjZTo6Q2FjaGVk
UmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFR5cGUgdHlwZSwg
U2Vzc2lvbklEIHNlc3Npb25JRCkKLSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVz
dCwgdHlwZSwgc2Vzc2lvbklEKQorQ2FjaGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jlc291cmNl
KFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBUeXBlIHR5cGUpCisgICAgOiBDYWNo
ZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIHR5cGUpCiAgICAgLCBtX2lkZW50aWZpZXIoMCkK
IHsKICAgICAvLyBGSVhNRTogVGhlIHdyb25nIENhY2hlZFJlc291cmNlOjpUeXBlIGhlcmUgbWF5
IGNhdXNlIGEgYmFkIGNhc3QgZWxzZXdoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAppbmRleCAzZDZiZmIyOTRlZjdjODA1Y2E3NDU4OGEw
N2E2NDViNTg3YTBmNTk1Li5jY2RmZWUxN2M0MDk2YTlhZGNmNGQ0YjFiNWFiODhhMzIxNjkwMzZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3Vy
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
aApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsKIAogY2xhc3MgQ2Fj
aGVkUmF3UmVzb3VyY2UgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgot
ICAgIENhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIFR5cGUsIFNlc3Npb25JRCk7
CisgICAgQ2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiwgVHlwZSk7CiAKICAgICAv
LyBGSVhNRTogQXNzb2NpYXRlZFVSTExvYWRlciBzaG91bGRuJ3QgYmUgYSBEb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIgYW5kIHRoZXJlZm9yZSBzaG91bGRuJ3QKICAgICAvLyB1c2UgQ2FjaGVkUmF3
UmVzb3VyY2UuIEhvd2V2ZXIsIGl0IGlzLCBhbmQgaXQgbmVlZHMgdG8gYmUgYWJsZSB0byBkZWZl
ciBsb2FkaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5jcHAKaW5kZXggZjAzYTNlNTA3NmQzNjExMGM1MWJlMTliN2U1N2I2OWMzN2FlNmM2MS4uNjk3
YTQ5NTdmNDhmZjljNGI1M2M0Mjg0OGQ1OWVhZmM5Y2UyZDM4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0xNDcsOSArMTQ3LDggQEAg
c3RhdGljIGRvdWJsZSBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VU
eXBlKENhY2hlZFJlc291cmNlOjpUeXAKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJlZkNv
dW50ZWRMZWFrQ291bnRlciwgY2FjaGVkUmVzb3VyY2VMZWFrQ291bnRlciwgKCJDYWNoZWRSZXNv
dXJjZSIpKTsKIAotQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2FjaGVk
UmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
VHlwZSB0eXBlKQogICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVxdWVzdCkKLSAgICAsIG1fc2Vz
c2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fbG9hZFByaW9yaXR5KGRlZmF1bHRQcmlvcml0eUZv
clJlc291cmNlVHlwZSh0eXBlKSkKICAgICAsIG1fcmVzcG9uc2VUaW1lc3RhbXAoY3VycmVudFRp
bWUoKSkKICAgICAsIG1fZGVjb2RlZERhdGFEZWxldGlvblRpbWVyKHRoaXMsICZDYWNoZWRSZXNv
dXJjZTo6ZGVjb2RlZERhdGFEZWxldGlvblRpbWVyRmlyZWQsIGRlYWREZWNvZGVkRGF0YURlbGV0
aW9uSW50ZXJ2YWxGb3JSZXNvdXJjZVR5cGUodHlwZSkpCkBAIC0xODEsNyArMTgwLDYgQEAgQ2Fj
aGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgVHlwZSB0eXBlLCBTZXNzaW8KICAgICAsIG1fcHJveHlSZXNvdXJjZSgwKQogewogICAgIEFT
U0VSVChtX3R5cGUgPT0gdW5zaWduZWQodHlwZSkpOyAvLyBtX3R5cGUgaXMgYSBiaXRmaWVsZCwg
c28gdGhpcyB0ZXN0cyBjYXJlbGVzcyB1cGRhdGVzIG9mIHRoZSBlbnVtLgotICAgIEFTU0VSVChz
ZXNzaW9uSUQuaXNWYWxpZCgpKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgY2FjaGVkUmVzb3VyY2VM
ZWFrQ291bnRlci5pbmNyZW1lbnQoKTsKICNlbmRpZgpAQCAtMjAxLDcgKzE5OSw3IEBAIENhY2hl
ZFJlc291cmNlOjp+Q2FjaGVkUmVzb3VyY2UoKQogICAgIEFTU0VSVChjYW5EZWxldGUoKSk7CiAg
ICAgQVNTRVJUKCFpbkNhY2hlKCkpOwogICAgIEFTU0VSVCghbV9kZWxldGVkKTsKLSAgICBBU1NF
UlQodXJsKCkuaXNOdWxsKCkgfHwgbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJl
c291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSkgIT0gdGhpcyk7CisgICAgQVNTRVJUKHVybCgp
LmlzTnVsbCgpIHx8IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXNvdXJjZVJl
cXVlc3QoKSkgIT0gdGhpcyk7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgbV9kZWxldGVkID0gdHJ1
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXgg
OWY4ZDFkNzg3OGE2ZGQ5NDllZGI0NDg0MWJmZGY1MGY2MDQ3ZWRlYy4uZWYwYmM2Njk3Mjg5YWQ1
MTQ3NjQwZTQ5ODU5YmQ2OTczZGNlY2FiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJSZXNvdXJj
ZUxvYWRlck9wdGlvbnMuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZVJlc3BvbnNlLmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAi
VGltZXIuaCIKICNpbmNsdWRlIDx0aW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0
Lmg+CkBAIC05MCw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICAgICAgRGVjb2RlRXJyb3IKICAgICB9
OwogCi0gICAgQ2FjaGVkUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgVHlwZSwgU2Vz
c2lvbklEKTsKKyAgICBDYWNoZWRSZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBUeXBl
KTsKICAgICB2aXJ0dWFsIH5DYWNoZWRSZXNvdXJjZSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGxv
YWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKTsK
QEAgLTExMiw3ICsxMTEsNiBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklO
RykKICAgICBjb25zdCBTdHJpbmcmIGNhY2hlUGFydGl0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9y
ZXNvdXJjZVJlcXVlc3QuY2FjaGVQYXJ0aXRpb24oKTsgfQogI2VuZGlmCi0gICAgU2Vzc2lvbklE
IHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAgICAgVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VHlwZT4obV90eXBlKTsgfQogICAgIAogICAg
IFJlc291cmNlTG9hZFByaW9yaXR5IGxvYWRQcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9h
ZFByaW9yaXR5OyB9CkBAIC0yOTIsNyArMjkwLDYgQEAgcHJvdGVjdGVkOgogICAgIEhhc2hNYXA8
Q2FjaGVkUmVzb3VyY2VDbGllbnQqLCBPd25QdHI8Q2FjaGVkUmVzb3VyY2VDYWxsYmFjaz4+IG1f
Y2xpZW50c0F3YWl0aW5nQ2FsbGJhY2s7CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJj
ZVJlcXVlc3Q7Ci0gICAgU2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIFN0cmluZyBtX2FjY2Vw
dDsKICAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IG1fbG9hZGVyOwogICAgIFJlc291cmNl
TG9hZGVyT3B0aW9ucyBtX29wdGlvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCA5ZDI4ZDc1YzQwM2ExNGU2ZWNi
MjQ1ZjRiYmE2MGJkZTNkYWI3NjMxLi4xMWYxOGE4NzM4YjlmZmIxMmM3NmUzZjZkZDcxZDk4OWEx
NGU4YmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ4LDE0ICs0OCwxMiBAQAogI2luY2x1ZGUgIkxvYWRlclN0
cmF0ZWd5LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgi
Ci0jaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBpbmdMb2FkZXIuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC03MiwzNSArNzAsMzUgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1zdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNlKENh
Y2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
U3RyaW5nJiBjaGFyc2V0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorc3RhdGljIENhY2hlZFJlc291
cmNlKiBjcmVhdGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKIHsKICAgICBzd2l0Y2ggKHR5
cGUpIHsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgotICAgICAgICBy
ZXR1cm4gbmV3IENhY2hlZEltYWdlKHJlcXVlc3QsIHNlc3Npb25JRCk7CisgICAgICAgIHJldHVy
biBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCk7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NT
U3R5bGVTaGVldDoKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJlcXVl
c3QsIGNoYXJzZXQsIHNlc3Npb25JRCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkQ1NTU3R5
bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0KTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpTY3Jp
cHQ6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkU2NyaXB0KHJlcXVlc3QsIGNoYXJzZXQsIHNl
c3Npb25JRCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkU2NyaXB0KHJlcXVlc3QsIGNoYXJz
ZXQpOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3VtZW50UmVzb3VyY2U6Ci0gICAg
ICAgIHJldHVybiBuZXcgQ2FjaGVkU1ZHRG9jdW1lbnQocmVxdWVzdCwgc2Vzc2lvbklEKTsKKyAg
ICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTVkdEb2N1bWVudChyZXF1ZXN0KTsKICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpGb250UmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkRm9u
dChyZXF1ZXN0LCBzZXNzaW9uSUQpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZEZvbnQocmVx
dWVzdCk7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2U6CiAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlOgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJh
d1Jlc291cmNlKHJlcXVlc3QsIHR5cGUsIHNlc3Npb25JRCk7CisgICAgICAgIHJldHVybiBuZXcg
Q2FjaGVkUmF3UmVzb3VyY2UocmVxdWVzdCwgdHlwZSk7CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKLSAgICAgICAgcmV0dXJuIG5ldyBD
YWNoZWRYU0xTdHlsZVNoZWV0KHJlcXVlc3QsIHNlc3Npb25JRCk7CisgICAgICAgIHJldHVybiBu
ZXcgQ2FjaGVkWFNMU3R5bGVTaGVldChyZXF1ZXN0KTsKICNlbmRpZgogI2lmIEVOQUJMRShMSU5L
X1BSRUZFVENIKQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaDoKLSAgICAg
ICAgcmV0dXJuIG5ldyBDYWNoZWRSZXNvdXJjZShyZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZTo6TGlu
a1ByZWZldGNoLCBzZXNzaW9uSUQpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNl
KHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2gpOwogICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRSZXNv
dXJjZShyZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlLCBzZXNzaW9uSUQp
OworICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291
cmNlOjpMaW5rU3VicmVzb3VyY2UpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQog
ICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlOgotICAgICAgICByZXR1
cm4gbmV3IENhY2hlZFRleHRUcmFjayhyZXF1ZXN0LCBzZXNzaW9uSUQpOworICAgICAgICByZXR1
cm4gbmV3IENhY2hlZFRleHRUcmFjayhyZXF1ZXN0KTsKICNlbmRpZgogICAgIH0KICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE0OSwxNiArMTQ3LDYgQEAgRnJhbWUqIENhY2hlZFJlc291
cmNlTG9hZGVyOjpmcmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZG9jdW1lbnRMb2FkZXIgPyBt
X2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpIDogMDsKIH0KIAotU2Vzc2lvbklEIENhY2hlZFJlc291
cmNlTG9hZGVyOjpzZXNzaW9uSUQoKSBjb25zdAotewotICAgIFNlc3Npb25JRCBzZXNzaW9uSUQg
PSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKLQotICAgIGlmIChGcmFtZSogZiA9IGZy
YW1lKCkpCi0gICAgICAgIHNlc3Npb25JRCA9IGYtPnBhZ2UoKS0+c2Vzc2lvbklEKCk7Ci0KLSAg
ICByZXR1cm4gc2Vzc2lvbklEOwotfQotCiBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFn
ZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZShDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCiB7CiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkpIHsK
QEAgLTE5OSw3ICsxODcsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNo
ZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdAogICAgIHJlcXVlc3Qu
bXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldENhY2hlUGFydGl0aW9uKGRvY3VtZW50KCktPnRv
cE9yaWdpbigpLT5jYWNoZVBhcnRpdGlvbigpKTsKICNlbmRpZgogCi0gICAgaWYgKENhY2hlZFJl
c291cmNlKiBleGlzdGluZyA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1
ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSkpIHsKKyAgICBpZiAoQ2FjaGVkUmVz
b3VyY2UqIGV4aXN0aW5nID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVl
c3QucmVzb3VyY2VSZXF1ZXN0KCkpKSB7CiAgICAgICAgIGlmIChleGlzdGluZy0+dHlwZSgpID09
IENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0KQogICAgICAgICAgICAgcmV0dXJuIHRvQ2Fj
aGVkQ1NTU3R5bGVTaGVldChleGlzdGluZyk7CiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92
ZShleGlzdGluZyk7CkBAIC0yMDcsNyArMTk1LDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3QK
ICAgICBpZiAodXJsLnN0cmluZygpICE9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkp
CiAgICAgICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFVSTCh1cmwpOwog
Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gdXNlclNoZWV0
ID0gbmV3IENhY2hlZENTU1N0eWxlU2hlZXQocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVx
dWVzdC5jaGFyc2V0KCksIHNlc3Npb25JRCgpKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRDU1NTdHlsZVNoZWV0PiB1c2VyU2hlZXQgPSBuZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChy
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmNoYXJzZXQoKSk7CiAKICAgICBtZW1v
cnlDYWNoZSgpLT5hZGQodXNlclNoZWV0LmdldCgpKTsKICAgICAvLyBGSVhNRTogbG9hZFJlc291
cmNlIGNhbGxzIHNldE93bmluZ0NhY2hlZFJlc291cmNlTG9hZGVyKCkgaWYgdGhlIHJlc291cmNl
IGNvdWxkbid0IGJlIGFkZGVkIHRvIGNhY2hlLiBEb2VzIHRoaXMgZnVuY3Rpb24gbmVlZCB0byBj
YWxsIGl0LCB0b28/CkBAIC00NDAsNyArNDI4LDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUK
ICAgICAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0Q2FjaGVQYXJ0aXRp
b24oZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCiAK
LSAgICByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSk7CisgICAgcmVzb3VyY2UgPSBtZW1vcnlD
YWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSk7CiAK
ICAgICBjb25zdCBSZXZhbGlkYXRpb25Qb2xpY3kgcG9saWN5ID0gZGV0ZXJtaW5lUmV2YWxpZGF0
aW9uUG9saWN5KHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0
LmZvclByZWxvYWQoKSwgcmVzb3VyY2UuZ2V0KCksIHJlcXVlc3QuZGVmZXIoKSk7CiAgICAgc3dp
dGNoIChwb2xpY3kpIHsKQEAgLTQ5MiwxMSArNDgwLDEwIEBAIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmV2YWxpZGF0ZVJlc291cmNl
KGNvCiAgICAgQVNTRVJUKCFtZW1vcnlDYWNoZSgpLT5kaXNhYmxlZCgpKTsKICAgICBBU1NFUlQo
cmVzb3VyY2UtPmNhblVzZUNhY2hlVmFsaWRhdG9yKCkpOwogICAgIEFTU0VSVCghcmVzb3VyY2Ut
PnJlc291cmNlVG9SZXZhbGlkYXRlKCkpOwotICAgIEFTU0VSVChyZXNvdXJjZS0+c2Vzc2lvbklE
KCkgPT0gc2Vzc2lvbklEKCkpOwotCisgICAgCiAgICAgLy8gQ29weSB0aGUgVVJMIG91dCBvZiB0
aGUgcmVzb3VyY2UgdG8gYmUgcmV2YWxpZGF0ZWQgaW4gY2FzZSBpdCBnZXRzIGRlbGV0ZWQgYnkg
dGhlIHJlbW92ZSgpIGNhbGwgYmVsb3cuCiAgICAgU3RyaW5nIHVybCA9IHJlc291cmNlLT51cmwo
KTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gbmV3UmVzb3VyY2Ug
PSBjcmVhdGVSZXNvdXJjZShyZXNvdXJjZS0+dHlwZSgpLCByZXNvdXJjZS0+cmVzb3VyY2VSZXF1
ZXN0KCksIHJlc291cmNlLT5lbmNvZGluZygpLCByZXNvdXJjZS0+c2Vzc2lvbklEKCkpOworICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBuZXdSZXNvdXJjZSA9IGNyZWF0
ZVJlc291cmNlKHJlc291cmNlLT50eXBlKCksIHJlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKSwg
cmVzb3VyY2UtPmVuY29kaW5nKCkpOwogICAgIAogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJS
ZXNvdXJjZSAlcCBjcmVhdGVkIHRvIHJldmFsaWRhdGUgJXAiLCBuZXdSZXNvdXJjZS5nZXQoKSwg
cmVzb3VyY2UpOwogICAgIG5ld1Jlc291cmNlLT5zZXRSZXNvdXJjZVRvUmV2YWxpZGF0ZShyZXNv
dXJjZSk7CkBAIC01MTMsMTEgKzUwMCwxMSBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRS
ZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNvdXJjZShjbwogCiBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OmxvYWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKIHsKLSAgICBBU1NFUlQoIW1l
bW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgp
LCBzZXNzaW9uSUQoKSkpOworICAgIEFTU0VSVCghbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JS
ZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKTsKIAogICAgIExPRyhSZXNvdXJjZUxv
YWRpbmcsICJMb2FkaW5nIENhY2hlZFJlc291cmNlIGZvciAnJXMnLiIsIHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkudXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkubGF0aW4x
KCkuZGF0YSgpKTsKIAotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBy
ZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlKHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVx
dWVzdCgpLCBjaGFyc2V0LCBzZXNzaW9uSUQoKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlID0gY3JlYXRlUmVzb3VyY2UodHlwZSwgcmVxdWVzdC5t
dXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIGNoYXJzZXQpOwogCiAgICAgaWYgKCFtZW1vcnlDYWNo
ZSgpLT5hZGQocmVzb3VyY2UuZ2V0KCkpKQogICAgICAgICByZXNvdXJjZS0+c2V0T3duaW5nQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCmluZGV4IDAxYjY0N2MxMTMyMDkzN2QxYTVkZWZk
YTMwNzQ1MmZiZmY0MzUwZDUuLmFhZDdlMjViZDExZmUxZTVjNWEzYjI0MjNkZmZkMTRkYWZjY2Ri
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5oCkBAIC0xMTEsNyArMTExLDYgQEAgcHVibGljOgogICAgIERvY3VtZW50KiBkb2N1
bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0gLy8gQ2FuIGJlIG51bGwKICAgICB2
b2lkIHNldERvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCkgeyBtX2RvY3VtZW50ID0gZG9jdW1l
bnQ7IH0KICAgICB2b2lkIGNsZWFyRG9jdW1lbnRMb2FkZXIoKSB7IG1fZG9jdW1lbnRMb2FkZXIg
PSAwOyB9Ci0gICAgU2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0OwogCiAgICAgdm9pZCByZW1v
dmVDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSopIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcAppbmRleCBhNDQ4MDg2
MzNmODA3YzQwMjdkZTFkOGQ0NDg5Njg0MzQ3YjVjMTM3Li5kZDVhNDc4ZTAzNTk3NjE3OTUwYWUx
YzUzODZiNDI2NGFkODVhZDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKQEAgLTMwLDggKzMwLDggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1DYWNoZWRTVkdEb2N1bWVudDo6Q2FjaGVkU1ZHRG9jdW1lbnQoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQotICAgIDogQ2FjaGVk
UmVzb3VyY2UocmVxdWVzdCwgU1ZHRG9jdW1lbnRSZXNvdXJjZSwgc2Vzc2lvbklEKQorQ2FjaGVk
U1ZHRG9jdW1lbnQ6OkNhY2hlZFNWR0RvY3VtZW50KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIFNWR0RvY3VtZW50UmVzb3VyY2Up
CiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJhcHBsaWNhdGlv
bi94bWwiKSkKIHsKICAgICBzZXRBY2NlcHQoImltYWdlL3N2Zyt4bWwiKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmgKaW5kZXggN2Q0NmZhNDVj
NDU1M2E3MjBlY2Q1NjY3NWU2YWZlM2VhZWJmMmU3Ny4uNmMwOGUyZTQwYjgzOGZmM2IzNzA1MWFi
ZTZjOGMwNWE0ODkwODQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFNWR0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNWR0RvY3VtZW50LmgKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBDYWNoZWRTVkdEb2N1bWVudCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7
CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ2FjaGVkU1ZHRG9jdW1lbnQoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgU2Vzc2lvbklEKTsKKyAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2aXJ0dWFsIH5DYWNoZWRTVkdEb2N1bWVudCgpOwog
CiAgICAgU1ZHRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5n
ZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNj
cmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcApp
bmRleCBlZGM2ODVmZGNmMjVmMDJmMDUxNDFkYzU2OGFiNTBkMzhkMTI5MDQyLi40OGZhY2Q3YmMx
NzAyZTRkMTUzODMyZTQ2NmRlYmI0MWNhMDA4NTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcApAQCAtMzksOCArMzksOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUNhY2hlZFNjcmlwdDo6Q2FjaGVkU2NyaXB0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFNlc3Npb25JRCBz
ZXNzaW9uSUQpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIFNjcmlwdCwg
c2Vzc2lvbklEKQorQ2FjaGVkU2NyaXB0OjpDYWNoZWRTY3JpcHQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKKyAgICA6IENhY2hl
ZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgU2NyaXB0KQogICAgICwgbV9kZWNvZGVyKFRleHRS
ZXNvdXJjZURlY29kZXI6OmNyZWF0ZShBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9uL2phdmFzY3Jp
cHQiKSwgY2hhcnNldCkpCiB7CiAgICAgLy8gSXQncyBqYXZhc2NyaXB0IHdlIHdhbnQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgKaW5kZXggYzljNzNkMmVkMTMx
Y2Y1NTQ4OWVhZDE4NjNiNWE2ZGQwY2VkNDJlYy4uZDQzOGIyNzc0OGY4MWIzNjNiYzgxYjNlMzg0
ZDAwYjdiOTQ2OTAyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNjcmlwdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3Jp
cHQuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBD
YWNoZWRTY3JpcHQgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogICAgIHB1YmxpYzoK
LSAgICAgICAgQ2FjaGVkU2NyaXB0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmlu
ZyYgY2hhcnNldCwgU2Vzc2lvbklEKTsKKyAgICAgICAgQ2FjaGVkU2NyaXB0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7CiAgICAgICAgIHZpcnR1YWwgfkNh
Y2hlZFNjcmlwdCgpOwogCiAgICAgICAgIGNvbnN0IFN0cmluZyYgc2NyaXB0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwCmluZGV4IDIwNTA1
NDEwNmZjNmY2ZTM2YjA3OTg3OWE3OWMwNDU0ZmI3OGQwZDIuLjk0OTc0YTU5MWQxZDI3ZjY5NDNk
ZmZlMjRlY2M5NWRkNDdjM2NjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRUZXh0VHJhY2suY3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotQ2FjaGVkVGV4dFRyYWNrOjpDYWNoZWRUZXh0VHJhY2soY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgOiBDYWNo
ZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIFRleHRUcmFja1Jlc291cmNlLCBzZXNzaW9uSUQp
CitDYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwg
VGV4dFRyYWNrUmVzb3VyY2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRUZXh0VHJhY2suaAppbmRleCA3OTNhYzk5YzczZmMyNDBkY2FlZWNmYWVjNWNhYzE3
MjAxYmY2ZmZlLi5iM2VlYTdhMmQ1MzQ1MzQ4ZjdmYzY0NmNiYjQ5MTA1NDY3YzQxMDFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oCkBAIC0zNSw3
ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkVGV4dFRyYWNrIGZp
bmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKIHB1YmxpYzoKLSAgICBDYWNoZWRUZXh0VHJh
Y2soY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRUZXh0VHJh
Y2soY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdmlydHVhbCB+Q2FjaGVkVGV4dFRyYWNr
KCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkWFNMU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkWFNMU3R5bGVTaGVldC5jcHAKaW5kZXggN2E0OWFjMDYxNzBkOWQzZjUyNTdjMTc4NjMwMzVj
NWQ5MjhiYTc3ZS4uZWI2YzhlMWZlODE4M2Y5YzZmNWI1ZTQwMGIxN2I0NTI2MjVmNTRmMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0
LmNwcApAQCAtMzcsOCArMzcsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUo
WFNMVCkKIAotQ2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKLSAg
ICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgWFNMU3R5bGVTaGVldCwgc2Vzc2lv
bklEKQorQ2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291
cmNlUmVxdWVzdCwgWFNMU3R5bGVTaGVldCkKICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VE
ZWNvZGVyOjpjcmVhdGUoInRleHQveHNsIikpCiB7CiAgICAgLy8gSXQncyBYTUwgd2Ugd2FudC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNo
ZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5o
CmluZGV4IDM2OTkyM2E0YmVmYzgyMWNlMDY3YzhlZjFjN2ZmYzM5YzVlNmVlYWEuLjBjYmZiNjU4
ZjBiYTQ0NmZmOWMwZDMyZWI0YjVlNWI5ZWUyNDZlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaApAQCAtMzcsNyArMzcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgY2xhc3MgQ2FjaGVkWFNM
U3R5bGVTaGVldCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiAgICAgcHVibGljOgot
ICAgICAgICBDYWNoZWRYU0xTdHlsZVNoZWV0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Np
b25JRCk7CisgICAgICAgIENhY2hlZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
Jik7CiAKICAgICAgICAgY29uc3QgU3RyaW5nJiBzaGVldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hl
ZXQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKaW5k
ZXggOTZjZGJjMTU1NmIzMTlkODYyYTBkMzhiYjBmYjhiMDE2M2NkYTU3ZS4uY2M2YTIyNTc0NDIz
MmY5YjQ0NGU3OTg2OTUyZDIzMTkxZWI0YjU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvTWVtb3J5Q2FjaGUuY3BwCkBAIC04MCwxNyArODAsNiBAQCBNZW1vcnlDYWNoZTo6TWVt
b3J5Q2FjaGUoKQogewogfQogCi1NZW1vcnlDYWNoZTo6Q2FjaGVkUmVzb3VyY2VNYXAmIE1lbW9y
eUNhY2hlOjpnZXRTZXNzaW9uTWFwKFNlc3Npb25JRCBzZXNzaW9uSUQpCi17Ci0gICAgQVNTRVJU
KHNlc3Npb25JRC5pc1ZhbGlkKCkpOwotICAgIENhY2hlZFJlc291cmNlTWFwKiBtYXAgPSBtX3Nl
c3Npb25SZXNvdXJjZXMuZ2V0KHNlc3Npb25JRCk7Ci0gICAgaWYgKCFtYXApIHsKLSAgICAgICAg
bV9zZXNzaW9uUmVzb3VyY2VzLnNldChzZXNzaW9uSUQsIHN0ZDo6bWFrZV91bmlxdWU8Q2FjaGVk
UmVzb3VyY2VNYXA+KCkpOwotICAgICAgICBtYXAgPSBtX3Nlc3Npb25SZXNvdXJjZXMuZ2V0KHNl
c3Npb25JRCk7Ci0gICAgfQotICAgIHJldHVybiAqbWFwOwotfQotCiBVUkwgTWVtb3J5Q2FjaGU6
OnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVkKGNvbnN0IFVSTCYgb3JpZ2luYWxVUkwp
CiB7CiAgICAgaWYgKCFvcmlnaW5hbFVSTC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkKQEAgLTEx
MiwxNiArMTAxLDE1IEBAIGJvb2wgTWVtb3J5Q2FjaGU6OmFkZChDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UpCiAKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAKLSAgICBDYWNoZWRS
ZXNvdXJjZU1hcCYgcmVzb3VyY2VzID0gZ2V0U2Vzc2lvbk1hcChyZXNvdXJjZS0+c2Vzc2lvbklE
KCkpOwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgQ2FjaGVkUmVzb3VyY2VJ
dGVtKiBvcmlnaW5NYXAgPSByZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSk7CisgICAgQ2Fj
aGVkUmVzb3VyY2VJdGVtKiBvcmlnaW5NYXAgPSBtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVy
bCgpKTsKICAgICBpZiAoIW9yaWdpbk1hcCkgewogICAgICAgICBvcmlnaW5NYXAgPSBuZXcgQ2Fj
aGVkUmVzb3VyY2VJdGVtOwotICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwg
YWRvcHRQdHIob3JpZ2luTWFwKSk7CisgICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+
dXJsKCksIGFkb3B0UHRyKG9yaWdpbk1hcCkpOwogICAgIH0KICAgICBvcmlnaW5NYXAtPnNldChy
ZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSwgcmVzb3VyY2UpOwogI2Vsc2UKLSAgICByZXNvdXJj
ZXMuc2V0KHJlc291cmNlLT51cmwoKSwgcmVzb3VyY2UpOworICAgIG1fcmVzb3VyY2VzLnNldChy
ZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKICNlbmRpZgogICAgIHJlc291cmNlLT5zZXRJbkNh
Y2hlKHRydWUpOwogICAgIApAQCAtMTQ2LDE4ICsxMzQsMTcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6
cmV2YWxpZGF0aW9uU3VjY2VlZGVkKENhY2hlZFJlc291cmNlKiByZXZhbGlkYXRpbmdSZXNvdXJj
ZSwgY28KIAogICAgIGV2aWN0KHJldmFsaWRhdGluZ1Jlc291cmNlKTsKIAotICAgIENhY2hlZFJl
c291cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9uTWFwKHJlc291cmNlLT5zZXNzaW9uSUQo
KSk7CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICBBU1NFUlQoIXJlc291cmNl
cy5nZXQocmVzb3VyY2UtPnVybCgpKSB8fCAhcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkp
LT5nZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpKTsKLSAgICBDYWNoZWRSZXNvdXJjZUl0
ZW0qIG9yaWdpbk1hcCA9IHJlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKTsKKyAgICBBU1NF
UlQoIW1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpIHx8ICFtX3Jlc291cmNlcy5nZXQo
cmVzb3VyY2UtPnVybCgpKS0+Z2V0KHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpKSk7CisgICAg
Q2FjaGVkUmVzb3VyY2VJdGVtKiBvcmlnaW5NYXAgPSBtX3Jlc291cmNlcy5nZXQocmVzb3VyY2Ut
PnVybCgpKTsKICAgICBpZiAoIW9yaWdpbk1hcCkgewogICAgICAgICBvcmlnaW5NYXAgPSBuZXcg
Q2FjaGVkUmVzb3VyY2VJdGVtOwotICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwo
KSwgYWRvcHRQdHIob3JpZ2luTWFwKSk7CisgICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJj
ZS0+dXJsKCksIGFkb3B0UHRyKG9yaWdpbk1hcCkpOwogICAgIH0KICAgICBvcmlnaW5NYXAtPnNl
dChyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSwgcmVzb3VyY2UpOwogI2Vsc2UKLSAgICBBU1NF
UlQoIXJlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKSk7Ci0gICAgcmVzb3VyY2VzLnNldChy
ZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKKyAgICBBU1NFUlQoIW1fcmVzb3VyY2VzLmdldChy
ZXNvdXJjZS0+dXJsKCkpKTsKKyAgICBtX3Jlc291cmNlcy5zZXQocmVzb3VyY2UtPnVybCgpLCBy
ZXNvdXJjZSk7CiAjZW5kaWYKICAgICByZXNvdXJjZS0+c2V0SW5DYWNoZSh0cnVlKTsKICAgICBy
ZXNvdXJjZS0+dXBkYXRlUmVzcG9uc2VBZnRlclJldmFsaWRhdGlvbihyZXNwb25zZSk7CkBAIC0x
ODQsMzEgKzE3MSwyMCBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXZhbGlkYXRpb25GYWlsZWQoQ2Fj
aGVkUmVzb3VyY2UqIHJldmFsaWRhdGluZ1Jlc291cmNlKQogCiBDYWNoZWRSZXNvdXJjZSogTWVt
b3J5Q2FjaGU6OnJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYgcmVzb3VyY2VVUkwpCiB7Ci0gICAg
cmV0dXJuIHJlc291cmNlRm9yVVJMKHJlc291cmNlVVJMLCBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSk7CisgICAgcmV0dXJuIHJlc291cmNlRm9yUmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
cmVzb3VyY2VVUkwpKTsKIH0KIAotQ2FjaGVkUmVzb3VyY2UqIE1lbW9yeUNhY2hlOjpyZXNvdXJj
ZUZvclVSTChjb25zdCBVUkwmIHJlc291cmNlVVJMLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQotewot
ICAgIHJldHVybiByZXNvdXJjZUZvclJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlVVJM
KSwgc2Vzc2lvbklEKTsKLX0KLQotQ2FjaGVkUmVzb3VyY2UqIE1lbW9yeUNhY2hlOjpyZXNvdXJj
ZUZvclJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vz
c2lvbklEKQotewotICAgIHJldHVybiByZXNvdXJjZUZvclJlcXVlc3RJbXBsKHJlcXVlc3QsIGdl
dFNlc3Npb25NYXAoc2Vzc2lvbklEKSk7Ci19Ci0KLUNhY2hlZFJlc291cmNlKiBNZW1vcnlDYWNo
ZTo6cmVzb3VyY2VGb3JSZXF1ZXN0SW1wbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IENhY2hlZFJlc291cmNlTWFwJiByZXNvdXJjZXMpCitDYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2Fj
aGU6OnJlc291cmNlRm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7
CiAgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwogICAgIFVSTCB1cmwgPSByZW1vdmVG
cmFnbWVudElkZW50aWZpZXJJZk5lZWRlZChyZXF1ZXN0LnVybCgpKTsKLQogI2lmIEVOQUJMRShD
QUNIRV9QQVJUSVRJT05JTkcpCi0gICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVtID0gcmVzb3Vy
Y2VzLmdldCh1cmwpOworICAgIENhY2hlZFJlc291cmNlSXRlbSogaXRlbSA9IG1fcmVzb3VyY2Vz
LmdldCh1cmwpOwogICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IDA7CiAgICAgaWYgKGl0
ZW0pCiAgICAgICAgIHJlc291cmNlID0gaXRlbS0+Z2V0KHJlcXVlc3QuY2FjaGVQYXJ0aXRpb24o
KSk7CiAjZWxzZQotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IHJlc291cmNlcy5nZXQo
dXJsKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtX3Jlc291cmNlcy5nZXQodXJs
KTsKICNlbmRpZgogICAgIGJvb2wgd2FzUHVyZ2VhYmxlID0gTWVtb3J5Q2FjaGU6OnNob3VsZE1h
a2VSZXNvdXJjZVB1cmdlYWJsZU9uRXZpY3Rpb24oKSAmJiByZXNvdXJjZSAmJiByZXNvdXJjZS0+
aXNQdXJnZWFibGUoKTsKICAgICBpZiAocmVzb3VyY2UgJiYgIXJlc291cmNlLT5tYWtlUHVyZ2Vh
YmxlKGZhbHNlKSkgewpAQCAtMjQ5LDE0ICsyMjUsMTMgQEAgc3RhdGljIENhY2hlZEltYWdlQ2xp
ZW50JiBkdW1teUNhY2hlZEltYWdlQ2xpZW50KCkKIGJvb2wgTWVtb3J5Q2FjaGU6OmFkZEltYWdl
VG9DYWNoZShOYXRpdmVJbWFnZVB0ciBpbWFnZSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgY2FjaGVQYXJ0aXRpb24pCiB7CiAgICAgQVNTRVJUKGltYWdlKTsKLSAgICBTZXNzaW9uSUQg
c2Vzc2lvbklEID0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgcmVtb3ZlSW1h
Z2VGcm9tQ2FjaGUodXJsLCBjYWNoZVBhcnRpdGlvbik7IC8vIFJlbW92ZSBjYWNoZSBlbnRyeSBp
ZiBpdCBhbHJlYWR5IGV4aXN0cy4KIAogICAgIFJlZlB0cjxCaXRtYXBJbWFnZT4gYml0bWFwSW1h
Z2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKGltYWdlLCBudWxscHRyKTsKICAgICBpZiAoIWJpdG1h
cEltYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2Fj
aGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxDYWNoZWRJbWFnZT4odXJs
LCBiaXRtYXBJbWFnZS5nZXQoKSwgQ2FjaGVkSW1hZ2U6Ok1hbnVhbGx5Q2FjaGVkLCBzZXNzaW9u
SUQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBzdGQ6
Om1ha2VfdW5pcXVlPENhY2hlZEltYWdlPih1cmwsIGJpdG1hcEltYWdlLmdldCgpLCBDYWNoZWRJ
bWFnZTo6TWFudWFsbHlDYWNoZWQpOwogCiAgICAgLy8gQWN0dWFsIHJlbGVhc2Ugb2YgdGhlIENH
SW1hZ2VSZWYgaXMgZG9uZSBpbiBCaXRtYXBJbWFnZS4KICAgICBDRlJldGFpbihpbWFnZSk7CkBA
IC0yNjUsMjEgKzI0MCwyMSBAQCBib29sIE1lbW9yeUNhY2hlOjphZGRJbWFnZVRvQ2FjaGUoTmF0
aXZlSW1hZ2VQdHIgaW1hZ2UsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdAogI2lmIEVOQUJMRShD
QUNIRV9QQVJUSVRJT05JTkcpCiAgICAgY2FjaGVkSW1hZ2UtPnJlc291cmNlUmVxdWVzdCgpLnNl
dENhY2hlUGFydGl0aW9uKGNhY2hlUGFydGl0aW9uKTsKICNlbmRpZgorICAgIGFkZChjYWNoZWRJ
bWFnZS5yZWxlYXNlKCkpOwogICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIE1lbW9yeUNhY2hl
OjpyZW1vdmVJbWFnZUZyb21DYWNoZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjYWNo
ZVBhcnRpdGlvbikKIHsKLSAgICBDYWNoZWRSZXNvdXJjZU1hcCYgcmVzb3VyY2VzID0gZ2V0U2Vz
c2lvbk1hcChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAjaWYgRU5BQkxFKENBQ0hF
X1BBUlRJVElPTklORykKICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2U7Ci0gICAgaWYgKENh
Y2hlZFJlc291cmNlSXRlbSogaXRlbSA9IHJlc291cmNlcy5nZXQodXJsKSkKKyAgICBpZiAoQ2Fj
aGVkUmVzb3VyY2VJdGVtKiBpdGVtID0gbV9yZXNvdXJjZXMuZ2V0KHVybCkpCiAgICAgICAgIHJl
c291cmNlID0gaXRlbS0+Z2V0KFJlc291cmNlUmVxdWVzdDo6cGFydGl0aW9uTmFtZShjYWNoZVBh
cnRpdGlvbikpOwogICAgIGVsc2UKICAgICAgICAgcmVzb3VyY2UgPSBudWxscHRyOwogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0oY2FjaGVQYXJ0aXRpb24pOwotICAgIENhY2hlZFJlc291cmNlKiBy
ZXNvdXJjZSA9IHJlc291cmNlcy5nZXQodXJsKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3Vy
Y2UgPSBtX3Jlc291cmNlcy5nZXQodXJsKTsKICNlbmRpZgogICAgIGlmICghcmVzb3VyY2UpCiAg
ICAgICAgIHJldHVybjsKQEAgLTU0NywxOCArNTIyLDE3IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OmV2
aWN0KENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKICAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAi
RXZpY3RpbmcgcmVzb3VyY2UgJXAgZm9yICclcycgZnJvbSBjYWNoZSIsIHJlc291cmNlLCByZXNv
dXJjZS0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKICAgICAvLyBUaGUgcmVzb3Vy
Y2UgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIHJlbW92ZWQgYnkgc29tZW9uZSBvdGhlciB0aGFuIG91
ciBjYWxsZXIsCiAgICAgLy8gd2hvIG5lZWRlZCBhIGZyZXNoIGNvcHkgZm9yIGEgcmVsb2FkLiBT
ZWUgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDc5I2M2Pi4KLSAg
ICBDYWNoZWRSZXNvdXJjZU1hcCYgcmVzb3VyY2VzID0gZ2V0U2Vzc2lvbk1hcChyZXNvdXJjZS0+
c2Vzc2lvbklEKCkpOwogICAgIGlmIChyZXNvdXJjZS0+aW5DYWNoZSgpKSB7CiAgICAgICAgIC8v
IFJlbW92ZSBmcm9tIHRoZSByZXNvdXJjZSBtYXAuCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElP
TklORykKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVtID0gcmVzb3VyY2VzLmdldChy
ZXNvdXJjZS0+dXJsKCkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jl
c291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKTsKICAgICAgICAgaWYgKGl0ZW0pIHsKICAgICAg
ICAgICAgIGl0ZW0tPnJlbW92ZShyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAgICAgICAg
ICAgICBpZiAoIWl0ZW0tPnNpemUoKSkKLSAgICAgICAgICAgICAgICByZXNvdXJjZXMucmVtb3Zl
KHJlc291cmNlLT51cmwoKSk7CisgICAgICAgICAgICAgICAgbV9yZXNvdXJjZXMucmVtb3ZlKHJl
c291cmNlLT51cmwoKSk7CiAgICAgICAgIH0KICNlbHNlCi0gICAgICAgIHJlc291cmNlcy5yZW1v
dmUocmVzb3VyY2UtPnVybCgpKTsKKyAgICAgICAgbV9yZXNvdXJjZXMucmVtb3ZlKHJlc291cmNl
LT51cmwoKSk7CiAjZW5kaWYKICAgICAgICAgcmVzb3VyY2UtPnNldEluQ2FjaGUoZmFsc2UpOwog
CkBAIC01NzMsOSArNTQ3LDkgQEAgdm9pZCBNZW1vcnlDYWNoZTo6ZXZpY3QoQ2FjaGVkUmVzb3Vy
Y2UqIHJlc291cmNlKQogICAgICAgICAgICAgYWRqdXN0U2l6ZShyZXNvdXJjZS0+aGFzQ2xpZW50
cygpLCAtc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZS0+c2l6ZSgpKSk7CiAgICAgfSBlbHNlCiAj
aWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICAgICAgQVNTRVJUKCFyZXNvdXJjZXMu
Z2V0KHJlc291cmNlLT51cmwoKSkgfHwgcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpLT5n
ZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpICE9IHJlc291cmNlKTsKKyAgICAgICAgQVNT
RVJUKCFtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKSB8fCBtX3Jlc291cmNlcy5nZXQo
cmVzb3VyY2UtPnVybCgpKS0+Z2V0KHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpKSAhPSByZXNv
dXJjZSk7CiAjZWxzZQotICAgICAgICBBU1NFUlQocmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJs
KCkpICE9IHJlc291cmNlKTsKKyAgICAgICAgQVNTRVJUKG1fcmVzb3VyY2VzLmdldChyZXNvdXJj
ZS0+dXJsKCkpICE9IHJlc291cmNlKTsKICNlbmRpZgogCiAgICAgcmVzb3VyY2UtPmRlbGV0ZUlm
UG9zc2libGUoKTsKQEAgLTY5NSwzMyArNjY5LDMxIEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92
ZVJlc291cmNlc1dpdGhPcmlnaW4oU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKIHsKICAgICBWZWN0
b3I8Q2FjaGVkUmVzb3VyY2UqPiByZXNvdXJjZXNXaXRoT3JpZ2luOwogCi0gICAgZm9yIChhdXRv
JiByZXNvdXJjZXMgOiBtX3Nlc3Npb25SZXNvdXJjZXMpIHsKLSAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2VNYXA6Oml0ZXJhdG9yIGUgPSByZXNvdXJjZXMudmFsdWUtPmVuZCgpOworICAgIENhY2hlZFJl
c291cmNlTWFwOjppdGVyYXRvciBlID0gbV9yZXNvdXJjZXMuZW5kKCk7CiAjaWYgRU5BQkxFKENB
Q0hFX1BBUlRJVElPTklORykKLSAgICAgICAgU3RyaW5nIG9yaWdpblBhcnRpdGlvbiA9IFJlc291
cmNlUmVxdWVzdDo6cGFydGl0aW9uTmFtZShvcmlnaW4tPmhvc3QoKSk7CisgICAgU3RyaW5nIG9y
aWdpblBhcnRpdGlvbiA9IFJlc291cmNlUmVxdWVzdDo6cGFydGl0aW9uTmFtZShvcmlnaW4tPmhv
c3QoKSk7CiAjZW5kaWYKIAotICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRv
ciBpdCA9IHJlc291cmNlcy52YWx1ZS0+YmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgeworICAgIGZv
ciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsg
aXQgIT0gZTsgKytpdCkgewogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgICAg
ICAgICBmb3IgKENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaXRlbUl0ZXJhdG9yID0gaXQt
PnZhbHVlLT5iZWdpbigpOyBpdGVtSXRlcmF0b3IgIT0gaXQtPnZhbHVlLT5lbmQoKTsgKytpdGVt
SXRlcmF0b3IpIHsKLSAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBp
dGVtSXRlcmF0b3ItPnZhbHVlOwotICAgICAgICAgICAgICAgIFN0cmluZyBwYXJ0aXRpb24gPSBp
dGVtSXRlcmF0b3ItPmtleTsKLSAgICAgICAgICAgICAgICBpZiAocGFydGl0aW9uID09IG9yaWdp
blBhcnRpdGlvbikgewotICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFw
cGVuZChyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgZm9yIChDYWNoZWRSZXNvdXJjZUl0ZW06Oml0ZXJhdG9yIGl0ZW1J
dGVyYXRvciA9IGl0LT52YWx1ZS0+YmVnaW4oKTsgaXRlbUl0ZXJhdG9yICE9IGl0LT52YWx1ZS0+
ZW5kKCk7ICsraXRlbUl0ZXJhdG9yKSB7CisgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UgPSBpdGVtSXRlcmF0b3ItPnZhbHVlOworICAgICAgICAgICAgU3RyaW5nIHBhcnRpdGlv
biA9IGl0ZW1JdGVyYXRvci0+a2V5OworICAgICAgICAgICAgaWYgKHBhcnRpdGlvbiA9PSBvcmln
aW5QYXJ0aXRpb24pIHsKKyAgICAgICAgICAgICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVu
ZChyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CiAj
ZWxzZQotICAgICAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0LT52YWx1
ZTsKKyAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0LT52YWx1ZTsKICNl
bmRpZgotICAgICAgICAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gcmVzb3VyY2VPcmln
aW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhyZXNvdXJjZS0+dXJsKCkpOwot
ICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2VPcmlnaW4pCi0gICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZU9yaWdpbi0+ZXF1YWwob3Jp
Z2luKSkKLSAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVz
b3VyY2UpOworICAgICAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiByZXNvdXJjZU9yaWdp
biA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHJlc291cmNlLT51cmwoKSk7Cisg
ICAgICAgICAgICBpZiAoIXJlc291cmNlT3JpZ2luKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgaWYgKHJlc291cmNlT3JpZ2luLT5lcXVhbChvcmlnaW4pKQorICAgICAg
ICAgICAgICAgIHJlc291cmNlc1dpdGhPcmlnaW4uYXBwZW5kKHJlc291cmNlKTsKICNpZiBFTkFC
TEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICAgICAgfQotI2VuZGlmCiAgICAgICAgIH0K
KyNlbmRpZgogICAgIH0KIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzb3VyY2VzV2l0
aE9yaWdpbi5zaXplKCk7ICsraSkKQEAgLTczMywxOCArNzA1LDE2IEBAIHZvaWQgTWVtb3J5Q2Fj
aGU6OmdldE9yaWdpbnNXaXRoQ2FjaGUoU2VjdXJpdHlPcmlnaW5TZXQmIG9yaWdpbnMpCiAjaWYg
RU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgaHR0cFN0cmluZywgKCJodHRwIikpOwogI2VuZGlmCi0gICAgZm9yIChhdXRvJiByZXNvdXJj
ZXMgOiBtX3Nlc3Npb25SZXNvdXJjZXMpIHsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0
ZXJhdG9yIGUgPSByZXNvdXJjZXMudmFsdWUtPmVuZCgpOwotICAgICAgICBmb3IgKENhY2hlZFJl
c291cmNlTWFwOjppdGVyYXRvciBpdCA9IHJlc291cmNlcy52YWx1ZS0+YmVnaW4oKTsgaXQgIT0g
ZTsgKytpdCkgeworICAgIENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBlID0gbV9yZXNvdXJj
ZXMuZW5kKCk7CisgICAgZm9yIChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3Jl
c291cmNlcy5iZWdpbigpOyBpdCAhPSBlOyArK2l0KSB7CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJ
VElPTklORykKLSAgICAgICAgICAgIGlmIChpdC0+dmFsdWUtPmJlZ2luKCktPmtleSA9PSBlbXB0
eVN0cmluZygpKQotICAgICAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGVGcm9tU3RyaW5nKGl0LT52YWx1ZS0+YmVnaW4oKS0+dmFsdWUtPnVybCgpKSk7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZShodHRwU3RyaW5nLCBpdC0+dmFsdWUtPmJlZ2luKCktPmtleSwgMCkpOworICAgICAg
ICBpZiAoaXQtPnZhbHVlLT5iZWdpbigpLT5rZXkgPT0gZW1wdHlTdHJpbmcoKSkKKyAgICAgICAg
ICAgIG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0LT52YWx1
ZS0+YmVnaW4oKS0+dmFsdWUtPnVybCgpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG9y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoaHR0cFN0cmluZywgaXQtPnZhbHVlLT5i
ZWdpbigpLT5rZXksIDApKTsKICNlbHNlCi0gICAgICAgICAgICBvcmlnaW5zLmFkZChTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhpdC0+dmFsdWUtPnVybCgpKSk7CisgICAgICAgIG9y
aWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0LT52YWx1ZS0+dXJs
KCkpKTsKICNlbmRpZgotICAgICAgICB9CiAgICAgfQogfQogCkBAIC04MzgsMzkgKzgwOCwzMSBA
QCB2b2lkIE1lbW9yeUNhY2hlOjphZGp1c3RTaXplKGJvb2wgbGl2ZSwgaW50IGRlbHRhKQogICAg
IH0KIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlVXJsRnJvbUNhY2hlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBTZXNzaW9uSUQg
c2Vzc2lvbklEKQordm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlVXJsRnJvbUNhY2hlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogewotICAg
IHJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoY29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0KHVybFN0cmlu
ZyksIHNlc3Npb25JRCk7CisgICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZShjb250ZXh0LCBSZXNv
dXJjZVJlcXVlc3QodXJsU3RyaW5nKSk7CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJl
cXVlc3RGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBNZW1vcnlD
YWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgaWYgKGNvbnRleHQt
PmlzV29ya2VyR2xvYmFsU2NvcGUoKSkgewotICAgICAgICB0b1dvcmtlckdsb2JhbFNjb3BlKGNv
bnRleHQpLT50aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoY3Jl
YXRlQ2FsbGJhY2tUYXNrKCZjcm9zc1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUsIHJlcXVl
c3QsIHNlc3Npb25JRCkpOworICAgICAgICB0b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLT50
aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoY3JlYXRlQ2FsbGJh
Y2tUYXNrKCZjcm9zc1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUsIHJlcXVlc3QpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKGNv
bnRleHQsIHJlcXVlc3QsIHNlc3Npb25JRCk7CisgICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUlt
cGwoY29udGV4dCwgcmVxdWVzdCk7CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVl
c3RGcm9tQ2FjaGVJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIE1lbW9yeUNhY2hlOjpy
ZW1vdmVSZXF1ZXN0RnJvbUNhY2hlSW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIGlmIChDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgc2Vzc2lv
bklEKSkKKyAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+
cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QpKQogICAgICAgICBtZW1vcnlDYWNoZSgpLT5yZW1v
dmUocmVzb3VyY2UpOwogfQogCi12b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNl
c3Npb25DYWNoZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKLXsKLSAgICBmb3IgKGF1dG8mIHJlc291cmNlcyA6IG1lbW9yeUNhY2hlKCkt
Pm1fc2Vzc2lvblJlc291cmNlcykgewotICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0SW1wbChyZXF1ZXN0LCAqcmVz
b3VyY2VzLnZhbHVlKSkKLSAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKHJlc291cmNlKTsK
LSAgICB9Ci19Ci0KLXZvaWQgTWVtb3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZy
b21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRyPFdlYkNv
cmU6OkNyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gcmVxdWVzdERhdGEsIFNlc3Npb25J
RCBzZXNzaW9uSUQpCit2b2lkIE1lbW9yeUNhY2hlOjpjcm9zc1RocmVhZFJlbW92ZVJlcXVlc3RG
cm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc093blB0cjxXZWJD
b3JlOjpDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IHJlcXVlc3REYXRhKQogewogICAg
IE93blB0cjxSZXNvdXJjZVJlcXVlc3Q+IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0OjphZG9wdChy
ZXF1ZXN0RGF0YSkpOwotICAgIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlSW1w
bChjb250ZXh0LCAqcmVxdWVzdCwgc2Vzc2lvbklEKTsKKyAgICBNZW1vcnlDYWNoZTo6cmVtb3Zl
UmVxdWVzdEZyb21DYWNoZUltcGwoY29udGV4dCwgKnJlcXVlc3QpOwogfQogCiB2b2lkIE1lbW9y
eUNhY2hlOjpUeXBlU3RhdGlzdGljOjphZGRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogbykKQEAg
LTg5Myw0MSArODU1LDM4IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OlR5cGVTdGF0aXN0aWM6OmFkZFJl
c291cmNlKENhY2hlZFJlc291cmNlKiBvKQogTWVtb3J5Q2FjaGU6OlN0YXRpc3RpY3MgTWVtb3J5
Q2FjaGU6OmdldFN0YXRpc3RpY3MoKQogewogICAgIFN0YXRpc3RpY3Mgc3RhdHM7Ci0KLSAgICBm
b3IgKGF1dG8gJnJlc291cmNlcyA6IG1fc2Vzc2lvblJlc291cmNlcykgewotICAgICAgICBDYWNo
ZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IHJlc291cmNlcy52YWx1ZS0+ZW5kKCk7Ci0gICAg
ICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGkgPSByZXNvdXJjZXMudmFsdWUt
PmJlZ2luKCk7IGkgIT0gZTsgKytpKSB7CisgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9y
IGUgPSBtX3Jlc291cmNlcy5lbmQoKTsKKyAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVy
YXRvciBpID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaSAhPSBlOyArK2kpIHsKICNpZiBFTkFCTEUo
Q0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICAgICAgZm9yIChDYWNoZWRSZXNvdXJjZUl0ZW06
Oml0ZXJhdG9yIGl0ZW1JdGVyYXRvciA9IGktPnZhbHVlLT5iZWdpbigpOyBpdGVtSXRlcmF0b3Ig
IT0gaS0+dmFsdWUtPmVuZCgpOyArK2l0ZW1JdGVyYXRvcikgewotICAgICAgICAgICAgICAgIENh
Y2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0ZW1JdGVyYXRvci0+dmFsdWU7CisgICAgICAgIGZv
ciAoQ2FjaGVkUmVzb3VyY2VJdGVtOjppdGVyYXRvciBpdGVtSXRlcmF0b3IgPSBpLT52YWx1ZS0+
YmVnaW4oKTsgaXRlbUl0ZXJhdG9yICE9IGktPnZhbHVlLT5lbmQoKTsgKytpdGVtSXRlcmF0b3Ip
IHsKKyAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0ZW1JdGVyYXRvci0+
dmFsdWU7CiAjZWxzZQotICAgICAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9
IGktPnZhbHVlOworICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gaS0+dmFs
dWU7CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlc291cmNlLT50eXBlKCkpIHsK
LSAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgotICAg
ICAgICAgICAgICAgICAgICBzdGF0cy5pbWFnZXMuYWRkUmVzb3VyY2UocmVzb3VyY2UpOwotICAg
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291
cmNlOjpDU1NTdHlsZVNoZWV0OgotICAgICAgICAgICAgICAgICAgICBzdGF0cy5jc3NTdHlsZVNo
ZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKLSAgICAgICAgICAg
ICAgICAgICAgc3RhdHMuc2NyaXB0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgc3dpdGNoIChyZXNvdXJjZS0+dHlwZSgpKSB7
CisgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgorICAgICAg
ICAgICAgICAgIHN0YXRzLmltYWdlcy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNo
ZWV0OgorICAgICAgICAgICAgICAgIHN0YXRzLmNzc1N0eWxlU2hlZXRzLmFkZFJlc291cmNlKHJl
c291cmNlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OlNjcmlwdDoKKyAgICAgICAgICAgICAgICBzdGF0cy5zY3JpcHRzLmFkZFJlc291
cmNlKHJlc291cmNlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoWFNMVCkK
LSAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0OgotICAg
ICAgICAgICAgICAgICAgICBzdGF0cy54c2xTdHlsZVNoZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJj
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKKyAgICAgICAgICAgICAgICBzdGF0cy54c2xTdHlsZVNo
ZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAjZW5k
aWYKLSAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpGb250UmVzb3VyY2U6Ci0g
ICAgICAgICAgICAgICAgICAgIHN0YXRzLmZvbnRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotI2lmIEVOQUJMRShDQUNI
RV9QQVJUSVRJT05JTkcpCisgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpGb250UmVz
b3VyY2U6CisgICAgICAgICAgICAgICAgc3RhdHMuZm9udHMuYWRkUmVzb3VyY2UocmVzb3VyY2Up
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSNlbmRpZgorI2lmIEVOQUJMRShDQUNIRV9Q
QVJUSVRJT05JTkcpCiAgICAgICAgIH0KKyNlbmRpZgogICAgIH0KICAgICByZXR1cm4gc3RhdHM7
CiB9CkBAIC05MzksMTEgKzg5OCw4IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnNldERpc2FibGVkKGJv
b2wgZGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoOzspIHsKLSAgICAgICAg
U2Vzc2lvbkNhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX3Nl
c3Npb25SZXNvdXJjZXMuYmVnaW4oKTsKLSAgICAgICAgaWYgKHNlc3Npb25JdGVyYXRvciA9PSBt
X3Nlc3Npb25SZXNvdXJjZXMuZW5kKCkpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIG91dGVySXRlcmF0b3IgPSBzZXNzaW9uSXRlcmF0b3It
PnZhbHVlLT5iZWdpbigpOwotICAgICAgICBpZiAob3V0ZXJJdGVyYXRvciA9PSBzZXNzaW9uSXRl
cmF0b3ItPnZhbHVlLT5lbmQoKSkKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9y
IG91dGVySXRlcmF0b3IgPSBtX3Jlc291cmNlcy5iZWdpbigpOworICAgICAgICBpZiAob3V0ZXJJ
dGVyYXRvciA9PSBtX3Jlc291cmNlcy5lbmQoKSkKICAgICAgICAgICAgIGJyZWFrOwogI2lmIEVO
QUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAgIENhY2hlZFJlc291cmNlSXRlbTo6aXRl
cmF0b3IgaW5uZXJJdGVyYXRvciA9IG91dGVySXRlcmF0b3ItPnZhbHVlLT5iZWdpbigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAppbmRleCBiYWJiNzdjNmMxOWZk
OGZkMDAwMzA0OTU1NDIzZTIzYzNiMTcxYmUwLi5jMDIzYTk3MjU4MzI3OWNkNDgwMWNkZWNlY2Nh
YTNhNTcxNTk0OTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVt
b3J5Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUu
aApAQCAtMjcsNyArMjcsNiBAQAogCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKLSNpbmNsdWRlICJTZXNzaW9uSURIYXNoLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtODgsNyArODcsNiBAQCBwdWJsaWM6CiAjZWxzZQog
ICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIENhY2hlZFJlc291cmNlKj4gQ2FjaGVkUmVzb3Vy
Y2VNYXA7CiAjZW5kaWYKLSAgICB0eXBlZGVmIEhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1
ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNYXA+PiBTZXNzaW9uQ2FjaGVkUmVzb3VyY2VNYXA7CiAKICAg
ICBzdHJ1Y3QgTFJVTGlzdCB7CiAgICAgICAgIENhY2hlZFJlc291cmNlKiBtX2hlYWQ7CkBAIC0x
MjEsMTAgKzExOSw5IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlRm9yVVJMKGNvbnN0IFVSTCYpOwotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZUZv
clVSTChjb25zdCBVUkwmLCBTZXNzaW9uSUQpOwotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZUZvclJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKLQotICAgIGJv
b2wgYWRkKENhY2hlZFJlc291cmNlKik7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9y
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICAKKyAgICBib29sIGFkZChDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UpOwogICAgIHZvaWQgcmVtb3ZlKENhY2hlZFJlc291cmNlKiBy
ZXNvdXJjZSkgeyBldmljdChyZXNvdXJjZSk7IH0KIAogICAgIHN0YXRpYyBVUkwgcmVtb3ZlRnJh
Z21lbnRJZGVudGlmaWVySWZOZWVkZWQoY29uc3QgVVJMJiBvcmlnaW5hbFVSTCk7CkBAIC0xNzMs
OSArMTcwLDggQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2hDYWNoZWRJbWFnZXNUb0Rpc2soKTsg
Ly8gRmx1c2ggZW5jb2RlZCBkYXRhIGZyb20gcmVzb3VyY2VzIHN0aWxsIHJlZmVyZW5jZWQgYnkg
d2ViIHBhZ2VzLgogI2VuZGlmCiAKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVVcmxGcm9tQ2FjaGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBTZXNzaW9u
SUQpOwotICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCk7Ci0gICAgc3Rh
dGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2FjaGVzKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVV
cmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgdXJsU3Ry
aW5nKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKIAogICAgIC8vIEZ1bmN0aW9u
IHRvIGNvbGxlY3QgY2FjaGUgc3RhdGlzdGljcyBmb3IgdGhlIGNhY2hlcyB3aW5kb3cgaW4gdGhl
IFNhZmFyaSBEZWJ1ZyBtZW51LgogICAgIFN0YXRpc3RpY3MgZ2V0U3RhdGlzdGljcygpOwpAQCAt
MjI1LDExICsyMjEsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbWFrZVJlc291cmNlUHVyZ2VhYmxl
KENhY2hlZFJlc291cmNlKik7CiAgICAgdm9pZCBldmljdChDYWNoZWRSZXNvdXJjZSopOwogCi0g
ICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yUmVxdWVzdEltcGwoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgQ2FjaGVkUmVzb3VyY2VNYXAmKTsKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVSZXF1
ZXN0RnJvbUNhY2hlSW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgU2Vzc2lvbklEKTsKLSAgICBzdGF0aWMgdm9pZCBjcm9zc1RocmVhZFJlbW92ZVJl
cXVlc3RGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NPd25QdHI8Q3Jvc3NU
aHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiwgU2Vzc2lvbklEKTsKLQotICAgIENhY2hlZFJlc291
cmNlTWFwJiBnZXRTZXNzaW9uTWFwKFNlc3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQgcmVtb3Zl
UmVxdWVzdEZyb21DYWNoZUltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYpOworICAgIHN0YXRpYyB2b2lkIGNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZy
b21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc093blB0cjxDcm9zc1RocmVhZFJl
c291cmNlUmVxdWVzdERhdGE+KTsKIAogICAgIGJvb2wgbV9kaXNhYmxlZDsgIC8vIFdoZXRoZXIg
b3Igbm90IHRoZSBjYWNoZSBpcyBlbmFibGVkLgogICAgIGJvb2wgbV9wcnVuZUVuYWJsZWQ7CkBA
IC0yNTMsNyArMjQ2LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICAvLyBBIFVSTC1iYXNlZCBtYXAg
b2YgYWxsIHJlc291cmNlcyB0aGF0IGFyZSBpbiB0aGUgY2FjaGUgKGluY2x1ZGluZyB0aGUgZnJl
c2hlc3QgdmVyc2lvbiBvZiBvYmplY3RzIHRoYXQgYXJlIGN1cnJlbnRseSBiZWluZyAKICAgICAv
LyByZWZlcmVuY2VkIGJ5IGEgV2ViIHBhZ2UpLgotICAgIFNlc3Npb25DYWNoZWRSZXNvdXJjZU1h
cCBtX3Nlc3Npb25SZXNvdXJjZXM7CisgICAgQ2FjaGVkUmVzb3VyY2VNYXAgbV9yZXNvdXJjZXM7
CiB9OwogCiBpbmxpbmUgYm9vbCBNZW1vcnlDYWNoZTo6c2hvdWxkTWFrZVJlc291cmNlUHVyZ2Vh
YmxlT25FdmljdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9z
c1RocmVhZENvcGllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENv
cGllci5jcHAKaW5kZXggMWIxYWMxM2VjNjUyYThiYjgxN2EyNTlkNThkMDQ1ZmM3ZTQzYWViYy4u
NTdkMDRlMTg4YjdkOTk2MjYwNjVjMTUyZThmZDZiZTY0M2NiOTdiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzcsNyArMzcsNiBAQAog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2Uu
aCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlICJTZXNzaW9u
SUQuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCkBAIC03NSwxMSArNzQsNiBAQCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFs
c2UsIGZhbHNlLCBSZXNvdXJjZVJlc3BvbnNlPjo6VHlwZSBDcm9zc1RocmVhZENvcGllckJhcwog
ICAgIHJldHVybiByZXNwb25zZS5jb3B5RGF0YSgpOwogfQogCi1Dcm9zc1RocmVhZENvcGllckJh
c2U8ZmFsc2UsIGZhbHNlLCBTZXNzaW9uSUQ+OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFzZTxm
YWxzZSwgZmFsc2UsIFNlc3Npb25JRD46OmNvcHkoY29uc3QgU2Vzc2lvbklEJiBzZXNzaW9uSUQp
Ci17Ci0gICAgcmV0dXJuIHNlc3Npb25JRDsKLX0KLQogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQogCiBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBDcm9zc1RocmVhZENvcGllckJhc2U8
ZmFsc2UsIGZhbHNlLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZT46OmNvcHkoY29uc3QgSW5k
ZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUmIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q3Jvc3NUaHJlYWRDb3BpZXIuaAppbmRleCAzOThlODRlZDRlNTMxMGFjMWU3MjhiYzIzYjhhOTgx
ZjQ5NzE5YWU0Li5jYWYyNzlmZmVkOTk3ZDMzOWE3NzA4N2UzOTM1MjVkZmE2NTBjZGM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTQ2LDcgKzQ2
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlRXJyb3I7CiAgICAg
Y2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci0gICAg
Y2xhc3MgU2Vzc2lvbklEOwogICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VE
YXRhOwogICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE7CiAgICAgc3Ry
dWN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zOwpAQCAtMTQ2LDExICsxNDUsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOwogICAgIH07CiAKLSAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGll
ckJhc2U8ZmFsc2UsIGZhbHNlLCBTZXNzaW9uSUQ+IHsKLSAgICAgICAgdHlwZWRlZiBTZXNzaW9u
SUQgVHlwZTsKLSAgICAgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBTZXNzaW9uSUQmKTsKLSAg
ICB9OwotCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgbmFtZXNwYWNlIEluZGV4
ZWREQiB7CiAgICAgICAgIGVudW0gY2xhc3MgVHJhbnNhY3Rpb25Nb2RlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXgg
NWJhNGMzN2ExZWVjMzgzMmM3NGRmMzBmNGFiMjY3ZmQ4ZmUyMWE5Yy4uNDc2MWFkZTQyMzY1Nzcz
NmYyNzM3YTJlODUyZGQ0YWIxNWJlMTQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCkBAIC01Nyw3ICs1Nyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgUmVzb3Vy
Y2VSZXF1ZXN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNvdXJj
ZVJlcXVlc3RDYWNoZVBvbGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KQorICAg
ICAgICBSZXNvdXJjZVJlcXVlc3QoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5IHBvbGljeSA9IFVzZVByb3RvY29sQ2FjaGVQ
b2xpY3kpIAogICAgICAgICAgICAgOiBSZXNvdXJjZVJlcXVlc3RCYXNlKHVybCwgcG9saWN5KQog
I2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgICwgbV9tYWluUmVzb3VyY2VSZXF1ZXN0KGZh
bHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90
dGVkUGx1Z0luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbi5jcHAKaW5kZXggNzRjMzlhMWI5MjJjODAyZjEzYjJlMWZmMjdmZTY0OTkxY2ZjNDBi
ZS4uYTE2NGY2ZDA3NGIwYWYzNDMyNTljZTNiYTg3MmQ1ZjZkZWIwN2YxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBA
IC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ3Vy
c29yLmgiCiAjaW5jbHVkZSAiRmlsdGVyLmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUg
IkdyYWRpZW50LmgiCkBAIC04Niw3ICs4NSw3IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW46OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKQogICAgIGlmICghaW1h
Z2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fc25hcHNob3RSZXNvdXJjZS0+c2V0Q2FjaGVk
SW1hZ2UobmV3IENhY2hlZEltYWdlKGltYWdlLmdldCgpLCB2aWV3KCkuZnJhbWVWaWV3KCkuZnJh
bWUoKS5wYWdlKCktPnNlc3Npb25JRCgpKSk7CisgICAgbV9zbmFwc2hvdFJlc291cmNlLT5zZXRD
YWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoaW1hZ2UuZ2V0KCkpKTsKICAgICByZXBhaW50KCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA2MDg0NmI2MmMyZDU1
NDA2MTcxZDE2ZWVjMmVlOGEzZWVmY2YxMjkwLi4yNTQwYjI4ZTI1NWE2Yjc4ZWNiODczYzgwYjE3
M2E2M2YzZDdiNTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zNTYs
OSArMzU2LDkgQEAgYm9vbCBJbnRlcm5hbHM6OmlzUHJlbG9hZGVkKGNvbnN0IFN0cmluZyYgdXJs
KQogCiBib29sIEludGVybmFsczo6aXNMb2FkaW5nRnJvbU1lbW9yeUNhY2hlKGNvbnN0IFN0cmlu
ZyYgdXJsKQogewotICAgIGlmICghY29udGV4dERvY3VtZW50KCkgfHwgIWNvbnRleHREb2N1bWVu
dCgpLT5wYWdlKCkpCisgICAgaWYgKCFjb250ZXh0RG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJl
c291cmNlRm9yVVJMKGNvbnRleHREb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpLCBjb250ZXh0
RG9jdW1lbnQoKS0+cGFnZSgpLT5zZXNzaW9uSUQoKSk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwoY29udGV4dERvY3VtZW50KCkt
PmNvbXBsZXRlVVJMKHVybCkpOwogICAgIHJldHVybiByZXNvdXJjZSAmJiByZXNvdXJjZS0+c3Rh
dHVzKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0
cy5kZWYuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVy
YXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbgppbmRleCBjNDgxNmFhMmQxMzQwOGU2MjAxMGVhOTY1
ZWJhMGQwZmYyNjI0OWU4Li5lMWMxZDFhOGY0MGI5MTZlN2ExYTliMzJjZmQzZjY0ZjFhNDE2YTc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdl
bmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC52
Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbgpAQCAtNDc3
LDUgKzQ3NywzIEBAIEVYUE9SVFMKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoPz8xRE9NV2lu
ZG93QFdlYkNvcmVAQFVBRUBYWiwgPz8xRE9NV2luZG93QFdlYkNvcmVAQFVFQUFAWFopCiAgICAg
ICAgIHN5bWJvbFdpdGhQb2ludGVyKD92aXNpYmxlQ29udGVudFJlY3RAU2Nyb2xsYWJsZUFyZWFA
V2ViQ29yZUBAUUJFP0FWSW50UmVjdEAyQFc0VmlzaWJsZUNvbnRlbnRSZWN0QmVoYXZpb3JAMTJA
QFosID92aXNpYmxlQ29udGVudFJlY3RAU2Nyb2xsYWJsZUFyZWFAV2ViQ29yZUBAUUVCQT9BVklu
dFJlY3RAMkBXNFZpc2libGVDb250ZW50UmVjdEJlaGF2aW9yQDEyQEBaKQogICAgICAgICBzeW1i
b2xXaXRoUG9pbnRlcig/ZGlzYWJsZUFjY2Vzc2liaWxpdHlAQVhPYmplY3RDYWNoZUBXZWJDb3Jl
QEBTQVhYWiwgP2Rpc2FibGVBY2Nlc3NpYmlsaXR5QEFYT2JqZWN0Q2FjaGVAV2ViQ29yZUBAU0FY
WFopCi0gICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9zZXNzaW9uSURAUGFnZUBXZWJDb3JlQEBR
QkU/QVZTZXNzaW9uSURAMkBYWiwgP3Nlc3Npb25JREBQYWdlQFdlYkNvcmVAQFFFQkE/QVZTZXNz
aW9uSURAMkBYWikKLSAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3Jlc291cmNlRm9yVVJMQE1l
bW9yeUNhY2hlQFdlYkNvcmVAQFFBRVBBVkNhY2hlZFJlc291cmNlQDJAQUJWVVJMQDJAVlNlc3Np
b25JREAyQEBaLCA/cmVzb3VyY2VGb3JVUkxATWVtb3J5Q2FjaGVAV2ViQ29yZUBAUUVBQVBBVkNh
Y2hlZFJlc291cmNlQDJAQUJWVVJMQDJAVlNlc3Npb25JREAyQEBaKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCBl
Yjc2OWYzNDliZTFiNDA3ZDUxODA1NDhiNzkwZWViN2M0MGEwOGNmLi42OWM1OWYzMmMyZTkwYTIx
ODdiMDk1YjA5MGU5ODIwM2MzMmUyMDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtNzIsNyArNzIsNiBAQCBw
dWJsaWM6CiAKICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSgpIHsg
cmV0dXJuIG1fcHJpb3JpdHk7IH0KICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QoKSB7IHJldHVybiBtX3JlcXVlc3Q7IH0KLSAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KIAogICAgIFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlKiBoYW5kbGUoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS5nZXQoKTsgfQogICAg
IHZvaWQgZGlkQ29udmVydEhhbmRsZVRvRG93bmxvYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oCmluZGV4IDFkMDcxZDQ3
MTA5NWM1YzhhZDAyYmEwYjBiNDI0MzdlOGVhY2M1OTAuLjMxODgzYzVjODI4NDM1ZGUxN2E0Y2I4
OTg5YzhlNGY1MmU5NGExYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaApAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVk
ZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfQ0ZDYWNoZWRVUkxSZXNwb25zZSogQ0ZDYWNoZWRV
UkxSZXNwb25zZVJlZjsKQEAgLTUzLDcgKzUyLDYgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzOwog
ICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKLSAgICBXZWJD
b3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLm1tIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IubW0KaW5kZXggZWIwYTcx
ZDQxNzgxODVhY2Q4YzZmZDc2ZDgzNzYwMjA4NWQ4MmFmOS4uMzgwZGExZmQyNGQwZjJjMWVlYjQz
MWVhOTJiMzZiZWY2Yjg3OTJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IubW0KQEAgLTYyLDcgKzYyLDYgQEAgdm9pZCBE
aXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKENGQ2FjaGVk
VVJMUmVzcG9uc2VSZWYgY2EKIERpc2tDYWNoZU1vbml0b3I6OkRpc2tDYWNoZU1vbml0b3IoQ0ZD
YWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNwb25zZSwgTmV0d29ya1Jlc291cmNlTG9hZGVy
KiBsb2FkZXIpCiAgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MobG9hZGVyLT5jb25uZWN0
aW9uVG9XZWJQcm9jZXNzKCkpCiAgICAgLCBtX3Jlc291cmNlUmVxdWVzdChsb2FkZXItPnJlcXVl
c3QoKSkKLSAgICAsIG1fc2Vzc2lvbklEKGxvYWRlci0+c2Vzc2lvbklEKCkpCiB7CiAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtODksNyArODgsNyBAQCBEaXNrQ2FjaGVNb25p
dG9yOjpEaXNrQ2FjaGVNb25pdG9yKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9u
c2UsIE5ldHdvcgogICAgICAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIG1vbml0b3ItPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbjo6RGlkQ2FjaGVSZXNvdXJjZShtb25pdG9yLT5yZXNvdXJjZVJlcXVlc3QoKSwgaGFu
ZGxlLCBtX3Nlc3Npb25JRCkpOworICAgICAgICBtb25pdG9yLT5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRpZENhY2hlUmVzb3VyY2UobW9uaXRvci0+cmVzb3VyY2VS
ZXF1ZXN0KCksIGhhbmRsZSkpOwogICAgIH07CiAKICAgICBfQ0ZDYWNoZWRVUkxSZXNwb25zZVNl
dEJlY2FtZUZpbGVCYWNrZWRDYWxsQmFja0Jsb2NrKGNhY2hlZFJlc3BvbnNlLCBibG9jaywgZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4
IDYzOGI4OTdlYjhiNzNkYmRiMzM2Yzg5NjAyZmJjMjVhYjAzNTRkN2IuLmIyMTZlMTI5N2JiMzZi
OTBiNjkzOGUzNWE1OWIwYmIwNzY3N2ViZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRSZXNvdXJjZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlQnVmZmVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KIAogI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCiAKQEAgLTgyLDkgKzgxLDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJ
UEM6OlMKIH0KIAogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCi12b2lkIE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSwgU2Vzc2lv
bklEIHNlc3Npb25JRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJl
c291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU2hhcmVhYmxlUmVz
b3VyY2U6OkhhbmRsZSYgaGFuZGxlKQogewotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9
IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LCBzZXNzaW9uSUQpOwor
ICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9y
UmVxdWVzdChyZXF1ZXN0KTsKICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICByZXR1cm47CiAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggOTM2ZDY2ZWE5M2Q5NjQ4YjYxY2E0Mzkw
MDMyYzJmMmJkZDIzZmZhMS4uODQyZjZlYmFkNzYwZTQ2YmFiMzBiZjU1ZmYzMDBjODU2NjdmYTNl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNDEsNyArNDEsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owog
Y2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLWNsYXNzIFNlc3Npb25JRDsKIH0KIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC03MSw3ICs3MCw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoU0hBUkVB
QkxFX1JFU09VUkNFKQogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCi0gICAgdm9pZCBkaWRDYWNo
ZVJlc291cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFNoYXJlYWJs
ZVJlc291cmNlOjpIYW5kbGUmLCBXZWJDb3JlOjpTZXNzaW9uSUQpOworICAgIHZvaWQgZGlkQ2Fj
aGVSZXNvdXJjZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTaGFyZWFi
bGVSZXNvdXJjZTo6SGFuZGxlJik7CiAjZW5kaWYKIAogICAgIC8vIFRoZSBjb25uZWN0aW9uIGZy
b20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBuZXR3b3JrIHByb2Nlc3MuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBjMWY3OGM0MTZiMTU4MzIzMDlkNDhj
MGY2NGYyN2U4N2I1MDI4NDg5Li5lNjk4OWQ5OGY3ZTY1ZjhlOTQ3YmUyZjRmYjhkM2VmYTk2NDVi
Mzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI1
LDcgKzI1LDcgQEAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lS
ZWNlaXZlciB7CiAKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQotICAgIERpZENhY2hl
UmVzb3VyY2UoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6U2hhcmVh
YmxlUmVzb3VyY2U6OkhhbmRsZSByZXNvdXJjZSwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKKyAgICBEaWRDYWNoZVJlc291cmNlKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
LCBXZWJLaXQ6OlNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUgcmVzb3VyY2UpCiAjZW5kaWYKIAog
fQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>