<?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>83851</bug_id>
          
          <creation_ts>2012-04-12 18:53:38 -0700</creation_ts>
          <short_desc>[chromium] Move WebVideoFrame into Platform and remove WebCore::VideoFrameChromium wrapper API</short_desc>
          <delta_ts>2012-04-13 13:43:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>83857</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dpranke</cc>
    
    <cc>enne</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>scherkus</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>vrk</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>601742</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-12 18:53:38 -0700</bug_when>
    <thetext>[chromium] Move WebVideoFrame into Platform and remove WebCore::VideoFrameChromium wrapper API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601746</commentid>
    <comment_count>1</comment_count>
      <attachid>137024</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-12 18:56:31 -0700</bug_when>
    <thetext>Created attachment 137024
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601750</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-12 19:00:52 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601753</commentid>
    <comment_count>3</comment_count>
      <attachid>137024</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-04-12 19:05:46 -0700</bug_when>
    <thetext>Comment on attachment 137024
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=137024&amp;action=review

&gt; Source/Platform/chromium/src/WebVideoFrame.cpp:43
&gt; +const unsigned WebVideoFrame::maxPlanes = 3;
&gt; +const unsigned WebVideoFrame::numRGBPlanes = 1;
&gt; +const unsigned WebVideoFrame::rgbPlane = 0;
&gt; +const unsigned WebVideoFrame::numYUVPlanes = 3;
&gt; +const unsigned WebVideoFrame::yPlane = 0;
&gt; +const unsigned WebVideoFrame::uPlane = 1;
&gt; +const unsigned WebVideoFrame::vPlane = 2;

We can&apos;t put these in the header?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601777</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-12 19:47:13 -0700</bug_when>
    <thetext>They probably could live in the header, but I would have to verify that they don&apos;t need storage (or convert them from ints to enums).  Keeping the existing mechanism in place seemed safer since the patch is also doing other things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601781</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-12 19:53:12 -0700</bug_when>
    <thetext>Committed r114075: &lt;http://trac.webkit.org/changeset/114075&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602342</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-13 13:06:30 -0700</bug_when>
    <thetext>This failed because some .cpp&apos;s in webkit_unit_tests #included headers in WebCore that include WebVideoFrame.h as &quot;#include &lt;public/WebVideoFrame.h&gt;&quot;, and webkit_unit_tests was being compiled without Source/Platform/chromium/ on the include path.  webkit_unit_tests depend on WebKit.gyp:webkit and nothing else.  Since webkit_unit_tests is an executable, it can&apos;t depend directly on webkit_platform since webkit_platform cannot compile as a standalone library - it has to compile as part of webkit.dll since it depends on symbols in WTF that are actually defined in Source/WebKit/chromium/src/...  Since webkit_unit_tests is special in that it can #include WebCore headers while no other users of WebKit.gyp:webkit are allowed to, it seems that the best option is to put the Platform API include path directly on the webkit_unit_test target.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602343</commentid>
    <comment_count>7</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-13 13:06:50 -0700</bug_when>
    <thetext>Reopening due to revert: http://trac.webkit.org/changeset/114078</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602348</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-13 13:17:19 -0700</bug_when>
    <thetext>diff --git a/Source/WebKit/chromium/WebKitUnitTests.gyp b/Source/WebKit/chromium/WebKitUnitTests.gyp
index 4776dc4..6f1ed11 100644
--- a/Source/WebKit/chromium/WebKitUnitTests.gyp
+++ b/Source/WebKit/chromium/WebKitUnitTests.gyp
@@ -72,6 +72,11 @@
             &apos;include_dirs&apos;: [
                 &apos;public&apos;,
                 &apos;src&apos;,
+                # WebKit unit tests are allowed to include WebKit and WebCore header files, which may include headers in the
+                # Platform API as &lt;public/WebFoo.h&gt;. Thus we need to have the Platform API include path, but we can&apos;t depend
+                # directly on Platform.gyp:webkit_platform since platform cannot link as a separate library. Instead, we just
+                # add the include path directly.
+                &apos;../../Platform/chromium&apos;,
             ],
             &apos;conditions&apos;: [
                 [&apos;inside_chromium_build==1 and component==&quot;shared_library&quot;&apos;, {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602350</commentid>
    <comment_count>9</comment_count>
      <attachid>137134</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-13 13:18:54 -0700</bug_when>
    <thetext>Created attachment 137134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602373</commentid>
    <comment_count>10</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-13 13:43:36 -0700</bug_when>
    <thetext>Committed r114164: &lt;http://trac.webkit.org/changeset/114164&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137024</attachid>
            <date>2012-04-12 18:56:31 -0700</date>
            <delta_ts>2012-04-13 13:18:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83851-20120412185629.patch</filename>
            <type>text/plain</type>
            <size>51408</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA2NmJiZDE4YzY2NDgz
NzI4YmQ1OWQ1MTgwMzI0ZGM0ZTZmZDM3NWU2Li5kZDIwNzA3YzE0Y2RjNTI4NDY2MjczMzRkMzY5
ZDc4OTVhOTVjNTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wNC0xMiAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gTW92ZSBXZWJWaWRlb0ZyYW1lIGludG8gUGxhdGZvcm0gYW5kIHJlbW92ZSBXZWJDb3JlOjpW
aWRlb0ZyYW1lQ2hyb21pdW0gd3JhcHBlciBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgzODUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTW92ZSBXZWJWaWRlb0ZyYW1lIEFQSSBpbnRvIFBsYXRmb3Jt
LgorCisgICAgICAgICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMv
V2ViVmlkZW9GcmFtZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVmlkZW9GcmFtZUNocm9taXVtLmguCisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoV2ViVmlkZW9GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnJhbWU6
On5XZWJWaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GcmFtZTo6Zm9ybWF0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GcmFtZTo6d2lkdGgpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWRlb0ZyYW1lOjpoZWlnaHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Zy
YW1lOjpwbGFuZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0ZyYW1lOjpzdHJpZGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0ZyYW1lOjpkYXRhKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GcmFtZTo6dGV4dHVyZUlkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GcmFt
ZTo6dGV4dHVyZVRhcmdldCk6CisgICAgICAgICogY2hyb21pdW0vc3JjL1dlYlZpZGVvRnJhbWUu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVmlkZW9GcmFtZUNocm9taXVtLmNwcC4KKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTItMDQt
MTEgIERhdmlkIERvcndpbiAgPGRkb3J3aW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBr
ZXlTeXN0ZW0gYXR0cmlidXRlIHRvIGNhblBsYXlUeXBlKCkgZm9yIEVuY3J5cHRlZCBNZWRpYSBF
eHRlbnNpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmUzZjhkOTUwZWMyZjgzODY3YmM5ZTE5MzFhZmEzYTZl
NGFmNzdhZC4uMWFjODEyMWVjOTUxZWNkOTlhZGVlOWVhNzEyNGM2ZTIxYmI1MzIyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA0LTEyICBKYW1lcyBSb2JpbnNvbiAgPGphbWVz
ckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBNb3ZlIFdlYlZpZGVvRnJhbWUg
aW50byBQbGF0Zm9ybSBhbmQgcmVtb3ZlIFdlYkNvcmU6OlZpZGVvRnJhbWVDaHJvbWl1bSB3cmFw
cGVyIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODM4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZW1vdmUgVmlkZW9GcmFtZUNocm9taXVtIHdyYXBwZXIgYW5kIGNvbnZlcnRzIFdlYkNvcmUgY29k
ZSB0byB1c2luZyB0aGUgUGxhdGZvcm0gV2ViVmlkZW9GcmFtZSBBUEkgZGlyZWN0bHkuCisgICAg
ICAgIFNvbWUgdXRpbGl0eSBjb2RlIHRoYXQgcHJldmlvdXNseSBleGlzdGVkIG9uIFZpZGVvRnJh
bWVDaHJvbWl1bSBhbmQgb25seSBoYWQgb25lIGNhbGxlciwgc3VjaCBhcyBkb2luZworICAgICAg
ICB3aWR0aC9oZWlnaHQgYWRqdXN0ZW1lbnRzIGZvciBZVjEyIGZyYW1lcywgaXMgbW92ZWQgaW50
byB0aGUgY2FsbGluZyBjb2RlIChDQ1ZpZGVvTGF5ZXJJbXBsKS4KKworICAgICAgICBDb3ZlcmVk
IGJ5IGV4aXN0aW5nIG1lZGlhLyBhbmQgY29tcG9zaXRpbmcvIGxheW91dCB0ZXN0cy4KKworICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5k
ZXJlckNocm9taXVtOjpkcmF3WVVWKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJD
aHJvbWl1bTo6ZHJhd1JHQkEpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9t
aXVtOjpjb3B5RnJhbWVUb1RleHR1cmVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9WaWRlb0ZyYW1lUHJvdmlkZXIuaDoKKyAgICAgICAgKFZpZGVvRnJhbWVQ
cm92aWRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRl
b0RyYXdRdWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVmlkZW9EcmF3UXVhZDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVmlkZW9EcmF3UXVhZDo6Q0NWaWRlb0RyYXdRdWFkKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvRHJhd1F1YWQu
aDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChDQ1ZpZGVvRHJhd1F1YWQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NWaWRlb0RyYXdRdWFkOjpmcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRWRkNGb3JtYXRUb0dDM0RGb3JtYXQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NWaWRlb0xheWVySW1wbDo6d2lsbERyYXcpOgorICAgICAgICAo
V2ViQ29yZTo6dmlkZW9GcmFtZURpbWVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpoYXNQYWRk
aW5nQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q0NWaWRlb0xheWVySW1wbDo6Y29tcHV0ZVZp
c2libGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVmlkZW9MYXllckltcGw6OnJlc2VydmVU
ZXh0dXJlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRl
b0xheWVySW1wbC5oOgorICAgICAgICAoV2ViS2l0KToKKwogMjAxMi0wNC0xMiAgQmFsYXpzIEtl
bGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBGaXggV2ViS2l0MSBi
dWlsZCB3aXRoIFY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGUxYjNhNTUzZWIxYjI5
OTk3NTgwZDEzMzg4ODlmY2E2MzdhY2Y4NjEuLjdlZjM2ZDIwZmMwOWE2MWJlY2EyODUwOGNjMjI5
YjRmNGNkNDk0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTItMDQtMTIgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBbY2hyb21pdW1dIE1vdmUgV2ViVmlkZW9GcmFtZSBpbnRvIFBsYXRmb3JtIGFuZCByZW1v
dmUgV2ViQ29yZTo6VmlkZW9GcmFtZUNocm9taXVtIHdyYXBwZXIgQVBJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04Mzg1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVzIHRoZSBXZWJWaWRlb0ZyYW1l
IGludGVyZmFjZSBpbnRvIFBsYXRmb3JtIGFuZCByZW1vdmVzIHRoZSBub3cgdW5uZWNlc3Nhcnkg
VmlkZW9GcmFtZUNocm9taXVtSW1wbCBhZGFwdGVyCisgICAgICAgIGltcGxlbWVudGF0aW9uLgor
CisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlkZW9GcmFtZS5o
OgorICAgICAgICAqIHNyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDoKKyAgICAgICAgKiBzcmMv
VmlkZW9GcmFtZUNocm9taXVtSW1wbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogc3JjL1ZpZGVv
RnJhbWVDaHJvbWl1bUltcGwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsOjpnZXRDdXJyZW50RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNs
aWVudEltcGw6OnB1dEN1cnJlbnRGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbDo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsLmg6CisgICAgICAgIChXZWJNZWRpYVBsYXllckNsaWVudEltcGwpOgorCiAy
MDEyLTA0LTEyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBb
Q2hyb21pdW1dIEVuYWJsZSBJTlBVVF9UWVBFX0RBVEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0
Zm9ybS9QbGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKaW5kZXgg
OGM1NGNhY2IwN2RjMjUwYWJlNzExY2E3YTc3YzAzNGUwNzZmZDdjOS4uYTNlY2JiODk4MDE1NjM1
YWI5ZDIzMzM4ODRmMDJlMThmMWJhOGMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL1Bs
YXRmb3JtLmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKQEAgLTk0LDYg
Kzk0LDcgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9zcmMvV2ViQ1N0cmluZy5jcHAnLAogICAg
ICAgICAgICAgJ2Nocm9taXVtL3NyYy9XZWJGbG9hdFF1YWQuY3BwJywKICAgICAgICAgICAgICdj
aHJvbWl1bS9zcmMvV2ViU3RyaW5nLmNwcCcsCisgICAgICAgICAgICAnY2hyb21pdW0vc3JjL1dl
YlZpZGVvRnJhbWUuY3BwJywKICAgICAgICAgXQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oIGIvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGIwYWE3ZDU0
Mjg0ZGY4ZGZmYWNjZmY1NDU3NmQ0ZmZjMjJjMzY5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oCkBAIC0wLDAgKzEsNzIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYlZpZGVvRnJhbWVfaAorI2RlZmluZSBXZWJWaWRlb0ZyYW1lX2gKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKKy8vIEEgcHJveHkgdmlkZW8gZnJhbWUgaW50ZXJmYWNlIHRvIGNv
bW11bmljYXRlIGZyYW1lIGRhdGEgYmV0d2VlbiBjaHJvbWl1bQorLy8gYW5kIFdlYktpdC4KKy8v
IEtlZXAgaW4gc3luYyB3aXRoIGNocm9taXVtJ3MgbWVkaWE6OlZpZGVvRnJhbWU6OkZvcm1hdC4K
K2NsYXNzIFdlYlZpZGVvRnJhbWUgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBtYXhQbGFuZXM7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bVJHQlBsYW5lczsKKyAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgcmdiUGxhbmU7CisgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIG51bVlVVlBsYW5lczsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgeVBsYW5lOworICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB1UGxhbmU7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IHZQbGFuZTsKKworICAgIGVudW0gRm9ybWF0IHsKKyAgICAgICAgRm9ybWF0SW52YWxpZCA9IDAs
CisgICAgICAgIEZvcm1hdFJHQjMyID0gNCwKKyAgICAgICAgRm9ybWF0WVYxMiA9IDYsCisgICAg
ICAgIEZvcm1hdFlWMTYgPSA3LAorICAgICAgICBGb3JtYXRFbXB0eSA9IDksCisgICAgICAgIEZv
cm1hdEk0MjAgPSAxMSwKKyAgICAgICAgRm9ybWF0TmF0aXZlVGV4dHVyZSA9IDEyLAorICAgIH07
CisKKyAgICB2aXJ0dWFsIH5XZWJWaWRlb0ZyYW1lKCkgeyB9CisgICAgdmlydHVhbCBGb3JtYXQg
Zm9ybWF0KCkgY29uc3QgeyByZXR1cm4gRm9ybWF0SW52YWxpZDsgfQorICAgIHZpcnR1YWwgdW5z
aWduZWQgd2lkdGgoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB1bnNpZ25lZCBo
ZWlnaHQoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB1bnNpZ25lZCBwbGFuZXMo
KSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBpbnQgc3RyaWRlKHVuc2lnbmVkIHBs
YW5lKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBjb25zdCB2b2lkKiBkYXRhKHVu
c2lnbmVkIHBsYW5lKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB1bnNpZ25lZCB0
ZXh0dXJlSWQoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB1bnNpZ25lZCB0ZXh0
dXJlVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gMDsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3NyYy9X
ZWJWaWRlb0ZyYW1lLmNwcCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9zcmMvV2ViVmlkZW9G
cmFtZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM4NjY1OTMzNmJjZjVlYTE5YTNmMTJiMjI4YWU0ZjFlNzAz
NmZmZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9zcmMvV2Vi
VmlkZW9GcmFtZS5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJWaWRlb0ZyYW1lLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
b25zdCB1bnNpZ25lZCBXZWJWaWRlb0ZyYW1lOjptYXhQbGFuZXMgPSAzOworY29uc3QgdW5zaWdu
ZWQgV2ViVmlkZW9GcmFtZTo6bnVtUkdCUGxhbmVzID0gMTsKK2NvbnN0IHVuc2lnbmVkIFdlYlZp
ZGVvRnJhbWU6OnJnYlBsYW5lID0gMDsKK2NvbnN0IHVuc2lnbmVkIFdlYlZpZGVvRnJhbWU6Om51
bVlVVlBsYW5lcyA9IDM7Citjb25zdCB1bnNpZ25lZCBXZWJWaWRlb0ZyYW1lOjp5UGxhbmUgPSAw
OworY29uc3QgdW5zaWduZWQgV2ViVmlkZW9GcmFtZTo6dVBsYW5lID0gMTsKK2NvbnN0IHVuc2ln
bmVkIFdlYlZpZGVvRnJhbWU6OnZQbGFuZSA9IDI7CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggNjc0Y2I0ZDlhZjM4MWNlMmI2NjFlNDQ3NjIxYmMyM2E4M2Rk
NjU1Mi4uYzBkZmE4NTM3N2MxYjEzNzM1MzA1ZGIyZGM5ZDA4Yzg5MGVhZGY3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtMzU3OCw4ICszNTc4LDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVuLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZETVhQYXJzZXIuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WRE1YUGFyc2VyLmgnLAotICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvRnJhbWVDaHJvbWl1bS5jcHAnLAotICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvRnJhbWVDaHJvbWl1bS5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0ZyYW1lUHJvdmlk
ZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXll
ckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VmlkZW9MYXllckNocm9taXVtLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5j
cHAKaW5kZXggZjRhNTAwYTg3MzlhMTBjYTc3NTBlMmY4Yzg4OGQ4MGVmNGM2YTMzNy4uMTJiODY2
NjBmMjcyYWFkYjllMzE5ZjRhMTEwMzJiNWFiMTc5NGMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJl
bmRlcmVyQ2hyb21pdW0uY3BwCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSAiRXh0ZW5zaW9u
czNELmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1D
b250ZXh0U2tpYS5oIgorI2luY2x1ZGUgPHB1YmxpYy9XZWJWaWRlb0ZyYW1lLmg+CiAjaW5jbHVk
ZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAt
NzcwLDkgKzc3MSw5IEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3WVVWKGNvbnN0
IENDVmlkZW9EcmF3UXVhZCogcXVhZCkKICAgICBjb25zdCBDQ1ZpZGVvTGF5ZXJJbXBsOjpZVVZQ
cm9ncmFtKiBwcm9ncmFtID0gdmlkZW9MYXllcllVVlByb2dyYW0oKTsKICAgICBBU1NFUlQocHJv
Z3JhbSAmJiBwcm9ncmFtLT5pbml0aWFsaXplZCgpKTsKIAotICAgIGNvbnN0IENDVmlkZW9MYXll
ckltcGw6OlRleHR1cmUmIHlUZXh0dXJlID0gcXVhZC0+dGV4dHVyZXMoKVtWaWRlb0ZyYW1lQ2hy
b21pdW06OnlQbGFuZV07Ci0gICAgY29uc3QgQ0NWaWRlb0xheWVySW1wbDo6VGV4dHVyZSYgdVRl
eHR1cmUgPSBxdWFkLT50ZXh0dXJlcygpW1ZpZGVvRnJhbWVDaHJvbWl1bTo6dVBsYW5lXTsKLSAg
ICBjb25zdCBDQ1ZpZGVvTGF5ZXJJbXBsOjpUZXh0dXJlJiB2VGV4dHVyZSA9IHF1YWQtPnRleHR1
cmVzKClbVmlkZW9GcmFtZUNocm9taXVtOjp2UGxhbmVdOworICAgIGNvbnN0IENDVmlkZW9MYXll
ckltcGw6OlRleHR1cmUmIHlUZXh0dXJlID0gcXVhZC0+dGV4dHVyZXMoKVtXZWJLaXQ6OldlYlZp
ZGVvRnJhbWU6OnlQbGFuZV07CisgICAgY29uc3QgQ0NWaWRlb0xheWVySW1wbDo6VGV4dHVyZSYg
dVRleHR1cmUgPSBxdWFkLT50ZXh0dXJlcygpW1dlYktpdDo6V2ViVmlkZW9GcmFtZTo6dVBsYW5l
XTsKKyAgICBjb25zdCBDQ1ZpZGVvTGF5ZXJJbXBsOjpUZXh0dXJlJiB2VGV4dHVyZSA9IHF1YWQt
PnRleHR1cmVzKClbV2ViS2l0OjpXZWJWaWRlb0ZyYW1lOjp2UGxhbmVdOwogCiAgICAgR0xDKGNv
bnRleHQoKSwgY29udGV4dCgpLT5hY3RpdmVUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFMSkpOwogICAgIEdMQyhjb250ZXh0KCksIGNvbnRleHQoKS0+YmluZFRleHR1cmUoR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIHlUZXh0dXJlLm1fdGV4dHVyZS0+dGV4dHVyZUlkKCkp
KTsKQEAgLTgyOCw3ICs4MjksNyBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd1Np
bmdsZVRleHR1cmVWaWRlb1F1YWQoY29uc3QgQ0NWaWRlb0RyYXdRdWFkKiBxdQogdm9pZCBMYXll
clJlbmRlcmVyQ2hyb21pdW06OmRyYXdSR0JBKGNvbnN0IENDVmlkZW9EcmF3UXVhZCogcXVhZCkK
IHsKICAgICBjb25zdCBDQ1ZpZGVvTGF5ZXJJbXBsOjpSR0JBUHJvZ3JhbSogcHJvZ3JhbSA9IHZp
ZGVvTGF5ZXJSR0JBUHJvZ3JhbSgpOwotICAgIGNvbnN0IENDVmlkZW9MYXllckltcGw6OlRleHR1
cmUmIHRleHR1cmUgPSBxdWFkLT50ZXh0dXJlcygpW1ZpZGVvRnJhbWVDaHJvbWl1bTo6cmdiUGxh
bmVdOworICAgIGNvbnN0IENDVmlkZW9MYXllckltcGw6OlRleHR1cmUmIHRleHR1cmUgPSBxdWFk
LT50ZXh0dXJlcygpW1dlYktpdDo6V2ViVmlkZW9GcmFtZTo6cmdiUGxhbmVdOwogICAgIGZsb2F0
IHdpZHRoU2NhbGVGYWN0b3IgPSBzdGF0aWNfY2FzdDxmbG9hdD4odGV4dHVyZS5tX3Zpc2libGVT
aXplLndpZHRoKCkpIC8gdGV4dHVyZS5tX3RleHR1cmUtPnNpemUoKS53aWR0aCgpOwogICAgIGRy
YXdTaW5nbGVUZXh0dXJlVmlkZW9RdWFkKHF1YWQsIHByb2dyYW0sIHdpZHRoU2NhbGVGYWN0b3Is
IHRleHR1cmUubV90ZXh0dXJlLT50ZXh0dXJlSWQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfMkQpOwogfQpAQCAtODUzLDEyICs4NTQsMTEgQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21p
dW06OmRyYXdTdHJlYW1UZXh0dXJlKGNvbnN0IENDVmlkZW9EcmF3UXVhZCogcXVhZCkKIAogYm9v
bCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmNvcHlGcmFtZVRvVGV4dHVyZXMoY29uc3QgQ0NWaWRl
b0RyYXdRdWFkKiBxdWFkKQogewotICAgIGNvbnN0IFZpZGVvRnJhbWVDaHJvbWl1bSogZnJhbWUg
PSBxdWFkLT5mcmFtZSgpOworICAgIGNvbnN0IFdlYktpdDo6V2ViVmlkZW9GcmFtZSogZnJhbWUg
PSBxdWFkLT5mcmFtZSgpOwogCi0gICAgZm9yICh1bnNpZ25lZCBwbGFuZSA9IDA7IHBsYW5lIDwg
ZnJhbWUtPnBsYW5lcygpOyArK3BsYW5lKSB7Ci0gICAgICAgIEFTU0VSVChxdWFkLT5mcmFtZSgp
LT5yZXF1aXJlZFRleHR1cmVTaXplKHBsYW5lKSA9PSBxdWFkLT50ZXh0dXJlcygpW3BsYW5lXS5t
X3RleHR1cmUtPnNpemUoKSk7CisgICAgZm9yICh1bnNpZ25lZCBwbGFuZSA9IDA7IHBsYW5lIDwg
ZnJhbWUtPnBsYW5lcygpOyArK3BsYW5lKQogICAgICAgICBjb3B5UGxhbmVUb1RleHR1cmUocXVh
ZCwgZnJhbWUtPmRhdGEocGxhbmUpLCBwbGFuZSk7Ci0gICAgfQorCiAgICAgZm9yICh1bnNpZ25l
ZCBwbGFuZSA9IGZyYW1lLT5wbGFuZXMoKTsgcGxhbmUgPCBDQ1ZpZGVvTGF5ZXJJbXBsOjpNYXhQ
bGFuZXM7ICsrcGxhbmUpIHsKICAgICAgICAgQ0NWaWRlb0xheWVySW1wbDo6VGV4dHVyZSogdGV4
dHVyZSA9ICZxdWFkLT50ZXh0dXJlcygpW3BsYW5lXTsKICAgICAgICAgdGV4dHVyZS0+bV90ZXh0
dXJlLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCmluZGV4IDdjYjll
YjU2YTIzNTNiYTgwZDcyMDAxMThiMjk2YTkyZGI4MGRkOGEuLjQwZTlkNTYzZjAzNTkwZmI5ODMy
NTkxOGZmYzMzOGI1Y2I0MzJkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5o
CkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiTGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUg
IlRleHR1cmVDb3BpZXIuaCIKICNpbmNsdWRlICJUcmFja2luZ1RleHR1cmVBbGxvY2F0b3IuaCIK
LSNpbmNsdWRlICJWaWRlb0xheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJjYy9DQ0RyYXdRdWFk
LmgiCiAjaW5jbHVkZSAiY2MvQ0NIZWFkc1VwRGlzcGxheS5oIgogI2luY2x1ZGUgImNjL0NDTGF5
ZXJUcmVlSG9zdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVmlkZW9GcmFtZUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvRnJhbWVDaHJvbWl1bS5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGNhOTI4NDIyNDIxMzU0MTExYzY5YmM4MzkzY2E1YjU2NTNjOTYz
MTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9GcmFtZUNocm9taXVtLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNp
bmNsdWRlICJWaWRlb0ZyYW1lQ2hyb21pdW0uaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
b25zdCB1bnNpZ25lZCBWaWRlb0ZyYW1lQ2hyb21pdW06Om1heFBsYW5lcyA9IDM7Ci1jb25zdCB1
bnNpZ25lZCBWaWRlb0ZyYW1lQ2hyb21pdW06Om51bVJHQlBsYW5lcyA9IDE7Ci1jb25zdCB1bnNp
Z25lZCBWaWRlb0ZyYW1lQ2hyb21pdW06OnJnYlBsYW5lID0gMDsKLWNvbnN0IHVuc2lnbmVkIFZp
ZGVvRnJhbWVDaHJvbWl1bTo6bnVtWVVWUGxhbmVzID0gMzsKLWNvbnN0IHVuc2lnbmVkIFZpZGVv
RnJhbWVDaHJvbWl1bTo6eVBsYW5lID0gMDsKLWNvbnN0IHVuc2lnbmVkIFZpZGVvRnJhbWVDaHJv
bWl1bTo6dVBsYW5lID0gMTsKLWNvbnN0IHVuc2lnbmVkIFZpZGVvRnJhbWVDaHJvbWl1bTo6dlBs
YW5lID0gMjsKLQotVmlkZW9GcmFtZUNocm9taXVtOjp+VmlkZW9GcmFtZUNocm9taXVtKCkgeyB9
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0ZyYW1lQ2hyb21pdW0uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvRnJhbWVDaHJvbWl1bS5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3N2FmMDdjYzM5NWUzYTUxNmVmZmVmMGQ3
YzExNDRmZDczMzNkYjc4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvRnJh
bWVDaHJvbWl1bS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRp
b24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0g
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgVmlkZW9G
cmFtZUNocm9taXVtX2gKLSNkZWZpbmUgVmlkZW9GcmFtZUNocm9taXVtX2gKLQotI2luY2x1ZGUg
IkludFNpemUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBBIGNsYXNzIHRoYXQgcmVw
cmVzZW50cyBhIHZpZGVvIGZyYW1lIGluIGNocm9taXVtLgotY2xhc3MgVmlkZW9GcmFtZUNocm9t
aXVtIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4UGxhbmVzOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1SR0JQbGFuZXM7Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIHJnYlBsYW5lOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1ZVVZQbGFuZXM7
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHlQbGFuZTsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgdVBsYW5lOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2UGxhbmU7Ci0KLSAgICAv
LyBUaGVzZSBlbnVtcyBtdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIFdlYktpdDo6V2ViVmlkZW9G
cmFtZS4KLSAgICBlbnVtIEZvcm1hdCB7Ci0gICAgICAgIEludmFsaWQgPSAwLAotICAgICAgICBS
R0IzMiA9IDQsCi0gICAgICAgIFlWMTIgPSA2LAotICAgICAgICBZVjE2ID0gNywKLSAgICAgICAg
RW1wdHkgPSA5LAotICAgICAgICBJNDIwID0gMTEsCi0gICAgICAgIE5hdGl2ZVRleHR1cmUgPSAx
MiwKLSAgICB9OwotCi0gICAgdmlydHVhbCB+VmlkZW9GcmFtZUNocm9taXVtKCk7Ci0gICAgdmly
dHVhbCBGb3JtYXQgZm9ybWF0KCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdW5zaWduZWQgd2lk
dGgoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBwbGFu
ZSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3QgPSAwOwot
ICAgIHZpcnR1YWwgdW5zaWduZWQgaGVpZ2h0KHVuc2lnbmVkIHBsYW5lKSBjb25zdCA9IDA7Ci0g
ICAgdmlydHVhbCB1bnNpZ25lZCBwbGFuZXMoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBpbnQg
c3RyaWRlKHVuc2lnbmVkIHBsYW5lKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCB2b2lk
KiBkYXRhKHVuc2lnbmVkIHBsYW5lKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBJbnRT
aXplIHJlcXVpcmVkVGV4dHVyZVNpemUodW5zaWduZWQgcGxhbmUpIGNvbnN0ID0gMDsKLSAgICB2
aXJ0dWFsIGJvb2wgaGFzUGFkZGluZ0J5dGVzKHVuc2lnbmVkIHBsYW5lKSBjb25zdCA9IDA7Ci0g
ICAgdmlydHVhbCB1bnNpZ25lZCB0ZXh0dXJlSWQoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB1
bnNpZ25lZCB0ZXh0dXJlVGFyZ2V0KCkgY29uc3QgPSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1ZpZGVvRnJhbWVQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9GcmFtZVByb3ZpZGVyLmgKaW5kZXggOTc5NDc5
NGE3YjdkZjUzMzMzMzNjMGExNGRmMjUxYTY3NDhjOTkwMy4uMGFhNDQyZGE2YmM4ODRiZjU2MjEy
YjFhMTQxMDNkY2Q5OWI1NTRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVmlkZW9GcmFtZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9GcmFtZVByb3ZpZGVyLmgKQEAgLTMx
LDcgKzMxLDcgQEAKICNpZm5kZWYgVmlkZW9GcmFtZVByb3ZpZGVyX2gKICNkZWZpbmUgVmlkZW9G
cmFtZVByb3ZpZGVyX2gKIAotI2luY2x1ZGUgIlZpZGVvRnJhbWVDaHJvbWl1bS5oIgorI2luY2x1
ZGUgPHB1YmxpYy9XZWJWaWRlb0ZyYW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NDksMTcgKzQ5LDE1IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0ZyYW1l
UHJvdmlkZXJDbGllbnQoQ2xpZW50KikgPSAwOwogCi0gICAgLy8gVGhpcyBmdW5jdGlvbiByZXR1
cm5zIGEgcG9pbnRlciB0byBhIFZpZGVvRnJhbWVDaHJvbWl1bSwgd2hpY2ggaXMKLSAgICAvLyB0
aGUgV2ViQ29yZSB3cmFwcGVyIGZvciBhIHZpZGVvIGZyYW1lIGluIENocm9taXVtLiBnZXRDdXJy
ZW50RnJhbWUoKQotICAgIC8vIHBsYWNlcyBhIGxvY2sgb24gdGhlIGZyYW1lIGluIENocm9taXVt
LiBDYWxscyB0byB0aGlzIG1ldGhvZCBzaG91bGQKLSAgICAvLyBhbHdheXMgYmUgZm9sbG93ZWQg
d2l0aCBhIGNhbGwgdG8gcHV0Q3VycmVudEZyYW1lKCkuCisgICAgLy8gVGhpcyBmdW5jdGlvbiBw
bGFjZXMgYSBsb2NrIG9uIHRoZSBjdXJyZW50IGZyYW1lIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0
byBpdC4KKyAgICAvLyBDYWxscyB0byB0aGlzIG1ldGhvZCBzaG91bGQgYWx3YXlzIGJlIGZvbGxv
d2VkIHdpdGggYSBjYWxsIHRvIHB1dEN1cnJlbnRGcmFtZSgpLgogICAgIC8vIFRoZSBvd25lcnNo
aXAgb2YgdGhlIG9iamVjdCBpcyBub3QgdHJhbnNmZXJyZWQgdG8gdGhlIGNhbGxlciBhbmQKICAg
ICAvLyB0aGUgY2FsbGVyIHNob3VsZCBub3QgZnJlZSB0aGUgcmV0dXJuZWQgb2JqZWN0LgotICAg
IHZpcnR1YWwgVmlkZW9GcmFtZUNocm9taXVtKiBnZXRDdXJyZW50RnJhbWUoKSA9IDA7CisgICAg
dmlydHVhbCBXZWJLaXQ6OldlYlZpZGVvRnJhbWUqIGdldEN1cnJlbnRGcmFtZSgpID0gMDsKICAg
ICAvLyBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIHRoZSBsb2NrIG9uIHRoZSB2aWRlbyBmcmFtZSBp
biBjaHJvbWl1bS4gSXQgc2hvdWxkCiAgICAgLy8gYWx3YXlzIGJlIGNhbGxlZCBhZnRlciBnZXRD
dXJyZW50RnJhbWUoKS4gRnJhbWVzIHBhc3NlZCBpbnRvIHRoaXMgbWV0aG9kCiAgICAgLy8gc2hv
dWxkIG5vIGxvbmdlciBiZSByZWZlcmVuY2VkIGFmdGVyIHRoZSBjYWxsIGlzIG1hZGUuCi0gICAg
dmlydHVhbCB2b2lkIHB1dEN1cnJlbnRGcmFtZShWaWRlb0ZyYW1lQ2hyb21pdW0qKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHB1dEN1cnJlbnRGcmFtZShXZWJLaXQ6OldlYlZpZGVvRnJhbWUqKSA9
IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvRHJhd1F1YWQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0RyYXdR
dWFkLmNwcAppbmRleCBiYTU3MzQ5MDk4NzVjNWRjY2NmODlhYjIwMzRjNDBlNDU5ZGY3Mjk4Li45
Y2NhNzE0MTJhY2Q3ZjViYzY3OGM4NTRkY2IyZDVkNWUwMmE4YzJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvRHJhd1F1YWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VmlkZW9EcmF3UXVhZC5jcHAKQEAgLTI5LDEyICsyOSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVBhc3NPd25QdHI8Q0NWaWRlb0RyYXdRdWFkPiBDQ1ZpZGVvRHJhd1F1YWQ6OmNyZWF0
ZShjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRlLCBjb25zdCBJbnRSZWN0
JiBxdWFkUmVjdCwgQ0NWaWRlb0xheWVySW1wbDo6VGV4dHVyZSogdGV4dHVyZXMsIFZpZGVvRnJh
bWVDaHJvbWl1bSogZnJhbWUsIEdDM0RlbnVtIGZvcm1hdCkKK1Bhc3NPd25QdHI8Q0NWaWRlb0Ry
YXdRdWFkPiBDQ1ZpZGVvRHJhd1F1YWQ6OmNyZWF0ZShjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSog
c2hhcmVkUXVhZFN0YXRlLCBjb25zdCBJbnRSZWN0JiBxdWFkUmVjdCwgQ0NWaWRlb0xheWVySW1w
bDo6VGV4dHVyZSogdGV4dHVyZXMsIFdlYktpdDo6V2ViVmlkZW9GcmFtZSogZnJhbWUsIEdDM0Rl
bnVtIGZvcm1hdCkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENDVmlkZW9EcmF3UXVhZChz
aGFyZWRRdWFkU3RhdGUsIHF1YWRSZWN0LCB0ZXh0dXJlcywgZnJhbWUsIGZvcm1hdCkpOwogfQog
Ci1DQ1ZpZGVvRHJhd1F1YWQ6OkNDVmlkZW9EcmF3UXVhZChjb25zdCBDQ1NoYXJlZFF1YWRTdGF0
ZSogc2hhcmVkUXVhZFN0YXRlLCBjb25zdCBJbnRSZWN0JiBxdWFkUmVjdCwgQ0NWaWRlb0xheWVy
SW1wbDo6VGV4dHVyZSogdGV4dHVyZXMsIFZpZGVvRnJhbWVDaHJvbWl1bSogZnJhbWUsIEdDM0Rl
bnVtIGZvcm1hdCkKK0NDVmlkZW9EcmF3UXVhZDo6Q0NWaWRlb0RyYXdRdWFkKGNvbnN0IENDU2hh
cmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3RhdGUsIGNvbnN0IEludFJlY3QmIHF1YWRSZWN0LCBD
Q1ZpZGVvTGF5ZXJJbXBsOjpUZXh0dXJlKiB0ZXh0dXJlcywgV2ViS2l0OjpXZWJWaWRlb0ZyYW1l
KiBmcmFtZSwgR0MzRGVudW0gZm9ybWF0KQogICAgIDogQ0NEcmF3UXVhZChzaGFyZWRRdWFkU3Rh
dGUsIENDRHJhd1F1YWQ6OlZpZGVvQ29udGVudCwgcXVhZFJlY3QpCiAgICAgLCBtX3RleHR1cmVz
KHRleHR1cmVzKQogICAgICwgbV9mcmFtZShmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9EcmF3UXVhZC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0RyYXdRdWFk
LmgKaW5kZXggYWVmNzg0NzJhNDBhYzZiZWY1NDgyM2ZiYTQzMDQwNjMzNjE2ZDQ1MC4uOWViMzU3
ZmM4NmI1YTQ0OWE5MmNjZWVkMTY1M2M5ZGQ4MmMyNWQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0RyYXdRdWFkLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0Ry
YXdRdWFkLmgKQEAgLTMxLDI1ICszMSwyOSBAQAogI2luY2x1ZGUgImNjL0NDVmlkZW9MYXllcklt
cGwuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCituYW1lc3BhY2UgV2ViS2l0IHsK
K2NsYXNzIFdlYlZpZGVvRnJhbWU7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
Q0NWaWRlb0RyYXdRdWFkIDogcHVibGljIENDRHJhd1F1YWQgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKENDVmlkZW9EcmF3UXVhZCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8
Q0NWaWRlb0RyYXdRdWFkPiBjcmVhdGUoY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqLCBjb25zdCBJ
bnRSZWN0JiwgQ0NWaWRlb0xheWVySW1wbDo6VGV4dHVyZSogdGV4dHVyZXMsIFZpZGVvRnJhbWVD
aHJvbWl1bSosIEdDM0RlbnVtIGZvcm1hdCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8Q0NWaWRl
b0RyYXdRdWFkPiBjcmVhdGUoY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqLCBjb25zdCBJbnRSZWN0
JiwgQ0NWaWRlb0xheWVySW1wbDo6VGV4dHVyZSogdGV4dHVyZXMsIFdlYktpdDo6V2ViVmlkZW9G
cmFtZSosIEdDM0RlbnVtIGZvcm1hdCk7CiAKICAgICBDQ1ZpZGVvTGF5ZXJJbXBsOjpUZXh0dXJl
KiB0ZXh0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dHVyZXM7IH0KLSAgICBWaWRlb0ZyYW1l
Q2hyb21pdW0qIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfQorICAgIFdlYktpdDo6
V2ViVmlkZW9GcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lOyB9CiAgICAgR0Mz
RGVudW0gZm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXQ7IH0KICAgICBjb25zdCBmbG9h
dCogbWF0cml4KCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXg7IH0KIAogICAgIHZvaWQgc2V0TWF0
cml4KGNvbnN0IGZsb2F0KiBtYXRyaXgpIHsgbV9tYXRyaXggPSBtYXRyaXg7IH0KIAogcHJpdmF0
ZToKLSAgICBDQ1ZpZGVvRHJhd1F1YWQoY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqLCBjb25zdCBJ
bnRSZWN0JiwgQ0NWaWRlb0xheWVySW1wbDo6VGV4dHVyZSogdGV4dHVyZXMsIFZpZGVvRnJhbWVD
aHJvbWl1bSosIEdDM0RlbnVtIGZvcm1hdCk7CisgICAgQ0NWaWRlb0RyYXdRdWFkKGNvbnN0IEND
U2hhcmVkUXVhZFN0YXRlKiwgY29uc3QgSW50UmVjdCYsIENDVmlkZW9MYXllckltcGw6OlRleHR1
cmUqIHRleHR1cmVzLCBXZWJLaXQ6OldlYlZpZGVvRnJhbWUqLCBHQzNEZW51bSBmb3JtYXQpOwog
CiAgICAgQ0NWaWRlb0xheWVySW1wbDo6VGV4dHVyZSogbV90ZXh0dXJlczsKLSAgICBWaWRlb0Zy
YW1lQ2hyb21pdW0qIG1fZnJhbWU7CisgICAgV2ViS2l0OjpXZWJWaWRlb0ZyYW1lKiBtX2ZyYW1l
OwogICAgIEdDM0RlbnVtIG1fZm9ybWF0OwogICAgIGNvbnN0IGZsb2F0KiBtX21hdHJpeDsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1ZpZGVvTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCmluZGV4IDBlNmRjYTdlOGU1OGU2YzM3
NDE3ZmYzZWVlOGE0ZmE3NzIwZmM3NzMuLmM3MWUwZTBjZTQ5MGI0OTMzZjk2OTk1ZGE1NTZlNzMy
ZWQ4YjI0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCkBAIC0zOCw2ICsz
OCw3IEBACiAjaW5jbHVkZSAiY2MvQ0NQcm94eS5oIgogI2luY2x1ZGUgImNjL0NDUXVhZEN1bGxl
ci5oIgogI2luY2x1ZGUgImNjL0NDVmlkZW9EcmF3UXVhZC5oIgorI2luY2x1ZGUgPHB1YmxpYy9X
ZWJWaWRlb0ZyYW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTk5LDE5ICsxMDAsMTkgQEAgdm9pZCBDQ1ZpZGVvTGF5ZXJJbXBs
OjpzdG9wVXNpbmdQcm92aWRlcigpCiAgICAgbV9wcm92aWRlciA9IDA7CiB9CiAKLS8vIENvbnZl
cnQgVmlkZW9GcmFtZUNocm9taXVtOjpGb3JtYXQgdG8gR3JhcGhpY3NDb250ZXh0M0QncyBmb3Jt
YXQgZW51bSB2YWx1ZXMuCi1zdGF0aWMgR0MzRGVudW0gY29udmVydFZGQ0Zvcm1hdFRvR0MzREZv
cm1hdChjb25zdCBWaWRlb0ZyYW1lQ2hyb21pdW0qIGZyYW1lKQorLy8gQ29udmVydCBXZWJLaXQ6
OldlYlZpZGVvRnJhbWU6OkZvcm1hdCB0byBHcmFwaGljc0NvbnRleHQzRCdzIGZvcm1hdCBlbnVt
IHZhbHVlcy4KK3N0YXRpYyBHQzNEZW51bSBjb252ZXJ0VkZDRm9ybWF0VG9HQzNERm9ybWF0KGNv
bnN0IFdlYktpdDo6V2ViVmlkZW9GcmFtZSYgZnJhbWUpCiB7Ci0gICAgc3dpdGNoIChmcmFtZS0+
Zm9ybWF0KCkpIHsKLSAgICBjYXNlIFZpZGVvRnJhbWVDaHJvbWl1bTo6WVYxMjoKLSAgICBjYXNl
IFZpZGVvRnJhbWVDaHJvbWl1bTo6WVYxNjoKKyAgICBzd2l0Y2ggKGZyYW1lLmZvcm1hdCgpKSB7
CisgICAgY2FzZSBXZWJLaXQ6OldlYlZpZGVvRnJhbWU6OkZvcm1hdFlWMTI6CisgICAgY2FzZSBX
ZWJLaXQ6OldlYlZpZGVvRnJhbWU6OkZvcm1hdFlWMTY6CiAgICAgICAgIHJldHVybiBHcmFwaGlj
c0NvbnRleHQzRDo6TFVNSU5BTkNFOwotICAgIGNhc2UgVmlkZW9GcmFtZUNocm9taXVtOjpOYXRp
dmVUZXh0dXJlOgotICAgICAgICByZXR1cm4gZnJhbWUtPnRleHR1cmVUYXJnZXQoKTsKLSAgICBj
YXNlIFZpZGVvRnJhbWVDaHJvbWl1bTo6SW52YWxpZDoKLSAgICBjYXNlIFZpZGVvRnJhbWVDaHJv
bWl1bTo6UkdCMzI6Ci0gICAgY2FzZSBWaWRlb0ZyYW1lQ2hyb21pdW06OkVtcHR5OgotICAgIGNh
c2UgVmlkZW9GcmFtZUNocm9taXVtOjpJNDIwOgorICAgIGNhc2UgV2ViS2l0OjpXZWJWaWRlb0Zy
YW1lOjpGb3JtYXROYXRpdmVUZXh0dXJlOgorICAgICAgICByZXR1cm4gZnJhbWUudGV4dHVyZVRh
cmdldCgpOworICAgIGNhc2UgV2ViS2l0OjpXZWJWaWRlb0ZyYW1lOjpGb3JtYXRJbnZhbGlkOgor
ICAgIGNhc2UgV2ViS2l0OjpXZWJWaWRlb0ZyYW1lOjpGb3JtYXRSR0IzMjoKKyAgICBjYXNlIFdl
YktpdDo6V2ViVmlkZW9GcmFtZTo6Rm9ybWF0RW1wdHk6CisgICAgY2FzZSBXZWJLaXQ6OldlYlZp
ZGVvRnJhbWU6OkZvcm1hdEk0MjA6CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQog
ICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRTsKQEAgLTEzMyw3ICsx
MzQsNyBAQCB2b2lkIENDVmlkZW9MYXllckltcGw6OndpbGxEcmF3KExheWVyUmVuZGVyZXJDaHJv
bWl1bSogbGF5ZXJSZW5kZXJlcikKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybjsK
IAotICAgIG1fZm9ybWF0ID0gY29udmVydFZGQ0Zvcm1hdFRvR0MzREZvcm1hdChtX2ZyYW1lKTsK
KyAgICBtX2Zvcm1hdCA9IGNvbnZlcnRWRkNGb3JtYXRUb0dDM0RGb3JtYXQoKm1fZnJhbWUpOwog
CiAgICAgaWYgKG1fZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKSB7
CiAgICAgICAgIG1fcHJvdmlkZXItPnB1dEN1cnJlbnRGcmFtZShtX2ZyYW1lKTsKQEAgLTE0MSw3
ICsxNDIsNyBAQCB2b2lkIENDVmlkZW9MYXllckltcGw6OndpbGxEcmF3KExheWVyUmVuZGVyZXJD
aHJvbWl1bSogbGF5ZXJSZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlm
ICghcmVzZXJ2ZVRleHR1cmVzKG1fZnJhbWUsIG1fZm9ybWF0LCBsYXllclJlbmRlcmVyKSkgewor
ICAgIGlmICghcmVzZXJ2ZVRleHR1cmVzKCptX2ZyYW1lLCBtX2Zvcm1hdCwgbGF5ZXJSZW5kZXJl
cikpIHsKICAgICAgICAgbV9wcm92aWRlci0+cHV0Q3VycmVudEZyYW1lKG1fZnJhbWUpOwogICAg
ICAgICBtX2ZyYW1lID0gMDsKICAgICB9CkBAIC0xNzYsMzcgKzE3Nyw0OSBAQCB2b2lkIENDVmlk
ZW9MYXllckltcGw6OmRpZERyYXcoKQogICAgIG1fZnJhbWUgPSAwOwogfQogCi1JbnRTaXplIEND
VmlkZW9MYXllckltcGw6OmNvbXB1dGVWaXNpYmxlU2l6ZShjb25zdCBWaWRlb0ZyYW1lQ2hyb21p
dW0qIGZyYW1lLCB1bnNpZ25lZCBwbGFuZSkKK3N0YXRpYyBpbnQgdmlkZW9GcmFtZURpbWVuc2lv
bihpbnQgb3JpZ2luYWxEaW1lbnNpb24sIHVuc2lnbmVkIHBsYW5lLCBpbnQgZm9ybWF0KQogewot
ICAgIGludCB2aXNpYmxlV2lkdGggPSBmcmFtZS0+d2lkdGgocGxhbmUpOwotICAgIGludCB2aXNp
YmxlSGVpZ2h0ID0gZnJhbWUtPmhlaWdodChwbGFuZSk7CisgICAgaWYgKGZvcm1hdCA9PSBXZWJL
aXQ6OldlYlZpZGVvRnJhbWU6OkZvcm1hdFlWMTIgJiYgcGxhbmUgIT0gV2ViS2l0OjpXZWJWaWRl
b0ZyYW1lOjp5UGxhbmUpCisgICAgICAgIHJldHVybiBvcmlnaW5hbERpbWVuc2lvbiAvIDI7Cisg
ICAgcmV0dXJuIG9yaWdpbmFsRGltZW5zaW9uOworfQorCitzdGF0aWMgYm9vbCBoYXNQYWRkaW5n
Qnl0ZXMoY29uc3QgV2ViS2l0OjpXZWJWaWRlb0ZyYW1lJiBmcmFtZSwgdW5zaWduZWQgcGxhbmUp
Cit7CisgICAgcmV0dXJuIGZyYW1lLnN0cmlkZShwbGFuZSkgPiB2aWRlb0ZyYW1lRGltZW5zaW9u
KGZyYW1lLndpZHRoKCksIHBsYW5lLCBmcmFtZS5mb3JtYXQoKSk7Cit9CisKK0ludFNpemUgQ0NW
aWRlb0xheWVySW1wbDo6Y29tcHV0ZVZpc2libGVTaXplKGNvbnN0IFdlYktpdDo6V2ViVmlkZW9G
cmFtZSYgZnJhbWUsIHVuc2lnbmVkIHBsYW5lKQoreworICAgIGludCB2aXNpYmxlV2lkdGggPSB2
aWRlb0ZyYW1lRGltZW5zaW9uKGZyYW1lLndpZHRoKCksIHBsYW5lLCBmcmFtZS5mb3JtYXQoKSk7
CisgICAgaW50IG9yaWdpbmFsV2lkdGggPSB2aXNpYmxlV2lkdGg7CisgICAgaW50IHZpc2libGVI
ZWlnaHQgPSB2aWRlb0ZyYW1lRGltZW5zaW9uKGZyYW1lLmhlaWdodCgpLCBwbGFuZSwgZnJhbWUu
Zm9ybWF0KCkpOworCiAgICAgLy8gV2hlbiB0aGVyZSBhcmUgZGVhZCBwaXhlbHMgYXQgdGhlIGVk
Z2Ugb2YgdGhlIHRleHR1cmUsIGRlY3JlYXNlCiAgICAgLy8gdGhlIGZyYW1lIHdpZHRoIGJ5IDEg
dG8gcHJldmVudCB0aGUgcmlnaHRtb3N0IHBpeGVscyBmcm9tCiAgICAgLy8gaW50ZXJwb2xhdGlu
ZyB3aXRoIHRoZSBkZWFkIHBpeGVscy4KLSAgICBpZiAoZnJhbWUtPmhhc1BhZGRpbmdCeXRlcyhw
bGFuZSkpCisgICAgaWYgKGhhc1BhZGRpbmdCeXRlcyhmcmFtZSwgcGxhbmUpKQogICAgICAgICAt
LXZpc2libGVXaWR0aDsKIAogICAgIC8vIEluIFlWMTIsIGV2ZXJ5IDJ4MiBzcXVhcmUgb2YgWSB2
YWx1ZXMgY29ycmVzcG9uZHMgdG8gb25lIFUgYW5kCiAgICAgLy8gb25lIFYgdmFsdWUuIElmIHdl
IGRlY3JlYXNlIHRoZSB3aWR0aCBvZiB0aGUgVVYgcGxhbmUsIHdlIG11c3QgZGVjcmVhc2UgdGhl
CiAgICAgLy8gd2lkdGggb2YgdGhlIFkgdGV4dHVyZSBieSAyIGZvciBwcm9wZXIgYWxpZ25tZW50
LiBUaGlzIG11c3QgaGFwcGVuCiAgICAgLy8gYWx3YXlzLCBldmVuIGlmIFkncyB0ZXh0dXJlIGRv
ZXMgbm90IGhhdmUgcGFkZGluZyBieXRlcy4KLSAgICBpZiAocGxhbmUgPT0gVmlkZW9GcmFtZUNo
cm9taXVtOjp5UGxhbmUgJiYgZnJhbWUtPmZvcm1hdCgpID09IFZpZGVvRnJhbWVDaHJvbWl1bTo6
WVYxMikgewotICAgICAgICBpZiAoZnJhbWUtPmhhc1BhZGRpbmdCeXRlcyhWaWRlb0ZyYW1lQ2hy
b21pdW06OnVQbGFuZSkpIHsKLSAgICAgICAgICAgIGludCBvcmlnaW5hbFdpZHRoID0gZnJhbWUt
PndpZHRoKHBsYW5lKTsKKyAgICBpZiAocGxhbmUgPT0gV2ViS2l0OjpXZWJWaWRlb0ZyYW1lOjp5
UGxhbmUgJiYgZnJhbWUuZm9ybWF0KCkgPT0gV2ViS2l0OjpXZWJWaWRlb0ZyYW1lOjpGb3JtYXRZ
VjEyKSB7CisgICAgICAgIGlmIChoYXNQYWRkaW5nQnl0ZXMoZnJhbWUsIFdlYktpdDo6V2ViVmlk
ZW9GcmFtZTo6dVBsYW5lKSkKICAgICAgICAgICAgIHZpc2libGVXaWR0aCA9IG9yaWdpbmFsV2lk
dGggLSAyOwotICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJuIEludFNpemUodmlzaWJsZVdp
ZHRoLCB2aXNpYmxlSGVpZ2h0KTsKIH0KIAotYm9vbCBDQ1ZpZGVvTGF5ZXJJbXBsOjpyZXNlcnZl
VGV4dHVyZXMoY29uc3QgVmlkZW9GcmFtZUNocm9taXVtKiBmcmFtZSwgR0MzRGVudW0gZm9ybWF0
LCBMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIpCitib29sIENDVmlkZW9MYXll
ckltcGw6OnJlc2VydmVUZXh0dXJlcyhjb25zdCBXZWJLaXQ6OldlYlZpZGVvRnJhbWUmIGZyYW1l
LCBHQzNEZW51bSBmb3JtYXQsIExheWVyUmVuZGVyZXJDaHJvbWl1bSogbGF5ZXJSZW5kZXJlcikK
IHsKLSAgICBpZiAoZnJhbWUtPnBsYW5lcygpID4gTWF4UGxhbmVzKQorICAgIGlmIChmcmFtZS5w
bGFuZXMoKSA+IE1heFBsYW5lcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGludCBtYXhU
ZXh0dXJlU2l6ZSA9IGxheWVyUmVuZGVyZXItPmNhcGFiaWxpdGllcygpLm1heFRleHR1cmVTaXpl
OwotICAgIGZvciAodW5zaWduZWQgcGxhbmUgPSAwOyBwbGFuZSA8IGZyYW1lLT5wbGFuZXMoKTsg
KytwbGFuZSkgewotICAgICAgICBJbnRTaXplIHJlcXVpcmVkVGV4dHVyZVNpemUgPSBmcmFtZS0+
cmVxdWlyZWRUZXh0dXJlU2l6ZShwbGFuZSk7CisgICAgZm9yICh1bnNpZ25lZCBwbGFuZSA9IDA7
IHBsYW5lIDwgZnJhbWUucGxhbmVzKCk7ICsrcGxhbmUpIHsKKyAgICAgICAgSW50U2l6ZSByZXF1
aXJlZFRleHR1cmVTaXplKGZyYW1lLnN0cmlkZShwbGFuZSksIHZpZGVvRnJhbWVEaW1lbnNpb24o
ZnJhbWUuaGVpZ2h0KCksIHBsYW5lLCBmcmFtZS5mb3JtYXQoKSkpOwogICAgICAgICAvLyBJZiB0
aGUgcmVuZGVyZXIgY2Fubm90IGhhbmRsZSB0aGlzIGxhcmdlIG9mIGEgdGV4dHVyZSwgcmV0dXJu
IGZhbHNlLgogICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgdGVzdCB3aGVuIHRpbGVkIGxh
eWVycyBhcmUgaW1wbGVtZW50ZWQuCiAgICAgICAgIGlmIChyZXF1aXJlZFRleHR1cmVTaXplLmlz
WmVybygpIHx8IHJlcXVpcmVkVGV4dHVyZVNpemUud2lkdGgoKSA+IG1heFRleHR1cmVTaXplIHx8
IHJlcXVpcmVkVGV4dHVyZVNpemUuaGVpZ2h0KCkgPiBtYXhUZXh0dXJlU2l6ZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9M
YXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVmlkZW9MYXllckltcGwuaAppbmRleCAzOWUyZjIyNTExZDUxNTVlMjc5NGFjOWRhZDgxNDcy
MTFlOGVkYzA4Li5lMTE5MjMwNmY0NjczZTJiMGRiMjBmZWRiYWFkMWY0NDYzOTZmMzk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Zp
ZGVvTGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5oCkBAIC0yOCwxMSArMjgsMTQgQEAKIAogI2luY2x1
ZGUgIk1hbmFnZWRUZXh0dXJlLmgiCiAjaW5jbHVkZSAiU2hhZGVyQ2hyb21pdW0uaCIKLSNpbmNs
dWRlICJWaWRlb0ZyYW1lQ2hyb21pdW0uaCIKICNpbmNsdWRlICJWaWRlb0ZyYW1lUHJvdmlkZXIu
aCIKICNpbmNsdWRlICJWaWRlb0xheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJjYy9DQ0xheWVy
SW1wbC5oIgogCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlZpZGVvRnJhbWU7Cit9CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ0NMYXllclRyZWVIb3N0SW1wbDsKQEAgLTgz
LDEwICs4NiwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENDVmlkZW9MYXll
ckltcGwoaW50LCBWaWRlb0ZyYW1lUHJvdmlkZXIqKTsKIAotICAgIHN0YXRpYyBJbnRTaXplIGNv
bXB1dGVWaXNpYmxlU2l6ZShjb25zdCBWaWRlb0ZyYW1lQ2hyb21pdW0qLCB1bnNpZ25lZCBwbGFu
ZSk7CisgICAgc3RhdGljIEludFNpemUgY29tcHV0ZVZpc2libGVTaXplKGNvbnN0IFdlYktpdDo6
V2ViVmlkZW9GcmFtZSYsIHVuc2lnbmVkIHBsYW5lKTsKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIq
IGxheWVyVHlwZUFzU3RyaW5nKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIlZpZGVvTGF5ZXIi
OyB9CiAKLSAgICBib29sIHJlc2VydmVUZXh0dXJlcyhjb25zdCBWaWRlb0ZyYW1lQ2hyb21pdW0q
LCBHQzNEZW51bSBmb3JtYXQsIExheWVyUmVuZGVyZXJDaHJvbWl1bSopOworICAgIGJvb2wgcmVz
ZXJ2ZVRleHR1cmVzKGNvbnN0IFdlYktpdDo6V2ViVmlkZW9GcmFtZSYsIEdDM0RlbnVtIGZvcm1h
dCwgTGF5ZXJSZW5kZXJlckNocm9taXVtKik7CiAKICAgICBNdXRleCBtX3Byb3ZpZGVyTXV0ZXg7
IC8vIEd1YXJkcyBtX3Byb3ZpZGVyIGJlbG93LgogICAgIFZpZGVvRnJhbWVQcm92aWRlciogbV9w
cm92aWRlcjsKQEAgLTk2LDcgKzk5LDcgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX3N0cmVhbVRl
eHR1cmVNYXRyaXhbMTZdOwogICAgIENDTGF5ZXJUcmVlSG9zdEltcGwqIG1fbGF5ZXJUcmVlSG9z
dEltcGw7CiAKLSAgICBWaWRlb0ZyYW1lQ2hyb21pdW0qIG1fZnJhbWU7CisgICAgV2ViS2l0OjpX
ZWJWaWRlb0ZyYW1lKiBtX2ZyYW1lOwogICAgIEdDM0RlbnVtIG1fZm9ybWF0OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGJjZWZmYWEzOWY2MzMzMDE2M2ZjMDcwNjY4Zjlj
MjQ0YjdkYzQyYWUuLjIzZGUzMmJhZmJhMTg3NjgxZGFiZTE2MjEyYWU2MDFmYTk1Y2MyMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTQ4Nyw4ICs0ODcsNiBAQAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViVGV4dENoZWNraW5nQ29tcGxldGlvbkltcGwuaCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJUZXh0Q2hlY2tpbmdDb21wbGV0aW9uSW1wbC5jcHAnLAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViVGV4dENoZWNraW5nUmVzdWx0LmNwcCcsCi0gICAgICAgICAgICAgICAg
J3NyYy9WaWRlb0ZyYW1lQ2hyb21pdW1JbXBsLmNwcCcsCi0gICAgICAgICAgICAgICAgJ3NyYy9W
aWRlb0ZyYW1lQ2hyb21pdW1JbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQW5pbWF0aW9uQ29u
dHJvbGxlckltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkFuaW1hdGlvbkNvbnRy
b2xsZXJJbXBsLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9G
cmFtZS5oCmluZGV4IDRmYWIxZjIxOTAwYzM4MDA1ZmY0OGE0NDgyNDAwOTdhZTFhMmVlZWQuLjk0
OGE3YTQ0NDBiZmQyNmJiZDQ1NTM5OWMyMWY3MTU4MWRjNjYyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgKQEAgLTEsNjQgKzEsMjYgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgogICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYlZpZGVvRnJhbWVfaAotI2RlZmluZSBX
ZWJWaWRlb0ZyYW1lX2gKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLS8vIEEgcHJveHkgdmlkZW8g
ZnJhbWUgaW50ZXJmYWNlIHRvIGNvbW11bmljYXRlIGZyYW1lIGRhdGEgYmV0d2VlbiBjaHJvbWl1
bQotLy8gYW5kIFdlYktpdC4KLS8vIEtlZXAgaW4gc3luYyB3aXRoIFZpZGVvRnJhbWVDaHJvbWl1
bSBhbmQgY2hyb21pdW0ncyBtZWRpYTo6VmlkZW9GcmFtZTo6Rm9ybWF0LgotY2xhc3MgV2ViVmlk
ZW9GcmFtZSB7Ci1wdWJsaWM6Ci0gICAgZW51bSBGb3JtYXQgewotICAgICAgICBGb3JtYXRJbnZh
bGlkID0gMCwKLSAgICAgICAgRm9ybWF0UkdCMzIgPSA0LAotICAgICAgICBGb3JtYXRZVjEyID0g
NiwKLSAgICAgICAgRm9ybWF0WVYxNiA9IDcsCi0gICAgICAgIEZvcm1hdEVtcHR5ID0gOSwKLSAg
ICAgICAgRm9ybWF0STQyMCA9IDExLAotICAgICAgICBGb3JtYXROYXRpdmVUZXh0dXJlID0gMTIs
Ci0gICAgfTsKLQotICAgIHZpcnR1YWwgfldlYlZpZGVvRnJhbWUoKSB7IH0KLSAgICB2aXJ0dWFs
IEZvcm1hdCBmb3JtYXQoKSBjb25zdCB7IHJldHVybiBGb3JtYXRJbnZhbGlkOyB9Ci0gICAgdmly
dHVhbCB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHVu
c2lnbmVkIGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHVuc2lnbmVk
IHBsYW5lcygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGludCBzdHJpZGUodW5z
aWduZWQgcGxhbmUpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IHZvaWQq
IGRhdGEodW5zaWduZWQgcGxhbmUpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHVu
c2lnbmVkIHRleHR1cmVJZCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHVuc2ln
bmVkIHRleHR1cmVUYXJnZXQoKSBjb25zdCB7IHJldHVybiAwOyB9Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotI2VuZGlmCisjaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKaW5kZXggMjkzZjQ4OTRlNzMyNTcwMTg5OWIw
ODc2NDk3Y2VkYWQ0NTViZDljMi4uNDc3MmFhNDZlNzQ4OWY5MWVmYWI3NTQ5OGRjOTNiNGIyNTMy
NGFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHAKQEAgLTY5LDcgKzY5LDYgQEAKICNpbmNsdWRlICJVc2VyQ29udGVudFR5cGVz
LmgiCiAjaW5jbHVkZSAiVXNlclNjcmlwdFR5cGVzLmgiCiAjaW5jbHVkZSAiVXNlclN0eWxlU2hl
ZXRUeXBlcy5oIgotI2luY2x1ZGUgIlZpZGVvRnJhbWVDaHJvbWl1bS5oIgogI2luY2x1ZGUgIldl
YkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKQEAgLTk4LDcg
Kzk3LDYgQEAKICNpbmNsdWRlICJXZWJUZXh0Q2FzZVNlbnNpdGl2aXR5LmgiCiAjaW5jbHVkZSAi
V2ViVGV4dENoZWNraW5nUmVzdWx0LmgiCiAjaW5jbHVkZSAiV2ViVGV4dENoZWNraW5nVHlwZS5o
IgotI2luY2x1ZGUgIldlYlZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAjaW5j
bHVkZSAicGxhdGZvcm0vV2ViQ2xpcGJvYXJkLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViRmls
ZVN5c3RlbS5oIgpAQCAtMzk0LDExICszOTIsNiBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdlYk1lZGlhUGxheWVyOjpJbnZhbGlkUGxheWVyU3RhdGUsIE1lZGlhUGxheWVyOjpJbgog
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJNZWRpYVBsYXllcjo6S2V5U3lzdGVtTm90
U3VwcG9ydGVkLCBNZWRpYVBsYXllcjo6S2V5U3lzdGVtTm90U3VwcG9ydGVkKTsKICNlbmRpZgog
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlZpZGVvRnJhbWU6OkZvcm1hdEludmFs
aWQsIFZpZGVvRnJhbWVDaHJvbWl1bTo6SW52YWxpZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNKFdlYlZpZGVvRnJhbWU6OkZvcm1hdFJHQjMyLCBWaWRlb0ZyYW1lQ2hyb21pdW06OlJH
QjMyKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVmlkZW9GcmFtZTo6Rm9ybWF0
WVYxMiwgVmlkZW9GcmFtZUNocm9taXVtOjpZVjEyKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViVmlkZW9GcmFtZTo6Rm9ybWF0WVYxNiwgVmlkZW9GcmFtZUNocm9taXVtOjpZVjE2
KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVmlkZW9GcmFtZTo6Rm9ybWF0RW1w
dHksIFZpZGVvRnJhbWVDaHJvbWl1bTo6RW1wdHkpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvVmlkZW9GcmFtZUNocm9taXVtSW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9WaWRlb0ZyYW1lQ2hyb21pdW1JbXBsLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmNjZTkzOWY3MzM3Zjc5YjM3MDhlOGE5YWE3ZmM5
YTgwY2UzNjgwMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9WaWRlb0ZyYW1lQ2hyb21pdW1JbXBsLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIlZpZGVvRnJhbWVDaHJvbWl1bUltcGwuaCIKLQotI2luY2x1ZGUgIlZpZGVvRnJhbWVDaHJv
bWl1bS5oIgotI2luY2x1ZGUgIldlYlZpZGVvRnJhbWUuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJWaWRlb0ZyYW1lKiBWaWRlb0ZyYW1l
Q2hyb21pdW1JbXBsOjp0b1dlYlZpZGVvRnJhbWUoVmlkZW9GcmFtZUNocm9taXVtKiB2aWRlb0Zy
YW1lKQotewotICAgIFZpZGVvRnJhbWVDaHJvbWl1bUltcGwqIHdyYXBwZWRGcmFtZSA9IHN0YXRp
Y19jYXN0PFZpZGVvRnJhbWVDaHJvbWl1bUltcGwqPih2aWRlb0ZyYW1lKTsKLSAgICBpZiAod3Jh
cHBlZEZyYW1lKQotICAgICAgICByZXR1cm4gd3JhcHBlZEZyYW1lLT5tX3dlYlZpZGVvRnJhbWU7
Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLVZpZGVvRnJhbWVDaHJvbWl1bUltcGw6OlZpZGVvRnJhbWVD
aHJvbWl1bUltcGwoV2ViVmlkZW9GcmFtZSogd2ViVmlkZW9GcmFtZSkKLSAgICA6IG1fd2ViVmlk
ZW9GcmFtZSh3ZWJWaWRlb0ZyYW1lKQotewotfQotCi1WaWRlb0ZyYW1lQ2hyb21pdW06OkZvcm1h
dCBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsOjpmb3JtYXQoKSBjb25zdAotewotICAgIGlmIChtX3dl
YlZpZGVvRnJhbWUpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxWaWRlb0ZyYW1lQ2hyb21p
dW06OkZvcm1hdD4obV93ZWJWaWRlb0ZyYW1lLT5mb3JtYXQoKSk7Ci0gICAgcmV0dXJuIEludmFs
aWQ7Ci19Ci0KLXVuc2lnbmVkIFZpZGVvRnJhbWVDaHJvbWl1bUltcGw6OndpZHRoKCkgY29uc3QK
LXsKLSAgICBpZiAobV93ZWJWaWRlb0ZyYW1lKQotICAgICAgICByZXR1cm4gbV93ZWJWaWRlb0Zy
YW1lLT53aWR0aCgpOwotICAgIHJldHVybiAwOwotfQotCi11bnNpZ25lZCBWaWRlb0ZyYW1lQ2hy
b21pdW1JbXBsOjp3aWR0aCh1bnNpZ25lZCBwbGFuZSkgY29uc3QKLXsKLSAgICB1bnNpZ25lZCBw
bGFuZVdpZHRoID0gd2lkdGgoKTsKLSAgICBpZiAoZm9ybWF0KCkgPT0gWVYxMiAmJiBwbGFuZSAh
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oeVBsYW5lKSkKLSAgICAgICAgcGxhbmVXaWR0aCAvPSAy
OwotICAgIHJldHVybiBwbGFuZVdpZHRoOwotfQotCi11bnNpZ25lZCBWaWRlb0ZyYW1lQ2hyb21p
dW1JbXBsOjpoZWlnaHQoKSBjb25zdAotewotICAgIGlmIChtX3dlYlZpZGVvRnJhbWUpCi0gICAg
ICAgIHJldHVybiBtX3dlYlZpZGVvRnJhbWUtPmhlaWdodCgpOwotICAgIHJldHVybiAwOwotfQot
Ci11bnNpZ25lZCBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsOjpoZWlnaHQodW5zaWduZWQgcGxhbmUp
IGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgcGxhbmVIZWlnaHQgPSBoZWlnaHQoKTsKLSAgICBpZiAo
Zm9ybWF0KCkgPT0gWVYxMiAmJiBwbGFuZSAhPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oeVBsYW5l
KSkKLSAgICAgICAgcGxhbmVIZWlnaHQgLz0gMjsKLSAgICByZXR1cm4gcGxhbmVIZWlnaHQ7Ci19
Ci0KLXVuc2lnbmVkIFZpZGVvRnJhbWVDaHJvbWl1bUltcGw6OnBsYW5lcygpIGNvbnN0Ci17Ci0g
ICAgaWYgKG1fd2ViVmlkZW9GcmFtZSkKLSAgICAgICAgcmV0dXJuIG1fd2ViVmlkZW9GcmFtZS0+
cGxhbmVzKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBs
OjpzdHJpZGUodW5zaWduZWQgcGxhbmUpIGNvbnN0Ci17Ci0gICAgaWYgKG1fd2ViVmlkZW9GcmFt
ZSkKLSAgICAgICAgcmV0dXJuIG1fd2ViVmlkZW9GcmFtZS0+c3RyaWRlKHBsYW5lKTsKLSAgICBy
ZXR1cm4gMDsKLX0KLQotY29uc3Qgdm9pZCogVmlkZW9GcmFtZUNocm9taXVtSW1wbDo6ZGF0YSh1
bnNpZ25lZCBwbGFuZSkgY29uc3QKLXsKLSAgICBpZiAobV93ZWJWaWRlb0ZyYW1lKQotICAgICAg
ICByZXR1cm4gbV93ZWJWaWRlb0ZyYW1lLT5kYXRhKHBsYW5lKTsKLSAgICByZXR1cm4gMDsKLX0K
LQotY29uc3QgSW50U2l6ZSBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsOjpyZXF1aXJlZFRleHR1cmVT
aXplKHVuc2lnbmVkIHBsYW5lKSBjb25zdAotewotICAgIHJldHVybiBJbnRTaXplKHN0cmlkZShw
bGFuZSksIGhlaWdodChwbGFuZSkpOwotfQotCi1ib29sIFZpZGVvRnJhbWVDaHJvbWl1bUltcGw6
Omhhc1BhZGRpbmdCeXRlcyh1bnNpZ25lZCBwbGFuZSkgY29uc3QKLXsKLSAgICBpZiAobV93ZWJW
aWRlb0ZyYW1lKQotICAgICAgICByZXR1cm4gc3RyaWRlKHBsYW5lKSAtIHdpZHRoKHBsYW5lKSA+
IDA7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi11bnNpZ25lZCBWaWRlb0ZyYW1lQ2hyb21pdW1J
bXBsOjp0ZXh0dXJlSWQoKSBjb25zdAotewotICAgIGlmIChtX3dlYlZpZGVvRnJhbWUpCi0gICAg
ICAgIHJldHVybiBtX3dlYlZpZGVvRnJhbWUtPnRleHR1cmVJZCgpOwotICAgIHJldHVybiAwOwot
fQotCi11bnNpZ25lZCBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsOjp0ZXh0dXJlVGFyZ2V0KCkgY29u
c3QKLXsKLSAgICBpZiAobV93ZWJWaWRlb0ZyYW1lKQotICAgICAgICByZXR1cm4gbV93ZWJWaWRl
b0ZyYW1lLT50ZXh0dXJlVGFyZ2V0KCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvVmlkZW9G
cmFtZUNocm9taXVtSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvVmlkZW9GcmFt
ZUNocm9taXVtSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzkyMDg2NmZj
NGRhMTE1Yjg3Y2VjYTkxMmUyNmEwOWEzNjQ0OTk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ZpZGVvRnJh
bWVDaHJvbWl1bUltcGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJp
YnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFZp
ZGVvRnJhbWVDaHJvbWl1bUltcGxfaAotI2RlZmluZSBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsX2gK
LQotI2luY2x1ZGUgIlZpZGVvRnJhbWVDaHJvbWl1bS5oIgotI2luY2x1ZGUgIldlYlZpZGVvRnJh
bWUuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLS8vIEEgd3JhcHBlciBjbGFzcyBmb3IgV2Vi
S2l0OjpXZWJWaWRlb0ZyYW1lLiBPYmplY3RzIGNhbiBiZSBjcmVhdGVkIGluIFdlYktpdAotLy8g
YW5kIHVzZWQgaW4gV2ViQ29yZSBiZWNhdXNlIG9mIHRoZSBWaWRlb0ZyYW1lQ2hyb21pdW0gaW50
ZXJmYWNlLgotY2xhc3MgVmlkZW9GcmFtZUNocm9taXVtSW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpW
aWRlb0ZyYW1lQ2hyb21pdW0gewotcHVibGljOgotICAgIC8vIENvbnZlcnRzIGEgV2ViQ29yZTo6
VmlkZW9GcmFtZUNocm9taXVtIHRvIGEgV2ViS2l0OjpXZWJWaWRlb0ZyYW1lLgotICAgIHN0YXRp
YyBXZWJWaWRlb0ZyYW1lKiB0b1dlYlZpZGVvRnJhbWUoV2ViQ29yZTo6VmlkZW9GcmFtZUNocm9t
aXVtKik7Ci0KLSAgICAvLyBDcmVhdGVzIGEgVmlkZW9GcmFtZUNocm9taXVtSW1wbCBvYmplY3Qg
dG8gd3JhcCB0aGUgZ2l2ZW4gV2ViVmlkZW9GcmFtZS4KLSAgICAvLyBUaGUgVmlkZW9GcmFtZUNo
cm9taXVtSW1wbCBkb2VzIG5vdCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgV2ViVmlkZW9GcmFtZQot
ICAgIC8vIGFuZCBzaG91bGQgbm90IGZyZWUgdGhlIGZyYW1lJ3MgbWVtb3J5LgotICAgIFZpZGVv
RnJhbWVDaHJvbWl1bUltcGwoV2ViVmlkZW9GcmFtZSopOwotICAgIHZpcnR1YWwgRm9ybWF0IGZv
cm1hdCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgoKSBjb25zdDsKLSAgICB2
aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIHBsYW5lKSBjb25zdDsKLSAgICB2aXJ0dWFs
IHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdW5zaWduZWQgaGVpZ2h0KHVu
c2lnbmVkIHBsYW5lKSBjb25zdDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHBsYW5lcygpIGNvbnN0
OwotICAgIHZpcnR1YWwgaW50IHN0cmlkZSh1bnNpZ25lZCBwbGFuZSkgY29uc3Q7Ci0gICAgdmly
dHVhbCBjb25zdCB2b2lkKiBkYXRhKHVuc2lnbmVkIHBsYW5lKSBjb25zdDsKLSAgICB2aXJ0dWFs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUgcmVxdWlyZWRUZXh0dXJlU2l6ZSh1bnNpZ25lZCBwbGFu
ZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGhhc1BhZGRpbmdCeXRlcyh1bnNpZ25lZCBwbGFu
ZSkgY29uc3Q7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCB0ZXh0dXJlSWQoKSBjb25zdDsKLSAgICB2
aXJ0dWFsIHVuc2lnbmVkIHRleHR1cmVUYXJnZXQoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBX
ZWJWaWRlb0ZyYW1lKiBtX3dlYlZpZGVvRnJhbWU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJN
ZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAppbmRleCAzMjFhZjZhYjg3ODk3YWNiYWU3MGYxNTg1
YTkyZmFkZTgxZGM5NDYwLi5lZTM5YmIyMGU0Yjk2YTBiMWE1MTkzM2M5NTRmZjhiMjRmZjY2MzQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNs
aWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbC5jcHAKQEAgLTE5LDggKzE5LDYgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUNv
bnRleHRTa2lhLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlRpbWVSYW5n
ZXMuaCIKLSNpbmNsdWRlICJWaWRlb0ZyYW1lQ2hyb21pdW0uaCIKLSNpbmNsdWRlICJWaWRlb0Zy
YW1lQ2hyb21pdW1JbXBsLmgiCiAjaW5jbHVkZSAiVmlkZW9MYXllckNocm9taXVtLmgiCiAjaW5j
bHVkZSAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYkZyYW1lQ2xpZW50
LmgiCkBAIC02MTMsMjkgKzYxMSwyNCBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6
c2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KFZpZGVvRnJhbWVQcm92aWRlcjo6QwogICAgICAg
ICBtX3dlYk1lZGlhUGxheWVyLT5zZXRTdHJlYW1UZXh0dXJlQ2xpZW50KGNsaWVudCA/IHRoaXMg
OiAwKTsKIH0KIAotVmlkZW9GcmFtZUNocm9taXVtKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6
OmdldEN1cnJlbnRGcmFtZSgpCitXZWJWaWRlb0ZyYW1lKiBXZWJNZWRpYVBsYXllckNsaWVudElt
cGw6OmdldEN1cnJlbnRGcmFtZSgpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fY29tcG9z
aXRpbmdNdXRleCk7CiAgICAgQVNTRVJUKCFtX2N1cnJlbnRWaWRlb0ZyYW1lKTsKLSAgICBpZiAo
bV93ZWJNZWRpYVBsYXllcikgewotICAgICAgICBXZWJWaWRlb0ZyYW1lKiB3ZWJraXRWaWRlb0Zy
YW1lID0gbV93ZWJNZWRpYVBsYXllci0+Z2V0Q3VycmVudEZyYW1lKCk7Ci0gICAgICAgIGlmICh3
ZWJraXRWaWRlb0ZyYW1lKQotICAgICAgICAgICAgbV9jdXJyZW50VmlkZW9GcmFtZSA9IGFkb3B0
UHRyKG5ldyBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsKHdlYmtpdFZpZGVvRnJhbWUpKTsKLSAgICB9
Ci0gICAgcmV0dXJuIG1fY3VycmVudFZpZGVvRnJhbWUuZ2V0KCk7CisgICAgaWYgKG1fd2ViTWVk
aWFQbGF5ZXIpCisgICAgICAgIG1fY3VycmVudFZpZGVvRnJhbWUgPSBtX3dlYk1lZGlhUGxheWVy
LT5nZXRDdXJyZW50RnJhbWUoKTsKKyAgICByZXR1cm4gbV9jdXJyZW50VmlkZW9GcmFtZTsKIH0K
IAotdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnB1dEN1cnJlbnRGcmFtZShWaWRlb0Zy
YW1lQ2hyb21pdW0qIHZpZGVvRnJhbWUpCit2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6
cHV0Q3VycmVudEZyYW1lKFdlYlZpZGVvRnJhbWUqIHZpZGVvRnJhbWUpCiB7CiAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fY29tcG9zaXRpbmdNdXRleCk7CiAgICAgQVNTRVJUKHZpZGVvRnJhbWUg
PT0gbV9jdXJyZW50VmlkZW9GcmFtZSk7CiAgICAgaWYgKCF2aWRlb0ZyYW1lKQogICAgICAgICBy
ZXR1cm47Ci0gICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIpIHsKLSAgICAgICAgbV93ZWJNZWRpYVBs
YXllci0+cHV0Q3VycmVudEZyYW1lKAotICAgICAgICAgICAgVmlkZW9GcmFtZUNocm9taXVtSW1w
bDo6dG9XZWJWaWRlb0ZyYW1lKHZpZGVvRnJhbWUpKTsKLSAgICB9Ci0gICAgbV9jdXJyZW50Vmlk
ZW9GcmFtZS5jbGVhcigpOworICAgIGlmIChtX3dlYk1lZGlhUGxheWVyKQorICAgICAgICBtX3dl
Yk1lZGlhUGxheWVyLT5wdXRDdXJyZW50RnJhbWUodmlkZW9GcmFtZSk7CisgICAgbV9jdXJyZW50
VmlkZW9GcmFtZSA9IDA7CiB9CiAjZW5kaWYKIApAQCAtNzE3LDYgKzcxMCw3IEBAIHZvaWQgV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpkaWRVcGRhdGVNYXRyaXgoY29uc3QgZmxvYXQqIG1hdHJp
eCkKIAogV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpXZWJNZWRpYVBsYXllckNsaWVudEltcGwo
KQogICAgIDogbV9tZWRpYVBsYXllcigwKQorICAgICwgbV9jdXJyZW50VmlkZW9GcmFtZSgwKQog
ICAgICwgbV9kZWxheWluZ0xvYWQoZmFsc2UpCiAgICAgLCBtX3ByZWxvYWQoTWVkaWFQbGF5ZXI6
Ok1ldGFEYXRhKQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKaW5k
ZXggODg1NDNhNGRhYmZkOGI3MWQ1MmQ3N2Y1ODI0NWQ4NWY4ZmY1ZjZiNS4uNGE5NDc3NTRlMzVl
MzUyMmM0YzdlZTE3NTE3OWU5MTcwYzdjMDNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKQEAgLTM1LDcgKzM1LDYg
QEAKIAogI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJNZWRpYVBs
YXllclByaXZhdGUuaCIKLSNpbmNsdWRlICJWaWRlb0ZyYW1lQ2hyb21pdW0uaCIKICNpbmNsdWRl
ICJWaWRlb0ZyYW1lUHJvdmlkZXIuaCIKICNpbmNsdWRlICJWaWRlb0xheWVyQ2hyb21pdW0uaCIK
ICNpbmNsdWRlICJXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmgiCkBAIC0xNDEsOCArMTQw
LDggQEAgcHVibGljOgogCiAgICAgLy8gVmlkZW9GcmFtZVByb3ZpZGVyIG1ldGhvZHM6CiAgICAg
dmlydHVhbCB2b2lkIHNldFZpZGVvRnJhbWVQcm92aWRlckNsaWVudChWaWRlb0ZyYW1lUHJvdmlk
ZXI6OkNsaWVudCopOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6VmlkZW9GcmFtZUNocm9taXVtKiBn
ZXRDdXJyZW50RnJhbWUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0Q3VycmVudEZyYW1lKFdlYkNv
cmU6OlZpZGVvRnJhbWVDaHJvbWl1bSopOworICAgIHZpcnR1YWwgV2ViVmlkZW9GcmFtZSogZ2V0
Q3VycmVudEZyYW1lKCk7CisgICAgdmlydHVhbCB2b2lkIHB1dEN1cnJlbnRGcmFtZShXZWJWaWRl
b0ZyYW1lKik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC0xODEsNyAr
MTgwLDcgQEAgcHJpdmF0ZToKICAgICBNdXRleCBtX2NvbXBvc2l0aW5nTXV0ZXg7IC8vIEd1YXJk
cyBtX2N1cnJlbnRWaWRlb0ZyYW1lIGFuZCBtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudC4KICAg
ICBXZWJDb3JlOjpNZWRpYVBsYXllciogbV9tZWRpYVBsYXllcjsKICAgICBPd25QdHI8V2ViTWVk
aWFQbGF5ZXI+IG1fd2ViTWVkaWFQbGF5ZXI7Ci0gICAgT3duUHRyPFdlYkNvcmU6OlZpZGVvRnJh
bWVDaHJvbWl1bT4gbV9jdXJyZW50VmlkZW9GcmFtZTsKKyAgICBXZWJWaWRlb0ZyYW1lKiBtX2N1
cnJlbnRWaWRlb0ZyYW1lOwogICAgIFN0cmluZyBtX3VybDsKICAgICBib29sIG1fZGVsYXlpbmdM
b2FkOwogICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJlbG9hZDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137134</attachid>
            <date>2012-04-13 13:18:54 -0700</date>
            <delta_ts>2012-04-13 13:25:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83851-20120413131853.patch</filename>
            <type>text/plain</type>
            <size>52437</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA2NmJiZDE4YzY2NDgz
NzI4YmQ1OWQ1MTgwMzI0ZGM0ZTZmZDM3NWU2Li40YzU4OWI5NmFlZDFmNTc4NzY4ODU4MzRmZjc0
ZmIxZjQxZGE5ZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wNC0xMiAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gTW92ZSBXZWJWaWRlb0ZyYW1lIGludG8gUGxhdGZvcm0gYW5kIHJlbW92ZSBXZWJDb3JlOjpW
aWRlb0ZyYW1lQ2hyb21pdW0gd3JhcHBlciBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgzODUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KKworICAgICAgICBNb3ZlIFdlYlZpZGVvRnJhbWUgQVBJIGludG8gUGxhdGZvcm0uCisK
KyAgICAgICAgKiBQbGF0Zm9ybS5neXBpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJW
aWRlb0ZyYW1lLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9WaWRlb0ZyYW1lQ2hyb21pdW0uaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJWaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GcmFtZTo6fldl
YlZpZGVvRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0ZyYW1lOjpmb3JtYXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0ZyYW1lOjp3aWR0aCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnJhbWU6OmhlaWdodCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnJhbWU6
OnBsYW5lcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnJhbWU6OnN0cmlkZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZGVvRnJhbWU6OmRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWRlb0ZyYW1lOjp0ZXh0dXJlSWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0ZyYW1lOjp0
ZXh0dXJlVGFyZ2V0KToKKyAgICAgICAgKiBjaHJvbWl1bS9zcmMvV2ViVmlkZW9GcmFtZS5jcHA6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9W
aWRlb0ZyYW1lQ2hyb21pdW0uY3BwLgorICAgICAgICAoV2ViS2l0KToKKwogMjAxMi0wNC0xMSAg
RGF2aWQgRG9yd2luICA8ZGRvcndpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGtleVN5
c3RlbSBhdHRyaWJ1dGUgdG8gY2FuUGxheVR5cGUoKSBmb3IgRW5jcnlwdGVkIE1lZGlhIEV4dGVu
c2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBhMTIyMWJiMWYwZmZjYTk4YmZjZjJlOTY5NjAyYTMwZjFiZjUy
ODI1Li43MDhhZWE3MjNiYmY5MjI4MTI1Y2RlZGZjNzEwMWQxOGU2ODBjZDZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDIgQEAKKzIwMTItMDQtMTIgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIE1vdmUgV2ViVmlkZW9GcmFtZSBpbnRv
IFBsYXRmb3JtIGFuZCByZW1vdmUgV2ViQ29yZTo6VmlkZW9GcmFtZUNocm9taXVtIHdyYXBwZXIg
QVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04Mzg1
MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgUmVtb3ZlIFZp
ZGVvRnJhbWVDaHJvbWl1bSB3cmFwcGVyIGFuZCBjb252ZXJ0cyBXZWJDb3JlIGNvZGUgdG8gdXNp
bmcgdGhlIFBsYXRmb3JtIFdlYlZpZGVvRnJhbWUgQVBJIGRpcmVjdGx5LgorICAgICAgICBTb21l
IHV0aWxpdHkgY29kZSB0aGF0IHByZXZpb3VzbHkgZXhpc3RlZCBvbiBWaWRlb0ZyYW1lQ2hyb21p
dW0gYW5kIG9ubHkgaGFkIG9uZSBjYWxsZXIsIHN1Y2ggYXMgZG9pbmcKKyAgICAgICAgd2lkdGgv
aGVpZ2h0IGFkanVzdGVtZW50cyBmb3IgWVYxMiBmcmFtZXMsIGlzIG1vdmVkIGludG8gdGhlIGNh
bGxpbmcgY29kZSAoQ0NWaWRlb0xheWVySW1wbCkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlz
dGluZyBtZWRpYS8gYW5kIGNvbXBvc2l0aW5nLyBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiBX
ZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJS
ZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJv
bWl1bTo6ZHJhd1lVVik6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06
OmRyYXdSR0JBKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6Y29w
eUZyYW1lVG9UZXh0dXJlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJSZW5kZXJlckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVmlkZW9GcmFtZVByb3ZpZGVyLmg6CisgICAgICAgIChWaWRlb0ZyYW1lUHJvdmlkZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9EcmF3UXVh
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1ZpZGVvRHJhd1F1YWQ6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDQ1ZpZGVvRHJhd1F1YWQ6OkNDVmlkZW9EcmF3UXVhZCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0RyYXdRdWFkLmg6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoQ0NWaWRlb0RyYXdRdWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OkNDVmlkZW9EcmF3UXVhZDo6ZnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb252ZXJ0VkZDRm9ybWF0VG9HQzNERm9ybWF0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNDVmlkZW9MYXllckltcGw6OndpbGxEcmF3KToKKyAgICAgICAgKFdlYkNvcmU6
OnZpZGVvRnJhbWVEaW1lbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6aGFzUGFkZGluZ0J5dGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVmlkZW9MYXllckltcGw6OmNvbXB1dGVWaXNpYmxlU2l6
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1ZpZGVvTGF5ZXJJbXBsOjpyZXNlcnZlVGV4dHVyZXMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllcklt
cGwuaDoKKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTItMDQtMTIgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjExMzkwMCk6IFRleHQg
dGVzdHMgc3RhcnRlZCBmYWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDQ4NmEw
NDk1NzZjYWI4NTViODc3MGU2MTQyMTQ1ZTIxMTZiZThmN2MuLmJkZTU5NjY1ZGE5OGY4YWEyZTFi
ODRjNjJjNzQyNjUzZmQxMTAzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjUgQEAKKzIwMTItMDQtMTIgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIE1vdmUgV2ViVmlkZW9GcmFtZSBpbnRvIFBsYXRmb3Jt
IGFuZCByZW1vdmUgV2ViQ29yZTo6VmlkZW9GcmFtZUNocm9taXVtIHdyYXBwZXIgQVBJCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04Mzg1MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgTW92ZXMgdGhlIFdlYlZpZGVv
RnJhbWUgaW50ZXJmYWNlIGludG8gUGxhdGZvcm0gYW5kIHJlbW92ZXMgdGhlIG5vdyB1bm5lY2Vz
c2FyeSBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsIGFkYXB0ZXIKKyAgICAgICAgaW1wbGVtZW50YXRp
b24uCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWRlb0Zy
YW1lLmg6CisgICAgICAgICogc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOgorICAgICAgICAq
IHNyYy9WaWRlb0ZyYW1lQ2hyb21pdW1JbXBsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMv
VmlkZW9GcmFtZUNocm9taXVtSW1wbC5oOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9XZWJNZWRp
YVBsYXllckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNs
aWVudEltcGw6OmdldEN1cnJlbnRGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbDo6cHV0Q3VycmVudEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsOjpzdXBwb3J0c1R5cGUpOgorICAgICAgICAqIHNyYy9XZWJNZWRp
YVBsYXllckNsaWVudEltcGwuaDoKKyAgICAgICAgKFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCk6
CisKIDIwMTItMDQtMTIgIERhdmlkIERvcndpbiAgPGRkb3J3aW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIEFkZCBFbmNyeXB0ZWQgTWVkaWEgRXh0ZW5zaW9ucyBldmVudHMgYW5kIGVycm9ycyB0
byBIVE1MTWVkaWFFbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0u
Z3lwaSBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCmluZGV4IDhjNTRjYWNiMDdkYzI1
MGFiZTcxMWNhN2E3N2MwMzRlMDc2ZmQ3YzkuLmEzZWNiYjg5ODAxNTYzNWFiOWQyMzMzODg0ZjAy
ZTE4ZjFiYThjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCisr
KyBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCkBAIC05NCw2ICs5NCw3IEBACiAgICAg
ICAgICAgICAnY2hyb21pdW0vc3JjL1dlYkNTdHJpbmcuY3BwJywKICAgICAgICAgICAgICdjaHJv
bWl1bS9zcmMvV2ViRmxvYXRRdWFkLmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vc3JjL1dl
YlN0cmluZy5jcHAnLAorICAgICAgICAgICAgJ2Nocm9taXVtL3NyYy9XZWJWaWRlb0ZyYW1lLmNw
cCcsCiAgICAgICAgIF0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlkZW9GcmFtZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMGFhN2Q1NDI4NGRmOGRmZmFjY2Zm
NTQ1NzZkNGZmYzIyYzM2OWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJW
aWRlb0ZyYW1lX2gKKyNkZWZpbmUgV2ViVmlkZW9GcmFtZV9oCisKK25hbWVzcGFjZSBXZWJLaXQg
eworCisvLyBBIHByb3h5IHZpZGVvIGZyYW1lIGludGVyZmFjZSB0byBjb21tdW5pY2F0ZSBmcmFt
ZSBkYXRhIGJldHdlZW4gY2hyb21pdW0KKy8vIGFuZCBXZWJLaXQuCisvLyBLZWVwIGluIHN5bmMg
d2l0aCBjaHJvbWl1bSdzIG1lZGlhOjpWaWRlb0ZyYW1lOjpGb3JtYXQuCitjbGFzcyBXZWJWaWRl
b0ZyYW1lIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4UGxhbmVzOwor
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1SR0JQbGFuZXM7CisgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIHJnYlBsYW5lOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1ZVVZQbGFu
ZXM7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHlQbGFuZTsKKyAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgdVBsYW5lOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2UGxhbmU7CisKKyAg
ICBlbnVtIEZvcm1hdCB7CisgICAgICAgIEZvcm1hdEludmFsaWQgPSAwLAorICAgICAgICBGb3Jt
YXRSR0IzMiA9IDQsCisgICAgICAgIEZvcm1hdFlWMTIgPSA2LAorICAgICAgICBGb3JtYXRZVjE2
ID0gNywKKyAgICAgICAgRm9ybWF0RW1wdHkgPSA5LAorICAgICAgICBGb3JtYXRJNDIwID0gMTEs
CisgICAgICAgIEZvcm1hdE5hdGl2ZVRleHR1cmUgPSAxMiwKKyAgICB9OworCisgICAgdmlydHVh
bCB+V2ViVmlkZW9GcmFtZSgpIHsgfQorICAgIHZpcnR1YWwgRm9ybWF0IGZvcm1hdCgpIGNvbnN0
IHsgcmV0dXJuIEZvcm1hdEludmFsaWQ7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkg
Y29uc3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgdW5zaWduZWQgcGxhbmVzKCkgY29uc3QgeyByZXR1
cm4gMDsgfQorICAgIHZpcnR1YWwgaW50IHN0cmlkZSh1bnNpZ25lZCBwbGFuZSkgY29uc3QgeyBy
ZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgY29uc3Qgdm9pZCogZGF0YSh1bnNpZ25lZCBwbGFuZSkg
Y29uc3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgdW5zaWduZWQgdGV4dHVyZUlkKCkgY29u
c3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgdW5zaWduZWQgdGV4dHVyZVRhcmdldCgpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9zcmMvV2ViVmlkZW9GcmFtZS5j
cHAgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vc3JjL1dlYlZpZGVvRnJhbWUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhjODY2NTkzMzZiY2Y1ZWExOWEzZjEyYjIyOGFlNGYxZTcwMzZmZmYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vc3JjL1dlYlZpZGVvRnJhbWUuY3Bw
CkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDxwdWJsaWMv
V2ViVmlkZW9GcmFtZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY29uc3QgdW5zaWduZWQg
V2ViVmlkZW9GcmFtZTo6bWF4UGxhbmVzID0gMzsKK2NvbnN0IHVuc2lnbmVkIFdlYlZpZGVvRnJh
bWU6Om51bVJHQlBsYW5lcyA9IDE7Citjb25zdCB1bnNpZ25lZCBXZWJWaWRlb0ZyYW1lOjpyZ2JQ
bGFuZSA9IDA7Citjb25zdCB1bnNpZ25lZCBXZWJWaWRlb0ZyYW1lOjpudW1ZVVZQbGFuZXMgPSAz
OworY29uc3QgdW5zaWduZWQgV2ViVmlkZW9GcmFtZTo6eVBsYW5lID0gMDsKK2NvbnN0IHVuc2ln
bmVkIFdlYlZpZGVvRnJhbWU6OnVQbGFuZSA9IDE7Citjb25zdCB1bnNpZ25lZCBXZWJWaWRlb0Zy
YW1lOjp2UGxhbmUgPSAyOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDJmNTQ0ZjMzM2RiMjBjYmM0YjVlNjBiZDA1YzkwYmMzMmIwMWEyMDEuLjQzNjM5MmMz
YmRhOTU3OWU1OTk4MjBmZDI4YjAwYzUwZDA2ZmYzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTM1
ODAsOCArMzU4MCw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9WRE1YUGFyc2VyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVkRNWFBhcnNlci5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9WaWRlb0ZyYW1lQ2hyb21pdW0uY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0ZyYW1lQ2hyb21pdW0uaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9GcmFtZVByb3ZpZGVyLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJv
bWl1bS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4IGY0YTUw
MGE4NzM5YTEwY2E3NzUwZTJmOGM4ODhkODBlZjRjNmEzMzcuLjEyYjg2NjYwZjI3MmFhZGI5ZTMx
OWY0YTExMDMyYjVhYjE3OTRjMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVt
LmNwcApAQCAtNjcsNiArNjcsNyBAQAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2luY2x1
ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEuaCIK
KyNpbmNsdWRlIDxwdWJsaWMvV2ViVmlkZW9GcmFtZS5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTc3MCw5ICs3NzEsOSBA
QCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd1lVVihjb25zdCBDQ1ZpZGVvRHJhd1F1
YWQqIHF1YWQpCiAgICAgY29uc3QgQ0NWaWRlb0xheWVySW1wbDo6WVVWUHJvZ3JhbSogcHJvZ3Jh
bSA9IHZpZGVvTGF5ZXJZVVZQcm9ncmFtKCk7CiAgICAgQVNTRVJUKHByb2dyYW0gJiYgcHJvZ3Jh
bS0+aW5pdGlhbGl6ZWQoKSk7CiAKLSAgICBjb25zdCBDQ1ZpZGVvTGF5ZXJJbXBsOjpUZXh0dXJl
JiB5VGV4dHVyZSA9IHF1YWQtPnRleHR1cmVzKClbVmlkZW9GcmFtZUNocm9taXVtOjp5UGxhbmVd
OwotICAgIGNvbnN0IENDVmlkZW9MYXllckltcGw6OlRleHR1cmUmIHVUZXh0dXJlID0gcXVhZC0+
dGV4dHVyZXMoKVtWaWRlb0ZyYW1lQ2hyb21pdW06OnVQbGFuZV07Ci0gICAgY29uc3QgQ0NWaWRl
b0xheWVySW1wbDo6VGV4dHVyZSYgdlRleHR1cmUgPSBxdWFkLT50ZXh0dXJlcygpW1ZpZGVvRnJh
bWVDaHJvbWl1bTo6dlBsYW5lXTsKKyAgICBjb25zdCBDQ1ZpZGVvTGF5ZXJJbXBsOjpUZXh0dXJl
JiB5VGV4dHVyZSA9IHF1YWQtPnRleHR1cmVzKClbV2ViS2l0OjpXZWJWaWRlb0ZyYW1lOjp5UGxh
bmVdOworICAgIGNvbnN0IENDVmlkZW9MYXllckltcGw6OlRleHR1cmUmIHVUZXh0dXJlID0gcXVh
ZC0+dGV4dHVyZXMoKVtXZWJLaXQ6OldlYlZpZGVvRnJhbWU6OnVQbGFuZV07CisgICAgY29uc3Qg
Q0NWaWRlb0xheWVySW1wbDo6VGV4dHVyZSYgdlRleHR1cmUgPSBxdWFkLT50ZXh0dXJlcygpW1dl
YktpdDo6V2ViVmlkZW9GcmFtZTo6dlBsYW5lXTsKIAogICAgIEdMQyhjb250ZXh0KCksIGNvbnRl
eHQoKS0+YWN0aXZlVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRTEpKTsKICAgICBH
TEMoY29udGV4dCgpLCBjb250ZXh0KCktPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpU
RVhUVVJFXzJELCB5VGV4dHVyZS5tX3RleHR1cmUtPnRleHR1cmVJZCgpKSk7CkBAIC04MjgsNyAr
ODI5LDcgQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdTaW5nbGVUZXh0dXJlVmlk
ZW9RdWFkKGNvbnN0IENDVmlkZW9EcmF3UXVhZCogcXUKIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9t
aXVtOjpkcmF3UkdCQShjb25zdCBDQ1ZpZGVvRHJhd1F1YWQqIHF1YWQpCiB7CiAgICAgY29uc3Qg
Q0NWaWRlb0xheWVySW1wbDo6UkdCQVByb2dyYW0qIHByb2dyYW0gPSB2aWRlb0xheWVyUkdCQVBy
b2dyYW0oKTsKLSAgICBjb25zdCBDQ1ZpZGVvTGF5ZXJJbXBsOjpUZXh0dXJlJiB0ZXh0dXJlID0g
cXVhZC0+dGV4dHVyZXMoKVtWaWRlb0ZyYW1lQ2hyb21pdW06OnJnYlBsYW5lXTsKKyAgICBjb25z
dCBDQ1ZpZGVvTGF5ZXJJbXBsOjpUZXh0dXJlJiB0ZXh0dXJlID0gcXVhZC0+dGV4dHVyZXMoKVtX
ZWJLaXQ6OldlYlZpZGVvRnJhbWU6OnJnYlBsYW5lXTsKICAgICBmbG9hdCB3aWR0aFNjYWxlRmFj
dG9yID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRleHR1cmUubV92aXNpYmxlU2l6ZS53aWR0aCgpKSAv
IHRleHR1cmUubV90ZXh0dXJlLT5zaXplKCkud2lkdGgoKTsKICAgICBkcmF3U2luZ2xlVGV4dHVy
ZVZpZGVvUXVhZChxdWFkLCBwcm9ncmFtLCB3aWR0aFNjYWxlRmFjdG9yLCB0ZXh0dXJlLm1fdGV4
dHVyZS0+dGV4dHVyZUlkKCksIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJEKTsKIH0KQEAg
LTg1MywxMiArODU0LDExIEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3U3RyZWFt
VGV4dHVyZShjb25zdCBDQ1ZpZGVvRHJhd1F1YWQqIHF1YWQpCiAKIGJvb2wgTGF5ZXJSZW5kZXJl
ckNocm9taXVtOjpjb3B5RnJhbWVUb1RleHR1cmVzKGNvbnN0IENDVmlkZW9EcmF3UXVhZCogcXVh
ZCkKIHsKLSAgICBjb25zdCBWaWRlb0ZyYW1lQ2hyb21pdW0qIGZyYW1lID0gcXVhZC0+ZnJhbWUo
KTsKKyAgICBjb25zdCBXZWJLaXQ6OldlYlZpZGVvRnJhbWUqIGZyYW1lID0gcXVhZC0+ZnJhbWUo
KTsKIAotICAgIGZvciAodW5zaWduZWQgcGxhbmUgPSAwOyBwbGFuZSA8IGZyYW1lLT5wbGFuZXMo
KTsgKytwbGFuZSkgewotICAgICAgICBBU1NFUlQocXVhZC0+ZnJhbWUoKS0+cmVxdWlyZWRUZXh0
dXJlU2l6ZShwbGFuZSkgPT0gcXVhZC0+dGV4dHVyZXMoKVtwbGFuZV0ubV90ZXh0dXJlLT5zaXpl
KCkpOworICAgIGZvciAodW5zaWduZWQgcGxhbmUgPSAwOyBwbGFuZSA8IGZyYW1lLT5wbGFuZXMo
KTsgKytwbGFuZSkKICAgICAgICAgY29weVBsYW5lVG9UZXh0dXJlKHF1YWQsIGZyYW1lLT5kYXRh
KHBsYW5lKSwgcGxhbmUpOwotICAgIH0KKwogICAgIGZvciAodW5zaWduZWQgcGxhbmUgPSBmcmFt
ZS0+cGxhbmVzKCk7IHBsYW5lIDwgQ0NWaWRlb0xheWVySW1wbDo6TWF4UGxhbmVzOyArK3BsYW5l
KSB7CiAgICAgICAgIENDVmlkZW9MYXllckltcGw6OlRleHR1cmUqIHRleHR1cmUgPSAmcXVhZC0+
dGV4dHVyZXMoKVtwbGFuZV07CiAgICAgICAgIHRleHR1cmUtPm1fdGV4dHVyZS5jbGVhcigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAppbmRleCA3Y2I5ZWI1NmEyMzUzYmE4MGQ3
MjAwMTE4YjI5NmE5MmRiODBkZDhhLi40MGU5ZDU2M2YwMzU5MGZiOTgzMjU5MThmZmMzMzhiNWNi
NDMyZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaApAQCAtNDAsNyArNDAs
NiBAQAogI2luY2x1ZGUgIkxheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJUZXh0dXJlQ29waWVy
LmgiCiAjaW5jbHVkZSAiVHJhY2tpbmdUZXh0dXJlQWxsb2NhdG9yLmgiCi0jaW5jbHVkZSAiVmlk
ZW9MYXllckNocm9taXVtLmgiCiAjaW5jbHVkZSAiY2MvQ0NEcmF3UXVhZC5oIgogI2luY2x1ZGUg
ImNjL0NDSGVhZHNVcERpc3BsYXkuaCIKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Zp
ZGVvRnJhbWVDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9WaWRlb0ZyYW1lQ2hyb21pdW0uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjYTkyODQyMjQyMTM1NDExMWM2OWJjODM5M2NhNWI1NjUzYzk2MzEwLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvRnJhbWVDaHJvbWl1bS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiVmlkZW9G
cmFtZUNocm9taXVtLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY29uc3QgdW5zaWduZWQg
VmlkZW9GcmFtZUNocm9taXVtOjptYXhQbGFuZXMgPSAzOwotY29uc3QgdW5zaWduZWQgVmlkZW9G
cmFtZUNocm9taXVtOjpudW1SR0JQbGFuZXMgPSAxOwotY29uc3QgdW5zaWduZWQgVmlkZW9GcmFt
ZUNocm9taXVtOjpyZ2JQbGFuZSA9IDA7Ci1jb25zdCB1bnNpZ25lZCBWaWRlb0ZyYW1lQ2hyb21p
dW06Om51bVlVVlBsYW5lcyA9IDM7Ci1jb25zdCB1bnNpZ25lZCBWaWRlb0ZyYW1lQ2hyb21pdW06
OnlQbGFuZSA9IDA7Ci1jb25zdCB1bnNpZ25lZCBWaWRlb0ZyYW1lQ2hyb21pdW06OnVQbGFuZSA9
IDE7Ci1jb25zdCB1bnNpZ25lZCBWaWRlb0ZyYW1lQ2hyb21pdW06OnZQbGFuZSA9IDI7Ci0KLVZp
ZGVvRnJhbWVDaHJvbWl1bTo6flZpZGVvRnJhbWVDaHJvbWl1bSgpIHsgfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVmlkZW9GcmFtZUNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0ZyYW1lQ2hyb21pdW0uaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzdhZjA3Y2MzOTVlM2E1MTZlZmZlZjBkN2MxMTQ0ZmQ3MzMzZGI3
OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0ZyYW1lQ2hyb21pdW0uaAor
KysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFZpZGVvRnJhbWVDaHJvbWl1bV9o
Ci0jZGVmaW5lIFZpZGVvRnJhbWVDaHJvbWl1bV9oCi0KLSNpbmNsdWRlICJJbnRTaXplLmgiCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gQSBjbGFzcyB0aGF0IHJlcHJlc2VudHMgYSB2aWRl
byBmcmFtZSBpbiBjaHJvbWl1bS4KLWNsYXNzIFZpZGVvRnJhbWVDaHJvbWl1bSB7Ci1wdWJsaWM6
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFBsYW5lczsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbnVtUkdCUGxhbmVzOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCByZ2JQbGFu
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtWVVWUGxhbmVzOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCB5UGxhbmU7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVQbGFuZTsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdlBsYW5lOwotCi0gICAgLy8gVGhlc2UgZW51bXMg
bXVzdCBiZSBrZXB0IGluIHN5bmMgd2l0aCBXZWJLaXQ6OldlYlZpZGVvRnJhbWUuCi0gICAgZW51
bSBGb3JtYXQgewotICAgICAgICBJbnZhbGlkID0gMCwKLSAgICAgICAgUkdCMzIgPSA0LAotICAg
ICAgICBZVjEyID0gNiwKLSAgICAgICAgWVYxNiA9IDcsCi0gICAgICAgIEVtcHR5ID0gOSwKLSAg
ICAgICAgSTQyMCA9IDExLAotICAgICAgICBOYXRpdmVUZXh0dXJlID0gMTIsCi0gICAgfTsKLQot
ICAgIHZpcnR1YWwgflZpZGVvRnJhbWVDaHJvbWl1bSgpOwotICAgIHZpcnR1YWwgRm9ybWF0IGZv
cm1hdCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3QgPSAw
OwotICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgodW5zaWduZWQgcGxhbmUpIGNvbnN0ID0gMDsK
LSAgICB2aXJ0dWFsIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHVu
c2lnbmVkIGhlaWdodCh1bnNpZ25lZCBwbGFuZSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdW5z
aWduZWQgcGxhbmVzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgaW50IHN0cmlkZSh1bnNpZ25l
ZCBwbGFuZSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgY29uc3Qgdm9pZCogZGF0YSh1bnNpZ25l
ZCBwbGFuZSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgSW50U2l6ZSByZXF1aXJlZFRl
eHR1cmVTaXplKHVuc2lnbmVkIHBsYW5lKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29sIGhh
c1BhZGRpbmdCeXRlcyh1bnNpZ25lZCBwbGFuZSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdW5z
aWduZWQgdGV4dHVyZUlkKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdW5zaWduZWQgdGV4dHVy
ZVRhcmdldCgpIGNvbnN0ID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9WaWRlb0ZyYW1lUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1ZpZGVvRnJhbWVQcm92aWRlci5oCmluZGV4IDk3OTQ3OTRhN2I3ZGY1MzMzMzMz
YzBhMTRkZjI1MWE2NzQ4Yzk5MDMuLjBhYTQ0MmRhNmJjODg0YmY1NjIxMmIxYTE0MTAzZGNkOTli
NTU0YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1ZpZGVvRnJhbWVQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1ZpZGVvRnJhbWVQcm92aWRlci5oCkBAIC0zMSw3ICszMSw3IEBACiAj
aWZuZGVmIFZpZGVvRnJhbWVQcm92aWRlcl9oCiAjZGVmaW5lIFZpZGVvRnJhbWVQcm92aWRlcl9o
CiAKLSNpbmNsdWRlICJWaWRlb0ZyYW1lQ2hyb21pdW0uaCIKKyNpbmNsdWRlIDxwdWJsaWMvV2Vi
VmlkZW9GcmFtZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5LDE3ICs0OSwxNSBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50
KENsaWVudCopID0gMDsKIAotICAgIC8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIHBvaW50ZXIg
dG8gYSBWaWRlb0ZyYW1lQ2hyb21pdW0sIHdoaWNoIGlzCi0gICAgLy8gdGhlIFdlYkNvcmUgd3Jh
cHBlciBmb3IgYSB2aWRlbyBmcmFtZSBpbiBDaHJvbWl1bS4gZ2V0Q3VycmVudEZyYW1lKCkKLSAg
ICAvLyBwbGFjZXMgYSBsb2NrIG9uIHRoZSBmcmFtZSBpbiBDaHJvbWl1bS4gQ2FsbHMgdG8gdGhp
cyBtZXRob2Qgc2hvdWxkCi0gICAgLy8gYWx3YXlzIGJlIGZvbGxvd2VkIHdpdGggYSBjYWxsIHRv
IHB1dEN1cnJlbnRGcmFtZSgpLgorICAgIC8vIFRoaXMgZnVuY3Rpb24gcGxhY2VzIGEgbG9jayBv
biB0aGUgY3VycmVudCBmcmFtZSBhbmQgcmV0dXJucyBhIHBvaW50ZXIgdG8gaXQuCisgICAgLy8g
Q2FsbHMgdG8gdGhpcyBtZXRob2Qgc2hvdWxkIGFsd2F5cyBiZSBmb2xsb3dlZCB3aXRoIGEgY2Fs
bCB0byBwdXRDdXJyZW50RnJhbWUoKS4KICAgICAvLyBUaGUgb3duZXJzaGlwIG9mIHRoZSBvYmpl
Y3QgaXMgbm90IHRyYW5zZmVycmVkIHRvIHRoZSBjYWxsZXIgYW5kCiAgICAgLy8gdGhlIGNhbGxl
ciBzaG91bGQgbm90IGZyZWUgdGhlIHJldHVybmVkIG9iamVjdC4KLSAgICB2aXJ0dWFsIFZpZGVv
RnJhbWVDaHJvbWl1bSogZ2V0Q3VycmVudEZyYW1lKCkgPSAwOworICAgIHZpcnR1YWwgV2ViS2l0
OjpXZWJWaWRlb0ZyYW1lKiBnZXRDdXJyZW50RnJhbWUoKSA9IDA7CiAgICAgLy8gVGhpcyBmdW5j
dGlvbiByZWxlYXNlcyB0aGUgbG9jayBvbiB0aGUgdmlkZW8gZnJhbWUgaW4gY2hyb21pdW0uIEl0
IHNob3VsZAogICAgIC8vIGFsd2F5cyBiZSBjYWxsZWQgYWZ0ZXIgZ2V0Q3VycmVudEZyYW1lKCku
IEZyYW1lcyBwYXNzZWQgaW50byB0aGlzIG1ldGhvZAogICAgIC8vIHNob3VsZCBubyBsb25nZXIg
YmUgcmVmZXJlbmNlZCBhZnRlciB0aGUgY2FsbCBpcyBtYWRlLgotICAgIHZpcnR1YWwgdm9pZCBw
dXRDdXJyZW50RnJhbWUoVmlkZW9GcmFtZUNocm9taXVtKikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBwdXRDdXJyZW50RnJhbWUoV2ViS2l0OjpXZWJWaWRlb0ZyYW1lKikgPSAwOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0RyYXdRdWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9EcmF3UXVhZC5jcHAKaW5kZXgg
YmE1NzM0OTA5ODc1YzVkY2NjZjg5YWIyMDM0YzQwZTQ1OWRmNzI5OC4uOWNjYTcxNDEyYWNkN2Y1
YmM2NzhjODU0ZGNiMmQ1ZDVlMDJhOGMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0RyYXdRdWFkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvRHJhd1F1YWQu
Y3BwCkBAIC0yOSwxMiArMjksMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3du
UHRyPENDVmlkZW9EcmF3UXVhZD4gQ0NWaWRlb0RyYXdRdWFkOjpjcmVhdGUoY29uc3QgQ0NTaGFy
ZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSwgY29uc3QgSW50UmVjdCYgcXVhZFJlY3QsIEND
VmlkZW9MYXllckltcGw6OlRleHR1cmUqIHRleHR1cmVzLCBWaWRlb0ZyYW1lQ2hyb21pdW0qIGZy
YW1lLCBHQzNEZW51bSBmb3JtYXQpCitQYXNzT3duUHRyPENDVmlkZW9EcmF3UXVhZD4gQ0NWaWRl
b0RyYXdRdWFkOjpjcmVhdGUoY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0
ZSwgY29uc3QgSW50UmVjdCYgcXVhZFJlY3QsIENDVmlkZW9MYXllckltcGw6OlRleHR1cmUqIHRl
eHR1cmVzLCBXZWJLaXQ6OldlYlZpZGVvRnJhbWUqIGZyYW1lLCBHQzNEZW51bSBmb3JtYXQpCiB7
CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ1ZpZGVvRHJhd1F1YWQoc2hhcmVkUXVhZFN0YXRl
LCBxdWFkUmVjdCwgdGV4dHVyZXMsIGZyYW1lLCBmb3JtYXQpKTsKIH0KIAotQ0NWaWRlb0RyYXdR
dWFkOjpDQ1ZpZGVvRHJhd1F1YWQoY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRT
dGF0ZSwgY29uc3QgSW50UmVjdCYgcXVhZFJlY3QsIENDVmlkZW9MYXllckltcGw6OlRleHR1cmUq
IHRleHR1cmVzLCBWaWRlb0ZyYW1lQ2hyb21pdW0qIGZyYW1lLCBHQzNEZW51bSBmb3JtYXQpCitD
Q1ZpZGVvRHJhd1F1YWQ6OkNDVmlkZW9EcmF3UXVhZChjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSog
c2hhcmVkUXVhZFN0YXRlLCBjb25zdCBJbnRSZWN0JiBxdWFkUmVjdCwgQ0NWaWRlb0xheWVySW1w
bDo6VGV4dHVyZSogdGV4dHVyZXMsIFdlYktpdDo6V2ViVmlkZW9GcmFtZSogZnJhbWUsIEdDM0Rl
bnVtIGZvcm1hdCkKICAgICA6IENDRHJhd1F1YWQoc2hhcmVkUXVhZFN0YXRlLCBDQ0RyYXdRdWFk
OjpWaWRlb0NvbnRlbnQsIHF1YWRSZWN0KQogICAgICwgbV90ZXh0dXJlcyh0ZXh0dXJlcykKICAg
ICAsIG1fZnJhbWUoZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvRHJhd1F1YWQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9EcmF3UXVhZC5oCmluZGV4IGFlZjc4
NDcyYTQwYWM2YmVmNTQ4MjNmYmE0MzA0MDYzMzYxNmQ0NTAuLjllYjM1N2ZjODZiNWE0NDlhOTJj
Y2VlZDE2NTNjOWRkODJjMjVkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9EcmF3UXVhZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9EcmF3UXVhZC5oCkBAIC0z
MSwyNSArMzEsMjkgQEAKICNpbmNsdWRlICJjYy9DQ1ZpZGVvTGF5ZXJJbXBsLmgiCiAjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAorbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJWaWRl
b0ZyYW1lOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENDVmlkZW9EcmF3UXVh
ZCA6IHB1YmxpYyBDQ0RyYXdRdWFkIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDQ1ZpZGVv
RHJhd1F1YWQpOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPENDVmlkZW9EcmF3UXVh
ZD4gY3JlYXRlKGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiwgY29uc3QgSW50UmVjdCYsIENDVmlk
ZW9MYXllckltcGw6OlRleHR1cmUqIHRleHR1cmVzLCBWaWRlb0ZyYW1lQ2hyb21pdW0qLCBHQzNE
ZW51bSBmb3JtYXQpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPENDVmlkZW9EcmF3UXVhZD4gY3Jl
YXRlKGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiwgY29uc3QgSW50UmVjdCYsIENDVmlkZW9MYXll
ckltcGw6OlRleHR1cmUqIHRleHR1cmVzLCBXZWJLaXQ6OldlYlZpZGVvRnJhbWUqLCBHQzNEZW51
bSBmb3JtYXQpOwogCiAgICAgQ0NWaWRlb0xheWVySW1wbDo6VGV4dHVyZSogdGV4dHVyZXMoKSBj
b25zdCB7IHJldHVybiBtX3RleHR1cmVzOyB9Ci0gICAgVmlkZW9GcmFtZUNocm9taXVtKiBmcmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWU7IH0KKyAgICBXZWJLaXQ6OldlYlZpZGVvRnJhbWUq
IGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfQogICAgIEdDM0RlbnVtIGZvcm1hdCgp
IGNvbnN0IHsgcmV0dXJuIG1fZm9ybWF0OyB9CiAgICAgY29uc3QgZmxvYXQqIG1hdHJpeCgpIGNv
bnN0IHsgcmV0dXJuIG1fbWF0cml4OyB9CiAKICAgICB2b2lkIHNldE1hdHJpeChjb25zdCBmbG9h
dCogbWF0cml4KSB7IG1fbWF0cml4ID0gbWF0cml4OyB9CiAKIHByaXZhdGU6Ci0gICAgQ0NWaWRl
b0RyYXdRdWFkKGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiwgY29uc3QgSW50UmVjdCYsIENDVmlk
ZW9MYXllckltcGw6OlRleHR1cmUqIHRleHR1cmVzLCBWaWRlb0ZyYW1lQ2hyb21pdW0qLCBHQzNE
ZW51bSBmb3JtYXQpOworICAgIENDVmlkZW9EcmF3UXVhZChjb25zdCBDQ1NoYXJlZFF1YWRTdGF0
ZSosIGNvbnN0IEludFJlY3QmLCBDQ1ZpZGVvTGF5ZXJJbXBsOjpUZXh0dXJlKiB0ZXh0dXJlcywg
V2ViS2l0OjpXZWJWaWRlb0ZyYW1lKiwgR0MzRGVudW0gZm9ybWF0KTsKIAogICAgIENDVmlkZW9M
YXllckltcGw6OlRleHR1cmUqIG1fdGV4dHVyZXM7Ci0gICAgVmlkZW9GcmFtZUNocm9taXVtKiBt
X2ZyYW1lOworICAgIFdlYktpdDo6V2ViVmlkZW9GcmFtZSogbV9mcmFtZTsKICAgICBHQzNEZW51
bSBtX2Zvcm1hdDsKICAgICBjb25zdCBmbG9hdCogbV9tYXRyaXg7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVy
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1ZpZGVvTGF5ZXJJbXBsLmNwcAppbmRleCAwZTZkY2E3ZThlNThlNmMzNzQxN2ZmM2VlZThhNGZh
NzcyMGZjNzczLi5jNzFlMGUwY2U0OTBiNDkzM2Y5Njk5NWRhNTU2ZTczMmVkOGIyNDNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Zp
ZGVvTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1
ZGUgImNjL0NDUHJveHkuaCIKICNpbmNsdWRlICJjYy9DQ1F1YWRDdWxsZXIuaCIKICNpbmNsdWRl
ICJjYy9DQ1ZpZGVvRHJhd1F1YWQuaCIKKyNpbmNsdWRlIDxwdWJsaWMvV2ViVmlkZW9GcmFtZS5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC05OSwxOSArMTAwLDE5IEBAIHZvaWQgQ0NWaWRlb0xheWVySW1wbDo6c3RvcFVzaW5nUHJv
dmlkZXIoKQogICAgIG1fcHJvdmlkZXIgPSAwOwogfQogCi0vLyBDb252ZXJ0IFZpZGVvRnJhbWVD
aHJvbWl1bTo6Rm9ybWF0IHRvIEdyYXBoaWNzQ29udGV4dDNEJ3MgZm9ybWF0IGVudW0gdmFsdWVz
Lgotc3RhdGljIEdDM0RlbnVtIGNvbnZlcnRWRkNGb3JtYXRUb0dDM0RGb3JtYXQoY29uc3QgVmlk
ZW9GcmFtZUNocm9taXVtKiBmcmFtZSkKKy8vIENvbnZlcnQgV2ViS2l0OjpXZWJWaWRlb0ZyYW1l
OjpGb3JtYXQgdG8gR3JhcGhpY3NDb250ZXh0M0QncyBmb3JtYXQgZW51bSB2YWx1ZXMuCitzdGF0
aWMgR0MzRGVudW0gY29udmVydFZGQ0Zvcm1hdFRvR0MzREZvcm1hdChjb25zdCBXZWJLaXQ6Oldl
YlZpZGVvRnJhbWUmIGZyYW1lKQogewotICAgIHN3aXRjaCAoZnJhbWUtPmZvcm1hdCgpKSB7Ci0g
ICAgY2FzZSBWaWRlb0ZyYW1lQ2hyb21pdW06OllWMTI6Ci0gICAgY2FzZSBWaWRlb0ZyYW1lQ2hy
b21pdW06OllWMTY6CisgICAgc3dpdGNoIChmcmFtZS5mb3JtYXQoKSkgeworICAgIGNhc2UgV2Vi
S2l0OjpXZWJWaWRlb0ZyYW1lOjpGb3JtYXRZVjEyOgorICAgIGNhc2UgV2ViS2l0OjpXZWJWaWRl
b0ZyYW1lOjpGb3JtYXRZVjE2OgogICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkxV
TUlOQU5DRTsKLSAgICBjYXNlIFZpZGVvRnJhbWVDaHJvbWl1bTo6TmF0aXZlVGV4dHVyZToKLSAg
ICAgICAgcmV0dXJuIGZyYW1lLT50ZXh0dXJlVGFyZ2V0KCk7Ci0gICAgY2FzZSBWaWRlb0ZyYW1l
Q2hyb21pdW06OkludmFsaWQ6Ci0gICAgY2FzZSBWaWRlb0ZyYW1lQ2hyb21pdW06OlJHQjMyOgot
ICAgIGNhc2UgVmlkZW9GcmFtZUNocm9taXVtOjpFbXB0eToKLSAgICBjYXNlIFZpZGVvRnJhbWVD
aHJvbWl1bTo6STQyMDoKKyAgICBjYXNlIFdlYktpdDo6V2ViVmlkZW9GcmFtZTo6Rm9ybWF0TmF0
aXZlVGV4dHVyZToKKyAgICAgICAgcmV0dXJuIGZyYW1lLnRleHR1cmVUYXJnZXQoKTsKKyAgICBj
YXNlIFdlYktpdDo6V2ViVmlkZW9GcmFtZTo6Rm9ybWF0SW52YWxpZDoKKyAgICBjYXNlIFdlYktp
dDo6V2ViVmlkZW9GcmFtZTo6Rm9ybWF0UkdCMzI6CisgICAgY2FzZSBXZWJLaXQ6OldlYlZpZGVv
RnJhbWU6OkZvcm1hdEVtcHR5OgorICAgIGNhc2UgV2ViS2l0OjpXZWJWaWRlb0ZyYW1lOjpGb3Jt
YXRJNDIwOgogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIH0KICAgICByZXR1cm4gR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUU7CkBAIC0xMzMsNyArMTM0LDcgQEAgdm9pZCBD
Q1ZpZGVvTGF5ZXJJbXBsOjp3aWxsRHJhdyhMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVu
ZGVyZXIpCiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2Zvcm1h
dCA9IGNvbnZlcnRWRkNGb3JtYXRUb0dDM0RGb3JtYXQobV9mcmFtZSk7CisgICAgbV9mb3JtYXQg
PSBjb252ZXJ0VkZDRm9ybWF0VG9HQzNERm9ybWF0KCptX2ZyYW1lKTsKIAogICAgIGlmIChtX2Zv
cm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSkgewogICAgICAgICBtX3By
b3ZpZGVyLT5wdXRDdXJyZW50RnJhbWUobV9mcmFtZSk7CkBAIC0xNDEsNyArMTQyLDcgQEAgdm9p
ZCBDQ1ZpZGVvTGF5ZXJJbXBsOjp3aWxsRHJhdyhMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVy
UmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIXJlc2VydmVUZXh0
dXJlcyhtX2ZyYW1lLCBtX2Zvcm1hdCwgbGF5ZXJSZW5kZXJlcikpIHsKKyAgICBpZiAoIXJlc2Vy
dmVUZXh0dXJlcygqbV9mcmFtZSwgbV9mb3JtYXQsIGxheWVyUmVuZGVyZXIpKSB7CiAgICAgICAg
IG1fcHJvdmlkZXItPnB1dEN1cnJlbnRGcmFtZShtX2ZyYW1lKTsKICAgICAgICAgbV9mcmFtZSA9
IDA7CiAgICAgfQpAQCAtMTc2LDM3ICsxNzcsNDkgQEAgdm9pZCBDQ1ZpZGVvTGF5ZXJJbXBsOjpk
aWREcmF3KCkKICAgICBtX2ZyYW1lID0gMDsKIH0KIAotSW50U2l6ZSBDQ1ZpZGVvTGF5ZXJJbXBs
Ojpjb21wdXRlVmlzaWJsZVNpemUoY29uc3QgVmlkZW9GcmFtZUNocm9taXVtKiBmcmFtZSwgdW5z
aWduZWQgcGxhbmUpCitzdGF0aWMgaW50IHZpZGVvRnJhbWVEaW1lbnNpb24oaW50IG9yaWdpbmFs
RGltZW5zaW9uLCB1bnNpZ25lZCBwbGFuZSwgaW50IGZvcm1hdCkKIHsKLSAgICBpbnQgdmlzaWJs
ZVdpZHRoID0gZnJhbWUtPndpZHRoKHBsYW5lKTsKLSAgICBpbnQgdmlzaWJsZUhlaWdodCA9IGZy
YW1lLT5oZWlnaHQocGxhbmUpOworICAgIGlmIChmb3JtYXQgPT0gV2ViS2l0OjpXZWJWaWRlb0Zy
YW1lOjpGb3JtYXRZVjEyICYmIHBsYW5lICE9IFdlYktpdDo6V2ViVmlkZW9GcmFtZTo6eVBsYW5l
KQorICAgICAgICByZXR1cm4gb3JpZ2luYWxEaW1lbnNpb24gLyAyOworICAgIHJldHVybiBvcmln
aW5hbERpbWVuc2lvbjsKK30KKworc3RhdGljIGJvb2wgaGFzUGFkZGluZ0J5dGVzKGNvbnN0IFdl
YktpdDo6V2ViVmlkZW9GcmFtZSYgZnJhbWUsIHVuc2lnbmVkIHBsYW5lKQoreworICAgIHJldHVy
biBmcmFtZS5zdHJpZGUocGxhbmUpID4gdmlkZW9GcmFtZURpbWVuc2lvbihmcmFtZS53aWR0aCgp
LCBwbGFuZSwgZnJhbWUuZm9ybWF0KCkpOworfQorCitJbnRTaXplIENDVmlkZW9MYXllckltcGw6
OmNvbXB1dGVWaXNpYmxlU2l6ZShjb25zdCBXZWJLaXQ6OldlYlZpZGVvRnJhbWUmIGZyYW1lLCB1
bnNpZ25lZCBwbGFuZSkKK3sKKyAgICBpbnQgdmlzaWJsZVdpZHRoID0gdmlkZW9GcmFtZURpbWVu
c2lvbihmcmFtZS53aWR0aCgpLCBwbGFuZSwgZnJhbWUuZm9ybWF0KCkpOworICAgIGludCBvcmln
aW5hbFdpZHRoID0gdmlzaWJsZVdpZHRoOworICAgIGludCB2aXNpYmxlSGVpZ2h0ID0gdmlkZW9G
cmFtZURpbWVuc2lvbihmcmFtZS5oZWlnaHQoKSwgcGxhbmUsIGZyYW1lLmZvcm1hdCgpKTsKKwog
ICAgIC8vIFdoZW4gdGhlcmUgYXJlIGRlYWQgcGl4ZWxzIGF0IHRoZSBlZGdlIG9mIHRoZSB0ZXh0
dXJlLCBkZWNyZWFzZQogICAgIC8vIHRoZSBmcmFtZSB3aWR0aCBieSAxIHRvIHByZXZlbnQgdGhl
IHJpZ2h0bW9zdCBwaXhlbHMgZnJvbQogICAgIC8vIGludGVycG9sYXRpbmcgd2l0aCB0aGUgZGVh
ZCBwaXhlbHMuCi0gICAgaWYgKGZyYW1lLT5oYXNQYWRkaW5nQnl0ZXMocGxhbmUpKQorICAgIGlm
IChoYXNQYWRkaW5nQnl0ZXMoZnJhbWUsIHBsYW5lKSkKICAgICAgICAgLS12aXNpYmxlV2lkdGg7
CiAKICAgICAvLyBJbiBZVjEyLCBldmVyeSAyeDIgc3F1YXJlIG9mIFkgdmFsdWVzIGNvcnJlc3Bv
bmRzIHRvIG9uZSBVIGFuZAogICAgIC8vIG9uZSBWIHZhbHVlLiBJZiB3ZSBkZWNyZWFzZSB0aGUg
d2lkdGggb2YgdGhlIFVWIHBsYW5lLCB3ZSBtdXN0IGRlY3JlYXNlIHRoZQogICAgIC8vIHdpZHRo
IG9mIHRoZSBZIHRleHR1cmUgYnkgMiBmb3IgcHJvcGVyIGFsaWdubWVudC4gVGhpcyBtdXN0IGhh
cHBlbgogICAgIC8vIGFsd2F5cywgZXZlbiBpZiBZJ3MgdGV4dHVyZSBkb2VzIG5vdCBoYXZlIHBh
ZGRpbmcgYnl0ZXMuCi0gICAgaWYgKHBsYW5lID09IFZpZGVvRnJhbWVDaHJvbWl1bTo6eVBsYW5l
ICYmIGZyYW1lLT5mb3JtYXQoKSA9PSBWaWRlb0ZyYW1lQ2hyb21pdW06OllWMTIpIHsKLSAgICAg
ICAgaWYgKGZyYW1lLT5oYXNQYWRkaW5nQnl0ZXMoVmlkZW9GcmFtZUNocm9taXVtOjp1UGxhbmUp
KSB7Ci0gICAgICAgICAgICBpbnQgb3JpZ2luYWxXaWR0aCA9IGZyYW1lLT53aWR0aChwbGFuZSk7
CisgICAgaWYgKHBsYW5lID09IFdlYktpdDo6V2ViVmlkZW9GcmFtZTo6eVBsYW5lICYmIGZyYW1l
LmZvcm1hdCgpID09IFdlYktpdDo6V2ViVmlkZW9GcmFtZTo6Rm9ybWF0WVYxMikgeworICAgICAg
ICBpZiAoaGFzUGFkZGluZ0J5dGVzKGZyYW1lLCBXZWJLaXQ6OldlYlZpZGVvRnJhbWU6OnVQbGFu
ZSkpCiAgICAgICAgICAgICB2aXNpYmxlV2lkdGggPSBvcmlnaW5hbFdpZHRoIC0gMjsKLSAgICAg
ICAgfQogICAgIH0KIAogICAgIHJldHVybiBJbnRTaXplKHZpc2libGVXaWR0aCwgdmlzaWJsZUhl
aWdodCk7CiB9CiAKLWJvb2wgQ0NWaWRlb0xheWVySW1wbDo6cmVzZXJ2ZVRleHR1cmVzKGNvbnN0
IFZpZGVvRnJhbWVDaHJvbWl1bSogZnJhbWUsIEdDM0RlbnVtIGZvcm1hdCwgTGF5ZXJSZW5kZXJl
ckNocm9taXVtKiBsYXllclJlbmRlcmVyKQorYm9vbCBDQ1ZpZGVvTGF5ZXJJbXBsOjpyZXNlcnZl
VGV4dHVyZXMoY29uc3QgV2ViS2l0OjpXZWJWaWRlb0ZyYW1lJiBmcmFtZSwgR0MzRGVudW0gZm9y
bWF0LCBMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIpCiB7Ci0gICAgaWYgKGZy
YW1lLT5wbGFuZXMoKSA+IE1heFBsYW5lcykKKyAgICBpZiAoZnJhbWUucGxhbmVzKCkgPiBNYXhQ
bGFuZXMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpbnQgbWF4VGV4dHVyZVNpemUgPSBs
YXllclJlbmRlcmVyLT5jYXBhYmlsaXRpZXMoKS5tYXhUZXh0dXJlU2l6ZTsKLSAgICBmb3IgKHVu
c2lnbmVkIHBsYW5lID0gMDsgcGxhbmUgPCBmcmFtZS0+cGxhbmVzKCk7ICsrcGxhbmUpIHsKLSAg
ICAgICAgSW50U2l6ZSByZXF1aXJlZFRleHR1cmVTaXplID0gZnJhbWUtPnJlcXVpcmVkVGV4dHVy
ZVNpemUocGxhbmUpOworICAgIGZvciAodW5zaWduZWQgcGxhbmUgPSAwOyBwbGFuZSA8IGZyYW1l
LnBsYW5lcygpOyArK3BsYW5lKSB7CisgICAgICAgIEludFNpemUgcmVxdWlyZWRUZXh0dXJlU2l6
ZShmcmFtZS5zdHJpZGUocGxhbmUpLCB2aWRlb0ZyYW1lRGltZW5zaW9uKGZyYW1lLmhlaWdodCgp
LCBwbGFuZSwgZnJhbWUuZm9ybWF0KCkpKTsKICAgICAgICAgLy8gSWYgdGhlIHJlbmRlcmVyIGNh
bm5vdCBoYW5kbGUgdGhpcyBsYXJnZSBvZiBhIHRleHR1cmUsIHJldHVybiBmYWxzZS4KICAgICAg
ICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHRlc3Qgd2hlbiB0aWxlZCBsYXllcnMgYXJlIGltcGxl
bWVudGVkLgogICAgICAgICBpZiAocmVxdWlyZWRUZXh0dXJlU2l6ZS5pc1plcm8oKSB8fCByZXF1
aXJlZFRleHR1cmVTaXplLndpZHRoKCkgPiBtYXhUZXh0dXJlU2l6ZSB8fCByZXF1aXJlZFRleHR1
cmVTaXplLmhlaWdodCgpID4gbWF4VGV4dHVyZVNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJ
bXBsLmgKaW5kZXggMzllMmYyMjUxMWQ1MTU1ZTI3OTRhYzlkYWQ4MTQ3MjExZThlZGMwOC4uZTEx
OTIzMDZmNDY3M2UyYjBkYjIwZmVkYmFhZDFmNDQ2Mzk2ZjM5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlk
ZW9MYXllckltcGwuaApAQCAtMjgsMTEgKzI4LDE0IEBACiAKICNpbmNsdWRlICJNYW5hZ2VkVGV4
dHVyZS5oIgogI2luY2x1ZGUgIlNoYWRlckNocm9taXVtLmgiCi0jaW5jbHVkZSAiVmlkZW9GcmFt
ZUNocm9taXVtLmgiCiAjaW5jbHVkZSAiVmlkZW9GcmFtZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAi
VmlkZW9MYXllckNocm9taXVtLmgiCiAjaW5jbHVkZSAiY2MvQ0NMYXllckltcGwuaCIKIAorbmFt
ZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJWaWRlb0ZyYW1lOworfQorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdEltcGw7CkBAIC04MywxMCArODYsMTAgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBDQ1ZpZGVvTGF5ZXJJbXBsKGludCwgVmlk
ZW9GcmFtZVByb3ZpZGVyKik7CiAKLSAgICBzdGF0aWMgSW50U2l6ZSBjb21wdXRlVmlzaWJsZVNp
emUoY29uc3QgVmlkZW9GcmFtZUNocm9taXVtKiwgdW5zaWduZWQgcGxhbmUpOworICAgIHN0YXRp
YyBJbnRTaXplIGNvbXB1dGVWaXNpYmxlU2l6ZShjb25zdCBXZWJLaXQ6OldlYlZpZGVvRnJhbWUm
LCB1bnNpZ25lZCBwbGFuZSk7CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiBsYXllclR5cGVBc1N0
cmluZygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICJWaWRlb0xheWVyIjsgfQogCi0gICAgYm9v
bCByZXNlcnZlVGV4dHVyZXMoY29uc3QgVmlkZW9GcmFtZUNocm9taXVtKiwgR0MzRGVudW0gZm9y
bWF0LCBMYXllclJlbmRlcmVyQ2hyb21pdW0qKTsKKyAgICBib29sIHJlc2VydmVUZXh0dXJlcyhj
b25zdCBXZWJLaXQ6OldlYlZpZGVvRnJhbWUmLCBHQzNEZW51bSBmb3JtYXQsIExheWVyUmVuZGVy
ZXJDaHJvbWl1bSopOwogCiAgICAgTXV0ZXggbV9wcm92aWRlck11dGV4OyAvLyBHdWFyZHMgbV9w
cm92aWRlciBiZWxvdy4KICAgICBWaWRlb0ZyYW1lUHJvdmlkZXIqIG1fcHJvdmlkZXI7CkBAIC05
Niw3ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9zdHJlYW1UZXh0dXJlTWF0cml4WzE2
XTsKICAgICBDQ0xheWVyVHJlZUhvc3RJbXBsKiBtX2xheWVyVHJlZUhvc3RJbXBsOwogCi0gICAg
VmlkZW9GcmFtZUNocm9taXVtKiBtX2ZyYW1lOworICAgIFdlYktpdDo6V2ViVmlkZW9GcmFtZSog
bV9mcmFtZTsKICAgICBHQzNEZW51bSBtX2Zvcm1hdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cAppbmRleCBiY2VmZmFhMzlmNjMzMzAxNjNmYzA3MDY2OGY5YzI0NGI3ZGM0MmFlLi4y
M2RlMzJiYWZiYTE4NzY4MWRhYmUxNjIxMmFlNjAxZmE5NWNjMjI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwCkBAIC00ODcsOCArNDg3LDYgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dl
YlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
VGV4dENoZWNraW5nQ29tcGxldGlvbkltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dl
YlRleHRDaGVja2luZ1Jlc3VsdC5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvVmlkZW9GcmFt
ZUNocm9taXVtSW1wbC5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvVmlkZW9GcmFtZUNocm9t
aXVtSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkFuaW1hdGlvbkNvbnRyb2xsZXJJbXBsLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJBbmltYXRpb25Db250cm9sbGVySW1wbC5oJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0VW5pdFRlc3RzLmd5cCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0VW5pdFRlc3RzLmd5cAppbmRleCA0Nzc2ZGM0
MzY1NzUxNDM4MzFiMTg4MGMzYjA3MjkzM2YzYTQ1YWYzLi42ZjFlZDExYzcxZTM4MjkwMDJhZjAz
NzNhZmY2MWM1YTA4OTcwZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dl
YktpdFVuaXRUZXN0cy5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXRVbml0
VGVzdHMuZ3lwCkBAIC03Miw2ICs3MiwxMSBAQAogICAgICAgICAgICAgJ2luY2x1ZGVfZGlycyc6
IFsKICAgICAgICAgICAgICAgICAncHVibGljJywKICAgICAgICAgICAgICAgICAnc3JjJywKKyAg
ICAgICAgICAgICAgICAjIFdlYktpdCB1bml0IHRlc3RzIGFyZSBhbGxvd2VkIHRvIGluY2x1ZGUg
V2ViS2l0IGFuZCBXZWJDb3JlIGhlYWRlciBmaWxlcywgd2hpY2ggbWF5IGluY2x1ZGUgaGVhZGVy
cyBpbiB0aGUKKyAgICAgICAgICAgICAgICAjIFBsYXRmb3JtIEFQSSBhcyA8cHVibGljL1dlYkZv
by5oPi4gVGh1cyB3ZSBuZWVkIHRvIGhhdmUgdGhlIFBsYXRmb3JtIEFQSSBpbmNsdWRlIHBhdGgs
IGJ1dCB3ZSBjYW4ndCBkZXBlbmQKKyAgICAgICAgICAgICAgICAjIGRpcmVjdGx5IG9uIFBsYXRm
b3JtLmd5cDp3ZWJraXRfcGxhdGZvcm0gc2luY2UgcGxhdGZvcm0gY2Fubm90IGxpbmsgYXMgYSBz
ZXBhcmF0ZSBsaWJyYXJ5LiBJbnN0ZWFkLCB3ZSBqdXN0CisgICAgICAgICAgICAgICAgIyBhZGQg
dGhlIGluY2x1ZGUgcGF0aCBkaXJlY3RseS4KKyAgICAgICAgICAgICAgICAnLi4vLi4vUGxhdGZv
cm0vY2hyb21pdW0nLAogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICdjb25kaXRpb25zJzog
WwogICAgICAgICAgICAgICAgIFsnaW5zaWRlX2Nocm9taXVtX2J1aWxkPT0xIGFuZCBjb21wb25l
bnQ9PSJzaGFyZWRfbGlicmFyeSInLCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWRlb0ZyYW1lLmgKaW5kZXggNGZhYjFmMjE5MDBjMzgwMDVmZjQ4YTQ0ODI0MDA5N2Fl
MWEyZWVlZC4uOTQ4YTdhNDQ0MGJmZDI2YmJkNDU1Mzk5YzIxZjcxNTgxZGM2NjI5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaApAQCAtMSw2NCAr
MSwyNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CiAgKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV2ViVmlkZW9GcmFtZV9o
Ci0jZGVmaW5lIFdlYlZpZGVvRnJhbWVfaAotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotLy8gQSBw
cm94eSB2aWRlbyBmcmFtZSBpbnRlcmZhY2UgdG8gY29tbXVuaWNhdGUgZnJhbWUgZGF0YSBiZXR3
ZWVuIGNocm9taXVtCi0vLyBhbmQgV2ViS2l0LgotLy8gS2VlcCBpbiBzeW5jIHdpdGggVmlkZW9G
cmFtZUNocm9taXVtIGFuZCBjaHJvbWl1bSdzIG1lZGlhOjpWaWRlb0ZyYW1lOjpGb3JtYXQuCi1j
bGFzcyBXZWJWaWRlb0ZyYW1lIHsKLXB1YmxpYzoKLSAgICBlbnVtIEZvcm1hdCB7Ci0gICAgICAg
IEZvcm1hdEludmFsaWQgPSAwLAotICAgICAgICBGb3JtYXRSR0IzMiA9IDQsCi0gICAgICAgIEZv
cm1hdFlWMTIgPSA2LAotICAgICAgICBGb3JtYXRZVjE2ID0gNywKLSAgICAgICAgRm9ybWF0RW1w
dHkgPSA5LAotICAgICAgICBGb3JtYXRJNDIwID0gMTEsCi0gICAgICAgIEZvcm1hdE5hdGl2ZVRl
eHR1cmUgPSAxMiwKLSAgICB9OwotCi0gICAgdmlydHVhbCB+V2ViVmlkZW9GcmFtZSgpIHsgfQot
ICAgIHZpcnR1YWwgRm9ybWF0IGZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIEZvcm1hdEludmFsaWQ7
IH0KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAg
IHZpcnR1YWwgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1
YWwgdW5zaWduZWQgcGxhbmVzKCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgaW50
IHN0cmlkZSh1bnNpZ25lZCBwbGFuZSkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwg
Y29uc3Qgdm9pZCogZGF0YSh1bnNpZ25lZCBwbGFuZSkgY29uc3QgeyByZXR1cm4gMDsgfQotICAg
IHZpcnR1YWwgdW5zaWduZWQgdGV4dHVyZUlkKCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZp
cnR1YWwgdW5zaWduZWQgdGV4dHVyZVRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYKKyNpbmNsdWRlICIuLi8uLi8uLi9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCA3MmMyYmU2NWY1
ZDE5MWRlMmUxNTU3NzIxNTFmYjRhMzFiYjM2MTRjLi40ODUxZWM5NzlhMTViNTc4NDUyMWE2ZjZj
MmQyYTY1NWQ1NGNmZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9B
c3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9B
c3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNjksNyArNjksNiBAQAogI2luY2x1ZGUgIlVzZXJD
b250ZW50VHlwZXMuaCIKICNpbmNsdWRlICJVc2VyU2NyaXB0VHlwZXMuaCIKICNpbmNsdWRlICJV
c2VyU3R5bGVTaGVldFR5cGVzLmgiCi0jaW5jbHVkZSAiVmlkZW9GcmFtZUNocm9taXVtLmgiCiAj
aW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbi5oIgogI2luY2x1ZGUgIldlYkFj
Y2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hlSG9zdC5o
IgpAQCAtOTksNyArOTgsNiBAQAogI2luY2x1ZGUgIldlYlRleHRDYXNlU2Vuc2l0aXZpdHkuaCIK
ICNpbmNsdWRlICJXZWJUZXh0Q2hlY2tpbmdSZXN1bHQuaCIKICNpbmNsdWRlICJXZWJUZXh0Q2hl
Y2tpbmdUeXBlLmgiCi0jaW5jbHVkZSAiV2ViVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIldlYlZp
ZXcuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDbGlwYm9hcmQuaCIKICNpbmNsdWRlICJwbGF0
Zm9ybS9XZWJGaWxlU3lzdGVtLmgiCkBAIC00MDIsMTEgKzQwMCw2IEBAIENPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV2ViTWVkaWFQbGF5ZXJDbGllbnQ6OkhhcmR3YXJlQ2hhbmdlRXJyb3Is
IE1lZGlhUGxhCiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk1lZGlhUGxheWVyQ2xp
ZW50OjpEb21haW5FcnJvciwgTWVkaWFQbGF5ZXJDbGllbnQ6OkRvbWFpbkVycm9yKTsKICNlbmRp
ZgogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlZpZGVvRnJhbWU6OkZvcm1hdElu
dmFsaWQsIFZpZGVvRnJhbWVDaHJvbWl1bTo6SW52YWxpZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdlYlZpZGVvRnJhbWU6OkZvcm1hdFJHQjMyLCBWaWRlb0ZyYW1lQ2hyb21pdW06
OlJHQjMyKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVmlkZW9GcmFtZTo6Rm9y
bWF0WVYxMiwgVmlkZW9GcmFtZUNocm9taXVtOjpZVjEyKTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViVmlkZW9GcmFtZTo6Rm9ybWF0WVYxNiwgVmlkZW9GcmFtZUNocm9taXVtOjpZ
VjE2KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVmlkZW9GcmFtZTo6Rm9ybWF0
RW1wdHksIFZpZGVvRnJhbWVDaHJvbWl1bTo6RW1wdHkpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvVmlkZW9GcmFtZUNocm9taXVtSW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9WaWRlb0ZyYW1lQ2hyb21pdW1JbXBsLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmNjZTkzOWY3MzM3Zjc5YjM3MDhlOGE5YWE3
ZmM5YTgwY2UzNjgwMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9WaWRlb0ZyYW1lQ2hyb21pdW1JbXBsLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIlZpZGVvRnJhbWVDaHJvbWl1bUltcGwuaCIKLQotI2luY2x1ZGUgIlZpZGVvRnJhbWVD
aHJvbWl1bS5oIgotI2luY2x1ZGUgIldlYlZpZGVvRnJhbWUuaCIKLQotdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJWaWRlb0ZyYW1lKiBWaWRlb0Zy
YW1lQ2hyb21pdW1JbXBsOjp0b1dlYlZpZGVvRnJhbWUoVmlkZW9GcmFtZUNocm9taXVtKiB2aWRl
b0ZyYW1lKQotewotICAgIFZpZGVvRnJhbWVDaHJvbWl1bUltcGwqIHdyYXBwZWRGcmFtZSA9IHN0
YXRpY19jYXN0PFZpZGVvRnJhbWVDaHJvbWl1bUltcGwqPih2aWRlb0ZyYW1lKTsKLSAgICBpZiAo
d3JhcHBlZEZyYW1lKQotICAgICAgICByZXR1cm4gd3JhcHBlZEZyYW1lLT5tX3dlYlZpZGVvRnJh
bWU7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLVZpZGVvRnJhbWVDaHJvbWl1bUltcGw6OlZpZGVvRnJh
bWVDaHJvbWl1bUltcGwoV2ViVmlkZW9GcmFtZSogd2ViVmlkZW9GcmFtZSkKLSAgICA6IG1fd2Vi
VmlkZW9GcmFtZSh3ZWJWaWRlb0ZyYW1lKQotewotfQotCi1WaWRlb0ZyYW1lQ2hyb21pdW06OkZv
cm1hdCBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsOjpmb3JtYXQoKSBjb25zdAotewotICAgIGlmICht
X3dlYlZpZGVvRnJhbWUpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxWaWRlb0ZyYW1lQ2hy
b21pdW06OkZvcm1hdD4obV93ZWJWaWRlb0ZyYW1lLT5mb3JtYXQoKSk7Ci0gICAgcmV0dXJuIElu
dmFsaWQ7Ci19Ci0KLXVuc2lnbmVkIFZpZGVvRnJhbWVDaHJvbWl1bUltcGw6OndpZHRoKCkgY29u
c3QKLXsKLSAgICBpZiAobV93ZWJWaWRlb0ZyYW1lKQotICAgICAgICByZXR1cm4gbV93ZWJWaWRl
b0ZyYW1lLT53aWR0aCgpOwotICAgIHJldHVybiAwOwotfQotCi11bnNpZ25lZCBWaWRlb0ZyYW1l
Q2hyb21pdW1JbXBsOjp3aWR0aCh1bnNpZ25lZCBwbGFuZSkgY29uc3QKLXsKLSAgICB1bnNpZ25l
ZCBwbGFuZVdpZHRoID0gd2lkdGgoKTsKLSAgICBpZiAoZm9ybWF0KCkgPT0gWVYxMiAmJiBwbGFu
ZSAhPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oeVBsYW5lKSkKLSAgICAgICAgcGxhbmVXaWR0aCAv
PSAyOwotICAgIHJldHVybiBwbGFuZVdpZHRoOwotfQotCi11bnNpZ25lZCBWaWRlb0ZyYW1lQ2hy
b21pdW1JbXBsOjpoZWlnaHQoKSBjb25zdAotewotICAgIGlmIChtX3dlYlZpZGVvRnJhbWUpCi0g
ICAgICAgIHJldHVybiBtX3dlYlZpZGVvRnJhbWUtPmhlaWdodCgpOwotICAgIHJldHVybiAwOwot
fQotCi11bnNpZ25lZCBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsOjpoZWlnaHQodW5zaWduZWQgcGxh
bmUpIGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgcGxhbmVIZWlnaHQgPSBoZWlnaHQoKTsKLSAgICBp
ZiAoZm9ybWF0KCkgPT0gWVYxMiAmJiBwbGFuZSAhPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oeVBs
YW5lKSkKLSAgICAgICAgcGxhbmVIZWlnaHQgLz0gMjsKLSAgICByZXR1cm4gcGxhbmVIZWlnaHQ7
Ci19Ci0KLXVuc2lnbmVkIFZpZGVvRnJhbWVDaHJvbWl1bUltcGw6OnBsYW5lcygpIGNvbnN0Ci17
Ci0gICAgaWYgKG1fd2ViVmlkZW9GcmFtZSkKLSAgICAgICAgcmV0dXJuIG1fd2ViVmlkZW9GcmFt
ZS0+cGxhbmVzKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBWaWRlb0ZyYW1lQ2hyb21pdW1J
bXBsOjpzdHJpZGUodW5zaWduZWQgcGxhbmUpIGNvbnN0Ci17Ci0gICAgaWYgKG1fd2ViVmlkZW9G
cmFtZSkKLSAgICAgICAgcmV0dXJuIG1fd2ViVmlkZW9GcmFtZS0+c3RyaWRlKHBsYW5lKTsKLSAg
ICByZXR1cm4gMDsKLX0KLQotY29uc3Qgdm9pZCogVmlkZW9GcmFtZUNocm9taXVtSW1wbDo6ZGF0
YSh1bnNpZ25lZCBwbGFuZSkgY29uc3QKLXsKLSAgICBpZiAobV93ZWJWaWRlb0ZyYW1lKQotICAg
ICAgICByZXR1cm4gbV93ZWJWaWRlb0ZyYW1lLT5kYXRhKHBsYW5lKTsKLSAgICByZXR1cm4gMDsK
LX0KLQotY29uc3QgSW50U2l6ZSBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsOjpyZXF1aXJlZFRleHR1
cmVTaXplKHVuc2lnbmVkIHBsYW5lKSBjb25zdAotewotICAgIHJldHVybiBJbnRTaXplKHN0cmlk
ZShwbGFuZSksIGhlaWdodChwbGFuZSkpOwotfQotCi1ib29sIFZpZGVvRnJhbWVDaHJvbWl1bUlt
cGw6Omhhc1BhZGRpbmdCeXRlcyh1bnNpZ25lZCBwbGFuZSkgY29uc3QKLXsKLSAgICBpZiAobV93
ZWJWaWRlb0ZyYW1lKQotICAgICAgICByZXR1cm4gc3RyaWRlKHBsYW5lKSAtIHdpZHRoKHBsYW5l
KSA+IDA7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi11bnNpZ25lZCBWaWRlb0ZyYW1lQ2hyb21p
dW1JbXBsOjp0ZXh0dXJlSWQoKSBjb25zdAotewotICAgIGlmIChtX3dlYlZpZGVvRnJhbWUpCi0g
ICAgICAgIHJldHVybiBtX3dlYlZpZGVvRnJhbWUtPnRleHR1cmVJZCgpOwotICAgIHJldHVybiAw
OwotfQotCi11bnNpZ25lZCBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsOjp0ZXh0dXJlVGFyZ2V0KCkg
Y29uc3QKLXsKLSAgICBpZiAobV93ZWJWaWRlb0ZyYW1lKQotICAgICAgICByZXR1cm4gbV93ZWJW
aWRlb0ZyYW1lLT50ZXh0dXJlVGFyZ2V0KCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvVmlk
ZW9GcmFtZUNocm9taXVtSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvVmlkZW9G
cmFtZUNocm9taXVtSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzkyMDg2
NmZjNGRhMTE1Yjg3Y2VjYTkxMmUyNmEwOWEzNjQ0OTk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1ZpZGVv
RnJhbWVDaHJvbWl1bUltcGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlz
dHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IFZpZGVvRnJhbWVDaHJvbWl1bUltcGxfaAotI2RlZmluZSBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBs
X2gKLQotI2luY2x1ZGUgIlZpZGVvRnJhbWVDaHJvbWl1bS5oIgotI2luY2x1ZGUgIldlYlZpZGVv
RnJhbWUuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLS8vIEEgd3JhcHBlciBjbGFzcyBmb3Ig
V2ViS2l0OjpXZWJWaWRlb0ZyYW1lLiBPYmplY3RzIGNhbiBiZSBjcmVhdGVkIGluIFdlYktpdAot
Ly8gYW5kIHVzZWQgaW4gV2ViQ29yZSBiZWNhdXNlIG9mIHRoZSBWaWRlb0ZyYW1lQ2hyb21pdW0g
aW50ZXJmYWNlLgotY2xhc3MgVmlkZW9GcmFtZUNocm9taXVtSW1wbCA6IHB1YmxpYyBXZWJDb3Jl
OjpWaWRlb0ZyYW1lQ2hyb21pdW0gewotcHVibGljOgotICAgIC8vIENvbnZlcnRzIGEgV2ViQ29y
ZTo6VmlkZW9GcmFtZUNocm9taXVtIHRvIGEgV2ViS2l0OjpXZWJWaWRlb0ZyYW1lLgotICAgIHN0
YXRpYyBXZWJWaWRlb0ZyYW1lKiB0b1dlYlZpZGVvRnJhbWUoV2ViQ29yZTo6VmlkZW9GcmFtZUNo
cm9taXVtKik7Ci0KLSAgICAvLyBDcmVhdGVzIGEgVmlkZW9GcmFtZUNocm9taXVtSW1wbCBvYmpl
Y3QgdG8gd3JhcCB0aGUgZ2l2ZW4gV2ViVmlkZW9GcmFtZS4KLSAgICAvLyBUaGUgVmlkZW9GcmFt
ZUNocm9taXVtSW1wbCBkb2VzIG5vdCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgV2ViVmlkZW9GcmFt
ZQotICAgIC8vIGFuZCBzaG91bGQgbm90IGZyZWUgdGhlIGZyYW1lJ3MgbWVtb3J5LgotICAgIFZp
ZGVvRnJhbWVDaHJvbWl1bUltcGwoV2ViVmlkZW9GcmFtZSopOwotICAgIHZpcnR1YWwgRm9ybWF0
IGZvcm1hdCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIHBsYW5lKSBjb25zdDsKLSAgICB2aXJ0
dWFsIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdW5zaWduZWQgaGVpZ2h0
KHVuc2lnbmVkIHBsYW5lKSBjb25zdDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHBsYW5lcygpIGNv
bnN0OwotICAgIHZpcnR1YWwgaW50IHN0cmlkZSh1bnNpZ25lZCBwbGFuZSkgY29uc3Q7Ci0gICAg
dmlydHVhbCBjb25zdCB2b2lkKiBkYXRhKHVuc2lnbmVkIHBsYW5lKSBjb25zdDsKLSAgICB2aXJ0
dWFsIGNvbnN0IFdlYkNvcmU6OkludFNpemUgcmVxdWlyZWRUZXh0dXJlU2l6ZSh1bnNpZ25lZCBw
bGFuZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGhhc1BhZGRpbmdCeXRlcyh1bnNpZ25lZCBw
bGFuZSkgY29uc3Q7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCB0ZXh0dXJlSWQoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIHVuc2lnbmVkIHRleHR1cmVUYXJnZXQoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAg
ICBXZWJWaWRlb0ZyYW1lKiBtX3dlYlZpZGVvRnJhbWU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAppbmRleCA1YzdiMmM5MjlmOWU0OGJiNGMxZDhk
OGQ0NTcyOThmMjQ3ZjJjZmY4Li40NjAwZmI4NDMwMzA5ZTU1ZTc3N2NmMWExNjBiYmM0YzcxNDA5
NjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXll
ckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbC5jcHAKQEAgLTE5LDggKzE5LDYgQEAKICNpbmNsdWRlICJQbGF0Zm9y
bUNvbnRleHRTa2lhLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlRpbWVS
YW5nZXMuaCIKLSNpbmNsdWRlICJWaWRlb0ZyYW1lQ2hyb21pdW0uaCIKLSNpbmNsdWRlICJWaWRl
b0ZyYW1lQ2hyb21pdW1JbXBsLmgiCiAjaW5jbHVkZSAiVmlkZW9MYXllckNocm9taXVtLmgiCiAj
aW5jbHVkZSAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYkZyYW1lQ2xp
ZW50LmgiCkBAIC02NjMsMjkgKzY2MSwyNCBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bDo6c2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KFZpZGVvRnJhbWVQcm92aWRlcjo6QwogICAg
ICAgICBtX3dlYk1lZGlhUGxheWVyLT5zZXRTdHJlYW1UZXh0dXJlQ2xpZW50KGNsaWVudCA/IHRo
aXMgOiAwKTsKIH0KIAotVmlkZW9GcmFtZUNocm9taXVtKiBXZWJNZWRpYVBsYXllckNsaWVudElt
cGw6OmdldEN1cnJlbnRGcmFtZSgpCitXZWJWaWRlb0ZyYW1lKiBXZWJNZWRpYVBsYXllckNsaWVu
dEltcGw6OmdldEN1cnJlbnRGcmFtZSgpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fY29t
cG9zaXRpbmdNdXRleCk7CiAgICAgQVNTRVJUKCFtX2N1cnJlbnRWaWRlb0ZyYW1lKTsKLSAgICBp
ZiAobV93ZWJNZWRpYVBsYXllcikgewotICAgICAgICBXZWJWaWRlb0ZyYW1lKiB3ZWJraXRWaWRl
b0ZyYW1lID0gbV93ZWJNZWRpYVBsYXllci0+Z2V0Q3VycmVudEZyYW1lKCk7Ci0gICAgICAgIGlm
ICh3ZWJraXRWaWRlb0ZyYW1lKQotICAgICAgICAgICAgbV9jdXJyZW50VmlkZW9GcmFtZSA9IGFk
b3B0UHRyKG5ldyBWaWRlb0ZyYW1lQ2hyb21pdW1JbXBsKHdlYmtpdFZpZGVvRnJhbWUpKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIG1fY3VycmVudFZpZGVvRnJhbWUuZ2V0KCk7CisgICAgaWYgKG1fd2Vi
TWVkaWFQbGF5ZXIpCisgICAgICAgIG1fY3VycmVudFZpZGVvRnJhbWUgPSBtX3dlYk1lZGlhUGxh
eWVyLT5nZXRDdXJyZW50RnJhbWUoKTsKKyAgICByZXR1cm4gbV9jdXJyZW50VmlkZW9GcmFtZTsK
IH0KIAotdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnB1dEN1cnJlbnRGcmFtZShWaWRl
b0ZyYW1lQ2hyb21pdW0qIHZpZGVvRnJhbWUpCit2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bDo6cHV0Q3VycmVudEZyYW1lKFdlYlZpZGVvRnJhbWUqIHZpZGVvRnJhbWUpCiB7CiAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fY29tcG9zaXRpbmdNdXRleCk7CiAgICAgQVNTRVJUKHZpZGVvRnJh
bWUgPT0gbV9jdXJyZW50VmlkZW9GcmFtZSk7CiAgICAgaWYgKCF2aWRlb0ZyYW1lKQogICAgICAg
ICByZXR1cm47Ci0gICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIpIHsKLSAgICAgICAgbV93ZWJNZWRp
YVBsYXllci0+cHV0Q3VycmVudEZyYW1lKAotICAgICAgICAgICAgVmlkZW9GcmFtZUNocm9taXVt
SW1wbDo6dG9XZWJWaWRlb0ZyYW1lKHZpZGVvRnJhbWUpKTsKLSAgICB9Ci0gICAgbV9jdXJyZW50
VmlkZW9GcmFtZS5jbGVhcigpOworICAgIGlmIChtX3dlYk1lZGlhUGxheWVyKQorICAgICAgICBt
X3dlYk1lZGlhUGxheWVyLT5wdXRDdXJyZW50RnJhbWUodmlkZW9GcmFtZSk7CisgICAgbV9jdXJy
ZW50VmlkZW9GcmFtZSA9IDA7CiB9CiAjZW5kaWYKIApAQCAtNzY3LDYgKzc2MCw3IEBAIHZvaWQg
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpkaWRVcGRhdGVNYXRyaXgoY29uc3QgZmxvYXQqIG1h
dHJpeCkKIAogV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpXZWJNZWRpYVBsYXllckNsaWVudElt
cGwoKQogICAgIDogbV9tZWRpYVBsYXllcigwKQorICAgICwgbV9jdXJyZW50VmlkZW9GcmFtZSgw
KQogICAgICwgbV9kZWxheWluZ0xvYWQoZmFsc2UpCiAgICAgLCBtX3ByZWxvYWQoTWVkaWFQbGF5
ZXI6Ok1ldGFEYXRhKQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgK
aW5kZXggNTBiY2MwMTgwZjA0YWEzNDczODc4MTg2Yzg4NDY4NjM0MjRmOTE1Ny4uYmExNzMwZjVm
NzhkNTBhMmQ5OGU2ZWU2ZjBhNjE5ZDRhNGVjMmQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKQEAgLTM1LDcgKzM1
LDYgQEAKIAogI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJNZWRp
YVBsYXllclByaXZhdGUuaCIKLSNpbmNsdWRlICJWaWRlb0ZyYW1lQ2hyb21pdW0uaCIKICNpbmNs
dWRlICJWaWRlb0ZyYW1lUHJvdmlkZXIuaCIKICNpbmNsdWRlICJWaWRlb0xheWVyQ2hyb21pdW0u
aCIKICNpbmNsdWRlICJXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmgiCkBAIC0xNDUsOCAr
MTQ0LDggQEAgcHVibGljOgogCiAgICAgLy8gVmlkZW9GcmFtZVByb3ZpZGVyIG1ldGhvZHM6CiAg
ICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnJhbWVQcm92aWRlckNsaWVudChWaWRlb0ZyYW1lUHJv
dmlkZXI6OkNsaWVudCopOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6VmlkZW9GcmFtZUNocm9taXVt
KiBnZXRDdXJyZW50RnJhbWUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0Q3VycmVudEZyYW1lKFdl
YkNvcmU6OlZpZGVvRnJhbWVDaHJvbWl1bSopOworICAgIHZpcnR1YWwgV2ViVmlkZW9GcmFtZSog
Z2V0Q3VycmVudEZyYW1lKCk7CisgICAgdmlydHVhbCB2b2lkIHB1dEN1cnJlbnRGcmFtZShXZWJW
aWRlb0ZyYW1lKik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC0xODUs
NyArMTg0LDcgQEAgcHJpdmF0ZToKICAgICBNdXRleCBtX2NvbXBvc2l0aW5nTXV0ZXg7IC8vIEd1
YXJkcyBtX2N1cnJlbnRWaWRlb0ZyYW1lIGFuZCBtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudC4K
ICAgICBXZWJDb3JlOjpNZWRpYVBsYXllciogbV9tZWRpYVBsYXllcjsKICAgICBPd25QdHI8V2Vi
TWVkaWFQbGF5ZXI+IG1fd2ViTWVkaWFQbGF5ZXI7Ci0gICAgT3duUHRyPFdlYkNvcmU6OlZpZGVv
RnJhbWVDaHJvbWl1bT4gbV9jdXJyZW50VmlkZW9GcmFtZTsKKyAgICBXZWJWaWRlb0ZyYW1lKiBt
X2N1cnJlbnRWaWRlb0ZyYW1lOwogICAgIFN0cmluZyBtX3VybDsKICAgICBib29sIG1fZGVsYXlp
bmdMb2FkOwogICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJlbG9hZDsK
</data>
<flag name="review"
          id="142123"
          type_id="1"
          status="+"
          setter="dpranke"
    />
          </attachment>
      

    </bug>

</bugzilla>