<?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>123160</bug_id>
          
          <creation_ts>2013-10-22 06:26:22 -0700</creation_ts>
          <short_desc>HTML input type objects should be managed through std::unique_ptr</short_desc>
          <delta_ts>2013-10-28 21:18:49 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>942277</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-10-22 06:26:22 -0700</bug_when>
    <thetext>HTML input type objects should be managed through std::unique_ptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942279</commentid>
    <comment_count>1</comment_count>
      <attachid>214851</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-10-22 06:34:50 -0700</bug_when>
    <thetext>Created attachment 214851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942280</commentid>
    <comment_count>2</comment_count>
      <attachid>214852</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-10-22 06:39:33 -0700</bug_when>
    <thetext>Created attachment 214852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942284</commentid>
    <comment_count>3</comment_count>
      <attachid>214852</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-22 06:52:57 -0700</bug_when>
    <thetext>Comment on attachment 214852
Patch

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

&gt; Source/WebCore/html/ButtonInputType.cpp:40
&gt; -    return adoptPtr(new ButtonInputType(element));
&gt; +    return std::unique_ptr&lt;ButtonInputType&gt;(new ButtonInputType(element));

instead of this pattern, you should just use std::make_unique. Get rid of the create functions and make the constructors public instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942426</commentid>
    <comment_count>4</comment_count>
      <attachid>214889</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-10-22 14:58:44 -0700</bug_when>
    <thetext>Created attachment 214889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942454</commentid>
    <comment_count>5</comment_count>
      <attachid>214889</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-22 15:55:18 -0700</bug_when>
    <thetext>Comment on attachment 214889
Patch

Attachment 214889 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/9418009</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942606</commentid>
    <comment_count>6</comment_count>
      <attachid>214935</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-10-23 00:34:46 -0700</bug_when>
    <thetext>Created attachment 214935
EWS try</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942615</commentid>
    <comment_count>7</comment_count>
      <attachid>214935</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-23 01:20:08 -0700</bug_when>
    <thetext>Comment on attachment 214935
EWS try

Attachment 214935 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/7768088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942643</commentid>
    <comment_count>8</comment_count>
      <attachid>214945</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-10-23 05:11:17 -0700</bug_when>
    <thetext>Created attachment 214945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942648</commentid>
    <comment_count>9</comment_count>
      <attachid>214945</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-23 05:54:30 -0700</bug_when>
    <thetext>Comment on attachment 214945
Patch

Attachment 214945 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/8358069</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942693</commentid>
    <comment_count>10</comment_count>
      <attachid>214965</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-10-23 08:26:09 -0700</bug_when>
    <thetext>Created attachment 214965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942706</commentid>
    <comment_count>11</comment_count>
      <attachid>214965</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-23 09:07:32 -0700</bug_when>
    <thetext>Comment on attachment 214965
Patch

Attachment 214965 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/9918012</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942936</commentid>
    <comment_count>12</comment_count>
      <attachid>214965</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-23 17:50:43 -0700</bug_when>
    <thetext>Comment on attachment 214965
Patch

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

review+ as long as you remove the peculiar use of std::move in populateInputTypeFactoryMap.

Would be nice to eliminate the unrolled loop that builds the map. Use the pattern I’ve been using in other populate functions, with a C array data table and a loop to add to the map.

&gt; Source/WebCore/html/ButtonInputType.h:40
&gt; +    ButtonInputType(HTMLInputElement&amp; element) : BaseButtonInputType(element) { }

explicit

&gt; Source/WebCore/html/CheckboxInputType.h:40
&gt; +    CheckboxInputType(HTMLInputElement&amp; element) : BaseCheckableInputType(element) { }

explicit

&gt; Source/WebCore/html/HTMLInputElement.cpp:459
&gt; +    std::unique_ptr&lt;InputType&gt; newType = InputType::create(*this, fastGetAttribute(typeAttr));

I think auto would be good here, instead of explicitly saying std::unique_ptr&lt;InputType&gt;.

&gt; Source/WebCore/html/InputType.cpp:98
&gt; +    map.add(InputTypeNames::button(), std::move(createInputType&lt;ButtonInputType&gt;));

Why are we calling std::move on the function pointer here? That doesn’t seem helpful.

This loop should not be unrolled. Instead there should be a C array data table with function pointers in it, and the map should be populated in a loop. Separate calls to map.add bloat the code.

&gt; Source/WebCore/html/InputType.cpp:151
&gt; +    InputTypeFactoryFunction factory = typeName.isEmpty() ? nullptr : factoryMap.get().get(typeName);
&gt; +    if (factory)
&gt; +        return factory(element);

I would write this:

    if (!typeName.isEmpty()) {
        if (auto factory = factoryMap.get().get(typeName))
            return factory(element);
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943911</commentid>
    <comment_count>13</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-10-26 12:08:51 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 214965 [details])
&gt; &gt; Source/WebCore/html/InputType.cpp:98
&gt; &gt; +    map.add(InputTypeNames::button(), std::move(createInputType&lt;ButtonInputType&gt;));
&gt; 
&gt; Why are we calling std::move on the function pointer here? That doesn’t seem helpful.

This was just another attempt to somehow get MSVC to compile this code. It still doesn&apos;t compile, so it&apos;s not useful at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943912</commentid>
    <comment_count>14</comment_count>
      <attachid>215257</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-10-26 12:17:50 -0700</bug_when>
    <thetext>Created attachment 215257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943913</commentid>
    <comment_count>15</comment_count>
      <attachid>215257</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-26 12:48:43 -0700</bug_when>
    <thetext>Comment on attachment 215257
Patch

Attachment 215257 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/13878003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943981</commentid>
    <comment_count>16</comment_count>
      <attachid>215257</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-27 12:22:14 -0700</bug_when>
    <thetext>Comment on attachment 215257
Patch

1&gt;..\html\InputType.cpp(86): error C2143: syntax error : missing &apos;;&apos; before &apos;=&apos;
     1&gt;..\html\InputType.cpp(86): error C2873: &apos;InputTypeNameFunction&apos; : symbol cannot be used in a using-declaration
     1&gt;..\html\InputType.cpp(86): error C2513: &apos;int&apos; : no variable declared before &apos;=&apos;
     1&gt;..\html\InputType.cpp(86): error C2059: syntax error : &apos;&lt;cv-qualifer&gt;&apos;
     1&gt;..\html\InputType.cpp(87): error C2143: syntax error : missing &apos;;&apos; before &apos;=&apos;
     1&gt;..\html\InputType.cpp(87): error C2873: &apos;InputTypeFactoryFunction&apos; : symbol cannot be used in a using-declaration
     1&gt;..\html\InputType.cpp(87): error C2513: &apos;int&apos; : no variable declared before &apos;=&apos;
     1&gt;..\html\InputType.cpp(87): error C2059: syntax error : &apos;)&apos;
     1&gt;..\html\InputType.cpp(88): error C2143: syntax error : missing &apos;;&apos; before &apos;=&apos;
     1&gt;..\html\InputType.cpp(88): error C2873: &apos;InputTypeFactoryMap&apos; : symbol cannot be used in a using-declaration
     1&gt;..\html\InputType.cpp(88): error C2513: &apos;int&apos; : no variable declared before &apos;=&apos;
     1&gt;..\html\InputType.cpp(88): error C2065: &apos;InputTypeFactoryFunction&apos; : undeclared identifier
     1&gt;..\html\InputType.cpp(88): error C2955: &apos;WTF::HashMap&apos; : use of class template requires template argument list
                 C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\include\private\wtf/HashMap.h(34) : see declaration of &apos;WTF::HashMap&apos;
     1&gt;..\html\InputType.cpp(96): error C2065: &apos;InputTypeFactoryMap&apos; : undeclared identifier
     1&gt;..\html\InputType.cpp(96): error C2065: &apos;map&apos; : undeclared identifier
     1&gt;..\html\InputType.cpp(97): error C2448: &apos;populateInputTypeFactoryMap&apos; : function-style initializer appears to be a function definition
     1&gt;..\html\InputType.cpp(156): error C2065: &apos;InputTypeFactoryMap&apos; : undeclared identifier
     1&gt;..\html\InputType.cpp(156): error C2133: &apos;factoryMap&apos; : unknown size
     1&gt;..\html\InputType.cpp(156): error C2512: &apos;WTF::NeverDestroyed&apos; : no appropriate default constructor available
     1&gt;..\html\InputType.cpp(157): error C2662: &apos;WTF::NeverDestroyed&lt;T&gt;::get&apos; : cannot convert &apos;this&apos; pointer from &apos;WTF::NeverDestroyed&apos; to &apos;WTF::NeverDestroyed&lt;T&gt; &amp;&apos;
                 Reason: cannot convert from &apos;WTF::NeverDestroyed&apos; to &apos;WTF::NeverDestroyed&lt;T&gt;&apos;
                 Conversion requires a second user-defined-conversion operator or constructor
     1&gt;..\html\InputType.cpp(157): error C2228: left of &apos;.isEmpty&apos; must have class/struct/union
     1&gt;..\html\InputType.cpp(158): error C3861: &apos;populateInputTypeFactoryMap&apos;: identifier not found
     1&gt;..\html\InputType.cpp(161): error C2662: &apos;WTF::NeverDestroyed&lt;T&gt;::get&apos; : cannot convert &apos;this&apos; pointer from &apos;WTF::NeverDestroyed&apos; to &apos;WTF::NeverDestroyed&lt;T&gt; &amp;&apos;
                 Reason: cannot convert from &apos;WTF::NeverDestroyed&apos; to &apos;WTF::NeverDestroyed&lt;T&gt;&apos;
                 Conversion requires a second user-defined-conversion operator or constructor
     1&gt;..\html\InputType.cpp(161): error C2228: left of &apos;.get&apos; must have class/struct/union
     1&gt;..\html\InputType.cpp(161): fatal error C1903: unable to recover from previous error(s); stopping compilation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943982</commentid>
    <comment_count>17</comment_count>
      <attachid>215257</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-27 12:23:59 -0700</bug_when>
    <thetext>Comment on attachment 215257
Patch

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

&gt; Source/WebCore/html/InputType.cpp:88
&gt; +using InputTypeNameFunction = const AtomicString&amp; (*)();
&gt; +using InputTypeFactoryFunction = std::unique_ptr&lt;InputType&gt; (*)(HTMLInputElement&amp;);
&gt; +using InputTypeFactoryMap = HashMap&lt;AtomicString, InputTypeFactoryFunction, CaseFoldingHash&gt;;

Looks like the version of Visual Studio that we support do not support this syntax yet; we need to use old fashioned typedef here instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944070</commentid>
    <comment_count>18</comment_count>
      <attachid>215303</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-10-28 07:12:25 -0700</bug_when>
    <thetext>Created attachment 215303
EWS try</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944121</commentid>
    <comment_count>19</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-10-28 09:38:44 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Created an attachment (id=215303) [details]
&gt; EWS try

Using an unrolled loop somehow helped, apparently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944124</commentid>
    <comment_count>20</comment_count>
      <attachid>215314</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-10-28 09:51:18 -0700</bug_when>
    <thetext>Created attachment 215314
Patch

Uploading for a final(?) review, thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944134</commentid>
    <comment_count>21</comment_count>
      <attachid>215314</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-28 10:08:03 -0700</bug_when>
    <thetext>Comment on attachment 215314
Patch

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

&gt; Source/WebCore/html/InputType.cpp:110
&gt; +        { RuntimeEnabledFeatures::sharedFeatures().inputTypeDateEnabled(),
&gt; +            &amp;InputTypeNames::date, &amp;createInputType&lt;DateInputType&gt; },

This RuntimeEnabledFeatures part isn’t great. Because we are calling functions like RuntimeEnabledFeatures::sharedFeatures().inputTypeDateEnabled() to compute values in the array, this inputTypes array won’t be put into constant data. So there will be a bunch of code compiled just to create the array. To get the improvement we are looking for by creating the array, we don’t want any code to have to run to create the array. The way to fix that would be to use pointer to member function to store RuntimeEnabledFeatures::inputTypeDateEnabled in the array and then call it inside the loop. We would store a nullptr for non-conditional features. But pointer to member function is pretty awkward to use.

I’d like to see us consider dropping RuntimeEnabledFeatures entirely. It makes things like this that should be simple unnecessarily complex. If the RuntimeEnabledFeatures object was instead a namespace, then these would be plain functions, not member functions, which would help a little.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944186</commentid>
    <comment_count>22</comment_count>
      <attachid>215324</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-10-28 12:38:02 -0700</bug_when>
    <thetext>Created attachment 215324
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944308</commentid>
    <comment_count>23</comment_count>
      <attachid>215324</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-28 21:18:46 -0700</bug_when>
    <thetext>Comment on attachment 215324
Patch

Clearing flags on attachment: 215324

Committed r158171: &lt;http://trac.webkit.org/changeset/158171&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944309</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-28 21:18:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214851</attachid>
            <date>2013-10-22 06:34:50 -0700</date>
            <delta_ts>2013-10-22 06:39:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123160-20131022063448.patch</filename>
            <type>text/plain</type>
            <size>45761</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3Nzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMxN2NmZmJhZTUxYjNj
NjZiNjFlYWZjYTIwMjM4YWE1OTRiZDVhZi4uNWM5YmRiMzUzNmJkOGJlMzEyOTQ3M2Y0NjgxODk0
Zjc0M2IxMGFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEzLTEwLTIyICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBIVE1MIGlucHV0IHR5
cGUgb2JqZWN0cyBzaG91bGQgYmUgbWFuYWdlZCB0aHJvdWdoIHN0ZDo6dW5pcXVlX3B0cgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTYwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgSW5w
dXRUeXBlIHN1YmNsYXNzZXMgY3JlYXRlIG5ldyBpbnN0YW5jZXMgd3JhcHBlZCBpbiBzdGQ6OnVu
aXF1ZV9wdHIgaW5zdGVhZCBvZiBPd25QdHIuCisgICAgICAgIElucHV0VHlwZTo6Y3JlYXRlKCkg
bm93IHVzZXMgYSBOZXZlckRlc3Ryb3llZCBJbnB1dFR5cGVGYWN0b3J5TWFwIHRoYXQgZ2V0cyBw
b3B1bGF0ZWQgd2hlbiB0aGUgbWV0aG9kCisgICAgICAgIGlzIGZpcnN0IGNhbGxlZCBhbmQgdGhl
IG1hcCBpcyBzdGlsbCBlbXB0eS4gVGhlIHJlcXVlc3RlZCBmYWN0b3J5IGlzIHVzZWQgdG8gY3Jl
YXRlIHRoZSBuZXcgSW5wdXRUeXBlCisgICAgICAgIG9iamVjdCBpZiB0aGUgcmVxdWVzdGVkIHR5
cGUgd2FzIGZvdW5kIGluIHRoZSBtYXAsIGFuZCBUZXh0SW5wdXRUeXBlOjpjcmVhdGUgaXMgdXNl
ZCBvdGhlcndpc2UuCisKKyAgICAgICAgKiBodG1sL0J1dHRvbklucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCdXR0b25JbnB1dFR5cGU6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9C
dXR0b25JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNoZWNrYm94SW5wdXRUeXBlOjpjcmVhdGUpOgorICAgICAgICAq
IGh0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpjcmVhdGUpOgorICAgICAg
ICAqIGh0bWwvQ29sb3JJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0VHlwZTo6Y3JlYXRlKToKKyAgICAgICAg
KiBodG1sL0RhdGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lSW5wdXRUeXBlOjpjcmVhdGUpOgorICAg
ICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVUaW1l
TG9jYWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVMb2NhbElucHV0
VHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVt
YWlsSW5wdXRUeXBlOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUlucHV0VHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6dXBkYXRlVHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SGlkZGVuSW5wdXRUeXBlOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5w
dXRUeXBlLmg6CisgICAgICAgICogaHRtbC9JbWFnZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL0ltYWdlSW5w
dXRUeXBlLmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cG9wdWxhdGVJbnB1dFR5cGVGYWN0b3J5TWFwKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6Y3JlYXRlVGV4dCk6
CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpjcmVhdGUpOgorICAg
ICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6OmNyZWF0ZSk6Cisg
ICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1Bhc3N3b3Jk
SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3N3b3JkSW5wdXRUeXBlOjpjcmVh
dGUpOgorICAgICAgICAqIGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1s
L1JhZGlvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhZGlvSW5wdXRUeXBlOjpj
cmVhdGUpOgorICAgICAgICAqIGh0bWwvUmFkaW9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1s
L1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpj
cmVhdGUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1s
L1Jlc2V0SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc2V0SW5wdXRUeXBlOjpj
cmVhdGUpOgorICAgICAgICAqIGh0bWwvUmVzZXRJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1s
L1NlYXJjaElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hJbnB1dFR5cGU6
OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9TZWFyY2hJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBo
dG1sL1N1Ym1pdElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJtaXRJbnB1dFR5
cGU6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9TdWJtaXRJbnB1dFR5cGUuaDoKKyAgICAgICAg
KiBodG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZWxlcGhv
bmVJbnB1dFR5cGU6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL1RleHRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dElucHV0VHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL1RleHRJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlt
ZUlucHV0VHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuaDoKKyAg
ICAgICAgKiBodG1sL1VSTElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkxJbnB1
dFR5cGU6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9VUkxJbnB1dFR5cGUuaDoKKyAgICAgICAg
KiBodG1sL1dlZWtJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vla0lucHV0VHlw
ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5cGUuaDoKKwogMjAxMy0xMC0y
MSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV0lOXSBQ
cm9wZXJseSBzdXBwb3J0IHJldmVyc2UgYW5pbWF0aW9ucyB3aXRob3V0IG5lZWRpbmcgc29mdHdh
cmUgZmFsbGJhY2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5jcHAKaW5kZXgg
OWNlMjgwYzg1MjRiOWFiY2FkOWM1ZDMzYjNjYTI3MjlmYTEzZmQ1Yi4uYzliMzI5NmJmNjc2ZDk5
NGM1NTIyZTIwZmM4NDMyMTgxOTllNmYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9CdXR0b25JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5w
dXRUeXBlLmNwcApAQCAtMzIsMTMgKzMyLDEyIEBACiAjaW5jbHVkZSAiQnV0dG9uSW5wdXRUeXBl
LmgiCiAKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElucHV0VHlwZT4gQnV0dG9u
SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5pcXVl
X3B0cjxJbnB1dFR5cGU+IEJ1dHRvbklucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBCdXR0b25JbnB1dFR5cGUoZWxl
bWVudCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8QnV0dG9uSW5wdXRUeXBlPihuZXcg
QnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBCdXR0
b25JbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0
b25JbnB1dFR5cGUuaAppbmRleCBiNGU5NDgwNTk2ZmQzMDkzNThmOTJmOTNkODc5ZmFiMTEzNTcz
NWFhLi5mY2ZiM2VkZDIwYzA1NDliNTg2ZTk1MGUyZTI3YTdhZGIzMjhlMjQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBCdXR0b25JbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUJ1dHRvbklucHV0
VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50Jik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IGNy
ZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgQnV0dG9uSW5wdXRUeXBl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50
KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAKaW5kZXggMGVj
NGQxZmIyMzQ5NGExNDg2MGVlMjUzMzA1ODk4OThmYzkzZmNlMy4uMWNiOWIyYWVjMjFhNTYzZGUy
YTJhNTg2YzFkZThhMDFmZDMwNDAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9D
aGVja2JveElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElu
cHV0VHlwZS5jcHAKQEAgLTM2LDEzICszNiwxMiBAQAogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVz
LmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmlu
Z3MuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLU93blB0cjxJbnB1dFR5cGU+IENoZWNrYm94SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IENoZWNrYm94SW5w
dXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICByZXR1cm4g
YWRvcHRQdHIobmV3IENoZWNrYm94SW5wdXRUeXBlKGVsZW1lbnQpKTsKKyAgICByZXR1cm4gc3Rk
Ojp1bmlxdWVfcHRyPENoZWNrYm94SW5wdXRUeXBlPihuZXcgQ2hlY2tib3hJbnB1dFR5cGUoZWxl
bWVudCkpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIENoZWNrYm94SW5wdXRUeXBlOjpmb3Jt
Q29udHJvbFR5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVj
a2JveElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5o
CmluZGV4IDQ1YjNmODMyNTFjNDliYmViNWI2MDM3ZTUxMTU2NjczYTg1MmVkOTQuLjg5MmVjZmZm
M2MzNTNjNTM2MmNkOTllZjUwZjkxMjkzMzRmMjE4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0No
ZWNrYm94SW5wdXRUeXBlLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBDaGVja2JveElucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hlY2thYmxlSW5wdXRUeXBl
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1
dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBDaGVja2JveElucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IGMzMjVmYzg1
ZWYxMTEwMmZjNjMyZWFkM2Y4YWU3ZWZiMWM5ZWE2YmEuLjIwYzBkODllNGUxMGJjMTAxZTY5MzQ4
MWMxYTYxMjViZmJjMzgxNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3Bw
CkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNj
cmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNjYsOSArNjUsOSBAQCBzdGF0aWMgYm9vbCBpc1ZhbGlkQ29sb3JT
dHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICByZXR1cm4gY29sb3IuaXNWYWxpZCgpICYm
ICFjb2xvci5oYXNBbHBoYSgpOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBDb2xvcklucHV0VHlw
ZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5w
dXRUeXBlPiBDb2xvcklucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDb2xvcklucHV0VHlwZShlbGVtZW50KSk7Cisg
ICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDb2xvcklucHV0VHlwZT4obmV3IENvbG9ySW5wdXRU
eXBlKGVsZW1lbnQpKTsKIH0KIAogQ29sb3JJbnB1dFR5cGU6On5Db2xvcklucHV0VHlwZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKaW5kZXggMDBhM2Y1YjI1MTU5N2RlZDM2OTQy
YzY5NmYyOTQ4ODY5MzhkNGVlNy4uMjIwYTJkZTY5MzM2NDQxMzA1Mjk1YmM5MjQyYTQ0OGE4YmM5
MTZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaApAQCAtMzksNyArMzksNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbG9ySW5wdXRUeXBlIDogcHVibGljIEJh
c2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLCBwdWJsaWMgQ29sb3JDaG9vc2VyQ2xpZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVs
ZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlKEhU
TUxJbnB1dEVsZW1lbnQmKTsKICAgICB2aXJ0dWFsIH5Db2xvcklucHV0VHlwZSgpOwogCiAgICAg
Ly8gQ29sb3JDaG9vc2VyQ2xpZW50IGltcGxlbWVudGF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0
ZUlucHV0VHlwZS5jcHAKaW5kZXggMTJmYTA0MDkzOTYxODE1ZDlhYmU5NTk2ZWQ5NTEyZjJlNDIw
OTNkMS4uZTJiYjNkYTdiODYwYjU0ZjNhODAyMjU4NjY5ZDVkMDE0MDIwZWVmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAi
SFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklu
cHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC01MSw5ICs1MCw5IEBAIGlubGluZSBEYXRlSW5wdXRUeXBlOjpEYXRl
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7CiB9CiAKLU93blB0cjxJbnB1
dFR5cGU+IERhdGVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQor
c3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gRGF0ZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1
dEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRlSW5wdXRU
eXBlKGVsZW1lbnQpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPERhdGVJbnB1dFR5cGU+
KG5ldyBEYXRlSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIAogdm9pZCBEYXRlSW5wdXRUeXBlOjph
dHRhY2goKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAppbmRleCA0YTBjMjNkMTllMTFm
ZTNkZWZlZDgwZDhlMDdkN2JjZjBlMzE5ZjJjLi40OWEzYjdhNmExOGE0Yjc1MWU5NTMxYWM5ZGQz
YWVlMmU2ZDQ3YmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaApAQCAtMzgsNyAr
MzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVJbnB1dFR5cGUgOiBwdWJs
aWMgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0
YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYp
OwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IERhdGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVu
dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcAppbmRleCAxMWY3
ZTllYWI4MWRhOWZjYWI5N2I5ZGQ1NTI5ZDhjZjk1ODk5ZWJhLi45MTNmYTY4ZGRjNDY3ZGEwNDBi
NDFkM2MxOTc0Njg1ZjYwZTI1MzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5w
dXRUeXBlLmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00
Nyw5ICs0Niw5IEBAIHN0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVEZWZhdWx0U3RlcCA9IDYwOwog
c3RhdGljIGNvbnN0IGludCBkYXRlVGltZURlZmF1bHRTdGVwQmFzZSA9IDA7CiBzdGF0aWMgY29u
c3QgaW50IGRhdGVUaW1lU3RlcFNjYWxlRmFjdG9yID0gMTAwMDsKIAotT3duUHRyPElucHV0VHlw
ZT4gRGF0ZVRpbWVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQor
c3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gRGF0ZVRpbWVJbnB1dFR5cGU6OmNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0ZVRp
bWVJbnB1dFR5cGUoZWxlbWVudCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8RGF0ZVRp
bWVJbnB1dFR5cGU+KG5ldyBEYXRlVGltZUlucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKIHZvaWQg
RGF0ZVRpbWVJbnB1dFR5cGU6OmF0dGFjaCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5w
dXRUeXBlLmgKaW5kZXggMjBmNGRkZjkxZDBiN2JlZjVhOTExMDcwMGRkMmE2MmNhNzA0YzkyMi4u
MDc1MTBhNTNkZWQ5Mzk3YmM1NTA0Nzk5NDMwOTE3YWFkZjM4ODA5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIERhdGVUaW1lSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0
VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKICAg
ICBleHBsaWNpdCBEYXRlVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6
IEJhc2VEYXRlVGltZUlucHV0VHlwZShlbGVtZW50KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IDU1ZDRkMDkzMDYzMjlkODdkNTI3
ZDcyNjE4MGE2MmIzODc1ZTkyNzkuLjRjM2NkNTUxYTE2Y2RhMzRjYTk2NTk4MWFlMDE1OGFmMmY0
Y2IzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBl
LmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDYsOSAr
NDUsOSBAQCBzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lTG9jYWxEZWZhdWx0U3RlcCA9IDYwOwog
c3RhdGljIGNvbnN0IGludCBkYXRlVGltZUxvY2FsRGVmYXVsdFN0ZXBCYXNlID0gMDsKIHN0YXRp
YyBjb25zdCBpbnQgZGF0ZVRpbWVMb2NhbFN0ZXBTY2FsZUZhY3RvciA9IDEwMDA7CiAKLU93blB0
cjxJbnB1dFR5cGU+IERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KQorc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gRGF0ZVRpbWVMb2NhbElu
cHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBEYXRlVGltZUxvY2FsSW5wdXRUeXBlKGVsZW1lbnQpKTsKKyAgICByZXR1
cm4gc3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lTG9jYWxJbnB1dFR5cGU+KG5ldyBEYXRlVGltZUxv
Y2FsSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIAogdm9pZCBEYXRlVGltZUxvY2FsSW5wdXRUeXBl
OjphdHRhY2goKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2Fs
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUu
aAppbmRleCA2OWYyYmJhNjM5MjdhODkzNDE1YWQ2YzBkYzMxNDJkMzQ2NGUzMWRkLi5jZWQ5OTg0
NzlmZDJjZWE1ZTQxYmI0ODRhMmVjMjQxNWEyMmMxZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIERhdGVUaW1lTG9jYWxJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNo
b29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25Q
dHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOwogCiBwcml2
YXRlOgogICAgIGV4cGxpY2l0IERhdGVUaW1lTG9jYWxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVu
dCYgZWxlbWVudCkgOiBCYXNlRGF0ZVRpbWVMb2NhbElucHV0VHlwZShlbGVtZW50KSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKaW5kZXggMjdkZThkNDVmNmQ4ZjAwYWI2
ODU2ZWI2ZDVjYTM0ZmM2MDFlZWNkOC4uODAzNGM2ZTU3ZWZiZmViMGZmZGVkMjYxMzJlYTNjZDM1
ZWQ2MzRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKQEAgLTI5LDcg
KzI5LDYgQEAKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKICNpbmNsdWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgotI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Myw5ICs1Miw5IEBAIHN0YXRpYyBib29sIGlzVmFsaWRF
bWFpbEFkZHJlc3MoY29uc3QgU3RyaW5nJiBhZGRyZXNzKQogICAgIHJldHVybiAhbWF0Y2hPZmZz
ZXQgJiYgbWF0Y2hMZW5ndGggPT0gYWRkcmVzc0xlbmd0aDsKIH0KIAotT3duUHRyPElucHV0VHlw
ZT4gRW1haWxJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQorc3Rk
Ojp1bmlxdWVfcHRyPElucHV0VHlwZT4gRW1haWxJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgRW1haWxJbnB1dFR5
cGUoZWxlbWVudCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8RW1haWxJbnB1dFR5cGU+
KG5ldyBFbWFpbElucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKIHZvaWQgRW1haWxJbnB1dFR5cGU6
OmF0dGFjaCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmgKaW5kZXggZTBkMjEzMTg2
ZDk5YjhlMDVjNDFlYmVkYjA4MjIwN2YwYmI0ZGJmOS4uMjNhMjhjMTI4M2Y5MjQ0NDU2MzBiMTdi
YzA5ZDg2MzY3YjNkMTM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaApAQCAt
MzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVtYWlsSW5wdXRUeXBl
IDogcHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRy
PElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBFbWFpbElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5jcHAKaW5kZXggZDI5ZmExMjU2YmU3N2UwZjVmNzMwY2ZmN2FkNDAwNGRkZmU1NThj
MC4uMDY1YjdmMTczZGVkOWVkNjgxZDY4MWIxM2Q5ZThiYTRiMGQ0NTExZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSAiUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2wuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCkBAIC04NSw5ICs4NCw5IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgVXBsb2FkQnV0
dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogICAgIHJldHVybiBwc2V1ZG9JZDsK
IH0KIAotT3duUHRyPElucHV0VHlwZT4gRmlsZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBGaWxlSW5wdXRUeXBl
OjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IEZpbGVJbnB1dFR5cGUoZWxlbWVudCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9w
dHI8RmlsZUlucHV0VHlwZT4obmV3IEZpbGVJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCiBGaWxl
SW5wdXRUeXBlOjpGaWxlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmluZGV4IDZhNGFjOTM1NDBhMmY4NmVmOTMyYTA4NzQy
MDdhNjg1YWZlNmRlODkuLmQzZDQ4MTIwNWJjNGIxMWM1N2MzMjdhYjk5YjQ4MWE1M2JhNGVkMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNz
IEZpbGVMaXN0OwogCiBjbGFzcyBGaWxlSW5wdXRUeXBlIDogcHVibGljIEJhc2VDbGlja2FibGVX
aXRoS2V5SW5wdXRUeXBlLCBwcml2YXRlIEZpbGVDaG9vc2VyQ2xpZW50LCBwcml2YXRlIEZpbGVJ
Y29uTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4g
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElu
cHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKICAgICB2aXJ0dWFsIH5GaWxlSW5w
dXRUeXBlKCk7CiAKICAgICBzdGF0aWMgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+IGZpbGVz
RnJvbUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggNzI1NmYyZTUzYzBlZjk0Mzg4MDhl
NTBmYjNjYjdhYTJmZTAxN2ZkNS4uMjgxN2U4NzczN2ZkN2QyNmY3OTU4YjAxOWFhZjQ1MTY1ZjUy
ZTBjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC00NTYs
NyArNDU2LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSkKIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVUeXBlKCkKIHsKLSAgICBPd25Q
dHI8SW5wdXRUeXBlPiBuZXdUeXBlID0gSW5wdXRUeXBlOjpjcmVhdGUoKnRoaXMsIGZhc3RHZXRB
dHRyaWJ1dGUodHlwZUF0dHIpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBuZXdU
eXBlID0gSW5wdXRUeXBlOjpjcmVhdGUoKnRoaXMsIGZhc3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIp
KTsKICAgICBib29sIGhhZFR5cGUgPSBtX2hhc1R5cGU7CiAgICAgbV9oYXNUeXBlID0gdHJ1ZTsK
ICAgICBpZiAobV9pbnB1dFR5cGUtPmZvcm1Db250cm9sVHlwZSgpID09IG5ld1R5cGUtPmZvcm1D
b250cm9sVHlwZSgpKQpAQCAtNDgxLDcgKzQ4MSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6
dXBkYXRlVHlwZSgpCiAgICAgaWYgKHdhc0F0dGFjaGVkKQogICAgICAgICBTdHlsZTo6ZGV0YWNo
UmVuZGVyVHJlZSgqdGhpcyk7CiAKLSAgICBtX2lucHV0VHlwZSA9IG5ld1R5cGUucmVsZWFzZSgp
OworICAgIG1faW5wdXRUeXBlID0gc3RkOjptb3ZlKG5ld1R5cGUpOwogICAgIG1faW5wdXRUeXBl
LT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCAzNDUyNmJlMjAyOGE2MTBiN2Zh
MDcxYzY0MDliMzdjZDBlMThhZWY2Li5lZmYzZmE5MTJlNDRjOTZlMDA1ZjMwOWFiNTI2OGI2ZGQy
N2E0N2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtNDQyLDcg
KzQ0Miw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBib29sIG1f
aGFzVG91Y2hFdmVudEhhbmRsZXIgOiAxOwogI2VuZGlmCi0gICAgT3duUHRyPElucHV0VHlwZT4g
bV9pbnB1dFR5cGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gbV9pbnB1dFR5cGU7
CiAgICAgLy8gVGhlIEltYWdlTG9hZGVyIG11c3QgYmUgb3duZWQgYnkgdGhpcyBlbGVtZW50IGJl
Y2F1c2UgdGhlIGxvYWRlciBjb2RlIGFzc3VtZXMKICAgICAvLyB0aGF0IGl0IGxpdmVzIGFzIGxv
bmcgYXMgaXRzIG93bmluZyBlbGVtZW50IGxpdmVzLiBJZiB3ZSBtb3ZlIHRoZSBsb2FkZXIgaW50
bwogICAgIC8vIHRoZSBJbWFnZUlucHV0IG9iamVjdCB3ZSBtYXkgZGVsZXRlIHRoZSBsb2FkZXIg
d2hpbGUgdGhpcyBlbGVtZW50IGxpdmVzIG9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1
dFR5cGUuY3BwCmluZGV4IDgzYTYzZmIxYzM4YTM5Yzg3MWRhYjM3NzljMTIwYmI1ZjEzODZjMjMu
LmFjM2I4YzVjMTU2OTE4ZDEzNDZiYmRjNzdkYjIzNTUyYTk1ODhkYTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKQEAgLTM3LDE1ICszNywxNCBAQAogI2luY2x1ZGUg
IkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJ
bnB1dFR5cGVOYW1lcy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotT3duUHRyPElucHV0
VHlwZT4gSGlkZGVuSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkK
K3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IEhpZGRlbklucHV0VHlwZTo6Y3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBIaWRkZW5J
bnB1dFR5cGUoZWxlbWVudCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SGlkZGVuSW5w
dXRUeXBlPihuZXcgSGlkZGVuSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBIaWRkZW5JbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAppbmRleCBlMzg3YTFhMzUwOTU0NDI3ZDYxZWIyMGZk
YzRkZmQ2NGE1MWQ1ODZmLi5kMTg4NDgxMTNlMjA1MTEyY2ViMzFmMTZmYjlkMGY1Y2ViNjM0N2Vi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKQEAgLTM3LDcgKzM3LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIaWRkZW5JbnB1dFR5cGUgOiBwdWJsaWMgSW5w
dXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhU
TUxJbnB1dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4g
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBIaWRk
ZW5JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBJbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDg5MzU2ZDdl
ZDIwMDkzOTdkYWU0NDc5ZWY0MzhkZmJmYWJkODA3ODMuLjYyZGVmMThjNzcwNDdhMmExMjNjYWVl
NzUwODgxN2ZmN2UwYTI2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3Bw
CkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRl
ICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKLSNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ0LDkgKzQzLDkgQEAg
aW5saW5lIEltYWdlSW5wdXRUeXBlOjpJbWFnZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50KQogewogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBJbWFnZUlucHV0VHlwZTo6Y3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBJ
bWFnZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBJbWFnZUlucHV0VHlwZShlbGVtZW50KSk7CisgICAgcmV0dXJu
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUlucHV0VHlwZT4obmV3IEltYWdlSW5wdXRUeXBlKGVsZW1l
bnQpKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBJbWFnZUlucHV0VHlwZTo6Zm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaAppbmRleCA0YTZi
NWJhMzZiNTI0NWZlNThiMDM0ZTdjMTU3ZDFkYWZlOGQwNzI0Li41NTIxZTQ3MThjNjJiYzQxNDUy
ODIxYjU2OWM1NmI3MWM5MWI3NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lt
YWdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5o
CkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW1hZ2VJbnB1
dFR5cGUgOiBwdWJsaWMgQmFzZUJ1dHRvbklucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW1hZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IDkwMDc4YmJjOTgzODlkODlkMDU1ZTNm
NjJiNjkwNTA0YTRmMWUxMWEuLjY2OTZjMzJkNTUxZTA4YzU5ZjRmNWQzNjQxZTRiNjI3YjE5N2Ux
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTg0LDcyICs4NCw3MSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIAotdHlwZWRlZiBPd25QdHI8SW5wdXRUeXBlPiAoKklucHV0VHlwZUZhY3RvcnlG
dW5jdGlvbikoSFRNTElucHV0RWxlbWVudCYpOwordHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8SW5w
dXRUeXBlPiAoKklucHV0VHlwZUZhY3RvcnlGdW5jdGlvbikoSFRNTElucHV0RWxlbWVudCYpOwog
dHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywgSW5wdXRUeXBlRmFjdG9yeUZ1bmN0aW9uLCBD
YXNlRm9sZGluZ0hhc2g+IElucHV0VHlwZUZhY3RvcnlNYXA7CiAKLXN0YXRpYyBPd25QdHI8SW5w
dXRUeXBlRmFjdG9yeU1hcD4gY3JlYXRlSW5wdXRUeXBlRmFjdG9yeU1hcCgpCitzdGF0aWMgdm9p
ZCBwb3B1bGF0ZUlucHV0VHlwZUZhY3RvcnlNYXAoSW5wdXRUeXBlRmFjdG9yeU1hcCYgbWFwKQog
ewotICAgIE93blB0cjxJbnB1dFR5cGVGYWN0b3J5TWFwPiBtYXAgPSBhZG9wdFB0cihuZXcgSW5w
dXRUeXBlRmFjdG9yeU1hcCk7Ci0KICAgICAvLyBGSVhNRTogUmVtb3ZlIHVubmVjZXNzYXJ5ICcm
J3MgZnJvbSB0aGUgZm9sbG93aW5nIG1hcC5hZGQgb3BlcmF0aW9ucwogICAgIC8vIG9uY2Ugd2Ug
c3dpdGNoIHRvIGEgbm9uLWJyb2tlbiBWaXN1YWwgU3R1ZGlvIGNvbXBpbGVyLiAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTIzNQotICAgIG1hcC0+YWRkKElucHV0
VHlwZU5hbWVzOjpidXR0b24oKSwgJkJ1dHRvbklucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAt
PmFkZChJbnB1dFR5cGVOYW1lczo6Y2hlY2tib3goKSwgJkNoZWNrYm94SW5wdXRUeXBlOjpjcmVh
dGUpOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OmJ1dHRvbigpLCAmQnV0dG9uSW5wdXRU
eXBlOjpjcmVhdGUpOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OmNoZWNrYm94KCksICZD
aGVja2JveElucHV0VHlwZTo6Y3JlYXRlKTsKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikK
LSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6Y29sb3IoKSwgJkNvbG9ySW5wdXRUeXBlOjpj
cmVhdGUpOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OmNvbG9yKCksICZDb2xvcklucHV0
VHlwZTo6Y3JlYXRlKTsKICNlbmRpZgogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEUpCiAgICAg
aWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5wdXRUeXBlRGF0
ZUVuYWJsZWQoKSkKLSAgICAgICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmRhdGUoKSwgJkRh
dGVJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OmRh
dGUoKSwgJkRhdGVJbnB1dFR5cGU6OmNyZWF0ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZURhdGVUaW1lRW5hYmxlZCgpKQotICAgICAgICBt
YXAtPmFkZChJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUoKSwgJkRhdGVUaW1lSW5wdXRUeXBlOjpj
cmVhdGUpOworICAgICAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpkYXRldGltZSgpLCAmRGF0
ZVRpbWVJbnB1dFR5cGU6OmNyZWF0ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9E
QVRFVElNRUxPQ0FMKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLmlucHV0VHlwZURhdGVUaW1lTG9jYWxFbmFibGVkKCkpCi0gICAgICAgIG1hcC0+YWRk
KElucHV0VHlwZU5hbWVzOjpkYXRldGltZWxvY2FsKCksICZEYXRlVGltZUxvY2FsSW5wdXRUeXBl
OjpjcmVhdGUpOworICAgICAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpkYXRldGltZWxvY2Fs
KCksICZEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpjcmVhdGUpOwogI2VuZGlmCi0gICAgbWFwLT5h
ZGQoSW5wdXRUeXBlTmFtZXM6OmVtYWlsKCksICZFbWFpbElucHV0VHlwZTo6Y3JlYXRlKTsKLSAg
ICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6ZmlsZSgpLCAmRmlsZUlucHV0VHlwZTo6Y3JlYXRl
KTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6aGlkZGVuKCksICZIaWRkZW5JbnB1dFR5
cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmltYWdlKCksICZJbWFn
ZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjplbWFpbCgp
LCAmRW1haWxJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6
ZmlsZSgpLCAmRmlsZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5h
bWVzOjpoaWRkZW4oKSwgJkhpZGRlbklucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElu
cHV0VHlwZU5hbWVzOjppbWFnZSgpLCAmSW1hZ2VJbnB1dFR5cGU6OmNyZWF0ZSk7CiAjaWYgRU5B
QkxFKElOUFVUX1RZUEVfTU9OVEgpCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkuaW5wdXRUeXBlTW9udGhFbmFibGVkKCkpCi0gICAgICAgIG1hcC0+YWRk
KElucHV0VHlwZU5hbWVzOjptb250aCgpLCAmTW9udGhJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAg
ICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6Om1vbnRoKCksICZNb250aElucHV0VHlwZTo6Y3Jl
YXRlKTsKICNlbmRpZgotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpudW1iZXIoKSwgJk51
bWJlcklucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6cGFz
c3dvcmQoKSwgJlBhc3N3b3JkSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0
VHlwZU5hbWVzOjpyYWRpbygpLCAmUmFkaW9JbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5h
ZGQoSW5wdXRUeXBlTmFtZXM6OnJhbmdlKCksICZSYW5nZUlucHV0VHlwZTo6Y3JlYXRlKTsKLSAg
ICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6cmVzZXQoKSwgJlJlc2V0SW5wdXRUeXBlOjpjcmVh
dGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpzZWFyY2goKSwgJlNlYXJjaElucHV0
VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6c3VibWl0KCksICZT
dWJtaXRJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OnRl
bGVwaG9uZSgpLCAmVGVsZXBob25lSW5wdXRUeXBlOjpjcmVhdGUpOworICAgIG1hcC5hZGQoSW5w
dXRUeXBlTmFtZXM6Om51bWJlcigpLCAmTnVtYmVySW5wdXRUeXBlOjpjcmVhdGUpOworICAgIG1h
cC5hZGQoSW5wdXRUeXBlTmFtZXM6OnBhc3N3b3JkKCksICZQYXNzd29yZElucHV0VHlwZTo6Y3Jl
YXRlKTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpyYWRpbygpLCAmUmFkaW9JbnB1dFR5
cGU6OmNyZWF0ZSk7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6cmFuZ2UoKSwgJlJhbmdl
SW5wdXRUeXBlOjpjcmVhdGUpOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OnJlc2V0KCks
ICZSZXNldElucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpz
ZWFyY2goKSwgJlNlYXJjaElucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElucHV0VHlw
ZU5hbWVzOjpzdWJtaXQoKSwgJlN1Ym1pdElucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRk
KElucHV0VHlwZU5hbWVzOjp0ZWxlcGhvbmUoKSwgJlRlbGVwaG9uZUlucHV0VHlwZTo6Y3JlYXRl
KTsKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZVRpbWVFbmFibGVkKCkpCi0gICAgICAg
IG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjp0aW1lKCksICZUaW1lSW5wdXRUeXBlOjpjcmVhdGUp
OworICAgICAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjp0aW1lKCksICZUaW1lSW5wdXRUeXBl
OjpjcmVhdGUpOwogI2VuZGlmCi0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OnVybCgpLCAm
VVJMSW5wdXRUeXBlOjpjcmVhdGUpOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OnVybCgp
LCAmVVJMSW5wdXRUeXBlOjpjcmVhdGUpOwogI2lmIEVOQUJMRShJTlBVVF9UWVBFX1dFRUspCiAg
ICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5wdXRUeXBl
V2Vla0VuYWJsZWQoKSkKLSAgICAgICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OndlZWsoKSwg
JldlZWtJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6
OndlZWsoKSwgJldlZWtJbnB1dFR5cGU6OmNyZWF0ZSk7CiAjZW5kaWYKICAgICAvLyBObyBuZWVk
IHRvIHJlZ2lzdGVyICJ0ZXh0IiBiZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0IHR5cGUuCi0KLSAg
ICByZXR1cm4gbWFwOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBJbnB1dFR5cGU6OmNyZWF0ZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGVOYW1lKQor
c3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxl
bWVudCYgZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlTmFtZSkKIHsKLSAgICBzdGF0
aWMgY29uc3QgSW5wdXRUeXBlRmFjdG9yeU1hcCogZmFjdG9yeU1hcCA9IGNyZWF0ZUlucHV0VHlw
ZUZhY3RvcnlNYXAoKS5sZWFrUHRyKCk7Ci0gICAgT3duUHRyPElucHV0VHlwZT4gKCpmYWN0b3J5
KShIVE1MSW5wdXRFbGVtZW50JikgPSB0eXBlTmFtZS5pc0VtcHR5KCkgPyAwIDogZmFjdG9yeU1h
cC0+Z2V0KHR5cGVOYW1lKTsKLSAgICBpZiAoIWZhY3RvcnkpCi0gICAgICAgIGZhY3RvcnkgPSBU
ZXh0SW5wdXRUeXBlOjpjcmVhdGU7Ci0gICAgcmV0dXJuIGZhY3RvcnkoZWxlbWVudCk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPElucHV0VHlwZUZhY3RvcnlNYXA+IGZhY3RvcnlNYXA7Cisg
ICAgaWYgKGZhY3RvcnlNYXAuZ2V0KCkuaXNFbXB0eSgpKQorICAgICAgICBwb3B1bGF0ZUlucHV0
VHlwZUZhY3RvcnlNYXAoZmFjdG9yeU1hcCk7CisKKyAgICBJbnB1dFR5cGVGYWN0b3J5RnVuY3Rp
b24gZmFjdG9yeSA9IHR5cGVOYW1lLmlzRW1wdHkoKSA/IDAgOiBmYWN0b3J5TWFwLmdldCgpLmdl
dCh0eXBlTmFtZSk7CisgICAgaWYgKGZhY3RvcnkpCisgICAgICAgIHJldHVybiBmYWN0b3J5KGVs
ZW1lbnQpOworICAgIHJldHVybiBUZXh0SW5wdXRUeXBlOjpjcmVhdGUoZWxlbWVudCk7CiB9CiAK
LU93blB0cjxJbnB1dFR5cGU+IElucHV0VHlwZTo6Y3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KQorc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVhdGVU
ZXh0KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgcmV0dXJuIFRleHRJbnB1dFR5
cGU6OmNyZWF0ZShlbGVtZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IDUyNDcw
YjE0NDAwZDcyYjI0NzY5NDM3OWQ2NGYxOTQyYmQ0NDNhY2UuLjE2NWNmY2QzMmZmMDk0ODk3MmM4
YjY3YjJmNGU3ZDRmM2IwYzdkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtNzQsOCAr
NzQsOCBAQCBjbGFzcyBJbnB1dFR5cGUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRF
bGVtZW50JiwgY29uc3QgQXRvbWljU3RyaW5nJik7Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5
cGU+IGNyZWF0ZVRleHQoSFRNTElucHV0RWxlbWVudCYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYsIGNvbnN0IEF0b21pY1N0
cmluZyYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBjcmVhdGVUZXh0
KEhUTUxJbnB1dEVsZW1lbnQmKTsKICAgICB2aXJ0dWFsIH5JbnB1dFR5cGUoKTsKIAogICAgIHN0
YXRpYyBib29sIHRoZW1lU3VwcG9ydHNEYXRhTGlzdFVJKElucHV0VHlwZSopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCA0OGVhZDFmZThlMjQxNGI2NTUxZjQ3YjMz
ZjU5Y2I3NGNiYjUxNWQxLi5jMjNiNWI1OGQ0MDAwZjFiZjNlZmM1NDAxYmQ0MzFmMWI3NmFlYmE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcApAQCAtMzksNyArMzksNiBA
QAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9EYXRlTWF0aC5o
PgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw5ICs0OCw5IEBAIHN0YXRpYyBjb25z
dCBpbnQgbW9udGhEZWZhdWx0U3RlcCA9IDE7CiBzdGF0aWMgY29uc3QgaW50IG1vbnRoRGVmYXVs
dFN0ZXBCYXNlID0gMDsKIHN0YXRpYyBjb25zdCBpbnQgbW9udGhTdGVwU2NhbGVGYWN0b3IgPSAx
OwogCi1Pd25QdHI8SW5wdXRUeXBlPiBNb250aElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBNb250aElucHV0VHlw
ZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBNb250aElucHV0VHlwZShlbGVtZW50KSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVl
X3B0cjxNb250aElucHV0VHlwZT4obmV3IE1vbnRoSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIAog
dm9pZCBNb250aElucHV0VHlwZTo6YXR0YWNoKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTW9udGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5
cGUuaAppbmRleCA5YjU0ZTBiNjA0YTFkMjNmMzhlNjMwYWNlMzA2MTMyZDFiY2QzZWQ1Li4xMWYx
M2E2NDQ1YjA4YzY2YjEwZDg3NDg3YzdkMDY5OWIwNWM4NzFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9N
b250aElucHV0VHlwZS5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgTW9udGhJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJ
bnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUo
SFRNTElucHV0RWxlbWVudCYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBl
PiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1v
bnRoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZU1vbnRoSW5wdXRU
eXBlKGVsZW1lbnQpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCmlu
ZGV4IDZmNTVkZmI5YzAyNDM5NmVkODI5MDAwMzI0ZWYyYzlmZjRhYmFhMzguLmY4ZmQ3NDM5Y2Q4
MGE3Nzk4MTQyNTk2NWY3NDQxYjFjYzdiYTIyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJl
cklucHV0VHlwZS5jcHAKQEAgLTQ0LDcgKzQ0LDYgQEAKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5j
bHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTQs
OSArOTMsOSBAQCBzdGF0aWMgUmVhbE51bWJlclJlbmRlclNpemUgY2FsY3VsYXRlUmVuZGVyU2l6
ZShjb25zdCBEZWNpbWFsJiB2YWx1ZSkKICAgICByZXR1cm4gUmVhbE51bWJlclJlbmRlclNpemUo
c2l6ZU9mU2lnbiArIHNpemVPZlplcm8gLCBudW1iZXJPZlplcm9BZnRlckRlY2ltYWxQb2ludCAr
IHNpemVPZkRpZ2l0cyk7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IE51bWJlcklucHV0VHlwZTo6
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRU
eXBlPiBOdW1iZXJJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQog
ewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTnVtYmVySW5wdXRUeXBlKGVsZW1lbnQpKTsKKyAg
ICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPE51bWJlcklucHV0VHlwZT4obmV3IE51bWJlcklucHV0
VHlwZShlbGVtZW50KSk7CiB9CiAKIHZvaWQgTnVtYmVySW5wdXRUeXBlOjphdHRhY2goKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKaW5kZXggZjk5YTY2Zjc3YjQ5YTcxMzVkYmFh
YjhiNzJlOTE5ZTdhN2U0ZGRmOS4uMDYxMWYwN2UyYzQ4NGZmMjY3ZDU1MDQxZDJmMDIyODI5ZDk3
MDMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCkBAIC0zNyw3ICszNyw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTnVtYmVySW5wdXRUeXBlIDogcHVibGlj
IFRleHRGaWVsZElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5
cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6CiAgICAg
TnVtYmVySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogVGV4dEZpZWxkSW5w
dXRUeXBlKGVsZW1lbnQpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNz
d29yZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBl
LmNwcAppbmRleCBmYjU3YTNhN2Y2MjdmYTc1M2RkZmEwNjllMWJjOWJjZjgxZTU1NDE0Li5iOTE1
YjhiNDM0ZTA4NzE3NWQ3NGVjYTQ3NTUzMjU5ZDJiMjNiMDA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcApAQCAtMzYsMTMgKzM2LDEyIEBACiAjaW5jbHVkZSAi
SFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLU93blB0cjxJbnB1dFR5cGU+IFBhc3N3b3JkSW5wdXRUeXBlOjpj
cmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5
cGU+IFBhc3N3b3JkSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkK
IHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3N3b3JkSW5wdXRUeXBlKGVsZW1lbnQpKTsK
KyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFBhc3N3b3JkSW5wdXRUeXBlPihuZXcgUGFzc3dv
cmRJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFBhc3N3b3Jk
SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNz
d29yZElucHV0VHlwZS5oCmluZGV4IGVhZjE0OGVmZTZkYzcxY2YxMjk1MTYxNzBlNjlmYzRkMzk4
MTZjMzAuLmRkYTkyZGU5OWE5ODcwZmQwNjlmNzEzZTZlZjIxODhmMTg2OTljNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBQYXNzd29yZElucHV0VHlwZSA6IHB1YmxpYyBCYXNlVGV4
dElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5
cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgUGFzc3dvcmRJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShl
bGVtZW50KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAKaW5kZXggMGMy
MjQxNmFmNjU5ZTAxNTIzNTBmMjYyYjY3MmY5NDY1ZjJlOTZlMi4uYmYxN2JhZDg3N2Y1ZWZmOWVh
MTMyNTQyZDk4OGJmYmMwYzQ1NmZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9S
YWRpb0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlw
ZS5jcHAKQEAgLTMzLDE1ICszMywxNCBAQAogI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNwYXRpYWxOYXZpZ2F0aW9uLmgiCi0jaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBSYWRpb0lucHV0VHlwZTo6
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRU
eXBlPiBSYWRpb0lucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBSYWRpb0lucHV0VHlwZShlbGVtZW50KSk7CisgICAg
cmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxSYWRpb0lucHV0VHlwZT4obmV3IFJhZGlvSW5wdXRUeXBl
KGVsZW1lbnQpKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBSYWRpb0lucHV0VHlwZTo6Zm9y
bUNvbnRyb2xUeXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFk
aW9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuaAppbmRl
eCAxNDFiYzQ4NzlhODdkZWYwZTZhYzMyYjZjNTljNDYzNDY5ZmU4MTM1Li41ZDU0MWM0YjE1ZjAw
ZDQ2OTAzZDAzMGI2MDQ1ZGJlMmU0MjBhYTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhZGlvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0
VHlwZS5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmFk
aW9JbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNoZWNrYWJsZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVt
ZW50Jik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmFkaW9JbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCA4MGIzYjY1MTQ5ZDlkZDU4
YjVhNWUyNWNkMDI5NTBlOTk4NDNhZmEyLi4zM2YwYTRjYjczYTI2YjhjMmQwMWI4NzgxN2E4ZTZi
OWRkOTkyMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtNDks
NyArNDksNiBAQAogI2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogI2luY2x1ZGUgPGxpbWl0cz4KICNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
ICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogI2luY2x1ZGUgIlRvdWNoLmgiCkBAIC03OCw5ICs3
Nyw5IEBAIHN0YXRpYyBEZWNpbWFsIGVuc3VyZU1heGltdW0oY29uc3QgRGVjaW1hbCYgcHJvcG9z
ZWRWYWx1ZSwgY29uc3QgRGVjaW1hbCYgbWluaW11CiAgICAgcmV0dXJuIHByb3Bvc2VkVmFsdWUg
Pj0gbWluaW11bSA/IHByb3Bvc2VkVmFsdWUgOiBzdGQ6Om1heChtaW5pbXVtLCBmYWxsYmFja1Zh
bHVlKTsKIH0KIAotT3duUHRyPElucHV0VHlwZT4gUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KQorc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gUmFuZ2VJ
bnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgUmFuZ2VJbnB1dFR5cGUoZWxlbWVudCkpOworICAgIHJldHVybiBzdGQ6
OnVuaXF1ZV9wdHI8UmFuZ2VJbnB1dFR5cGU+KG5ldyBSYW5nZUlucHV0VHlwZShlbGVtZW50KSk7
CiB9CiAKIFJhbmdlSW5wdXRUeXBlOjpSYW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCmluZGV4IDQ4NjNlMGYxNzc2
MzhlMWE3MWY5MzI2NDhkYWJhMDk2ZjI5ZjRlMDcuLjBhYWM4N2IyZGFlYmM0ZjM3OTNhNjFiMDg4
MmY4Y2E4Y2U3ZmIwZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKQEAgLTM5
LDcgKzM5LDcgQEAgY2xhc3MgU2xpZGVyVGh1bWJFbGVtZW50OwogCiBjbGFzcyBSYW5nZUlucHV0
VHlwZSBGSU5BTCA6IHB1YmxpYyBJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25Q
dHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOwogCiBwcml2
YXRlOgogICAgIGV4cGxpY2l0IFJhbmdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5jcHAKaW5kZXggMTA1NmYxY2I2MTBmMTU3ZDNl
ZjI5NGMxMGUyODQxMTNlNTdiMDBmNS4uNGNjOGIwMGVkODIwZDkyOTkzMjA1ZmI0N2RkYmVjOWMx
M2Y2N2U3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5jcHAKQEAgLTM3LDEz
ICszNywxMiBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1
dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKLSNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU93blB0cjxJbnB1dFR5
cGU+IFJlc2V0SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0
ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IFJlc2V0SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFJlc2V0SW5wdXRU
eXBlKGVsZW1lbnQpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlc2V0SW5wdXRUeXBl
PihuZXcgUmVzZXRJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcm
IFJlc2V0SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9S
ZXNldElucHV0VHlwZS5oCmluZGV4IDQ1YTg5YWIzM2IyOTE2MzIzNzdjOTk1NDVlOWM2OTVlOTAx
NjFjMDUuLjA5Y2FjYjdjNTNkOTg1ZWQ2MTAwMjlkNjIwMTQ2ZTU3NjM2ZjA1MjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBSZXNldElucHV0VHlwZSA6IHB1YmxpYyBCYXNlQnV0dG9uSW5wdXRU
eXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBSZXNldElu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUo
ZWxlbWVudCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKaW5kZXgg
ZmM4ZGQ3NmUxZDFlNmEwYjAxYmVlYTY4ZTRlYmZjNGQ3Mjg2OTBlZS4uZmJhNzYzNmNkOGFkMzY3
ZDRiMDFiY2VmODc4ZjE3NDAxZmQwZTk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9TZWFyY2hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5w
dXRUeXBlLmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIlJlbmRlclNlYXJjaEZpZWxk
LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJF
bGVtZW50cy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTIsOSArNTEsOSBAQCBpbmxpbmUgU2VhcmNoSW5wdXRUeXBlOjpTZWFyY2hJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKIH0KIAotT3duUHRyPElucHV0
VHlwZT4gU2VhcmNoSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkK
K3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IFNlYXJjaElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTZWFyY2hJ
bnB1dFR5cGUoZWxlbWVudCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8U2VhcmNoSW5w
dXRUeXBlPihuZXcgU2VhcmNoSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIAogdm9pZCBTZWFyY2hJ
bnB1dFR5cGU6OmF0dGFjaCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJj
aElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaAppbmRl
eCA5YzBhNzVhZDM2ZjcyN2Y1OTNkYTYxMzM3ZmFmOWUwZjU2NjM0OTg1Li4yNDIxYjA2YjE2MDY3
NDIwMTJjZTRiN2JmOGM3OTk5OTA0MjExOTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1NlYXJjaElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5w
dXRUeXBlLmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9u
RWxlbWVudDsKIAogY2xhc3MgU2VhcmNoSW5wdXRUeXBlIDogcHVibGljIEJhc2VUZXh0SW5wdXRU
eXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogICAgIHZvaWQgc3RvcFNlYXJjaEV2ZW50VGltZXIo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuY3BwCmluZGV4IGRlZDQxZGJm
NWZiZjljMTAwMWU2ZjQ2ODk0NzVhYmEyMWVhMjRhZmMuLjhmM2YzNDk2OWZmNWZkNmNmMzkyMzg3
Yzg0ZDk4ZWE1Yjc0ODBiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5j
cHAKQEAgLTM4LDEzICszOCwxMiBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNp
bmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIK
LSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU93
blB0cjxJbnB1dFR5cGU+IFN1Ym1pdElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBTdWJtaXRJbnB1dFR5cGU6OmNy
ZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgU3VibWl0SW5wdXRUeXBlKGVsZW1lbnQpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRy
PFN1Ym1pdElucHV0VHlwZT4obmV3IFN1Ym1pdElucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgU3VibWl0SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKaW5kZXggZDlkODdhMTc1NDJhOTMz
ZDBjYzBlNDg4MzBiY2YzZjJhZjcwYTdkZS4uYTk2ZGZkY2IyYTUwYjdjZjZiNGYyYjUxMzZhNWY0
YmQ5MGIxZjM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5oCkBAIC0zNyw3
ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU3VibWl0SW5wdXRUeXBlIDog
cHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8
SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOwogCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IFN1Ym1pdElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RlbGVwaG9uZUlucHV0VHlwZS5jcHAKaW5kZXggMmQ4N2QyZjhkN2EwYjgxNzUxNGMzODI1NTg1
ZTAzMjRhNjRmOTVlMC4uODY3ZTI4YTFlMmVlMDc5Y2YzMTY2Zjc5YjU0ZTBiYjY0N2ExYzc4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcApAQCAtMzMsMTMg
KzMzLDEyIEBACiAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5w
dXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLU93blB0cjxJbnB1dFR5cGU+IFRlbGVwaG9uZUlucHV0VHlwZTo6Y3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBU
ZWxlcGhvbmVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewot
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGVsZXBob25lSW5wdXRUeXBlKGVsZW1lbnQpKTsKKyAg
ICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFRlbGVwaG9uZUlucHV0VHlwZT4obmV3IFRlbGVwaG9u
ZUlucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKIHZvaWQgVGVsZXBob25lSW5wdXRUeXBlOjphdHRh
Y2goKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgKaW5kZXggYWE0YWE1
MjdhNjkzZGE1MGJiMzc2NGFiMmJiNGZmOTcwMTIxN2U5ZC4uMGZlNmUzZjczZDZmMGUwZTZkMzhm
OGFhNWVjZWE0MTYzNWRkNzEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxl
cGhvbmVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0
VHlwZS5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVGVs
ZXBob25lSW5wdXRUeXBlIDogcHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1l
bnQmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBUZWxlcGhvbmVJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3BwCmluZGV4IGM1ZjNhOGZhZDUxMTMyZmZlZDFl
NzU1OTljZWNmODM4OGQyMjE5ZDUuLmFhODZjNWIyMjFlNzI3NDhmYjQyMDZmY2I1YTZkZDJjZDQ5
OTY5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmNwcApAQCAtMzMsMTUgKzMz
LDE0IEBACiAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRU
eXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLU93blB0cjxJbnB1dFR5cGU+
IFRleHRJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQorc3RkOjp1
bmlxdWVfcHRyPElucHV0VHlwZT4gVGV4dElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUZXh0SW5wdXRUeXBlKGVs
ZW1lbnQpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFRleHRJbnB1dFR5cGU+KG5ldyBU
ZXh0SW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIAogdm9pZCBUZXh0SW5wdXRUeXBlOjphdHRhY2go
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuaAppbmRleCBiYTI0Y2E5MjI2MmRhNmJjMGVm
YjNlYWU5OGRjZDZhZDdkODIyZmQ0Li5jZmY3ODEzMThlOGI3NjBhMjk1NTM5ZjZlMmEwZmU1MzVm
NTA0ZjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuaApAQCAtMzcsNyArMzcsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFRleHRJbnB1dFR5cGUgOiBwdWJsaWMgQmFz
ZVRleHRJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBj
cmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5w
dXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOwogCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IFRleHRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElu
cHV0VHlwZShlbGVtZW50KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCmlu
ZGV4IGU3NzM5MzQ5OTgzM2EzOTA1ZWI3NjZiNWMzYWIwZWY1MzczMDczYTkuLjRmYmE5YjdkM2M1
MDI0ODdhNzRhYWQxNmVmZGZkMWZiZmMzNzFmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5w
dXRUeXBlLmNwcApAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogI2luY2x1ZGUgPHd0Zi9EYXRlTWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC01NCw5ICs1Myw5IEBAIFRpbWVJbnB1dFR5cGU6OlRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxl
bWVudCYgZWxlbWVudCkKIHsKIH0KIAotT3duUHRyPElucHV0VHlwZT4gVGltZUlucHV0VHlwZTo6
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRU
eXBlPiBUaW1lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRpbWVJbnB1dFR5cGUoZWxlbWVudCkpOworICAgIHJl
dHVybiBzdGQ6OnVuaXF1ZV9wdHI8VGltZUlucHV0VHlwZT4obmV3IFRpbWVJbnB1dFR5cGUoZWxl
bWVudCkpOwogfQogCiB2b2lkIFRpbWVJbnB1dFR5cGU6OmF0dGFjaCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGltZUlucHV0VHlwZS5oCmluZGV4IDE5NThkNzc5OGRlZTI5Zjc4N2QyZmZkYTI2ZDA2NDg1ZGU2
Y2Y4ZjYuLjAzZGQ3MWY1ZmYwODUyMmY0OTdiNjJkMzM3NGQzODRmOTgwYzI4YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgVGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+
IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJ
bnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VS
TElucHV0VHlwZS5jcHAKaW5kZXggMWI1NWRjOGU1NjZlMzQyOWIzNDIwMWM5YmI2OWIxNmI4NGU3
NzEyNC4uMDVlNTVjN2RiYzM5YTBkN2IyMmFkMWFlY2RlNjRmN2QyMGE4YWY4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcApAQCAtMzUsMTMgKzM1LDEyIEBACiAjaW5jbHVkZSAi
SW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVk
ZSAiVVJMLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBVUkxJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KQorc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gVVJMSW5wdXRUeXBl
OjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFVSTElucHV0VHlwZShlbGVtZW50KSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0
cjxVUkxJbnB1dFR5cGU+KG5ldyBVUkxJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCiB2b2lkIFVS
TElucHV0VHlwZTo6YXR0YWNoKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJM
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5oCmluZGV4IGI3
YWI2NzRhNDQ5NDg0ZGQxNmZkNDgzMjljY2EwNTkxMGFhN2M0NWQuLjgyMzFiYTQwNjMyNzA0NDNk
N2FhYTQ4NmQ3ODkxMmJjYTUyMDg3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VVJMSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaApA
QCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFVSTElucHV0VHlw
ZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0
cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgVVJMSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
IDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5w
dXRUeXBlLmNwcAppbmRleCA1MTlkZjVhNDQ1MTM4Mjk2ZjI2OWJhNmYxMjVkYjVmYmJmODA2NDk0
Li45ZmFkNTEzZmNlZGI4ZDVmOWM2MGQ4ODk0M2YzOTQ3Nzc2MjYzNTIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJIVE1M
SW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRU
eXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTQ2LDkgKzQ1LDkgQEAgc3RhdGljIGNvbnN0IGludCB3ZWVrRGVmYXVsdFN0
ZXBCYXNlID0gLTI1OTIwMDAwMDsgLy8gVGhlIGZpcnN0IGRheSBvZiAxOTcwLVcwMS4KIHN0YXRp
YyBjb25zdCBpbnQgd2Vla0RlZmF1bHRTdGVwID0gMTsKIHN0YXRpYyBjb25zdCBpbnQgd2Vla1N0
ZXBTY2FsZUZhY3RvciA9IDYwNDgwMDAwMDsKIAotT3duUHRyPElucHV0VHlwZT4gV2Vla0lucHV0
VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8
SW5wdXRUeXBlPiBXZWVrSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVu
dCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlZWtJbnB1dFR5cGUoZWxlbWVudCkpOwor
ICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8V2Vla0lucHV0VHlwZT4obmV3IFdlZWtJbnB1dFR5
cGUoZWxlbWVudCkpOwogfQogCiB2b2lkIFdlZWtJbnB1dFR5cGU6OmF0dGFjaCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvV2Vla0lucHV0VHlwZS5oCmluZGV4IGNhZTc5ZTkxYmI5YTA3YmE2NGQ0MDNhNDRlNjZm
OWU4MTU5ZTJiMjQuLmJmNTU1NTQyMzliMGViYWRlNjMxNzk3YjA5YTcwZjFjYjYwZDVhZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgV2Vla0lucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1
dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgV2Vla0lucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJh
c2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214852</attachid>
            <date>2013-10-22 06:39:33 -0700</date>
            <delta_ts>2013-10-22 14:58:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123160-20131022063932.patch</filename>
            <type>text/plain</type>
            <size>46305</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3Nzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMxN2NmZmJhZTUxYjNj
NjZiNjFlYWZjYTIwMjM4YWE1OTRiZDVhZi4uMWEzZTMxYjRmYTAyNzE0ODZhYTMxZThmNWE5MTA0
MzU5OWMwZjk1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDEzLTEwLTIyICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBIVE1MIGlucHV0IHR5
cGUgb2JqZWN0cyBzaG91bGQgYmUgbWFuYWdlZCB0aHJvdWdoIHN0ZDo6dW5pcXVlX3B0cgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTYwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgSW5w
dXRUeXBlIHN1YmNsYXNzZXMgY3JlYXRlIG5ldyBpbnN0YW5jZXMgd3JhcHBlZCBpbiBzdGQ6OnVu
aXF1ZV9wdHIgaW5zdGVhZCBvZiBPd25QdHIuCisgICAgICAgIElucHV0VHlwZTo6Y3JlYXRlKCkg
bm93IHVzZXMgYSBOZXZlckRlc3Ryb3llZCBJbnB1dFR5cGVGYWN0b3J5TWFwIHRoYXQgZ2V0cyBw
b3B1bGF0ZWQgd2hlbiB0aGUgbWV0aG9kCisgICAgICAgIGlzIGZpcnN0IGNhbGxlZCBhbmQgdGhl
IG1hcCBpcyBzdGlsbCBlbXB0eS4gVGhlIHJlcXVlc3RlZCBmYWN0b3J5IGlzIHVzZWQgdG8gY3Jl
YXRlIHRoZSBuZXcgSW5wdXRUeXBlCisgICAgICAgIG9iamVjdCBpZiB0aGUgcmVxdWVzdGVkIHR5
cGUgd2FzIGZvdW5kIGluIHRoZSBtYXAsIGFuZCBUZXh0SW5wdXRUeXBlOjpjcmVhdGUoKSBpcyB1
c2VkIG90aGVyd2lzZS4KKworICAgICAgICAqIGh0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkJ1dHRvbklucHV0VHlwZTo6Y3JlYXRlKTogQ3JlYXRlIGFuZCByZXR1
cm4gdGhlIGlucHV0IHR5cGUgb2JqZWN0IGluIHN0ZDo6dW5pcXVlX3B0ci4KKyAgICAgICAgKiBo
dG1sL0J1dHRvbklucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvQ2hlY2tib3hJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hlY2tib3hJbnB1dFR5cGU6OmNyZWF0ZSk6IERpdHRv
LgorICAgICAgICAqIGh0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0Nv
bG9ySW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpjcmVh
dGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmg6CisgICAgICAgICog
aHRtbC9EYXRlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6
OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvRGF0ZUlucHV0VHlwZS5oOgorICAgICAg
ICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVJbnB1dFR5cGU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Y3JlYXRlKTogRGl0dG8uCisg
ICAgICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9F
bWFpbElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbWFpbElucHV0VHlwZTo6Y3Jl
YXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9FbWFpbElucHV0VHlwZS5oOgorICAgICAgICAq
IGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBl
OjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElu
cHV0RWxlbWVudDo6dXBkYXRlVHlwZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhpZGRlbklucHV0VHlwZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogaHRt
bC9IaWRkZW5JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAg
ICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cG9wdWxhdGVJbnB1dFR5cGVGYWN0b3J5TWFwKTogUG9wdWxh
dGVzIHRoZSBwYXNzZWQtaW4gSW5wdXRUeXBlRmFjdG9yeU1hcC4KKyAgICAgICAgKFdlYkNvcmU6
OklucHV0VHlwZTo6Y3JlYXRlKTogU3RvcmVzIHRoZSBJbnB1dFR5cGVGYWN0b3J5TWFwIGluIGEg
TmV2ZXJEZXN0cm95ZWQgc3RhdGljIHZhcmlhYmxlLCBwb3B1bGF0aW5nIGl0IHdoZW4gc3RpbGwg
ZW1wdHkuCisgICAgICAgIFRoZSBmYWN0b3J5LCBpZiBmb3VuZCwgaXMgdXNlZCB0byBjcmVhdGUg
dGhlIG5ldyBJbnB1dFR5cGUgb2JqZWN0LCBhbmQgVGV4dElucHV0VHlwZTo6Y3JlYXRlKCkgaXMg
dXNlZCBvdGhlcndpc2UuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0ZVRleHQp
OgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9Nb250aElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6Y3JlYXRlKTogQ3Jl
YXRlIGFuZCByZXR1cm4gdGhlIGlucHV0IHR5cGUgb2JqZWN0IGluIHN0ZDo6dW5pcXVlX3B0ci4K
KyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9OdW1iZXJJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TnVtYmVySW5wdXRUeXBlOjpjcmVhdGUp
OiBEaXR0by4KKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5oOgorICAgICAgICAqIGh0
bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzc3dvcmRJbnB1
dFR5cGU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL1JhZGlvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJhZGlvSW5wdXRUeXBlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL1JhZGlvSW5w
dXRUeXBlLmg6CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9S
YW5nZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvUmVzZXRJbnB1dFR5cGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzZXRJbnB1dFR5cGU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAq
IGh0bWwvUmVzZXRJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1NlYXJjaElucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZSk6IERpdHRvLgor
ICAgICAgICAqIGh0bWwvU2VhcmNoSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9TdWJtaXRJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VibWl0SW5wdXRUeXBlOjpjcmVhdGUp
OiBEaXR0by4KKyAgICAgICAgKiBodG1sL1N1Ym1pdElucHV0VHlwZS5oOgorICAgICAgICAqIGh0
bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlbGVwaG9uZUlu
cHV0VHlwZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9UZWxlcGhvbmVJbnB1dFR5
cGUuaDoKKyAgICAgICAgKiBodG1sL1RleHRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dElucHV0VHlwZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9UZXh0SW5w
dXRUeXBlLmg6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRpbWVJbnB1dFR5cGU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvVGlt
ZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvVVJMSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlVSTElucHV0VHlwZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9V
UkxJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2Vla0lucHV0VHlwZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogaHRt
bC9XZWVrSW5wdXRUeXBlLmg6CisKIDIwMTMtMTAtMjEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hh
bUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dJTl0gUHJvcGVybHkgc3VwcG9ydCByZXZlcnNlIGFu
aW1hdGlvbnMgd2l0aG91dCBuZWVkaW5nIHNvZnR3YXJlIGZhbGxiYWNrLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwCmluZGV4IDljZTI4MGM4NTI0YjlhYmNhZDljNWQzM2Iz
Y2EyNzI5ZmExM2ZkNWIuLmM5YjMyOTZiZjY3NmQ5OTRjNTUyMmUyMGZjODQzMjE4MTk5ZTZmMmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5jcHAKQEAgLTMyLDEzICszMiwx
MiBAQAogI2luY2x1ZGUgIkJ1dHRvbklucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiSW5wdXRUeXBl
TmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLU93blB0cjxJbnB1dFR5cGU+IEJ1dHRvbklucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1
dEVsZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBCdXR0b25JbnB1
dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpKTsKKyAgICByZXR1cm4gc3RkOjp1
bmlxdWVfcHRyPEJ1dHRvbklucHV0VHlwZT4obmV3IEJ1dHRvbklucHV0VHlwZShlbGVtZW50KSk7
CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQnV0dG9uSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5
cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKaW5kZXggYjRlOTQ4
MDU5NmZkMzA5MzU4ZjkyZjkzZDg3OWZhYjExMzU3MzVhYS4uZmNmYjNlZGQyMGMwNTQ5YjU4NmU5
NTBlMmUyN2E3YWRiMzI4ZTI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0
b25JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5o
CkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQnV0dG9uSW5w
dXRUeXBlIDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRp
YyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOwog
CiBwcml2YXRlOgogICAgIEJ1dHRvbklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Q2hlY2tib3hJbnB1dFR5cGUuY3BwCmluZGV4IDBlYzRkMWZiMjM0OTRhMTQ4NjBlZTI1MzMwNTg5
ODk4ZmM5M2ZjZTMuLjFjYjliMmFlYzIxYTU2M2RlMmEyYTU4NmMxZGU4YTAxZmQzMDQwMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCkBAIC0zNiwxMyArMzYs
MTIgQEAKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZl
bnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBDaGVj
a2JveElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVu
aXF1ZV9wdHI8SW5wdXRUeXBlPiBDaGVja2JveElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDaGVja2JveElucHV0
VHlwZShlbGVtZW50KSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDaGVja2JveElucHV0
VHlwZT4obmV3IENoZWNrYm94SW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBDaGVja2JveElucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaAppbmRleCA0NWIzZjgzMjUxYzQ5YmJlYjVi
NjAzN2U1MTE1NjY3M2E4NTJlZDk0Li44OTJlY2ZmZjNjMzUzYzUzNjJjZDk5ZWY1MGY5MTI5MzM0
ZjIxOGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oCkBAIC0zNyw3
ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2hlY2tib3hJbnB1dFR5cGUg
OiBwdWJsaWMgQmFzZUNoZWNrYWJsZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93
blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHBy
aXZhdGU6CiAgICAgQ2hlY2tib3hJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkg
OiBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Nv
bG9ySW5wdXRUeXBlLmNwcAppbmRleCBjMzI1ZmM4NWVmMTExMDJmYzYzMmVhZDNmOGFlN2VmYjFj
OWVhNmJhLi4yMGMwZDg5ZTRlMTBiYzEwMWU2OTM0ODFjMWE2MTI1YmZiYzM4MTZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtNDUsNyArNDUsNiBAQAogI2luY2x1
ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY2LDkgKzY1
LDkgQEAgc3RhdGljIGJvb2wgaXNWYWxpZENvbG9yU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUp
CiAgICAgcmV0dXJuIGNvbG9yLmlzVmFsaWQoKSAmJiAhY29sb3IuaGFzQWxwaGEoKTsKIH0KIAot
T3duUHRyPElucHV0VHlwZT4gQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KQorc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gQ29sb3JJbnB1dFR5cGU6OmNy
ZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgQ29sb3JJbnB1dFR5cGUoZWxlbWVudCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8
Q29sb3JJbnB1dFR5cGU+KG5ldyBDb2xvcklucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKIENvbG9y
SW5wdXRUeXBlOjp+Q29sb3JJbnB1dFR5cGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9Db2xvcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlw
ZS5oCmluZGV4IDAwYTNmNWIyNTE1OTdkZWQzNjk0MmM2OTZmMjk0ODg2OTM4ZDRlZTcuLjIyMGEy
ZGU2OTMzNjQ0MTMwNTI5NWJjOTI0MmE0NDhhOGJjOTE2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Nv
bG9ySW5wdXRUeXBlLmgKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBDb2xvcklucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlw
ZSwgcHVibGljIENvbG9yQ2hvb3NlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0
cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmly
dHVhbCB+Q29sb3JJbnB1dFR5cGUoKTsKIAogICAgIC8vIENvbG9yQ2hvb3NlckNsaWVudCBpbXBs
ZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCmluZGV4IDEyZmEw
NDA5Mzk2MTgxNWQ5YWJlOTU5NmVkOTUxMmYyZTQyMDkzZDEuLmUyYmIzZGE3Yjg2MGI1NGYzYTgw
MjI1ODY2OWQ1ZDAxNDAyMGVlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0
ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNw
cApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgotI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTEsOSArNTAs
OSBAQCBpbmxpbmUgRGF0ZUlucHV0VHlwZTo6RGF0ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KQogewogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBEYXRlSW5wdXRUeXBlOjpjcmVh
dGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+
IERhdGVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgRGF0ZUlucHV0VHlwZShlbGVtZW50KSk7CisgICAgcmV0dXJu
IHN0ZDo6dW5pcXVlX3B0cjxEYXRlSW5wdXRUeXBlPihuZXcgRGF0ZUlucHV0VHlwZShlbGVtZW50
KSk7CiB9CiAKIHZvaWQgRGF0ZUlucHV0VHlwZTo6YXR0YWNoKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRl
SW5wdXRUeXBlLmgKaW5kZXggNGEwYzIzZDE5ZTExZmUzZGVmZWQ4MGQ4ZTA3ZDdiY2YwZTMxOWYy
Yy4uNDlhM2I3YTZhMThhNGI3NTFlOTUzMWFjOWRkM2FlZTJlNmQ0N2JlOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlSW5wdXRUeXBlLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBEYXRlSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0
VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUlucHV0VHlwZS5jcHAKaW5kZXggMTFmN2U5ZWFiODFkYTlmY2FiOTdiOWRkNTUyOWQ4
Y2Y5NTg5OWViYS4uOTEzZmE2OGRkYzQ2N2RhMDQwYjQxZDNjMTk3NDY4NWY2MGUyNTM2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKQEAgLTM3LDcgKzM3LDYg
QEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgog
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsOSArNDYsOSBAQCBzdGF0aWMgY29uc3Qg
aW50IGRhdGVUaW1lRGVmYXVsdFN0ZXAgPSA2MDsKIHN0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVE
ZWZhdWx0U3RlcEJhc2UgPSAwOwogc3RhdGljIGNvbnN0IGludCBkYXRlVGltZVN0ZXBTY2FsZUZh
Y3RvciA9IDEwMDA7CiAKLU93blB0cjxJbnB1dFR5cGU+IERhdGVUaW1lSW5wdXRUeXBlOjpjcmVh
dGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+
IERhdGVUaW1lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGVUaW1lSW5wdXRUeXBlKGVsZW1lbnQpKTsKKyAg
ICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lSW5wdXRUeXBlPihuZXcgRGF0ZVRpbWVJ
bnB1dFR5cGUoZWxlbWVudCkpOwogfQogCiB2b2lkIERhdGVUaW1lSW5wdXRUeXBlOjphdHRhY2go
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5oCmluZGV4IDIwZjRkZGY5MWQw
YjdiZWY1YTkxMTA3MDBkZDJhNjJjYTcwNGM5MjIuLjA3NTEwYTUzZGVkOTM5N2JjNTUwNDc5OTQz
MDkxN2FhZGYzODgwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJ
bnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmgK
QEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRlVGltZUlu
cHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVt
ZW50Jik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRGF0ZVRpbWVJbnB1dFR5
cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0ZVRpbWVJbnB1dFR5cGUoZWxl
bWVudCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBl
LmNwcAppbmRleCA1NWQ0ZDA5MzA2MzI5ZDg3ZDUyN2Q3MjYxODBhNjJiMzg3NWU5Mjc5Li40YzNj
ZDU1MWExNmNkYTM0Y2E5NjU5ODFhZTAxNThhZjJmNGNiM2NjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNp
bmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5j
bHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ2LDkgKzQ1LDkgQEAgc3RhdGljIGNvbnN0IGludCBk
YXRlVGltZUxvY2FsRGVmYXVsdFN0ZXAgPSA2MDsKIHN0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVM
b2NhbERlZmF1bHRTdGVwQmFzZSA9IDA7CiBzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lTG9jYWxT
dGVwU2NhbGVGYWN0b3IgPSAxMDAwOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5pcXVl
X3B0cjxJbnB1dFR5cGU+IERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZShlbGVtZW50KSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxEYXRlVGlt
ZUxvY2FsSW5wdXRUeXBlPihuZXcgRGF0ZVRpbWVMb2NhbElucHV0VHlwZShlbGVtZW50KSk7CiB9
CiAKIHZvaWQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6YXR0YWNoKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKaW5kZXggNjlmMmJiYTYzOTI3YTg5MzQx
NWFkNmMwZGMzMTQyZDM0NjRlMzFkZC4uY2VkOTk4NDc5ZmQyY2VhNWU0MWJiNDg0YTJlYzI0MTVh
MjJjMWUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5w
dXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBl
LmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRlVGlt
ZUxvY2FsSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBEYXRlVGlt
ZUxvY2FsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZURhdGVUaW1l
TG9jYWxJbnB1dFR5cGUoZWxlbWVudCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0VtYWlsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5
cGUuY3BwCmluZGV4IDI3ZGU4ZDQ1ZjZkOGYwMGFiNjg1NmViNmQ1Y2EzNGZjNjAxZWVjZDguLjgw
MzRjNmU1N2VmYmZlYjBmZmRlZDI2MTMyZWEzY2QzNWVkNjM0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRW1haWxJbnB1dFR5cGUuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiSW5wdXRU
eXBlTmFtZXMuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiUmVn
dWxhckV4cHJlc3Npb24uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTMs
OSArNTIsOSBAQCBzdGF0aWMgYm9vbCBpc1ZhbGlkRW1haWxBZGRyZXNzKGNvbnN0IFN0cmluZyYg
YWRkcmVzcykKICAgICByZXR1cm4gIW1hdGNoT2Zmc2V0ICYmIG1hdGNoTGVuZ3RoID09IGFkZHJl
c3NMZW5ndGg7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IEVtYWlsSW5wdXRUeXBlOjpjcmVhdGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IEVt
YWlsSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IEVtYWlsSW5wdXRUeXBlKGVsZW1lbnQpKTsKKyAgICByZXR1cm4g
c3RkOjp1bmlxdWVfcHRyPEVtYWlsSW5wdXRUeXBlPihuZXcgRW1haWxJbnB1dFR5cGUoZWxlbWVu
dCkpOwogfQogCiB2b2lkIEVtYWlsSW5wdXRUeXBlOjphdHRhY2goKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9F
bWFpbElucHV0VHlwZS5oCmluZGV4IGUwZDIxMzE4NmQ5OWI4ZTA1YzQxZWJlZGIwODIyMDdmMGJi
NGRiZjkuLjIzYTI4YzEyODNmOTI0NDQ1NjMwYjE3YmMwOWQ4NjM2N2IzZDEzNTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBFbWFpbElucHV0VHlwZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlw
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50Jik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IGNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRW1haWxJbnB1
dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVt
ZW50KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IGQyOWZhMTI1
NmJlNzdlMGY1ZjczMGNmZjdhZDQwMDRkZGZlNTU4YzAuLjA2NWI3ZjE3M2RlZDllZDY4MWQ2ODFi
MTNkOWU4YmE0YjBkNDUxMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApA
QCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgIlJlbmRlckZpbGVVcGxvYWRDb250cm9sLmgiCiAj
aW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtODUsOSArODQsOSBA
QCBjb25zdCBBdG9taWNTdHJpbmcmIFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KCkgY29uc3QKICAgICByZXR1cm4gcHNldWRvSWQ7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IEZp
bGVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQorc3RkOjp1bmlx
dWVfcHRyPElucHV0VHlwZT4gRmlsZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBGaWxlSW5wdXRUeXBlKGVsZW1l
bnQpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPEZpbGVJbnB1dFR5cGU+KG5ldyBGaWxl
SW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIAogRmlsZUlucHV0VHlwZTo6RmlsZUlucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaApp
bmRleCA2YTRhYzkzNTQwYTJmODZlZjkzMmEwODc0MjA3YTY4NWFmZTZkZTg5Li5kM2Q0ODEyMDVi
YzRiMTFjNTdjMzI3YWI5OWI0ODFhNTNiYTRlZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1
dFR5cGUuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBGaWxlTGlzdDsKIAogY2xhc3MgRmlsZUlu
cHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSwgcHJpdmF0ZSBG
aWxlQ2hvb3NlckNsaWVudCwgcHJpdmF0ZSBGaWxlSWNvbkxvYWRlckNsaWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7
CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRF
bGVtZW50Jik7CiAgICAgdmlydHVhbCB+RmlsZUlucHV0VHlwZSgpOwogCiAgICAgc3RhdGljIFZl
Y3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBmaWxlc0Zyb21Gb3JtQ29udHJvbFN0YXRlKGNvbnN0
IEZvcm1Db250cm9sU3RhdGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCmluZGV4IDcyNTZmMmU1M2MwZWY5NDM4ODA4ZTUwZmIzY2I3YWEyZmUwMTdmZDUuLjI4MTdl
ODc3MzdmZDdkMjZmNzk1OGIwMTlhYWY0NTE2NWY1MmUwYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgSFRNTElucHV0
RWxlbWVudDo6c2V0VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiAKIHZvaWQgSFRNTElucHV0RWxl
bWVudDo6dXBkYXRlVHlwZSgpCiB7Ci0gICAgT3duUHRyPElucHV0VHlwZT4gbmV3VHlwZSA9IElu
cHV0VHlwZTo6Y3JlYXRlKCp0aGlzLCBmYXN0R2V0QXR0cmlidXRlKHR5cGVBdHRyKSk7CisgICAg
c3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gbmV3VHlwZSA9IElucHV0VHlwZTo6Y3JlYXRlKCp0
aGlzLCBmYXN0R2V0QXR0cmlidXRlKHR5cGVBdHRyKSk7CiAgICAgYm9vbCBoYWRUeXBlID0gbV9o
YXNUeXBlOwogICAgIG1faGFzVHlwZSA9IHRydWU7CiAgICAgaWYgKG1faW5wdXRUeXBlLT5mb3Jt
Q29udHJvbFR5cGUoKSA9PSBuZXdUeXBlLT5mb3JtQ29udHJvbFR5cGUoKSkKQEAgLTQ4MSw3ICs0
ODEsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0ZVR5cGUoKQogICAgIGlmICh3YXNB
dHRhY2hlZCkKICAgICAgICAgU3R5bGU6OmRldGFjaFJlbmRlclRyZWUoKnRoaXMpOwogCi0gICAg
bV9pbnB1dFR5cGUgPSBuZXdUeXBlLnJlbGVhc2UoKTsKKyAgICBtX2lucHV0VHlwZSA9IHN0ZDo6
bW92ZShuZXdUeXBlKTsKICAgICBtX2lucHV0VHlwZS0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwog
CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmgKaW5kZXggMzQ1MjZiZTIwMjhhNjEwYjdmYTA3MWM2NDA5YjM3Y2QwZTE4YWVmNi4uZWZm
M2ZhOTEyZTQ0Yzk2ZTAwNWYzMDlhYjUyNjhiNmRkMjdhNDdkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTQ0Miw3ICs0NDIsNyBAQCBwcml2YXRlOgogI2lmIEVO
QUJMRShUT1VDSF9FVkVOVFMpCiAgICAgYm9vbCBtX2hhc1RvdWNoRXZlbnRIYW5kbGVyIDogMTsK
ICNlbmRpZgotICAgIE93blB0cjxJbnB1dFR5cGU+IG1faW5wdXRUeXBlOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxJbnB1dFR5cGU+IG1faW5wdXRUeXBlOwogICAgIC8vIFRoZSBJbWFnZUxvYWRlciBt
dXN0IGJlIG93bmVkIGJ5IHRoaXMgZWxlbWVudCBiZWNhdXNlIHRoZSBsb2FkZXIgY29kZSBhc3N1
bWVzCiAgICAgLy8gdGhhdCBpdCBsaXZlcyBhcyBsb25nIGFzIGl0cyBvd25pbmcgZWxlbWVudCBs
aXZlcy4gSWYgd2UgbW92ZSB0aGUgbG9hZGVyIGludG8KICAgICAvLyB0aGUgSW1hZ2VJbnB1dCBv
YmplY3Qgd2UgbWF5IGRlbGV0ZSB0aGUgbG9hZGVyIHdoaWxlIHRoaXMgZWxlbWVudCBsaXZlcyBv
bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAppbmRleCA4M2E2M2ZiMWMz
OGEzOWM4NzFkYWIzNzc5YzEyMGJiNWYxMzg2YzIzLi5hYzNiOGM1YzE1NjkxOGQxMzQ2YmJkYzc3
ZGIyMzU1MmE5NTg4ZGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3Bw
CkBAIC0zNywxNSArMzcsMTQgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKLU93blB0cjxJbnB1dFR5cGU+IEhpZGRlbklucHV0VHlwZTo6Y3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBl
PiBIaWRkZW5JbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewot
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgSGlkZGVuSW5wdXRUeXBlKGVsZW1lbnQpKTsKKyAgICBy
ZXR1cm4gc3RkOjp1bmlxdWVfcHRyPEhpZGRlbklucHV0VHlwZT4obmV3IEhpZGRlbklucHV0VHlw
ZShlbGVtZW50KSk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSGlkZGVuSW5wdXRUeXBlOjpm
b3JtQ29udHJvbFR5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
aWRkZW5JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgK
aW5kZXggZTM4N2ExYTM1MDk1NDQyN2Q2MWViMjBmZGM0ZGZkNjRhNTFkNTg2Zi4uZDE4ODQ4MTEz
ZTIwNTExMmNlYjMxZjE2ZmI5ZDBmNWNlYjYzNDdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRl
bklucHV0VHlwZS5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSGlkZGVuSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7
CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSGlkZGVuSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lt
YWdlSW5wdXRUeXBlLmNwcAppbmRleCA4OTM1NmQ3ZWQyMDA5Mzk3ZGFlNDQ3OWVmNDM4ZGZiZmFi
ZDgwNzgzLi42MmRlZjE4Yzc3MDQ3YTJhMTIzY2FlZTc1MDg4MTdmZjdlMGEyNjViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1
ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUg
IlJlbmRlckltYWdlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC00NCw5ICs0Myw5IEBAIGlubGluZSBJbWFnZUlucHV0VHlwZTo6SW1h
Z2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKIH0KIAotT3duUHRyPElu
cHV0VHlwZT4gSW1hZ2VJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KQorc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gSW1hZ2VJbnB1dFR5cGU6OmNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW1hZ2VJ
bnB1dFR5cGUoZWxlbWVudCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VJbnB1
dFR5cGU+KG5ldyBJbWFnZUlucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgSW1hZ2VJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ltYWdlSW5wdXRUeXBlLmgKaW5kZXggNGE2YjViYTM2YjUyNDVmZTU4YjAzNGU3YzE1N2Qx
ZGFmZThkMDcyNC4uNTUyMWU0NzE4YzYyYmM0MTQ1MjgyMWI1NjljNTZiNzFjOTFiNzc4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEltYWdlSW5wdXRUeXBlIDogcHVibGljIEJhc2VCdXR0b25J
bnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUo
SFRNTElucHV0RWxlbWVudCYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBl
PiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IElt
YWdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNw
cAppbmRleCA5MDA3OGJiYzk4Mzg5ZDg5ZDA1NWUzZjYyYjY5MDUwNGE0ZjFlMTFhLi42Njk2YzMy
ZDU1MWUwOGM1OWY0ZjVkMzY0MWU0YjYyN2IxOTdlMTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwCkBAIC04NCw3MiArODQsNzEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLXR5cGVkZWYgT3duUHRy
PElucHV0VHlwZT4gKCpJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24pKEhUTUxJbnB1dEVsZW1lbnQm
KTsKK3R5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gKCpJbnB1dFR5cGVGYWN0b3J5
RnVuY3Rpb24pKEhUTUxJbnB1dEVsZW1lbnQmKTsKIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJp
bmcsIElucHV0VHlwZUZhY3RvcnlGdW5jdGlvbiwgQ2FzZUZvbGRpbmdIYXNoPiBJbnB1dFR5cGVG
YWN0b3J5TWFwOwogCi1zdGF0aWMgT3duUHRyPElucHV0VHlwZUZhY3RvcnlNYXA+IGNyZWF0ZUlu
cHV0VHlwZUZhY3RvcnlNYXAoKQorc3RhdGljIHZvaWQgcG9wdWxhdGVJbnB1dFR5cGVGYWN0b3J5
TWFwKElucHV0VHlwZUZhY3RvcnlNYXAmIG1hcCkKIHsKLSAgICBPd25QdHI8SW5wdXRUeXBlRmFj
dG9yeU1hcD4gbWFwID0gYWRvcHRQdHIobmV3IElucHV0VHlwZUZhY3RvcnlNYXApOwotCiAgICAg
Ly8gRklYTUU6IFJlbW92ZSB1bm5lY2Vzc2FyeSAnJidzIGZyb20gdGhlIGZvbGxvd2luZyBtYXAu
YWRkIG9wZXJhdGlvbnMKICAgICAvLyBvbmNlIHdlIHN3aXRjaCB0byBhIG5vbi1icm9rZW4gVmlz
dWFsIFN0dWRpbyBjb21waWxlci4gIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjEyMzUKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6YnV0dG9uKCksICZCdXR0
b25JbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmNoZWNr
Ym94KCksICZDaGVja2JveElucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElucHV0VHlw
ZU5hbWVzOjpidXR0b24oKSwgJkJ1dHRvbklucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRk
KElucHV0VHlwZU5hbWVzOjpjaGVja2JveCgpLCAmQ2hlY2tib3hJbnB1dFR5cGU6OmNyZWF0ZSk7
CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFt
ZXM6OmNvbG9yKCksICZDb2xvcklucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElucHV0
VHlwZU5hbWVzOjpjb2xvcigpLCAmQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZSk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZURhdGVFbmFibGVkKCkpCi0gICAgICAgIG1hcC0+
YWRkKElucHV0VHlwZU5hbWVzOjpkYXRlKCksICZEYXRlSW5wdXRUeXBlOjpjcmVhdGUpOworICAg
ICAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpkYXRlKCksICZEYXRlSW5wdXRUeXBlOjpjcmVh
dGUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkK
ICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5
cGVEYXRlVGltZUVuYWJsZWQoKSkKLSAgICAgICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmRh
dGV0aW1lKCksICZEYXRlVGltZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgbWFwLmFkZChJ
bnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUoKSwgJkRhdGVUaW1lSW5wdXRUeXBlOjpjcmVhdGUpOwog
I2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkKICAgICBpZiAoUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5cGVEYXRlVGltZUxv
Y2FsRW5hYmxlZCgpKQotICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWVs
b2NhbCgpLCAmRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgbWFwLmFk
ZChJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWVsb2NhbCgpLCAmRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZTo6Y3JlYXRlKTsKICNlbmRpZgotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjplbWFpbCgp
LCAmRW1haWxJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6
OmZpbGUoKSwgJkZpbGVJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBl
TmFtZXM6OmhpZGRlbigpLCAmSGlkZGVuSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRk
KElucHV0VHlwZU5hbWVzOjppbWFnZSgpLCAmSW1hZ2VJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAg
bWFwLmFkZChJbnB1dFR5cGVOYW1lczo6ZW1haWwoKSwgJkVtYWlsSW5wdXRUeXBlOjpjcmVhdGUp
OworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OmZpbGUoKSwgJkZpbGVJbnB1dFR5cGU6OmNy
ZWF0ZSk7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6aGlkZGVuKCksICZIaWRkZW5JbnB1
dFR5cGU6OmNyZWF0ZSk7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6aW1hZ2UoKSwgJklt
YWdlSW5wdXRUeXBlOjpjcmVhdGUpOwogI2lmIEVOQUJMRShJTlBVVF9UWVBFX01PTlRIKQogICAg
IGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZU1v
bnRoRW5hYmxlZCgpKQotICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6bW9udGgoKSwg
Jk1vbnRoSW5wdXRUeXBlOjpjcmVhdGUpOworICAgICAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVz
Ojptb250aCgpLCAmTW9udGhJbnB1dFR5cGU6OmNyZWF0ZSk7CiAjZW5kaWYKLSAgICBtYXAtPmFk
ZChJbnB1dFR5cGVOYW1lczo6bnVtYmVyKCksICZOdW1iZXJJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0g
ICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OnBhc3N3b3JkKCksICZQYXNzd29yZElucHV0VHlw
ZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6cmFkaW8oKSwgJlJhZGlv
SW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpyYW5nZSgp
LCAmUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6
OnJlc2V0KCksICZSZXNldElucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5
cGVOYW1lczo6c2VhcmNoKCksICZTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5h
ZGQoSW5wdXRUeXBlTmFtZXM6OnN1Ym1pdCgpLCAmU3VibWl0SW5wdXRUeXBlOjpjcmVhdGUpOwot
ICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjp0ZWxlcGhvbmUoKSwgJlRlbGVwaG9uZUlucHV0
VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpudW1iZXIoKSwgJk51
bWJlcklucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpwYXNz
d29yZCgpLCAmUGFzc3dvcmRJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgbWFwLmFkZChJbnB1dFR5
cGVOYW1lczo6cmFkaW8oKSwgJlJhZGlvSW5wdXRUeXBlOjpjcmVhdGUpOworICAgIG1hcC5hZGQo
SW5wdXRUeXBlTmFtZXM6OnJhbmdlKCksICZSYW5nZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBt
YXAuYWRkKElucHV0VHlwZU5hbWVzOjpyZXNldCgpLCAmUmVzZXRJbnB1dFR5cGU6OmNyZWF0ZSk7
CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6c2VhcmNoKCksICZTZWFyY2hJbnB1dFR5cGU6
OmNyZWF0ZSk7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6c3VibWl0KCksICZTdWJtaXRJ
bnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6dGVsZXBob25l
KCksICZUZWxlcGhvbmVJbnB1dFR5cGU6OmNyZWF0ZSk7CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVf
VElNRSkKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5p
bnB1dFR5cGVUaW1lRW5hYmxlZCgpKQotICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6
dGltZSgpLCAmVGltZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgbWFwLmFkZChJbnB1dFR5
cGVOYW1lczo6dGltZSgpLCAmVGltZUlucHV0VHlwZTo6Y3JlYXRlKTsKICNlbmRpZgotICAgIG1h
cC0+YWRkKElucHV0VHlwZU5hbWVzOjp1cmwoKSwgJlVSTElucHV0VHlwZTo6Y3JlYXRlKTsKKyAg
ICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjp1cmwoKSwgJlVSTElucHV0VHlwZTo6Y3JlYXRlKTsK
ICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9XRUVLKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZVdlZWtFbmFibGVkKCkpCi0gICAgICAgIG1h
cC0+YWRkKElucHV0VHlwZU5hbWVzOjp3ZWVrKCksICZXZWVrSW5wdXRUeXBlOjpjcmVhdGUpOwor
ICAgICAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjp3ZWVrKCksICZXZWVrSW5wdXRUeXBlOjpj
cmVhdGUpOwogI2VuZGlmCiAgICAgLy8gTm8gbmVlZCB0byByZWdpc3RlciAidGV4dCIgYmVjYXVz
ZSBpdCBpcyB0aGUgZGVmYXVsdCB0eXBlLgotCi0gICAgcmV0dXJuIG1hcDsKIH0KIAotT3duUHRy
PElucHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCwg
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlTmFtZSkKK3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+
IElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZU5hbWUpCiB7Ci0gICAgc3RhdGljIGNvbnN0IElucHV0VHlwZUZhY3RvcnlN
YXAqIGZhY3RvcnlNYXAgPSBjcmVhdGVJbnB1dFR5cGVGYWN0b3J5TWFwKCkubGVha1B0cigpOwot
ICAgIE93blB0cjxJbnB1dFR5cGU+ICgqZmFjdG9yeSkoSFRNTElucHV0RWxlbWVudCYpID0gdHlw
ZU5hbWUuaXNFbXB0eSgpID8gMCA6IGZhY3RvcnlNYXAtPmdldCh0eXBlTmFtZSk7Ci0gICAgaWYg
KCFmYWN0b3J5KQotICAgICAgICBmYWN0b3J5ID0gVGV4dElucHV0VHlwZTo6Y3JlYXRlOwotICAg
IHJldHVybiBmYWN0b3J5KGVsZW1lbnQpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxJbnB1
dFR5cGVGYWN0b3J5TWFwPiBmYWN0b3J5TWFwOworICAgIGlmIChmYWN0b3J5TWFwLmdldCgpLmlz
RW1wdHkoKSkKKyAgICAgICAgcG9wdWxhdGVJbnB1dFR5cGVGYWN0b3J5TWFwKGZhY3RvcnlNYXAp
OworCisgICAgSW5wdXRUeXBlRmFjdG9yeUZ1bmN0aW9uIGZhY3RvcnkgPSB0eXBlTmFtZS5pc0Vt
cHR5KCkgPyAwIDogZmFjdG9yeU1hcC5nZXQoKS5nZXQodHlwZU5hbWUpOworICAgIGlmIChmYWN0
b3J5KQorICAgICAgICByZXR1cm4gZmFjdG9yeShlbGVtZW50KTsKKyAgICByZXR1cm4gVGV4dElu
cHV0VHlwZTo6Y3JlYXRlKGVsZW1lbnQpOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBJbnB1dFR5
cGU6OmNyZWF0ZVRleHQoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5pcXVlX3B0
cjxJbnB1dFR5cGU+IElucHV0VHlwZTo6Y3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KQogewogICAgIHJldHVybiBUZXh0SW5wdXRUeXBlOjpjcmVhdGUoZWxlbWVudCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCA1MjQ3MGIxNDQwMGQ3MmIyNDc2OTQzNzlkNjRmMTk0
MmJkNDQzYWNlLi4xNjVjZmNkMzJmZjA5NDg5NzJjOGI2N2IyZjRlN2Q0ZjNiMGM3ZDYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTc0LDggKzc0LDggQEAgY2xhc3MgSW5wdXRUeXBlIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIAogcHVibGljOgotICAgIHN0YXRpYyBPd25Q
dHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpOwotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGVUZXh0KEhUTUxJbnB1dEVs
ZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlKEhU
TUxJbnB1dEVsZW1lbnQmLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAg
dmlydHVhbCB+SW5wdXRUeXBlKCk7CiAKICAgICBzdGF0aWMgYm9vbCB0aGVtZVN1cHBvcnRzRGF0
YUxpc3RVSShJbnB1dFR5cGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9u
dGhJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAK
aW5kZXggNDhlYWQxZmU4ZTI0MTRiNjU1MWY0N2IzM2Y1OWNiNzRjYmI1MTVkMS4uYzIzYjViNThk
NDAwMGYxYmYzZWZjNTQwMWJkNDMxZjFiNzZhZWJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250
aElucHV0VHlwZS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNDksOSArNDgsOSBAQCBzdGF0aWMgY29uc3QgaW50IG1vbnRoRGVmYXVsdFN0ZXAgPSAx
Owogc3RhdGljIGNvbnN0IGludCBtb250aERlZmF1bHRTdGVwQmFzZSA9IDA7CiBzdGF0aWMgY29u
c3QgaW50IG1vbnRoU3RlcFNjYWxlRmFjdG9yID0gMTsKIAotT3duUHRyPElucHV0VHlwZT4gTW9u
dGhJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQorc3RkOjp1bmlx
dWVfcHRyPElucHV0VHlwZT4gTW9udGhJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTW9udGhJbnB1dFR5cGUoZWxl
bWVudCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8TW9udGhJbnB1dFR5cGU+KG5ldyBN
b250aElucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKIHZvaWQgTW9udGhJbnB1dFR5cGU6OmF0dGFj
aCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKaW5kZXggOWI1NGUwYjYwNGExZDIz
ZjM4ZTYzMGFjZTMwNjEzMmQxYmNkM2VkNS4uMTFmMTNhNjQ0NWIwOGM2NmIxMGQ4NzQ4N2M3ZDA2
OTliMDVjODcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtMzgsNyAr
MzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1vbnRoSW5wdXRUeXBlIDogcHVi
bGljIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQm
KTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBNb250aElucHV0VHlwZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KSA6IEJhc2VNb250aElucHV0VHlwZShlbGVtZW50KSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAppbmRleCA2ZjU1ZGZiOWMwMjQzOTZlZDgyOTAw
MDMyNGVmMmM5ZmY0YWJhYTM4Li5mOGZkNzQzOWNkODBhNzc5ODE0MjU5NjVmNzQ0MWIxY2M3YmEy
MjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBAIC00NCw3ICs0
NCw2IEBACiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk0LDkgKzkzLDkgQEAgc3RhdGljIFJlYWxOdW1i
ZXJSZW5kZXJTaXplIGNhbGN1bGF0ZVJlbmRlclNpemUoY29uc3QgRGVjaW1hbCYgdmFsdWUpCiAg
ICAgcmV0dXJuIFJlYWxOdW1iZXJSZW5kZXJTaXplKHNpemVPZlNpZ24gKyBzaXplT2ZaZXJvICwg
bnVtYmVyT2ZaZXJvQWZ0ZXJEZWNpbWFsUG9pbnQgKyBzaXplT2ZEaWdpdHMpOwogfQogCi1Pd25Q
dHI8SW5wdXRUeXBlPiBOdW1iZXJJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50KQorc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gTnVtYmVySW5wdXRUeXBlOjpjcmVh
dGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3
IE51bWJlcklucHV0VHlwZShlbGVtZW50KSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxO
dW1iZXJJbnB1dFR5cGU+KG5ldyBOdW1iZXJJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCiB2b2lk
IE51bWJlcklucHV0VHlwZTo6YXR0YWNoKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTnVtYmVySW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlw
ZS5oCmluZGV4IGY5OWE2NmY3N2I0OWE3MTM1ZGJhYWI4YjcyZTkxOWU3YTdlNGRkZjkuLjA2MTFm
MDdlMmM0ODRmZjI2N2Q1NTA0MWQyZjAyMjgyOWQ5NzAzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9O
dW1iZXJJbnB1dFR5cGUuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIE51bWJlcklucHV0VHlwZSA6IHB1YmxpYyBUZXh0RmllbGRJbnB1dFR5cGUgewogcHVi
bGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVu
dCYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElu
cHV0RWxlbWVudCYpOwogCiBwcml2YXRlOgogICAgIE51bWJlcklucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KSA6IFRleHRGaWVsZElucHV0VHlwZShlbGVtZW50KSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHAKaW5kZXggZmI1N2EzYTdmNjI3ZmE3
NTNkZGZhMDY5ZTFiYzliY2Y4MWU1NTQxNC4uYjkxNWI4YjQzNGUwODcxNzVkNzRlY2E0NzU1MzI1
OWQyYjIzYjAwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHAK
QEAgLTM2LDEzICszNiwxMiBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNs
dWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8
SW5wdXRUeXBlPiBQYXNzd29yZElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBQYXNzd29yZElucHV0VHlwZTo6Y3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBQYXNzd29yZElucHV0VHlwZShlbGVtZW50KSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0
cjxQYXNzd29yZElucHV0VHlwZT4obmV3IFBhc3N3b3JkSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0K
IAogY29uc3QgQXRvbWljU3RyaW5nJiBQYXNzd29yZElucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBl
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaAppbmRleCBlYWYx
NDhlZmU2ZGM3MWNmMTI5NTE2MTcwZTY5ZmM0ZDM5ODE2YzMwLi5kZGE5MmRlOTlhOTg3MGZkMDY5
ZjcxM2U2ZWYyMTg4ZjE4Njk5YzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bh
c3N3b3JkSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0
VHlwZS5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGFz
c3dvcmRJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgewogcHVibGljOgotICAg
IHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVu
dCYpOwogCiBwcml2YXRlOgogICAgIFBhc3N3b3JkSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFkaW9JbnB1dFR5cGUuY3BwCmluZGV4IDBjMjI0MTZhZjY1OWUwMTUyMzUwZjI2MmI2NzJm
OTQ2NWYyZTk2ZTIuLmJmMTdiYWQ4NzdmNWVmZjllYTEzMjU0MmQ5ODhiZmJjMGM0NTZmYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwCkBAIC0zMywxNSArMzMsMTQgQEAK
ICNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJTcGF0aWFsTmF2aWdhdGlvbi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotT3du
UHRyPElucHV0VHlwZT4gUmFkaW9JbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50KQorc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gUmFkaW9JbnB1dFR5cGU6OmNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcg
UmFkaW9JbnB1dFR5cGUoZWxlbWVudCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UmFk
aW9JbnB1dFR5cGU+KG5ldyBSYWRpb0lucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgUmFkaW9JbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmgKaW5kZXggMTQxYmM0ODc5YTg3ZGVmMGU2YWMzMmI2
YzU5YzQ2MzQ2OWZlODEzNS4uNWQ1NDFjNGIxNWYwMGQ0NjkwM2QwMzBiNjA0NWRiZTJlNDIwYWE3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuaApAQCAtMzcsNyArMzcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJhZGlvSW5wdXRUeXBlIDogcHVibGljIEJhc2VD
aGVja2FibGVJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBl
PiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOwogCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IFJhZGlvSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNo
ZWNrYWJsZUlucHV0VHlwZShlbGVtZW50KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0
VHlwZS5jcHAKaW5kZXggODBiM2I2NTE0OWQ5ZGQ1OGI1YTVlMjVjZDAyOTUwZTk5ODQzYWZhMi4u
MzNmMGE0Y2I3M2EyNmI4YzJkMDFiODc4MTdhOGU2YjlkZDk5MjM5ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTQ5LDcgKzQ5LDYgQEAKICNpbmNsdWRlICJTdGVw
UmFuZ2UuaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4K
LSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykK
ICNpbmNsdWRlICJUb3VjaC5oIgpAQCAtNzgsOSArNzcsOSBAQCBzdGF0aWMgRGVjaW1hbCBlbnN1
cmVNYXhpbXVtKGNvbnN0IERlY2ltYWwmIHByb3Bvc2VkVmFsdWUsIGNvbnN0IERlY2ltYWwmIG1p
bmltdQogICAgIHJldHVybiBwcm9wb3NlZFZhbHVlID49IG1pbmltdW0gPyBwcm9wb3NlZFZhbHVl
IDogc3RkOjptYXgobWluaW11bSwgZmFsbGJhY2tWYWx1ZSk7CiB9CiAKLU93blB0cjxJbnB1dFR5
cGU+IFJhbmdlSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0
ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IFJhbmdlSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFJhbmdlSW5wdXRU
eXBlKGVsZW1lbnQpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJhbmdlSW5wdXRUeXBl
PihuZXcgUmFuZ2VJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCiBSYW5nZUlucHV0VHlwZTo6UmFu
Z2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuaAppbmRleCA0ODYzZTBmMTc3NjM4ZTFhNzFmOTMyNjQ4ZGFiYTA5NmYyOWY0
ZTA3Li4wYWFjODdiMmRhZWJjNGYzNzkzYTYxYjA4ODJmOGNhOGNlN2ZiMGRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIFNsaWRlclRo
dW1iRWxlbWVudDsKIAogY2xhc3MgUmFuZ2VJbnB1dFR5cGUgRklOQUwgOiBwdWJsaWMgSW5wdXRU
eXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBSYW5nZUlu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1Jlc2V0SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5
cGUuY3BwCmluZGV4IDEwNTZmMWNiNjEwZjE1N2QzZWYyOTRjMTBlMjg0MTEzZTU3YjAwZjUuLjRj
YzhiMDBlZDgyMGQ5Mjk5MzIwNWZiNDdkZGJlYzljMTNmNjdlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmVzZXRJbnB1dFR5cGUuY3BwCkBAIC0zNywxMyArMzcsMTIgQEAKICNpbmNsdWRlICJIVE1M
SW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlICJM
b2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBSZXNldElucHV0VHlwZTo6Y3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBS
ZXNldElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBSZXNldElucHV0VHlwZShlbGVtZW50KSk7CisgICAgcmV0dXJu
IHN0ZDo6dW5pcXVlX3B0cjxSZXNldElucHV0VHlwZT4obmV3IFJlc2V0SW5wdXRUeXBlKGVsZW1l
bnQpKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBSZXNldElucHV0VHlwZTo6Zm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaAppbmRleCA0NWE4
OWFiMzNiMjkxNjMyMzc3Yzk5NTQ1ZTljNjk1ZTkwMTYxYzA1Li4wOWNhY2I3YzUzZDk4NWVkNjEw
MDI5ZDYyMDE0NmU1NzYzNmYwNTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jl
c2V0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5o
CkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVzZXRJbnB1
dFR5cGUgOiBwdWJsaWMgQmFzZUJ1dHRvbklucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVzZXRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCkgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCmluZGV4IGZjOGRkNzZlMWQxZTZhMGIwMWJlZWE2OGU0
ZWJmYzRkNzI4NjkwZWUuLmZiYTc2MzZjZDhhZDM2N2Q0YjAxYmNlZjg3OGYxNzQwMWZkMGU5OGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKQEAgLTM4LDcgKzM4LDYg
QEAKICNpbmNsdWRlICJSZW5kZXJTZWFyY2hGaWVsZC5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCIKLSNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUyLDkgKzUxLDkgQEAg
aW5saW5lIFNlYXJjaElucHV0VHlwZTo6U2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpCiB7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IFNlYXJjaElucHV0VHlwZTo6Y3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBl
PiBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewot
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgU2VhcmNoSW5wdXRUeXBlKGVsZW1lbnQpKTsKKyAgICBy
ZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFNlYXJjaElucHV0VHlwZT4obmV3IFNlYXJjaElucHV0VHlw
ZShlbGVtZW50KSk7CiB9CiAKIHZvaWQgU2VhcmNoSW5wdXRUeXBlOjphdHRhY2goKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmgKaW5kZXggOWMwYTc1YWQzNmY3MjdmNTkzZGE2MTMz
N2ZhZjllMGY1NjYzNDk4NS4uMjQyMWIwNmIxNjA2NzQyMDEyY2U0YjdiZjhjNzk5OTkwNDIxMTkz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5oCkBAIC00MSw3ICs0MSw3IEBA
IGNsYXNzIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ7CiAKIGNsYXNzIFNlYXJjaElu
cHV0VHlwZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAK
ICAgICB2b2lkIHN0b3BTZWFyY2hFdmVudFRpbWVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3Vi
bWl0SW5wdXRUeXBlLmNwcAppbmRleCBkZWQ0MWRiZjVmYmY5YzEwMDFlNmY0Njg5NDc1YWJhMjFl
YTI0YWZjLi44ZjNmMzQ5NjlmZjVmZDZjZjM5MjM4N2M4NGQ5OGVhNWI3NDgwYjdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuY3BwCkBAIC0zOCwxMyArMzgsMTIgQEAKICNp
bmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIK
ICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBTdWJtaXRJbnB1
dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQorc3RkOjp1bmlxdWVfcHRy
PElucHV0VHlwZT4gU3VibWl0SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFN1Ym1pdElucHV0VHlwZShlbGVtZW50
KSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxTdWJtaXRJbnB1dFR5cGU+KG5ldyBTdWJt
aXRJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFN1Ym1pdElu
cHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElu
cHV0VHlwZS5oCmluZGV4IGQ5ZDg3YTE3NTQyYTkzM2QwY2MwZTQ4ODMwYmNmM2YyYWY3MGE3ZGUu
LmE5NmRmZGNiMmE1MGI3Y2Y2YjRmMmI1MTM2YTVmNGJkOTBiMWYzOWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9TdWJtaXRJbnB1dFR5cGUuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFN1Ym1pdElucHV0VHlwZSA6IHB1YmxpYyBCYXNlQnV0dG9uSW5wdXRUeXBl
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1
dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTdWJtaXRJbnB1
dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVs
ZW1lbnQpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwCmlu
ZGV4IDJkODdkMmY4ZDdhMGI4MTc1MTRjMzgyNTU4NWUwMzI0YTY0Zjk1ZTAuLjg2N2UyOGExZTJl
ZTA3OWNmMzE2NmY3OWI1NGUwYmI2NDdhMWM3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
bGVwaG9uZUlucHV0VHlwZS5jcHAKQEAgLTMzLDEzICszMywxMiBAQAogCiAjaW5jbHVkZSAiSFRN
TElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRU
eXBlPiBUZWxlcGhvbmVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KQorc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gVGVsZXBob25lSW5wdXRUeXBlOjpjcmVhdGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRl
bGVwaG9uZUlucHV0VHlwZShlbGVtZW50KSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxU
ZWxlcGhvbmVJbnB1dFR5cGU+KG5ldyBUZWxlcGhvbmVJbnB1dFR5cGUoZWxlbWVudCkpOwogfQog
CiB2b2lkIFRlbGVwaG9uZUlucHV0VHlwZTo6YXR0YWNoKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
bGVwaG9uZUlucHV0VHlwZS5oCmluZGV4IGFhNGFhNTI3YTY5M2RhNTBiYjM3NjRhYjJiYjRmZjk3
MDEyMTdlOWQuLjBmZTZlM2Y3M2Q2ZjBlMGU2ZDM4ZjhhYTVlY2VhNDE2MzVkZDcxMzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaApAQCAtMzcsNyArMzcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFRlbGVwaG9uZUlucHV0VHlwZSA6IHB1YmxpYyBC
YXNlVGV4dElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+
IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJ
bnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgVGVsZXBob25lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFz
ZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBl
LmNwcAppbmRleCBjNWYzYThmYWQ1MTEzMmZmZWQxZTc1NTk5Y2VjZjgzODhkMjIxOWQ1Li5hYTg2
YzViMjIxZTcyNzQ4ZmI0MjA2ZmNiNWE2ZGQyY2Q0OTk2OTZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dElucHV0VHlwZS5jcHAKQEAgLTMzLDE1ICszMywxNCBAQAogCiAjaW5jbHVkZSAiSFRNTElu
cHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBUZXh0SW5wdXRUeXBlOjpjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IFRleHRJ
bnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgVGV4dElucHV0VHlwZShlbGVtZW50KSk7CisgICAgcmV0dXJuIHN0ZDo6
dW5pcXVlX3B0cjxUZXh0SW5wdXRUeXBlPihuZXcgVGV4dElucHV0VHlwZShlbGVtZW50KSk7CiB9
CiAKIHZvaWQgVGV4dElucHV0VHlwZTo6YXR0YWNoKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRU
eXBlLmgKaW5kZXggYmEyNGNhOTIyNjJkYTZiYzBlZmIzZWFlOThkY2Q2YWQ3ZDgyMmZkNC4uY2Zm
NzgxMzE4ZThiNzYwYTI5NTUzOWY2ZTJhMGZlNTM1ZjUwNGYyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0SW5wdXRUeXBlLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBUZXh0SW5wdXRUeXBlIDogcHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVs
ZW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBUZXh0SW5wdXRUeXBlKEhUTUxJbnB1
dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCBlNzczOTM0OTk4MzNhMzkwNWViNzY2
YjVjM2FiMGVmNTM3MzA3M2E5Li40ZmJhOWI3ZDNjNTAyNDg3YTc0YWFkMTZlZmRmZDFmYmZjMzcx
ZjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTM5LDcgKzM5LDYg
QEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGgu
aD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTQsOSArNTMsOSBAQCBUaW1lSW5wdXRU
eXBlOjpUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7CiB9CiAKLU93
blB0cjxJbnB1dFR5cGU+IFRpbWVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50KQorc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gVGltZUlucHV0VHlwZTo6Y3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBU
aW1lSW5wdXRUeXBlKGVsZW1lbnQpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFRpbWVJ
bnB1dFR5cGU+KG5ldyBUaW1lSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIAogdm9pZCBUaW1lSW5w
dXRUeXBlOjphdHRhY2goKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAppbmRleCAxOTU4
ZDc3OThkZWUyOWY3ODdkMmZmZGEyNmQwNjQ4NWRlNmNmOGY2Li4wM2RkNzFmNWZmMDg1MjJmNDk3
YjYyZDMzNzRkMzg0Zjk4MGMyOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rp
bWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaApA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFRpbWVJbnB1dFR5
cGUgOiBwdWJsaWMgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUgewogcHVibGlj
OgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYp
OworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFRpbWVJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCmluZGV4IDFiNTVk
YzhlNTY2ZTM0MjliMzQyMDFjOWJiNjliMTZiODRlNzcxMjQuLjA1ZTU1YzdkYmMzOWEwZDdiMjJh
ZDFhZWNkZTY0ZjdkMjBhOGFmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJM
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAK
QEAgLTM1LDEzICszNSwxMiBAQAogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVk
ZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIlVSTC5oIgotI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElucHV0VHlwZT4g
VVJMSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5p
cXVlX3B0cjxJbnB1dFR5cGU+IFVSTElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBVUkxJbnB1dFR5cGUoZWxlbWVu
dCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8VVJMSW5wdXRUeXBlPihuZXcgVVJMSW5w
dXRUeXBlKGVsZW1lbnQpKTsKIH0KIAogdm9pZCBVUkxJbnB1dFR5cGU6OmF0dGFjaCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9VUkxJbnB1dFR5cGUuaAppbmRleCBiN2FiNjc0YTQ0OTQ4NGRkMTZmZDQ4MzI5Y2Nh
MDU5MTBhYTdjNDVkLi44MjMxYmE0MDYzMjcwNDQzZDdhYWE0ODZkNzg5MTJiY2E1MjA4N2NmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBVUkxJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5
cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElu
cHV0RWxlbWVudCYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBjcmVh
dGUoSFRNTElucHV0RWxlbWVudCYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFVSTElucHV0
VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1l
bnQpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKaW5kZXggNTE5ZGY1YTQ0
NTEzODI5NmYyNjliYTZmMTI1ZGI1ZmJiZjgwNjQ5NC4uOWZhZDUxM2ZjZWRiOGQ1ZjljNjBkODg5
NDNmMzk0Nzc3NjI2MzUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCkBA
IC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Niw5ICs0NSw5IEBA
IHN0YXRpYyBjb25zdCBpbnQgd2Vla0RlZmF1bHRTdGVwQmFzZSA9IC0yNTkyMDAwMDA7IC8vIFRo
ZSBmaXJzdCBkYXkgb2YgMTk3MC1XMDEuCiBzdGF0aWMgY29uc3QgaW50IHdlZWtEZWZhdWx0U3Rl
cCA9IDE7CiBzdGF0aWMgY29uc3QgaW50IHdlZWtTdGVwU2NhbGVGYWN0b3IgPSA2MDQ4MDAwMDA7
CiAKLU93blB0cjxJbnB1dFR5cGU+IFdlZWtJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KQorc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gV2Vla0lucHV0VHlwZTo6
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBXZWVrSW5wdXRUeXBlKGVsZW1lbnQpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRy
PFdlZWtJbnB1dFR5cGU+KG5ldyBXZWVrSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIAogdm9pZCBX
ZWVrSW5wdXRUeXBlOjphdHRhY2goKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9X
ZWVrSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAppbmRl
eCBjYWU3OWU5MWJiOWEwN2JhNjRkNDAzYTQ0ZTY2ZjllODE1OWUyYjI0Li5iZjU1NTU0MjM5YjBl
YmFkZTYzMTc5N2IwOWE3MGYxY2I2MGQ1YWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1dlZWtJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5
cGUuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlZWtJ
bnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUgewog
cHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxl
bWVudCYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlZWtJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZShlbGVtZW50KSB7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214889</attachid>
            <date>2013-10-22 14:58:44 -0700</date>
            <delta_ts>2013-10-23 00:34:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123160-20131022145843.patch</filename>
            <type>text/plain</type>
            <size>49363</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFhODZhZWJlNjkzMjIw
YjQyZTUxZDllOGU1YWQ4ZDA1YjFjMTczNC4uODg1MjRmOTg3YjJhYjM2ZTE4NDdlMDY3ZDg1MWFj
MzE3ZmFiNjQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEzLTEwLTIyICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBIVE1MIGlucHV0IHR5
cGUgb2JqZWN0cyBzaG91bGQgYmUgbWFuYWdlZCB0aHJvdWdoIHN0ZDo6dW5pcXVlX3B0cgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTYwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgY29u
c3RydWN0b3JzIG9mIHRoZSBJbnB1dFR5cGUgc3ViY2xhc3NlcyBwdWJsaWMuIFRoaXMgbWFrZXMg
aXQgcG9zc2libGUgdG8gdXNlIHN0ZDo6bWFrZV91bmlxdWUgb24gdGhlc2UgY2xhc3NlcworICAg
ICAgICBhbmQgbWFrZXMgdGhlIFQ6OmNyZWF0ZSgpIGhlbHBlcnMgcmVkdW5kYW50LiBOZXcgaW5z
dGFuY2VzIG9mIHRoZXNlIGNsYXNzZXMgYXJlIG5vdyBtYW5hZ2VkIHRocm91Z2ggc3RkOjp1bmlx
dWVfcHRyLgorICAgICAgICBJbnB1dFR5cGU6OmNyZWF0ZSgpIG5vdyB1c2VzIGEgTmV2ZXJEZXN0
cm95ZWQgSW5wdXRUeXBlRmFjdG9yeU1hcCB0aGF0IG1hcHMgdHlwZSBuYW1lcyB0byBzdGQ6OmZ1
bmN0aW9ucyBhbmQgZ2V0cyBwb3B1bGF0ZWQKKyAgICAgICAgd2hlbiB0aGUgbWV0aG9kIGlzIGZp
cnN0IGNhbGxlZCBhbmQgdGhlIG1hcCBpcyBzdGlsbCBlbXB0eS4gVGhlIGZhY3RvcnkgaXMgdXNl
ZCB0byBjcmVhdGUgdGhlIG5ldyBJbnB1dFR5cGUgb2JqZWN0IGlmIHRoZQorICAgICAgICByZXF1
ZXN0ZWQgdHlwZSB3YXMgZm91bmQgaW4gdGhlIG1hcCwgYW5kIFRleHRJbnB1dFR5cGUgaXMgdXNl
ZCBvdGhlcndpc2UuCisKKyAgICAgICAgKiBodG1sL0J1dHRvbklucHV0VHlwZS5jcHA6CisgICAg
ICAgICogaHRtbC9CdXR0b25JbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJ1dHRvbklu
cHV0VHlwZTo6QnV0dG9uSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5wdXRUeXBlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpDaGVja2JveElucHV0VHlwZTo6Q2hlY2tib3hJbnB1dFR5cGUpOgorICAgICAgICAq
IGh0bWwvQ29sb3JJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvQ29sb3JJbnB1dFR5cGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpDb2xvcklucHV0VHlwZSk6Cisg
ICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0RhdGVJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KiBodG1sL0RhdGVUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUlu
cHV0VHlwZTo6RGF0ZVRpbWVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmg6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KiBodG1sL0VtYWlsSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpFbWFpbElucHV0VHlw
ZTo6RW1haWxJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6Cisg
ICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0ZVR5
cGUpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SGlkZGVuSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0hpZGRlbklucHV0VHlwZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6SGlkZGVuSW5wdXRUeXBlOjpIaWRkZW5JbnB1dFR5cGUpOgorICAg
ICAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJ
bnB1dFR5cGU6OkltYWdlSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlSW5wdXRUeXBlKTogQSB0ZW1wbGF0ZWQgaGVscGVyIHRoYXQgY29uc3RydWN0cyBhIG5ldyBJ
bnB1dFR5cGUgc3ViY2xhc3Mgb2JqZWN0IHRocm91Z2ggc3RkOjptYWtlX3VuaXF1ZS4KKyAgICAg
ICAgKFdlYkNvcmU6OnBvcHVsYXRlSW5wdXRUeXBlRmFjdG9yeU1hcCk6IFBvcHVsYXRlcyB0aGUg
cGFzc2VkLWluIG1hcCB3aXRoIHR5cGUtc3RkOjpmdW5jdGlvbiBwYWlycy4KKyAgICAgICAgKFdl
YkNvcmU6OklucHV0VHlwZTo6Y3JlYXRlKTogR2V0IHRoZSBzdGQ6OmZ1bmN0aW9uIGZvciB0aGUg
c3BlY2lmaWVkIHR5cGUsIG9yIGZhbGwgYmFjayB0byBUZXh0SW5wdXRUeXBlLgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRUeXBlOjpjcmVhdGVUZXh0KToKKyAgICAgICAgKiBodG1sL0lucHV0VHlw
ZS5oOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwv
TW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpNb250
aElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwOgorICAgICAg
ICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1
dFR5cGU6Ok51bWJlcklucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9QYXNzd29yZElucHV0VHlw
ZS5jcHA6CisgICAgICAgICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UGFzc3dvcmRJbnB1dFR5cGU6OlBhc3N3b3JkSW5wdXRUeXBlKToKKyAgICAgICAgKiBo
dG1sL1JhZGlvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1JhZGlvSW5wdXRUeXBlLmg6
CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lucHV0VHlwZTo6UmFkaW9JbnB1dFR5cGUpOgorICAg
ICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1Jlc2V0SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBo
dG1sL1Jlc2V0SW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNldElucHV0VHlwZTo6
UmVzZXRJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlYXJjaElucHV0VHlwZTo6U2VhcmNoSW5wdXRUeXBlKToKKyAgICAg
ICAgKiBodG1sL1NlYXJjaElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvU3VibWl0SW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1N1Ym1pdElucHV0VHlwZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U3VibWl0SW5wdXRUeXBlOjpTdWJtaXRJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwv
VGVsZXBob25lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1RlbGVwaG9uZUlucHV0VHlw
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGVsZXBob25lSW5wdXRUeXBlOjpUZWxlcGhvbmVJbnB1
dFR5cGUpOgorICAgICAgICAqIGh0bWwvVGV4dElucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRt
bC9UZXh0SW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5wdXRUeXBlOjpUZXh0
SW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAq
IGh0bWwvVGltZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvVVJMSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKiBodG1sL1VSTElucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6VVJMSW5w
dXRUeXBlOjpVUkxJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6
CisgICAgICAgICogaHRtbC9XZWVrSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpXZWVr
SW5wdXRUeXBlOjpXZWVrSW5wdXRUeXBlKToKKwogMjAxMy0xMC0yMiAgQW5kcmVpIEJ1Y3VyICA8
YWJ1Y3VyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNdIFBvc3NpYmxlIHBlcmZv
cm1hbmNlIHJlZ3Jlc3Npb24gYWZ0ZXIgcjE1NzU2NwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25J
bnB1dFR5cGUuY3BwCmluZGV4IDljZTI4MGM4NTI0YjlhYmNhZDljNWQzM2IzY2EyNzI5ZmExM2Zk
NWIuLmNiNDUyZTY0M2Y1MWU1YjM2Njk3Y2ZlMTExMmMyMWNiMDNmYjY2M2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5jcHAKQEAgLTMyLDE1ICszMiw5IEBACiAjaW5jbHVk
ZSAiQnV0dG9uSW5wdXRUeXBlLmgiCiAKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRy
PElucHV0VHlwZT4gQnV0dG9uSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEJ1dHRvbklucHV0VHlwZShlbGVtZW50
KSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgQnV0dG9uSW5wdXRUeXBlOjpmb3JtQ29udHJv
bFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6YnV0dG9uKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuaAppbmRleCBiNGU5NDgwNTk2ZmQzMDkzNThm
OTJmOTNkODc5ZmFiMTEzNTczNWFhLi5iNWUzYjhlZjZhMzVkNDYxZGEzMDI5Zjc1MjhlMzFkNmM2
ZGRhZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKQEAgLTM3LDEwICsz
Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQnV0dG9uSW5wdXRUeXBlIDogcHVi
bGljIEJhc2VCdXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5w
dXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIEJ1dHRvbklucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAKIHByaXZhdGU6Ci0gICAgQnV0dG9uSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIHN1cHBvcnRzVmFsaWRhdGlvbigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBpc1RleHRCdXR0b24oKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAKaW5kZXggMGVjNGQxZmIyMzQ5NGExNDg2MGVlMjUz
MzA1ODk4OThmYzkzZmNlMy4uNjljZjA1YmNhZGQxYmVjNjIwZTY0MzllNWU3YzMwNzQ4Y2E5Zjlm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAKQEAgLTM2LDE1
ICszNiw5IEBACiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlICJLZXlib2Fy
ZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElucHV0VHlwZT4g
Q2hlY2tib3hJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewot
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2hlY2tib3hJbnB1dFR5cGUoZWxlbWVudCkpOwotfQot
CiBjb25zdCBBdG9taWNTdHJpbmcmIENoZWNrYm94SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUo
KSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6Y2hlY2tib3goKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaAppbmRleCA0NWIzZjgzMjUxYzQ5YmJlYjVi
NjAzN2U1MTE1NjY3M2E4NTJlZDk0Li44Y2QwOTMwMzg4NDk5YmFjNGFlMTE2MWI3ZTQ5NDc2MzI4
OTU3MDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oCkBAIC0zNywx
MCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENoZWNrYm94SW5wdXRUeXBl
IDogcHVibGljIEJhc2VDaGVja2FibGVJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBP
d25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIENoZWNrYm94
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNoZWNrYWJsZUlucHV0
VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBDaGVja2JveElucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5n
JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgp
IGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRl
eCBjMzI1ZmM4NWVmMTExMDJmYzYzMmVhZDNmOGFlN2VmYjFjOWVhNmJhLi5kZTliYWVmZmMxODNi
Nzk0NmZjNmRkMGQzZjllMDY0NmNmNjk0YTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5w
dXRUeXBlLmNwcApAQCAtNDUsNyArNDUsNiBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNp
bmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY2LDExICs2NSw2IEBAIHN0YXRpYyBib29sIGlz
VmFsaWRDb2xvclN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIHJldHVybiBjb2xvci5p
c1ZhbGlkKCkgJiYgIWNvbG9yLmhhc0FscGhhKCk7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IENv
bG9ySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IENvbG9ySW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogQ29sb3JJ
bnB1dFR5cGU6On5Db2xvcklucHV0VHlwZSgpCiB7CiAgICAgZW5kQ29sb3JDaG9vc2VyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKaW5kZXggMDBhM2Y1YjI1MTU5N2RlZDM2OTQy
YzY5NmYyOTQ4ODY5MzhkNGVlNy4uNzAwODVmZjMwNzg2NjM3YTM0YWNjY2Q2MjY1YWU3NjdlYmE1
MWQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaApAQCAtMzksNyArMzksNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbG9ySW5wdXRUeXBlIDogcHVibGljIEJh
c2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLCBwdWJsaWMgQ29sb3JDaG9vc2VyQ2xpZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVs
ZW1lbnQmKTsKKyAgICBleHBsaWNpdCBDb2xvcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50KSA6IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAg
IHZpcnR1YWwgfkNvbG9ySW5wdXRUeXBlKCk7CiAKICAgICAvLyBDb2xvckNob29zZXJDbGllbnQg
aW1wbGVtZW50YXRpb24uCkBAIC01MSw3ICs1MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFZl
Y3RvcjxDb2xvcj4gc3VnZ2VzdGlvbnMoKSBjb25zdCBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAg
ICBleHBsaWNpdCBDb2xvcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJh
c2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNDb2xvckNvbnRyb2woKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNw
cAppbmRleCAxMmZhMDQwOTM5NjE4MTVkOWFiZTk1OTZlZDk1MTJmMmU0MjA5M2QxLi42OTU3NTMx
ODIwMzE0YzgwNWIzMDcyNjhiYjUwOGEzNTg5MTNhNjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0
ZUlucHV0VHlwZS5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMu
aCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTUxLDExICs1MCw2IEBAIGlubGluZSBEYXRlSW5wdXRUeXBlOjpEYXRlSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IERhdGVJ
bnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgRGF0ZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgRGF0ZUlu
cHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJl
T2JzZXJ2ZXI6OklucHV0VHlwZURhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaApp
bmRleCA0YTBjMjNkMTllMTFmZTNkZWZlZDgwZDhlMDdkN2JjZjBlMzE5ZjJjLi40NzAzMWUyMjE4
ZmZiOWFlNDNkM2E4ZGQyMDYzYWI4MzJhYWJkNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1
dFR5cGUuaApAQCAtMzgsMTAgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
YXRlSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBl
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1
dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQm
KTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKaW5kZXggMTFmN2U5ZWFi
ODFkYTlmY2FiOTdiOWRkNTUyOWQ4Y2Y5NTg5OWViYS4uZTZlNGI3MDk3ZDY3MGQ3NzQ1ODQwOWU2
Yjg2NWU5MmI4ZmYzMzFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGlt
ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlw
ZS5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRl
ICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsMTEg
KzQ2LDYgQEAgc3RhdGljIGNvbnN0IGludCBkYXRlVGltZURlZmF1bHRTdGVwID0gNjA7CiBzdGF0
aWMgY29uc3QgaW50IGRhdGVUaW1lRGVmYXVsdFN0ZXBCYXNlID0gMDsKIHN0YXRpYyBjb25zdCBp
bnQgZGF0ZVRpbWVTdGVwU2NhbGVGYWN0b3IgPSAxMDAwOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBE
YXRlVGltZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0g
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRlVGltZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0K
IHZvaWQgRGF0ZVRpbWVJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgb2JzZXJ2ZUZlYXR1cmVJ
ZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVEYXRlVGltZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmgKaW5kZXggMjBmNGRkZjkxZDBiN2JlZjVhOTExMDcw
MGRkMmE2MmNhNzA0YzkyMi4uMWIyOGFhNzdkY2ZkYzgxODMwMTg1MmRhNjQ2OGYzNTYyYTc5NGE2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaApAQCAtMzksMTAgKzM5
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRlVGltZUlucHV0VHlwZSA6IHB1
YmxpYyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAg
ZXhwbGljaXQgRGF0ZVRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBC
YXNlRGF0ZVRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgRGF0ZVRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0
ZVRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUo
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVU
eXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmNwcAppbmRleCA1NWQ0ZDA5MzA2MzI5ZDg3ZDUyN2Q3MjYxODBhNjJiMzg3
NWU5Mjc5Li45N2QwODNkZmQyNzk0M2NiY2FlYWE3ZmMyMzM5MDE1OWVlODBiZTY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTM2LDcg
KzM2LDYgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ2LDExICs0NSw2IEBAIHN0YXRp
YyBjb25zdCBpbnQgZGF0ZVRpbWVMb2NhbERlZmF1bHRTdGVwID0gNjA7CiBzdGF0aWMgY29uc3Qg
aW50IGRhdGVUaW1lTG9jYWxEZWZhdWx0U3RlcEJhc2UgPSAwOwogc3RhdGljIGNvbnN0IGludCBk
YXRlVGltZUxvY2FsU3RlcFNjYWxlRmFjdG9yID0gMTAwMDsKIAotT3duUHRyPElucHV0VHlwZT4g
RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
Ci17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRlVGltZUxvY2FsSW5wdXRUeXBlKGVsZW1l
bnQpKTsKLX0KLQogdm9pZCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjphdHRhY2goKQogewogICAg
IG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlRGF0ZVRp
bWVMb2NhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5o
CmluZGV4IDY5ZjJiYmE2MzkyN2E4OTM0MTVhZDZjMGRjMzE0MmQzNDY0ZTMxZGQuLmJjM2U5ZDJk
NTI4MDMzNjk0ODkxNTBhZmViZWYyN2JiOWU5ZWNiOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCkBAIC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIERhdGVUaW1lTG9jYWxJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNo
b29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25Q
dHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IERh
dGVUaW1lTG9jYWxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0
ZVRpbWVMb2NhbElucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNp
dCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFz
ZURhdGVUaW1lTG9jYWxJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0
dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29u
dHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpU
eXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1
dFR5cGUuY3BwCmluZGV4IDI3ZGU4ZDQ1ZjZkOGYwMGFiNjg1NmViNmQ1Y2EzNGZjNjAxZWVjZDgu
LmZhNjc5ZGMzMGJjZmU3NzRhYzQwNzc1N2UzZGMzZWMzODllYjMzMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiSW5w
dXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAi
UmVndWxhckV4cHJlc3Npb24uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NTMsMTEgKzUyLDYgQEAgc3RhdGljIGJvb2wgaXNWYWxpZEVtYWlsQWRkcmVzcyhjb25zdCBTdHJp
bmcmIGFkZHJlc3MpCiAgICAgcmV0dXJuICFtYXRjaE9mZnNldCAmJiBtYXRjaExlbmd0aCA9PSBh
ZGRyZXNzTGVuZ3RoOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBFbWFpbElucHV0VHlwZTo6Y3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBFbWFpbElucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgRW1haWxJbnB1dFR5cGU6OmF0
dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2goKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRW1haWxJbnB1dFR5cGUuaAppbmRleCBlMGQyMTMxODZkOTliOGUwNWM0MWViZWRiMDgyMjA3
ZjBiYjRkYmY5Li5iN2FlZWM1NDUwMDg4NDlhNTY0OGIxNzY0NDdjMGEwNDg5YjkxY2RiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVtYWlsSW5wdXRUeXBlIDogcHVibGljIEJhc2VUZXh0SW5w
dXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhU
TUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBFbWFpbElucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2
YXRlOgotICAgIGV4cGxpY2l0IEVtYWlsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1l
bnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0
dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29u
dHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNo
Rm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5jcHAKaW5kZXggZDI5ZmExMjU2YmU3N2UwZjVmNzMwY2ZmN2FkNDAwNGRkZmU1NThj
MC4uMDZiYjlmYTNmZjdkM2MzMjdlYjdkZDhiYzczMmZjZWY0OTc5MGE2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSAiUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2wuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCkBAIC04NSwxMSArODQsNiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFVwbG9hZEJ1
dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKICAgICByZXR1cm4gcHNldWRvSWQ7
CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IEZpbGVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmlsZUlucHV0VHlw
ZShlbGVtZW50KSk7Ci19Ci0KIEZpbGVJbnB1dFR5cGU6OkZpbGVJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkKICAgICA6IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVs
ZW1lbnQpCiAgICAgLCBtX2ZpbGVMaXN0KEZpbGVMaXN0OjpjcmVhdGUoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggNmE0YWM5MzU0MGEyZjg2ZWY5MzJhMDg3NDIwN2E2ODVh
ZmU2ZGU4OS4uYzkxMTVkZDQ1NGRmMDBiOWU1MDgwYzQ3MjU3YmUwOTIxZTJkZDYyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTQ0LDE0ICs0NCwxMiBAQCBjbGFzcyBGaWxl
TGlzdDsKIAogY2xhc3MgRmlsZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtl
eUlucHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2hvb3NlckNsaWVudCwgcHJpdmF0ZSBGaWxlSWNvbkxv
YWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgRmlsZUlucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB+RmlsZUlucHV0VHlwZSgpOwogCiAgICAgc3RhdGlj
IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBmaWxlc0Zyb21Gb3JtQ29udHJvbFN0YXRlKGNv
bnN0IEZvcm1Db250cm9sU3RhdGUmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBGaWxlSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKLQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIEZvcm1D
b250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0
ZSYpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5k
ZXggNzI1NmYyZTUzYzBlZjk0Mzg4MDhlNTBmYjNjYjdhYTJmZTAxN2ZkNS4uMjgxN2U4NzczN2Zk
N2QyNmY3OTU4YjAxOWFhZjQ1MTY1ZjUyZTBjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCkBAIC00NTYsNyArNDU2LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50
OjpzZXRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1
cGRhdGVUeXBlKCkKIHsKLSAgICBPd25QdHI8SW5wdXRUeXBlPiBuZXdUeXBlID0gSW5wdXRUeXBl
OjpjcmVhdGUoKnRoaXMsIGZhc3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIpKTsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8SW5wdXRUeXBlPiBuZXdUeXBlID0gSW5wdXRUeXBlOjpjcmVhdGUoKnRoaXMsIGZh
c3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIpKTsKICAgICBib29sIGhhZFR5cGUgPSBtX2hhc1R5cGU7
CiAgICAgbV9oYXNUeXBlID0gdHJ1ZTsKICAgICBpZiAobV9pbnB1dFR5cGUtPmZvcm1Db250cm9s
VHlwZSgpID09IG5ld1R5cGUtPmZvcm1Db250cm9sVHlwZSgpKQpAQCAtNDgxLDcgKzQ4MSw3IEBA
IHZvaWQgSFRNTElucHV0RWxlbWVudDo6dXBkYXRlVHlwZSgpCiAgICAgaWYgKHdhc0F0dGFjaGVk
KQogICAgICAgICBTdHlsZTo6ZGV0YWNoUmVuZGVyVHJlZSgqdGhpcyk7CiAKLSAgICBtX2lucHV0
VHlwZSA9IG5ld1R5cGUucmVsZWFzZSgpOworICAgIG1faW5wdXRUeXBlID0gc3RkOjptb3ZlKG5l
d1R5cGUpOwogICAgIG1faW5wdXRUeXBlLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAKICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApp
bmRleCAzNDUyNmJlMjAyOGE2MTBiN2ZhMDcxYzY0MDliMzdjZDBlMThhZWY2Li5lZmYzZmE5MTJl
NDRjOTZlMDA1ZjMwOWFiNTI2OGI2ZGQyN2E0N2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaApAQCAtNDQyLDcgKzQ0Miw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKICAgICBib29sIG1faGFzVG91Y2hFdmVudEhhbmRsZXIgOiAxOwogI2VuZGlm
Ci0gICAgT3duUHRyPElucHV0VHlwZT4gbV9pbnB1dFR5cGU7CisgICAgc3RkOjp1bmlxdWVfcHRy
PElucHV0VHlwZT4gbV9pbnB1dFR5cGU7CiAgICAgLy8gVGhlIEltYWdlTG9hZGVyIG11c3QgYmUg
b3duZWQgYnkgdGhpcyBlbGVtZW50IGJlY2F1c2UgdGhlIGxvYWRlciBjb2RlIGFzc3VtZXMKICAg
ICAvLyB0aGF0IGl0IGxpdmVzIGFzIGxvbmcgYXMgaXRzIG93bmluZyBlbGVtZW50IGxpdmVzLiBJ
ZiB3ZSBtb3ZlIHRoZSBsb2FkZXIgaW50bwogICAgIC8vIHRoZSBJbWFnZUlucHV0IG9iamVjdCB3
ZSBtYXkgZGVsZXRlIHRoZSBsb2FkZXIgd2hpbGUgdGhpcyBlbGVtZW50IGxpdmVzIG9uLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCmluZGV4IDgzYTYzZmIxYzM4YTM5Yzg3
MWRhYjM3NzljMTIwYmI1ZjEzODZjMjMuLjEwMzRkOGJkZmM4ZDgyNTQ3MjUxYjdiN2ZiNTE5M2Y0
ZmQwYWFkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKQEAgLTM3
LDE3ICszNywxMSBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgotI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIAotT3duUHRyPElucHV0VHlwZT4gSGlkZGVuSW5wdXRUeXBlOjpjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEhpZGRl
bklucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgSGlkZGVuSW5w
dXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVO
YW1lczo6aGlkZGVuKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAppbmRleCBl
Mzg3YTFhMzUwOTU0NDI3ZDYxZWIyMGZkYzRkZmQ2NGE1MWQ1ODZmLi41MWRiYWZjZmE5YWE3NTA1
YTJlMmMxN2M2NTBhYWMzMjIzNjU2ZWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hpZGRlbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRU
eXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSGlk
ZGVuSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93
blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQg
SGlkZGVuSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVs
ZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEhpZGRlbklucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNv
bnN0IEZvcm1Db250cm9sU3RhdGUmKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5jcHAKaW5kZXggODkzNTZkN2VkMjAwOTM5N2RhZTQ0NzllZjQzOGRmYmZhYmQ4MDc4
My4uMDhiNzcxZmYzMTMxYzAxZTUwNTBkYzQ1MGQ1NjhhMDMxNGM5OWExMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKQEAgLTMzLDIyICszMywxNiBAQAogI2luY2x1ZGUg
IklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJl
bmRlckltYWdlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1pbmxpbmUgSW1hZ2VJbnB1
dFR5cGU6OkltYWdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitJbWFnZUlu
cHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKICAgICA6
IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkKIHsKIH0KIAotT3duUHRyPElucHV0VHlwZT4g
SW1hZ2VJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgSW1hZ2VJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBjb25z
dCBBdG9taWNTdHJpbmcmIEltYWdlSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAog
ewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6aW1hZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VJbnB1dFR5cGUuaAppbmRleCA0YTZiNWJhMzZiNTI0NWZlNThiMDM0ZTdjMTU3ZDFkYWZlOGQw
NzI0Li4xNTFmYjg2MWYxMTA5Y2M4NjI1ZjViNmNlZDAwMmJlOTQzNzRhNzNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCkBAIC00MCwxMCArNDAsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEltYWdlSW5wdXRUeXBlIDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5
cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElu
cHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IEltYWdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBJbWFnZUlucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50Jik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlw
ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc0Zvcm1EYXRhQXBwZW5kYWJs
ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3Jt
RGF0YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNw
cAppbmRleCA5MDA3OGJiYzk4Mzg5ZDg5ZDA1NWUzZjYyYjY5MDUwNGE0ZjFlMTFhLi4yYzA4MmFi
ZTliY2MxOTJlOTdlMjdjMDAxZjE1YjYxMjZhMzlmMDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwCkBAIC04NCw3NCArODQsNzggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLXR5cGVkZWYgT3duUHRy
PElucHV0VHlwZT4gKCpJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24pKEhUTUxJbnB1dEVsZW1lbnQm
KTsKLXR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIElucHV0VHlwZUZhY3RvcnlGdW5jdGlv
biwgQ2FzZUZvbGRpbmdIYXNoPiBJbnB1dFR5cGVGYWN0b3J5TWFwOwordHlwZWRlZiBIYXNoTWFw
PEF0b21pY1N0cmluZywgc3RkOjpmdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPihI
VE1MSW5wdXRFbGVtZW50Jik+LCBDYXNlRm9sZGluZ0hhc2g+IElucHV0VHlwZUZhY3RvcnlNYXA7
CiAKLXN0YXRpYyBPd25QdHI8SW5wdXRUeXBlRmFjdG9yeU1hcD4gY3JlYXRlSW5wdXRUeXBlRmFj
dG9yeU1hcCgpCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbnB1
dFR5cGU+IGNyZWF0ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAg
IE93blB0cjxJbnB1dFR5cGVGYWN0b3J5TWFwPiBtYXAgPSBhZG9wdFB0cihuZXcgSW5wdXRUeXBl
RmFjdG9yeU1hcCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VD4oZWxlbWVudCk7Cit9
CiAKK3N0YXRpYyB2b2lkIHBvcHVsYXRlSW5wdXRUeXBlRmFjdG9yeU1hcChJbnB1dFR5cGVGYWN0
b3J5TWFwJiBtYXApCit7CiAgICAgLy8gRklYTUU6IFJlbW92ZSB1bm5lY2Vzc2FyeSAnJidzIGZy
b20gdGhlIGZvbGxvd2luZyBtYXAuYWRkIG9wZXJhdGlvbnMKICAgICAvLyBvbmNlIHdlIHN3aXRj
aCB0byBhIG5vbi1icm9rZW4gVmlzdWFsIFN0dWRpbyBjb21waWxlci4gIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEyMzUKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVO
YW1lczo6YnV0dG9uKCksICZCdXR0b25JbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQo
SW5wdXRUeXBlTmFtZXM6OmNoZWNrYm94KCksICZDaGVja2JveElucHV0VHlwZTo6Y3JlYXRlKTsK
KyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpidXR0b24oKSwgJmNyZWF0ZUlucHV0VHlwZTxC
dXR0b25JbnB1dFR5cGU+KTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpjaGVja2JveCgp
LCAmY3JlYXRlSW5wdXRUeXBlPENoZWNrYm94SW5wdXRUeXBlPik7CiAjaWYgRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1IpCi0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmNvbG9yKCksICZDb2xv
cklucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpjb2xvcigp
LCAmY3JlYXRlSW5wdXRUeXBlPENvbG9ySW5wdXRUeXBlPik7CiAjZW5kaWYKICNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9EQVRFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLmlucHV0VHlwZURhdGVFbmFibGVkKCkpCi0gICAgICAgIG1hcC0+YWRkKElucHV0
VHlwZU5hbWVzOjpkYXRlKCksICZEYXRlSW5wdXRUeXBlOjpjcmVhdGUpOworICAgICAgICBtYXAu
YWRkKElucHV0VHlwZU5hbWVzOjpkYXRlKCksICZjcmVhdGVJbnB1dFR5cGU8RGF0ZUlucHV0VHlw
ZT4pOwogI2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkK
ICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5
cGVEYXRlVGltZUVuYWJsZWQoKSkKLSAgICAgICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmRh
dGV0aW1lKCksICZEYXRlVGltZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgbWFwLmFkZChJ
bnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUoKSwgJmNyZWF0ZUlucHV0VHlwZTxEYXRlVGltZUlucHV0
VHlwZT4pOwogI2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkKICAg
ICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5cGVE
YXRlVGltZUxvY2FsRW5hYmxlZCgpKQotICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6
ZGF0ZXRpbWVsb2NhbCgpLCAmRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAg
ICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWVsb2NhbCgpLCAmY3JlYXRlSW5wdXRU
eXBlPERhdGVUaW1lTG9jYWxJbnB1dFR5cGU+KTsKICNlbmRpZgotICAgIG1hcC0+YWRkKElucHV0
VHlwZU5hbWVzOjplbWFpbCgpLCAmRW1haWxJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5h
ZGQoSW5wdXRUeXBlTmFtZXM6OmZpbGUoKSwgJkZpbGVJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAg
bWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmhpZGRlbigpLCAmSGlkZGVuSW5wdXRUeXBlOjpjcmVh
dGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjppbWFnZSgpLCAmSW1hZ2VJbnB1dFR5
cGU6OmNyZWF0ZSk7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6ZW1haWwoKSwgJmNyZWF0
ZUlucHV0VHlwZTxFbWFpbElucHV0VHlwZT4pOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6
OmZpbGUoKSwgJmNyZWF0ZUlucHV0VHlwZTxGaWxlSW5wdXRUeXBlPik7CisgICAgbWFwLmFkZChJ
bnB1dFR5cGVOYW1lczo6aGlkZGVuKCksICZjcmVhdGVJbnB1dFR5cGU8SGlkZGVuSW5wdXRUeXBl
Pik7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6aW1hZ2UoKSwgJmNyZWF0ZUlucHV0VHlw
ZTxJbWFnZUlucHV0VHlwZT4pOwogI2lmIEVOQUJMRShJTlBVVF9UWVBFX01PTlRIKQogICAgIGlm
IChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZU1vbnRo
RW5hYmxlZCgpKQotICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6bW9udGgoKSwgJk1v
bnRoSW5wdXRUeXBlOjpjcmVhdGUpOworICAgICAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpt
b250aCgpLCAmY3JlYXRlSW5wdXRUeXBlPE1vbnRoSW5wdXRUeXBlPik7CiAjZW5kaWYKLSAgICBt
YXAtPmFkZChJbnB1dFR5cGVOYW1lczo6bnVtYmVyKCksICZOdW1iZXJJbnB1dFR5cGU6OmNyZWF0
ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OnBhc3N3b3JkKCksICZQYXNzd29yZElu
cHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6cmFkaW8oKSwg
JlJhZGlvSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpy
YW5nZSgpLCAmUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBl
TmFtZXM6OnJlc2V0KCksICZSZXNldElucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJ
bnB1dFR5cGVOYW1lczo6c2VhcmNoKCksICZTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAg
bWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OnN1Ym1pdCgpLCAmU3VibWl0SW5wdXRUeXBlOjpjcmVh
dGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjp0ZWxlcGhvbmUoKSwgJlRlbGVwaG9u
ZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpudW1iZXIo
KSwgJmNyZWF0ZUlucHV0VHlwZTxOdW1iZXJJbnB1dFR5cGU+KTsKKyAgICBtYXAuYWRkKElucHV0
VHlwZU5hbWVzOjpwYXNzd29yZCgpLCAmY3JlYXRlSW5wdXRUeXBlPFBhc3N3b3JkSW5wdXRUeXBl
Pik7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6cmFkaW8oKSwgJmNyZWF0ZUlucHV0VHlw
ZTxSYWRpb0lucHV0VHlwZT4pOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OnJhbmdlKCks
ICZjcmVhdGVJbnB1dFR5cGU8UmFuZ2VJbnB1dFR5cGU+KTsKKyAgICBtYXAuYWRkKElucHV0VHlw
ZU5hbWVzOjpyZXNldCgpLCAmY3JlYXRlSW5wdXRUeXBlPFJlc2V0SW5wdXRUeXBlPik7CisgICAg
bWFwLmFkZChJbnB1dFR5cGVOYW1lczo6c2VhcmNoKCksICZjcmVhdGVJbnB1dFR5cGU8U2VhcmNo
SW5wdXRUeXBlPik7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6c3VibWl0KCksICZjcmVh
dGVJbnB1dFR5cGU8U3VibWl0SW5wdXRUeXBlPik7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1l
czo6dGVsZXBob25lKCksICZjcmVhdGVJbnB1dFR5cGU8VGVsZXBob25lSW5wdXRUeXBlPik7CiAj
aWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5cGVUaW1lRW5hYmxlZCgpKQotICAgICAgICBtYXAt
PmFkZChJbnB1dFR5cGVOYW1lczo6dGltZSgpLCAmVGltZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAg
ICAgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6dGltZSgpLCAmY3JlYXRlSW5wdXRUeXBlPFRp
bWVJbnB1dFR5cGU+KTsKICNlbmRpZgotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjp1cmwo
KSwgJlVSTElucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjp1
cmwoKSwgJmNyZWF0ZUlucHV0VHlwZTxVUkxJbnB1dFR5cGU+KTsKICNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9XRUVLKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLmlucHV0VHlwZVdlZWtFbmFibGVkKCkpCi0gICAgICAgIG1hcC0+YWRkKElucHV0VHlwZU5h
bWVzOjp3ZWVrKCksICZXZWVrSW5wdXRUeXBlOjpjcmVhdGUpOworICAgICAgICBtYXAuYWRkKElu
cHV0VHlwZU5hbWVzOjp3ZWVrKCksICZjcmVhdGVJbnB1dFR5cGU8V2Vla0lucHV0VHlwZT4pOwog
I2VuZGlmCiAgICAgLy8gTm8gbmVlZCB0byByZWdpc3RlciAidGV4dCIgYmVjYXVzZSBpdCBpcyB0
aGUgZGVmYXVsdCB0eXBlLgotCi0gICAgcmV0dXJuIG1hcDsKIH0KIAotT3duUHRyPElucHV0VHlw
ZT4gSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCwgY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlTmFtZSkKK3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IElucHV0VHlw
ZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZU5hbWUpCiB7Ci0gICAgc3RhdGljIGNvbnN0IElucHV0VHlwZUZhY3RvcnlNYXAqIGZhY3Rv
cnlNYXAgPSBjcmVhdGVJbnB1dFR5cGVGYWN0b3J5TWFwKCkubGVha1B0cigpOwotICAgIE93blB0
cjxJbnB1dFR5cGU+ICgqZmFjdG9yeSkoSFRNTElucHV0RWxlbWVudCYpID0gdHlwZU5hbWUuaXNF
bXB0eSgpID8gMCA6IGZhY3RvcnlNYXAtPmdldCh0eXBlTmFtZSk7Ci0gICAgaWYgKCFmYWN0b3J5
KQotICAgICAgICBmYWN0b3J5ID0gVGV4dElucHV0VHlwZTo6Y3JlYXRlOwotICAgIHJldHVybiBm
YWN0b3J5KGVsZW1lbnQpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxJbnB1dFR5cGVGYWN0
b3J5TWFwPiBmYWN0b3J5TWFwOworICAgIGlmIChmYWN0b3J5TWFwLmdldCgpLmlzRW1wdHkoKSkK
KyAgICAgICAgcG9wdWxhdGVJbnB1dFR5cGVGYWN0b3J5TWFwKGZhY3RvcnlNYXApOworCisgICAg
c3RkOjpmdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPihIVE1MSW5wdXRFbGVtZW50
Jik+IGZhY3RvcnkgPSB0eXBlTmFtZS5pc0VtcHR5KCkgPyBudWxscHRyIDogZmFjdG9yeU1hcC5n
ZXQoKS5nZXQodHlwZU5hbWUpOworICAgIGlmIChmYWN0b3J5KQorICAgICAgICByZXR1cm4gZmFj
dG9yeShlbGVtZW50KTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxUZXh0SW5wdXRUeXBl
PihlbGVtZW50KTsKIH0KIAotT3duUHRyPElucHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVhdGVUZXh0
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBJ
bnB1dFR5cGU6OmNyZWF0ZVRleHQoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBy
ZXR1cm4gVGV4dElucHV0VHlwZTo6Y3JlYXRlKGVsZW1lbnQpOworICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPFRleHRJbnB1dFR5cGU+KGVsZW1lbnQpOwogfQogCiBJbnB1dFR5cGU6On5JbnB1
dFR5cGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggNTI0NzBiMTQ0MDBkNzJiMjQ3Njk0
Mzc5ZDY0ZjE5NDJiZDQ0M2FjZS4uMTY1Y2ZjZDMyZmYwOTQ4OTcyYzhiNjdiMmY0ZTdkNGYzYjBj
N2Q2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC03NCw4ICs3NCw4IEBAIGNsYXNzIElu
cHV0VHlwZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAKIHB1YmxpYzoKLSAgICBz
dGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmLCBjb25zdCBB
dG9taWNTdHJpbmcmKTsKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlVGV4dChI
VE1MSW5wdXRFbGVtZW50Jik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+
IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiwgY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IGNyZWF0ZVRleHQoSFRNTElucHV0RWxlbWVu
dCYpOwogICAgIHZpcnR1YWwgfklucHV0VHlwZSgpOwogCiAgICAgc3RhdGljIGJvb2wgdGhlbWVT
dXBwb3J0c0RhdGFMaXN0VUkoSW5wdXRUeXBlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1
dFR5cGUuY3BwCmluZGV4IDQ4ZWFkMWZlOGUyNDE0YjY1NTFmNDdiMzNmNTljYjc0Y2JiNTE1ZDEu
LjY4MGNjZWU4NDRiN2Y1NzdjYWU4Njg5ZjY1NGExMTAyZGMwM2YzMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTQ5LDExICs0OCw2IEBAIHN0YXRpYyBjb25zdCBpbnQgbW9udGhEZWZh
dWx0U3RlcCA9IDE7CiBzdGF0aWMgY29uc3QgaW50IG1vbnRoRGVmYXVsdFN0ZXBCYXNlID0gMDsK
IHN0YXRpYyBjb25zdCBpbnQgbW9udGhTdGVwU2NhbGVGYWN0b3IgPSAxOwogCi1Pd25QdHI8SW5w
dXRUeXBlPiBNb250aElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
Ci17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNb250aElucHV0VHlwZShlbGVtZW50KSk7Ci19
Ci0KIHZvaWQgTW9udGhJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgb2JzZXJ2ZUZlYXR1cmVJ
ZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVNb250aCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01vbnRoSW5wdXRUeXBlLmgKaW5kZXggOWI1NGUwYjYwNGExZDIzZjM4ZTYzMGFjZTMwNjEzMmQx
YmNkM2VkNS4uMWM3ZmY4MDk0M2I2ZGNhZDM2YjI3ZTUzZDA4M2Q3M2ZkYzk2OWMzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtMzgsMTAgKzM4LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBNb250aElucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1
dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgTW9udGhJbnB1
dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlTW9udGhJbnB1dFR5cGUoZWxl
bWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgTW9udGhJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlTW9udGhJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKaW5kZXggNmY1NWRmYjljMDI0Mzk2ZWQ4Mjkw
MDAzMjRlZjJjOWZmNGFiYWEzOC4uOTg0Y2ZhMjFlOWRiODQ5ZjI2ZTU1NDA1ZWE4YTYyY2E3ZTdh
YTZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcApAQCAtNDQsNyAr
NDQsNiBAQAogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgog
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC05NCwxMSArOTMsNiBAQCBzdGF0aWMgUmVhbE51
bWJlclJlbmRlclNpemUgY2FsY3VsYXRlUmVuZGVyU2l6ZShjb25zdCBEZWNpbWFsJiB2YWx1ZSkK
ICAgICByZXR1cm4gUmVhbE51bWJlclJlbmRlclNpemUoc2l6ZU9mU2lnbiArIHNpemVPZlplcm8g
LCBudW1iZXJPZlplcm9BZnRlckRlY2ltYWxQb2ludCArIHNpemVPZkRpZ2l0cyk7CiB9CiAKLU93
blB0cjxJbnB1dFR5cGU+IE51bWJlcklucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOdW1iZXJJbnB1dFR5cGUoZWxl
bWVudCkpOwotfQotCiB2b2lkIE51bWJlcklucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBUZXh0
RmllbGRJbnB1dFR5cGU6OmF0dGFjaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9OdW1iZXJJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBl
LmgKaW5kZXggZjk5YTY2Zjc3YjQ5YTcxMzVkYmFhYjhiNzJlOTE5ZTdhN2U0ZGRmOS4uOWQ1Y2U4
NjAwZmE2NTExYzY4MGIwN2Y3OWMwYjNlZDc1NjQ4NzM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051
bWJlcklucHV0VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIE51bWJlcklucHV0VHlwZSA6IHB1YmxpYyBUZXh0RmllbGRJbnB1dFR5cGUgewogcHVi
bGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVu
dCYpOworICAgIE51bWJlcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IFRl
eHRGaWVsZElucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBOdW1iZXJJbnB1
dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBUZXh0RmllbGRJbnB1dFR5cGUoZWxl
bWVudCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5n
ZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1Bhc3N3b3JkSW5wdXRUeXBlLmNwcAppbmRleCBmYjU3YTNhN2Y2MjdmYTc1M2RkZmEwNjllMWJj
OWJjZjgxZTU1NDE0Li43ZjdlMGY5ZmNjYTM0NDJjNGM0ZGZjNjM0NTczNjQxMDk4MjNlNDQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcApAQCAtMzYsMTUgKzM2
LDkgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBl
TmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElucHV0VHlwZT4gUGFz
c3dvcmRJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgUGFzc3dvcmRJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBj
b25zdCBBdG9taWNTdHJpbmcmIFBhc3N3b3JkSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBj
b25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6cGFzc3dvcmQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaAppbmRleCBlYWYxNDhlZmU2ZGM3MWNmMTI5NTE2
MTcwZTY5ZmM0ZDM5ODE2YzMwLi5iZDJkZmJiNTAxM2I0YzJkMGNmODUyNDgyZTUxOGNjZTdlOTNi
OTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oCkBAIC0zNywxMCAr
MzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBhc3N3b3JkSW5wdXRUeXBlIDog
cHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElu
cHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBQYXNzd29yZElucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQp
IHsgfQogCiBwcml2YXRlOgotICAgIFBhc3N3b3JkSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250cm9sU3RhdGUoKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9s
U3RhdGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UmFkaW9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5j
cHAKaW5kZXggMGMyMjQxNmFmNjU5ZTAxNTIzNTBmMjYyYjY3MmY5NDY1ZjJlOTZlMi4uMjM5YTlj
ZTYwYWNmZGM3MjYwZjlkNjA4OWZkNjEzNzU0NWRhY2VkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9S
YWRpb0lucHV0VHlwZS5jcHAKQEAgLTMzLDE3ICszMywxMSBAQAogI2luY2x1ZGUgIk5vZGVUcmF2
ZXJzYWwuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNwYXRpYWxOYXZpZ2F0
aW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBSYWRp
b0lucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBSYWRpb0lucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIGNvbnN0IEF0
b21pY1N0cmluZyYgUmFkaW9JbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpyYWRpbygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lu
cHV0VHlwZS5oCmluZGV4IDE0MWJjNDg3OWE4N2RlZjBlNmFjMzJiNmM1OWM0NjM0NjlmZTgxMzUu
LjMxN2NiMjg4YjRiNDI2NmUzNmQ3NGRjMjNhYTdmYTYxNzI4ZGJmMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhZGlvSW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgUmFkaW9JbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNoZWNrYWJsZUlucHV0VHlw
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgUmFkaW9JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVu
dCYgZWxlbWVudCkgOiBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2
YXRlOgotICAgIGV4cGxpY2l0IFJhZGlvSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1l
bnQpIDogQmFzZUNoZWNrYWJsZUlucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29uc3QgT1ZFUlJJREU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDgwYjNiNjUxNDlkOWRkNThi
NWE1ZTI1Y2QwMjk1MGU5OTg0M2FmYTIuLmYzNzExZDNmYzdiNDdlOTUwMmQwZWU2N2RkYjkyZjhk
Y2IxMzIwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC00OSw3
ICs0OSw2IEBACiAjaW5jbHVkZSAiU3RlcFJhbmdlLmgiCiAjaW5jbHVkZSA8bGltaXRzPgogI2lu
Y2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAjaW5jbHVkZSAiVG91Y2guaCIKQEAgLTc4LDExICs3
Nyw2IEBAIHN0YXRpYyBEZWNpbWFsIGVuc3VyZU1heGltdW0oY29uc3QgRGVjaW1hbCYgcHJvcG9z
ZWRWYWx1ZSwgY29uc3QgRGVjaW1hbCYgbWluaW11CiAgICAgcmV0dXJuIHByb3Bvc2VkVmFsdWUg
Pj0gbWluaW11bSA/IHByb3Bvc2VkVmFsdWUgOiBzdGQ6Om1heChtaW5pbXVtLCBmYWxsYmFja1Zh
bHVlKTsKIH0KIAotT3duUHRyPElucHV0VHlwZT4gUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUmFuZ2VJ
bnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBSYW5nZUlucHV0VHlwZTo6UmFuZ2VJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKICAgICA6IElucHV0VHlwZShlbGVtZW50KQogI2lm
IEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9SYW5nZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5o
CmluZGV4IDQ4NjNlMGYxNzc2MzhlMWE3MWY5MzI2NDhkYWJhMDk2ZjI5ZjRlMDcuLjNjNzIyNTJj
MjhkNWRhODNiNWYwZDgxOGFlYjYxOGNmMDg5MGFhNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmgKQEAgLTM5LDEwICszOSw5IEBAIGNsYXNzIFNsaWRlclRodW1iRWxlbWVudDsK
IAogY2xhc3MgUmFuZ2VJbnB1dFR5cGUgRklOQUwgOiBwdWJsaWMgSW5wdXRUeXBlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQm
KTsKKyAgICBleHBsaWNpdCBSYW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgUmFuZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwog
ICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNS
YW5nZUNvbnRyb2woKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UmVzZXRJbnB1dFR5cGUuY3BwCmluZGV4IDEwNTZmMWNiNjEwZjE1N2QzZWYyOTRjMTBlMjg0MTEz
ZTU3YjAwZjUuLmMzMjg4ZGQ2NzFlMjRjNWE2ZWFlNDU4MDM3NmFiOTg0NTBmNThjNjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuY3BwCkBAIC0zNywxNSArMzcsOSBAQAogI2lu
Y2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgog
I2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU93blB0cjxJbnB1dFR5cGU+IFJlc2V0SW5wdXRU
eXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRv
cHRQdHIobmV3IFJlc2V0SW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogY29uc3QgQXRvbWljU3Ry
aW5nJiBSZXNldElucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1
cm4gSW5wdXRUeXBlTmFtZXM6OnJlc2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1Jlc2V0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRUeXBl
LmgKaW5kZXggNDVhODlhYjMzYjI5MTYzMjM3N2M5OTU0NWU5YzY5NWU5MDE2MWMwNS4uZjc0OWY2
OGQwMTU4ZDZkNjRlYTFmNGZjNzIzNmM4OWQwYzIwZDBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVz
ZXRJbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBSZXNldElucHV0VHlwZSA6IHB1YmxpYyBCYXNlQnV0dG9uSW5wdXRUeXBlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQm
KTsKKyAgICBleHBsaWNpdCBSZXNldElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhw
bGljaXQgUmVzZXRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQnV0
dG9uSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNWYWxpZGF0aW9uKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRs
ZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQqKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2Vh
cmNoSW5wdXRUeXBlLmNwcAppbmRleCBmYzhkZDc2ZTFkMWU2YTBiMDFiZWVhNjhlNGViZmM0ZDcy
ODY5MGVlLi43YjA2MGEzZjdjMWM4MGU3YzQ4ZGRlZmQwMjRjN2EzMzNiNGIwY2ZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCkBAIC0zOCwxMyArMzgsMTIgQEAKICNp
bmNsdWRlICJSZW5kZXJTZWFyY2hGaWVsZC5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNp
bmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKLWlubGluZSBTZWFyY2hJbnB1dFR5cGU6OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KQorU2VhcmNoSW5wdXRUeXBlOjpTZWFyY2hJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkKICAgICA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpCiAg
ICAgLCBtX3Jlc3VsdHNCdXR0b24oMCkKICAgICAsIG1fY2FuY2VsQnV0dG9uKDApCkBAIC01Miwx
MSArNTEsNiBAQCBpbmxpbmUgU2VhcmNoSW5wdXRUeXBlOjpTZWFyY2hJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkKIHsKIH0KIAotT3duUHRyPElucHV0VHlwZT4gU2VhcmNoSW5w
dXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFNlYXJjaElucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgU2VhcmNo
SW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIFRleHRGaWVsZElucHV0VHlwZTo6YXR0YWNoKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaAppbmRleCA5YzBhNzVhZDM2ZjcyN2Y1
OTNkYTYxMzM3ZmFmOWUwZjU2NjM0OTg1Li44Zjk1Y2E5MmFkOWNhNWY5YjZlM2FmYjBmMWE2NThk
ZjJjNjYxYjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmgKQEAgLTQxLDEy
ICs0MSwxMSBAQCBjbGFzcyBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OwogCiBjbGFz
cyBTZWFyY2hJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgewogcHVibGljOgot
ICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOwor
ICAgIGV4cGxpY2l0IFNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKICAgICB2
b2lkIHN0b3BTZWFyY2hFdmVudFRpbWVyKCk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU2Vh
cmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFkZFNlYXJjaFJlc3VsdCgpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyU3R5bGUm
KSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmNwcApp
bmRleCBkZWQ0MWRiZjVmYmY5YzEwMDFlNmY0Njg5NDc1YWJhMjFlYTI0YWZjLi4xZDBiNzJlZDk1
ZGE1MWYyMDY5MzczMDRkYzcwMWM2YWYxZjA0YTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1N1Ym1pdElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJt
aXRJbnB1dFR5cGUuY3BwCkBAIC0zOCwxNSArMzgsOSBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLU93blB0cjxJbnB1dFR5cGU+IFN1Ym1pdElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTdWJtaXRJ
bnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIFN1Ym1pdElucHV0
VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFt
ZXM6OnN1Ym1pdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKaW5kZXggZDlk
ODdhMTc1NDJhOTMzZDBjYzBlNDg4MzBiY2YzZjJhZjcwYTdkZS4uZjRlNjNmYmQzNzE4NzVjNzVh
Mzc5YmUwZDgyMjcxY2RmMGJjNTVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9T
dWJtaXRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlw
ZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFN1Ym1p
dElucHV0VHlwZSA6IHB1YmxpYyBCYXNlQnV0dG9uSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBl
eHBsaWNpdCBTdWJtaXRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNl
QnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFN1
Ym1pdElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1
dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1D
b250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3Jt
RGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNSZXF1aXJlZCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwCmluZGV4IDJkODdkMmY4ZDdhMGI4MTc1MTRjMzgyNTU4
NWUwMzI0YTY0Zjk1ZTAuLjc3ZmQwZTBhNGJjMGY3MjAyNGE2OGY0NmRmNGU5YTNhZGE4ZmRjZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHAKQEAgLTMzLDE1
ICszMyw5IEBACiAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5w
dXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLU93blB0cjxJbnB1dFR5cGU+IFRlbGVwaG9uZUlucHV0VHlwZTo6Y3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBU
ZWxlcGhvbmVJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lkIFRlbGVwaG9uZUlucHV0VHlw
ZTo6YXR0YWNoKCkKIHsKICAgICBUZXh0RmllbGRJbnB1dFR5cGU6OmF0dGFjaCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgKaW5kZXggYWE0YWE1MjdhNjkzZGE1MGJi
Mzc2NGFiMmJiNGZmOTcwMTIxN2U5ZC4uZjJkODM3OWRlNDhjM2E0ZTA5OWU4ZTQwMDJhZWQyNjlm
YTdmNmFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCkBAIC0z
NywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFRlbGVwaG9uZUlucHV0
VHlwZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93
blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQg
VGVsZXBob25lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJ
bnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgVGVsZXBob25l
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUo
ZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdFNwZWVjaEF0dHJpYnV0ZSgpIE9WRVJS
SURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5jcHAKaW5kZXggYzVmM2E4ZmFkNTEx
MzJmZmVkMWU3NTU5OWNlY2Y4Mzg4ZDIyMTlkNS4uODdlYjkzODcxMTkzYTc5Mjc5NWY0YWZhZDZl
NTE4ZmU1YTE5ODI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3BwCkBAIC0z
MywxNyArMzMsMTEgQEAKIAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJJbnB1dFR5cGVOYW1lcy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotT3duUHRyPElu
cHV0VHlwZT4gVGV4dElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
Ci17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUZXh0SW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0K
LQogdm9pZCBUZXh0SW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIFRleHRGaWVsZElucHV0VHlw
ZTo6YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5oCmluZGV4IGJhMjRjYTky
MjYyZGE2YmMwZWZiM2VhZTk4ZGNkNmFkN2Q4MjJmZDQuLjQxYjJhNjI5YjFlYjc5ZjA4MmU0ZTc1
YWE0Y2Q2ZDkxMTc3OGY3ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5oCkBAIC0z
NywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFRleHRJbnB1dFR5cGUg
OiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8
SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFRleHRJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShl
bGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBUZXh0SW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUmVzcGVjdFNwZWVjaEF0dHJpYnV0ZSgpIE9WRVJSSURFOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGltZUlucHV0VHlwZS5jcHAKaW5kZXggZTc3MzkzNDk5ODMzYTM5MDVlYjc2NmI1YzNh
YjBlZjUzNzMwNzNhOS4uZDc1MWY1MWY4MWMwMDM5Mzg5YWU0NmY5NjMzNjA0NmYyYjViYTkzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCkBAIC0zOSw3ICszOSw2IEBACiAj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0LDExICs1Myw2IEBAIFRpbWVJbnB1dFR5cGU6
OlRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKIH0KIAotT3duUHRy
PElucHV0VHlwZT4gVGltZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1l
bnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUaW1lSW5wdXRUeXBlKGVsZW1lbnQpKTsK
LX0KLQogdm9pZCBUaW1lSW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIG9ic2VydmVGZWF0dXJl
SWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlVGltZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGltZUlucHV0VHlwZS5oCmluZGV4IDE5NThkNzc5OGRlZTI5Zjc4N2QyZmZkYTI2ZDA2NDg1ZGU2
Y2Y4ZjYuLjA5MWYyMjI1NWJiM2UxY2YyOGUzOTEwYzFhYTdjNGNmMTE2Njg2OTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFRpbWVJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBl
PiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFRpbWVJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFRpbWVJbnB1dFR5
cGUoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBEYXRlQ29tcG9uZW50czo6VHlwZSBkYXRlVHlwZSgp
IGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCmluZGV4IDFi
NTVkYzhlNTY2ZTM0MjliMzQyMDFjOWJiNjliMTZiODRlNzcxMjQuLmNiYTI5ZWM1MDVhNDdhYzJi
NTA0YmJlNmYyZmUxOGE0OTlhZmYyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VVJMSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5j
cHAKQEAgLTM1LDE1ICszNSw5IEBACiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNs
dWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiVVJMLmgiCi0jaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBl
PiBVUkxJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgVVJMSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBV
UkxJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2go
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5oCmluZGV4IGI3YWI2NzRhNDQ5NDg0ZGQxNmZk
NDgzMjljY2EwNTkxMGFhN2M0NWQuLjE0OTZmMDcwYzNmY2VlOGJkYzc2ZmExNDZlNzEyNzAyNWEw
MDFlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBVUkxJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZVRl
eHRJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVh
dGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFVSTElucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBw
cml2YXRlOgotICAgIGV4cGxpY2l0IFVSTElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNv
bnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRj
aEZvcihjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJ
bnB1dFR5cGUuY3BwCmluZGV4IDUxOWRmNWE0NDUxMzgyOTZmMjY5YmE2ZjEyNWRiNWZiYmY4MDY0
OTQuLjM1ZDJmY2YyZmU2YjYzMmRkNWQ2NTBjYTUzM2U0ZTRhY2Q3YzRhNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkhU
TUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1
dFR5cGVOYW1lcy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNDYsMTEgKzQ1LDYgQEAgc3RhdGljIGNvbnN0IGludCB3ZWVrRGVmYXVs
dFN0ZXBCYXNlID0gLTI1OTIwMDAwMDsgLy8gVGhlIGZpcnN0IGRheSBvZiAxOTcwLVcwMS4KIHN0
YXRpYyBjb25zdCBpbnQgd2Vla0RlZmF1bHRTdGVwID0gMTsKIHN0YXRpYyBjb25zdCBpbnQgd2Vl
a1N0ZXBTY2FsZUZhY3RvciA9IDYwNDgwMDAwMDsKIAotT3duUHRyPElucHV0VHlwZT4gV2Vla0lu
cHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBXZWVrSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBXZWVrSW5w
dXRUeXBlOjphdHRhY2goKQogewogICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVP
YnNlcnZlcjo6SW5wdXRUeXBlV2Vlayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1dlZWtJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCmlu
ZGV4IGNhZTc5ZTkxYmI5YTA3YmE2NGQ0MDNhNDRlNjZmOWU4MTU5ZTJiMjQuLjMzM2ZiNTcwNDAw
NWJlNjY2Y2YxMDc2Zjc0M2QzOTQ4YzI3NzFjODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvV2Vla0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0
VHlwZS5oCkBAIC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdl
ZWtJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUg
ewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFdlZWtJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCkgOiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50KSB7
IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWVrSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpIDogQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214935</attachid>
            <date>2013-10-23 00:34:46 -0700</date>
            <delta_ts>2013-10-23 05:11:11 -0700</delta_ts>
            <desc>EWS try</desc>
            <filename>bug-123160-20131023003442.patch</filename>
            <type>text/plain</type>
            <size>49341</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFhODZhZWJlNjkzMjIw
YjQyZTUxZDllOGU1YWQ4ZDA1YjFjMTczNC4uODg1MjRmOTg3YjJhYjM2ZTE4NDdlMDY3ZDg1MWFj
MzE3ZmFiNjQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEzLTEwLTIyICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBIVE1MIGlucHV0IHR5
cGUgb2JqZWN0cyBzaG91bGQgYmUgbWFuYWdlZCB0aHJvdWdoIHN0ZDo6dW5pcXVlX3B0cgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTYwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgY29u
c3RydWN0b3JzIG9mIHRoZSBJbnB1dFR5cGUgc3ViY2xhc3NlcyBwdWJsaWMuIFRoaXMgbWFrZXMg
aXQgcG9zc2libGUgdG8gdXNlIHN0ZDo6bWFrZV91bmlxdWUgb24gdGhlc2UgY2xhc3NlcworICAg
ICAgICBhbmQgbWFrZXMgdGhlIFQ6OmNyZWF0ZSgpIGhlbHBlcnMgcmVkdW5kYW50LiBOZXcgaW5z
dGFuY2VzIG9mIHRoZXNlIGNsYXNzZXMgYXJlIG5vdyBtYW5hZ2VkIHRocm91Z2ggc3RkOjp1bmlx
dWVfcHRyLgorICAgICAgICBJbnB1dFR5cGU6OmNyZWF0ZSgpIG5vdyB1c2VzIGEgTmV2ZXJEZXN0
cm95ZWQgSW5wdXRUeXBlRmFjdG9yeU1hcCB0aGF0IG1hcHMgdHlwZSBuYW1lcyB0byBzdGQ6OmZ1
bmN0aW9ucyBhbmQgZ2V0cyBwb3B1bGF0ZWQKKyAgICAgICAgd2hlbiB0aGUgbWV0aG9kIGlzIGZp
cnN0IGNhbGxlZCBhbmQgdGhlIG1hcCBpcyBzdGlsbCBlbXB0eS4gVGhlIGZhY3RvcnkgaXMgdXNl
ZCB0byBjcmVhdGUgdGhlIG5ldyBJbnB1dFR5cGUgb2JqZWN0IGlmIHRoZQorICAgICAgICByZXF1
ZXN0ZWQgdHlwZSB3YXMgZm91bmQgaW4gdGhlIG1hcCwgYW5kIFRleHRJbnB1dFR5cGUgaXMgdXNl
ZCBvdGhlcndpc2UuCisKKyAgICAgICAgKiBodG1sL0J1dHRvbklucHV0VHlwZS5jcHA6CisgICAg
ICAgICogaHRtbC9CdXR0b25JbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJ1dHRvbklu
cHV0VHlwZTo6QnV0dG9uSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0NoZWNrYm94SW5wdXRUeXBlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpDaGVja2JveElucHV0VHlwZTo6Q2hlY2tib3hJbnB1dFR5cGUpOgorICAgICAgICAq
IGh0bWwvQ29sb3JJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvQ29sb3JJbnB1dFR5cGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpDb2xvcklucHV0VHlwZSk6Cisg
ICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0RhdGVJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KiBodG1sL0RhdGVUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUlu
cHV0VHlwZTo6RGF0ZVRpbWVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmg6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KiBodG1sL0VtYWlsSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpFbWFpbElucHV0VHlw
ZTo6RW1haWxJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6Cisg
ICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0ZVR5
cGUpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SGlkZGVuSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0hpZGRlbklucHV0VHlwZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6SGlkZGVuSW5wdXRUeXBlOjpIaWRkZW5JbnB1dFR5cGUpOgorICAg
ICAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJ
bnB1dFR5cGU6OkltYWdlSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlSW5wdXRUeXBlKTogQSB0ZW1wbGF0ZWQgaGVscGVyIHRoYXQgY29uc3RydWN0cyBhIG5ldyBJ
bnB1dFR5cGUgc3ViY2xhc3Mgb2JqZWN0IHRocm91Z2ggc3RkOjptYWtlX3VuaXF1ZS4KKyAgICAg
ICAgKFdlYkNvcmU6OnBvcHVsYXRlSW5wdXRUeXBlRmFjdG9yeU1hcCk6IFBvcHVsYXRlcyB0aGUg
cGFzc2VkLWluIG1hcCB3aXRoIHR5cGUtc3RkOjpmdW5jdGlvbiBwYWlycy4KKyAgICAgICAgKFdl
YkNvcmU6OklucHV0VHlwZTo6Y3JlYXRlKTogR2V0IHRoZSBzdGQ6OmZ1bmN0aW9uIGZvciB0aGUg
c3BlY2lmaWVkIHR5cGUsIG9yIGZhbGwgYmFjayB0byBUZXh0SW5wdXRUeXBlLgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRUeXBlOjpjcmVhdGVUZXh0KToKKyAgICAgICAgKiBodG1sL0lucHV0VHlw
ZS5oOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwv
TW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpNb250
aElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwOgorICAgICAg
ICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1
dFR5cGU6Ok51bWJlcklucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9QYXNzd29yZElucHV0VHlw
ZS5jcHA6CisgICAgICAgICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UGFzc3dvcmRJbnB1dFR5cGU6OlBhc3N3b3JkSW5wdXRUeXBlKToKKyAgICAgICAgKiBo
dG1sL1JhZGlvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1JhZGlvSW5wdXRUeXBlLmg6
CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lucHV0VHlwZTo6UmFkaW9JbnB1dFR5cGUpOgorICAg
ICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1Jlc2V0SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBo
dG1sL1Jlc2V0SW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNldElucHV0VHlwZTo6
UmVzZXRJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlYXJjaElucHV0VHlwZTo6U2VhcmNoSW5wdXRUeXBlKToKKyAgICAg
ICAgKiBodG1sL1NlYXJjaElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvU3VibWl0SW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1N1Ym1pdElucHV0VHlwZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U3VibWl0SW5wdXRUeXBlOjpTdWJtaXRJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwv
VGVsZXBob25lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1RlbGVwaG9uZUlucHV0VHlw
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGVsZXBob25lSW5wdXRUeXBlOjpUZWxlcGhvbmVJbnB1
dFR5cGUpOgorICAgICAgICAqIGh0bWwvVGV4dElucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRt
bC9UZXh0SW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5wdXRUeXBlOjpUZXh0
SW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAq
IGh0bWwvVGltZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvVVJMSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKiBodG1sL1VSTElucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6VVJMSW5w
dXRUeXBlOjpVUkxJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6
CisgICAgICAgICogaHRtbC9XZWVrSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpXZWVr
SW5wdXRUeXBlOjpXZWVrSW5wdXRUeXBlKToKKwogMjAxMy0xMC0yMiAgQW5kcmVpIEJ1Y3VyICA8
YWJ1Y3VyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNdIFBvc3NpYmxlIHBlcmZv
cm1hbmNlIHJlZ3Jlc3Npb24gYWZ0ZXIgcjE1NzU2NwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25J
bnB1dFR5cGUuY3BwCmluZGV4IDljZTI4MGM4NTI0YjlhYmNhZDljNWQzM2IzY2EyNzI5ZmExM2Zk
NWIuLmNiNDUyZTY0M2Y1MWU1YjM2Njk3Y2ZlMTExMmMyMWNiMDNmYjY2M2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5jcHAKQEAgLTMyLDE1ICszMiw5IEBACiAjaW5jbHVk
ZSAiQnV0dG9uSW5wdXRUeXBlLmgiCiAKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRy
PElucHV0VHlwZT4gQnV0dG9uSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEJ1dHRvbklucHV0VHlwZShlbGVtZW50
KSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgQnV0dG9uSW5wdXRUeXBlOjpmb3JtQ29udHJv
bFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6YnV0dG9uKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuaAppbmRleCBiNGU5NDgwNTk2ZmQzMDkzNThm
OTJmOTNkODc5ZmFiMTEzNTczNWFhLi5iNWUzYjhlZjZhMzVkNDYxZGEzMDI5Zjc1MjhlMzFkNmM2
ZGRhZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKQEAgLTM3LDEwICsz
Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQnV0dG9uSW5wdXRUeXBlIDogcHVi
bGljIEJhc2VCdXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5w
dXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIEJ1dHRvbklucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAKIHByaXZhdGU6Ci0gICAgQnV0dG9uSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIHN1cHBvcnRzVmFsaWRhdGlvbigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBpc1RleHRCdXR0b24oKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAKaW5kZXggMGVjNGQxZmIyMzQ5NGExNDg2MGVlMjUz
MzA1ODk4OThmYzkzZmNlMy4uNjljZjA1YmNhZGQxYmVjNjIwZTY0MzllNWU3YzMwNzQ4Y2E5Zjlm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAKQEAgLTM2LDE1
ICszNiw5IEBACiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlICJLZXlib2Fy
ZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElucHV0VHlwZT4g
Q2hlY2tib3hJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewot
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2hlY2tib3hJbnB1dFR5cGUoZWxlbWVudCkpOwotfQot
CiBjb25zdCBBdG9taWNTdHJpbmcmIENoZWNrYm94SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUo
KSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6Y2hlY2tib3goKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaAppbmRleCA0NWIzZjgzMjUxYzQ5YmJlYjVi
NjAzN2U1MTE1NjY3M2E4NTJlZDk0Li44Y2QwOTMwMzg4NDk5YmFjNGFlMTE2MWI3ZTQ5NDc2MzI4
OTU3MDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oCkBAIC0zNywx
MCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENoZWNrYm94SW5wdXRUeXBl
IDogcHVibGljIEJhc2VDaGVja2FibGVJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBP
d25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIENoZWNrYm94
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNoZWNrYWJsZUlucHV0
VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBDaGVja2JveElucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5n
JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgp
IGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRl
eCBjMzI1ZmM4NWVmMTExMDJmYzYzMmVhZDNmOGFlN2VmYjFjOWVhNmJhLi5kZTliYWVmZmMxODNi
Nzk0NmZjNmRkMGQzZjllMDY0NmNmNjk0YTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5w
dXRUeXBlLmNwcApAQCAtNDUsNyArNDUsNiBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNp
bmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY2LDExICs2NSw2IEBAIHN0YXRpYyBib29sIGlz
VmFsaWRDb2xvclN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIHJldHVybiBjb2xvci5p
c1ZhbGlkKCkgJiYgIWNvbG9yLmhhc0FscGhhKCk7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IENv
bG9ySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IENvbG9ySW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogQ29sb3JJ
bnB1dFR5cGU6On5Db2xvcklucHV0VHlwZSgpCiB7CiAgICAgZW5kQ29sb3JDaG9vc2VyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKaW5kZXggMDBhM2Y1YjI1MTU5N2RlZDM2OTQy
YzY5NmYyOTQ4ODY5MzhkNGVlNy4uNzAwODVmZjMwNzg2NjM3YTM0YWNjY2Q2MjY1YWU3NjdlYmE1
MWQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaApAQCAtMzksNyArMzksNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbG9ySW5wdXRUeXBlIDogcHVibGljIEJh
c2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLCBwdWJsaWMgQ29sb3JDaG9vc2VyQ2xpZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVs
ZW1lbnQmKTsKKyAgICBleHBsaWNpdCBDb2xvcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50KSA6IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAg
IHZpcnR1YWwgfkNvbG9ySW5wdXRUeXBlKCk7CiAKICAgICAvLyBDb2xvckNob29zZXJDbGllbnQg
aW1wbGVtZW50YXRpb24uCkBAIC01MSw3ICs1MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFZl
Y3RvcjxDb2xvcj4gc3VnZ2VzdGlvbnMoKSBjb25zdCBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAg
ICBleHBsaWNpdCBDb2xvcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJh
c2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNDb2xvckNvbnRyb2woKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNw
cAppbmRleCAxMmZhMDQwOTM5NjE4MTVkOWFiZTk1OTZlZDk1MTJmMmU0MjA5M2QxLi42OTU3NTMx
ODIwMzE0YzgwNWIzMDcyNjhiYjUwOGEzNTg5MTNhNjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0
ZUlucHV0VHlwZS5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMu
aCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTUxLDExICs1MCw2IEBAIGlubGluZSBEYXRlSW5wdXRUeXBlOjpEYXRlSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IERhdGVJ
bnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgRGF0ZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgRGF0ZUlu
cHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJl
T2JzZXJ2ZXI6OklucHV0VHlwZURhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaApp
bmRleCA0YTBjMjNkMTllMTFmZTNkZWZlZDgwZDhlMDdkN2JjZjBlMzE5ZjJjLi40NzAzMWUyMjE4
ZmZiOWFlNDNkM2E4ZGQyMDYzYWI4MzJhYWJkNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1
dFR5cGUuaApAQCAtMzgsMTAgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
YXRlSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBl
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1
dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQm
KTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKaW5kZXggMTFmN2U5ZWFi
ODFkYTlmY2FiOTdiOWRkNTUyOWQ4Y2Y5NTg5OWViYS4uZTZlNGI3MDk3ZDY3MGQ3NzQ1ODQwOWU2
Yjg2NWU5MmI4ZmYzMzFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGlt
ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlw
ZS5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRl
ICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsMTEg
KzQ2LDYgQEAgc3RhdGljIGNvbnN0IGludCBkYXRlVGltZURlZmF1bHRTdGVwID0gNjA7CiBzdGF0
aWMgY29uc3QgaW50IGRhdGVUaW1lRGVmYXVsdFN0ZXBCYXNlID0gMDsKIHN0YXRpYyBjb25zdCBp
bnQgZGF0ZVRpbWVTdGVwU2NhbGVGYWN0b3IgPSAxMDAwOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBE
YXRlVGltZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0g
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRlVGltZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0K
IHZvaWQgRGF0ZVRpbWVJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgb2JzZXJ2ZUZlYXR1cmVJ
ZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVEYXRlVGltZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmgKaW5kZXggMjBmNGRkZjkxZDBiN2JlZjVhOTExMDcw
MGRkMmE2MmNhNzA0YzkyMi4uMWIyOGFhNzdkY2ZkYzgxODMwMTg1MmRhNjQ2OGYzNTYyYTc5NGE2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaApAQCAtMzksMTAgKzM5
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRlVGltZUlucHV0VHlwZSA6IHB1
YmxpYyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAg
ZXhwbGljaXQgRGF0ZVRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBC
YXNlRGF0ZVRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgRGF0ZVRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0
ZVRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUo
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVU
eXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmNwcAppbmRleCA1NWQ0ZDA5MzA2MzI5ZDg3ZDUyN2Q3MjYxODBhNjJiMzg3
NWU5Mjc5Li45N2QwODNkZmQyNzk0M2NiY2FlYWE3ZmMyMzM5MDE1OWVlODBiZTY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTM2LDcg
KzM2LDYgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ2LDExICs0NSw2IEBAIHN0YXRp
YyBjb25zdCBpbnQgZGF0ZVRpbWVMb2NhbERlZmF1bHRTdGVwID0gNjA7CiBzdGF0aWMgY29uc3Qg
aW50IGRhdGVUaW1lTG9jYWxEZWZhdWx0U3RlcEJhc2UgPSAwOwogc3RhdGljIGNvbnN0IGludCBk
YXRlVGltZUxvY2FsU3RlcFNjYWxlRmFjdG9yID0gMTAwMDsKIAotT3duUHRyPElucHV0VHlwZT4g
RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
Ci17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRlVGltZUxvY2FsSW5wdXRUeXBlKGVsZW1l
bnQpKTsKLX0KLQogdm9pZCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjphdHRhY2goKQogewogICAg
IG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlRGF0ZVRp
bWVMb2NhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5o
CmluZGV4IDY5ZjJiYmE2MzkyN2E4OTM0MTVhZDZjMGRjMzE0MmQzNDY0ZTMxZGQuLmJjM2U5ZDJk
NTI4MDMzNjk0ODkxNTBhZmViZWYyN2JiOWU5ZWNiOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCkBAIC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIERhdGVUaW1lTG9jYWxJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNo
b29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25Q
dHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IERh
dGVUaW1lTG9jYWxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0
ZVRpbWVMb2NhbElucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNp
dCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFz
ZURhdGVUaW1lTG9jYWxJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0
dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29u
dHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpU
eXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1
dFR5cGUuY3BwCmluZGV4IDI3ZGU4ZDQ1ZjZkOGYwMGFiNjg1NmViNmQ1Y2EzNGZjNjAxZWVjZDgu
LmZhNjc5ZGMzMGJjZmU3NzRhYzQwNzc1N2UzZGMzZWMzODllYjMzMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiSW5w
dXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAi
UmVndWxhckV4cHJlc3Npb24uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NTMsMTEgKzUyLDYgQEAgc3RhdGljIGJvb2wgaXNWYWxpZEVtYWlsQWRkcmVzcyhjb25zdCBTdHJp
bmcmIGFkZHJlc3MpCiAgICAgcmV0dXJuICFtYXRjaE9mZnNldCAmJiBtYXRjaExlbmd0aCA9PSBh
ZGRyZXNzTGVuZ3RoOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBFbWFpbElucHV0VHlwZTo6Y3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBFbWFpbElucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgRW1haWxJbnB1dFR5cGU6OmF0
dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2goKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRW1haWxJbnB1dFR5cGUuaAppbmRleCBlMGQyMTMxODZkOTliOGUwNWM0MWViZWRiMDgyMjA3
ZjBiYjRkYmY5Li5iN2FlZWM1NDUwMDg4NDlhNTY0OGIxNzY0NDdjMGEwNDg5YjkxY2RiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVtYWlsSW5wdXRUeXBlIDogcHVibGljIEJhc2VUZXh0SW5w
dXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhU
TUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBFbWFpbElucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2
YXRlOgotICAgIGV4cGxpY2l0IEVtYWlsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1l
bnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0
dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29u
dHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNo
Rm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5jcHAKaW5kZXggZDI5ZmExMjU2YmU3N2UwZjVmNzMwY2ZmN2FkNDAwNGRkZmU1NThj
MC4uMDZiYjlmYTNmZjdkM2MzMjdlYjdkZDhiYzczMmZjZWY0OTc5MGE2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSAiUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2wuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCkBAIC04NSwxMSArODQsNiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFVwbG9hZEJ1
dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKICAgICByZXR1cm4gcHNldWRvSWQ7
CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IEZpbGVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmlsZUlucHV0VHlw
ZShlbGVtZW50KSk7Ci19Ci0KIEZpbGVJbnB1dFR5cGU6OkZpbGVJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkKICAgICA6IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVs
ZW1lbnQpCiAgICAgLCBtX2ZpbGVMaXN0KEZpbGVMaXN0OjpjcmVhdGUoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggNmE0YWM5MzU0MGEyZjg2ZWY5MzJhMDg3NDIwN2E2ODVh
ZmU2ZGU4OS4uYzkxMTVkZDQ1NGRmMDBiOWU1MDgwYzQ3MjU3YmUwOTIxZTJkZDYyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTQ0LDE0ICs0NCwxMiBAQCBjbGFzcyBGaWxl
TGlzdDsKIAogY2xhc3MgRmlsZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtl
eUlucHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2hvb3NlckNsaWVudCwgcHJpdmF0ZSBGaWxlSWNvbkxv
YWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgRmlsZUlucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB+RmlsZUlucHV0VHlwZSgpOwogCiAgICAgc3RhdGlj
IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBmaWxlc0Zyb21Gb3JtQ29udHJvbFN0YXRlKGNv
bnN0IEZvcm1Db250cm9sU3RhdGUmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBGaWxlSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKLQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIEZvcm1D
b250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0
ZSYpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5k
ZXggNzI1NmYyZTUzYzBlZjk0Mzg4MDhlNTBmYjNjYjdhYTJmZTAxN2ZkNS4uMjgxN2U4NzczN2Zk
N2QyNmY3OTU4YjAxOWFhZjQ1MTY1ZjUyZTBjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCkBAIC00NTYsNyArNDU2LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50
OjpzZXRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1
cGRhdGVUeXBlKCkKIHsKLSAgICBPd25QdHI8SW5wdXRUeXBlPiBuZXdUeXBlID0gSW5wdXRUeXBl
OjpjcmVhdGUoKnRoaXMsIGZhc3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIpKTsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8SW5wdXRUeXBlPiBuZXdUeXBlID0gSW5wdXRUeXBlOjpjcmVhdGUoKnRoaXMsIGZh
c3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIpKTsKICAgICBib29sIGhhZFR5cGUgPSBtX2hhc1R5cGU7
CiAgICAgbV9oYXNUeXBlID0gdHJ1ZTsKICAgICBpZiAobV9pbnB1dFR5cGUtPmZvcm1Db250cm9s
VHlwZSgpID09IG5ld1R5cGUtPmZvcm1Db250cm9sVHlwZSgpKQpAQCAtNDgxLDcgKzQ4MSw3IEBA
IHZvaWQgSFRNTElucHV0RWxlbWVudDo6dXBkYXRlVHlwZSgpCiAgICAgaWYgKHdhc0F0dGFjaGVk
KQogICAgICAgICBTdHlsZTo6ZGV0YWNoUmVuZGVyVHJlZSgqdGhpcyk7CiAKLSAgICBtX2lucHV0
VHlwZSA9IG5ld1R5cGUucmVsZWFzZSgpOworICAgIG1faW5wdXRUeXBlID0gc3RkOjptb3ZlKG5l
d1R5cGUpOwogICAgIG1faW5wdXRUeXBlLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAKICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApp
bmRleCAzNDUyNmJlMjAyOGE2MTBiN2ZhMDcxYzY0MDliMzdjZDBlMThhZWY2Li5lZmYzZmE5MTJl
NDRjOTZlMDA1ZjMwOWFiNTI2OGI2ZGQyN2E0N2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaApAQCAtNDQyLDcgKzQ0Miw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKICAgICBib29sIG1faGFzVG91Y2hFdmVudEhhbmRsZXIgOiAxOwogI2VuZGlm
Ci0gICAgT3duUHRyPElucHV0VHlwZT4gbV9pbnB1dFR5cGU7CisgICAgc3RkOjp1bmlxdWVfcHRy
PElucHV0VHlwZT4gbV9pbnB1dFR5cGU7CiAgICAgLy8gVGhlIEltYWdlTG9hZGVyIG11c3QgYmUg
b3duZWQgYnkgdGhpcyBlbGVtZW50IGJlY2F1c2UgdGhlIGxvYWRlciBjb2RlIGFzc3VtZXMKICAg
ICAvLyB0aGF0IGl0IGxpdmVzIGFzIGxvbmcgYXMgaXRzIG93bmluZyBlbGVtZW50IGxpdmVzLiBJ
ZiB3ZSBtb3ZlIHRoZSBsb2FkZXIgaW50bwogICAgIC8vIHRoZSBJbWFnZUlucHV0IG9iamVjdCB3
ZSBtYXkgZGVsZXRlIHRoZSBsb2FkZXIgd2hpbGUgdGhpcyBlbGVtZW50IGxpdmVzIG9uLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCmluZGV4IDgzYTYzZmIxYzM4YTM5Yzg3
MWRhYjM3NzljMTIwYmI1ZjEzODZjMjMuLjEwMzRkOGJkZmM4ZDgyNTQ3MjUxYjdiN2ZiNTE5M2Y0
ZmQwYWFkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKQEAgLTM3
LDE3ICszNywxMSBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgotI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIAotT3duUHRyPElucHV0VHlwZT4gSGlkZGVuSW5wdXRUeXBlOjpjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEhpZGRl
bklucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgSGlkZGVuSW5w
dXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVO
YW1lczo6aGlkZGVuKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAppbmRleCBl
Mzg3YTFhMzUwOTU0NDI3ZDYxZWIyMGZkYzRkZmQ2NGE1MWQ1ODZmLi41MWRiYWZjZmE5YWE3NTA1
YTJlMmMxN2M2NTBhYWMzMjIzNjU2ZWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hpZGRlbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRU
eXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSGlk
ZGVuSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93
blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQg
SGlkZGVuSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVs
ZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEhpZGRlbklucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNv
bnN0IEZvcm1Db250cm9sU3RhdGUmKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5jcHAKaW5kZXggODkzNTZkN2VkMjAwOTM5N2RhZTQ0NzllZjQzOGRmYmZhYmQ4MDc4
My4uMDhiNzcxZmYzMTMxYzAxZTUwNTBkYzQ1MGQ1NjhhMDMxNGM5OWExMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKQEAgLTMzLDIyICszMywxNiBAQAogI2luY2x1ZGUg
IklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJl
bmRlckltYWdlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1pbmxpbmUgSW1hZ2VJbnB1
dFR5cGU6OkltYWdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitJbWFnZUlu
cHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKICAgICA6
IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkKIHsKIH0KIAotT3duUHRyPElucHV0VHlwZT4g
SW1hZ2VJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgSW1hZ2VJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBjb25z
dCBBdG9taWNTdHJpbmcmIEltYWdlSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAog
ewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6aW1hZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VJbnB1dFR5cGUuaAppbmRleCA0YTZiNWJhMzZiNTI0NWZlNThiMDM0ZTdjMTU3ZDFkYWZlOGQw
NzI0Li4xNTFmYjg2MWYxMTA5Y2M4NjI1ZjViNmNlZDAwMmJlOTQzNzRhNzNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCkBAIC00MCwxMCArNDAsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEltYWdlSW5wdXRUeXBlIDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5
cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElu
cHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IEltYWdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBJbWFnZUlucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50Jik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlw
ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc0Zvcm1EYXRhQXBwZW5kYWJs
ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3Jt
RGF0YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNw
cAppbmRleCA5MDA3OGJiYzk4Mzg5ZDg5ZDA1NWUzZjYyYjY5MDUwNGE0ZjFlMTFhLi40OGJkMzU3
OTUzNzVlZGM4MzU1MmEwMTYxZjI4M2QyZTEwM2Q5YmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwCkBAIC04NCw3NCArODQsNzYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLXR5cGVkZWYgT3duUHRy
PElucHV0VHlwZT4gKCpJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24pKEhUTUxJbnB1dEVsZW1lbnQm
KTsKLXR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIElucHV0VHlwZUZhY3RvcnlGdW5jdGlv
biwgQ2FzZUZvbGRpbmdIYXNoPiBJbnB1dFR5cGVGYWN0b3J5TWFwOwordHlwZWRlZiBIYXNoTWFw
PEF0b21pY1N0cmluZywgc3RkOjpmdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPihI
VE1MSW5wdXRFbGVtZW50Jik+LCBDYXNlRm9sZGluZ0hhc2g+IElucHV0VHlwZUZhY3RvcnlNYXA7
CiAKLXN0YXRpYyBPd25QdHI8SW5wdXRUeXBlRmFjdG9yeU1hcD4gY3JlYXRlSW5wdXRUeXBlRmFj
dG9yeU1hcCgpCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbnB1
dFR5cGU+IGNyZWF0ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAg
IE93blB0cjxJbnB1dFR5cGVGYWN0b3J5TWFwPiBtYXAgPSBhZG9wdFB0cihuZXcgSW5wdXRUeXBl
RmFjdG9yeU1hcCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VD4oZWxlbWVudCk7Cit9
CiAKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHVubmVjZXNzYXJ5ICcmJ3MgZnJvbSB0aGUgZm9sbG93
aW5nIG1hcC5hZGQgb3BlcmF0aW9ucwotICAgIC8vIG9uY2Ugd2Ugc3dpdGNoIHRvIGEgbm9uLWJy
b2tlbiBWaXN1YWwgU3R1ZGlvIGNvbXBpbGVyLiAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyMTIzNQotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpidXR0b24o
KSwgJkJ1dHRvbklucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1l
czo6Y2hlY2tib3goKSwgJkNoZWNrYm94SW5wdXRUeXBlOjpjcmVhdGUpOworc3RhdGljIHZvaWQg
cG9wdWxhdGVJbnB1dFR5cGVGYWN0b3J5TWFwKElucHV0VHlwZUZhY3RvcnlNYXAmIG1hcCkKK3sK
KyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpidXR0b24oKSwgY3JlYXRlSW5wdXRUeXBlPEJ1
dHRvbklucHV0VHlwZT4pOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OmNoZWNrYm94KCks
IGNyZWF0ZUlucHV0VHlwZTxDaGVja2JveElucHV0VHlwZT4pOwogI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpjb2xvcigpLCAmQ29sb3JJ
bnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6Y29sb3IoKSwg
Y3JlYXRlSW5wdXRUeXBlPENvbG9ySW5wdXRUeXBlPik7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9EQVRFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLmlucHV0VHlwZURhdGVFbmFibGVkKCkpCi0gICAgICAgIG1hcC0+YWRkKElucHV0VHlw
ZU5hbWVzOjpkYXRlKCksICZEYXRlSW5wdXRUeXBlOjpjcmVhdGUpOworICAgICAgICBtYXAuYWRk
KElucHV0VHlwZU5hbWVzOjpkYXRlKCksIGNyZWF0ZUlucHV0VHlwZTxEYXRlSW5wdXRUeXBlPik7
CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKQogICAg
IGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZURh
dGVUaW1lRW5hYmxlZCgpKQotICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6ZGF0ZXRp
bWUoKSwgJkRhdGVUaW1lSW5wdXRUeXBlOjpjcmVhdGUpOworICAgICAgICBtYXAuYWRkKElucHV0
VHlwZU5hbWVzOjpkYXRldGltZSgpLCBjcmVhdGVJbnB1dFR5cGU8RGF0ZVRpbWVJbnB1dFR5cGU+
KTsKICNlbmRpZgogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpCiAgICAgaWYg
KFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5wdXRUeXBlRGF0ZVRp
bWVMb2NhbEVuYWJsZWQoKSkKLSAgICAgICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmRhdGV0
aW1lbG9jYWwoKSwgJkRhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgICAgIG1h
cC5hZGQoSW5wdXRUeXBlTmFtZXM6OmRhdGV0aW1lbG9jYWwoKSwgY3JlYXRlSW5wdXRUeXBlPERh
dGVUaW1lTG9jYWxJbnB1dFR5cGU+KTsKICNlbmRpZgotICAgIG1hcC0+YWRkKElucHV0VHlwZU5h
bWVzOjplbWFpbCgpLCAmRW1haWxJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5w
dXRUeXBlTmFtZXM6OmZpbGUoKSwgJkZpbGVJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5h
ZGQoSW5wdXRUeXBlTmFtZXM6OmhpZGRlbigpLCAmSGlkZGVuSW5wdXRUeXBlOjpjcmVhdGUpOwot
ICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjppbWFnZSgpLCAmSW1hZ2VJbnB1dFR5cGU6OmNy
ZWF0ZSk7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6ZW1haWwoKSwgY3JlYXRlSW5wdXRU
eXBlPEVtYWlsSW5wdXRUeXBlPik7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6ZmlsZSgp
LCBjcmVhdGVJbnB1dFR5cGU8RmlsZUlucHV0VHlwZT4pOworICAgIG1hcC5hZGQoSW5wdXRUeXBl
TmFtZXM6OmhpZGRlbigpLCBjcmVhdGVJbnB1dFR5cGU8SGlkZGVuSW5wdXRUeXBlPik7CisgICAg
bWFwLmFkZChJbnB1dFR5cGVOYW1lczo6aW1hZ2UoKSwgY3JlYXRlSW5wdXRUeXBlPEltYWdlSW5w
dXRUeXBlPik7CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfTU9OVEgpCiAgICAgaWYgKFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5wdXRUeXBlTW9udGhFbmFibGVkKCkp
Ci0gICAgICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjptb250aCgpLCAmTW9udGhJbnB1dFR5
cGU6OmNyZWF0ZSk7CisgICAgICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6Om1vbnRoKCksIGNy
ZWF0ZUlucHV0VHlwZTxNb250aElucHV0VHlwZT4pOwogI2VuZGlmCi0gICAgbWFwLT5hZGQoSW5w
dXRUeXBlTmFtZXM6Om51bWJlcigpLCAmTnVtYmVySW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1h
cC0+YWRkKElucHV0VHlwZU5hbWVzOjpwYXNzd29yZCgpLCAmUGFzc3dvcmRJbnB1dFR5cGU6OmNy
ZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OnJhZGlvKCksICZSYWRpb0lucHV0
VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6cmFuZ2UoKSwgJlJh
bmdlSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpyZXNl
dCgpLCAmUmVzZXRJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFt
ZXM6OnNlYXJjaCgpLCAmU2VhcmNoSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElu
cHV0VHlwZU5hbWVzOjpzdWJtaXQoKSwgJlN1Ym1pdElucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBt
YXAtPmFkZChJbnB1dFR5cGVOYW1lczo6dGVsZXBob25lKCksICZUZWxlcGhvbmVJbnB1dFR5cGU6
OmNyZWF0ZSk7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6bnVtYmVyKCksIGNyZWF0ZUlu
cHV0VHlwZTxOdW1iZXJJbnB1dFR5cGU+KTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpw
YXNzd29yZCgpLCBjcmVhdGVJbnB1dFR5cGU8UGFzc3dvcmRJbnB1dFR5cGU+KTsKKyAgICBtYXAu
YWRkKElucHV0VHlwZU5hbWVzOjpyYWRpbygpLCBjcmVhdGVJbnB1dFR5cGU8UmFkaW9JbnB1dFR5
cGU+KTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpyYW5nZSgpLCBjcmVhdGVJbnB1dFR5
cGU8UmFuZ2VJbnB1dFR5cGU+KTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpyZXNldCgp
LCBjcmVhdGVJbnB1dFR5cGU8UmVzZXRJbnB1dFR5cGU+KTsKKyAgICBtYXAuYWRkKElucHV0VHlw
ZU5hbWVzOjpzZWFyY2goKSwgY3JlYXRlSW5wdXRUeXBlPFNlYXJjaElucHV0VHlwZT4pOworICAg
IG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OnN1Ym1pdCgpLCBjcmVhdGVJbnB1dFR5cGU8U3VibWl0
SW5wdXRUeXBlPik7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6dGVsZXBob25lKCksIGNy
ZWF0ZUlucHV0VHlwZTxUZWxlcGhvbmVJbnB1dFR5cGU+KTsKICNpZiBFTkFCTEUoSU5QVVRfVFlQ
RV9USU1FKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmlucHV0VHlwZVRpbWVFbmFibGVkKCkpCi0gICAgICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVz
Ojp0aW1lKCksICZUaW1lSW5wdXRUeXBlOjpjcmVhdGUpOworICAgICAgICBtYXAuYWRkKElucHV0
VHlwZU5hbWVzOjp0aW1lKCksIGNyZWF0ZUlucHV0VHlwZTxUaW1lSW5wdXRUeXBlPik7CiAjZW5k
aWYKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6dXJsKCksICZVUkxJbnB1dFR5cGU6OmNy
ZWF0ZSk7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6dXJsKCksIGNyZWF0ZUlucHV0VHlw
ZTxVUkxJbnB1dFR5cGU+KTsKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9XRUVLKQogICAgIGlmIChS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZVdlZWtFbmFi
bGVkKCkpCi0gICAgICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjp3ZWVrKCksICZXZWVrSW5w
dXRUeXBlOjpjcmVhdGUpOworICAgICAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjp3ZWVrKCks
IGNyZWF0ZUlucHV0VHlwZTxXZWVrSW5wdXRUeXBlPik7CiAjZW5kaWYKICAgICAvLyBObyBuZWVk
IHRvIHJlZ2lzdGVyICJ0ZXh0IiBiZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0IHR5cGUuCi0KLSAg
ICByZXR1cm4gbWFwOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBJbnB1dFR5cGU6OmNyZWF0ZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGVOYW1lKQor
c3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxl
bWVudCYgZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlTmFtZSkKIHsKLSAgICBzdGF0
aWMgY29uc3QgSW5wdXRUeXBlRmFjdG9yeU1hcCogZmFjdG9yeU1hcCA9IGNyZWF0ZUlucHV0VHlw
ZUZhY3RvcnlNYXAoKS5sZWFrUHRyKCk7Ci0gICAgT3duUHRyPElucHV0VHlwZT4gKCpmYWN0b3J5
KShIVE1MSW5wdXRFbGVtZW50JikgPSB0eXBlTmFtZS5pc0VtcHR5KCkgPyAwIDogZmFjdG9yeU1h
cC0+Z2V0KHR5cGVOYW1lKTsKLSAgICBpZiAoIWZhY3RvcnkpCi0gICAgICAgIGZhY3RvcnkgPSBU
ZXh0SW5wdXRUeXBlOjpjcmVhdGU7Ci0gICAgcmV0dXJuIGZhY3RvcnkoZWxlbWVudCk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPElucHV0VHlwZUZhY3RvcnlNYXA+IGZhY3RvcnlNYXA7Cisg
ICAgaWYgKGZhY3RvcnlNYXAuZ2V0KCkuaXNFbXB0eSgpKQorICAgICAgICBwb3B1bGF0ZUlucHV0
VHlwZUZhY3RvcnlNYXAoZmFjdG9yeU1hcCk7CisKKyAgICBzdGQ6OmZ1bmN0aW9uPHN0ZDo6dW5p
cXVlX3B0cjxJbnB1dFR5cGU+KEhUTUxJbnB1dEVsZW1lbnQmKT4gZmFjdG9yeSA9IHR5cGVOYW1l
LmlzRW1wdHkoKSA/IG51bGxwdHIgOiBmYWN0b3J5TWFwLmdldCgpLmdldCh0eXBlTmFtZSk7Cisg
ICAgaWYgKGZhY3RvcnkpCisgICAgICAgIHJldHVybiBmYWN0b3J5KGVsZW1lbnQpOworICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFRleHRJbnB1dFR5cGU+KGVsZW1lbnQpOwogfQogCi1Pd25Q
dHI8SW5wdXRUeXBlPiBJbnB1dFR5cGU6OmNyZWF0ZVRleHQoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IElucHV0VHlwZTo6Y3JlYXRlVGV4dChI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVybiBUZXh0SW5wdXRUeXBlOjpj
cmVhdGUoZWxlbWVudCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VGV4dElucHV0VHlw
ZT4oZWxlbWVudCk7CiB9CiAKIElucHV0VHlwZTo6fklucHV0VHlwZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuaAppbmRleCA1MjQ3MGIxNDQwMGQ3MmIyNDc2OTQzNzlkNjRmMTk0MmJkNDQzYWNlLi4x
NjVjZmNkMzJmZjA5NDg5NzJjOGI2N2IyZjRlN2Q0ZjNiMGM3ZDYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmgKQEAgLTc0LDggKzc0LDggQEAgY2xhc3MgSW5wdXRUeXBlIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIAogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBl
PiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYsIGNvbnN0IEF0b21pY1N0cmluZyYpOwotICAgIHN0
YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGVUZXh0KEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1l
bnQmLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElu
cHV0VHlwZT4gY3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB+SW5w
dXRUeXBlKCk7CiAKICAgICBzdGF0aWMgYm9vbCB0aGVtZVN1cHBvcnRzRGF0YUxpc3RVSShJbnB1
dFR5cGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKaW5kZXggNDhlYWQx
ZmU4ZTI0MTRiNjU1MWY0N2IzM2Y1OWNiNzRjYmI1MTVkMS4uNjgwY2NlZTg0NGI3ZjU3N2NhZTg2
ODlmNjU0YTExMDJkYzAzZjMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250
aElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5j
cHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNs
dWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDksMTEg
KzQ4LDYgQEAgc3RhdGljIGNvbnN0IGludCBtb250aERlZmF1bHRTdGVwID0gMTsKIHN0YXRpYyBj
b25zdCBpbnQgbW9udGhEZWZhdWx0U3RlcEJhc2UgPSAwOwogc3RhdGljIGNvbnN0IGludCBtb250
aFN0ZXBTY2FsZUZhY3RvciA9IDE7CiAKLU93blB0cjxJbnB1dFR5cGU+IE1vbnRoSW5wdXRUeXBl
OjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IE1vbnRoSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBNb250aElucHV0VHlw
ZTo6YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2
ZXI6OklucHV0VHlwZU1vbnRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9u
dGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAppbmRl
eCA5YjU0ZTBiNjA0YTFkMjNmMzhlNjMwYWNlMzA2MTMyZDFiY2QzZWQ1Li4xYzdmZjgwOTQzYjZk
Y2FkMzZiMjdlNTNkMDgzZDczZmRjOTY5YzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0
VHlwZS5oCkBAIC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1v
bnRoSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBl
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1
dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBNb250aElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KSA6IEJhc2VNb250aElucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBNb250aElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6
IEJhc2VNb250aElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9s
VHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUg
ZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRU
eXBlLmNwcAppbmRleCA2ZjU1ZGZiOWMwMjQzOTZlZDgyOTAwMDMyNGVmMmM5ZmY0YWJhYTM4Li45
ODRjZmEyMWU5ZGI4NDlmMjZlNTU0MDVlYThhNjJjYTdlN2FhNmMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBAIC00NCw3ICs0NCw2IEBACiAjaW5jbHVkZSA8bGlt
aXRzPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTk0LDExICs5Myw2IEBAIHN0YXRpYyBSZWFsTnVtYmVyUmVuZGVyU2l6ZSBjYWxjdWxh
dGVSZW5kZXJTaXplKGNvbnN0IERlY2ltYWwmIHZhbHVlKQogICAgIHJldHVybiBSZWFsTnVtYmVy
UmVuZGVyU2l6ZShzaXplT2ZTaWduICsgc2l6ZU9mWmVybyAsIG51bWJlck9mWmVyb0FmdGVyRGVj
aW1hbFBvaW50ICsgc2l6ZU9mRGlnaXRzKTsKIH0KIAotT3duUHRyPElucHV0VHlwZT4gTnVtYmVy
SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1
cm4gYWRvcHRQdHIobmV3IE51bWJlcklucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgTnVt
YmVySW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIFRleHRGaWVsZElucHV0VHlwZTo6YXR0YWNo
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCBmOTlhNjZmNzdiNDlh
NzEzNWRiYWFiOGI3MmU5MTllN2E3ZTRkZGY5Li45ZDVjZTg2MDBmYTY1MTFjNjgwYjA3Zjc5YzBi
M2VkNzU2NDg3Mzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0
VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTM3
LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTnVtYmVySW5wdXRUeXBl
IDogcHVibGljIFRleHRGaWVsZElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0
cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgTnVtYmVySW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1l
bnQpIHsgfQogCiBwcml2YXRlOgotICAgIE51bWJlcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KSA6IFRleHRGaWVsZElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRW
YWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhh
dmlvcikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3Jk
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3Bw
CmluZGV4IGZiNTdhM2E3ZjYyN2ZhNzUzZGRmYTA2OWUxYmM5YmNmODFlNTU0MTQuLjdmN2UwZjlm
Y2NhMzQ0MmM0YzRkZmM2MzQ1NzM2NDEwOTgyM2U0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UGFzc3dvcmRJbnB1dFR5cGUuY3BwCkBAIC0zNiwxNSArMzYsOSBAQAogI2luY2x1ZGUgIkhUTUxJ
bnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBQYXNzd29yZElucHV0VHlwZTo6Y3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQ
YXNzd29yZElucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgUGFz
c3dvcmRJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElu
cHV0VHlwZU5hbWVzOjpwYXNzd29yZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9QYXNzd29yZElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0
VHlwZS5oCmluZGV4IGVhZjE0OGVmZTZkYzcxY2YxMjk1MTYxNzBlNjlmYzRkMzk4MTZjMzAuLmJk
MmRmYmI1MDEzYjRjMmQwY2Y4NTI0ODJlNTE4Y2NlN2U5M2I5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgUGFzc3dvcmRJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5
cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElu
cHV0RWxlbWVudCYpOworICAgIFBhc3N3b3JkSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAg
UGFzc3dvcmRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElu
cHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9y
bUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFNh
dmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURF
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcAppbmRleCAwYzIyNDE2YWY2NTll
MDE1MjM1MGYyNjJiNjcyZjk0NjVmMmU5NmUyLi4yMzlhOWNlNjBhY2ZkYzcyNjBmOWQ2MDg5ZmQ2
MTM3NTQ1ZGFjZWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcApAQCAt
MzMsMTcgKzMzLDExIEBACiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiU3BhdGlhbE5hdmlnYXRpb24uaCIKLSNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CiAKLU93blB0cjxJbnB1dFR5cGU+IFJhZGlvSW5wdXRUeXBlOjpjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFJhZGlv
SW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBSYWRpb0lucHV0
VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFt
ZXM6OnJhZGlvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRU
eXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmgKaW5kZXggMTQxYmM0
ODc5YTg3ZGVmMGU2YWMzMmI2YzU5YzQ2MzQ2OWZlODEzNS4uMzE3Y2IyODhiNGI0MjY2ZTM2ZDc0
ZGMyM2FhN2ZhNjE3MjhkYmYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRp
b0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuaApA
QCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSYWRpb0lucHV0
VHlwZSA6IHB1YmxpYyBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBs
aWNpdCBSYWRpb0lucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDaGVj
a2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUmFk
aW9JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hlY2thYmxlSW5w
dXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3Jt
Q29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNz
aW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHZh
bHVlTWlzc2luZ1RleHQoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAKaW5kZXggODBiM2I2NTE0OWQ5ZGQ1OGI1YTVlMjVjZDAyOTUwZTk5ODQzYWZh
Mi4uZjM3MTFkM2ZjN2I0N2U5NTAyZDBlZTY3ZGRiOTJmOGRjYjEzMjA1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTQ5LDcgKzQ5LDYgQEAKICNpbmNsdWRlICJT
dGVwUmFuZ2UuaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMu
aD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKICNpbmNsdWRlICJUb3VjaC5oIgpAQCAtNzgsMTEgKzc3LDYgQEAgc3RhdGljIERlY2ltYWwg
ZW5zdXJlTWF4aW11bShjb25zdCBEZWNpbWFsJiBwcm9wb3NlZFZhbHVlLCBjb25zdCBEZWNpbWFs
JiBtaW5pbXUKICAgICByZXR1cm4gcHJvcG9zZWRWYWx1ZSA+PSBtaW5pbXVtID8gcHJvcG9zZWRW
YWx1ZSA6IHN0ZDo6bWF4KG1pbmltdW0sIGZhbGxiYWNrVmFsdWUpOwogfQogCi1Pd25QdHI8SW5w
dXRUeXBlPiBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
Ci17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBSYW5nZUlucHV0VHlwZShlbGVtZW50KSk7Ci19
Ci0KIFJhbmdlSW5wdXRUeXBlOjpSYW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KQogICAgIDogSW5wdXRUeXBlKGVsZW1lbnQpCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1F
TlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKaW5kZXggNDg2M2UwZjE3NzYzOGUx
YTcxZjkzMjY0OGRhYmEwOTZmMjlmNGUwNy4uM2M3MjI1MmMyOGQ1ZGE4M2I1ZjBkODE4YWViNjE4
Y2YwODkwYWE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtMzksMTAg
KzM5LDkgQEAgY2xhc3MgU2xpZGVyVGh1bWJFbGVtZW50OwogCiBjbGFzcyBSYW5nZUlucHV0VHlw
ZSBGSU5BTCA6IHB1YmxpYyBJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8
SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFJhbmdl
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBS
YW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGF0dGFj
aCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUo
KSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5jcHAKaW5k
ZXggMTA1NmYxY2I2MTBmMTU3ZDNlZjI5NGMxMGUyODQxMTNlNTdiMDBmNS4uYzMyODhkZDY3MWUy
NGM1YTZlYWU0NTgwMzc2YWI5ODQ1MGY1OGM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9SZXNldElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElu
cHV0VHlwZS5jcHAKQEAgLTM3LDE1ICszNyw5IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3Ry
aW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotT3duUHRyPElucHV0VHlwZT4gUmVzZXRJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUmVzZXRJbnB1dFR5
cGUoZWxlbWVudCkpOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIFJlc2V0SW5wdXRUeXBlOjpm
b3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6cmVz
ZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaAppbmRleCA0NWE4OWFiMzNiMjkx
NjMyMzc3Yzk5NTQ1ZTljNjk1ZTkwMTYxYzA1Li5mNzQ5ZjY4ZDAxNThkNmQ2NGVhMWY0ZmM3MjM2
Yzg5ZDBjMjBkMGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5oCkBAIC0zNywx
MCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc2V0SW5wdXRUeXBlIDog
cHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8
SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFJlc2V0
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlw
ZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZXNldElucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZhbGlkYXRpb24oKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVu
dCopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCmluZGV4
IGZjOGRkNzZlMWQxZTZhMGIwMWJlZWE2OGU0ZWJmYzRkNzI4NjkwZWUuLjdiMDYwYTNmN2MxYzgw
ZTdjNDhkZGVmZDAyNGM3YTMzM2I0YjBjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElu
cHV0VHlwZS5jcHAKQEAgLTM4LDEzICszOCwxMiBAQAogI2luY2x1ZGUgIlJlbmRlclNlYXJjaEZp
ZWxkLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIFNlYXJjaElu
cHV0VHlwZTo6U2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitTZWFy
Y2hJbnB1dFR5cGU6OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQog
ICAgIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkKICAgICAsIG1fcmVzdWx0c0J1dHRvbigw
KQogICAgICwgbV9jYW5jZWxCdXR0b24oMCkKQEAgLTUyLDExICs1MSw2IEBAIGlubGluZSBTZWFy
Y2hJbnB1dFR5cGU6OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQog
ewogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgU2VhcmNoSW5w
dXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmF0dGFjaCgpCiB7
CiAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJj
aElucHV0VHlwZS5oCmluZGV4IDljMGE3NWFkMzZmNzI3ZjU5M2RhNjEzMzdmYWY5ZTBmNTY2MzQ5
ODUuLjhmOTVjYTkyYWQ5Y2E1ZjliNmUzYWZiMGYxYTY1OGRmMmM2NjFiOWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaApAQCAtNDEsMTIgKzQxLDExIEBAIGNsYXNzIFNlYXJj
aEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ7CiAKIGNsYXNzIFNlYXJjaElucHV0VHlwZSA6IHB1
YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1
dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgU2VhcmNoSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogICAgIHZvaWQgc3RvcFNlYXJjaEV2ZW50VGlt
ZXIoKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTZWFyY2hJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYpOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgYWRkU2VhcmNoUmVzdWx0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBSZW5kZXJF
bGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJTdHlsZSYpIGNvbnN0IE9WRVJSSURFOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuY3BwCmluZGV4IGRlZDQxZGJmNWZiZjljMTAw
MWU2ZjQ2ODk0NzVhYmEyMWVhMjRhZmMuLjFkMGI3MmVkOTVkYTUxZjIwNjkzNzMwNGRjNzAxYzZh
ZjFmMDRhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5jcHAKQEAgLTM4
LDE1ICszOCw5IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklu
cHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElucHV0
VHlwZT4gU3VibWl0SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkK
LXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFN1Ym1pdElucHV0VHlwZShlbGVtZW50KSk7Ci19
Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgU3VibWl0SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUo
KSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6c3VibWl0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuaAppbmRleCBkOWQ4N2ExNzU0MmE5MzNkMGNjMGU0ODgz
MGJjZjNmMmFmNzBhN2RlLi5mNGU2M2ZiZDM3MTg3NWM3NWEzNzliZTBkODIyNzFjZGYwYmM1NWEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU3VibWl0SW5wdXRUeXBlIDogcHVibGljIEJh
c2VCdXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBl
PiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFN1Ym1pdElucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU3VibWl0SW5wdXRUeXBlKEhUTUxJbnB1
dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KSB7IH0KICAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJv
b2wpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1JlcXVpcmVkKCkg
Y29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9u
ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5j
cHAKaW5kZXggMmQ4N2QyZjhkN2EwYjgxNzUxNGMzODI1NTg1ZTAzMjRhNjRmOTVlMC4uNzdmZDBl
MGE0YmMwZjcyMDI0YTY4ZjQ2ZGY0ZTlhM2FkYThmZGNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcApAQCAtMzMsMTUgKzMzLDkgQEAKIAogI2luY2x1ZGUg
IkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElu
cHV0VHlwZT4gVGVsZXBob25lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRlbGVwaG9uZUlucHV0VHlwZShlbGVt
ZW50KSk7Ci19Ci0KIHZvaWQgVGVsZXBob25lSW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIFRl
eHRGaWVsZElucHV0VHlwZTo6YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJ
bnB1dFR5cGUuaAppbmRleCBhYTRhYTUyN2E2OTNkYTUwYmIzNzY0YWIyYmI0ZmY5NzAxMjE3ZTlk
Li5mMmQ4Mzc5ZGU0OGMzYTRlMDk5ZThlNDAwMmFlZDI2OWZhN2Y2YWJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgVGVsZXBob25lSW5wdXRUeXBlIDogcHVibGljIEJhc2VUZXh0
SW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBUZWxlcGhvbmVJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0K
IAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBUZWxlcGhvbmVJbnB1dFR5cGUoSFRNTElucHV0RWxl
bWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJp
bmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRSZXNwZWN0U3BlZWNoQXR0cmlidXRlKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0SW5wdXRUeXBlLmNwcAppbmRleCBjNWYzYThmYWQ1MTEzMmZmZWQxZTc1NTk5Y2VjZjgzODhk
MjIxOWQ1Li44N2ViOTM4NzExOTNhNzkyNzk1ZjRhZmFkNmU1MThmZTVhMTk4MjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5jcHAKQEAgLTMzLDE3ICszMywxMSBAQAogCiAjaW5j
bHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0j
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBUZXh0SW5wdXRUeXBl
OjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFRleHRJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lkIFRleHRJbnB1dFR5cGU6
OmF0dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2goKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0SW5wdXRUeXBlLmgKaW5kZXggYmEyNGNhOTIyNjJkYTZiYzBlZmIzZWFlOThkY2Q2
YWQ3ZDgyMmZkNC4uNDFiMmE2MjliMWViNzlmMDgyZTRlNzVhYTRjZDZkOTExNzc4ZjdmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgVGV4dElucHV0VHlwZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0
VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgVGV4dElucHV0VHlwZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRl
OgotICAgIGV4cGxpY2l0IFRleHRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkg
OiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9s
VHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0U3Bl
ZWNoQXR0cmlidXRlKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNw
cAppbmRleCBlNzczOTM0OTk4MzNhMzkwNWViNzY2YjVjM2FiMGVmNTM3MzA3M2E5Li5kNzUxZjUx
ZjgxYzAwMzkzODlhZTQ2Zjk2MzM2MDQ2ZjJiNWJhOTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZUlucHV0VHlwZS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNTQsMTEgKzUzLDYgQEAgVGltZUlucHV0VHlwZTo6VGltZUlucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KQogewogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBUaW1lSW5wdXRU
eXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRv
cHRQdHIobmV3IFRpbWVJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lkIFRpbWVJbnB1dFR5
cGU6OmF0dGFjaCgpCiB7CiAgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2Vy
dmVyOjpJbnB1dFR5cGVUaW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKaW5kZXgg
MTk1OGQ3Nzk4ZGVlMjlmNzg3ZDJmZmRhMjZkMDY0ODVkZTZjZjhmNi4uMDkxZjIyMjU1YmIzZTFj
ZjI4ZTM5MTBjMWFhN2M0Y2YxMTY2ODY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBl
LmgKQEAgLTM4LDEwICszOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVGltZUlu
cHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVt
ZW50Jik7CisgICAgZXhwbGljaXQgVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAK
IHByaXZhdGU6Ci0gICAgZXhwbGljaXQgVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7
CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAKaW5kZXggMWI1NWRjOGU1NjZlMzQyOWIzNDIwMWM5
YmI2OWIxNmI4NGU3NzEyNC4uY2JhMjllYzUwNWE0N2FjMmI1MDRiYmU2ZjJmZTE4YTQ5OWFmZjI4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcApAQCAtMzUsMTUgKzM1LDkgQEAK
ICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3Mu
aCIKICNpbmNsdWRlICJVUkwuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLU93blB0cjxJbnB1dFR5cGU+IFVSTElucHV0VHlwZTo6Y3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBV
UkxJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lkIFVSTElucHV0VHlwZTo6YXR0YWNoKCkK
IHsKICAgICBUZXh0RmllbGRJbnB1dFR5cGU6OmF0dGFjaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5w
dXRUeXBlLmgKaW5kZXggYjdhYjY3NGE0NDk0ODRkZDE2ZmQ0ODMyOWNjYTA1OTEwYWE3YzQ1ZC4u
MTQ5NmYwNzBjM2ZjZWU4YmRjNzZmYTE0NmU3MTI3MDI1YTAwMWUzMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1VSTElucHV0VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIFVSTElucHV0VHlwZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7
CisgICAgZXhwbGljaXQgVVJMSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDog
QmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQg
VVJMSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5
cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNv
bnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKaW5kZXggNTE5
ZGY1YTQ0NTEzODI5NmYyNjliYTZmMTI1ZGI1ZmJiZjgwNjQ5NC4uMzVkMmZjZjJmZTZiNjMyZGQ1
ZDY1MGNhNTMzZTRlNGFjZDdjNGE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9X
ZWVrSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUu
Y3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NiwxMSAr
NDUsNiBAQCBzdGF0aWMgY29uc3QgaW50IHdlZWtEZWZhdWx0U3RlcEJhc2UgPSAtMjU5MjAwMDAw
OyAvLyBUaGUgZmlyc3QgZGF5IG9mIDE5NzAtVzAxLgogc3RhdGljIGNvbnN0IGludCB3ZWVrRGVm
YXVsdFN0ZXAgPSAxOwogc3RhdGljIGNvbnN0IGludCB3ZWVrU3RlcFNjYWxlRmFjdG9yID0gNjA0
ODAwMDAwOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBXZWVrSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlZWtJbnB1
dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lkIFdlZWtJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAg
ICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVXZWVr
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKaW5kZXggY2FlNzllOTFiYjlhMDdiYTY0
ZDQwM2E0NGU2NmY5ZTgxNTllMmIyNC4uMzMzZmI1NzA0MDA1YmU2NjZjZjEwNzZmNzQzZDM5NDhj
Mjc3MWM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKQEAgLTM4LDEwICszOCw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2Vla0lucHV0VHlwZSA6IHB1YmxpYyBC
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGlj
aXQgV2Vla0lucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIGV4
cGxpY2l0IFdlZWtJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZv
cm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVu
dHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214945</attachid>
            <date>2013-10-23 05:11:17 -0700</date>
            <delta_ts>2013-10-23 08:25:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123160-20131023051116.patch</filename>
            <type>text/plain</type>
            <size>49296</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFhODZhZWJlNjkzMjIw
YjQyZTUxZDllOGU1YWQ4ZDA1YjFjMTczNC4uODhiYzJkMThlMWQwNWUyZDA4NWVjZTBhNjUyNDFj
YWI1YTg4YjRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEzLTEwLTIzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBIVE1MIGlucHV0IHR5
cGUgb2JqZWN0cyBzaG91bGQgYmUgbWFuYWdlZCB0aHJvdWdoIHN0ZDo6dW5pcXVlX3B0cgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTYwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgY29u
c3RydWN0b3JzIG9mIHRoZSBJbnB1dFR5cGUgc3ViY2xhc3NlcyBwdWJsaWMuIFRoaXMgbWFrZXMg
aXQgcG9zc2libGUgdG8gdXNlIHN0ZDo6bWFrZV91bmlxdWUgb24gdGhlc2UgY2xhc3NlcworICAg
ICAgICBhbmQgbWFrZXMgdGhlIFQ6OmNyZWF0ZSgpIGhlbHBlcnMgcmVkdW5kYW50LiBOZXcgaW5z
dGFuY2VzIG9mIHRoZXNlIGNsYXNzZXMgYXJlIG5vdyBtYW5hZ2VkIHRocm91Z2ggc3RkOjp1bmlx
dWVfcHRyLgorICAgICAgICBJbnB1dFR5cGU6OmNyZWF0ZSgpIG5vdyB1c2VzIGEgTmV2ZXJEZXN0
cm95ZWQgSW5wdXRUeXBlRmFjdG9yeU1hcCB0aGF0IG1hcHMgdHlwZSBuYW1lcyB0byBJbnB1dFR5
cGVGYWN0b3J5RnVuY3Rpb25zIGFuZAorICAgICAgICBnZXRzIHBvcHVsYXRlZCB3aGVuIHRoZSBt
ZXRob2QgaXMgZmlyc3QgY2FsbGVkIGFuZCB0aGUgbWFwIGlzIHN0aWxsIGVtcHR5LiBUaGUgZmFj
dG9yeSBpcyB1c2VkIHRvIGNyZWF0ZSB0aGUgbmV3IElucHV0VHlwZQorICAgICAgICBvYmplY3Qg
aWYgdGhlIHJlcXVlc3RlZCB0eXBlIHdhcyBmb3VuZCBpbiB0aGUgbWFwLCBhbmQgVGV4dElucHV0
VHlwZSBpcyB1c2VkIG90aGVyd2lzZS4KKworICAgICAgICAqIGh0bWwvQnV0dG9uSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKiBodG1sL0J1dHRvbklucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6QnV0dG9uSW5wdXRUeXBlOjpCdXR0b25JbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvQ2hl
Y2tib3hJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNoZWNrYm94SW5wdXRUeXBlOjpDaGVja2JveElucHV0VHlwZSk6
CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9Db2xv
cklucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OkNvbG9ySW5w
dXRUeXBlKToKKyAgICAgICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0
bWwvRGF0ZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUlucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9E
YXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OkRh
dGVUaW1lTG9jYWxJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVt
YWlsSW5wdXRUeXBlOjpFbWFpbElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6dXBkYXRlVHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5w
dXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpIaWRkZW5JbnB1dFR5cGU6OkhpZGRlbklucHV0
VHlwZSk6CisgICAgICAgICogaHRtbC9JbWFnZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUlucHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvSW1h
Z2VJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVJbnB1dFR5cGUpOiBBIHRlbXBsYXRlZCBoZWxwZXIgdGhhdCBjb25zdHJ1
Y3RzIGEgbmV3IElucHV0VHlwZSBzdWJjbGFzcyBvYmplY3QgdGhyb3VnaCBzdGQ6Om1ha2VfdW5p
cXVlLgorICAgICAgICAoV2ViQ29yZTo6cG9wdWxhdGVJbnB1dFR5cGVGYWN0b3J5TWFwKTogUG9w
dWxhdGVzIHRoZSBwYXNzZWQtaW4gbWFwIHdpdGggdHlwZS1jcmVhdGVJbnB1dFR5cGU8VD4gcGFp
cnMuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0ZSk6IEdldCB0aGUgc3RkOjpm
dW5jdGlvbiBmb3IgdGhlIHNwZWNpZmllZCB0eXBlLCBvciBmYWxsIGJhY2sgdG8gVGV4dElucHV0
VHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6Y3JlYXRlVGV4dCk6CisgICAgICAg
ICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpNb250
aElucHV0VHlwZTo6TW9udGhJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6TnVtYmVySW5wdXRUeXBlOjpOdW1iZXJJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwv
UGFzc3dvcmRJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3N3b3JkSW5wdXRUeXBlOjpQYXNzd29yZElucHV0VHlw
ZSk6CisgICAgICAgICogaHRtbC9SYWRpb0lucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9S
YWRpb0lucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmFkaW9JbnB1dFR5cGU6OlJhZGlv
SW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KiBodG1sL1JhbmdlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9SZXNldElucHV0VHlwZS5j
cHA6CisgICAgICAgICogaHRtbC9SZXNldElucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6
UmVzZXRJbnB1dFR5cGU6OlJlc2V0SW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1NlYXJjaElu
cHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hJbnB1dFR5cGU6OlNlYXJjaElu
cHV0VHlwZSk6CisgICAgICAgICogaHRtbC9TZWFyY2hJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBo
dG1sL1N1Ym1pdElucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9TdWJtaXRJbnB1dFR5cGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlN1Ym1pdElucHV0VHlwZTo6U3VibWl0SW5wdXRUeXBlKToK
KyAgICAgICAgKiBodG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9U
ZWxlcGhvbmVJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRlbGVwaG9uZUlucHV0VHlw
ZTo6VGVsZXBob25lSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1RleHRJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAqIGh0bWwvVGV4dElucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dElucHV0VHlwZTo6VGV4dElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1VS
TElucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9VUkxJbnB1dFR5cGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlVSTElucHV0VHlwZTo6VVJMSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1dl
ZWtJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvV2Vla0lucHV0VHlwZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6V2Vla0lucHV0VHlwZTo6V2Vla0lucHV0VHlwZSk6CisKIDIwMTMtMTAtMjIg
IEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBSZWdpb25z
XSBQb3NzaWJsZSBwZXJmb3JtYW5jZSByZWdyZXNzaW9uIGFmdGVyIHIxNTc1NjcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcAppbmRleCA5Y2UyODBjODUyNGI5YWJjYWQ5YzVk
MzNiM2NhMjcyOWZhMTNmZDViLi5jYjQ1MmU2NDNmNTFlNWIzNjY5N2NmZTExMTJjMjFjYjAzZmI2
NjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwCkBAIC0zMiwxNSAr
MzIsOSBAQAogI2luY2x1ZGUgIkJ1dHRvbklucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiSW5wdXRU
eXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLU93blB0cjxJbnB1dFR5cGU+IEJ1dHRvbklucHV0VHlwZTo6Y3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBCdXR0b25J
bnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIEJ1dHRvbklucHV0
VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFt
ZXM6OmJ1dHRvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKaW5kZXggYjRl
OTQ4MDU5NmZkMzA5MzU4ZjkyZjkzZDg3OWZhYjExMzU3MzVhYS4uYjVlM2I4ZWY2YTM1ZDQ2MWRh
MzAyOWY3NTI4ZTMxZDZjNmRkYWZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
dXR0b25JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlw
ZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJ1dHRv
bklucHV0VHlwZSA6IHB1YmxpYyBCYXNlQnV0dG9uSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBC
dXR0b25JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQnV0dG9uSW5w
dXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIEJ1dHRvbklucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkgeyB9
CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZhbGlkYXRpb24oKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3QgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCmluZGV4IDBlYzRkMWZi
MjM0OTRhMTQ4NjBlZTI1MzMwNTg5ODk4ZmM5M2ZjZTMuLjY5Y2YwNWJjYWRkMWJlYzYyMGU2NDM5
ZTVlN2MzMDc0OGNhOWY5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2ti
b3hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5
cGUuY3BwCkBAIC0zNiwxNSArMzYsOSBAQAogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAj
aW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIK
LSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU93
blB0cjxJbnB1dFR5cGU+IENoZWNrYm94SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVu
dCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IENoZWNrYm94SW5wdXRUeXBl
KGVsZW1lbnQpKTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBDaGVja2JveElucHV0VHlwZTo6
Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OmNo
ZWNrYm94KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRU
eXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmgKaW5kZXggNDVi
M2Y4MzI1MWM0OWJiZWI1YjYwMzdlNTExNTY2NzNhODUyZWQ5NC4uOGNkMDkzMDM4ODQ5OWJhYzRh
ZTExNjFiN2U0OTQ3NjMyODk1NzA1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9D
aGVja2JveElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1
dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBD
aGVja2JveElucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQm
KTsKKyAgICBDaGVja2JveElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJh
c2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgQ2hlY2ti
b3hJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hlY2thYmxlSW5w
dXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3Jt
Q29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNz
aW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHZh
bHVlTWlzc2luZ1RleHQoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklu
cHV0VHlwZS5jcHAKaW5kZXggYzMyNWZjODVlZjExMTAyZmM2MzJlYWQzZjhhZTdlZmIxYzllYTZi
YS4uZGU5YmFlZmZjMTgzYjc5NDZmYzZkZDBkM2Y5ZTA2NDZjZjY5NGE3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTQ1LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJS
ZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNo
YWRvd1Jvb3QuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02NiwxMSArNjUsNiBA
QCBzdGF0aWMgYm9vbCBpc1ZhbGlkQ29sb3JTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAg
ICByZXR1cm4gY29sb3IuaXNWYWxpZCgpICYmICFjb2xvci5oYXNBbHBoYSgpOwogfQogCi1Pd25Q
dHI8SW5wdXRUeXBlPiBDb2xvcklucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDb2xvcklucHV0VHlwZShlbGVtZW50
KSk7Ci19Ci0KIENvbG9ySW5wdXRUeXBlOjp+Q29sb3JJbnB1dFR5cGUoKQogewogICAgIGVuZENv
bG9yQ2hvb3NlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCmluZGV4IDAwYTNm
NWIyNTE1OTdkZWQzNjk0MmM2OTZmMjk0ODg2OTM4ZDRlZTcuLjcwMDg1ZmYzMDc4NjYzN2EzNGFj
Y2NkNjI2NWFlNzY3ZWJhNTFkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29s
b3JJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgK
QEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb2xvcklucHV0
VHlwZSA6IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSwgcHVibGljIENvbG9y
Q2hvb3NlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNy
ZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgQ29sb3JJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZShl
bGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIH5Db2xvcklucHV0VHlwZSgpOwogCiAgICAgLy8gQ29s
b3JDaG9vc2VyQ2xpZW50IGltcGxlbWVudGF0aW9uLgpAQCAtNTEsNyArNTEsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBWZWN0b3I8Q29sb3I+IHN1Z2dlc3Rpb25zKCkgY29uc3QgT1ZFUlJJREU7
CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQ29sb3JJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVu
dCYgZWxlbWVudCkgOiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZShlbGVtZW50KSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlz
Q29sb3JDb250cm9sKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZUlucHV0VHlwZS5jcHAKaW5kZXggMTJmYTA0MDkzOTYxODE1ZDlhYmU5NTk2ZWQ5NTEyZjJl
NDIwOTNkMS4uNjk1NzUzMTgyMDMxNGM4MDViMzA3MjY4YmI1MDhhMzU4OTEzYTYyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVk
ZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUg
IklucHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC01MSwxMSArNTAsNiBAQCBpbmxpbmUgRGF0ZUlucHV0VHlwZTo6
RGF0ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewogfQogCi1Pd25QdHI8
SW5wdXRUeXBlPiBEYXRlSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVu
dCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGVJbnB1dFR5cGUoZWxlbWVudCkpOwot
fQotCiB2b2lkIERhdGVJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgb2JzZXJ2ZUZlYXR1cmVJ
ZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVEYXRlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlSW5wdXRUeXBlLmgKaW5kZXggNGEwYzIzZDE5ZTExZmUzZGVmZWQ4MGQ4ZTA3ZDdiY2YwZTMx
OWYyYy4uNDcwMzFlMjIxOGZmYjlhZTQzZDNhOGRkMjA2M2FiODMyYWFiZDUwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKQEAgLTM4LDEwICszOCw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRGF0ZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+
IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgRGF0ZUlucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRGF0ZUlucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkg
Y29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1l
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3Bw
CmluZGV4IDExZjdlOWVhYjgxZGE5ZmNhYjk3YjlkZDU1MjlkOGNmOTU4OTllYmEuLmU2ZTRiNzA5
N2Q2NzBkNzc0NTg0MDllNmI4NjVlOTJiOGZmMzMxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZVRpbWVJbnB1dFR5cGUuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTQ3LDExICs0Niw2IEBAIHN0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVEZWZhdWx0
U3RlcCA9IDYwOwogc3RhdGljIGNvbnN0IGludCBkYXRlVGltZURlZmF1bHRTdGVwQmFzZSA9IDA7
CiBzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lU3RlcFNjYWxlRmFjdG9yID0gMTAwMDsKIAotT3du
UHRyPElucHV0VHlwZT4gRGF0ZVRpbWVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0ZVRpbWVJbnB1dFR5cGUo
ZWxlbWVudCkpOwotfQotCiB2b2lkIERhdGVUaW1lSW5wdXRUeXBlOjphdHRhY2goKQogewogICAg
IG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlRGF0ZVRp
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5oCmluZGV4IDIwZjRkZGY5
MWQwYjdiZWY1YTkxMTA3MDBkZDJhNjJjYTcwNGM5MjIuLjFiMjhhYTc3ZGNmZGM4MTgzMDE4NTJk
YTY0NjhmMzU2MmE3OTRhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBl
LmgKQEAgLTM5LDEwICszOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGF0ZVRp
bWVJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUg
ewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYpOworICAgIGV4cGxpY2l0IERhdGVUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpIDogQmFzZURhdGVUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2
YXRlOgotICAgIGV4cGxpY2l0IERhdGVUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpIDogQmFzZURhdGVUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYg
Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBEYXRlQ29tcG9u
ZW50czo6VHlwZSBkYXRlVHlwZSgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKaW5kZXggNTVkNGQwOTMwNjMyOWQ4N2Q1
MjdkNzI2MTgwYTYyYjM4NzVlOTI3OS4uOTdkMDgzZGZkMjc5NDNjYmNhZWFhN2ZjMjMzOTAxNTll
ZTgwYmU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5
cGUuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0jaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Niwx
MSArNDUsNiBAQCBzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lTG9jYWxEZWZhdWx0U3RlcCA9IDYw
Owogc3RhdGljIGNvbnN0IGludCBkYXRlVGltZUxvY2FsRGVmYXVsdFN0ZXBCYXNlID0gMDsKIHN0
YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVMb2NhbFN0ZXBTY2FsZUZhY3RvciA9IDEwMDA7CiAKLU93
blB0cjxJbnB1dFR5cGU+IERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6
YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6
OklucHV0VHlwZURhdGVUaW1lTG9jYWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1l
TG9jYWxJbnB1dFR5cGUuaAppbmRleCA2OWYyYmJhNjM5MjdhODkzNDE1YWQ2YzBkYzMxNDJkMzQ2
NGUzMWRkLi5iYzNlOWQyZDUyODAzMzY5NDg5MTUwYWZlYmVmMjdiYjllOWVjYjkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaApAQCAtMzgsMTAgKzM4
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRlVGltZUxvY2FsSW5wdXRUeXBl
IDogcHVibGljIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsK
KyAgICBleHBsaWNpdCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpIDogQmFzZURhdGVUaW1lTG9jYWxJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZh
dGU6Ci0gICAgZXhwbGljaXQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KSA6IEJhc2VEYXRlVGltZUxvY2FsSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBE
YXRlQ29tcG9uZW50czo6VHlwZSBkYXRlVHlwZSgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcAppbmRleCAyN2RlOGQ0NWY2ZDhmMDBhYjY4NTZlYjZk
NWNhMzRmYzYwMWVlY2Q4Li5mYTY3OWRjMzBiY2ZlNzc0YWM0MDc3NTdlM2RjM2VjMzg5ZWIzMzFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcApAQCAtMjksNyArMjksNiBA
QAogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5n
cy5oIgogI2luY2x1ZGUgIlJlZ3VsYXJFeHByZXNzaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTUzLDExICs1Miw2IEBAIHN0YXRpYyBib29sIGlzVmFsaWRFbWFpbEFk
ZHJlc3MoY29uc3QgU3RyaW5nJiBhZGRyZXNzKQogICAgIHJldHVybiAhbWF0Y2hPZmZzZXQgJiYg
bWF0Y2hMZW5ndGggPT0gYWRkcmVzc0xlbmd0aDsKIH0KIAotT3duUHRyPElucHV0VHlwZT4gRW1h
aWxJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgRW1haWxJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lkIEVt
YWlsSW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIFRleHRGaWVsZElucHV0VHlwZTo6YXR0YWNo
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmgKaW5kZXggZTBkMjEzMTg2ZDk5Yjhl
MDVjNDFlYmVkYjA4MjIwN2YwYmI0ZGJmOS4uYjdhZWVjNTQ1MDA4ODQ5YTU2NDhiMTc2NDQ3YzBh
MDQ4OWI5MWNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaApAQCAtMzcsMTAg
KzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFbWFpbElucHV0VHlwZSA6IHB1
YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1
dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgRW1haWxJbnB1
dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVt
ZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBFbWFpbElucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIHR5cGVNaXNtYXRjaEZvcihjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IGQyOWZhMTI1NmJlNzdlMGY1ZjczMGNm
ZjdhZDQwMDRkZGZlNTU4YzAuLjA2YmI5ZmEzZmY3ZDNjMzI3ZWI3ZGQ4YmM3MzJmY2VmNDk3OTBh
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMzksNyArMzksNiBA
QAogI2luY2x1ZGUgIlJlbmRlckZpbGVVcGxvYWRDb250cm9sLmgiCiAjaW5jbHVkZSAiU2NyaXB0
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtODUsMTEgKzg0LDYgQEAgY29uc3QgQXRvbWlj
U3RyaW5nJiBVcGxvYWRCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiAgICAg
cmV0dXJuIHBzZXVkb0lkOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBGaWxlSW5wdXRUeXBlOjpj
cmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IEZpbGVJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBGaWxlSW5wdXRUeXBlOjpGaWxlSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgOiBCYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZShlbGVtZW50KQogICAgICwgbV9maWxlTGlzdChGaWxlTGlzdDo6Y3JlYXRl
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmluZGV4IDZhNGFjOTM1NDBhMmY4NmVm
OTMyYTA4NzQyMDdhNjg1YWZlNmRlODkuLmM5MTE1ZGQ0NTRkZjAwYjllNTA4MGM0NzI1N2JlMDky
MWUyZGQ2MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCkBAIC00NCwxNCArNDQs
MTIgQEAgY2xhc3MgRmlsZUxpc3Q7CiAKIGNsYXNzIEZpbGVJbnB1dFR5cGUgOiBwdWJsaWMgQmFz
ZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUsIHByaXZhdGUgRmlsZUNob29zZXJDbGllbnQsIHBy
aXZhdGUgRmlsZUljb25Mb2FkZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8
SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IEZpbGVJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZpcnR1YWwgfkZpbGVJbnB1dFR5cGUo
KTsKIAogICAgIHN0YXRpYyBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4gZmlsZXNGcm9tRm9y
bUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJik7CiAKIHByaXZhdGU6Ci0gICAg
ZXhwbGljaXQgRmlsZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7Ci0KICAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0
IEZvcm1Db250cm9sU3RhdGUmKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCmluZGV4IDcyNTZmMmU1M2MwZWY5NDM4ODA4ZTUwZmIzY2I3YWEyZmUwMTdm
ZDUuLjI4MTdlODc3MzdmZDdkMjZmNzk1OGIwMTlhYWY0NTE2NWY1MmUwYzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2V0VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiAKIHZvaWQgSFRN
TElucHV0RWxlbWVudDo6dXBkYXRlVHlwZSgpCiB7Ci0gICAgT3duUHRyPElucHV0VHlwZT4gbmV3
VHlwZSA9IElucHV0VHlwZTo6Y3JlYXRlKCp0aGlzLCBmYXN0R2V0QXR0cmlidXRlKHR5cGVBdHRy
KSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gbmV3VHlwZSA9IElucHV0VHlwZTo6
Y3JlYXRlKCp0aGlzLCBmYXN0R2V0QXR0cmlidXRlKHR5cGVBdHRyKSk7CiAgICAgYm9vbCBoYWRU
eXBlID0gbV9oYXNUeXBlOwogICAgIG1faGFzVHlwZSA9IHRydWU7CiAgICAgaWYgKG1faW5wdXRU
eXBlLT5mb3JtQ29udHJvbFR5cGUoKSA9PSBuZXdUeXBlLT5mb3JtQ29udHJvbFR5cGUoKSkKQEAg
LTQ4MSw3ICs0ODEsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0ZVR5cGUoKQogICAg
IGlmICh3YXNBdHRhY2hlZCkKICAgICAgICAgU3R5bGU6OmRldGFjaFJlbmRlclRyZWUoKnRoaXMp
OwogCi0gICAgbV9pbnB1dFR5cGUgPSBuZXdUeXBlLnJlbGVhc2UoKTsKKyAgICBtX2lucHV0VHlw
ZSA9IHN0ZDo6bW92ZShuZXdUeXBlKTsKICAgICBtX2lucHV0VHlwZS0+Y3JlYXRlU2hhZG93U3Vi
dHJlZSgpOwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmgKaW5kZXggMzQ1MjZiZTIwMjhhNjEwYjdmYTA3MWM2NDA5YjM3Y2QwZTE4
YWVmNi4uZWZmM2ZhOTEyZTQ0Yzk2ZTAwNWYzMDlhYjUyNjhiNmRkMjdhNDdkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTQ0Miw3ICs0NDIsNyBAQCBwcml2YXRl
OgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgYm9vbCBtX2hhc1RvdWNoRXZlbnRIYW5k
bGVyIDogMTsKICNlbmRpZgotICAgIE93blB0cjxJbnB1dFR5cGU+IG1faW5wdXRUeXBlOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IG1faW5wdXRUeXBlOwogICAgIC8vIFRoZSBJbWFn
ZUxvYWRlciBtdXN0IGJlIG93bmVkIGJ5IHRoaXMgZWxlbWVudCBiZWNhdXNlIHRoZSBsb2FkZXIg
Y29kZSBhc3N1bWVzCiAgICAgLy8gdGhhdCBpdCBsaXZlcyBhcyBsb25nIGFzIGl0cyBvd25pbmcg
ZWxlbWVudCBsaXZlcy4gSWYgd2UgbW92ZSB0aGUgbG9hZGVyIGludG8KICAgICAvLyB0aGUgSW1h
Z2VJbnB1dCBvYmplY3Qgd2UgbWF5IGRlbGV0ZSB0aGUgbG9hZGVyIHdoaWxlIHRoaXMgZWxlbWVu
dCBsaXZlcyBvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAppbmRleCA4
M2E2M2ZiMWMzOGEzOWM4NzFkYWIzNzc5YzEyMGJiNWYxMzg2YzIzLi4xMDM0ZDhiZGZjOGQ4MjU0
NzI1MWI3YjdmYjUxOTNmNGZkMGFhZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hpZGRlbklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1
dFR5cGUuY3BwCkBAIC0zNywxNyArMzcsMTEgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIK
LSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLU93blB0cjxJbnB1dFR5cGU+IEhpZGRlbklucHV0
VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBIaWRkZW5JbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBjb25zdCBBdG9taWNT
dHJpbmcmIEhpZGRlbklucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gSW5wdXRUeXBlTmFtZXM6OmhpZGRlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5w
dXRUeXBlLmgKaW5kZXggZTM4N2ExYTM1MDk1NDQyN2Q2MWViMjBmZGM0ZGZkNjRhNTFkNTg2Zi4u
NTFkYmFmY2ZhOWFhNzUwNWEyZTJjMTdjNjUwYWFjMzIyMzY1NmVhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hpZGRlbklucHV0VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEhpZGRlbklucHV0VHlwZSA6IHB1YmxpYyBJbnB1dFR5cGUgewogcHVibGlj
OgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYp
OworICAgIGV4cGxpY2l0IEhpZGRlbklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IElucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBIaWRk
ZW5JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBJbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNv
bnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9y
bUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJikgT1ZFUlJJREU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDg5MzU2ZDdlZDIwMDkzOTdkYWU0NDc5
ZWY0MzhkZmJmYWJkODA3ODMuLjA4Yjc3MWZmMzEzMWMwMWU1MDUwZGM0NTBkNTY4YTAzMTRjOTlh
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0zMywyMiArMzMs
MTYgQEAKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQu
aCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAot
aW5saW5lIEltYWdlSW5wdXRUeXBlOjpJbWFnZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50KQorSW1hZ2VJbnB1dFR5cGU6OkltYWdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpCiAgICAgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpCiB7CiB9CiAKLU93
blB0cjxJbnB1dFR5cGU+IEltYWdlSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEltYWdlSW5wdXRUeXBlKGVsZW1l
bnQpKTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBJbWFnZUlucHV0VHlwZTo6Zm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OmltYWdlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKaW5kZXggNGE2YjViYTM2YjUyNDVmZTU4YjAz
NGU3YzE1N2QxZGFmZThkMDcyNC4uMTUxZmI4NjFmMTEwOWNjODYyNWY1YjZjZWQwMDJiZTk0Mzc0
YTczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaApAQCAtNDAsMTAgKzQwLDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbWFnZUlucHV0VHlwZSA6IHB1YmxpYyBC
YXNlQnV0dG9uSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlw
ZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBJbWFnZUlucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgSW1hZ2VJbnB1
dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNG
b3JtRGF0YUFwcGVuZGFibGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYXBw
ZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAKaW5kZXggOTAwNzhiYmM5ODM4OWQ4OWQwNTVlM2Y2MmI2OTA1MDRh
NGYxZTExYS4uMjVmZGY1NTEzMzhkNGQxODcwMDNiMjdkMTkxMDA0YWM2MTllYjA5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtODQsNzQgKzg0LDc5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwog
Ci10eXBlZGVmIE93blB0cjxJbnB1dFR5cGU+ICgqSW5wdXRUeXBlRmFjdG9yeUZ1bmN0aW9uKShI
VE1MSW5wdXRFbGVtZW50Jik7Cit0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+ICgq
SW5wdXRUeXBlRmFjdG9yeUZ1bmN0aW9uKShIVE1MSW5wdXRFbGVtZW50Jik7CiB0eXBlZGVmIEhh
c2hNYXA8QXRvbWljU3RyaW5nLCBJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24sIENhc2VGb2xkaW5n
SGFzaD4gSW5wdXRUeXBlRmFjdG9yeU1hcDsKIAotc3RhdGljIE93blB0cjxJbnB1dFR5cGVGYWN0
b3J5TWFwPiBjcmVhdGVJbnB1dFR5cGVGYWN0b3J5TWFwKCkKK3RlbXBsYXRlPGNsYXNzIFQ+Citz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlSW5wdXRUeXBlKEhUTUxJbnB1
dEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgT3duUHRyPElucHV0VHlwZUZhY3RvcnlNYXA+IG1h
cCA9IGFkb3B0UHRyKG5ldyBJbnB1dFR5cGVGYWN0b3J5TWFwKTsKKyAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxUPihlbGVtZW50KTsKK30KIAorc3RhdGljIHZvaWQgcG9wdWxhdGVJbnB1dFR5
cGVGYWN0b3J5TWFwKElucHV0VHlwZUZhY3RvcnlNYXAmIG1hcCkKK3sKICAgICAvLyBGSVhNRTog
UmVtb3ZlIHVubmVjZXNzYXJ5ICcmJ3MgZnJvbSB0aGUgZm9sbG93aW5nIG1hcC5hZGQgb3BlcmF0
aW9ucwogICAgIC8vIG9uY2Ugd2Ugc3dpdGNoIHRvIGEgbm9uLWJyb2tlbiBWaXN1YWwgU3R1ZGlv
IGNvbXBpbGVyLiAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTIz
NQotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpidXR0b24oKSwgJkJ1dHRvbklucHV0VHlw
ZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6Y2hlY2tib3goKSwgJkNo
ZWNrYm94SW5wdXRUeXBlOjpjcmVhdGUpOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OmJ1
dHRvbigpLCAmY3JlYXRlSW5wdXRUeXBlPEJ1dHRvbklucHV0VHlwZT4pOworICAgIG1hcC5hZGQo
SW5wdXRUeXBlTmFtZXM6OmNoZWNrYm94KCksICZjcmVhdGVJbnB1dFR5cGU8Q2hlY2tib3hJbnB1
dFR5cGU+KTsKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBtYXAtPmFkZChJbnB1
dFR5cGVOYW1lczo6Y29sb3IoKSwgJkNvbG9ySW5wdXRUeXBlOjpjcmVhdGUpOworICAgIG1hcC5h
ZGQoSW5wdXRUeXBlTmFtZXM6OmNvbG9yKCksICZjcmVhdGVJbnB1dFR5cGU8Q29sb3JJbnB1dFR5
cGU+KTsKICNlbmRpZgogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEUpCiAgICAgaWYgKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5wdXRUeXBlRGF0ZUVuYWJsZWQo
KSkKLSAgICAgICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmRhdGUoKSwgJkRhdGVJbnB1dFR5
cGU6OmNyZWF0ZSk7CisgICAgICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OmRhdGUoKSwgJmNy
ZWF0ZUlucHV0VHlwZTxEYXRlSW5wdXRUeXBlPik7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZURhdGVUaW1lRW5hYmxlZCgpKQotICAgICAgICBt
YXAtPmFkZChJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUoKSwgJkRhdGVUaW1lSW5wdXRUeXBlOjpj
cmVhdGUpOworICAgICAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpkYXRldGltZSgpLCAmY3Jl
YXRlSW5wdXRUeXBlPERhdGVUaW1lSW5wdXRUeXBlPik7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9EQVRFVElNRUxPQ0FMKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZURhdGVUaW1lTG9jYWxFbmFibGVkKCkpCi0gICAgICAg
IG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpkYXRldGltZWxvY2FsKCksICZEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlOjpjcmVhdGUpOworICAgICAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpkYXRl
dGltZWxvY2FsKCksICZjcmVhdGVJbnB1dFR5cGU8RGF0ZVRpbWVMb2NhbElucHV0VHlwZT4pOwog
I2VuZGlmCi0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmVtYWlsKCksICZFbWFpbElucHV0
VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6ZmlsZSgpLCAmRmls
ZUlucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6aGlkZGVu
KCksICZIaWRkZW5JbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFt
ZXM6OmltYWdlKCksICZJbWFnZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElucHV0
VHlwZU5hbWVzOjplbWFpbCgpLCAmY3JlYXRlSW5wdXRUeXBlPEVtYWlsSW5wdXRUeXBlPik7Cisg
ICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6ZmlsZSgpLCAmY3JlYXRlSW5wdXRUeXBlPEZpbGVJ
bnB1dFR5cGU+KTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpoaWRkZW4oKSwgJmNyZWF0
ZUlucHV0VHlwZTxIaWRkZW5JbnB1dFR5cGU+KTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVz
OjppbWFnZSgpLCAmY3JlYXRlSW5wdXRUeXBlPEltYWdlSW5wdXRUeXBlPik7CiAjaWYgRU5BQkxF
KElOUFVUX1RZUEVfTU9OVEgpCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuaW5wdXRUeXBlTW9udGhFbmFibGVkKCkpCi0gICAgICAgIG1hcC0+YWRkKElu
cHV0VHlwZU5hbWVzOjptb250aCgpLCAmTW9udGhJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgICAg
IG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6Om1vbnRoKCksICZjcmVhdGVJbnB1dFR5cGU8TW9udGhJ
bnB1dFR5cGU+KTsKICNlbmRpZgotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpudW1iZXIo
KSwgJk51bWJlcklucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1l
czo6cGFzc3dvcmQoKSwgJlBhc3N3b3JkSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRk
KElucHV0VHlwZU5hbWVzOjpyYWRpbygpLCAmUmFkaW9JbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAg
bWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OnJhbmdlKCksICZSYW5nZUlucHV0VHlwZTo6Y3JlYXRl
KTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6cmVzZXQoKSwgJlJlc2V0SW5wdXRUeXBl
OjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpzZWFyY2goKSwgJlNlYXJj
aElucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6c3VibWl0
KCksICZTdWJtaXRJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFt
ZXM6OnRlbGVwaG9uZSgpLCAmVGVsZXBob25lSW5wdXRUeXBlOjpjcmVhdGUpOworICAgIG1hcC5h
ZGQoSW5wdXRUeXBlTmFtZXM6Om51bWJlcigpLCAmY3JlYXRlSW5wdXRUeXBlPE51bWJlcklucHV0
VHlwZT4pOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OnBhc3N3b3JkKCksICZjcmVhdGVJ
bnB1dFR5cGU8UGFzc3dvcmRJbnB1dFR5cGU+KTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVz
OjpyYWRpbygpLCAmY3JlYXRlSW5wdXRUeXBlPFJhZGlvSW5wdXRUeXBlPik7CisgICAgbWFwLmFk
ZChJbnB1dFR5cGVOYW1lczo6cmFuZ2UoKSwgJmNyZWF0ZUlucHV0VHlwZTxSYW5nZUlucHV0VHlw
ZT4pOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OnJlc2V0KCksICZjcmVhdGVJbnB1dFR5
cGU8UmVzZXRJbnB1dFR5cGU+KTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpzZWFyY2go
KSwgJmNyZWF0ZUlucHV0VHlwZTxTZWFyY2hJbnB1dFR5cGU+KTsKKyAgICBtYXAuYWRkKElucHV0
VHlwZU5hbWVzOjpzdWJtaXQoKSwgJmNyZWF0ZUlucHV0VHlwZTxTdWJtaXRJbnB1dFR5cGU+KTsK
KyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjp0ZWxlcGhvbmUoKSwgJmNyZWF0ZUlucHV0VHlw
ZTxUZWxlcGhvbmVJbnB1dFR5cGU+KTsKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKQogICAg
IGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZVRp
bWVFbmFibGVkKCkpCi0gICAgICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjp0aW1lKCksICZU
aW1lSW5wdXRUeXBlOjpjcmVhdGUpOworICAgICAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjp0
aW1lKCksICZjcmVhdGVJbnB1dFR5cGU8VGltZUlucHV0VHlwZT4pOwogI2VuZGlmCi0gICAgbWFw
LT5hZGQoSW5wdXRUeXBlTmFtZXM6OnVybCgpLCAmVVJMSW5wdXRUeXBlOjpjcmVhdGUpOworICAg
IG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OnVybCgpLCAmY3JlYXRlSW5wdXRUeXBlPFVSTElucHV0
VHlwZT4pOwogI2lmIEVOQUJMRShJTlBVVF9UWVBFX1dFRUspCiAgICAgaWYgKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5wdXRUeXBlV2Vla0VuYWJsZWQoKSkKLSAg
ICAgICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OndlZWsoKSwgJldlZWtJbnB1dFR5cGU6OmNy
ZWF0ZSk7CisgICAgICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OndlZWsoKSwgJmNyZWF0ZUlu
cHV0VHlwZTxXZWVrSW5wdXRUeXBlPik7CiAjZW5kaWYKICAgICAvLyBObyBuZWVkIHRvIHJlZ2lz
dGVyICJ0ZXh0IiBiZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0IHR5cGUuCi0KLSAgICByZXR1cm4g
bWFwOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGVOYW1lKQorc3RkOjp1bmlx
dWVfcHRyPElucHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlTmFtZSkKIHsKLSAgICBzdGF0aWMgY29uc3Qg
SW5wdXRUeXBlRmFjdG9yeU1hcCogZmFjdG9yeU1hcCA9IGNyZWF0ZUlucHV0VHlwZUZhY3RvcnlN
YXAoKS5sZWFrUHRyKCk7Ci0gICAgT3duUHRyPElucHV0VHlwZT4gKCpmYWN0b3J5KShIVE1MSW5w
dXRFbGVtZW50JikgPSB0eXBlTmFtZS5pc0VtcHR5KCkgPyAwIDogZmFjdG9yeU1hcC0+Z2V0KHR5
cGVOYW1lKTsKLSAgICBpZiAoIWZhY3RvcnkpCi0gICAgICAgIGZhY3RvcnkgPSBUZXh0SW5wdXRU
eXBlOjpjcmVhdGU7Ci0gICAgcmV0dXJuIGZhY3RvcnkoZWxlbWVudCk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPElucHV0VHlwZUZhY3RvcnlNYXA+IGZhY3RvcnlNYXA7CisgICAgaWYgKGZh
Y3RvcnlNYXAuZ2V0KCkuaXNFbXB0eSgpKQorICAgICAgICBwb3B1bGF0ZUlucHV0VHlwZUZhY3Rv
cnlNYXAoZmFjdG9yeU1hcCk7CisKKyAgICBJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24gZmFjdG9y
eSA9IHR5cGVOYW1lLmlzRW1wdHkoKSA/IG51bGxwdHIgOiBmYWN0b3J5TWFwLmdldCgpLmdldCh0
eXBlTmFtZSk7CisgICAgaWYgKGZhY3RvcnkpCisgICAgICAgIHJldHVybiBmYWN0b3J5KGVsZW1l
bnQpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFRleHRJbnB1dFR5cGU+KGVsZW1lbnQp
OwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBJbnB1dFR5cGU6OmNyZWF0ZVRleHQoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IElucHV0VHlwZTo6
Y3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVybiBUZXh0
SW5wdXRUeXBlOjpjcmVhdGUoZWxlbWVudCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
VGV4dElucHV0VHlwZT4oZWxlbWVudCk7CiB9CiAKIElucHV0VHlwZTo6fklucHV0VHlwZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCA1MjQ3MGIxNDQwMGQ3MmIyNDc2OTQzNzlkNjRmMTk0
MmJkNDQzYWNlLi4xNjVjZmNkMzJmZjA5NDg5NzJjOGI2N2IyZjRlN2Q0ZjNiMGM3ZDYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTc0LDggKzc0LDggQEAgY2xhc3MgSW5wdXRUeXBlIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIAogcHVibGljOgotICAgIHN0YXRpYyBPd25Q
dHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpOwotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGVUZXh0KEhUTUxJbnB1dEVs
ZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlKEhU
TUxJbnB1dEVsZW1lbnQmLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAg
dmlydHVhbCB+SW5wdXRUeXBlKCk7CiAKICAgICBzdGF0aWMgYm9vbCB0aGVtZVN1cHBvcnRzRGF0
YUxpc3RVSShJbnB1dFR5cGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9u
dGhJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAK
aW5kZXggNDhlYWQxZmU4ZTI0MTRiNjU1MWY0N2IzM2Y1OWNiNzRjYmI1MTVkMS4uNjgwY2NlZTg0
NGI3ZjU3N2NhZTg2ODlmNjU0YTExMDJkYzAzZjMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250
aElucHV0VHlwZS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNDksMTEgKzQ4LDYgQEAgc3RhdGljIGNvbnN0IGludCBtb250aERlZmF1bHRTdGVwID0g
MTsKIHN0YXRpYyBjb25zdCBpbnQgbW9udGhEZWZhdWx0U3RlcEJhc2UgPSAwOwogc3RhdGljIGNv
bnN0IGludCBtb250aFN0ZXBTY2FsZUZhY3RvciA9IDE7CiAKLU93blB0cjxJbnB1dFR5cGU+IE1v
bnRoSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IE1vbnRoSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBN
b250aElucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShG
ZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZU1vbnRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1
dFR5cGUuaAppbmRleCA5YjU0ZTBiNjA0YTFkMjNmMzhlNjMwYWNlMzA2MTMyZDFiY2QzZWQ1Li4x
YzdmZjgwOTQzYjZkY2FkMzZiMjdlNTNkMDgzZDczZmRjOTY5YzNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9Nb250aElucHV0VHlwZS5oCkBAIC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIE1vbnRoSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBNb250aElucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VNb250aElucHV0VHlwZShlbGVtZW50KSB7IH0K
IAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNb250aElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KSA6IEJhc2VNb250aElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBv
bmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TnVtYmVySW5wdXRUeXBlLmNwcAppbmRleCA2ZjU1ZGZiOWMwMjQzOTZlZDgyOTAwMDMyNGVmMmM5
ZmY0YWJhYTM4Li45ODRjZmEyMWU5ZGI4NDlmMjZlNTU0MDVlYThhNjJjYTdlN2FhNmMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBAIC00NCw3ICs0NCw2IEBACiAj
aW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTk0LDExICs5Myw2IEBAIHN0YXRpYyBSZWFsTnVtYmVyUmVuZGVy
U2l6ZSBjYWxjdWxhdGVSZW5kZXJTaXplKGNvbnN0IERlY2ltYWwmIHZhbHVlKQogICAgIHJldHVy
biBSZWFsTnVtYmVyUmVuZGVyU2l6ZShzaXplT2ZTaWduICsgc2l6ZU9mWmVybyAsIG51bWJlck9m
WmVyb0FmdGVyRGVjaW1hbFBvaW50ICsgc2l6ZU9mRGlnaXRzKTsKIH0KIAotT3duUHRyPElucHV0
VHlwZT4gTnVtYmVySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkK
LXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE51bWJlcklucHV0VHlwZShlbGVtZW50KSk7Ci19
Ci0KIHZvaWQgTnVtYmVySW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIFRleHRGaWVsZElucHV0
VHlwZTo6YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCBm
OTlhNjZmNzdiNDlhNzEzNWRiYWFiOGI3MmU5MTllN2E3ZTRkZGY5Li45ZDVjZTg2MDBmYTY1MTFj
NjgwYjA3Zjc5YzBiM2VkNzU2NDg3Mzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L051bWJlcklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRU
eXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTnVt
YmVySW5wdXRUeXBlIDogcHVibGljIFRleHRGaWVsZElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAg
TnVtYmVySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogVGV4dEZpZWxkSW5w
dXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIE51bWJlcklucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IFRleHRGaWVsZElucHV0VHlwZShlbGVtZW50KSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZp
ZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJ
bnB1dFR5cGUuY3BwCmluZGV4IGZiNTdhM2E3ZjYyN2ZhNzUzZGRmYTA2OWUxYmM5YmNmODFlNTU0
MTQuLjdmN2UwZjlmY2NhMzQ0MmM0YzRkZmM2MzQ1NzM2NDEwOTgyM2U0NDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCkBAIC0zNiwxNSArMzYsOSBAQAogI2lu
Y2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgog
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBQYXNzd29yZElucHV0
VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBQYXNzd29yZElucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIGNvbnN0IEF0b21p
Y1N0cmluZyYgUGFzc3dvcmRJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpwYXNzd29yZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Q
YXNzd29yZElucHV0VHlwZS5oCmluZGV4IGVhZjE0OGVmZTZkYzcxY2YxMjk1MTYxNzBlNjlmYzRk
Mzk4MTZjMzAuLmJkMmRmYmI1MDEzYjRjMmQwY2Y4NTI0ODJlNTE4Y2NlN2U5M2I5OTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGFzc3dvcmRJbnB1dFR5cGUgOiBwdWJsaWMgQmFz
ZVRleHRJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBj
cmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIFBhc3N3b3JkSW5wdXRUeXBlKEhUTUxJbnB1
dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHBy
aXZhdGU6Ci0gICAgUGFzc3dvcmRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkg
OiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNv
bnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcAppbmRleCAw
YzIyNDE2YWY2NTllMDE1MjM1MGYyNjJiNjcyZjk0NjVmMmU5NmUyLi4yMzlhOWNlNjBhY2ZkYzcy
NjBmOWQ2MDg5ZmQ2MTM3NTQ1ZGFjZWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JhZGlvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRU
eXBlLmNwcApAQCAtMzMsMTcgKzMzLDExIEBACiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3BhdGlhbE5hdmlnYXRpb24uaCIKLSNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLU93blB0cjxJbnB1dFR5cGU+IFJhZGlvSW5wdXRUeXBl
OjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFJhZGlvSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5n
JiBSYWRpb0lucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4g
SW5wdXRUeXBlTmFtZXM6OnJhZGlvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JhZGlvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmgK
aW5kZXggMTQxYmM0ODc5YTg3ZGVmMGU2YWMzMmI2YzU5YzQ2MzQ2OWZlODEzNS4uMzE3Y2IyODhi
NGI0MjY2ZTM2ZDc0ZGMyM2FhN2ZhNjE3MjhkYmYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9SYWRpb0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9J
bnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBSYWRpb0lucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQm
KTsKKyAgICBleHBsaWNpdCBSYWRpb0lucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAg
ZXhwbGljaXQgUmFkaW9JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNl
Q2hlY2thYmxlSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgU3RyaW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggODBiM2I2NTE0OWQ5ZGQ1OGI1YTVlMjVjZDAy
OTUwZTk5ODQzYWZhMi4uZjM3MTFkM2ZjN2I0N2U5NTAyZDBlZTY3ZGRiOTJmOGRjYjEzMjA1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTQ5LDcgKzQ5LDYgQEAK
ICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiAjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKICNpbmNsdWRlICJUb3VjaC5oIgpAQCAtNzgsMTEgKzc3LDYgQEAgc3Rh
dGljIERlY2ltYWwgZW5zdXJlTWF4aW11bShjb25zdCBEZWNpbWFsJiBwcm9wb3NlZFZhbHVlLCBj
b25zdCBEZWNpbWFsJiBtaW5pbXUKICAgICByZXR1cm4gcHJvcG9zZWRWYWx1ZSA+PSBtaW5pbXVt
ID8gcHJvcG9zZWRWYWx1ZSA6IHN0ZDo6bWF4KG1pbmltdW0sIGZhbGxiYWNrVmFsdWUpOwogfQog
Ci1Pd25QdHI8SW5wdXRUeXBlPiBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBSYW5nZUlucHV0VHlwZShl
bGVtZW50KSk7Ci19Ci0KIFJhbmdlSW5wdXRUeXBlOjpSYW5nZUlucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KQogICAgIDogSW5wdXRUeXBlKGVsZW1lbnQpCiAjaWYgRU5BQkxFKERB
VEFMSVNUX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKaW5kZXggNDg2
M2UwZjE3NzYzOGUxYTcxZjkzMjY0OGRhYmEwOTZmMjlmNGUwNy4uM2M3MjI1MmMyOGQ1ZGE4M2I1
ZjBkODE4YWViNjE4Y2YwODkwYWE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9S
YW5nZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
aApAQCAtMzksMTAgKzM5LDkgQEAgY2xhc3MgU2xpZGVyVGh1bWJFbGVtZW50OwogCiBjbGFzcyBS
YW5nZUlucHV0VHlwZSBGSU5BTCA6IHB1YmxpYyBJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0
YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4
cGxpY2l0IFJhbmdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAg
ICBleHBsaWNpdCBSYW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVh
bCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1JhbmdlQ29udHJv
bCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3Jt
Q29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmVzZXRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0
VHlwZS5jcHAKaW5kZXggMTA1NmYxY2I2MTBmMTU3ZDNlZjI5NGMxMGUyODQxMTNlNTdiMDBmNS4u
YzMyODhkZDY3MWUyNGM1YTZlYWU0NTgwMzc2YWI5ODQ1MGY1OGM2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9SZXNldElucHV0VHlwZS5jcHAKQEAgLTM3LDE1ICszNyw5IEBACiAjaW5jbHVkZSAiSFRN
TElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAi
TG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElucHV0VHlwZT4gUmVzZXRJbnB1dFR5cGU6OmNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcg
UmVzZXRJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIFJlc2V0
SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5
cGVOYW1lczo6cmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaAppbmRleCA0
NWE4OWFiMzNiMjkxNjMyMzc3Yzk5NTQ1ZTljNjk1ZTkwMTYxYzA1Li5mNzQ5ZjY4ZDAxNThkNmQ2
NGVhMWY0ZmM3MjM2Yzg5ZDBjMjBkMGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1Jlc2V0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlw
ZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc2V0
SW5wdXRUeXBlIDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0
YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4
cGxpY2l0IFJlc2V0SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1
dHRvbklucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZXNl
dElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5
cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250
cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZhbGlk
YXRpb24oKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRE9NQWN0aXZh
dGVFdmVudChFdmVudCopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9TZWFyY2hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5
cGUuY3BwCmluZGV4IGZjOGRkNzZlMWQxZTZhMGIwMWJlZWE2OGU0ZWJmYzRkNzI4NjkwZWUuLjdi
MDYwYTNmN2MxYzgwZTdjNDhkZGVmZDAyNGM3YTMzM2I0YjBjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1NlYXJjaElucHV0VHlwZS5jcHAKQEAgLTM4LDEzICszOCwxMiBAQAogI2luY2x1ZGUgIlJl
bmRlclNlYXJjaEZpZWxkLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRl
eHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5s
aW5lIFNlYXJjaElucHV0VHlwZTo6U2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpCitTZWFyY2hJbnB1dFR5cGU6OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KQogICAgIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkKICAgICAsIG1fcmVz
dWx0c0J1dHRvbigwKQogICAgICwgbV9jYW5jZWxCdXR0b24oMCkKQEAgLTUyLDExICs1MSw2IEBA
IGlubGluZSBTZWFyY2hJbnB1dFR5cGU6OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KQogewogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBTZWFyY2hJbnB1dFR5cGU6OmNy
ZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgU2VhcmNoSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBTZWFyY2hJbnB1dFR5cGU6
OmF0dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2goKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1NlYXJjaElucHV0VHlwZS5oCmluZGV4IDljMGE3NWFkMzZmNzI3ZjU5M2RhNjEzMzdm
YWY5ZTBmNTY2MzQ5ODUuLjhmOTVjYTkyYWQ5Y2E1ZjliNmUzYWZiMGYxYTY1OGRmMmM2NjFiOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaApAQCAtNDEsMTIgKzQxLDExIEBA
IGNsYXNzIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ7CiAKIGNsYXNzIFNlYXJjaElu
cHV0VHlwZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGlj
aXQgU2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogICAgIHZvaWQgc3RvcFNl
YXJjaEV2ZW50VGltZXIoKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTZWFyY2hJbnB1dFR5
cGUoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkU2VhcmNoUmVzdWx0KCkgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJTdHlsZSYpIGNvbnN0IE9W
RVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuY3BwCmluZGV4IGRlZDQx
ZGJmNWZiZjljMTAwMWU2ZjQ2ODk0NzVhYmEyMWVhMjRhZmMuLjFkMGI3MmVkOTVkYTUxZjIwNjkz
NzMwNGRjNzAxYzZhZjFmMDRhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3Vi
bWl0SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlw
ZS5jcHAKQEAgLTM4LDE1ICszOCw5IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgog
I2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5o
IgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
T3duUHRyPElucHV0VHlwZT4gU3VibWl0SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVu
dCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFN1Ym1pdElucHV0VHlwZShl
bGVtZW50KSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgU3VibWl0SW5wdXRUeXBlOjpmb3Jt
Q29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6c3VibWl0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuaAppbmRleCBkOWQ4N2ExNzU0MmE5
MzNkMGNjMGU0ODgzMGJjZjNmMmFmNzBhN2RlLi5mNGU2M2ZiZDM3MTg3NWM3NWEzNzliZTBkODIy
NzFjZGYwYmM1NWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0
VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKQEAgLTM3
LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU3VibWl0SW5wdXRUeXBl
IDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25Q
dHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFN1
Ym1pdElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1
dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU3VibWl0SW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVt
ZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBl
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1E
YXRhTGlzdCYsIGJvb2wpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c1JlcXVpcmVkKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9u
ZUlucHV0VHlwZS5jcHAKaW5kZXggMmQ4N2QyZjhkN2EwYjgxNzUxNGMzODI1NTg1ZTAzMjRhNjRm
OTVlMC4uNzdmZDBlMGE0YmMwZjcyMDI0YTY4ZjQ2ZGY0ZTlhM2FkYThmZGNlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcApAQCAtMzMsMTUgKzMzLDkgQEAK
IAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1l
cy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotT3duUHRyPElucHV0VHlwZT4gVGVsZXBob25lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRlbGVwaG9uZUlu
cHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgVGVsZXBob25lSW5wdXRUeXBlOjphdHRhY2go
KQogewogICAgIFRleHRGaWVsZElucHV0VHlwZTo6YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UZWxlcGhvbmVJbnB1dFR5cGUuaAppbmRleCBhYTRhYTUyN2E2OTNkYTUwYmIzNzY0YWIyYmI0
ZmY5NzAxMjE3ZTlkLi5mMmQ4Mzc5ZGU0OGMzYTRlMDk5ZThlNDAwMmFlZDI2OWZhN2Y2YWJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVGVsZXBob25lSW5wdXRUeXBlIDogcHVi
bGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0
VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBUZWxlcGhvbmVJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShl
bGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBUZWxlcGhvbmVJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0U3BlZWNoQXR0cmlidXRlKCkgT1ZFUlJJREU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmNwcAppbmRleCBjNWYzYThmYWQ1MTEzMmZmZWQxZTc1
NTk5Y2VjZjgzODhkMjIxOWQ1Li44N2ViOTM4NzExOTNhNzkyNzk1ZjRhZmFkNmU1MThmZTVhMTk4
MjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5jcHAKQEAgLTMzLDE3ICszMywx
MSBAQAogCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlw
ZU5hbWVzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBU
ZXh0SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IFRleHRJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lkIFRl
eHRJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2go
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmgKaW5kZXggYmEyNGNhOTIyNjJkYTZiYzBl
ZmIzZWFlOThkY2Q2YWQ3ZDgyMmZkNC4uNDFiMmE2MjliMWViNzlmMDgyZTRlNzVhYTRjZDZkOTEx
Nzc4ZjdmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVGV4dElucHV0VHlwZSA6IHB1YmxpYyBC
YXNlVGV4dElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+
IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgVGV4dElucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsg
fQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFRleHRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVu
dCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRSZXNwZWN0U3BlZWNoQXR0cmlidXRlKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1l
SW5wdXRUeXBlLmNwcAppbmRleCBlNzczOTM0OTk4MzNhMzkwNWViNzY2YjVjM2FiMGVmNTM3MzA3
M2E5Li5kNzUxZjUxZjgxYzAwMzkzODlhZTQ2Zjk2MzM2MDQ2ZjJiNWJhOTNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3
dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNTQsMTEgKzUzLDYgQEAgVGltZUlucHV0VHlwZTo6VGltZUlucHV0
VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewogfQogCi1Pd25QdHI8SW5wdXRUeXBl
PiBUaW1lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFRpbWVJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lk
IFRpbWVJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUo
RmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVUaW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRU
eXBlLmgKaW5kZXggMTk1OGQ3Nzk4ZGVlMjlmNzg3ZDJmZmRhMjZkMDY0ODVkZTZjZjhmNi4uMDkx
ZjIyMjU1YmIzZTFjZjI4ZTM5MTBjMWFhN2M0Y2YxMTY2ODY5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9U
aW1lSW5wdXRUeXBlLmgKQEAgLTM4LDEwICszOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgVGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShI
VE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgVGltZUlucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgVGltZUlucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZF
UlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAKaW5kZXggMWI1NWRjOGU1NjZl
MzQyOWIzNDIwMWM5YmI2OWIxNmI4NGU3NzEyNC4uY2JhMjllYzUwNWE0N2FjMmI1MDRiYmU2ZjJm
ZTE4YTQ5OWFmZjI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcApAQCAtMzUs
MTUgKzM1LDkgQEAKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIkxvY2Fs
aXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJVUkwuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU93blB0cjxJbnB1dFR5cGU+IFVSTElucHV0
VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBVUkxJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lkIFVSTElucHV0VHlw
ZTo6YXR0YWNoKCkKIHsKICAgICBUZXh0RmllbGRJbnB1dFR5cGU6OmF0dGFjaCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVVJMSW5wdXRUeXBlLmgKaW5kZXggYjdhYjY3NGE0NDk0ODRkZDE2ZmQ0ODMyOWNjYTA1
OTEwYWE3YzQ1ZC4uMTQ5NmYwNzBjM2ZjZWU4YmRjNzZmYTE0NmU3MTI3MDI1YTAwMWUzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFVSTElucHV0VHlwZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlw
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgVVJMSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0g
ICAgZXhwbGljaXQgVVJMSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFz
ZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUo
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0
IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9XZWVrSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5j
cHAKaW5kZXggNTE5ZGY1YTQ0NTEzODI5NmYyNjliYTZmMTI1ZGI1ZmJiZjgwNjQ5NC4uMzVkMmZj
ZjJmZTZiNjMyZGQ1ZDY1MGNhNTMzZTRlNGFjZDdjNGE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dl
ZWtJbnB1dFR5cGUuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVz
LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC00NiwxMSArNDUsNiBAQCBzdGF0aWMgY29uc3QgaW50IHdlZWtEZWZhdWx0U3RlcEJhc2Ug
PSAtMjU5MjAwMDAwOyAvLyBUaGUgZmlyc3QgZGF5IG9mIDE5NzAtVzAxLgogc3RhdGljIGNvbnN0
IGludCB3ZWVrRGVmYXVsdFN0ZXAgPSAxOwogc3RhdGljIGNvbnN0IGludCB3ZWVrU3RlcFNjYWxl
RmFjdG9yID0gNjA0ODAwMDAwOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBXZWVrSW5wdXRUeXBlOjpj
cmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IFdlZWtJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lkIFdlZWtJbnB1dFR5cGU6OmF0
dGFjaCgpCiB7CiAgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJ
bnB1dFR5cGVXZWVrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKaW5kZXggY2FlNzll
OTFiYjlhMDdiYTY0ZDQwM2E0NGU2NmY5ZTgxNTllMmIyNC4uMzMzZmI1NzA0MDA1YmU2NjZjZjEw
NzZmNzQzZDM5NDhjMjc3MWM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVr
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKQEAg
LTM4LDEwICszOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2Vla0lucHV0VHlw
ZSA6IHB1YmxpYyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7
CisgICAgZXhwbGljaXQgV2Vla0lucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6
IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2
YXRlOgotICAgIGV4cGxpY2l0IFdlZWtJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVu
dCkgOiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50KSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9t
aWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
RGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214965</attachid>
            <date>2013-10-23 08:26:09 -0700</date>
            <delta_ts>2013-10-26 12:17:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123160-20131023082607.patch</filename>
            <type>text/plain</type>
            <size>49527</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFhODZhZWJlNjkzMjIw
YjQyZTUxZDllOGU1YWQ4ZDA1YjFjMTczNC4uYmIzZjE3ZTI1YjJiNmU3OWExNzQyMWMwYmI1YTIx
ODljZWM3YjZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEzLTEwLTIzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBIVE1MIGlucHV0IHR5
cGUgb2JqZWN0cyBzaG91bGQgYmUgbWFuYWdlZCB0aHJvdWdoIHN0ZDo6dW5pcXVlX3B0cgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTYwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgY29u
c3RydWN0b3JzIG9mIHRoZSBJbnB1dFR5cGUgc3ViY2xhc3NlcyBwdWJsaWMuIFRoaXMgbWFrZXMg
aXQgcG9zc2libGUgdG8gdXNlIHN0ZDo6bWFrZV91bmlxdWUgb24gdGhlc2UgY2xhc3NlcworICAg
ICAgICBhbmQgbWFrZXMgdGhlIFQ6OmNyZWF0ZSgpIGhlbHBlcnMgcmVkdW5kYW50LiBOZXcgaW5z
dGFuY2VzIG9mIHRoZXNlIGNsYXNzZXMgYXJlIG5vdyBtYW5hZ2VkIHRocm91Z2ggc3RkOjp1bmlx
dWVfcHRyLgorICAgICAgICBJbnB1dFR5cGU6OmNyZWF0ZSgpIG5vdyB1c2VzIGEgTmV2ZXJEZXN0
cm95ZWQgSW5wdXRUeXBlRmFjdG9yeU1hcCB0aGF0IG1hcHMgdHlwZSBuYW1lcyB0byBJbnB1dFR5
cGVGYWN0b3J5RnVuY3Rpb25zIGFuZAorICAgICAgICBnZXRzIHBvcHVsYXRlZCB3aGVuIHRoZSBt
ZXRob2QgaXMgZmlyc3QgY2FsbGVkIGFuZCB0aGUgbWFwIGlzIHN0aWxsIGVtcHR5LiBUaGUgZmFj
dG9yeSBpcyB1c2VkIHRvIGNyZWF0ZSB0aGUgbmV3IElucHV0VHlwZQorICAgICAgICBvYmplY3Qg
aWYgdGhlIHJlcXVlc3RlZCB0eXBlIHdhcyBmb3VuZCBpbiB0aGUgbWFwLCBhbmQgVGV4dElucHV0
VHlwZSBpcyB1c2VkIG90aGVyd2lzZS4KKworICAgICAgICAqIGh0bWwvQnV0dG9uSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKiBodG1sL0J1dHRvbklucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6QnV0dG9uSW5wdXRUeXBlOjpCdXR0b25JbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvQ2hl
Y2tib3hJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNoZWNrYm94SW5wdXRUeXBlOjpDaGVja2JveElucHV0VHlwZSk6
CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9Db2xv
cklucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OkNvbG9ySW5w
dXRUeXBlKToKKyAgICAgICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0
bWwvRGF0ZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUlucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9E
YXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OkRh
dGVUaW1lTG9jYWxJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVt
YWlsSW5wdXRUeXBlOjpFbWFpbElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6dXBkYXRlVHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5w
dXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpIaWRkZW5JbnB1dFR5cGU6OkhpZGRlbklucHV0
VHlwZSk6CisgICAgICAgICogaHRtbC9JbWFnZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUlucHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvSW1h
Z2VJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVJbnB1dFR5cGUpOiBBIHRlbXBsYXRlZCBoZWxwZXIgdGhhdCBjb25zdHJ1
Y3RzIGEgbmV3IElucHV0VHlwZSBzdWJjbGFzcyBvYmplY3QgdGhyb3VnaCBzdGQ6Om1ha2VfdW5p
cXVlLgorICAgICAgICAoV2ViQ29yZTo6cG9wdWxhdGVJbnB1dFR5cGVGYWN0b3J5TWFwKTogUG9w
dWxhdGVzIHRoZSBwYXNzZWQtaW4gbWFwIHdpdGggdHlwZS1jcmVhdGVJbnB1dFR5cGU8VD4gcGFp
cnMuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0ZSk6IEdldCB0aGUgSW5wdXRU
eXBlRmFjdG9yeUZ1bmN0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHR5cGUsIG9yIGZhbGwgYmFjayB0
byBUZXh0SW5wdXRUeXBlLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpjcmVhdGVUZXh0
KToKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1
dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpNb250aElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9O
dW1iZXJJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6Ok51bWJlcklucHV0VHlwZSk6CisgICAg
ICAgICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9QYXNzd29y
ZElucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFzc3dvcmRJbnB1dFR5cGU6OlBhc3N3
b3JkSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1JhZGlvSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKiBodG1sL1JhZGlvSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lucHV0
VHlwZTo6UmFkaW9JbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1Jlc2V0
SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1Jlc2V0SW5wdXRUeXBlLmg6CisgICAgICAg
IChXZWJDb3JlOjpSZXNldElucHV0VHlwZTo6UmVzZXRJbnB1dFR5cGUpOgorICAgICAgICAqIGh0
bWwvU2VhcmNoSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaElucHV0VHlw
ZTo6U2VhcmNoSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1NlYXJjaElucHV0VHlwZS5oOgor
ICAgICAgICAqIGh0bWwvU3VibWl0SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1N1Ym1p
dElucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6U3VibWl0SW5wdXRUeXBlOjpTdWJtaXRJ
bnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKiBodG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGVsZXBo
b25lSW5wdXRUeXBlOjpUZWxlcGhvbmVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvVGV4dElu
cHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9UZXh0SW5wdXRUeXBlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0SW5wdXRUeXBlOjpUZXh0SW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1Rp
bWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5oOgorICAgICAg
ICAqIGh0bWwvVVJMSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1VSTElucHV0VHlwZS5o
OgorICAgICAgICAoV2ViQ29yZTo6VVJMSW5wdXRUeXBlOjpVUkxJbnB1dFR5cGUpOgorICAgICAg
ICAqIGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9XZWVrSW5wdXRUeXBl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBlOjpXZWVrSW5wdXRUeXBlKToKKwog
MjAxMy0xMC0yMiAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KIAogICAgICAgICBb
Q1NTIFJlZ2lvbnNdIFBvc3NpYmxlIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gYWZ0ZXIgcjE1NzU2
NwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwCmluZGV4IDljZTI4MGM4NTI0
YjlhYmNhZDljNWQzM2IzY2EyNzI5ZmExM2ZkNWIuLmNiNDUyZTY0M2Y1MWU1YjM2Njk3Y2ZlMTEx
MmMyMWNiMDNmYjY2M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5jcHAK
QEAgLTMyLDE1ICszMiw5IEBACiAjaW5jbHVkZSAiQnV0dG9uSW5wdXRUeXBlLmgiCiAKICNpbmNs
dWRlICJJbnB1dFR5cGVOYW1lcy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElucHV0VHlwZT4gQnV0dG9uSW5wdXRUeXBlOjpj
cmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IEJ1dHRvbklucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYg
QnV0dG9uSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJ
bnB1dFR5cGVOYW1lczo6YnV0dG9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0J1dHRvbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUu
aAppbmRleCBiNGU5NDgwNTk2ZmQzMDkzNThmOTJmOTNkODc5ZmFiMTEzNTczNWFhLi5iNWUzYjhl
ZjZhMzVkNDYxZGEzMDI5Zjc1MjhlMzFkNmM2ZGRhZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0
dG9uSW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQnV0dG9uSW5wdXRUeXBlIDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgewogcHVi
bGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVu
dCYpOworICAgIEJ1dHRvbklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJh
c2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgQnV0dG9uSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShl
bGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xU
eXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmFsaWRhdGlv
bigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1RleHRCdXR0b24oKSBjb25z
dCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAKaW5k
ZXggMGVjNGQxZmIyMzQ5NGExNDg2MGVlMjUzMzA1ODk4OThmYzkzZmNlMy4uNjljZjA1YmNhZGQx
YmVjNjIwZTY0MzllNWU3YzMwNzQ4Y2E5ZjlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVj
a2JveElucHV0VHlwZS5jcHAKQEAgLTM2LDE1ICszNiw5IEBACiAjaW5jbHVkZSAiSW5wdXRUeXBl
TmFtZXMuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVk
U3RyaW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotT3duUHRyPElucHV0VHlwZT4gQ2hlY2tib3hJbnB1dFR5cGU6OmNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2hlY2ti
b3hJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIENoZWNrYm94
SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5
cGVOYW1lczo6Y2hlY2tib3goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hl
Y2tib3hJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUu
aAppbmRleCA0NWIzZjgzMjUxYzQ5YmJlYjViNjAzN2U1MTE1NjY3M2E4NTJlZDk0Li44Y2QwOTMw
Mzg4NDk5YmFjNGFlMTE2MWI3ZTQ5NDc2MzI4OTU3MDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9D
aGVja2JveElucHV0VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENoZWNrYm94SW5wdXRUeXBlIDogcHVibGljIEJhc2VDaGVja2FibGVJbnB1dFR5
cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElu
cHV0RWxlbWVudCYpOworICAgIENoZWNrYm94SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpIDogQmFzZUNoZWNrYWJsZUlucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToK
LSAgICBDaGVja2JveElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VD
aGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCBjMzI1ZmM4NWVmMTExMDJmYzYzMmVhZDNmOGFl
N2VmYjFjOWVhNmJhLi5kZTliYWVmZmMxODNiNzk0NmZjNmRkMGQzZjllMDY0NmNmNjk0YTc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtNDUsNyArNDUsNiBAQAog
I2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY2
LDExICs2NSw2IEBAIHN0YXRpYyBib29sIGlzVmFsaWRDb2xvclN0cmluZyhjb25zdCBTdHJpbmcm
IHZhbHVlKQogICAgIHJldHVybiBjb2xvci5pc1ZhbGlkKCkgJiYgIWNvbG9yLmhhc0FscGhhKCk7
CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IENvbG9ySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbG9ySW5wdXRU
eXBlKGVsZW1lbnQpKTsKLX0KLQogQ29sb3JJbnB1dFR5cGU6On5Db2xvcklucHV0VHlwZSgpCiB7
CiAgICAgZW5kQ29sb3JDaG9vc2VyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NvbG9ySW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgK
aW5kZXggMDBhM2Y1YjI1MTU5N2RlZDM2OTQyYzY5NmYyOTQ4ODY5MzhkNGVlNy4uNzAwODVmZjMw
Nzg2NjM3YTM0YWNjY2Q2MjY1YWU3NjdlYmE1MWQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IENvbG9ySW5wdXRUeXBlIDogcHVibGljIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLCBw
dWJsaWMgQ29sb3JDaG9vc2VyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElu
cHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBDb2xvcklu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDbGlja2FibGVXaXRoS2V5
SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgfkNvbG9ySW5wdXRUeXBlKCk7CiAK
ICAgICAvLyBDb2xvckNob29zZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCkBAIC01MSw3ICs1MSw2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFZlY3RvcjxDb2xvcj4gc3VnZ2VzdGlvbnMoKSBjb25z
dCBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBDb2xvcklucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVs
ZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgaXNDb2xvckNvbnRyb2woKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAppbmRleCAxMmZhMDQwOTM5NjE4MTVkOWFiZTk1
OTZlZDk1MTJmMmU0MjA5M2QxLi42OTU3NTMxODIwMzE0YzgwNWIzMDcyNjhiYjUwOGEzNTg5MTNh
NjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKQEAgLTM2LDcgKzM2LDYg
QEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUxLDExICs1MCw2IEBAIGlubGluZSBEYXRl
SW5wdXRUeXBlOjpEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7CiB9
CiAKLU93blB0cjxJbnB1dFR5cGU+IERhdGVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0ZUlucHV0VHlwZShl
bGVtZW50KSk7Ci19Ci0KIHZvaWQgRGF0ZUlucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNl
cnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZURhdGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAppbmRleCA0YTBjMjNkMTllMTFmZTNkZWZlZDgwZDhl
MDdkN2JjZjBlMzE5ZjJjLi40NzAzMWUyMjE4ZmZiOWFlNDNkM2E4ZGQyMDYzYWI4MzJhYWJkNTA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaApAQCAtMzgsMTAgKzM4LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRlSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRy
PElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBEYXRl
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBE
YXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9s
VHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUg
ZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlu
cHV0VHlwZS5jcHAKaW5kZXggMTFmN2U5ZWFiODFkYTlmY2FiOTdiOWRkNTUyOWQ4Y2Y5NTg5OWVi
YS4uZTZlNGI3MDk3ZDY3MGQ3NzQ1ODQwOWU2Yjg2NWU5MmI4ZmYzMzFjMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUg
PHd0Zi9DdXJyZW50VGltZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsMTEgKzQ2LDYgQEAgc3RhdGljIGNvbnN0IGludCBkYXRl
VGltZURlZmF1bHRTdGVwID0gNjA7CiBzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lRGVmYXVsdFN0
ZXBCYXNlID0gMDsKIHN0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVTdGVwU2NhbGVGYWN0b3IgPSAx
MDAwOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBEYXRlVGltZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRlVGlt
ZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgRGF0ZVRpbWVJbnB1dFR5cGU6OmF0dGFj
aCgpCiB7CiAgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1
dFR5cGVEYXRlVGltZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1l
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmgKaW5k
ZXggMjBmNGRkZjkxZDBiN2JlZjVhOTExMDcwMGRkMmE2MmNhNzA0YzkyMi4uMWIyOGFhNzdkY2Zk
YzgxODMwMTg1MmRhNjQ2OGYzNTYyYTc5NGE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVJbnB1dFR5cGUuaApAQCAtMzksMTAgKzM5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBEYXRlVGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgRGF0ZVRpbWVJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0ZVRpbWVJbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRGF0ZVRpbWVJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0ZVRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRleCA1NWQ0ZDA5
MzA2MzI5ZDg3ZDUyN2Q3MjYxODBhNjJiMzg3NWU5Mjc5Li45N2QwODNkZmQyNzk0M2NiY2FlYWE3
ZmMyMzM5MDE1OWVlODBiZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVM
b2NhbElucHV0VHlwZS5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFt
ZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQ2LDExICs0NSw2IEBAIHN0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVMb2NhbERlZmF1
bHRTdGVwID0gNjA7CiBzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lTG9jYWxEZWZhdWx0U3RlcEJh
c2UgPSAwOwogc3RhdGljIGNvbnN0IGludCBkYXRlVGltZUxvY2FsU3RlcFNjYWxlRmFjdG9yID0g
MTAwMDsKIAotT3duUHRyPElucHV0VHlwZT4gRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Y3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBE
YXRlVGltZUxvY2FsSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1
cmVPYnNlcnZlcjo6SW5wdXRUeXBlRGF0ZVRpbWVMb2NhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCmluZGV4IDY5ZjJiYmE2MzkyN2E4OTM0MTVhZDZj
MGRjMzE0MmQzNDY0ZTMxZGQuLmJjM2U5ZDJkNTI4MDMzNjk0ODkxNTBhZmViZWYyN2JiOWU5ZWNi
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCkBA
IC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVUaW1lTG9j
YWxJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUg
ewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYpOworICAgIGV4cGxpY2l0IERhdGVUaW1lTG9jYWxJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0ZVRpbWVMb2NhbElucHV0VHlwZShlbGVtZW50KSB7
IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZURhdGVUaW1lTG9jYWxJbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCmluZGV4IDI3ZGU4ZDQ1ZjZkOGYw
MGFiNjg1NmViNmQ1Y2EzNGZjNjAxZWVjZDguLmZhNjc5ZGMzMGJjZmU3NzRhYzQwNzc1N2UzZGMz
ZWMzODllYjMzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCkBAIC0y
OSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlICJMb2Nh
bGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIKLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTMsMTEgKzUyLDYgQEAgc3RhdGljIGJvb2wgaXNW
YWxpZEVtYWlsQWRkcmVzcyhjb25zdCBTdHJpbmcmIGFkZHJlc3MpCiAgICAgcmV0dXJuICFtYXRj
aE9mZnNldCAmJiBtYXRjaExlbmd0aCA9PSBhZGRyZXNzTGVuZ3RoOwogfQogCi1Pd25QdHI8SW5w
dXRUeXBlPiBFbWFpbElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
Ci17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFbWFpbElucHV0VHlwZShlbGVtZW50KSk7Ci19
Ci0KIHZvaWQgRW1haWxJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRU
eXBlOjphdHRhY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaAppbmRleCBlMGQy
MTMxODZkOTliOGUwNWM0MWViZWRiMDgyMjA3ZjBiYjRkYmY5Li5iN2FlZWM1NDUwMDg4NDlhNTY0
OGIxNzY0NDdjMGEwNDg5YjkxY2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Vt
YWlsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5o
CkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVtYWlsSW5w
dXRUeXBlIDogcHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
T3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNp
dCBFbWFpbElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5w
dXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEVtYWlsSW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJS
SURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggZDI5ZmExMjU2YmU3
N2UwZjVmNzMwY2ZmN2FkNDAwNGRkZmU1NThjMC4uMDZiYjlmYTNmZjdkM2MzMjdlYjdkZDhiYzcz
MmZjZWY0OTc5MGE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0z
OSw3ICszOSw2IEBACiAjaW5jbHVkZSAiUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaCIKICNpbmNs
dWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC04NSwxMSArODQsNiBAQCBj
b25zdCBBdG9taWNTdHJpbmcmIFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKICAgICByZXR1cm4gcHNldWRvSWQ7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IEZpbGVJ
bnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgRmlsZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIEZpbGVJbnB1dFR5
cGU6OkZpbGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKICAgICA6IEJhc2VD
bGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVsZW1lbnQpCiAgICAgLCBtX2ZpbGVMaXN0KEZpbGVM
aXN0OjpjcmVhdGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggNmE0YWM5
MzU0MGEyZjg2ZWY5MzJhMDg3NDIwN2E2ODVhZmU2ZGU4OS4uYzkxMTVkZDQ1NGRmMDBiOWU1MDgw
YzQ3MjU3YmUwOTIxZTJkZDYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAg
LTQ0LDE0ICs0NCwxMiBAQCBjbGFzcyBGaWxlTGlzdDsKIAogY2xhc3MgRmlsZUlucHV0VHlwZSA6
IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2hvb3Nl
ckNsaWVudCwgcHJpdmF0ZSBGaWxlSWNvbkxvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhw
bGljaXQgRmlsZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB+Rmls
ZUlucHV0VHlwZSgpOwogCiAgICAgc3RhdGljIFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBm
aWxlc0Zyb21Gb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKTsKIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBGaWxlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKLQog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3Rh
dGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9s
U3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggNzI1NmYyZTUzYzBlZjk0Mzg4MDhlNTBmYjNj
YjdhYTJmZTAxN2ZkNS4uMjgxN2U4NzczN2ZkN2QyNmY3OTU4YjAxOWFhZjQ1MTY1ZjUyZTBjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC00NTYsNyArNDU2
LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkK
IAogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVUeXBlKCkKIHsKLSAgICBPd25QdHI8SW5w
dXRUeXBlPiBuZXdUeXBlID0gSW5wdXRUeXBlOjpjcmVhdGUoKnRoaXMsIGZhc3RHZXRBdHRyaWJ1
dGUodHlwZUF0dHIpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBuZXdUeXBlID0g
SW5wdXRUeXBlOjpjcmVhdGUoKnRoaXMsIGZhc3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIpKTsKICAg
ICBib29sIGhhZFR5cGUgPSBtX2hhc1R5cGU7CiAgICAgbV9oYXNUeXBlID0gdHJ1ZTsKICAgICBp
ZiAobV9pbnB1dFR5cGUtPmZvcm1Db250cm9sVHlwZSgpID09IG5ld1R5cGUtPmZvcm1Db250cm9s
VHlwZSgpKQpAQCAtNDgxLDcgKzQ4MSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6dXBkYXRl
VHlwZSgpCiAgICAgaWYgKHdhc0F0dGFjaGVkKQogICAgICAgICBTdHlsZTo6ZGV0YWNoUmVuZGVy
VHJlZSgqdGhpcyk7CiAKLSAgICBtX2lucHV0VHlwZSA9IG5ld1R5cGUucmVsZWFzZSgpOworICAg
IG1faW5wdXRUeXBlID0gc3RkOjptb3ZlKG5ld1R5cGUpOwogICAgIG1faW5wdXRUeXBlLT5jcmVh
dGVTaGFkb3dTdWJ0cmVlKCk7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCAzNDUyNmJlMjAyOGE2MTBiN2ZhMDcxYzY0
MDliMzdjZDBlMThhZWY2Li5lZmYzZmE5MTJlNDRjOTZlMDA1ZjMwOWFiNTI2OGI2ZGQyN2E0N2Qx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtNDQyLDcgKzQ0Miw3
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBib29sIG1faGFzVG91
Y2hFdmVudEhhbmRsZXIgOiAxOwogI2VuZGlmCi0gICAgT3duUHRyPElucHV0VHlwZT4gbV9pbnB1
dFR5cGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gbV9pbnB1dFR5cGU7CiAgICAg
Ly8gVGhlIEltYWdlTG9hZGVyIG11c3QgYmUgb3duZWQgYnkgdGhpcyBlbGVtZW50IGJlY2F1c2Ug
dGhlIGxvYWRlciBjb2RlIGFzc3VtZXMKICAgICAvLyB0aGF0IGl0IGxpdmVzIGFzIGxvbmcgYXMg
aXRzIG93bmluZyBlbGVtZW50IGxpdmVzLiBJZiB3ZSBtb3ZlIHRoZSBsb2FkZXIgaW50bwogICAg
IC8vIHRoZSBJbWFnZUlucHV0IG9iamVjdCB3ZSBtYXkgZGVsZXRlIHRoZSBsb2FkZXIgd2hpbGUg
dGhpcyBlbGVtZW50IGxpdmVzIG9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
aWRkZW5JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUu
Y3BwCmluZGV4IDgzYTYzZmIxYzM4YTM5Yzg3MWRhYjM3NzljMTIwYmI1ZjEzODZjMjMuLjEwMzRk
OGJkZmM4ZDgyNTQ3MjUxYjdiN2ZiNTE5M2Y0ZmQwYWFkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hpZGRlbklucHV0VHlwZS5jcHAKQEAgLTM3LDE3ICszNywxMSBAQAogI2luY2x1ZGUgIkhUTUxJ
bnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5
cGVOYW1lcy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotT3duUHRyPElucHV0VHlwZT4g
SGlkZGVuSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IEhpZGRlbklucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIGNv
bnN0IEF0b21pY1N0cmluZyYgSGlkZGVuSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25z
dAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6aGlkZGVuKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IaWRkZW5JbnB1dFR5cGUuaAppbmRleCBlMzg3YTFhMzUwOTU0NDI3ZDYxZWIyMGZkYzRkZmQ2
NGE1MWQ1ODZmLi41MWRiYWZjZmE5YWE3NTA1YTJlMmMxN2M2NTBhYWMzMjIzNjU2ZWFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSGlkZGVuSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlw
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgSGlkZGVuSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIGV4
cGxpY2l0IEhpZGRlbklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IElucHV0
VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNv
bnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBGb3JtQ29udHJvbFN0YXRl
IHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBPVkVSUklE
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKaW5kZXggODkzNTZkN2VkMjAw
OTM5N2RhZTQ0NzllZjQzOGRmYmZhYmQ4MDc4My4uMDhiNzcxZmYzMTMxYzAxZTUwNTBkYzQ1MGQ1
NjhhMDMxNGM5OWExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKQEAg
LTMzLDIyICszMywxNiBAQAogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAi
TW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCi0jaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogCi1pbmxpbmUgSW1hZ2VJbnB1dFR5cGU6OkltYWdlSW5wdXRUeXBlKEhUTUxJbnB1
dEVsZW1lbnQmIGVsZW1lbnQpCitJbWFnZUlucHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkKICAgICA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkK
IHsKIH0KIAotT3duUHRyPElucHV0VHlwZT4gSW1hZ2VJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW1hZ2VJbnB1
dFR5cGUoZWxlbWVudCkpOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIEltYWdlSW5wdXRUeXBl
Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6
aW1hZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaAppbmRleCA0YTZiNWJhMzZi
NTI0NWZlNThiMDM0ZTdjMTU3ZDFkYWZlOGQwNzI0Li4xNTFmYjg2MWYxMTA5Y2M4NjI1ZjViNmNl
ZDAwMmJlOTQzNzRhNzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5w
dXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCkBAIC00
MCwxMCArNDAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEltYWdlSW5wdXRUeXBl
IDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25Q
dHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IElt
YWdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNp
dCBJbWFnZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBpc0Zvcm1EYXRhQXBwZW5kYWJsZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklE
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA5MDA3OGJiYzk4Mzg5ZDg5ZDA1NWUz
ZjYyYjY5MDUwNGE0ZjFlMTFhLi41ZjBiZDNiNTQyNjBkNDg5MGY3YWVhZmNhNDIxNjc0NTA3N2Zh
N2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC04NCw3NCArODQsNzcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CiAKLXR5cGVkZWYgT3duUHRyPElucHV0VHlwZT4gKCpJbnB1dFR5cGVGYWN0b3J5
RnVuY3Rpb24pKEhUTUxJbnB1dEVsZW1lbnQmKTsKK3R5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPElu
cHV0VHlwZT4gKCpJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24pKEhUTUxJbnB1dEVsZW1lbnQmKTsK
IHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIElucHV0VHlwZUZhY3RvcnlGdW5jdGlvbiwg
Q2FzZUZvbGRpbmdIYXNoPiBJbnB1dFR5cGVGYWN0b3J5TWFwOwogCi1zdGF0aWMgT3duUHRyPElu
cHV0VHlwZUZhY3RvcnlNYXA+IGNyZWF0ZUlucHV0VHlwZUZhY3RvcnlNYXAoKQordGVtcGxhdGU8
Y2xhc3MgVD4KK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBjcmVhdGVJbnB1dFR5
cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBPd25QdHI8SW5wdXRUeXBlRmFj
dG9yeU1hcD4gbWFwID0gYWRvcHRQdHIobmV3IElucHV0VHlwZUZhY3RvcnlNYXApOworICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFQ+KGVsZW1lbnQpOworfQogCi0gICAgLy8gRklYTUU6IFJl
bW92ZSB1bm5lY2Vzc2FyeSAnJidzIGZyb20gdGhlIGZvbGxvd2luZyBtYXAuYWRkIG9wZXJhdGlv
bnMKLSAgICAvLyBvbmNlIHdlIHN3aXRjaCB0byBhIG5vbi1icm9rZW4gVmlzdWFsIFN0dWRpbyBj
b21waWxlci4gIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEyMzUK
LSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6YnV0dG9uKCksICZCdXR0b25JbnB1dFR5cGU6
OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmNoZWNrYm94KCksICZDaGVj
a2JveElucHV0VHlwZTo6Y3JlYXRlKTsKK3N0YXRpYyB2b2lkIHBvcHVsYXRlSW5wdXRUeXBlRmFj
dG9yeU1hcChJbnB1dFR5cGVGYWN0b3J5TWFwJiBtYXApCit7CisgICAgbWFwLmFkZChJbnB1dFR5
cGVOYW1lczo6YnV0dG9uKCksIHN0ZDo6bW92ZShjcmVhdGVJbnB1dFR5cGU8QnV0dG9uSW5wdXRU
eXBlPikpOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OmNoZWNrYm94KCksIHN0ZDo6bW92
ZShjcmVhdGVJbnB1dFR5cGU8Q2hlY2tib3hJbnB1dFR5cGU+KSk7CiAjaWYgRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1IpCi0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmNvbG9yKCksICZDb2xv
cklucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpjb2xvcigp
LCBzdGQ6Om1vdmUoY3JlYXRlSW5wdXRUeXBlPENvbG9ySW5wdXRUeXBlPikpOwogI2VuZGlmCiAj
aWYgRU5BQkxFKElOUFVUX1RZUEVfREFURSkKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5cGVEYXRlRW5hYmxlZCgpKQotICAgICAgICBtYXAt
PmFkZChJbnB1dFR5cGVOYW1lczo6ZGF0ZSgpLCAmRGF0ZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAg
ICAgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6ZGF0ZSgpLCBzdGQ6Om1vdmUoY3JlYXRlSW5w
dXRUeXBlPERhdGVJbnB1dFR5cGU+KSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9E
QVRFVElNRV9JTkNPTVBMRVRFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLmlucHV0VHlwZURhdGVUaW1lRW5hYmxlZCgpKQotICAgICAgICBtYXAtPmFk
ZChJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUoKSwgJkRhdGVUaW1lSW5wdXRUeXBlOjpjcmVhdGUp
OworICAgICAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpkYXRldGltZSgpLCBzdGQ6Om1vdmUo
Y3JlYXRlSW5wdXRUeXBlPERhdGVUaW1lSW5wdXRUeXBlPikpOwogI2VuZGlmCiAjaWYgRU5BQkxF
KElOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5cGVEYXRlVGltZUxvY2FsRW5hYmxlZCgpKQotICAg
ICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWVsb2NhbCgpLCAmRGF0ZVRpbWVM
b2NhbElucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6
ZGF0ZXRpbWVsb2NhbCgpLCBzdGQ6Om1vdmUoY3JlYXRlSW5wdXRUeXBlPERhdGVUaW1lTG9jYWxJ
bnB1dFR5cGU+KSk7CiAjZW5kaWYKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6ZW1haWwo
KSwgJkVtYWlsSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVz
OjpmaWxlKCksICZGaWxlSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlw
ZU5hbWVzOjpoaWRkZW4oKSwgJkhpZGRlbklucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFk
ZChJbnB1dFR5cGVOYW1lczo6aW1hZ2UoKSwgJkltYWdlSW5wdXRUeXBlOjpjcmVhdGUpOworICAg
IG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OmVtYWlsKCksIHN0ZDo6bW92ZShjcmVhdGVJbnB1dFR5
cGU8RW1haWxJbnB1dFR5cGU+KSk7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6ZmlsZSgp
LCBzdGQ6Om1vdmUoY3JlYXRlSW5wdXRUeXBlPEZpbGVJbnB1dFR5cGU+KSk7CisgICAgbWFwLmFk
ZChJbnB1dFR5cGVOYW1lczo6aGlkZGVuKCksIHN0ZDo6bW92ZShjcmVhdGVJbnB1dFR5cGU8SGlk
ZGVuSW5wdXRUeXBlPikpOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OmltYWdlKCksIHN0
ZDo6bW92ZShjcmVhdGVJbnB1dFR5cGU8SW1hZ2VJbnB1dFR5cGU+KSk7CiAjaWYgRU5BQkxFKElO
UFVUX1RZUEVfTU9OVEgpCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuaW5wdXRUeXBlTW9udGhFbmFibGVkKCkpCi0gICAgICAgIG1hcC0+YWRkKElucHV0
VHlwZU5hbWVzOjptb250aCgpLCAmTW9udGhJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgICAgIG1h
cC5hZGQoSW5wdXRUeXBlTmFtZXM6Om1vbnRoKCksIHN0ZDo6bW92ZShjcmVhdGVJbnB1dFR5cGU8
TW9udGhJbnB1dFR5cGU+KSk7CiAjZW5kaWYKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6
bnVtYmVyKCksICZOdW1iZXJJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRU
eXBlTmFtZXM6OnBhc3N3b3JkKCksICZQYXNzd29yZElucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBt
YXAtPmFkZChJbnB1dFR5cGVOYW1lczo6cmFkaW8oKSwgJlJhZGlvSW5wdXRUeXBlOjpjcmVhdGUp
OwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpyYW5nZSgpLCAmUmFuZ2VJbnB1dFR5cGU6
OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OnJlc2V0KCksICZSZXNldElu
cHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6c2VhcmNoKCks
ICZTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6
OnN1Ym1pdCgpLCAmU3VibWl0SW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0
VHlwZU5hbWVzOjp0ZWxlcGhvbmUoKSwgJlRlbGVwaG9uZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAg
ICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpudW1iZXIoKSwgc3RkOjptb3ZlKGNyZWF0ZUlucHV0
VHlwZTxOdW1iZXJJbnB1dFR5cGU+KSk7CisgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6cGFz
c3dvcmQoKSwgc3RkOjptb3ZlKGNyZWF0ZUlucHV0VHlwZTxQYXNzd29yZElucHV0VHlwZT4pKTsK
KyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpyYWRpbygpLCBzdGQ6Om1vdmUoY3JlYXRlSW5w
dXRUeXBlPFJhZGlvSW5wdXRUeXBlPikpOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OnJh
bmdlKCksIHN0ZDo6bW92ZShjcmVhdGVJbnB1dFR5cGU8UmFuZ2VJbnB1dFR5cGU+KSk7CisgICAg
bWFwLmFkZChJbnB1dFR5cGVOYW1lczo6cmVzZXQoKSwgc3RkOjptb3ZlKGNyZWF0ZUlucHV0VHlw
ZTxSZXNldElucHV0VHlwZT4pKTsKKyAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjpzZWFyY2go
KSwgc3RkOjptb3ZlKGNyZWF0ZUlucHV0VHlwZTxTZWFyY2hJbnB1dFR5cGU+KSk7CisgICAgbWFw
LmFkZChJbnB1dFR5cGVOYW1lczo6c3VibWl0KCksIHN0ZDo6bW92ZShjcmVhdGVJbnB1dFR5cGU8
U3VibWl0SW5wdXRUeXBlPikpOworICAgIG1hcC5hZGQoSW5wdXRUeXBlTmFtZXM6OnRlbGVwaG9u
ZSgpLCBzdGQ6Om1vdmUoY3JlYXRlSW5wdXRUeXBlPFRlbGVwaG9uZUlucHV0VHlwZT4pKTsKICNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZVRpbWVFbmFibGVkKCkpCi0gICAgICAgIG1hcC0+
YWRkKElucHV0VHlwZU5hbWVzOjp0aW1lKCksICZUaW1lSW5wdXRUeXBlOjpjcmVhdGUpOworICAg
ICAgICBtYXAuYWRkKElucHV0VHlwZU5hbWVzOjp0aW1lKCksIHN0ZDo6bW92ZShjcmVhdGVJbnB1
dFR5cGU8VGltZUlucHV0VHlwZT4pKTsKICNlbmRpZgotICAgIG1hcC0+YWRkKElucHV0VHlwZU5h
bWVzOjp1cmwoKSwgJlVSTElucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICBtYXAuYWRkKElucHV0VHlw
ZU5hbWVzOjp1cmwoKSwgc3RkOjptb3ZlKGNyZWF0ZUlucHV0VHlwZTxVUkxJbnB1dFR5cGU+KSk7
CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfV0VFSykKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5cGVXZWVrRW5hYmxlZCgpKQotICAgICAgICBt
YXAtPmFkZChJbnB1dFR5cGVOYW1lczo6d2VlaygpLCAmV2Vla0lucHV0VHlwZTo6Y3JlYXRlKTsK
KyAgICAgICAgbWFwLmFkZChJbnB1dFR5cGVOYW1lczo6d2VlaygpLCBzdGQ6Om1vdmUoY3JlYXRl
SW5wdXRUeXBlPFdlZWtJbnB1dFR5cGU+KSk7CiAjZW5kaWYKICAgICAvLyBObyBuZWVkIHRvIHJl
Z2lzdGVyICJ0ZXh0IiBiZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0IHR5cGUuCi0KLSAgICByZXR1
cm4gbWFwOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGVOYW1lKQorc3RkOjp1
bmlxdWVfcHRyPElucHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlTmFtZSkKIHsKLSAgICBzdGF0aWMgY29u
c3QgSW5wdXRUeXBlRmFjdG9yeU1hcCogZmFjdG9yeU1hcCA9IGNyZWF0ZUlucHV0VHlwZUZhY3Rv
cnlNYXAoKS5sZWFrUHRyKCk7Ci0gICAgT3duUHRyPElucHV0VHlwZT4gKCpmYWN0b3J5KShIVE1M
SW5wdXRFbGVtZW50JikgPSB0eXBlTmFtZS5pc0VtcHR5KCkgPyAwIDogZmFjdG9yeU1hcC0+Z2V0
KHR5cGVOYW1lKTsKLSAgICBpZiAoIWZhY3RvcnkpCi0gICAgICAgIGZhY3RvcnkgPSBUZXh0SW5w
dXRUeXBlOjpjcmVhdGU7Ci0gICAgcmV0dXJuIGZhY3RvcnkoZWxlbWVudCk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPElucHV0VHlwZUZhY3RvcnlNYXA+IGZhY3RvcnlNYXA7CisgICAgaWYg
KGZhY3RvcnlNYXAuZ2V0KCkuaXNFbXB0eSgpKQorICAgICAgICBwb3B1bGF0ZUlucHV0VHlwZUZh
Y3RvcnlNYXAoZmFjdG9yeU1hcCk7CisKKyAgICBJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24gZmFj
dG9yeSA9IHR5cGVOYW1lLmlzRW1wdHkoKSA/IG51bGxwdHIgOiBmYWN0b3J5TWFwLmdldCgpLmdl
dCh0eXBlTmFtZSk7CisgICAgaWYgKGZhY3RvcnkpCisgICAgICAgIHJldHVybiBmYWN0b3J5KGVs
ZW1lbnQpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFRleHRJbnB1dFR5cGU+KGVsZW1l
bnQpOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBJbnB1dFR5cGU6OmNyZWF0ZVRleHQoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IElucHV0VHlw
ZTo6Y3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVybiBU
ZXh0SW5wdXRUeXBlOjpjcmVhdGUoZWxlbWVudCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8VGV4dElucHV0VHlwZT4oZWxlbWVudCk7CiB9CiAKIElucHV0VHlwZTo6fklucHV0VHlwZSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCA1MjQ3MGIxNDQwMGQ3MmIyNDc2OTQzNzlkNjRm
MTk0MmJkNDQzYWNlLi4xNjVjZmNkMzJmZjA5NDg5NzJjOGI2N2IyZjRlN2Q0ZjNiMGM3ZDYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTc0LDggKzc0LDggQEAgY2xhc3MgSW5wdXRUeXBl
IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIAogcHVibGljOgotICAgIHN0YXRpYyBP
d25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYsIGNvbnN0IEF0b21pY1N0
cmluZyYpOwotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGVUZXh0KEhUTUxJbnB1
dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50Jik7CiAg
ICAgdmlydHVhbCB+SW5wdXRUeXBlKCk7CiAKICAgICBzdGF0aWMgYm9vbCB0aGVtZVN1cHBvcnRz
RGF0YUxpc3RVSShJbnB1dFR5cGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TW9udGhJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5j
cHAKaW5kZXggNDhlYWQxZmU4ZTI0MTRiNjU1MWY0N2IzM2Y1OWNiNzRjYmI1MTVkMS4uNjgwY2Nl
ZTg0NGI3ZjU3N2NhZTg2ODlmNjU0YTExMDJkYzAzZjMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9N
b250aElucHV0VHlwZS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNDksMTEgKzQ4LDYgQEAgc3RhdGljIGNvbnN0IGludCBtb250aERlZmF1bHRTdGVw
ID0gMTsKIHN0YXRpYyBjb25zdCBpbnQgbW9udGhEZWZhdWx0U3RlcEJhc2UgPSAwOwogc3RhdGlj
IGNvbnN0IGludCBtb250aFN0ZXBTY2FsZUZhY3RvciA9IDE7CiAKLU93blB0cjxJbnB1dFR5cGU+
IE1vbnRoSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IE1vbnRoSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9p
ZCBNb250aElucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJs
ZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZU1vbnRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJ
bnB1dFR5cGUuaAppbmRleCA5YjU0ZTBiNjA0YTFkMjNmMzhlNjMwYWNlMzA2MTMyZDFiY2QzZWQ1
Li4xYzdmZjgwOTQzYjZkY2FkMzZiMjdlNTNkMDgzZDczZmRjOTY5YzNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Nb250aElucHV0VHlwZS5oCkBAIC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIE1vbnRoSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4g
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBNb250aElucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VNb250aElucHV0VHlwZShlbGVtZW50KSB7
IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNb250aElucHV0VHlwZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KSA6IEJhc2VNb250aElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJp
bmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNv
bXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTnVtYmVySW5wdXRUeXBlLmNwcAppbmRleCA2ZjU1ZGZiOWMwMjQzOTZlZDgyOTAwMDMyNGVm
MmM5ZmY0YWJhYTM4Li45ODRjZmEyMWU5ZGI4NDlmMjZlNTU0MDVlYThhNjJjYTdlN2FhNmMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBAIC00NCw3ICs0NCw2IEBA
CiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk0LDExICs5Myw2IEBAIHN0YXRpYyBSZWFsTnVtYmVyUmVu
ZGVyU2l6ZSBjYWxjdWxhdGVSZW5kZXJTaXplKGNvbnN0IERlY2ltYWwmIHZhbHVlKQogICAgIHJl
dHVybiBSZWFsTnVtYmVyUmVuZGVyU2l6ZShzaXplT2ZTaWduICsgc2l6ZU9mWmVybyAsIG51bWJl
ck9mWmVyb0FmdGVyRGVjaW1hbFBvaW50ICsgc2l6ZU9mRGlnaXRzKTsKIH0KIAotT3duUHRyPElu
cHV0VHlwZT4gTnVtYmVySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVu
dCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE51bWJlcklucHV0VHlwZShlbGVtZW50KSk7
Ci19Ci0KIHZvaWQgTnVtYmVySW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIFRleHRGaWVsZElu
cHV0VHlwZTo6YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJl
cklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRl
eCBmOTlhNjZmNzdiNDlhNzEzNWRiYWFiOGI3MmU5MTllN2E3ZTRkZGY5Li45ZDVjZTg2MDBmYTY1
MTFjNjgwYjA3Zjc5YzBiM2VkNzU2NDg3Mzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL051bWJlcklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5w
dXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
TnVtYmVySW5wdXRUeXBlIDogcHVibGljIFRleHRGaWVsZElucHV0VHlwZSB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7Cisg
ICAgTnVtYmVySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogVGV4dEZpZWxk
SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIE51bWJlcklucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IFRleHRGaWVsZElucHV0VHlwZShlbGVtZW50KSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dv
cmRJbnB1dFR5cGUuY3BwCmluZGV4IGZiNTdhM2E3ZjYyN2ZhNzUzZGRmYTA2OWUxYmM5YmNmODFl
NTU0MTQuLjdmN2UwZjlmY2NhMzQ0MmM0YzRkZmM2MzQ1NzM2NDEwOTgyM2U0NDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCkBAIC0zNiwxNSArMzYsOSBAQAog
I2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5o
IgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBQYXNzd29yZElu
cHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBQYXNzd29yZElucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIGNvbnN0IEF0
b21pY1N0cmluZyYgUGFzc3dvcmRJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpwYXNzd29yZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9QYXNzd29yZElucHV0VHlwZS5oCmluZGV4IGVhZjE0OGVmZTZkYzcxY2YxMjk1MTYxNzBlNjlm
YzRkMzk4MTZjMzAuLmJkMmRmYmI1MDEzYjRjMmQwY2Y4NTI0ODJlNTE4Y2NlN2U5M2I5OTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGFzc3dvcmRJbnB1dFR5cGUgOiBwdWJsaWMg
QmFzZVRleHRJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBl
PiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIFBhc3N3b3JkSW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAK
IHByaXZhdGU6Ci0gICAgUGFzc3dvcmRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVu
dCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIHNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgp
IGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcAppbmRl
eCAwYzIyNDE2YWY2NTllMDE1MjM1MGYyNjJiNjcyZjk0NjVmMmU5NmUyLi4yMzlhOWNlNjBhY2Zk
YzcyNjBmOWQ2MDg5ZmQ2MTM3NTQ1ZGFjZWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhZGlvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5w
dXRUeXBlLmNwcApAQCAtMzMsMTcgKzMzLDExIEBACiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3BhdGlhbE5hdmlnYXRpb24uaCIK
LSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLU93blB0cjxJbnB1dFR5cGU+IFJhZGlvSW5wdXRU
eXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRv
cHRQdHIobmV3IFJhZGlvSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogY29uc3QgQXRvbWljU3Ry
aW5nJiBSYWRpb0lucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1
cm4gSW5wdXRUeXBlTmFtZXM6OnJhZGlvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhZGlvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBl
LmgKaW5kZXggMTQxYmM0ODc5YTg3ZGVmMGU2YWMzMmI2YzU5YzQ2MzQ2OWZlODEzNS4uMzE3Y2Iy
ODhiNGI0MjY2ZTM2ZDc0ZGMyM2FhN2ZhNjE3MjhkYmYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFk
aW9JbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBSYWRpb0lucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1l
bnQmKTsKKyAgICBleHBsaWNpdCBSYWRpb0lucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KSA6IEJhc2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0g
ICAgZXhwbGljaXQgUmFkaW9JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBC
YXNlQ2hlY2thYmxlSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgU3RyaW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggODBiM2I2NTE0OWQ5ZGQ1OGI1YTVlMjVj
ZDAyOTUwZTk5ODQzYWZhMi4uZjM3MTFkM2ZjN2I0N2U5NTAyZDBlZTY3ZGRiOTJmOGRjYjEzMjA1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTQ5LDcgKzQ5LDYg
QEAKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiAjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKICNpbmNsdWRlICJUb3VjaC5oIgpAQCAtNzgsMTEgKzc3LDYgQEAg
c3RhdGljIERlY2ltYWwgZW5zdXJlTWF4aW11bShjb25zdCBEZWNpbWFsJiBwcm9wb3NlZFZhbHVl
LCBjb25zdCBEZWNpbWFsJiBtaW5pbXUKICAgICByZXR1cm4gcHJvcG9zZWRWYWx1ZSA+PSBtaW5p
bXVtID8gcHJvcG9zZWRWYWx1ZSA6IHN0ZDo6bWF4KG1pbmltdW0sIGZhbGxiYWNrVmFsdWUpOwog
fQogCi1Pd25QdHI8SW5wdXRUeXBlPiBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBSYW5nZUlucHV0VHlw
ZShlbGVtZW50KSk7Ci19Ci0KIFJhbmdlSW5wdXRUeXBlOjpSYW5nZUlucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KQogICAgIDogSW5wdXRUeXBlKGVsZW1lbnQpCiAjaWYgRU5BQkxF
KERBVEFMSVNUX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKaW5kZXgg
NDg2M2UwZjE3NzYzOGUxYTcxZjkzMjY0OGRhYmEwOTZmMjlmNGUwNy4uM2M3MjI1MmMyOGQ1ZGE4
M2I1ZjBkODE4YWViNjE4Y2YwODkwYWE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9SYW5nZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5
cGUuaApAQCAtMzksMTAgKzM5LDkgQEAgY2xhc3MgU2xpZGVyVGh1bWJFbGVtZW50OwogCiBjbGFz
cyBSYW5nZUlucHV0VHlwZSBGSU5BTCA6IHB1YmxpYyBJbnB1dFR5cGUgewogcHVibGljOgotICAg
IHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAg
IGV4cGxpY2l0IFJhbmdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBSYW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmly
dHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1JhbmdlQ29u
dHJvbCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBm
b3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElu
cHV0VHlwZS5jcHAKaW5kZXggMTA1NmYxY2I2MTBmMTU3ZDNlZjI5NGMxMGUyODQxMTNlNTdiMDBm
NS4uYzMyODhkZDY3MWUyNGM1YTZlYWU0NTgwMzc2YWI5ODQ1MGY1OGM2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9SZXNldElucHV0VHlwZS5jcHAKQEAgLTM3LDE1ICszNyw5IEBACiAjaW5jbHVkZSAi
SFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVk
ZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElucHV0VHlwZT4gUmVzZXRJbnB1dFR5cGU6OmNy
ZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgUmVzZXRJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIFJl
c2V0SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1
dFR5cGVOYW1lczo6cmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVz
ZXRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaAppbmRl
eCA0NWE4OWFiMzNiMjkxNjMyMzc3Yzk5NTQ1ZTljNjk1ZTkwMTYxYzA1Li5mNzQ5ZjY4ZDAxNThk
NmQ2NGVhMWY0ZmM3MjM2Yzg5ZDBjMjBkMGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1Jlc2V0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0
VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJl
c2V0SW5wdXRUeXBlIDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAg
IHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAg
IGV4cGxpY2l0IFJlc2V0SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFz
ZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBS
ZXNldElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1
dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1D
b250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1Zh
bGlkYXRpb24oKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRE9NQWN0
aXZhdGVFdmVudChFdmVudCopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1
dFR5cGUuY3BwCmluZGV4IGZjOGRkNzZlMWQxZTZhMGIwMWJlZWE2OGU0ZWJmYzRkNzI4NjkwZWUu
LjdiMDYwYTNmN2MxYzgwZTdjNDhkZGVmZDAyNGM3YTMzM2I0YjBjZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKQEAgLTM4LDEzICszOCwxMiBAQAogI2luY2x1ZGUg
IlJlbmRlclNlYXJjaEZpZWxkLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUg
IlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAot
aW5saW5lIFNlYXJjaElucHV0VHlwZTo6U2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpCitTZWFyY2hJbnB1dFR5cGU6OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KQogICAgIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkKICAgICAsIG1f
cmVzdWx0c0J1dHRvbigwKQogICAgICwgbV9jYW5jZWxCdXR0b24oMCkKQEAgLTUyLDExICs1MSw2
IEBAIGlubGluZSBTZWFyY2hJbnB1dFR5cGU6OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KQogewogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBTZWFyY2hJbnB1dFR5cGU6
OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0
cihuZXcgU2VhcmNoSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBTZWFyY2hJbnB1dFR5
cGU6OmF0dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2goKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5oCmluZGV4IDljMGE3NWFkMzZmNzI3ZjU5M2RhNjEz
MzdmYWY5ZTBmNTY2MzQ5ODUuLjhmOTVjYTkyYWQ5Y2E1ZjliNmUzYWZiMGYxYTY1OGRmMmM2NjFi
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaApAQCAtNDEsMTIgKzQxLDEx
IEBAIGNsYXNzIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ7CiAKIGNsYXNzIFNlYXJj
aElucHV0VHlwZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhw
bGljaXQgU2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogICAgIHZvaWQgc3Rv
cFNlYXJjaEV2ZW50VGltZXIoKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTZWFyY2hJbnB1
dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkU2VhcmNoUmVzdWx0KCkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJTdHlsZSYpIGNvbnN0
IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuY3BwCmluZGV4IGRl
ZDQxZGJmNWZiZjljMTAwMWU2ZjQ2ODk0NzVhYmEyMWVhMjRhZmMuLjFkMGI3MmVkOTVkYTUxZjIw
NjkzNzMwNGRjNzAxYzZhZjFmMDRhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
U3VibWl0SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0
VHlwZS5jcHAKQEAgLTM4LDE1ICszOCw5IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5o
IgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5n
cy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotT3duUHRyPElucHV0VHlwZT4gU3VibWl0SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxl
bWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFN1Ym1pdElucHV0VHlw
ZShlbGVtZW50KSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgU3VibWl0SW5wdXRUeXBlOjpm
b3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6c3Vi
bWl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuaAppbmRleCBkOWQ4N2ExNzU0
MmE5MzNkMGNjMGU0ODgzMGJjZjNmMmFmNzBhN2RlLi5mNGU2M2ZiZDM3MTg3NWM3NWEzNzliZTBk
ODIyNzFjZGYwYmM1NWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKQEAg
LTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU3VibWl0SW5wdXRU
eXBlIDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBP
d25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0
IFN1Ym1pdElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25J
bnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU3VibWl0SW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShl
bGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xU
eXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZv
cm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c1JlcXVpcmVkKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVw
aG9uZUlucHV0VHlwZS5jcHAKaW5kZXggMmQ4N2QyZjhkN2EwYjgxNzUxNGMzODI1NTg1ZTAzMjRh
NjRmOTVlMC4uNzdmZDBlMGE0YmMwZjcyMDI0YTY4ZjQ2ZGY0ZTlhM2FkYThmZGNlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcApAQCAtMzMsMTUgKzMzLDkg
QEAKIAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVO
YW1lcy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotT3duUHRyPElucHV0VHlwZT4gVGVsZXBob25lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRlbGVwaG9u
ZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgVGVsZXBob25lSW5wdXRUeXBlOjphdHRh
Y2goKQogewogICAgIFRleHRGaWVsZElucHV0VHlwZTo6YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaAppbmRleCBhYTRhYTUyN2E2OTNkYTUwYmIzNzY0YWIy
YmI0ZmY5NzAxMjE3ZTlkLi5mMmQ4Mzc5ZGU0OGMzYTRlMDk5ZThlNDAwMmFlZDI2OWZhN2Y2YWJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgKQEAgLTM3LDEwICsz
Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVGVsZXBob25lSW5wdXRUeXBlIDog
cHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElu
cHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBUZWxlcGhv
bmVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlw
ZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBUZWxlcGhvbmVJbnB1dFR5
cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0U3BlZWNoQXR0cmlidXRlKCkgT1ZFUlJJREU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmNwcAppbmRleCBjNWYzYThmYWQ1MTEzMmZmZWQx
ZTc1NTk5Y2VjZjgzODhkMjIxOWQ1Li44N2ViOTM4NzExOTNhNzkyNzk1ZjRhZmFkNmU1MThmZTVh
MTk4MjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5jcHAKQEAgLTMzLDE3ICsz
MywxMSBAQAogCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0
VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1Pd25QdHI8SW5wdXRUeXBl
PiBUZXh0SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFRleHRJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lk
IFRleHRJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRh
Y2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmgKaW5kZXggYmEyNGNhOTIyNjJkYTZi
YzBlZmIzZWFlOThkY2Q2YWQ3ZDgyMmZkNC4uNDFiMmE2MjliMWViNzlmMDgyZTRlNzVhYTRjZDZk
OTExNzc4ZjdmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmgKQEAgLTM3LDEwICsz
Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVGV4dElucHV0VHlwZSA6IHB1Ymxp
YyBCYXNlVGV4dElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5
cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgVGV4dElucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQp
IHsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFRleHRJbnB1dFR5cGUoSFRNTElucHV0RWxl
bWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJp
bmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRSZXNwZWN0U3BlZWNoQXR0cmlidXRlKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9U
aW1lSW5wdXRUeXBlLmNwcAppbmRleCBlNzczOTM0OTk4MzNhMzkwNWViNzY2YjVjM2FiMGVmNTM3
MzA3M2E5Li5kNzUxZjUxZjgxYzAwMzkzODlhZTQ2Zjk2MzM2MDQ2ZjJiNWJhOTNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRl
IDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNTQsMTEgKzUzLDYgQEAgVGltZUlucHV0VHlwZTo6VGltZUlu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewogfQogCi1Pd25QdHI8SW5wdXRU
eXBlPiBUaW1lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRpbWVJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2
b2lkIFRpbWVJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2li
bGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVUaW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5w
dXRUeXBlLmgKaW5kZXggMTk1OGQ3Nzk4ZGVlMjlmNzg3ZDJmZmRhMjZkMDY0ODVkZTZjZjhmNi4u
MDkxZjIyMjU1YmIzZTFjZjI4ZTM5MTBjMWFhN2M0Y2YxMTY2ODY5OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lSW5wdXRUeXBlLmgKQEAgLTM4LDEwICszOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgVGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgVGltZUlucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgVGltZUlucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3Qg
T1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAKaW5kZXggMWI1NWRjOGU1
NjZlMzQyOWIzNDIwMWM5YmI2OWIxNmI4NGU3NzEyNC4uY2JhMjllYzUwNWE0N2FjMmI1MDRiYmU2
ZjJmZTE4YTQ5OWFmZjI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcApAQCAt
MzUsMTUgKzM1LDkgQEAKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIkxv
Y2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJVUkwuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU93blB0cjxJbnB1dFR5cGU+IFVSTElu
cHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBVUkxJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lkIFVSTElucHV0
VHlwZTo6YXR0YWNoKCkKIHsKICAgICBUZXh0RmllbGRJbnB1dFR5cGU6OmF0dGFjaCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVVJMSW5wdXRUeXBlLmgKaW5kZXggYjdhYjY3NGE0NDk0ODRkZDE2ZmQ0ODMyOWNj
YTA1OTEwYWE3YzQ1ZC4uMTQ5NmYwNzBjM2ZjZWU4YmRjNzZmYTE0NmU3MTI3MDI1YTAwMWUzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFVSTElucHV0VHlwZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0
VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgVVJMSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6
Ci0gICAgZXhwbGljaXQgVVJMSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDog
QmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5
cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNv
bnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9XZWVrSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlw
ZS5jcHAKaW5kZXggNTE5ZGY1YTQ0NTEzODI5NmYyNjliYTZmMTI1ZGI1ZmJiZjgwNjQ5NC4uMzVk
MmZjZjJmZTZiNjMyZGQ1ZDY1MGNhNTMzZTRlNGFjZDdjNGE0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1dlZWtJbnB1dFR5cGUuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiSFRNTElucHV0
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5h
bWVzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC00NiwxMSArNDUsNiBAQCBzdGF0aWMgY29uc3QgaW50IHdlZWtEZWZhdWx0U3RlcEJh
c2UgPSAtMjU5MjAwMDAwOyAvLyBUaGUgZmlyc3QgZGF5IG9mIDE5NzAtVzAxLgogc3RhdGljIGNv
bnN0IGludCB3ZWVrRGVmYXVsdFN0ZXAgPSAxOwogc3RhdGljIGNvbnN0IGludCB3ZWVrU3RlcFNj
YWxlRmFjdG9yID0gNjA0ODAwMDAwOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBXZWVrSW5wdXRUeXBl
OjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFdlZWtJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lkIFdlZWtJbnB1dFR5cGU6
OmF0dGFjaCgpCiB7CiAgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVy
OjpJbnB1dFR5cGVXZWVrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKaW5kZXggY2Fl
NzllOTFiYjlhMDdiYTY0ZDQwM2E0NGU2NmY5ZTgxNTllMmIyNC4uMzMzZmI1NzA0MDA1YmU2NjZj
ZjEwNzZmNzQzZDM5NDhjMjc3MWM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9X
ZWVrSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgK
QEAgLTM4LDEwICszOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2Vla0lucHV0
VHlwZSA6IHB1YmxpYyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50
Jik7CisgICAgZXhwbGljaXQgV2Vla0lucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBw
cml2YXRlOgotICAgIGV4cGxpY2l0IFdlZWtJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkgOiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50KSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215257</attachid>
            <date>2013-10-26 12:17:50 -0700</date>
            <delta_ts>2013-10-28 07:12:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123160-20131026121745.patch</filename>
            <type>text/plain</type>
            <size>50412</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmMzYzIyY2ViYjViOGQx
ODVjOTdiNWU5YjA3MmRiYTIxNjE0OTQ1YS4uYmI3MzQwMzlmYjY3ZjRjYWFjN2M5YTdlZTUwMDJk
ODMyMzAwMGVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEzLTEwLTI2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBIVE1MIGlucHV0IHR5
cGUgb2JqZWN0cyBzaG91bGQgYmUgbWFuYWdlZCB0aHJvdWdoIHN0ZDo6dW5pcXVlX3B0cgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTYwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTWFrZSB0aGUgY29uc3Ry
dWN0b3JzIG9mIHRoZSBJbnB1dFR5cGUgc3ViY2xhc3NlcyBwdWJsaWMuIFRoaXMgbWFrZXMgaXQg
cG9zc2libGUgdG8gdXNlIHN0ZDo6bWFrZV91bmlxdWUgb24gdGhlc2UgY2xhc3NlcworICAgICAg
ICBhbmQgbWFrZXMgdGhlIFQ6OmNyZWF0ZSgpIGhlbHBlcnMgcmVkdW5kYW50LiBOZXcgaW5zdGFu
Y2VzIG9mIHRoZXNlIGNsYXNzZXMgYXJlIG5vdyBtYW5hZ2VkIHRocm91Z2ggc3RkOjp1bmlxdWVf
cHRyLgorICAgICAgICBJbnB1dFR5cGU6OmNyZWF0ZSgpIG5vdyB1c2VzIGEgTmV2ZXJEZXN0cm95
ZWQgSW5wdXRUeXBlRmFjdG9yeU1hcCB0aGF0IG1hcHMgdHlwZSBuYW1lcyB0byBJbnB1dFR5cGVG
YWN0b3J5RnVuY3Rpb25zIGFuZAorICAgICAgICBnZXRzIHBvcHVsYXRlZCB3aGVuIHRoZSBtZXRo
b2QgaXMgZmlyc3QgY2FsbGVkIGFuZCB0aGUgbWFwIGlzIHN0aWxsIGVtcHR5LiBUaGUgZmFjdG9y
eSBpcyB1c2VkIHRvIGNyZWF0ZSB0aGUgbmV3IElucHV0VHlwZQorICAgICAgICBvYmplY3QgaWYg
dGhlIHJlcXVlc3RlZCB0eXBlIHdhcyBmb3VuZCBpbiB0aGUgbWFwLCBhbmQgVGV4dElucHV0VHlw
ZSBpcyB1c2VkIG90aGVyd2lzZS4KKworICAgICAgICAqIGh0bWwvQnV0dG9uSW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKiBodG1sL0J1dHRvbklucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6
QnV0dG9uSW5wdXRUeXBlOjpCdXR0b25JbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvQ2hlY2ti
b3hJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNoZWNrYm94SW5wdXRUeXBlOjpDaGVja2JveElucHV0VHlwZSk6Cisg
ICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9Db2xvcklu
cHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OkNvbG9ySW5wdXRU
eXBlKToKKyAgICAgICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwv
RGF0ZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUlucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9EYXRl
VGltZUxvY2FsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1
dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OkRhdGVU
aW1lTG9jYWxJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtYWls
SW5wdXRUeXBlOjpFbWFpbElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
dXBkYXRlVHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRU
eXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpIaWRkZW5JbnB1dFR5cGU6OkhpZGRlbklucHV0VHlw
ZSk6CisgICAgICAgICogaHRtbC9JbWFnZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUlucHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvSW1hZ2VJ
bnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVJbnB1dFR5cGUpOiBBIHRlbXBsYXRlZCBoZWxwZXIgdGhhdCBjb25zdHJ1Y3Rz
IGEgbmV3IElucHV0VHlwZSBzdWJjbGFzcyBvYmplY3QgdGhyb3VnaCBzdGQ6Om1ha2VfdW5pcXVl
LgorICAgICAgICAoV2ViQ29yZTo6cG9wdWxhdGVJbnB1dFR5cGVGYWN0b3J5TWFwKTogUG9wdWxh
dGVzIHRoZSBwYXNzZWQtaW4gbWFwIHdpdGggdHlwZS1jcmVhdGVJbnB1dFR5cGU8VD4gcGFpcnMu
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0ZSk6IEdldCB0aGUgSW5wdXRUeXBl
RmFjdG9yeUZ1bmN0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHR5cGUsIG9yIGZhbGwgYmFjayB0byBU
ZXh0SW5wdXRUeXBlLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpjcmVhdGVUZXh0KToK
KyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5
cGUuY3BwOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1vbnRoSW5wdXRUeXBlOjpNb250aElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9OdW1i
ZXJJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6Ok51bWJlcklucHV0VHlwZSk6CisgICAgICAg
ICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9QYXNzd29yZElu
cHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFzc3dvcmRJbnB1dFR5cGU6OlBhc3N3b3Jk
SW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1JhZGlvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KiBodG1sL1JhZGlvSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lucHV0VHlw
ZTo6UmFkaW9JbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1Jlc2V0SW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1Jlc2V0SW5wdXRUeXBlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNldElucHV0VHlwZTo6UmVzZXRJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwv
U2VhcmNoSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaElucHV0VHlwZTo6
U2VhcmNoSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1NlYXJjaElucHV0VHlwZS5oOgorICAg
ICAgICAqIGh0bWwvU3VibWl0SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1N1Ym1pdElu
cHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6U3VibWl0SW5wdXRUeXBlOjpTdWJtaXRJbnB1
dFR5cGUpOgorICAgICAgICAqIGh0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KiBodG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGVsZXBob25l
SW5wdXRUeXBlOjpUZWxlcGhvbmVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvVGV4dElucHV0
VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9UZXh0SW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0SW5wdXRUeXBlOjpUZXh0SW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1RpbWVJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5oOgorICAgICAgICAq
IGh0bWwvVVJMSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1VSTElucHV0VHlwZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6VVJMSW5wdXRUeXBlOjpVUkxJbnB1dFR5cGUpOgorICAgICAgICAq
IGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9XZWVrSW5wdXRUeXBlLmg6
CisgICAgICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBlOjpXZWVrSW5wdXRUeXBlKToKKwogMjAx
My0xMC0yNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRmFz
dGVyIHdheSBmb3Igc2ltcGxlIGxpbmUgbGF5b3V0IHRvIGNoZWNrIGlmIHRleHQgaGFzIGZhbGxi
YWNrIGZvbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5jcHAKaW5kZXggOWNl
MjgwYzg1MjRiOWFiY2FkOWM1ZDMzYjNjYTI3MjlmYTEzZmQ1Yi4uY2I0NTJlNjQzZjUxZTViMzY2
OTdjZmUxMTEyYzIxY2IwM2ZiNjYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
dXR0b25JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRU
eXBlLmNwcApAQCAtMzIsMTUgKzMyLDkgQEAKICNpbmNsdWRlICJCdXR0b25JbnB1dFR5cGUuaCIK
IAogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBCdXR0b25JbnB1
dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogY29uc3QgQXRvbWlj
U3RyaW5nJiBCdXR0b25JbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIElucHV0VHlwZU5hbWVzOjpidXR0b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklu
cHV0VHlwZS5oCmluZGV4IGI0ZTk0ODA1OTZmZDMwOTM1OGY5MmY5M2Q4NzlmYWIxMTM1NzM1YWEu
LmIxODBkYzZkMmUwZDY3Mzk5MmY4Y2YyYjViMThlNjc1ZjIxODUyYTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CdXR0b25JbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBCdXR0b25JbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUJ1dHRvbklucHV0VHlw
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgQnV0dG9uSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0
ZToKLSAgICBCdXR0b25JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNl
QnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNWYWxpZGF0aW9uKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlz
VGV4dEJ1dHRvbigpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94
SW5wdXRUeXBlLmNwcAppbmRleCAwZWM0ZDFmYjIzNDk0YTE0ODYwZWUyNTMzMDU4OTg5OGZjOTNm
Y2UzLi42OWNmMDViY2FkZDFiZWM2MjBlNjQzOWU1ZTdjMzA3NDhjYTlmOWY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcApAQCAtMzYsMTUgKzM2LDkgQEAKICNp
bmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNp
bmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBDaGVja2JveElucHV0
VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBDaGVja2JveElucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIGNvbnN0IEF0b21p
Y1N0cmluZyYgQ2hlY2tib3hJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpjaGVja2JveCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9D
aGVja2JveElucHV0VHlwZS5oCmluZGV4IDQ1YjNmODMyNTFjNDliYmViNWI2MDM3ZTUxMTU2Njcz
YTg1MmVkOTQuLjk3N2ZjOWMzZGYwMmE3MmEzNTI3MmQwNTZjMDU3MmQyMmI3YTliMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2hlY2tib3hJbnB1dFR5cGUgOiBwdWJsaWMgQmFz
ZUNoZWNrYWJsZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5
cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgQ2hlY2tib3hJbnB1
dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hlY2thYmxlSW5wdXRUeXBl
KGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIENoZWNrYm94SW5wdXRUeXBlKEhUTUxJbnB1
dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNoZWNrYWJsZUlucHV0VHlwZShlbGVtZW50KSB7IH0K
ICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29u
c3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IGMz
MjVmYzg1ZWYxMTEwMmZjNjMyZWFkM2Y4YWU3ZWZiMWM5ZWE2YmEuLmRlOWJhZWZmYzE4M2I3OTQ2
ZmM2ZGQwZDNmOWUwNjQ2Y2Y2OTRhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Q29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5
cGUuY3BwCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjYsMTEgKzY1LDYgQEAgc3RhdGljIGJvb2wgaXNWYWxp
ZENvbG9yU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgcmV0dXJuIGNvbG9yLmlzVmFs
aWQoKSAmJiAhY29sb3IuaGFzQWxwaGEoKTsKIH0KIAotT3duUHRyPElucHV0VHlwZT4gQ29sb3JJ
bnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgQ29sb3JJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBDb2xvcklucHV0
VHlwZTo6fkNvbG9ySW5wdXRUeXBlKCkKIHsKICAgICBlbmRDb2xvckNob29zZXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRleCAwMGEzZjViMjUxNTk3ZGVkMzY5NDJjNjk2
ZjI5NDg4NjkzOGQ0ZWU3Li43MDA4NWZmMzA3ODY2MzdhMzRhY2NjZDYyNjVhZTc2N2ViYTUxZDVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC0zOSw3ICszOSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29sb3JJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNs
aWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUsIHB1YmxpYyBDb2xvckNob29zZXJDbGllbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVu
dCYpOworICAgIGV4cGxpY2l0IENvbG9ySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1l
bnQpIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmly
dHVhbCB+Q29sb3JJbnB1dFR5cGUoKTsKIAogICAgIC8vIENvbG9yQ2hvb3NlckNsaWVudCBpbXBs
ZW1lbnRhdGlvbi4KQEAgLTUxLDcgKzUxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgVmVjdG9y
PENvbG9yPiBzdWdnZXN0aW9ucygpIGNvbnN0IE9WRVJSSURFOwogCiBwcml2YXRlOgotICAgIGV4
cGxpY2l0IENvbG9ySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNs
aWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0
dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc0NvbG9yQ29udHJvbCgpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5
cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0
ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCmlu
ZGV4IDEyZmEwNDA5Mzk2MTgxNWQ5YWJlOTU5NmVkOTUxMmYyZTQyMDkzZDEuLjY5NTc1MzE4MjAz
MTRjODA1YjMwNzI2OGJiNTA4YTM1ODkxM2E2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5w
dXRUeXBlLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgot
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NTEsMTEgKzUwLDYgQEAgaW5saW5lIERhdGVJbnB1dFR5cGU6OkRhdGVJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCkKIHsKIH0KIAotT3duUHRyPElucHV0VHlwZT4gRGF0ZUlucHV0
VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBEYXRlSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBEYXRlSW5wdXRU
eXBlOjphdHRhY2goKQogewogICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNl
cnZlcjo6SW5wdXRUeXBlRGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCmluZGV4
IDRhMGMyM2QxOWUxMWZlM2RlZmVkODBkOGUwN2Q3YmNmMGUzMTlmMmMuLjQ3MDMxZTIyMThmZmI5
YWU0M2QzYThkZDIwNjNhYjgzMmFhYmQ1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlw
ZS5oCkBAIC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVJ
bnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUgewog
cHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxl
bWVudCYpOworICAgIGV4cGxpY2l0IERhdGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwog
CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IERhdGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYp
OwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBEYXRlQ29tcG9uZW50czo6VHlwZSBkYXRlVHlwZSgpIGNvbnN0IE9WRVJSSURFOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcAppbmRleCAxMWY3ZTllYWI4MWRh
OWZjYWI5N2I5ZGQ1NTI5ZDhjZjk1ODk5ZWJhLi5lNmU0YjcwOTdkNjcwZDc3NDU4NDA5ZTZiODY1
ZTkyYjhmZjMzMWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNw
cApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklu
cHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0jaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NywxMSArNDYs
NiBAQCBzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lRGVmYXVsdFN0ZXAgPSA2MDsKIHN0YXRpYyBj
b25zdCBpbnQgZGF0ZVRpbWVEZWZhdWx0U3RlcEJhc2UgPSAwOwogc3RhdGljIGNvbnN0IGludCBk
YXRlVGltZVN0ZXBTY2FsZUZhY3RvciA9IDEwMDA7CiAKLU93blB0cjxJbnB1dFR5cGU+IERhdGVU
aW1lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IERhdGVUaW1lSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9p
ZCBEYXRlVGltZUlucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVhdHVyZUlmVmlz
aWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZURhdGVUaW1lKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaAppbmRleCAyMGY0ZGRmOTFkMGI3YmVmNWE5MTEwNzAwZGQy
YTYyY2E3MDRjOTIyLi4xYjI4YWE3N2RjZmRjODE4MzAxODUyZGE2NDY4ZjM1NjJhNzk0YTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5oCkBAIC0zOSwxMCArMzksOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVUaW1lSW5wdXRUeXBlIDogcHVibGlj
IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBs
aWNpdCBEYXRlVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VE
YXRlVGltZUlucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBE
YXRlVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VEYXRlVGlt
ZUlucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUo
KSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuY3BwCmluZGV4IDU1ZDRkMDkzMDYzMjlkODdkNTI3ZDcyNjE4MGE2MmIzODc1ZTky
NzkuLjk3ZDA4M2RmZDI3OTQzY2JjYWVhYTdmYzIzMzkwMTU5ZWU4MGJlNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcApAQCAtMzYsNyArMzYs
NiBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDYsMTEgKzQ1LDYgQEAgc3RhdGljIGNv
bnN0IGludCBkYXRlVGltZUxvY2FsRGVmYXVsdFN0ZXAgPSA2MDsKIHN0YXRpYyBjb25zdCBpbnQg
ZGF0ZVRpbWVMb2NhbERlZmF1bHRTdGVwQmFzZSA9IDA7CiBzdGF0aWMgY29uc3QgaW50IGRhdGVU
aW1lTG9jYWxTdGVwU2NhbGVGYWN0b3IgPSAxMDAwOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBEYXRl
VGltZUxvY2FsSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGVUaW1lTG9jYWxJbnB1dFR5cGUoZWxlbWVudCkp
OwotfQotCiB2b2lkIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgb2Jz
ZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVEYXRlVGltZUxv
Y2FsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKaW5k
ZXggNjlmMmJiYTYzOTI3YTg5MzQxNWFkNmMwZGMzMTQyZDM0NjRlMzFkZC4uYmMzZTlkMmQ1Mjgw
MzM2OTQ4OTE1MGFmZWJlZjI3YmI5ZTllY2I5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKQEAgLTM4LDEwICszOCw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRGF0ZVRpbWVMb2NhbElucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJ
bnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgRGF0ZVRp
bWVMb2NhbElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VEYXRlVGlt
ZUxvY2FsSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IERh
dGVUaW1lTG9jYWxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0
ZVRpbWVMb2NhbElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9s
VHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUg
ZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRW1haWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlw
ZS5jcHAKaW5kZXggMjdkZThkNDVmNmQ4ZjAwYWI2ODU2ZWI2ZDVjYTM0ZmM2MDFlZWNkOC4uZmE2
NzlkYzMwYmNmZTc3NGFjNDA3NzU3ZTNkYzNlYzM4OWViMzMxYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9FbWFpbElucHV0VHlwZS5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJJbnB1dFR5
cGVOYW1lcy5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJSZWd1
bGFyRXhwcmVzc2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Mywx
MSArNTIsNiBAQCBzdGF0aWMgYm9vbCBpc1ZhbGlkRW1haWxBZGRyZXNzKGNvbnN0IFN0cmluZyYg
YWRkcmVzcykKICAgICByZXR1cm4gIW1hdGNoT2Zmc2V0ICYmIG1hdGNoTGVuZ3RoID09IGFkZHJl
c3NMZW5ndGg7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IEVtYWlsSW5wdXRUeXBlOjpjcmVhdGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEVt
YWlsSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBFbWFpbElucHV0VHlwZTo6YXR0YWNo
KCkKIHsKICAgICBUZXh0RmllbGRJbnB1dFR5cGU6OmF0dGFjaCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9F
bWFpbElucHV0VHlwZS5oCmluZGV4IGUwZDIxMzE4NmQ5OWI4ZTA1YzQxZWJlZGIwODIyMDdmMGJi
NGRiZjkuLmI3YWVlYzU0NTAwODg0OWE1NjQ4YjE3NjQ0N2MwYTA0ODliOTFjZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRW1haWxJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5
cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElu
cHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IEVtYWlsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6
Ci0gICAgZXhwbGljaXQgRW1haWxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkg
OiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9s
VHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2hGb3Io
Y29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcAppbmRleCBkMjlmYTEyNTZiZTc3ZTBmNWY3MzBjZmY3YWQ0MDA0ZGRmZTU1OGMwLi4w
NmJiOWZhM2ZmN2QzYzMyN2ViN2RkOGJjNzMyZmNlZjQ5NzkwYTZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlICJSZW5kZXJG
aWxlVXBsb2FkQ29udHJvbC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKQEAgLTg1LDExICs4NCw2IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgVXBsb2FkQnV0dG9u
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogICAgIHJldHVybiBwc2V1ZG9JZDsKIH0K
IAotT3duUHRyPElucHV0VHlwZT4gRmlsZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBGaWxlSW5wdXRUeXBlKGVs
ZW1lbnQpKTsKLX0KLQogRmlsZUlucHV0VHlwZTo6RmlsZUlucHV0VHlwZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KQogICAgIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVu
dCkKICAgICAsIG1fZmlsZUxpc3QoRmlsZUxpc3Q6OmNyZWF0ZSgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuaAppbmRleCA2YTRhYzkzNTQwYTJmODZlZjkzMmEwODc0MjA3YTY4NWFmZTZk
ZTg5Li5jOTExNWRkNDU0ZGYwMGI5ZTUwODBjNDcyNTdiZTA5MjFlMmRkNjI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuaApAQCAtNDQsMTQgKzQ0LDEyIEBAIGNsYXNzIEZpbGVMaXN0
OwogCiBjbGFzcyBGaWxlSW5wdXRUeXBlIDogcHVibGljIEJhc2VDbGlja2FibGVXaXRoS2V5SW5w
dXRUeXBlLCBwcml2YXRlIEZpbGVDaG9vc2VyQ2xpZW50LCBwcml2YXRlIEZpbGVJY29uTG9hZGVy
Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhU
TUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBGaWxlSW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQmKTsKICAgICB2aXJ0dWFsIH5GaWxlSW5wdXRUeXBlKCk7CiAKICAgICBzdGF0aWMgVmVj
dG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+IGZpbGVzRnJvbUZvcm1Db250cm9sU3RhdGUoY29uc3Qg
Rm9ybUNvbnRyb2xTdGF0ZSYpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEZpbGVJbnB1dFR5
cGUoSFRNTElucHV0RWxlbWVudCYpOwotCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRm9ybUNvbnRy
b2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJikg
T1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBi
YzA0MDU3MTQ4Y2I3NWY4ZjA3ZGY0ZDM0Mzg0YjI4N2FjOWZlOWQ0Li5mOWMwNjQ4ZjNiZGQ0OTkx
ZWU2MDVlOTE3ZDcyNTQ0MDE5MDllMTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKQEAgLTQ1NCw3ICs0NTQsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNl
dFR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0
ZVR5cGUoKQogewotICAgIE93blB0cjxJbnB1dFR5cGU+IG5ld1R5cGUgPSBJbnB1dFR5cGU6OmNy
ZWF0ZSgqdGhpcywgZmFzdEdldEF0dHJpYnV0ZSh0eXBlQXR0cikpOworICAgIGF1dG8gbmV3VHlw
ZSA9IElucHV0VHlwZTo6Y3JlYXRlKCp0aGlzLCBmYXN0R2V0QXR0cmlidXRlKHR5cGVBdHRyKSk7
CiAgICAgYm9vbCBoYWRUeXBlID0gbV9oYXNUeXBlOwogICAgIG1faGFzVHlwZSA9IHRydWU7CiAg
ICAgaWYgKG1faW5wdXRUeXBlLT5mb3JtQ29udHJvbFR5cGUoKSA9PSBuZXdUeXBlLT5mb3JtQ29u
dHJvbFR5cGUoKSkKQEAgLTQ3OSw3ICs0NzksNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnVw
ZGF0ZVR5cGUoKQogICAgIGlmICh3YXNBdHRhY2hlZCkKICAgICAgICAgU3R5bGU6OmRldGFjaFJl
bmRlclRyZWUoKnRoaXMpOwogCi0gICAgbV9pbnB1dFR5cGUgPSBuZXdUeXBlLnJlbGVhc2UoKTsK
KyAgICBtX2lucHV0VHlwZSA9IHN0ZDo6bW92ZShuZXdUeXBlKTsKICAgICBtX2lucHV0VHlwZS0+
Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggMzQ1MjZiZTIwMjhhNjEwYjdmYTA3
MWM2NDA5YjM3Y2QwZTE4YWVmNi4uZWZmM2ZhOTEyZTQ0Yzk2ZTAwNWYzMDlhYjUyNjhiNmRkMjdh
NDdkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTQ0Miw3ICs0
NDIsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgYm9vbCBtX2hh
c1RvdWNoRXZlbnRIYW5kbGVyIDogMTsKICNlbmRpZgotICAgIE93blB0cjxJbnB1dFR5cGU+IG1f
aW5wdXRUeXBlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IG1faW5wdXRUeXBlOwog
ICAgIC8vIFRoZSBJbWFnZUxvYWRlciBtdXN0IGJlIG93bmVkIGJ5IHRoaXMgZWxlbWVudCBiZWNh
dXNlIHRoZSBsb2FkZXIgY29kZSBhc3N1bWVzCiAgICAgLy8gdGhhdCBpdCBsaXZlcyBhcyBsb25n
IGFzIGl0cyBvd25pbmcgZWxlbWVudCBsaXZlcy4gSWYgd2UgbW92ZSB0aGUgbG9hZGVyIGludG8K
ICAgICAvLyB0aGUgSW1hZ2VJbnB1dCBvYmplY3Qgd2UgbWF5IGRlbGV0ZSB0aGUgbG9hZGVyIHdo
aWxlIHRoaXMgZWxlbWVudCBsaXZlcyBvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSGlkZGVuSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRU
eXBlLmNwcAppbmRleCA4M2E2M2ZiMWMzOGEzOWM4NzFkYWIzNzc5YzEyMGJiNWYxMzg2YzIzLi4x
MDM0ZDhiZGZjOGQ4MjU0NzI1MWI3YjdmYjUxOTNmNGZkMGFhZGNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCkBAIC0zNywxNyArMzcsMTEgQEAKICNpbmNsdWRlICJI
VE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5w
dXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLU93blB0cjxJbnB1dFR5
cGU+IEhpZGRlbklucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBIaWRkZW5JbnB1dFR5cGUoZWxlbWVudCkpOwotfQot
CiBjb25zdCBBdG9taWNTdHJpbmcmIEhpZGRlbklucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OmhpZGRlbigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKaW5kZXggZTM4N2ExYTM1MDk1NDQyN2Q2MWViMjBmZGM0
ZGZkNjRhNTFkNTg2Zi4uNTFkYmFmY2ZhOWFhNzUwNWEyZTJjMTdjNjUwYWFjMzIyMzY1NmVhZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhpZGRlbklucHV0VHlwZSA6IHB1YmxpYyBJbnB1
dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IEhpZGRlbklucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KSA6IElucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAg
ICBleHBsaWNpdCBIaWRkZW5JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBJ
bnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZv
cm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xT
dGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJikgT1ZF
UlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDg5MzU2ZDdl
ZDIwMDkzOTdkYWU0NDc5ZWY0MzhkZmJmYWJkODA3ODMuLjA4Yjc3MWZmMzEzMWMwMWU1MDUwZGM0
NTBkNTY4YTAzMTRjOTlhMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3Bw
CkBAIC0zMywyMiArMzMsMTYgQEAKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1
ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgotI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKIAotaW5saW5lIEltYWdlSW5wdXRUeXBlOjpJbWFnZUlucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KQorSW1hZ2VJbnB1dFR5cGU6OkltYWdlSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1l
bnQpCiB7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IEltYWdlSW5wdXRUeXBlOjpjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEltYWdl
SW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBJbWFnZUlucHV0
VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFt
ZXM6OmltYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKaW5kZXggNGE2YjVi
YTM2YjUyNDVmZTU4YjAzNGU3YzE1N2QxZGFmZThkMDcyNC4uMTUxZmI4NjFmMTEwOWNjODYyNWY1
YjZjZWQwMDJiZTk0Mzc0YTczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaApA
QCAtNDAsMTAgKzQwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbWFnZUlucHV0
VHlwZSA6IHB1YmxpYyBCYXNlQnV0dG9uSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
T3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNp
dCBJbWFnZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgZXhw
bGljaXQgSW1hZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNGb3JtRGF0YUFwcGVuZGFibGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3QgT1ZF
UlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZWQzNDQzYTVjMWMzNDJmYzZj
ZTczODk3MDkzN2Q2ZDViNTRkODFjYi4uZDA3NTRmMDNmZmZlNDdlYWRjNThmZmE4YjIxNWYzZDgx
YWY1YzY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtODMsNzQgKzgzLDkwIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotdHlw
ZWRlZiBPd25QdHI8SW5wdXRUeXBlPiAoKklucHV0VHlwZUZhY3RvcnlGdW5jdGlvbikoSFRNTElu
cHV0RWxlbWVudCYpOwotdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywgSW5wdXRUeXBlRmFj
dG9yeUZ1bmN0aW9uLCBDYXNlRm9sZGluZ0hhc2g+IElucHV0VHlwZUZhY3RvcnlNYXA7Cit1c2lu
ZyBJbnB1dFR5cGVOYW1lRnVuY3Rpb24gPSBjb25zdCBBdG9taWNTdHJpbmcmICgqKSgpOwordXNp
bmcgSW5wdXRUeXBlRmFjdG9yeUZ1bmN0aW9uID0gc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4g
KCopKEhUTUxJbnB1dEVsZW1lbnQmKTsKK3VzaW5nIElucHV0VHlwZUZhY3RvcnlNYXAgPSBIYXNo
TWFwPEF0b21pY1N0cmluZywgSW5wdXRUeXBlRmFjdG9yeUZ1bmN0aW9uLCBDYXNlRm9sZGluZ0hh
c2g+OwogCi1zdGF0aWMgT3duUHRyPElucHV0VHlwZUZhY3RvcnlNYXA+IGNyZWF0ZUlucHV0VHlw
ZUZhY3RvcnlNYXAoKQordGVtcGxhdGU8Y2xhc3MgVD4KK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
SW5wdXRUeXBlPiBjcmVhdGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsK
LSAgICBPd25QdHI8SW5wdXRUeXBlRmFjdG9yeU1hcD4gbWFwID0gYWRvcHRQdHIobmV3IElucHV0
VHlwZUZhY3RvcnlNYXApOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFQ+KGVsZW1lbnQp
OworfQogCi0gICAgLy8gRklYTUU6IFJlbW92ZSB1bm5lY2Vzc2FyeSAnJidzIGZyb20gdGhlIGZv
bGxvd2luZyBtYXAuYWRkIG9wZXJhdGlvbnMKLSAgICAvLyBvbmNlIHdlIHN3aXRjaCB0byBhIG5v
bi1icm9rZW4gVmlzdWFsIFN0dWRpbyBjb21waWxlci4gIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjEyMzUKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6YnV0
dG9uKCksICZCdXR0b25JbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBl
TmFtZXM6OmNoZWNrYm94KCksICZDaGVja2JveElucHV0VHlwZTo6Y3JlYXRlKTsKK3N0YXRpYyB2
b2lkIHBvcHVsYXRlSW5wdXRUeXBlRmFjdG9yeU1hcChJbnB1dFR5cGVGYWN0b3J5TWFwJiBtYXAp
Cit7CisgICAgc3RhdGljIGNvbnN0IHN0cnVjdCBJbnB1dFR5cGVzIHsKKyAgICAgICAgYm9vbCBp
c0VuYWJsZWQ7CisgICAgICAgIElucHV0VHlwZU5hbWVGdW5jdGlvbiBuYW1lRnVuY3Rpb247Cisg
ICAgICAgIElucHV0VHlwZUZhY3RvcnlGdW5jdGlvbiBmYWN0b3J5RnVuY3Rpb247CisgICAgfSBp
bnB1dFR5cGVzW10gPSB7CisgICAgICAgIHsgdHJ1ZSwgJklucHV0VHlwZU5hbWVzOjpidXR0b24s
ICZjcmVhdGVJbnB1dFR5cGU8QnV0dG9uSW5wdXRUeXBlPiB9LAorICAgICAgICB7IHRydWUsICZJ
bnB1dFR5cGVOYW1lczo6Y2hlY2tib3gsICZjcmVhdGVJbnB1dFR5cGU8Q2hlY2tib3hJbnB1dFR5
cGU+IH0sCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgbWFwLT5hZGQoSW5wdXRU
eXBlTmFtZXM6OmNvbG9yKCksICZDb2xvcklucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyB0
cnVlLCAmSW5wdXRUeXBlTmFtZXM6OmNvbG9yLCAmY3JlYXRlSW5wdXRUeXBlPENvbG9ySW5wdXRU
eXBlPiB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfREFURSkKLSAgICBpZiAoUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5cGVEYXRlRW5hYmxl
ZCgpKQotICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6ZGF0ZSgpLCAmRGF0ZUlucHV0
VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLmlucHV0VHlwZURhdGVFbmFibGVkKCksCisgICAgICAgICAgICAmSW5wdXRUeXBl
TmFtZXM6OmRhdGUsICZjcmVhdGVJbnB1dFR5cGU8RGF0ZUlucHV0VHlwZT4gfSwKICNlbmRpZgog
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpCi0gICAgaWYgKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5wdXRUeXBlRGF0ZVRpbWVFbmFi
bGVkKCkpCi0gICAgICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpkYXRldGltZSgpLCAmRGF0
ZVRpbWVJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgICAgIHsgUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5cGVEYXRlVGltZUVuYWJsZWQoKSwKKyAgICAgICAg
ICAgICZJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUsICZjcmVhdGVJbnB1dFR5cGU8RGF0ZVRpbWVJ
bnB1dFR5cGU+IH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FM
KQotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0
VHlwZURhdGVUaW1lTG9jYWxFbmFibGVkKCkpCi0gICAgICAgIG1hcC0+YWRkKElucHV0VHlwZU5h
bWVzOjpkYXRldGltZWxvY2FsKCksICZEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpjcmVhdGUpOwor
ICAgICAgICB7IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5wdXRU
eXBlRGF0ZVRpbWVMb2NhbEVuYWJsZWQoKSwKKyAgICAgICAgICAgICZJbnB1dFR5cGVOYW1lczo6
ZGF0ZXRpbWVsb2NhbCwgJmNyZWF0ZUlucHV0VHlwZTxEYXRlVGltZUxvY2FsSW5wdXRUeXBlPiB9
LAogI2VuZGlmCi0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmVtYWlsKCksICZFbWFpbElu
cHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6ZmlsZSgpLCAm
RmlsZUlucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6aGlk
ZGVuKCksICZIaWRkZW5JbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBl
TmFtZXM6OmltYWdlKCksICZJbWFnZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyB0cnVl
LCAmSW5wdXRUeXBlTmFtZXM6OmVtYWlsLCAmY3JlYXRlSW5wdXRUeXBlPEVtYWlsSW5wdXRUeXBl
PiB9LAorICAgICAgICB7IHRydWUsICZJbnB1dFR5cGVOYW1lczo6ZmlsZSwgJmNyZWF0ZUlucHV0
VHlwZTxGaWxlSW5wdXRUeXBlPiB9LAorICAgICAgICB7IHRydWUsICZJbnB1dFR5cGVOYW1lczo6
aGlkZGVuLCAmY3JlYXRlSW5wdXRUeXBlPEhpZGRlbklucHV0VHlwZT4gfSwKKyAgICAgICAgeyB0
cnVlLCAmSW5wdXRUeXBlTmFtZXM6OmltYWdlLCAmY3JlYXRlSW5wdXRUeXBlPEltYWdlSW5wdXRU
eXBlPiB9LAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX01PTlRIKQotICAgIGlmIChSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZU1vbnRoRW5hYmxlZCgpKQot
ICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6bW9udGgoKSwgJk1vbnRoSW5wdXRUeXBl
OjpjcmVhdGUpOworICAgICAgICB7IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuaW5wdXRUeXBlTW9udGhFbmFibGVkKCksCisgICAgICAgICAgICAmSW5wdXRUeXBlTmFt
ZXM6Om1vbnRoLCAmY3JlYXRlSW5wdXRUeXBlPE1vbnRoSW5wdXRUeXBlPiB9LAogI2VuZGlmCi0g
ICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6Om51bWJlcigpLCAmTnVtYmVySW5wdXRUeXBlOjpj
cmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpwYXNzd29yZCgpLCAmUGFzc3dv
cmRJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OnJhZGlv
KCksICZSYWRpb0lucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1l
czo6cmFuZ2UoKSwgJlJhbmdlSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0
VHlwZU5hbWVzOjpyZXNldCgpLCAmUmVzZXRJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5h
ZGQoSW5wdXRUeXBlTmFtZXM6OnNlYXJjaCgpLCAmU2VhcmNoSW5wdXRUeXBlOjpjcmVhdGUpOwot
ICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpzdWJtaXQoKSwgJlN1Ym1pdElucHV0VHlwZTo6
Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6dGVsZXBob25lKCksICZUZWxl
cGhvbmVJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgICAgIHsgdHJ1ZSwgJklucHV0VHlwZU5hbWVz
OjpudW1iZXIsICZjcmVhdGVJbnB1dFR5cGU8TnVtYmVySW5wdXRUeXBlPiB9LAorICAgICAgICB7
IHRydWUsICZJbnB1dFR5cGVOYW1lczo6cGFzc3dvcmQsICZjcmVhdGVJbnB1dFR5cGU8UGFzc3dv
cmRJbnB1dFR5cGU+IH0sCisgICAgICAgIHsgdHJ1ZSwgJklucHV0VHlwZU5hbWVzOjpyYWRpbywg
JmNyZWF0ZUlucHV0VHlwZTxSYWRpb0lucHV0VHlwZT4gfSwKKyAgICAgICAgeyB0cnVlLCAmSW5w
dXRUeXBlTmFtZXM6OnJhbmdlLCAmY3JlYXRlSW5wdXRUeXBlPFJhbmdlSW5wdXRUeXBlPiB9LAor
ICAgICAgICB7IHRydWUsICZJbnB1dFR5cGVOYW1lczo6cmVzZXQsICZjcmVhdGVJbnB1dFR5cGU8
UmVzZXRJbnB1dFR5cGU+IH0sCisgICAgICAgIHsgdHJ1ZSwgJklucHV0VHlwZU5hbWVzOjpzZWFy
Y2gsICZjcmVhdGVJbnB1dFR5cGU8U2VhcmNoSW5wdXRUeXBlPiB9LAorICAgICAgICB7IHRydWUs
ICZJbnB1dFR5cGVOYW1lczo6c3VibWl0LCAmY3JlYXRlSW5wdXRUeXBlPFN1Ym1pdElucHV0VHlw
ZT4gfSwKKyAgICAgICAgeyB0cnVlLCAmSW5wdXRUeXBlTmFtZXM6OnRlbGVwaG9uZSwgJmNyZWF0
ZUlucHV0VHlwZTxUZWxlcGhvbmVJbnB1dFR5cGU+IH0sCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVf
VElNRSkKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5p
bnB1dFR5cGVUaW1lRW5hYmxlZCgpKQotICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6
dGltZSgpLCAmVGltZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZVRpbWVFbmFibGVkKCksCisgICAg
ICAgICAgICAmSW5wdXRUeXBlTmFtZXM6OnRpbWUsICZjcmVhdGVJbnB1dFR5cGU8VGltZUlucHV0
VHlwZT4gfSwKICNlbmRpZgotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjp1cmwoKSwgJlVS
TElucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyB0cnVlLCAmSW5wdXRUeXBlTmFtZXM6OnVy
bCwgJmNyZWF0ZUlucHV0VHlwZTxVUkxJbnB1dFR5cGU+IH0sCiAjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfV0VFSykKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5pbnB1dFR5cGVXZWVrRW5hYmxlZCgpKQotICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1l
czo6d2VlaygpLCAmV2Vla0lucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZVdlZWtFbmFibGVkKCksCisg
ICAgICAgICAgICAmSW5wdXRUeXBlTmFtZXM6OndlZWssICZjcmVhdGVJbnB1dFR5cGU8V2Vla0lu
cHV0VHlwZT4gfSwKICNlbmRpZgotICAgIC8vIE5vIG5lZWQgdG8gcmVnaXN0ZXIgInRleHQiIGJl
Y2F1c2UgaXQgaXMgdGhlIGRlZmF1bHQgdHlwZS4KKyAgICAgICAgLy8gTm8gbmVlZCB0byByZWdp
c3RlciAidGV4dCIgYmVjYXVzZSBpdCBpcyB0aGUgZGVmYXVsdCB0eXBlLgorICAgIH07CiAKLSAg
ICByZXR1cm4gbWFwOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVO
R1RIKGlucHV0VHlwZXMpOyArK2kpIHsKKyAgICAgICAgaWYgKGlucHV0VHlwZXNbaV0uaXNFbmFi
bGVkKQorICAgICAgICAgICAgbWFwLmFkZChpbnB1dFR5cGVzW2ldLm5hbWVGdW5jdGlvbigpLCBp
bnB1dFR5cGVzW2ldLmZhY3RvcnlGdW5jdGlvbik7CisgICAgfQogfQogCi1Pd25QdHI8SW5wdXRU
eXBlPiBJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50LCBjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGVOYW1lKQorc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gSW5wdXRU
eXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlTmFtZSkKIHsKLSAgICBzdGF0aWMgY29uc3QgSW5wdXRUeXBlRmFjdG9yeU1hcCogZmFj
dG9yeU1hcCA9IGNyZWF0ZUlucHV0VHlwZUZhY3RvcnlNYXAoKS5sZWFrUHRyKCk7Ci0gICAgT3du
UHRyPElucHV0VHlwZT4gKCpmYWN0b3J5KShIVE1MSW5wdXRFbGVtZW50JikgPSB0eXBlTmFtZS5p
c0VtcHR5KCkgPyAwIDogZmFjdG9yeU1hcC0+Z2V0KHR5cGVOYW1lKTsKLSAgICBpZiAoIWZhY3Rv
cnkpCi0gICAgICAgIGZhY3RvcnkgPSBUZXh0SW5wdXRUeXBlOjpjcmVhdGU7Ci0gICAgcmV0dXJu
IGZhY3RvcnkoZWxlbWVudCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPElucHV0VHlwZUZh
Y3RvcnlNYXA+IGZhY3RvcnlNYXA7CisgICAgaWYgKGZhY3RvcnlNYXAuZ2V0KCkuaXNFbXB0eSgp
KQorICAgICAgICBwb3B1bGF0ZUlucHV0VHlwZUZhY3RvcnlNYXAoZmFjdG9yeU1hcCk7CisKKyAg
ICBpZiAoIXR5cGVOYW1lLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoYXV0byBmYWN0b3J5ID0g
ZmFjdG9yeU1hcC5nZXQoKS5nZXQodHlwZU5hbWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhY3Rv
cnkoZWxlbWVudCk7CisgICAgfQorICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFRleHRJbnB1
dFR5cGU+KGVsZW1lbnQpOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBJbnB1dFR5cGU6OmNyZWF0
ZVRleHQoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5
cGU+IElucHV0VHlwZTo6Y3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewot
ICAgIHJldHVybiBUZXh0SW5wdXRUeXBlOjpjcmVhdGUoZWxlbWVudCk7CisgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8VGV4dElucHV0VHlwZT4oZWxlbWVudCk7CiB9CiAKIElucHV0VHlwZTo6
fklucHV0VHlwZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCA1MjQ3MGIxNDQwMGQ3MmIy
NDc2OTQzNzlkNjRmMTk0MmJkNDQzYWNlLi4xNjVjZmNkMzJmZjA5NDg5NzJjOGI2N2IyZjRlN2Q0
ZjNiMGM3ZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTc0LDggKzc0LDggQEAgY2xh
c3MgSW5wdXRUeXBlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIAogcHVibGljOgot
ICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYsIGNv
bnN0IEF0b21pY1N0cmluZyYpOwotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGVU
ZXh0KEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0
VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlVGV4dChIVE1MSW5wdXRF
bGVtZW50Jik7CiAgICAgdmlydHVhbCB+SW5wdXRUeXBlKCk7CiAKICAgICBzdGF0aWMgYm9vbCB0
aGVtZVN1cHBvcnRzRGF0YUxpc3RVSShJbnB1dFR5cGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250
aElucHV0VHlwZS5jcHAKaW5kZXggNDhlYWQxZmU4ZTI0MTRiNjU1MWY0N2IzM2Y1OWNiNzRjYmI1
MTVkMS4uNjgwY2NlZTg0NGI3ZjU3N2NhZTg2ODlmNjU0YTExMDJkYzAzZjMyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRl
IDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNDksMTEgKzQ4LDYgQEAgc3RhdGljIGNvbnN0IGludCBtb250
aERlZmF1bHRTdGVwID0gMTsKIHN0YXRpYyBjb25zdCBpbnQgbW9udGhEZWZhdWx0U3RlcEJhc2Ug
PSAwOwogc3RhdGljIGNvbnN0IGludCBtb250aFN0ZXBTY2FsZUZhY3RvciA9IDE7CiAKLU93blB0
cjxJbnB1dFR5cGU+IE1vbnRoSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1vbnRoSW5wdXRUeXBlKGVsZW1lbnQp
KTsKLX0KLQogdm9pZCBNb250aElucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVh
dHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZU1vbnRoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTW9udGhJbnB1dFR5cGUuaAppbmRleCA5YjU0ZTBiNjA0YTFkMjNmMzhlNjMwYWNlMzA2
MTMyZDFiY2QzZWQ1Li4xYzdmZjgwOTQzYjZkY2FkMzZiMjdlNTNkMDgzZDczZmRjOTY5YzNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCkBAIC0zOCwxMCArMzgsOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1vbnRoSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRy
PElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBNb250
aElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VNb250aElucHV0VHlw
ZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNb250aElucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VNb250aElucHV0VHlwZShlbGVtZW50KSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAppbmRleCAyZjMwMmYyY2EzYzIyNzM1
NDZlYjkyMTFmNjgxZTg4Y2Y5Y2UzZWE0Li41ODg4MjA4MDlhMDAyMjllYmI2Nzk5YzdmNTY3ZTdj
YTNkZjA4NjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBAIC00
NCw3ICs0NCw2IEBACiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBl
Lmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTkzLDExICs5Miw2IEBAIHN0YXRpYyBS
ZWFsTnVtYmVyUmVuZGVyU2l6ZSBjYWxjdWxhdGVSZW5kZXJTaXplKGNvbnN0IERlY2ltYWwmIHZh
bHVlKQogICAgIHJldHVybiBSZWFsTnVtYmVyUmVuZGVyU2l6ZShzaXplT2ZTaWduICsgc2l6ZU9m
WmVybyAsIG51bWJlck9mWmVyb0FmdGVyRGVjaW1hbFBvaW50ICsgc2l6ZU9mRGlnaXRzKTsKIH0K
IAotT3duUHRyPElucHV0VHlwZT4gTnVtYmVySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxl
bWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE51bWJlcklucHV0VHlw
ZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgTnVtYmVySW5wdXRUeXBlOjphdHRhY2goKQogewogICAg
IFRleHRGaWVsZElucHV0VHlwZTo6YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1
dFR5cGUuaAppbmRleCBmOTlhNjZmNzdiNDlhNzEzNWRiYWFiOGI3MmU5MTllN2E3ZTRkZGY5Li44
ZDhhNWE0OWQ5ZDk0MmE3YWVkMTE3ZTgwNDBjMWViOWM0Yjg5OWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgTnVtYmVySW5wdXRUeXBlIDogcHVibGljIFRleHRGaWVsZElucHV0VHlwZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRF
bGVtZW50Jik7CisgICAgZXhwbGljaXQgTnVtYmVySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQm
IGVsZW1lbnQpIDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgot
ICAgIE51bWJlcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IFRleHRGaWVs
ZElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBi
b29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCmluZGV4IGZiNTdhM2E3ZjYyN2Zh
NzUzZGRmYTA2OWUxYmM5YmNmODFlNTU0MTQuLjdmN2UwZjlmY2NhMzQ0MmM0YzRkZmM2MzQ1NzM2
NDEwOTgyM2U0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3Bw
CkBAIC0zNiwxNSArMzYsOSBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNs
dWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8
SW5wdXRUeXBlPiBQYXNzd29yZElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXNzd29yZElucHV0VHlwZShlbGVt
ZW50KSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgUGFzc3dvcmRJbnB1dFR5cGU6OmZvcm1D
b250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpwYXNzd29y
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oCmluZGV4IGVhZjE0OGVm
ZTZkYzcxY2YxMjk1MTYxNzBlNjlmYzRkMzk4MTZjMzAuLjQzYTdiNDM2YzYxODY1Zjc2Njc3YTlk
OTFjNTEzNzZhZmI3MjlkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dv
cmRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBl
LmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGFzc3dv
cmRJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0
YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4
cGxpY2l0IFBhc3N3b3JkSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFz
ZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgUGFzc3dvcmRJbnB1
dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVt
ZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBl
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFNhdmVBbmRSZXN0b3Jl
Rm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRm9ybUNvbnRy
b2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcAppbmRleCAwYzIyNDE2YWY2NTllMDE1MjM1MGYyNjJi
NjcyZjk0NjVmMmU5NmUyLi4yMzlhOWNlNjBhY2ZkYzcyNjBmOWQ2MDg5ZmQ2MTM3NTQ1ZGFjZWQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcApAQCAtMzMsMTcgKzMzLDEx
IEBACiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiU3BhdGlhbE5hdmlnYXRpb24uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAK
LU93blB0cjxJbnB1dFR5cGU+IFJhZGlvSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVu
dCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFJhZGlvSW5wdXRUeXBlKGVs
ZW1lbnQpKTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBSYWRpb0lucHV0VHlwZTo6Zm9ybUNv
bnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OnJhZGlvKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmgKaW5kZXggMTQxYmM0ODc5YTg3ZGVmMGU2
YWMzMmI2YzU5YzQ2MzQ2OWZlODEzNS4uMzE3Y2IyODhiNGI0MjY2ZTM2ZDc0ZGMyM2FhN2ZhNjE3
MjhkYmYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSYWRpb0lucHV0VHlwZSA6IHB1Ymxp
YyBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElu
cHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBSYWRpb0lu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDaGVja2FibGVJbnB1dFR5
cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUmFkaW9JbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlKGVsZW1l
bnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUo
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0
cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlTWlzc2luZ1Rl
eHQoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAK
aW5kZXggOTlmMGI4NjE2MWYzMzUyYzRkMWM2ZGE0NTIxM2ZlOWVmODdkNzA3MC4uODg3OTFmZWJi
MmRhYjJiOTQxOGZhZDFjYWIzNWY0OWMyMjE1Nzg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5n
ZUlucHV0VHlwZS5jcHAKQEAgLTQ5LDcgKzQ5LDYgQEAKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIK
ICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICNpbmNsdWRl
ICJUb3VjaC5oIgpAQCAtNzcsMTEgKzc2LDYgQEAgc3RhdGljIERlY2ltYWwgZW5zdXJlTWF4aW11
bShjb25zdCBEZWNpbWFsJiBwcm9wb3NlZFZhbHVlLCBjb25zdCBEZWNpbWFsJiBtaW5pbXUKICAg
ICByZXR1cm4gcHJvcG9zZWRWYWx1ZSA+PSBtaW5pbXVtID8gcHJvcG9zZWRWYWx1ZSA6IHN0ZDo6
bWF4KG1pbmltdW0sIGZhbGxiYWNrVmFsdWUpOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBSYW5n
ZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBSYW5nZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIFJhbmdlSW5w
dXRUeXBlOjpSYW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogICAgIDog
SW5wdXRUeXBlKGVsZW1lbnQpCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKaW5kZXggNDg2M2UwZjE3NzYzOGUxYTcxZjkzMjY0OGRh
YmEwOTZmMjlmNGUwNy4uM2M3MjI1MmMyOGQ1ZGE4M2I1ZjBkODE4YWViNjE4Y2YwODkwYWE0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtMzksMTAgKzM5LDkgQEAgY2xh
c3MgU2xpZGVyVGh1bWJFbGVtZW50OwogCiBjbGFzcyBSYW5nZUlucHV0VHlwZSBGSU5BTCA6IHB1
YmxpYyBJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBj
cmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFJhbmdlSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSYW5nZUlucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVS
UklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5jcHAKaW5kZXggMTA1NmYxY2I2
MTBmMTU3ZDNlZjI5NGMxMGUyODQxMTNlNTdiMDBmNS4uYzMyODhkZDY3MWUyNGM1YTZlYWU0NTgw
Mzc2YWI5ODQ1MGY1OGM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5jcHAK
QEAgLTM3LDE1ICszNyw5IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1
ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRy
PElucHV0VHlwZT4gUmVzZXRJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUmVzZXRJbnB1dFR5cGUoZWxlbWVudCkp
OwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIFJlc2V0SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5
cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6cmVzZXQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaAppbmRleCA0NWE4OWFiMzNiMjkxNjMyMzc3Yzk5NTQ1
ZTljNjk1ZTkwMTYxYzA1Li5mNzQ5ZjY4ZDAxNThkNmQ2NGVhMWY0ZmM3MjM2Yzg5ZDBjMjBkMGU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc2V0SW5wdXRUeXBlIDogcHVibGljIEJhc2VC
dXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBj
cmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFJlc2V0SW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KSB7
IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZXNldElucHV0VHlwZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZhbGlkYXRpb24oKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCopIE9WRVJSSURF
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCmluZGV4IDgyOTY2NDdkZDg0
MjgxMmY2NzFkNmViZjliNjVjYWUzMDYyNTFkZGEuLmFmOTcyYWE3YzNhM2IzM2E1NjRlN2U4YTNl
Zjc1MjFmZDk5NWE0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAK
QEAgLTM4LDEzICszOCwxMiBAQAogI2luY2x1ZGUgIlJlbmRlclNlYXJjaEZpZWxkLmgiCiAjaW5j
bHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5o
IgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIFNlYXJjaElucHV0VHlwZTo6U2Vh
cmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitTZWFyY2hJbnB1dFR5cGU6
OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogICAgIDogQmFzZVRl
eHRJbnB1dFR5cGUoZWxlbWVudCkKICAgICAsIG1fcmVzdWx0c0J1dHRvbigwKQogICAgICwgbV9j
YW5jZWxCdXR0b24oMCkKQEAgLTUyLDExICs1MSw2IEBAIGlubGluZSBTZWFyY2hJbnB1dFR5cGU6
OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewogfQogCi1Pd25Q
dHI8SW5wdXRUeXBlPiBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgU2VhcmNoSW5wdXRUeXBlKGVsZW1l
bnQpKTsKLX0KLQogdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgVGV4dEZp
ZWxkSW5wdXRUeXBlOjphdHRhY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
U2VhcmNoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5o
CmluZGV4IDljMGE3NWFkMzZmNzI3ZjU5M2RhNjEzMzdmYWY5ZTBmNTY2MzQ5ODUuLjhmOTVjYTky
YWQ5Y2E1ZjliNmUzYWZiMGYxYTY1OGRmMmM2NjFiOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFy
Y2hJbnB1dFR5cGUuaApAQCAtNDEsMTIgKzQxLDExIEBAIGNsYXNzIFNlYXJjaEZpZWxkUmVzdWx0
c0J1dHRvbkVsZW1lbnQ7CiAKIGNsYXNzIFNlYXJjaElucHV0VHlwZSA6IHB1YmxpYyBCYXNlVGV4
dElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgU2VhcmNoSW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmKTsKIAogICAgIHZvaWQgc3RvcFNlYXJjaEV2ZW50VGltZXIoKTsKIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBTZWFyY2hJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwog
ICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWRk
U2VhcmNoUmVzdWx0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVh
dGVSZW5kZXJlcihSZW5kZXJTdHlsZSYpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9TdWJtaXRJbnB1dFR5cGUuY3BwCmluZGV4IGRlZDQxZGJmNWZiZjljMTAwMWU2ZjQ2ODk0NzVh
YmEyMWVhMjRhZmMuLjFkMGI3MmVkOTVkYTUxZjIwNjkzNzMwNGRjNzAxYzZhZjFmMDRhMjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5jcHAKQEAgLTM4LDE1ICszOCw5IEBA
CiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVz
LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElucHV0VHlwZT4gU3VibWl0
SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1
cm4gYWRvcHRQdHIobmV3IFN1Ym1pdElucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIGNvbnN0IEF0
b21pY1N0cmluZyYgU3VibWl0SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewog
ICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6c3VibWl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJt
aXRJbnB1dFR5cGUuaAppbmRleCBkOWQ4N2ExNzU0MmE5MzNkMGNjMGU0ODgzMGJjZjNmMmFmNzBh
N2RlLi5mNGU2M2ZiZDM3MTg3NWM3NWEzNzliZTBkODIyNzFjZGYwYmM1NWExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgU3VibWl0SW5wdXRUeXBlIDogcHVibGljIEJhc2VCdXR0b25JbnB1
dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFN1Ym1pdElucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgU3VibWl0SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1JlcXVpcmVkKCkgY29uc3QgT1ZFUlJJ
REU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHAKaW5kZXggMmQ4
N2QyZjhkN2EwYjgxNzUxNGMzODI1NTg1ZTAzMjRhNjRmOTVlMC4uNzdmZDBlMGE0YmMwZjcyMDI0
YTY4ZjQ2ZGY0ZTlhM2FkYThmZGNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZWxlcGhvbmVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25l
SW5wdXRUeXBlLmNwcApAQCAtMzMsMTUgKzMzLDkgQEAKIAogI2luY2x1ZGUgIkhUTUxJbnB1dEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElucHV0VHlwZT4gVGVs
ZXBob25lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFRlbGVwaG9uZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0K
IHZvaWQgVGVsZXBob25lSW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIFRleHRGaWVsZElucHV0
VHlwZTo6YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9u
ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaApp
bmRleCBhYTRhYTUyN2E2OTNkYTUwYmIzNzY0YWIyYmI0ZmY5NzAxMjE3ZTlkLi5mMmQ4Mzc5ZGU0
OGMzYTRlMDk5ZThlNDAwMmFlZDI2OWZhN2Y2YWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVs
ZXBob25lSW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgVGVsZXBob25lSW5wdXRUeXBlIDogcHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVs
ZW1lbnQmKTsKKyAgICBleHBsaWNpdCBUZWxlcGhvbmVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVu
dCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBUZWxlcGhvbmVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVu
dCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0
YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250
cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0
U3BlZWNoQXR0cmlidXRlKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBl
LmNwcAppbmRleCBjNWYzYThmYWQ1MTEzMmZmZWQxZTc1NTk5Y2VjZjgzODhkMjIxOWQ1Li44N2Vi
OTM4NzExOTNhNzkyNzk1ZjRhZmFkNmU1MThmZTVhMTk4MjU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dElucHV0VHlwZS5jcHAKQEAgLTMzLDE3ICszMywxMSBAQAogCiAjaW5jbHVkZSAiSFRNTElu
cHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBUZXh0SW5wdXRUeXBlOjpjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRleHRJ
bnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lkIFRleHRJbnB1dFR5cGU6OmF0dGFjaCgpCiB7
CiAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5w
dXRUeXBlLmgKaW5kZXggYmEyNGNhOTIyNjJkYTZiYzBlZmIzZWFlOThkY2Q2YWQ3ZDgyMmZkNC4u
NDFiMmE2MjliMWViNzlmMDgyZTRlNzVhYTRjZDZkOTExNzc4ZjdmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0SW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgVGV4dElucHV0VHlwZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50
Jik7CisgICAgZXhwbGljaXQgVGV4dElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIGV4cGxp
Y2l0IFRleHRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElu
cHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0U3BlZWNoQXR0cmlidXRl
KCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCBlNzcz
OTM0OTk4MzNhMzkwNWViNzY2YjVjM2FiMGVmNTM3MzA3M2E5Li5kNzUxZjUxZjgxYzAwMzkzODlh
ZTQ2Zjk2MzM2MDQ2ZjJiNWJhOTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rp
bWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5j
cHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNs
dWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTQsMTEg
KzUzLDYgQEAgVGltZUlucHV0VHlwZTo6VGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50KQogewogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBUaW1lSW5wdXRUeXBlOjpjcmVhdGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRp
bWVJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiB2b2lkIFRpbWVJbnB1dFR5cGU6OmF0dGFjaCgp
CiB7CiAgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5
cGVUaW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKaW5kZXggMTk1OGQ3Nzk4ZGVl
MjlmNzg3ZDJmZmRhMjZkMDY0ODVkZTZjZjhmNi4uMDkxZjIyMjU1YmIzZTFjZjI4ZTM5MTBjMWFh
N2M0Y2YxMTY2ODY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKQEAgLTM4LDEw
ICszOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVGltZUlucHV0VHlwZSA6IHB1
YmxpYyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAg
ZXhwbGljaXQgVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6Ci0g
ICAgZXhwbGljaXQgVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVh
bCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIERhdGVDb21w
b25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VS
TElucHV0VHlwZS5jcHAKaW5kZXggMWI1NWRjOGU1NjZlMzQyOWIzNDIwMWM5YmI2OWIxNmI4NGU3
NzEyNC4uY2JhMjllYzUwNWE0N2FjMmI1MDRiYmU2ZjJmZTE4YTQ5OWFmZjI4YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcApAQCAtMzUsMTUgKzM1LDkgQEAKICNpbmNsdWRlICJJ
bnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRl
ICJVUkwuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLU93blB0cjxJbnB1dFR5cGU+IFVSTElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBVUkxJbnB1dFR5cGUo
ZWxlbWVudCkpOwotfQotCiB2b2lkIFVSTElucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBUZXh0
RmllbGRJbnB1dFR5cGU6OmF0dGFjaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9VUkxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmgKaW5k
ZXggYjdhYjY3NGE0NDk0ODRkZDE2ZmQ0ODMyOWNjYTA1OTEwYWE3YzQ1ZC4uMTQ5NmYwNzBjM2Zj
ZWU4YmRjNzZmYTE0NmU3MTI3MDI1YTAwMWUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9VUkxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlw
ZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFVSTElu
cHV0VHlwZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGlj
aXQgVVJMSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1
dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgVVJMSW5wdXRUeXBl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURF
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKaW5kZXggNTE5ZGY1YTQ0NTEzODI5
NmYyNjliYTZmMTI1ZGI1ZmJiZjgwNjQ5NC4uMzVkMmZjZjJmZTZiNjMyZGQ1ZDY1MGNhNTMzZTRl
NGFjZDdjNGE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCkBAIC0zNiw3
ICszNiw2IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NiwxMSArNDUsNiBAQCBzdGF0
aWMgY29uc3QgaW50IHdlZWtEZWZhdWx0U3RlcEJhc2UgPSAtMjU5MjAwMDAwOyAvLyBUaGUgZmly
c3QgZGF5IG9mIDE5NzAtVzAxLgogc3RhdGljIGNvbnN0IGludCB3ZWVrRGVmYXVsdFN0ZXAgPSAx
Owogc3RhdGljIGNvbnN0IGludCB3ZWVrU3RlcFNjYWxlRmFjdG9yID0gNjA0ODAwMDAwOwogCi1P
d25QdHI8SW5wdXRUeXBlPiBXZWVrSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlZWtJbnB1dFR5cGUoZWxlbWVu
dCkpOwotfQotCiB2b2lkIFdlZWtJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgb2JzZXJ2ZUZl
YXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVXZWVrKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9XZWVrSW5wdXRUeXBlLmgKaW5kZXggY2FlNzllOTFiYjlhMDdiYTY0ZDQwM2E0NGU2NmY5
ZTgxNTllMmIyNC4uMzMzZmI1NzA0MDA1YmU2NjZjZjEwNzZmNzQzZDM5NDhjMjc3MWM4MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKQEAgLTM4LDEwICszOCw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgV2Vla0lucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1
dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgV2Vla0lucHV0
VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFdlZWtJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlw
ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0
ZVR5cGUoKSBjb25zdCBPVkVSUklERTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215303</attachid>
            <date>2013-10-28 07:12:25 -0700</date>
            <delta_ts>2013-10-28 09:51:12 -0700</delta_ts>
            <desc>EWS try</desc>
            <filename>bug-123160-20131028071224.patch</filename>
            <type>text/plain</type>
            <size>50297</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4MTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI2ZGFjN2FjMDhhNmRm
MWMyYmZiNGU5Njc1MjdiZDg4MDBmYTZlNS4uNmY5ODc2MDg5NzQ4ODFiZTNiM2UxOWFhMmU2NzE3
YjQzMTU2Y2M2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEzLTEwLTI4ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBIVE1MIGlucHV0IHR5
cGUgb2JqZWN0cyBzaG91bGQgYmUgbWFuYWdlZCB0aHJvdWdoIHN0ZDo6dW5pcXVlX3B0cgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTYwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgY29u
c3RydWN0b3JzIG9mIHRoZSBJbnB1dFR5cGUgc3ViY2xhc3NlcyBwdWJsaWMuIFRoaXMgbWFrZXMg
aXQgcG9zc2libGUgdG8gdXNlIHN0ZDo6bWFrZV91bmlxdWUgb24gdGhlc2UgY2xhc3NlcworICAg
ICAgICBhbmQgbWFrZXMgdGhlIFQ6OmNyZWF0ZSgpIGhlbHBlcnMgcmVkdW5kYW50LiBOZXcgaW5z
dGFuY2VzIG9mIHRoZXNlIGNsYXNzZXMgYXJlIG5vdyBtYW5hZ2VkIHRocm91Z2ggc3RkOjp1bmlx
dWVfcHRyLgorICAgICAgICBJbnB1dFR5cGU6OmNyZWF0ZSgpIG5vdyB1c2VzIGEgTmV2ZXJEZXN0
cm95ZWQgSW5wdXRUeXBlRmFjdG9yeU1hcCB0aGF0IG1hcHMgdHlwZSBuYW1lcyB0byBJbnB1dFR5
cGVGYWN0b3J5RnVuY3Rpb25zIGFuZAorICAgICAgICBnZXRzIHBvcHVsYXRlZCB3aGVuIHRoZSBt
ZXRob2QgaXMgZmlyc3QgY2FsbGVkIGFuZCB0aGUgbWFwIGlzIHN0aWxsIGVtcHR5LiBUaGUgZmFj
dG9yeSBpcyB1c2VkIHRvIGNyZWF0ZSB0aGUgbmV3IElucHV0VHlwZQorICAgICAgICBvYmplY3Qg
aWYgdGhlIHJlcXVlc3RlZCB0eXBlIHdhcyBmb3VuZCBpbiB0aGUgbWFwLCBhbmQgVGV4dElucHV0
VHlwZSBpcyB1c2VkIG90aGVyd2lzZS4KKworICAgICAgICAqIGh0bWwvQnV0dG9uSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKiBodG1sL0J1dHRvbklucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6QnV0dG9uSW5wdXRUeXBlOjpCdXR0b25JbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvQ2hl
Y2tib3hJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNoZWNrYm94SW5wdXRUeXBlOjpDaGVja2JveElucHV0VHlwZSk6
CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9Db2xv
cklucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OkNvbG9ySW5w
dXRUeXBlKToKKyAgICAgICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0
bWwvRGF0ZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUlucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9E
YXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OkRh
dGVUaW1lTG9jYWxJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVt
YWlsSW5wdXRUeXBlOjpFbWFpbElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6dXBkYXRlVHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5w
dXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpIaWRkZW5JbnB1dFR5cGU6OkhpZGRlbklucHV0
VHlwZSk6CisgICAgICAgICogaHRtbC9JbWFnZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUlucHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvSW1h
Z2VJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVJbnB1dFR5cGUpOiBBIHRlbXBsYXRlZCBoZWxwZXIgdGhhdCBjb25zdHJ1
Y3RzIGEgbmV3IElucHV0VHlwZSBzdWJjbGFzcyBvYmplY3QgdGhyb3VnaCBzdGQ6Om1ha2VfdW5p
cXVlLgorICAgICAgICAoV2ViQ29yZTo6cG9wdWxhdGVJbnB1dFR5cGVGYWN0b3J5TWFwKTogUG9w
dWxhdGVzIHRoZSBwYXNzZWQtaW4gbWFwIHdpdGggdHlwZS1jcmVhdGVJbnB1dFR5cGU8VD4gcGFp
cnMuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0ZSk6IEdldCB0aGUgSW5wdXRU
eXBlRmFjdG9yeUZ1bmN0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHR5cGUsIG9yIGZhbGwgYmFjayB0
byBUZXh0SW5wdXRUeXBlLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpjcmVhdGVUZXh0
KToKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1
dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpNb250aElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9O
dW1iZXJJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6Ok51bWJlcklucHV0VHlwZSk6CisgICAg
ICAgICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9QYXNzd29y
ZElucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFzc3dvcmRJbnB1dFR5cGU6OlBhc3N3
b3JkSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1JhZGlvSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKiBodG1sL1JhZGlvSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lucHV0
VHlwZTo6UmFkaW9JbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1Jlc2V0
SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1Jlc2V0SW5wdXRUeXBlLmg6CisgICAgICAg
IChXZWJDb3JlOjpSZXNldElucHV0VHlwZTo6UmVzZXRJbnB1dFR5cGUpOgorICAgICAgICAqIGh0
bWwvU2VhcmNoSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaElucHV0VHlw
ZTo6U2VhcmNoSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1NlYXJjaElucHV0VHlwZS5oOgor
ICAgICAgICAqIGh0bWwvU3VibWl0SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1N1Ym1p
dElucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6U3VibWl0SW5wdXRUeXBlOjpTdWJtaXRJ
bnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKiBodG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGVsZXBo
b25lSW5wdXRUeXBlOjpUZWxlcGhvbmVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvVGV4dElu
cHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9UZXh0SW5wdXRUeXBlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0SW5wdXRUeXBlOjpUZXh0SW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1Rp
bWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5oOgorICAgICAg
ICAqIGh0bWwvVVJMSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1VSTElucHV0VHlwZS5o
OgorICAgICAgICAoV2ViQ29yZTo6VVJMSW5wdXRUeXBlOjpVUkxJbnB1dFR5cGUpOgorICAgICAg
ICAqIGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9XZWVrSW5wdXRUeXBl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBlOjpXZWVrSW5wdXRUeXBlKToKKwog
MjAxMy0xMC0yNyAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IDQgYXNzZXJ0aW5nIFNWRyB0ZXN0cyBhZnRlciByMTU4MDk3LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9CdXR0b25JbnB1dFR5cGUuY3BwCmluZGV4IDljZTI4MGM4NTI0YjlhYmNhZDljNWQzM2IzY2Ey
NzI5ZmExM2ZkNWIuLmNiNDUyZTY0M2Y1MWU1YjM2Njk3Y2ZlMTExMmMyMWNiMDNmYjY2M2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5jcHAKQEAgLTMyLDE1ICszMiw5IEBA
CiAjaW5jbHVkZSAiQnV0dG9uSW5wdXRUeXBlLmgiCiAKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1l
cy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotT3duUHRyPElucHV0VHlwZT4gQnV0dG9uSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxl
bWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEJ1dHRvbklucHV0VHlw
ZShlbGVtZW50KSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgQnV0dG9uSW5wdXRUeXBlOjpm
b3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6YnV0
dG9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuaAppbmRleCBiNGU5NDgwNTk2
ZmQzMDkzNThmOTJmOTNkODc5ZmFiMTEzNTczNWFhLi5iMTgwZGM2ZDJlMGQ2NzM5OTJmOGNmMmI1
YjE4ZTY3NWYyMTg1MmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKQEAg
LTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQnV0dG9uSW5wdXRU
eXBlIDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBP
d25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0
IEJ1dHRvbklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25J
bnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgQnV0dG9uSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KSB7
IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmFsaWRhdGlvbigpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1RleHRCdXR0b24oKSBjb25zdCBPVkVSUklE
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAKaW5kZXggMGVjNGQx
ZmIyMzQ5NGExNDg2MGVlMjUzMzA1ODk4OThmYzkzZmNlMy4uNjljZjA1YmNhZGQxYmVjNjIwZTY0
MzllNWU3YzMwNzQ4Y2E5ZjlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVj
a2JveElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0
VHlwZS5jcHAKQEAgLTM2LDE1ICszNiw5IEBACiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIK
ICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5o
IgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
T3duUHRyPElucHV0VHlwZT4gQ2hlY2tib3hJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2hlY2tib3hJbnB1dFR5
cGUoZWxlbWVudCkpOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIENoZWNrYm94SW5wdXRUeXBl
Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6
Y2hlY2tib3goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaAppbmRleCA0
NWIzZjgzMjUxYzQ5YmJlYjViNjAzN2U1MTE1NjY3M2E4NTJlZDk0Li45NzdmYzljM2RmMDJhNzJh
MzUyNzJkMDU2YzA1NzJkMjJiN2E5YjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NoZWNrYm94SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElu
cHV0VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IENoZWNrYm94SW5wdXRUeXBlIDogcHVibGljIEJhc2VDaGVja2FibGVJbnB1dFR5cGUgewogcHVi
bGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVu
dCYpOworICAgIGV4cGxpY2l0IENoZWNrYm94SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpIDogQmFzZUNoZWNrYWJsZUlucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToK
LSAgICBDaGVja2JveElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VD
aGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCBjMzI1ZmM4NWVmMTExMDJmYzYzMmVhZDNmOGFl
N2VmYjFjOWVhNmJhLi5kZTliYWVmZmMxODNiNzk0NmZjNmRkMGQzZjllMDY0NmNmNjk0YTc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtNDUsNyArNDUsNiBAQAog
I2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY2
LDExICs2NSw2IEBAIHN0YXRpYyBib29sIGlzVmFsaWRDb2xvclN0cmluZyhjb25zdCBTdHJpbmcm
IHZhbHVlKQogICAgIHJldHVybiBjb2xvci5pc1ZhbGlkKCkgJiYgIWNvbG9yLmhhc0FscGhhKCk7
CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IENvbG9ySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbG9ySW5wdXRU
eXBlKGVsZW1lbnQpKTsKLX0KLQogQ29sb3JJbnB1dFR5cGU6On5Db2xvcklucHV0VHlwZSgpCiB7
CiAgICAgZW5kQ29sb3JDaG9vc2VyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NvbG9ySW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgK
aW5kZXggMDBhM2Y1YjI1MTU5N2RlZDM2OTQyYzY5NmYyOTQ4ODY5MzhkNGVlNy4uNzAwODVmZjMw
Nzg2NjM3YTM0YWNjY2Q2MjY1YWU3NjdlYmE1MWQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IENvbG9ySW5wdXRUeXBlIDogcHVibGljIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLCBw
dWJsaWMgQ29sb3JDaG9vc2VyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElu
cHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBDb2xvcklu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDbGlja2FibGVXaXRoS2V5
SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgfkNvbG9ySW5wdXRUeXBlKCk7CiAK
ICAgICAvLyBDb2xvckNob29zZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCkBAIC01MSw3ICs1MSw2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFZlY3RvcjxDb2xvcj4gc3VnZ2VzdGlvbnMoKSBjb25z
dCBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBDb2xvcklucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVs
ZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgaXNDb2xvckNvbnRyb2woKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAppbmRleCAxMmZhMDQwOTM5NjE4MTVkOWFiZTk1
OTZlZDk1MTJmMmU0MjA5M2QxLi42OTU3NTMxODIwMzE0YzgwNWIzMDcyNjhiYjUwOGEzNTg5MTNh
NjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKQEAgLTM2LDcgKzM2LDYg
QEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUxLDExICs1MCw2IEBAIGlubGluZSBEYXRl
SW5wdXRUeXBlOjpEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7CiB9
CiAKLU93blB0cjxJbnB1dFR5cGU+IERhdGVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0ZUlucHV0VHlwZShl
bGVtZW50KSk7Ci19Ci0KIHZvaWQgRGF0ZUlucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNl
cnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZURhdGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAppbmRleCA0YTBjMjNkMTllMTFmZTNkZWZlZDgwZDhl
MDdkN2JjZjBlMzE5ZjJjLi40NzAzMWUyMjE4ZmZiOWFlNDNkM2E4ZGQyMDYzYWI4MzJhYWJkNTA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaApAQCAtMzgsMTAgKzM4LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRlSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRy
PElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBEYXRl
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBE
YXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9s
VHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUg
ZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlu
cHV0VHlwZS5jcHAKaW5kZXggMTFmN2U5ZWFiODFkYTlmY2FiOTdiOWRkNTUyOWQ4Y2Y5NTg5OWVi
YS4uZTZlNGI3MDk3ZDY3MGQ3NzQ1ODQwOWU2Yjg2NWU5MmI4ZmYzMzFjMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUg
PHd0Zi9DdXJyZW50VGltZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsMTEgKzQ2LDYgQEAgc3RhdGljIGNvbnN0IGludCBkYXRl
VGltZURlZmF1bHRTdGVwID0gNjA7CiBzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lRGVmYXVsdFN0
ZXBCYXNlID0gMDsKIHN0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVTdGVwU2NhbGVGYWN0b3IgPSAx
MDAwOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBEYXRlVGltZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRlVGlt
ZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgRGF0ZVRpbWVJbnB1dFR5cGU6OmF0dGFj
aCgpCiB7CiAgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1
dFR5cGVEYXRlVGltZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1l
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmgKaW5k
ZXggMjBmNGRkZjkxZDBiN2JlZjVhOTExMDcwMGRkMmE2MmNhNzA0YzkyMi4uMWIyOGFhNzdkY2Zk
YzgxODMwMTg1MmRhNjQ2OGYzNTYyYTc5NGE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVJbnB1dFR5cGUuaApAQCAtMzksMTAgKzM5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBEYXRlVGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgRGF0ZVRpbWVJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0ZVRpbWVJbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRGF0ZVRpbWVJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0ZVRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRleCA1NWQ0ZDA5
MzA2MzI5ZDg3ZDUyN2Q3MjYxODBhNjJiMzg3NWU5Mjc5Li45N2QwODNkZmQyNzk0M2NiY2FlYWE3
ZmMyMzM5MDE1OWVlODBiZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVM
b2NhbElucHV0VHlwZS5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFt
ZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQ2LDExICs0NSw2IEBAIHN0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVMb2NhbERlZmF1
bHRTdGVwID0gNjA7CiBzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lTG9jYWxEZWZhdWx0U3RlcEJh
c2UgPSAwOwogc3RhdGljIGNvbnN0IGludCBkYXRlVGltZUxvY2FsU3RlcFNjYWxlRmFjdG9yID0g
MTAwMDsKIAotT3duUHRyPElucHV0VHlwZT4gRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Y3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBE
YXRlVGltZUxvY2FsSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1
cmVPYnNlcnZlcjo6SW5wdXRUeXBlRGF0ZVRpbWVMb2NhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCmluZGV4IDY5ZjJiYmE2MzkyN2E4OTM0MTVhZDZj
MGRjMzE0MmQzNDY0ZTMxZGQuLmJjM2U5ZDJkNTI4MDMzNjk0ODkxNTBhZmViZWYyN2JiOWU5ZWNi
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCkBA
IC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVUaW1lTG9j
YWxJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUg
ewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYpOworICAgIGV4cGxpY2l0IERhdGVUaW1lTG9jYWxJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0ZVRpbWVMb2NhbElucHV0VHlwZShlbGVtZW50KSB7
IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZURhdGVUaW1lTG9jYWxJbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCmluZGV4IDI3ZGU4ZDQ1ZjZkOGYw
MGFiNjg1NmViNmQ1Y2EzNGZjNjAxZWVjZDguLmZhNjc5ZGMzMGJjZmU3NzRhYzQwNzc1N2UzZGMz
ZWMzODllYjMzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCkBAIC0y
OSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlICJMb2Nh
bGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIKLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTMsMTEgKzUyLDYgQEAgc3RhdGljIGJvb2wgaXNW
YWxpZEVtYWlsQWRkcmVzcyhjb25zdCBTdHJpbmcmIGFkZHJlc3MpCiAgICAgcmV0dXJuICFtYXRj
aE9mZnNldCAmJiBtYXRjaExlbmd0aCA9PSBhZGRyZXNzTGVuZ3RoOwogfQogCi1Pd25QdHI8SW5w
dXRUeXBlPiBFbWFpbElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
Ci17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFbWFpbElucHV0VHlwZShlbGVtZW50KSk7Ci19
Ci0KIHZvaWQgRW1haWxJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRU
eXBlOjphdHRhY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaAppbmRleCBlMGQy
MTMxODZkOTliOGUwNWM0MWViZWRiMDgyMjA3ZjBiYjRkYmY5Li5iN2FlZWM1NDUwMDg4NDlhNTY0
OGIxNzY0NDdjMGEwNDg5YjkxY2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Vt
YWlsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5o
CkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVtYWlsSW5w
dXRUeXBlIDogcHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
T3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNp
dCBFbWFpbElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5w
dXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEVtYWlsSW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJS
SURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggY2IwZWVjMmM3ZmM0
OGI2YmIxZGQ4MDBkMThjNThiOTg5MGVhOWZkNS4uZDUwZGU2NDFlMDJkODRiY2M3ZDYxYjdkNDFm
MGZmMTQyNmJmZWM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0z
OSw3ICszOSw2IEBACiAjaW5jbHVkZSAiUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaCIKICNpbmNs
dWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC04NSwxMSArODQsNiBAQCBj
b25zdCBBdG9taWNTdHJpbmcmIFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKICAgICByZXR1cm4gcHNldWRvSWQ7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IEZpbGVJ
bnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgRmlsZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIEZpbGVJbnB1dFR5
cGU6OkZpbGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKICAgICA6IEJhc2VD
bGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVsZW1lbnQpCiAgICAgLCBtX2ZpbGVMaXN0KEZpbGVM
aXN0OjpjcmVhdGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggZTU1YmVl
Y2ZmNDE4NzUzNWQyYTg5OTViZDYzOGI4MTE0Y2ZmYjdmMi4uOWNmYWNjZjEyOTVhOTNhYzBkYTMz
MDZjMGQyZGM0YjY3ODVlZjFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAg
LTQ0LDE0ICs0NCwxMiBAQCBjbGFzcyBGaWxlTGlzdDsKIAogY2xhc3MgRmlsZUlucHV0VHlwZSA6
IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2hvb3Nl
ckNsaWVudCwgcHJpdmF0ZSBGaWxlSWNvbkxvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhw
bGljaXQgRmlsZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB+Rmls
ZUlucHV0VHlwZSgpOwogCiAgICAgc3RhdGljIFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBm
aWxlc0Zyb21Gb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKTsKIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBGaWxlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKLQog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3Rh
dGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9s
U3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggZjNjYjUwZGI4MTFlMDZmNDY2M2U4Njg1Mjhl
OGMwYjEzZWRhNjY1My4uYmFkNjdkNDM2NzIyMThhODJiMGM2MGQwMTljMzc4ZDc1NGU3NjljNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC00NTQsNyArNDU0
LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkK
IAogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVUeXBlKCkKIHsKLSAgICBPd25QdHI8SW5w
dXRUeXBlPiBuZXdUeXBlID0gSW5wdXRUeXBlOjpjcmVhdGUoKnRoaXMsIGZhc3RHZXRBdHRyaWJ1
dGUodHlwZUF0dHIpKTsKKyAgICBhdXRvIG5ld1R5cGUgPSBJbnB1dFR5cGU6OmNyZWF0ZSgqdGhp
cywgZmFzdEdldEF0dHJpYnV0ZSh0eXBlQXR0cikpOwogICAgIGJvb2wgaGFkVHlwZSA9IG1faGFz
VHlwZTsKICAgICBtX2hhc1R5cGUgPSB0cnVlOwogICAgIGlmIChtX2lucHV0VHlwZS0+Zm9ybUNv
bnRyb2xUeXBlKCkgPT0gbmV3VHlwZS0+Zm9ybUNvbnRyb2xUeXBlKCkpCkBAIC00NzksNyArNDc5
LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVUeXBlKCkKICAgICBpZiAod2FzQXR0
YWNoZWQpCiAgICAgICAgIFN0eWxlOjpkZXRhY2hSZW5kZXJUcmVlKCp0aGlzKTsKIAotICAgIG1f
aW5wdXRUeXBlID0gbmV3VHlwZS5yZWxlYXNlKCk7CisgICAgbV9pbnB1dFR5cGUgPSBzdGQ6Om1v
dmUobmV3VHlwZSk7CiAgICAgbV9pbnB1dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKIAog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCmluZGV4IDNiYjg2MDU0NzQwMTQwNjBiNTBiZTM2MGYwZWJhYWYzYTY3OTA1OWEuLjA0MzM1
NzhmMmNjYTllNWExMjhjYzQ0OGNlMDkwMzVkNzljOTk2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCkBAIC00NDIsNyArNDQyLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQogICAgIGJvb2wgbV9oYXNUb3VjaEV2ZW50SGFuZGxlciA6IDE7CiAj
ZW5kaWYKLSAgICBPd25QdHI8SW5wdXRUeXBlPiBtX2lucHV0VHlwZTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8SW5wdXRUeXBlPiBtX2lucHV0VHlwZTsKICAgICAvLyBUaGUgSW1hZ2VMb2FkZXIgbXVz
dCBiZSBvd25lZCBieSB0aGlzIGVsZW1lbnQgYmVjYXVzZSB0aGUgbG9hZGVyIGNvZGUgYXNzdW1l
cwogICAgIC8vIHRoYXQgaXQgbGl2ZXMgYXMgbG9uZyBhcyBpdHMgb3duaW5nIGVsZW1lbnQgbGl2
ZXMuIElmIHdlIG1vdmUgdGhlIGxvYWRlciBpbnRvCiAgICAgLy8gdGhlIEltYWdlSW5wdXQgb2Jq
ZWN0IHdlIG1heSBkZWxldGUgdGhlIGxvYWRlciB3aGlsZSB0aGlzIGVsZW1lbnQgbGl2ZXMgb24u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKaW5kZXggNzJjMDY4YWJmYmMx
M2E0Yjc3ZDg1YzA3ZmFkNGRhYTAxMGFhN2QwNy4uNzFmN2MxY2Q3NTljYWUwNGRiYWEyZDBiZmVl
ODQzMGI5MzY0MDI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcApA
QCAtMzcsMTcgKzM3LDExIEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBIaWRkZW5JbnB1dFR5cGU6OmNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcg
SGlkZGVuSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBIaWRk
ZW5JbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0
VHlwZU5hbWVzOjpoaWRkZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlk
ZGVuSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCmlu
ZGV4IGQ3NjIzYmM1MmYwNTMxMzFlMGNlMzRhN2E5YjNhOWFlNzM0ZTRkODkuLmY3MDg3YzA3ZDJj
YzRhYWM5ODkxMzljYzI5MzQ2MTFiNWJhYmNhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5J
bnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBIaWRkZW5JbnB1dFR5cGUgOiBwdWJsaWMgSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBs
aWNpdCBIaWRkZW5JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBJbnB1dFR5
cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgSGlkZGVuSW5wdXRUeXBl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3RhdGUo
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3Rh
dGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lt
YWdlSW5wdXRUeXBlLmNwcAppbmRleCAwMzgxMmIyZjM4NTQzNmUzYzg2N2QyZThlMzc3OGVhNDI2
ZjU5OTFhLi5iYjBkZjg5OWQ3NjFiNTIwOWNlOTliNjVjMTQ0MDA3N2QzM2IxNTc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcApAQCAtMzMsMjIgKzMzLDE2IEBACiAjaW5j
bHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiUmVuZGVySW1hZ2UuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLWlubGluZSBJbWFn
ZUlucHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKK0lt
YWdlSW5wdXRUeXBlOjpJbWFnZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQog
ICAgIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KQogewogfQogCi1Pd25QdHI8SW5wdXRU
eXBlPiBJbWFnZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbWFnZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0K
IGNvbnN0IEF0b21pY1N0cmluZyYgSW1hZ2VJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjppbWFnZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbWFnZUlucHV0VHlwZS5oCmluZGV4IGIwZGM5N2E0MzI5M2VjMjkyYTYyNWMwM2NlMzI0ZDFi
MWM0ODk4ODQuLmIxMTE2MjEwYzczYjIxZjlkNDU5NzBhMzZlNjVjNzZjYWFjNGNhNjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKQEAgLTQwLDEwICs0MCw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgSW1hZ2VJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUJ1dHRvbklu
cHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShI
VE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgSW1hZ2VJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEltYWdlSW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzRm9ybURhdGFBcHBl
bmRhYmxlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRh
KEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwCmluZGV4IDg2MGI3MTcyOTY4MDhlOGM0YzFiNWE2MGM1Mzg0NDMyZGJmYTNlNWMuLjRk
NDY1OGZiNzFiNjA2MjY4Zjg1MWFjMWI3ZWU0NWRiNTdiOGNhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAKQEAgLTgzLDc0ICs4Myw5MCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXR5cGVkZWYgT3duUHRyPElucHV0VHlwZT4gKCpJ
bnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24pKEhUTUxJbnB1dEVsZW1lbnQmKTsKK3R5cGVkZWYgY29u
c3QgQXRvbWljU3RyaW5nJiAoKklucHV0VHlwZU5hbWVGdW5jdGlvbikoKTsKK3R5cGVkZWYgc3Rk
Ojp1bmlxdWVfcHRyPElucHV0VHlwZT4gKCpJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24pKEhUTUxJ
bnB1dEVsZW1lbnQmKTsKIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIElucHV0VHlwZUZh
Y3RvcnlGdW5jdGlvbiwgQ2FzZUZvbGRpbmdIYXNoPiBJbnB1dFR5cGVGYWN0b3J5TWFwOwogCi1z
dGF0aWMgT3duUHRyPElucHV0VHlwZUZhY3RvcnlNYXA+IGNyZWF0ZUlucHV0VHlwZUZhY3RvcnlN
YXAoKQordGVtcGxhdGU8Y2xhc3MgVD4KK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBl
PiBjcmVhdGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBPd25Q
dHI8SW5wdXRUeXBlRmFjdG9yeU1hcD4gbWFwID0gYWRvcHRQdHIobmV3IElucHV0VHlwZUZhY3Rv
cnlNYXApOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFQ+KGVsZW1lbnQpOworfQogCi0g
ICAgLy8gRklYTUU6IFJlbW92ZSB1bm5lY2Vzc2FyeSAnJidzIGZyb20gdGhlIGZvbGxvd2luZyBt
YXAuYWRkIG9wZXJhdGlvbnMKLSAgICAvLyBvbmNlIHdlIHN3aXRjaCB0byBhIG5vbi1icm9rZW4g
VmlzdWFsIFN0dWRpbyBjb21waWxlci4gIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjEyMzUKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6YnV0dG9uKCksICZC
dXR0b25JbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmNo
ZWNrYm94KCksICZDaGVja2JveElucHV0VHlwZTo6Y3JlYXRlKTsKK3N0YXRpYyB2b2lkIHBvcHVs
YXRlSW5wdXRUeXBlRmFjdG9yeU1hcChJbnB1dFR5cGVGYWN0b3J5TWFwJiBtYXApCit7CisgICAg
c3RhdGljIGNvbnN0IHN0cnVjdCBJbnB1dFR5cGVzIHsKKyAgICAgICAgYm9vbCBpc0VuYWJsZWQ7
CisgICAgICAgIElucHV0VHlwZU5hbWVGdW5jdGlvbiBuYW1lRnVuY3Rpb247CisgICAgICAgIElu
cHV0VHlwZUZhY3RvcnlGdW5jdGlvbiBmYWN0b3J5RnVuY3Rpb247CisgICAgfSBpbnB1dFR5cGVz
W10gPSB7CisgICAgICAgIHsgdHJ1ZSwgJklucHV0VHlwZU5hbWVzOjpidXR0b24sICZjcmVhdGVJ
bnB1dFR5cGU8QnV0dG9uSW5wdXRUeXBlPiB9LAorICAgICAgICB7IHRydWUsICZJbnB1dFR5cGVO
YW1lczo6Y2hlY2tib3gsICZjcmVhdGVJbnB1dFR5cGU8Q2hlY2tib3hJbnB1dFR5cGU+IH0sCiAj
aWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6
OmNvbG9yKCksICZDb2xvcklucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyB0cnVlLCAmSW5w
dXRUeXBlTmFtZXM6OmNvbG9yLCAmY3JlYXRlSW5wdXRUeXBlPENvbG9ySW5wdXRUeXBlPiB9LAog
I2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfREFURSkKLSAgICBpZiAoUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5cGVEYXRlRW5hYmxlZCgpKQotICAg
ICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6ZGF0ZSgpLCAmRGF0ZUlucHV0VHlwZTo6Y3Jl
YXRlKTsKKyAgICAgICAgeyBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmlucHV0VHlwZURhdGVFbmFibGVkKCksCisgICAgICAgICAgICAmSW5wdXRUeXBlTmFtZXM6OmRh
dGUsICZjcmVhdGVJbnB1dFR5cGU8RGF0ZUlucHV0VHlwZT4gfSwKICNlbmRpZgogI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpCi0gICAgaWYgKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5wdXRUeXBlRGF0ZVRpbWVFbmFibGVkKCkpCi0g
ICAgICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpkYXRldGltZSgpLCAmRGF0ZVRpbWVJbnB1
dFR5cGU6OmNyZWF0ZSk7CisgICAgICAgIHsgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5pbnB1dFR5cGVEYXRlVGltZUVuYWJsZWQoKSwKKyAgICAgICAgICAgICZJbnB1
dFR5cGVOYW1lczo6ZGF0ZXRpbWUsICZjcmVhdGVJbnB1dFR5cGU8RGF0ZVRpbWVJbnB1dFR5cGU+
IH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKQotICAgIGlm
IChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZURhdGVU
aW1lTG9jYWxFbmFibGVkKCkpCi0gICAgICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpkYXRl
dGltZWxvY2FsKCksICZEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpjcmVhdGUpOworICAgICAgICB7
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5wdXRUeXBlRGF0ZVRp
bWVMb2NhbEVuYWJsZWQoKSwKKyAgICAgICAgICAgICZJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWVs
b2NhbCwgJmNyZWF0ZUlucHV0VHlwZTxEYXRlVGltZUxvY2FsSW5wdXRUeXBlPiB9LAogI2VuZGlm
Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmVtYWlsKCksICZFbWFpbElucHV0VHlwZTo6
Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6ZmlsZSgpLCAmRmlsZUlucHV0
VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6aGlkZGVuKCksICZI
aWRkZW5JbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6Omlt
YWdlKCksICZJbWFnZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyB0cnVlLCAmSW5wdXRU
eXBlTmFtZXM6OmVtYWlsLCAmY3JlYXRlSW5wdXRUeXBlPEVtYWlsSW5wdXRUeXBlPiB9LAorICAg
ICAgICB7IHRydWUsICZJbnB1dFR5cGVOYW1lczo6ZmlsZSwgJmNyZWF0ZUlucHV0VHlwZTxGaWxl
SW5wdXRUeXBlPiB9LAorICAgICAgICB7IHRydWUsICZJbnB1dFR5cGVOYW1lczo6aGlkZGVuLCAm
Y3JlYXRlSW5wdXRUeXBlPEhpZGRlbklucHV0VHlwZT4gfSwKKyAgICAgICAgeyB0cnVlLCAmSW5w
dXRUeXBlTmFtZXM6OmltYWdlLCAmY3JlYXRlSW5wdXRUeXBlPEltYWdlSW5wdXRUeXBlPiB9LAog
I2lmIEVOQUJMRShJTlBVVF9UWVBFX01PTlRIKQotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZU1vbnRoRW5hYmxlZCgpKQotICAgICAgICBt
YXAtPmFkZChJbnB1dFR5cGVOYW1lczo6bW9udGgoKSwgJk1vbnRoSW5wdXRUeXBlOjpjcmVhdGUp
OworICAgICAgICB7IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5w
dXRUeXBlTW9udGhFbmFibGVkKCksCisgICAgICAgICAgICAmSW5wdXRUeXBlTmFtZXM6Om1vbnRo
LCAmY3JlYXRlSW5wdXRUeXBlPE1vbnRoSW5wdXRUeXBlPiB9LAogI2VuZGlmCi0gICAgbWFwLT5h
ZGQoSW5wdXRUeXBlTmFtZXM6Om51bWJlcigpLCAmTnVtYmVySW5wdXRUeXBlOjpjcmVhdGUpOwot
ICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpwYXNzd29yZCgpLCAmUGFzc3dvcmRJbnB1dFR5
cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OnJhZGlvKCksICZSYWRp
b0lucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6cmFuZ2Uo
KSwgJlJhbmdlSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVz
OjpyZXNldCgpLCAmUmVzZXRJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRU
eXBlTmFtZXM6OnNlYXJjaCgpLCAmU2VhcmNoSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+
YWRkKElucHV0VHlwZU5hbWVzOjpzdWJtaXQoKSwgJlN1Ym1pdElucHV0VHlwZTo6Y3JlYXRlKTsK
LSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6dGVsZXBob25lKCksICZUZWxlcGhvbmVJbnB1
dFR5cGU6OmNyZWF0ZSk7CisgICAgICAgIHsgdHJ1ZSwgJklucHV0VHlwZU5hbWVzOjpudW1iZXIs
ICZjcmVhdGVJbnB1dFR5cGU8TnVtYmVySW5wdXRUeXBlPiB9LAorICAgICAgICB7IHRydWUsICZJ
bnB1dFR5cGVOYW1lczo6cGFzc3dvcmQsICZjcmVhdGVJbnB1dFR5cGU8UGFzc3dvcmRJbnB1dFR5
cGU+IH0sCisgICAgICAgIHsgdHJ1ZSwgJklucHV0VHlwZU5hbWVzOjpyYWRpbywgJmNyZWF0ZUlu
cHV0VHlwZTxSYWRpb0lucHV0VHlwZT4gfSwKKyAgICAgICAgeyB0cnVlLCAmSW5wdXRUeXBlTmFt
ZXM6OnJhbmdlLCAmY3JlYXRlSW5wdXRUeXBlPFJhbmdlSW5wdXRUeXBlPiB9LAorICAgICAgICB7
IHRydWUsICZJbnB1dFR5cGVOYW1lczo6cmVzZXQsICZjcmVhdGVJbnB1dFR5cGU8UmVzZXRJbnB1
dFR5cGU+IH0sCisgICAgICAgIHsgdHJ1ZSwgJklucHV0VHlwZU5hbWVzOjpzZWFyY2gsICZjcmVh
dGVJbnB1dFR5cGU8U2VhcmNoSW5wdXRUeXBlPiB9LAorICAgICAgICB7IHRydWUsICZJbnB1dFR5
cGVOYW1lczo6c3VibWl0LCAmY3JlYXRlSW5wdXRUeXBlPFN1Ym1pdElucHV0VHlwZT4gfSwKKyAg
ICAgICAgeyB0cnVlLCAmSW5wdXRUeXBlTmFtZXM6OnRlbGVwaG9uZSwgJmNyZWF0ZUlucHV0VHlw
ZTxUZWxlcGhvbmVJbnB1dFR5cGU+IH0sCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKLSAg
ICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5cGVU
aW1lRW5hYmxlZCgpKQotICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6dGltZSgpLCAm
VGltZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZVRpbWVFbmFibGVkKCksCisgICAgICAgICAgICAm
SW5wdXRUeXBlTmFtZXM6OnRpbWUsICZjcmVhdGVJbnB1dFR5cGU8VGltZUlucHV0VHlwZT4gfSwK
ICNlbmRpZgotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjp1cmwoKSwgJlVSTElucHV0VHlw
ZTo6Y3JlYXRlKTsKKyAgICAgICAgeyB0cnVlLCAmSW5wdXRUeXBlTmFtZXM6OnVybCwgJmNyZWF0
ZUlucHV0VHlwZTxVUkxJbnB1dFR5cGU+IH0sCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfV0VFSykK
LSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5
cGVXZWVrRW5hYmxlZCgpKQotICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6d2Vlaygp
LCAmV2Vla0lucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZVdlZWtFbmFibGVkKCksCisgICAgICAgICAg
ICAmSW5wdXRUeXBlTmFtZXM6OndlZWssICZjcmVhdGVJbnB1dFR5cGU8V2Vla0lucHV0VHlwZT4g
fSwKICNlbmRpZgotICAgIC8vIE5vIG5lZWQgdG8gcmVnaXN0ZXIgInRleHQiIGJlY2F1c2UgaXQg
aXMgdGhlIGRlZmF1bHQgdHlwZS4KKyAgICAgICAgLy8gTm8gbmVlZCB0byByZWdpc3RlciAidGV4
dCIgYmVjYXVzZSBpdCBpcyB0aGUgZGVmYXVsdCB0eXBlLgorICAgIH07CiAKLSAgICByZXR1cm4g
bWFwOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGlucHV0
VHlwZXMpOyArK2kpIHsKKyAgICAgICAgaWYgKGlucHV0VHlwZXNbaV0uaXNFbmFibGVkKQorICAg
ICAgICAgICAgbWFwLmFkZChpbnB1dFR5cGVzW2ldLm5hbWVGdW5jdGlvbigpLCBpbnB1dFR5cGVz
W2ldLmZhY3RvcnlGdW5jdGlvbik7CisgICAgfQogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBJbnB1
dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGVOYW1lKQorc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVh
dGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlTmFt
ZSkKIHsKLSAgICBzdGF0aWMgY29uc3QgSW5wdXRUeXBlRmFjdG9yeU1hcCogZmFjdG9yeU1hcCA9
IGNyZWF0ZUlucHV0VHlwZUZhY3RvcnlNYXAoKS5sZWFrUHRyKCk7Ci0gICAgT3duUHRyPElucHV0
VHlwZT4gKCpmYWN0b3J5KShIVE1MSW5wdXRFbGVtZW50JikgPSB0eXBlTmFtZS5pc0VtcHR5KCkg
PyAwIDogZmFjdG9yeU1hcC0+Z2V0KHR5cGVOYW1lKTsKLSAgICBpZiAoIWZhY3RvcnkpCi0gICAg
ICAgIGZhY3RvcnkgPSBUZXh0SW5wdXRUeXBlOjpjcmVhdGU7Ci0gICAgcmV0dXJuIGZhY3Rvcnko
ZWxlbWVudCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPElucHV0VHlwZUZhY3RvcnlNYXA+
IGZhY3RvcnlNYXA7CisgICAgaWYgKGZhY3RvcnlNYXAuZ2V0KCkuaXNFbXB0eSgpKQorICAgICAg
ICBwb3B1bGF0ZUlucHV0VHlwZUZhY3RvcnlNYXAoZmFjdG9yeU1hcCk7CisKKyAgICBpZiAoIXR5
cGVOYW1lLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoYXV0byBmYWN0b3J5ID0gZmFjdG9yeU1h
cC5nZXQoKS5nZXQodHlwZU5hbWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhY3RvcnkoZWxlbWVu
dCk7CisgICAgfQorICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFRleHRJbnB1dFR5cGU+KGVs
ZW1lbnQpOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBJbnB1dFR5cGU6OmNyZWF0ZVRleHQoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IElucHV0
VHlwZTo6Y3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVy
biBUZXh0SW5wdXRUeXBlOjpjcmVhdGUoZWxlbWVudCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8VGV4dElucHV0VHlwZT4oZWxlbWVudCk7CiB9CiAKIElucHV0VHlwZTo6fklucHV0VHlw
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCA1NDhkNDU2YmY3MzBhNDA0N2VhZWIwMmEx
ZDM5ZDEzZTIzMjkyODgyLi4wNzc5YTZkOWQwYmYxYTVjNDk1MDE1ZWNlNmI1NjQ0MTMxMTI3ZjRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTc0LDggKzc0LDggQEAgY2xhc3MgSW5wdXRU
eXBlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIAogcHVibGljOgotICAgIHN0YXRp
YyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYsIGNvbnN0IEF0b21p
Y1N0cmluZyYpOwotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGVUZXh0KEhUTUxJ
bnB1dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQmLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50Jik7
CiAgICAgdmlydHVhbCB+SW5wdXRUeXBlKCk7CiAKICAgICBzdGF0aWMgYm9vbCB0aGVtZVN1cHBv
cnRzRGF0YUxpc3RVSShJbnB1dFR5cGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTW9udGhJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlw
ZS5jcHAKaW5kZXggNDhlYWQxZmU4ZTI0MTRiNjU1MWY0N2IzM2Y1OWNiNzRjYmI1MTVkMS4uNjgw
Y2NlZTg0NGI3ZjU3N2NhZTg2ODlmNjU0YTExMDJkYzAzZjMyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9Nb250aElucHV0VHlwZS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0
aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNDksMTEgKzQ4LDYgQEAgc3RhdGljIGNvbnN0IGludCBtb250aERlZmF1bHRT
dGVwID0gMTsKIHN0YXRpYyBjb25zdCBpbnQgbW9udGhEZWZhdWx0U3RlcEJhc2UgPSAwOwogc3Rh
dGljIGNvbnN0IGludCBtb250aFN0ZXBTY2FsZUZhY3RvciA9IDE7CiAKLU93blB0cjxJbnB1dFR5
cGU+IE1vbnRoSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1vbnRoSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQog
dm9pZCBNb250aElucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVhdHVyZUlmVmlz
aWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZU1vbnRoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9u
dGhJbnB1dFR5cGUuaAppbmRleCA5YjU0ZTBiNjA0YTFkMjNmMzhlNjMwYWNlMzA2MTMyZDFiY2Qz
ZWQ1Li4xYzdmZjgwOTQzYjZkY2FkMzZiMjdlNTNkMDgzZDczZmRjOTY5YzNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb250aElucHV0VHlwZS5oCkBAIC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIE1vbnRoSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlw
ZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBNb250aElucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VNb250aElucHV0VHlwZShlbGVtZW50
KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNb250aElucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KSA6IEJhc2VNb250aElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0
ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAppbmRleCAyZjMwMmYyY2EzYzIyNzM1NDZlYjkyMTFm
NjgxZTg4Y2Y5Y2UzZWE0Li41ODg4MjA4MDlhMDAyMjllYmI2Nzk5YzdmNTY3ZTdjYTNkZjA4Njlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBAIC00NCw3ICs0NCw2
IEBACiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTkzLDExICs5Miw2IEBAIHN0YXRpYyBSZWFsTnVtYmVy
UmVuZGVyU2l6ZSBjYWxjdWxhdGVSZW5kZXJTaXplKGNvbnN0IERlY2ltYWwmIHZhbHVlKQogICAg
IHJldHVybiBSZWFsTnVtYmVyUmVuZGVyU2l6ZShzaXplT2ZTaWduICsgc2l6ZU9mWmVybyAsIG51
bWJlck9mWmVyb0FmdGVyRGVjaW1hbFBvaW50ICsgc2l6ZU9mRGlnaXRzKTsKIH0KIAotT3duUHRy
PElucHV0VHlwZT4gTnVtYmVySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE51bWJlcklucHV0VHlwZShlbGVtZW50
KSk7Ci19Ci0KIHZvaWQgTnVtYmVySW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIFRleHRGaWVs
ZElucHV0VHlwZTo6YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051
bWJlcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaApp
bmRleCBmOTlhNjZmNzdiNDlhNzEzNWRiYWFiOGI3MmU5MTllN2E3ZTRkZGY5Li44ZDhhNWE0OWQ5
ZDk0MmE3YWVkMTE3ZTgwNDBjMWViOWM0Yjg5OWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL051bWJlcklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVy
SW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgTnVtYmVySW5wdXRUeXBlIDogcHVibGljIFRleHRGaWVsZElucHV0VHlwZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7
CisgICAgZXhwbGljaXQgTnVtYmVySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
IDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIE51bWJl
cklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IFRleHRGaWVsZElucHV0VHlw
ZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVl
Q2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCmluZGV4IGZiNTdhM2E3ZjYyN2ZhNzUzZGRmYTA2
OWUxYmM5YmNmODFlNTU0MTQuLjdmN2UwZjlmY2NhMzQ0MmM0YzRkZmM2MzQ1NzM2NDEwOTgyM2U0
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCkBAIC0zNiwx
NSArMzYsOSBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1
dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBl
PiBQYXNzd29yZElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXNzd29yZElucHV0VHlwZShlbGVtZW50KSk7Ci19
Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgUGFzc3dvcmRJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlw
ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpwYXNzd29yZCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oCmluZGV4IGVhZjE0OGVmZTZkYzcxY2Yx
Mjk1MTYxNzBlNjlmYzRkMzk4MTZjMzAuLjQzYTdiNDM2YzYxODY1Zjc2Njc3YTlkOTFjNTEzNzZh
ZmI3MjlkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKQEAgLTM3
LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGFzc3dvcmRJbnB1dFR5
cGUgOiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25Q
dHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFBh
c3N3b3JkSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1
dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgUGFzc3dvcmRJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0K
ICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRy
b2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBz
YXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
ZGlvSW5wdXRUeXBlLmNwcAppbmRleCAwYzIyNDE2YWY2NTllMDE1MjM1MGYyNjJiNjcyZjk0NjVm
MmU5NmUyLi4yMzlhOWNlNjBhY2ZkYzcyNjBmOWQ2MDg5ZmQ2MTM3NTQ1ZGFjZWQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcApAQCAtMzMsMTcgKzMzLDExIEBACiAjaW5j
bHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
U3BhdGlhbE5hdmlnYXRpb24uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLU93blB0cjxJ
bnB1dFR5cGU+IFJhZGlvSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVu
dCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFJhZGlvSW5wdXRUeXBlKGVsZW1lbnQpKTsK
LX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBSYWRpb0lucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBl
KCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OnJhZGlvKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhZGlvSW5wdXRUeXBlLmgKaW5kZXggMTQxYmM0ODc5YTg3ZGVmMGU2YWMzMmI2YzU5
YzQ2MzQ2OWZlODEzNS4uMzE3Y2IyODhiNGI0MjY2ZTM2ZDc0ZGMyM2FhN2ZhNjE3MjhkYmYwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSYWRpb0lucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4g
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBSYWRpb0lucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUmFkaW9JbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25z
dCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggMDIx
NDkyZjJhOWJlZDE2MzVkYjE1NTA5ZjgwYmMzZDM4YmNkYWM0Ni4uMWRhYjU0Y2Y2ZDc2NGY4ZWVi
MDc5ZTRiOTAwYmY1YjI4NWUwNjkyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9S
YW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlw
ZS5jcHAKQEAgLTQ5LDcgKzQ5LDYgQEAKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRl
IDxsaW1pdHM+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICNpbmNsdWRlICJUb3VjaC5o
IgpAQCAtNzcsMTEgKzc2LDYgQEAgc3RhdGljIERlY2ltYWwgZW5zdXJlTWF4aW11bShjb25zdCBE
ZWNpbWFsJiBwcm9wb3NlZFZhbHVlLCBjb25zdCBEZWNpbWFsJiBtaW5pbXUKICAgICByZXR1cm4g
cHJvcG9zZWRWYWx1ZSA+PSBtaW5pbXVtID8gcHJvcG9zZWRWYWx1ZSA6IHN0ZDo6bWF4KG1pbmlt
dW0sIGZhbGxiYWNrVmFsdWUpOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBSYW5nZUlucHV0VHlw
ZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBSYW5nZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIFJhbmdlSW5wdXRUeXBlOjpS
YW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogICAgIDogSW5wdXRUeXBl
KGVsZW1lbnQpCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
bmdlSW5wdXRUeXBlLmgKaW5kZXggYThiYTNmNDI1ZTU1ZmE4ODk0ZTFmNTQ5ODUyZTJlNTgyYjc4
ZGI1MC4uZDExMmYxYjE4Y2ZiZTA3ODljNWUzN2U4NWIxMmYzZjIwYjQ3ZDdjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtMzksMTAgKzM5LDkgQEAgY2xhc3MgU2xpZGVy
VGh1bWJFbGVtZW50OwogCiBjbGFzcyBSYW5nZUlucHV0VHlwZSBGSU5BTCA6IHB1YmxpYyBJbnB1
dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFJhbmdlSW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSYW5nZUlucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5jcHAKaW5kZXggMTA1NmYxY2I2MTBmMTU3ZDNl
ZjI5NGMxMGUyODQxMTNlNTdiMDBmNS4uYzMyODhkZDY3MWUyNGM1YTZlYWU0NTgwMzc2YWI5ODQ1
MGY1OGM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5jcHAKQEAgLTM3LDE1
ICszNyw5IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0
VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElucHV0VHlw
ZT4gUmVzZXRJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewot
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgUmVzZXRJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBj
b25zdCBBdG9taWNTdHJpbmcmIFJlc2V0SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25z
dAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6cmVzZXQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UmVzZXRJbnB1dFR5cGUuaAppbmRleCA0NWE4OWFiMzNiMjkxNjMyMzc3Yzk5NTQ1ZTljNjk1ZTkw
MTYxYzA1Li5mNzQ5ZjY4ZDAxNThkNmQ2NGVhMWY0ZmM3MjM2Yzg5ZDBjMjBkMGU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFJlc2V0SW5wdXRUeXBlIDogcHVibGljIEJhc2VCdXR0b25JbnB1
dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFJlc2V0SW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBSZXNldElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c1ZhbGlkYXRpb24oKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCopIE9WRVJSSURFOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCmluZGV4IGZjYWViMmU5ODQ4MWZmNjFiYzdm
MjNkMmU3MWE1MjNhMzA1ZTkxZDIuLmE1NDc1MWRjMzczYzkwZjQ2NjRlNDJjMDQzYjJkYmFhOWM5
MGUwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKQEAgLTM4LDEz
ICszOCwxMiBAQAogI2luY2x1ZGUgIlJlbmRlclNlYXJjaEZpZWxkLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIFNlYXJjaElucHV0VHlwZTo6U2VhcmNoSW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitTZWFyY2hJbnB1dFR5cGU6OlNlYXJjaElu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogICAgIDogQmFzZVRleHRJbnB1dFR5
cGUoZWxlbWVudCkKICAgICAsIG1fcmVzdWx0c0J1dHRvbigwKQogICAgICwgbV9jYW5jZWxCdXR0
b24oMCkKQEAgLTUyLDExICs1MSw2IEBAIGlubGluZSBTZWFyY2hJbnB1dFR5cGU6OlNlYXJjaElu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewogfQogCi1Pd25QdHI8SW5wdXRU
eXBlPiBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQot
ewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgU2VhcmNoSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0K
LQogdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRU
eXBlOjphdHRhY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5oCmluZGV4IGE2
MTNhZWYzYWRjNTIzMGEwZjE1NGFlNzdlN2QwNWViNzExYTgzNTYuLjg5MDMxOWVkNTQyZDZiNWJj
MDdjY2M4ZjA2MjE4ZTA0MmNmNTg4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
U2VhcmNoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5
cGUuaApAQCAtNDEsMTIgKzQxLDExIEBAIGNsYXNzIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVs
ZW1lbnQ7CiAKIGNsYXNzIFNlYXJjaElucHV0VHlwZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlw
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgU2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmKTsKIAogICAgIHZvaWQgc3RvcFNlYXJjaEV2ZW50VGltZXIoKTsKIAogcHJpdmF0ZToKLSAg
ICBleHBsaWNpdCBTZWFyY2hJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZpcnR1
YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkU2VhcmNoUmVz
dWx0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPikgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1N1Ym1pdElucHV0VHlwZS5jcHAKaW5kZXggZGVkNDFkYmY1ZmJmOWMxMDAxZTZmNDY4OTQ3NWFi
YTIxZWEyNGFmYy4uMWQwYjcyZWQ5NWRhNTFmMjA2OTM3MzA0ZGM3MDFjNmFmMWYwNGEyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmNwcApAQCAtMzgsMTUgKzM4LDkgQEAK
ICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMu
aCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBTdWJtaXRJ
bnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgU3VibWl0SW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogY29uc3QgQXRv
bWljU3RyaW5nJiBTdWJtaXRJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpzdWJtaXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1p
dElucHV0VHlwZS5oCmluZGV4IGQ5ZDg3YTE3NTQyYTkzM2QwY2MwZTQ4ODMwYmNmM2YyYWY3MGE3
ZGUuLmY0ZTYzZmJkMzcxODc1Yzc1YTM3OWJlMGQ4MjI3MWNkZjBiYzU1YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTdWJtaXRJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUJ1dHRvbklucHV0
VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgU3VibWl0SW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBTdWJtaXRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzUmVxdWlyZWQoKSBjb25zdCBPVkVSUklE
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcAppbmRleCAyZDg3
ZDJmOGQ3YTBiODE3NTE0YzM4MjU1ODVlMDMyNGE2NGY5NWUwLi43N2ZkMGUwYTRiYzBmNzIwMjRh
NjhmNDZkZjRlOWEzYWRhOGZkY2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
bGVwaG9uZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJ
bnB1dFR5cGUuY3BwCkBAIC0zMywxNSArMzMsOSBAQAogCiAjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBUZWxl
cGhvbmVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgVGVsZXBob25lSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQog
dm9pZCBUZWxlcGhvbmVJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRU
eXBlOjphdHRhY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25l
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCmlu
ZGV4IGFhNGFhNTI3YTY5M2RhNTBiYjM3NjRhYjJiYjRmZjk3MDEyMTdlOWQuLmYyZDgzNzlkZTQ4
YzNhNGUwOTllOGU0MDAyYWVkMjY5ZmE3ZjZhYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxl
cGhvbmVJbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBUZWxlcGhvbmVJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgewog
cHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxl
bWVudCYpOworICAgIGV4cGxpY2l0IFRlbGVwaG9uZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgot
ICAgIGV4cGxpY2l0IFRlbGVwaG9uZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RT
cGVlY2hBdHRyaWJ1dGUoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUu
Y3BwCmluZGV4IGM1ZjNhOGZhZDUxMTMyZmZlZDFlNzU1OTljZWNmODM4OGQyMjE5ZDUuLjg3ZWI5
Mzg3MTE5M2E3OTI3OTVmNGFmYWQ2ZTUxOGZlNWExOTgyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0SW5wdXRUeXBlLmNwcApAQCAtMzMsMTcgKzMzLDExIEBACiAKICNpbmNsdWRlICJIVE1MSW5w
dXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CiAKLU93blB0cjxJbnB1dFR5cGU+IFRleHRJbnB1dFR5cGU6OmNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGV4dElu
cHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgVGV4dElucHV0VHlwZTo6YXR0YWNoKCkKIHsK
ICAgICBUZXh0RmllbGRJbnB1dFR5cGU6OmF0dGFjaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1
dFR5cGUuaAppbmRleCBiYTI0Y2E5MjI2MmRhNmJjMGVmYjNlYWU5OGRjZDZhZDdkODIyZmQ0Li40
MWIyYTYyOWIxZWI3OWYwODJlNGU3NWFhNGNkNmQ5MTE3NzhmN2Y4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RleHRJbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBUZXh0SW5wdXRUeXBlIDogcHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQm
KTsKKyAgICBleHBsaWNpdCBUZXh0SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
IDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgVGV4dElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5w
dXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RTcGVlY2hBdHRyaWJ1dGUo
KSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IGU3NzM5
MzQ5OTgzM2EzOTA1ZWI3NjZiNWMzYWIwZWY1MzczMDczYTkuLmQ3NTFmNTFmODFjMDAzOTM4OWFl
NDZmOTYzMzYwNDZmMmI1YmE5M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNw
cApAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1
ZGUgPHd0Zi9EYXRlTWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0jaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NCwxMSAr
NTMsNiBAQCBUaW1lSW5wdXRUeXBlOjpUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpCiB7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IFRpbWVJbnB1dFR5cGU6OmNyZWF0ZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGlt
ZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgVGltZUlucHV0VHlwZTo6YXR0YWNoKCkK
IHsKICAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlw
ZVRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAppbmRleCAxOTU4ZDc3OThkZWUy
OWY3ODdkMmZmZGEyNmQwNjQ4NWRlNmNmOGY2Li4wOTFmMjIyNTViYjNlMWNmMjhlMzkxMGMxYWE3
YzRjZjExNjY4Njk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtMzgsMTAg
KzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBUaW1lSW5wdXRUeXBlIDogcHVi
bGljIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBl
eHBsaWNpdCBUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAg
ICBleHBsaWNpdCBUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKICAgICB2aXJ0dWFs
IHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBv
bmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJM
SW5wdXRUeXBlLmNwcAppbmRleCAxYjU1ZGM4ZTU2NmUzNDI5YjM0MjAxYzliYjY5YjE2Yjg0ZTc3
MTI0Li5jYmEyOWVjNTA1YTQ3YWMyYjUwNGJiZTZmMmZlMThhNDk5YWZmMjhiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCkBAIC0zNSwxNSArMzUsOSBAQAogI2luY2x1ZGUgIklu
cHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUg
IlVSTC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotT3duUHRyPElucHV0VHlwZT4gVVJMSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxl
bWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFVSTElucHV0VHlwZShl
bGVtZW50KSk7Ci19Ci0KIHZvaWQgVVJMSW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIFRleHRG
aWVsZElucHV0VHlwZTo6YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1VSTElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaAppbmRl
eCBiN2FiNjc0YTQ0OTQ4NGRkMTZmZDQ4MzI5Y2NhMDU5MTBhYTdjNDVkLi4xNDk2ZjA3MGMzZmNl
ZThiZGM3NmZhMTQ2ZTcxMjcwMjVhMDAxZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1VSTElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBl
LmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVVJMSW5w
dXRUeXBlIDogcHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
T3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNp
dCBVUkxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0
VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBVUkxJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2hGb3IoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAppbmRleCA1MTlkZjVhNDQ1MTM4Mjk2
ZjI2OWJhNmYxMjVkYjVmYmJmODA2NDk0Li4zNWQyZmNmMmZlNmI2MzJkZDVkNjUwY2E1MzNlNGU0
YWNkN2M0YTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKQEAgLTM2LDcg
KzM2LDYgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ2LDExICs0NSw2IEBAIHN0YXRp
YyBjb25zdCBpbnQgd2Vla0RlZmF1bHRTdGVwQmFzZSA9IC0yNTkyMDAwMDA7IC8vIFRoZSBmaXJz
dCBkYXkgb2YgMTk3MC1XMDEuCiBzdGF0aWMgY29uc3QgaW50IHdlZWtEZWZhdWx0U3RlcCA9IDE7
CiBzdGF0aWMgY29uc3QgaW50IHdlZWtTdGVwU2NhbGVGYWN0b3IgPSA2MDQ4MDAwMDA7CiAKLU93
blB0cjxJbnB1dFR5cGU+IFdlZWtJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2Vla0lucHV0VHlwZShlbGVtZW50
KSk7Ci19Ci0KIHZvaWQgV2Vla0lucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVh
dHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVdlZWspOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1dlZWtJbnB1dFR5cGUuaAppbmRleCBjYWU3OWU5MWJiOWEwN2JhNjRkNDAzYTQ0ZTY2Zjll
ODE1OWUyYjI0Li4zMzNmYjU3MDQwMDViZTY2NmNmMTA3NmY3NDNkMzk0OGMyNzcxYzgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaApAQCAtMzgsMTAgKzM4LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBXZWVrSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0
VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBXZWVrSW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRp
bWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2Vla0lu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBl
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBEYXRlQ29tcG9uZW50czo6VHlwZSBkYXRl
VHlwZSgpIGNvbnN0IE9WRVJSSURFOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215314</attachid>
            <date>2013-10-28 09:51:18 -0700</date>
            <delta_ts>2013-10-28 12:37:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123160-20131028095117.patch</filename>
            <type>text/plain</type>
            <size>50297</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4MTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI2ZGFjN2FjMDhhNmRm
MWMyYmZiNGU5Njc1MjdiZDg4MDBmYTZlNS4uNmY5ODc2MDg5NzQ4ODFiZTNiM2UxOWFhMmU2NzE3
YjQzMTU2Y2M2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEzLTEwLTI4ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBIVE1MIGlucHV0IHR5
cGUgb2JqZWN0cyBzaG91bGQgYmUgbWFuYWdlZCB0aHJvdWdoIHN0ZDo6dW5pcXVlX3B0cgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTYwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgY29u
c3RydWN0b3JzIG9mIHRoZSBJbnB1dFR5cGUgc3ViY2xhc3NlcyBwdWJsaWMuIFRoaXMgbWFrZXMg
aXQgcG9zc2libGUgdG8gdXNlIHN0ZDo6bWFrZV91bmlxdWUgb24gdGhlc2UgY2xhc3NlcworICAg
ICAgICBhbmQgbWFrZXMgdGhlIFQ6OmNyZWF0ZSgpIGhlbHBlcnMgcmVkdW5kYW50LiBOZXcgaW5z
dGFuY2VzIG9mIHRoZXNlIGNsYXNzZXMgYXJlIG5vdyBtYW5hZ2VkIHRocm91Z2ggc3RkOjp1bmlx
dWVfcHRyLgorICAgICAgICBJbnB1dFR5cGU6OmNyZWF0ZSgpIG5vdyB1c2VzIGEgTmV2ZXJEZXN0
cm95ZWQgSW5wdXRUeXBlRmFjdG9yeU1hcCB0aGF0IG1hcHMgdHlwZSBuYW1lcyB0byBJbnB1dFR5
cGVGYWN0b3J5RnVuY3Rpb25zIGFuZAorICAgICAgICBnZXRzIHBvcHVsYXRlZCB3aGVuIHRoZSBt
ZXRob2QgaXMgZmlyc3QgY2FsbGVkIGFuZCB0aGUgbWFwIGlzIHN0aWxsIGVtcHR5LiBUaGUgZmFj
dG9yeSBpcyB1c2VkIHRvIGNyZWF0ZSB0aGUgbmV3IElucHV0VHlwZQorICAgICAgICBvYmplY3Qg
aWYgdGhlIHJlcXVlc3RlZCB0eXBlIHdhcyBmb3VuZCBpbiB0aGUgbWFwLCBhbmQgVGV4dElucHV0
VHlwZSBpcyB1c2VkIG90aGVyd2lzZS4KKworICAgICAgICAqIGh0bWwvQnV0dG9uSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKiBodG1sL0J1dHRvbklucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6QnV0dG9uSW5wdXRUeXBlOjpCdXR0b25JbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvQ2hl
Y2tib3hJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNoZWNrYm94SW5wdXRUeXBlOjpDaGVja2JveElucHV0VHlwZSk6
CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9Db2xv
cklucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OkNvbG9ySW5w
dXRUeXBlKToKKyAgICAgICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0
bWwvRGF0ZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUlucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9E
YXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OkRh
dGVUaW1lTG9jYWxJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVt
YWlsSW5wdXRUeXBlOjpFbWFpbElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6dXBkYXRlVHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5w
dXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpIaWRkZW5JbnB1dFR5cGU6OkhpZGRlbklucHV0
VHlwZSk6CisgICAgICAgICogaHRtbC9JbWFnZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUlucHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvSW1h
Z2VJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVJbnB1dFR5cGUpOiBBIHRlbXBsYXRlZCBoZWxwZXIgdGhhdCBjb25zdHJ1
Y3RzIGEgbmV3IElucHV0VHlwZSBzdWJjbGFzcyBvYmplY3QgdGhyb3VnaCBzdGQ6Om1ha2VfdW5p
cXVlLgorICAgICAgICAoV2ViQ29yZTo6cG9wdWxhdGVJbnB1dFR5cGVGYWN0b3J5TWFwKTogUG9w
dWxhdGVzIHRoZSBwYXNzZWQtaW4gbWFwIHdpdGggdHlwZS1jcmVhdGVJbnB1dFR5cGU8VD4gcGFp
cnMuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0ZSk6IEdldCB0aGUgSW5wdXRU
eXBlRmFjdG9yeUZ1bmN0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHR5cGUsIG9yIGZhbGwgYmFjayB0
byBUZXh0SW5wdXRUeXBlLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpjcmVhdGVUZXh0
KToKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1
dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpNb250aElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9O
dW1iZXJJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6Ok51bWJlcklucHV0VHlwZSk6CisgICAg
ICAgICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9QYXNzd29y
ZElucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFzc3dvcmRJbnB1dFR5cGU6OlBhc3N3
b3JkSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1JhZGlvSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKiBodG1sL1JhZGlvSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lucHV0
VHlwZTo6UmFkaW9JbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1Jlc2V0
SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1Jlc2V0SW5wdXRUeXBlLmg6CisgICAgICAg
IChXZWJDb3JlOjpSZXNldElucHV0VHlwZTo6UmVzZXRJbnB1dFR5cGUpOgorICAgICAgICAqIGh0
bWwvU2VhcmNoSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaElucHV0VHlw
ZTo6U2VhcmNoSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1NlYXJjaElucHV0VHlwZS5oOgor
ICAgICAgICAqIGh0bWwvU3VibWl0SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1N1Ym1p
dElucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6U3VibWl0SW5wdXRUeXBlOjpTdWJtaXRJ
bnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKiBodG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGVsZXBo
b25lSW5wdXRUeXBlOjpUZWxlcGhvbmVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvVGV4dElu
cHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9UZXh0SW5wdXRUeXBlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0SW5wdXRUeXBlOjpUZXh0SW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1Rp
bWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5oOgorICAgICAg
ICAqIGh0bWwvVVJMSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1VSTElucHV0VHlwZS5o
OgorICAgICAgICAoV2ViQ29yZTo6VVJMSW5wdXRUeXBlOjpVUkxJbnB1dFR5cGUpOgorICAgICAg
ICAqIGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9XZWVrSW5wdXRUeXBl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBlOjpXZWVrSW5wdXRUeXBlKToKKwog
MjAxMy0xMC0yNyAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IDQgYXNzZXJ0aW5nIFNWRyB0ZXN0cyBhZnRlciByMTU4MDk3LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9CdXR0b25JbnB1dFR5cGUuY3BwCmluZGV4IDljZTI4MGM4NTI0YjlhYmNhZDljNWQzM2IzY2Ey
NzI5ZmExM2ZkNWIuLmNiNDUyZTY0M2Y1MWU1YjM2Njk3Y2ZlMTExMmMyMWNiMDNmYjY2M2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5jcHAKQEAgLTMyLDE1ICszMiw5IEBA
CiAjaW5jbHVkZSAiQnV0dG9uSW5wdXRUeXBlLmgiCiAKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1l
cy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotT3duUHRyPElucHV0VHlwZT4gQnV0dG9uSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxl
bWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEJ1dHRvbklucHV0VHlw
ZShlbGVtZW50KSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgQnV0dG9uSW5wdXRUeXBlOjpm
b3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6YnV0
dG9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuaAppbmRleCBiNGU5NDgwNTk2
ZmQzMDkzNThmOTJmOTNkODc5ZmFiMTEzNTczNWFhLi5iMTgwZGM2ZDJlMGQ2NzM5OTJmOGNmMmI1
YjE4ZTY3NWYyMTg1MmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKQEAg
LTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQnV0dG9uSW5wdXRU
eXBlIDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBP
d25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0
IEJ1dHRvbklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25J
bnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgQnV0dG9uSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KSB7
IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmFsaWRhdGlvbigpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1RleHRCdXR0b24oKSBjb25zdCBPVkVSUklE
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAKaW5kZXggMGVjNGQx
ZmIyMzQ5NGExNDg2MGVlMjUzMzA1ODk4OThmYzkzZmNlMy4uNjljZjA1YmNhZGQxYmVjNjIwZTY0
MzllNWU3YzMwNzQ4Y2E5ZjlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVj
a2JveElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0
VHlwZS5jcHAKQEAgLTM2LDE1ICszNiw5IEBACiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIK
ICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5o
IgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
T3duUHRyPElucHV0VHlwZT4gQ2hlY2tib3hJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2hlY2tib3hJbnB1dFR5
cGUoZWxlbWVudCkpOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIENoZWNrYm94SW5wdXRUeXBl
Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6
Y2hlY2tib3goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaAppbmRleCA0
NWIzZjgzMjUxYzQ5YmJlYjViNjAzN2U1MTE1NjY3M2E4NTJlZDk0Li45NzdmYzljM2RmMDJhNzJh
MzUyNzJkMDU2YzA1NzJkMjJiN2E5YjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NoZWNrYm94SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElu
cHV0VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IENoZWNrYm94SW5wdXRUeXBlIDogcHVibGljIEJhc2VDaGVja2FibGVJbnB1dFR5cGUgewogcHVi
bGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVu
dCYpOworICAgIGV4cGxpY2l0IENoZWNrYm94SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpIDogQmFzZUNoZWNrYWJsZUlucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToK
LSAgICBDaGVja2JveElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VD
aGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCBjMzI1ZmM4NWVmMTExMDJmYzYzMmVhZDNmOGFl
N2VmYjFjOWVhNmJhLi5kZTliYWVmZmMxODNiNzk0NmZjNmRkMGQzZjllMDY0NmNmNjk0YTc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtNDUsNyArNDUsNiBAQAog
I2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY2
LDExICs2NSw2IEBAIHN0YXRpYyBib29sIGlzVmFsaWRDb2xvclN0cmluZyhjb25zdCBTdHJpbmcm
IHZhbHVlKQogICAgIHJldHVybiBjb2xvci5pc1ZhbGlkKCkgJiYgIWNvbG9yLmhhc0FscGhhKCk7
CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IENvbG9ySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbG9ySW5wdXRU
eXBlKGVsZW1lbnQpKTsKLX0KLQogQ29sb3JJbnB1dFR5cGU6On5Db2xvcklucHV0VHlwZSgpCiB7
CiAgICAgZW5kQ29sb3JDaG9vc2VyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NvbG9ySW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgK
aW5kZXggMDBhM2Y1YjI1MTU5N2RlZDM2OTQyYzY5NmYyOTQ4ODY5MzhkNGVlNy4uNzAwODVmZjMw
Nzg2NjM3YTM0YWNjY2Q2MjY1YWU3NjdlYmE1MWQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IENvbG9ySW5wdXRUeXBlIDogcHVibGljIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLCBw
dWJsaWMgQ29sb3JDaG9vc2VyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElu
cHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBDb2xvcklu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDbGlja2FibGVXaXRoS2V5
SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgfkNvbG9ySW5wdXRUeXBlKCk7CiAK
ICAgICAvLyBDb2xvckNob29zZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCkBAIC01MSw3ICs1MSw2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFZlY3RvcjxDb2xvcj4gc3VnZ2VzdGlvbnMoKSBjb25z
dCBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBDb2xvcklucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVs
ZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgaXNDb2xvckNvbnRyb2woKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAppbmRleCAxMmZhMDQwOTM5NjE4MTVkOWFiZTk1
OTZlZDk1MTJmMmU0MjA5M2QxLi42OTU3NTMxODIwMzE0YzgwNWIzMDcyNjhiYjUwOGEzNTg5MTNh
NjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKQEAgLTM2LDcgKzM2LDYg
QEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUxLDExICs1MCw2IEBAIGlubGluZSBEYXRl
SW5wdXRUeXBlOjpEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7CiB9
CiAKLU93blB0cjxJbnB1dFR5cGU+IERhdGVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0ZUlucHV0VHlwZShl
bGVtZW50KSk7Ci19Ci0KIHZvaWQgRGF0ZUlucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNl
cnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZURhdGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAppbmRleCA0YTBjMjNkMTllMTFmZTNkZWZlZDgwZDhl
MDdkN2JjZjBlMzE5ZjJjLi40NzAzMWUyMjE4ZmZiOWFlNDNkM2E4ZGQyMDYzYWI4MzJhYWJkNTA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaApAQCAtMzgsMTAgKzM4LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRlSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRy
PElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBEYXRl
SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBE
YXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9s
VHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUg
ZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlu
cHV0VHlwZS5jcHAKaW5kZXggMTFmN2U5ZWFiODFkYTlmY2FiOTdiOWRkNTUyOWQ4Y2Y5NTg5OWVi
YS4uZTZlNGI3MDk3ZDY3MGQ3NzQ1ODQwOWU2Yjg2NWU5MmI4ZmYzMzFjMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUg
PHd0Zi9DdXJyZW50VGltZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsMTEgKzQ2LDYgQEAgc3RhdGljIGNvbnN0IGludCBkYXRl
VGltZURlZmF1bHRTdGVwID0gNjA7CiBzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lRGVmYXVsdFN0
ZXBCYXNlID0gMDsKIHN0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVTdGVwU2NhbGVGYWN0b3IgPSAx
MDAwOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBEYXRlVGltZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRlVGlt
ZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgRGF0ZVRpbWVJbnB1dFR5cGU6OmF0dGFj
aCgpCiB7CiAgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1
dFR5cGVEYXRlVGltZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1l
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmgKaW5k
ZXggMjBmNGRkZjkxZDBiN2JlZjVhOTExMDcwMGRkMmE2MmNhNzA0YzkyMi4uMWIyOGFhNzdkY2Zk
YzgxODMwMTg1MmRhNjQ2OGYzNTYyYTc5NGE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVJbnB1dFR5cGUuaApAQCAtMzksMTAgKzM5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBEYXRlVGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgRGF0ZVRpbWVJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0ZVRpbWVJbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRGF0ZVRpbWVJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0ZVRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRleCA1NWQ0ZDA5
MzA2MzI5ZDg3ZDUyN2Q3MjYxODBhNjJiMzg3NWU5Mjc5Li45N2QwODNkZmQyNzk0M2NiY2FlYWE3
ZmMyMzM5MDE1OWVlODBiZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVM
b2NhbElucHV0VHlwZS5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFt
ZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQ2LDExICs0NSw2IEBAIHN0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVMb2NhbERlZmF1
bHRTdGVwID0gNjA7CiBzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lTG9jYWxEZWZhdWx0U3RlcEJh
c2UgPSAwOwogc3RhdGljIGNvbnN0IGludCBkYXRlVGltZUxvY2FsU3RlcFNjYWxlRmFjdG9yID0g
MTAwMDsKIAotT3duUHRyPElucHV0VHlwZT4gRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Y3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBE
YXRlVGltZUxvY2FsSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1
cmVPYnNlcnZlcjo6SW5wdXRUeXBlRGF0ZVRpbWVMb2NhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCmluZGV4IDY5ZjJiYmE2MzkyN2E4OTM0MTVhZDZj
MGRjMzE0MmQzNDY0ZTMxZGQuLmJjM2U5ZDJkNTI4MDMzNjk0ODkxNTBhZmViZWYyN2JiOWU5ZWNi
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCkBA
IC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVUaW1lTG9j
YWxJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUg
ewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYpOworICAgIGV4cGxpY2l0IERhdGVUaW1lTG9jYWxJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlRGF0ZVRpbWVMb2NhbElucHV0VHlwZShlbGVtZW50KSB7
IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZURhdGVUaW1lTG9jYWxJbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCmluZGV4IDI3ZGU4ZDQ1ZjZkOGYw
MGFiNjg1NmViNmQ1Y2EzNGZjNjAxZWVjZDguLmZhNjc5ZGMzMGJjZmU3NzRhYzQwNzc1N2UzZGMz
ZWMzODllYjMzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCkBAIC0y
OSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlICJMb2Nh
bGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIKLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTMsMTEgKzUyLDYgQEAgc3RhdGljIGJvb2wgaXNW
YWxpZEVtYWlsQWRkcmVzcyhjb25zdCBTdHJpbmcmIGFkZHJlc3MpCiAgICAgcmV0dXJuICFtYXRj
aE9mZnNldCAmJiBtYXRjaExlbmd0aCA9PSBhZGRyZXNzTGVuZ3RoOwogfQogCi1Pd25QdHI8SW5w
dXRUeXBlPiBFbWFpbElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
Ci17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFbWFpbElucHV0VHlwZShlbGVtZW50KSk7Ci19
Ci0KIHZvaWQgRW1haWxJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRU
eXBlOjphdHRhY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaAppbmRleCBlMGQy
MTMxODZkOTliOGUwNWM0MWViZWRiMDgyMjA3ZjBiYjRkYmY5Li5iN2FlZWM1NDUwMDg4NDlhNTY0
OGIxNzY0NDdjMGEwNDg5YjkxY2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Vt
YWlsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5o
CkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVtYWlsSW5w
dXRUeXBlIDogcHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
T3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNp
dCBFbWFpbElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5w
dXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEVtYWlsSW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJS
SURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggY2IwZWVjMmM3ZmM0
OGI2YmIxZGQ4MDBkMThjNThiOTg5MGVhOWZkNS4uZDUwZGU2NDFlMDJkODRiY2M3ZDYxYjdkNDFm
MGZmMTQyNmJmZWM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0z
OSw3ICszOSw2IEBACiAjaW5jbHVkZSAiUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaCIKICNpbmNs
dWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC04NSwxMSArODQsNiBAQCBj
b25zdCBBdG9taWNTdHJpbmcmIFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKICAgICByZXR1cm4gcHNldWRvSWQ7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IEZpbGVJ
bnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgRmlsZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIEZpbGVJbnB1dFR5
cGU6OkZpbGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKICAgICA6IEJhc2VD
bGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVsZW1lbnQpCiAgICAgLCBtX2ZpbGVMaXN0KEZpbGVM
aXN0OjpjcmVhdGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggZTU1YmVl
Y2ZmNDE4NzUzNWQyYTg5OTViZDYzOGI4MTE0Y2ZmYjdmMi4uOWNmYWNjZjEyOTVhOTNhYzBkYTMz
MDZjMGQyZGM0YjY3ODVlZjFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAg
LTQ0LDE0ICs0NCwxMiBAQCBjbGFzcyBGaWxlTGlzdDsKIAogY2xhc3MgRmlsZUlucHV0VHlwZSA6
IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2hvb3Nl
ckNsaWVudCwgcHJpdmF0ZSBGaWxlSWNvbkxvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhw
bGljaXQgRmlsZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB+Rmls
ZUlucHV0VHlwZSgpOwogCiAgICAgc3RhdGljIFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBm
aWxlc0Zyb21Gb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKTsKIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBGaWxlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKLQog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3Rh
dGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9s
U3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggZjNjYjUwZGI4MTFlMDZmNDY2M2U4Njg1Mjhl
OGMwYjEzZWRhNjY1My4uYmFkNjdkNDM2NzIyMThhODJiMGM2MGQwMTljMzc4ZDc1NGU3NjljNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC00NTQsNyArNDU0
LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkK
IAogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVUeXBlKCkKIHsKLSAgICBPd25QdHI8SW5w
dXRUeXBlPiBuZXdUeXBlID0gSW5wdXRUeXBlOjpjcmVhdGUoKnRoaXMsIGZhc3RHZXRBdHRyaWJ1
dGUodHlwZUF0dHIpKTsKKyAgICBhdXRvIG5ld1R5cGUgPSBJbnB1dFR5cGU6OmNyZWF0ZSgqdGhp
cywgZmFzdEdldEF0dHJpYnV0ZSh0eXBlQXR0cikpOwogICAgIGJvb2wgaGFkVHlwZSA9IG1faGFz
VHlwZTsKICAgICBtX2hhc1R5cGUgPSB0cnVlOwogICAgIGlmIChtX2lucHV0VHlwZS0+Zm9ybUNv
bnRyb2xUeXBlKCkgPT0gbmV3VHlwZS0+Zm9ybUNvbnRyb2xUeXBlKCkpCkBAIC00NzksNyArNDc5
LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVUeXBlKCkKICAgICBpZiAod2FzQXR0
YWNoZWQpCiAgICAgICAgIFN0eWxlOjpkZXRhY2hSZW5kZXJUcmVlKCp0aGlzKTsKIAotICAgIG1f
aW5wdXRUeXBlID0gbmV3VHlwZS5yZWxlYXNlKCk7CisgICAgbV9pbnB1dFR5cGUgPSBzdGQ6Om1v
dmUobmV3VHlwZSk7CiAgICAgbV9pbnB1dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKIAog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCmluZGV4IDNiYjg2MDU0NzQwMTQwNjBiNTBiZTM2MGYwZWJhYWYzYTY3OTA1OWEuLjA0MzM1
NzhmMmNjYTllNWExMjhjYzQ0OGNlMDkwMzVkNzljOTk2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCkBAIC00NDIsNyArNDQyLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQogICAgIGJvb2wgbV9oYXNUb3VjaEV2ZW50SGFuZGxlciA6IDE7CiAj
ZW5kaWYKLSAgICBPd25QdHI8SW5wdXRUeXBlPiBtX2lucHV0VHlwZTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8SW5wdXRUeXBlPiBtX2lucHV0VHlwZTsKICAgICAvLyBUaGUgSW1hZ2VMb2FkZXIgbXVz
dCBiZSBvd25lZCBieSB0aGlzIGVsZW1lbnQgYmVjYXVzZSB0aGUgbG9hZGVyIGNvZGUgYXNzdW1l
cwogICAgIC8vIHRoYXQgaXQgbGl2ZXMgYXMgbG9uZyBhcyBpdHMgb3duaW5nIGVsZW1lbnQgbGl2
ZXMuIElmIHdlIG1vdmUgdGhlIGxvYWRlciBpbnRvCiAgICAgLy8gdGhlIEltYWdlSW5wdXQgb2Jq
ZWN0IHdlIG1heSBkZWxldGUgdGhlIGxvYWRlciB3aGlsZSB0aGlzIGVsZW1lbnQgbGl2ZXMgb24u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKaW5kZXggNzJjMDY4YWJmYmMx
M2E0Yjc3ZDg1YzA3ZmFkNGRhYTAxMGFhN2QwNy4uNzFmN2MxY2Q3NTljYWUwNGRiYWEyZDBiZmVl
ODQzMGI5MzY0MDI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcApA
QCAtMzcsMTcgKzM3LDExIEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwogCi1Pd25QdHI8SW5wdXRUeXBlPiBIaWRkZW5JbnB1dFR5cGU6OmNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcg
SGlkZGVuSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBIaWRk
ZW5JbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0
VHlwZU5hbWVzOjpoaWRkZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlk
ZGVuSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCmlu
ZGV4IGQ3NjIzYmM1MmYwNTMxMzFlMGNlMzRhN2E5YjNhOWFlNzM0ZTRkODkuLmY3MDg3YzA3ZDJj
YzRhYWM5ODkxMzljYzI5MzQ2MTFiNWJhYmNhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5J
bnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBIaWRkZW5JbnB1dFR5cGUgOiBwdWJsaWMgSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBs
aWNpdCBIaWRkZW5JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBJbnB1dFR5
cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgSGlkZGVuSW5wdXRUeXBl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3RhdGUo
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3Rh
dGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lt
YWdlSW5wdXRUeXBlLmNwcAppbmRleCAwMzgxMmIyZjM4NTQzNmUzYzg2N2QyZThlMzc3OGVhNDI2
ZjU5OTFhLi5iYjBkZjg5OWQ3NjFiNTIwOWNlOTliNjVjMTQ0MDA3N2QzM2IxNTc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcApAQCAtMzMsMjIgKzMzLDE2IEBACiAjaW5j
bHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiUmVuZGVySW1hZ2UuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLWlubGluZSBJbWFn
ZUlucHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKK0lt
YWdlSW5wdXRUeXBlOjpJbWFnZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQog
ICAgIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KQogewogfQogCi1Pd25QdHI8SW5wdXRU
eXBlPiBJbWFnZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbWFnZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0K
IGNvbnN0IEF0b21pY1N0cmluZyYgSW1hZ2VJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjppbWFnZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbWFnZUlucHV0VHlwZS5oCmluZGV4IGIwZGM5N2E0MzI5M2VjMjkyYTYyNWMwM2NlMzI0ZDFi
MWM0ODk4ODQuLmIxMTE2MjEwYzczYjIxZjlkNDU5NzBhMzZlNjVjNzZjYWFjNGNhNjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKQEAgLTQwLDEwICs0MCw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgSW1hZ2VJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUJ1dHRvbklu
cHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShI
VE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgSW1hZ2VJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEltYWdlSW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzRm9ybURhdGFBcHBl
bmRhYmxlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRh
KEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwCmluZGV4IDg2MGI3MTcyOTY4MDhlOGM0YzFiNWE2MGM1Mzg0NDMyZGJmYTNlNWMuLjRk
NDY1OGZiNzFiNjA2MjY4Zjg1MWFjMWI3ZWU0NWRiNTdiOGNhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAKQEAgLTgzLDc0ICs4Myw5MCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXR5cGVkZWYgT3duUHRyPElucHV0VHlwZT4gKCpJ
bnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24pKEhUTUxJbnB1dEVsZW1lbnQmKTsKK3R5cGVkZWYgY29u
c3QgQXRvbWljU3RyaW5nJiAoKklucHV0VHlwZU5hbWVGdW5jdGlvbikoKTsKK3R5cGVkZWYgc3Rk
Ojp1bmlxdWVfcHRyPElucHV0VHlwZT4gKCpJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24pKEhUTUxJ
bnB1dEVsZW1lbnQmKTsKIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIElucHV0VHlwZUZh
Y3RvcnlGdW5jdGlvbiwgQ2FzZUZvbGRpbmdIYXNoPiBJbnB1dFR5cGVGYWN0b3J5TWFwOwogCi1z
dGF0aWMgT3duUHRyPElucHV0VHlwZUZhY3RvcnlNYXA+IGNyZWF0ZUlucHV0VHlwZUZhY3RvcnlN
YXAoKQordGVtcGxhdGU8Y2xhc3MgVD4KK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBl
PiBjcmVhdGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBPd25Q
dHI8SW5wdXRUeXBlRmFjdG9yeU1hcD4gbWFwID0gYWRvcHRQdHIobmV3IElucHV0VHlwZUZhY3Rv
cnlNYXApOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFQ+KGVsZW1lbnQpOworfQogCi0g
ICAgLy8gRklYTUU6IFJlbW92ZSB1bm5lY2Vzc2FyeSAnJidzIGZyb20gdGhlIGZvbGxvd2luZyBt
YXAuYWRkIG9wZXJhdGlvbnMKLSAgICAvLyBvbmNlIHdlIHN3aXRjaCB0byBhIG5vbi1icm9rZW4g
VmlzdWFsIFN0dWRpbyBjb21waWxlci4gIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjEyMzUKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6YnV0dG9uKCksICZC
dXR0b25JbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmNo
ZWNrYm94KCksICZDaGVja2JveElucHV0VHlwZTo6Y3JlYXRlKTsKK3N0YXRpYyB2b2lkIHBvcHVs
YXRlSW5wdXRUeXBlRmFjdG9yeU1hcChJbnB1dFR5cGVGYWN0b3J5TWFwJiBtYXApCit7CisgICAg
c3RhdGljIGNvbnN0IHN0cnVjdCBJbnB1dFR5cGVzIHsKKyAgICAgICAgYm9vbCBpc0VuYWJsZWQ7
CisgICAgICAgIElucHV0VHlwZU5hbWVGdW5jdGlvbiBuYW1lRnVuY3Rpb247CisgICAgICAgIElu
cHV0VHlwZUZhY3RvcnlGdW5jdGlvbiBmYWN0b3J5RnVuY3Rpb247CisgICAgfSBpbnB1dFR5cGVz
W10gPSB7CisgICAgICAgIHsgdHJ1ZSwgJklucHV0VHlwZU5hbWVzOjpidXR0b24sICZjcmVhdGVJ
bnB1dFR5cGU8QnV0dG9uSW5wdXRUeXBlPiB9LAorICAgICAgICB7IHRydWUsICZJbnB1dFR5cGVO
YW1lczo6Y2hlY2tib3gsICZjcmVhdGVJbnB1dFR5cGU8Q2hlY2tib3hJbnB1dFR5cGU+IH0sCiAj
aWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6
OmNvbG9yKCksICZDb2xvcklucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyB0cnVlLCAmSW5w
dXRUeXBlTmFtZXM6OmNvbG9yLCAmY3JlYXRlSW5wdXRUeXBlPENvbG9ySW5wdXRUeXBlPiB9LAog
I2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfREFURSkKLSAgICBpZiAoUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5cGVEYXRlRW5hYmxlZCgpKQotICAg
ICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6ZGF0ZSgpLCAmRGF0ZUlucHV0VHlwZTo6Y3Jl
YXRlKTsKKyAgICAgICAgeyBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmlucHV0VHlwZURhdGVFbmFibGVkKCksCisgICAgICAgICAgICAmSW5wdXRUeXBlTmFtZXM6OmRh
dGUsICZjcmVhdGVJbnB1dFR5cGU8RGF0ZUlucHV0VHlwZT4gfSwKICNlbmRpZgogI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpCi0gICAgaWYgKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5wdXRUeXBlRGF0ZVRpbWVFbmFibGVkKCkpCi0g
ICAgICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpkYXRldGltZSgpLCAmRGF0ZVRpbWVJbnB1
dFR5cGU6OmNyZWF0ZSk7CisgICAgICAgIHsgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5pbnB1dFR5cGVEYXRlVGltZUVuYWJsZWQoKSwKKyAgICAgICAgICAgICZJbnB1
dFR5cGVOYW1lczo6ZGF0ZXRpbWUsICZjcmVhdGVJbnB1dFR5cGU8RGF0ZVRpbWVJbnB1dFR5cGU+
IH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKQotICAgIGlm
IChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZURhdGVU
aW1lTG9jYWxFbmFibGVkKCkpCi0gICAgICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpkYXRl
dGltZWxvY2FsKCksICZEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpjcmVhdGUpOworICAgICAgICB7
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5wdXRUeXBlRGF0ZVRp
bWVMb2NhbEVuYWJsZWQoKSwKKyAgICAgICAgICAgICZJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWVs
b2NhbCwgJmNyZWF0ZUlucHV0VHlwZTxEYXRlVGltZUxvY2FsSW5wdXRUeXBlPiB9LAogI2VuZGlm
Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmVtYWlsKCksICZFbWFpbElucHV0VHlwZTo6
Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6ZmlsZSgpLCAmRmlsZUlucHV0
VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6aGlkZGVuKCksICZI
aWRkZW5JbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6Omlt
YWdlKCksICZJbWFnZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyB0cnVlLCAmSW5wdXRU
eXBlTmFtZXM6OmVtYWlsLCAmY3JlYXRlSW5wdXRUeXBlPEVtYWlsSW5wdXRUeXBlPiB9LAorICAg
ICAgICB7IHRydWUsICZJbnB1dFR5cGVOYW1lczo6ZmlsZSwgJmNyZWF0ZUlucHV0VHlwZTxGaWxl
SW5wdXRUeXBlPiB9LAorICAgICAgICB7IHRydWUsICZJbnB1dFR5cGVOYW1lczo6aGlkZGVuLCAm
Y3JlYXRlSW5wdXRUeXBlPEhpZGRlbklucHV0VHlwZT4gfSwKKyAgICAgICAgeyB0cnVlLCAmSW5w
dXRUeXBlTmFtZXM6OmltYWdlLCAmY3JlYXRlSW5wdXRUeXBlPEltYWdlSW5wdXRUeXBlPiB9LAog
I2lmIEVOQUJMRShJTlBVVF9UWVBFX01PTlRIKQotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZU1vbnRoRW5hYmxlZCgpKQotICAgICAgICBt
YXAtPmFkZChJbnB1dFR5cGVOYW1lczo6bW9udGgoKSwgJk1vbnRoSW5wdXRUeXBlOjpjcmVhdGUp
OworICAgICAgICB7IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5w
dXRUeXBlTW9udGhFbmFibGVkKCksCisgICAgICAgICAgICAmSW5wdXRUeXBlTmFtZXM6Om1vbnRo
LCAmY3JlYXRlSW5wdXRUeXBlPE1vbnRoSW5wdXRUeXBlPiB9LAogI2VuZGlmCi0gICAgbWFwLT5h
ZGQoSW5wdXRUeXBlTmFtZXM6Om51bWJlcigpLCAmTnVtYmVySW5wdXRUeXBlOjpjcmVhdGUpOwot
ICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpwYXNzd29yZCgpLCAmUGFzc3dvcmRJbnB1dFR5
cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OnJhZGlvKCksICZSYWRp
b0lucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6cmFuZ2Uo
KSwgJlJhbmdlSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVz
OjpyZXNldCgpLCAmUmVzZXRJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRU
eXBlTmFtZXM6OnNlYXJjaCgpLCAmU2VhcmNoSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+
YWRkKElucHV0VHlwZU5hbWVzOjpzdWJtaXQoKSwgJlN1Ym1pdElucHV0VHlwZTo6Y3JlYXRlKTsK
LSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6dGVsZXBob25lKCksICZUZWxlcGhvbmVJbnB1
dFR5cGU6OmNyZWF0ZSk7CisgICAgICAgIHsgdHJ1ZSwgJklucHV0VHlwZU5hbWVzOjpudW1iZXIs
ICZjcmVhdGVJbnB1dFR5cGU8TnVtYmVySW5wdXRUeXBlPiB9LAorICAgICAgICB7IHRydWUsICZJ
bnB1dFR5cGVOYW1lczo6cGFzc3dvcmQsICZjcmVhdGVJbnB1dFR5cGU8UGFzc3dvcmRJbnB1dFR5
cGU+IH0sCisgICAgICAgIHsgdHJ1ZSwgJklucHV0VHlwZU5hbWVzOjpyYWRpbywgJmNyZWF0ZUlu
cHV0VHlwZTxSYWRpb0lucHV0VHlwZT4gfSwKKyAgICAgICAgeyB0cnVlLCAmSW5wdXRUeXBlTmFt
ZXM6OnJhbmdlLCAmY3JlYXRlSW5wdXRUeXBlPFJhbmdlSW5wdXRUeXBlPiB9LAorICAgICAgICB7
IHRydWUsICZJbnB1dFR5cGVOYW1lczo6cmVzZXQsICZjcmVhdGVJbnB1dFR5cGU8UmVzZXRJbnB1
dFR5cGU+IH0sCisgICAgICAgIHsgdHJ1ZSwgJklucHV0VHlwZU5hbWVzOjpzZWFyY2gsICZjcmVh
dGVJbnB1dFR5cGU8U2VhcmNoSW5wdXRUeXBlPiB9LAorICAgICAgICB7IHRydWUsICZJbnB1dFR5
cGVOYW1lczo6c3VibWl0LCAmY3JlYXRlSW5wdXRUeXBlPFN1Ym1pdElucHV0VHlwZT4gfSwKKyAg
ICAgICAgeyB0cnVlLCAmSW5wdXRUeXBlTmFtZXM6OnRlbGVwaG9uZSwgJmNyZWF0ZUlucHV0VHlw
ZTxUZWxlcGhvbmVJbnB1dFR5cGU+IH0sCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKLSAg
ICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5cGVU
aW1lRW5hYmxlZCgpKQotICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6dGltZSgpLCAm
VGltZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZVRpbWVFbmFibGVkKCksCisgICAgICAgICAgICAm
SW5wdXRUeXBlTmFtZXM6OnRpbWUsICZjcmVhdGVJbnB1dFR5cGU8VGltZUlucHV0VHlwZT4gfSwK
ICNlbmRpZgotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjp1cmwoKSwgJlVSTElucHV0VHlw
ZTo6Y3JlYXRlKTsKKyAgICAgICAgeyB0cnVlLCAmSW5wdXRUeXBlTmFtZXM6OnVybCwgJmNyZWF0
ZUlucHV0VHlwZTxVUkxJbnB1dFR5cGU+IH0sCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfV0VFSykK
LSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5
cGVXZWVrRW5hYmxlZCgpKQotICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6d2Vlaygp
LCAmV2Vla0lucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZVdlZWtFbmFibGVkKCksCisgICAgICAgICAg
ICAmSW5wdXRUeXBlTmFtZXM6OndlZWssICZjcmVhdGVJbnB1dFR5cGU8V2Vla0lucHV0VHlwZT4g
fSwKICNlbmRpZgotICAgIC8vIE5vIG5lZWQgdG8gcmVnaXN0ZXIgInRleHQiIGJlY2F1c2UgaXQg
aXMgdGhlIGRlZmF1bHQgdHlwZS4KKyAgICAgICAgLy8gTm8gbmVlZCB0byByZWdpc3RlciAidGV4
dCIgYmVjYXVzZSBpdCBpcyB0aGUgZGVmYXVsdCB0eXBlLgorICAgIH07CiAKLSAgICByZXR1cm4g
bWFwOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGlucHV0
VHlwZXMpOyArK2kpIHsKKyAgICAgICAgaWYgKGlucHV0VHlwZXNbaV0uaXNFbmFibGVkKQorICAg
ICAgICAgICAgbWFwLmFkZChpbnB1dFR5cGVzW2ldLm5hbWVGdW5jdGlvbigpLCBpbnB1dFR5cGVz
W2ldLmZhY3RvcnlGdW5jdGlvbik7CisgICAgfQogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBJbnB1
dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGVOYW1lKQorc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVh
dGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlTmFt
ZSkKIHsKLSAgICBzdGF0aWMgY29uc3QgSW5wdXRUeXBlRmFjdG9yeU1hcCogZmFjdG9yeU1hcCA9
IGNyZWF0ZUlucHV0VHlwZUZhY3RvcnlNYXAoKS5sZWFrUHRyKCk7Ci0gICAgT3duUHRyPElucHV0
VHlwZT4gKCpmYWN0b3J5KShIVE1MSW5wdXRFbGVtZW50JikgPSB0eXBlTmFtZS5pc0VtcHR5KCkg
PyAwIDogZmFjdG9yeU1hcC0+Z2V0KHR5cGVOYW1lKTsKLSAgICBpZiAoIWZhY3RvcnkpCi0gICAg
ICAgIGZhY3RvcnkgPSBUZXh0SW5wdXRUeXBlOjpjcmVhdGU7Ci0gICAgcmV0dXJuIGZhY3Rvcnko
ZWxlbWVudCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPElucHV0VHlwZUZhY3RvcnlNYXA+
IGZhY3RvcnlNYXA7CisgICAgaWYgKGZhY3RvcnlNYXAuZ2V0KCkuaXNFbXB0eSgpKQorICAgICAg
ICBwb3B1bGF0ZUlucHV0VHlwZUZhY3RvcnlNYXAoZmFjdG9yeU1hcCk7CisKKyAgICBpZiAoIXR5
cGVOYW1lLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoYXV0byBmYWN0b3J5ID0gZmFjdG9yeU1h
cC5nZXQoKS5nZXQodHlwZU5hbWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhY3RvcnkoZWxlbWVu
dCk7CisgICAgfQorICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFRleHRJbnB1dFR5cGU+KGVs
ZW1lbnQpOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBJbnB1dFR5cGU6OmNyZWF0ZVRleHQoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IElucHV0
VHlwZTo6Y3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewotICAgIHJldHVy
biBUZXh0SW5wdXRUeXBlOjpjcmVhdGUoZWxlbWVudCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8VGV4dElucHV0VHlwZT4oZWxlbWVudCk7CiB9CiAKIElucHV0VHlwZTo6fklucHV0VHlw
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCA1NDhkNDU2YmY3MzBhNDA0N2VhZWIwMmEx
ZDM5ZDEzZTIzMjkyODgyLi4wNzc5YTZkOWQwYmYxYTVjNDk1MDE1ZWNlNmI1NjQ0MTMxMTI3ZjRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTc0LDggKzc0LDggQEAgY2xhc3MgSW5wdXRU
eXBlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIAogcHVibGljOgotICAgIHN0YXRp
YyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYsIGNvbnN0IEF0b21p
Y1N0cmluZyYpOwotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGVUZXh0KEhUTUxJ
bnB1dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQmLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlVGV4dChIVE1MSW5wdXRFbGVtZW50Jik7
CiAgICAgdmlydHVhbCB+SW5wdXRUeXBlKCk7CiAKICAgICBzdGF0aWMgYm9vbCB0aGVtZVN1cHBv
cnRzRGF0YUxpc3RVSShJbnB1dFR5cGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTW9udGhJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlw
ZS5jcHAKaW5kZXggNDhlYWQxZmU4ZTI0MTRiNjU1MWY0N2IzM2Y1OWNiNzRjYmI1MTVkMS4uNjgw
Y2NlZTg0NGI3ZjU3N2NhZTg2ODlmNjU0YTExMDJkYzAzZjMyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9Nb250aElucHV0VHlwZS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0
aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNDksMTEgKzQ4LDYgQEAgc3RhdGljIGNvbnN0IGludCBtb250aERlZmF1bHRT
dGVwID0gMTsKIHN0YXRpYyBjb25zdCBpbnQgbW9udGhEZWZhdWx0U3RlcEJhc2UgPSAwOwogc3Rh
dGljIGNvbnN0IGludCBtb250aFN0ZXBTY2FsZUZhY3RvciA9IDE7CiAKLU93blB0cjxJbnB1dFR5
cGU+IE1vbnRoSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1vbnRoSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQog
dm9pZCBNb250aElucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVhdHVyZUlmVmlz
aWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZU1vbnRoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9u
dGhJbnB1dFR5cGUuaAppbmRleCA5YjU0ZTBiNjA0YTFkMjNmMzhlNjMwYWNlMzA2MTMyZDFiY2Qz
ZWQ1Li4xYzdmZjgwOTQzYjZkY2FkMzZiMjdlNTNkMDgzZDczZmRjOTY5YzNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb250aElucHV0VHlwZS5oCkBAIC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIE1vbnRoSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlw
ZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBNb250aElucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VNb250aElucHV0VHlwZShlbGVtZW50
KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNb250aElucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KSA6IEJhc2VNb250aElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0
ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAppbmRleCAyZjMwMmYyY2EzYzIyNzM1NDZlYjkyMTFm
NjgxZTg4Y2Y5Y2UzZWE0Li41ODg4MjA4MDlhMDAyMjllYmI2Nzk5YzdmNTY3ZTdjYTNkZjA4Njlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBAIC00NCw3ICs0NCw2
IEBACiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTkzLDExICs5Miw2IEBAIHN0YXRpYyBSZWFsTnVtYmVy
UmVuZGVyU2l6ZSBjYWxjdWxhdGVSZW5kZXJTaXplKGNvbnN0IERlY2ltYWwmIHZhbHVlKQogICAg
IHJldHVybiBSZWFsTnVtYmVyUmVuZGVyU2l6ZShzaXplT2ZTaWduICsgc2l6ZU9mWmVybyAsIG51
bWJlck9mWmVyb0FmdGVyRGVjaW1hbFBvaW50ICsgc2l6ZU9mRGlnaXRzKTsKIH0KIAotT3duUHRy
PElucHV0VHlwZT4gTnVtYmVySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE51bWJlcklucHV0VHlwZShlbGVtZW50
KSk7Ci19Ci0KIHZvaWQgTnVtYmVySW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIFRleHRGaWVs
ZElucHV0VHlwZTo6YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051
bWJlcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaApp
bmRleCBmOTlhNjZmNzdiNDlhNzEzNWRiYWFiOGI3MmU5MTllN2E3ZTRkZGY5Li44ZDhhNWE0OWQ5
ZDk0MmE3YWVkMTE3ZTgwNDBjMWViOWM0Yjg5OWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL051bWJlcklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVy
SW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgTnVtYmVySW5wdXRUeXBlIDogcHVibGljIFRleHRGaWVsZElucHV0VHlwZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7
CisgICAgZXhwbGljaXQgTnVtYmVySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
IDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIE51bWJl
cklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IFRleHRGaWVsZElucHV0VHlw
ZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVl
Q2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCmluZGV4IGZiNTdhM2E3ZjYyN2ZhNzUzZGRmYTA2
OWUxYmM5YmNmODFlNTU0MTQuLjdmN2UwZjlmY2NhMzQ0MmM0YzRkZmM2MzQ1NzM2NDEwOTgyM2U0
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCkBAIC0zNiwx
NSArMzYsOSBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1
dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBl
PiBQYXNzd29yZElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXNzd29yZElucHV0VHlwZShlbGVtZW50KSk7Ci19
Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgUGFzc3dvcmRJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlw
ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpwYXNzd29yZCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oCmluZGV4IGVhZjE0OGVmZTZkYzcxY2Yx
Mjk1MTYxNzBlNjlmYzRkMzk4MTZjMzAuLjQzYTdiNDM2YzYxODY1Zjc2Njc3YTlkOTFjNTEzNzZh
ZmI3MjlkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKQEAgLTM3
LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGFzc3dvcmRJbnB1dFR5
cGUgOiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25Q
dHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFBh
c3N3b3JkSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1
dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgUGFzc3dvcmRJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0K
ICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRy
b2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBz
YXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
ZGlvSW5wdXRUeXBlLmNwcAppbmRleCAwYzIyNDE2YWY2NTllMDE1MjM1MGYyNjJiNjcyZjk0NjVm
MmU5NmUyLi4yMzlhOWNlNjBhY2ZkYzcyNjBmOWQ2MDg5ZmQ2MTM3NTQ1ZGFjZWQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcApAQCAtMzMsMTcgKzMzLDExIEBACiAjaW5j
bHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
U3BhdGlhbE5hdmlnYXRpb24uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLU93blB0cjxJ
bnB1dFR5cGU+IFJhZGlvSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVu
dCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFJhZGlvSW5wdXRUeXBlKGVsZW1lbnQpKTsK
LX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBSYWRpb0lucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBl
KCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OnJhZGlvKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhZGlvSW5wdXRUeXBlLmgKaW5kZXggMTQxYmM0ODc5YTg3ZGVmMGU2YWMzMmI2YzU5
YzQ2MzQ2OWZlODEzNS4uMzE3Y2IyODhiNGI0MjY2ZTM2ZDc0ZGMyM2FhN2ZhNjE3MjhkYmYwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSYWRpb0lucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4g
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBSYWRpb0lucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUmFkaW9JbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25z
dCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggMDIx
NDkyZjJhOWJlZDE2MzVkYjE1NTA5ZjgwYmMzZDM4YmNkYWM0Ni4uMWRhYjU0Y2Y2ZDc2NGY4ZWVi
MDc5ZTRiOTAwYmY1YjI4NWUwNjkyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9S
YW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlw
ZS5jcHAKQEAgLTQ5LDcgKzQ5LDYgQEAKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRl
IDxsaW1pdHM+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICNpbmNsdWRlICJUb3VjaC5o
IgpAQCAtNzcsMTEgKzc2LDYgQEAgc3RhdGljIERlY2ltYWwgZW5zdXJlTWF4aW11bShjb25zdCBE
ZWNpbWFsJiBwcm9wb3NlZFZhbHVlLCBjb25zdCBEZWNpbWFsJiBtaW5pbXUKICAgICByZXR1cm4g
cHJvcG9zZWRWYWx1ZSA+PSBtaW5pbXVtID8gcHJvcG9zZWRWYWx1ZSA6IHN0ZDo6bWF4KG1pbmlt
dW0sIGZhbGxiYWNrVmFsdWUpOwogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBSYW5nZUlucHV0VHlw
ZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBSYW5nZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIFJhbmdlSW5wdXRUeXBlOjpS
YW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogICAgIDogSW5wdXRUeXBl
KGVsZW1lbnQpCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
bmdlSW5wdXRUeXBlLmgKaW5kZXggYThiYTNmNDI1ZTU1ZmE4ODk0ZTFmNTQ5ODUyZTJlNTgyYjc4
ZGI1MC4uZDExMmYxYjE4Y2ZiZTA3ODljNWUzN2U4NWIxMmYzZjIwYjQ3ZDdjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtMzksMTAgKzM5LDkgQEAgY2xhc3MgU2xpZGVy
VGh1bWJFbGVtZW50OwogCiBjbGFzcyBSYW5nZUlucHV0VHlwZSBGSU5BTCA6IHB1YmxpYyBJbnB1
dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFJhbmdlSW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSYW5nZUlucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5jcHAKaW5kZXggMTA1NmYxY2I2MTBmMTU3ZDNl
ZjI5NGMxMGUyODQxMTNlNTdiMDBmNS4uYzMyODhkZDY3MWUyNGM1YTZlYWU0NTgwMzc2YWI5ODQ1
MGY1OGM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5jcHAKQEAgLTM3LDE1
ICszNyw5IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0
VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElucHV0VHlw
ZT4gUmVzZXRJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewot
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgUmVzZXRJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBj
b25zdCBBdG9taWNTdHJpbmcmIFJlc2V0SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25z
dAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6cmVzZXQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UmVzZXRJbnB1dFR5cGUuaAppbmRleCA0NWE4OWFiMzNiMjkxNjMyMzc3Yzk5NTQ1ZTljNjk1ZTkw
MTYxYzA1Li5mNzQ5ZjY4ZDAxNThkNmQ2NGVhMWY0ZmM3MjM2Yzg5ZDBjMjBkMGU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5oCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFJlc2V0SW5wdXRUeXBlIDogcHVibGljIEJhc2VCdXR0b25JbnB1
dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFJlc2V0SW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBSZXNldElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c1ZhbGlkYXRpb24oKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCopIE9WRVJSSURFOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCmluZGV4IGZjYWViMmU5ODQ4MWZmNjFiYzdm
MjNkMmU3MWE1MjNhMzA1ZTkxZDIuLmE1NDc1MWRjMzczYzkwZjQ2NjRlNDJjMDQzYjJkYmFhOWM5
MGUwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKQEAgLTM4LDEz
ICszOCwxMiBAQAogI2luY2x1ZGUgIlJlbmRlclNlYXJjaEZpZWxkLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIFNlYXJjaElucHV0VHlwZTo6U2VhcmNoSW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCitTZWFyY2hJbnB1dFR5cGU6OlNlYXJjaElu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogICAgIDogQmFzZVRleHRJbnB1dFR5
cGUoZWxlbWVudCkKICAgICAsIG1fcmVzdWx0c0J1dHRvbigwKQogICAgICwgbV9jYW5jZWxCdXR0
b24oMCkKQEAgLTUyLDExICs1MSw2IEBAIGlubGluZSBTZWFyY2hJbnB1dFR5cGU6OlNlYXJjaElu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogewogfQogCi1Pd25QdHI8SW5wdXRU
eXBlPiBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQot
ewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgU2VhcmNoSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0K
LQogdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRU
eXBlOjphdHRhY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5oCmluZGV4IGE2
MTNhZWYzYWRjNTIzMGEwZjE1NGFlNzdlN2QwNWViNzExYTgzNTYuLjg5MDMxOWVkNTQyZDZiNWJj
MDdjY2M4ZjA2MjE4ZTA0MmNmNTg4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
U2VhcmNoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5
cGUuaApAQCAtNDEsMTIgKzQxLDExIEBAIGNsYXNzIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVs
ZW1lbnQ7CiAKIGNsYXNzIFNlYXJjaElucHV0VHlwZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlw
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgU2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmKTsKIAogICAgIHZvaWQgc3RvcFNlYXJjaEV2ZW50VGltZXIoKTsKIAogcHJpdmF0ZToKLSAg
ICBleHBsaWNpdCBTZWFyY2hJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZpcnR1
YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkU2VhcmNoUmVz
dWx0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPikgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1N1Ym1pdElucHV0VHlwZS5jcHAKaW5kZXggZGVkNDFkYmY1ZmJmOWMxMDAxZTZmNDY4OTQ3NWFi
YTIxZWEyNGFmYy4uMWQwYjcyZWQ5NWRhNTFmMjA2OTM3MzA0ZGM3MDFjNmFmMWYwNGEyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmNwcApAQCAtMzgsMTUgKzM4LDkgQEAK
ICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMu
aCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBTdWJtaXRJ
bnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgU3VibWl0SW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogY29uc3QgQXRv
bWljU3RyaW5nJiBTdWJtaXRJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpzdWJtaXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1p
dElucHV0VHlwZS5oCmluZGV4IGQ5ZDg3YTE3NTQyYTkzM2QwY2MwZTQ4ODMwYmNmM2YyYWY3MGE3
ZGUuLmY0ZTYzZmJkMzcxODc1Yzc1YTM3OWJlMGQ4MjI3MWNkZjBiYzU1YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTdWJtaXRJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUJ1dHRvbklucHV0
VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgU3VibWl0SW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBTdWJtaXRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzUmVxdWlyZWQoKSBjb25zdCBPVkVSUklE
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcAppbmRleCAyZDg3
ZDJmOGQ3YTBiODE3NTE0YzM4MjU1ODVlMDMyNGE2NGY5NWUwLi43N2ZkMGUwYTRiYzBmNzIwMjRh
NjhmNDZkZjRlOWEzYWRhOGZkY2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
bGVwaG9uZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJ
bnB1dFR5cGUuY3BwCkBAIC0zMywxNSArMzMsOSBAQAogCiAjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBUZWxl
cGhvbmVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgVGVsZXBob25lSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQog
dm9pZCBUZWxlcGhvbmVJbnB1dFR5cGU6OmF0dGFjaCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRU
eXBlOjphdHRhY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25l
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCmlu
ZGV4IGFhNGFhNTI3YTY5M2RhNTBiYjM3NjRhYjJiYjRmZjk3MDEyMTdlOWQuLmYyZDgzNzlkZTQ4
YzNhNGUwOTllOGU0MDAyYWVkMjY5ZmE3ZjZhYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxl
cGhvbmVJbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBUZWxlcGhvbmVJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgewog
cHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxl
bWVudCYpOworICAgIGV4cGxpY2l0IFRlbGVwaG9uZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgot
ICAgIGV4cGxpY2l0IFRlbGVwaG9uZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RT
cGVlY2hBdHRyaWJ1dGUoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUu
Y3BwCmluZGV4IGM1ZjNhOGZhZDUxMTMyZmZlZDFlNzU1OTljZWNmODM4OGQyMjE5ZDUuLjg3ZWI5
Mzg3MTE5M2E3OTI3OTVmNGFmYWQ2ZTUxOGZlNWExOTgyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0SW5wdXRUeXBlLmNwcApAQCAtMzMsMTcgKzMzLDExIEBACiAKICNpbmNsdWRlICJIVE1MSW5w
dXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CiAKLU93blB0cjxJbnB1dFR5cGU+IFRleHRJbnB1dFR5cGU6OmNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGV4dElu
cHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgVGV4dElucHV0VHlwZTo6YXR0YWNoKCkKIHsK
ICAgICBUZXh0RmllbGRJbnB1dFR5cGU6OmF0dGFjaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1
dFR5cGUuaAppbmRleCBiYTI0Y2E5MjI2MmRhNmJjMGVmYjNlYWU5OGRjZDZhZDdkODIyZmQ0Li40
MWIyYTYyOWIxZWI3OWYwODJlNGU3NWFhNGNkNmQ5MTE3NzhmN2Y4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RleHRJbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBUZXh0SW5wdXRUeXBlIDogcHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQm
KTsKKyAgICBleHBsaWNpdCBUZXh0SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
IDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgVGV4dElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5w
dXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RTcGVlY2hBdHRyaWJ1dGUo
KSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IGU3NzM5
MzQ5OTgzM2EzOTA1ZWI3NjZiNWMzYWIwZWY1MzczMDczYTkuLmQ3NTFmNTFmODFjMDAzOTM4OWFl
NDZmOTYzMzYwNDZmMmI1YmE5M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNw
cApAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1
ZGUgPHd0Zi9EYXRlTWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0jaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NCwxMSAr
NTMsNiBAQCBUaW1lSW5wdXRUeXBlOjpUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpCiB7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IFRpbWVJbnB1dFR5cGU6OmNyZWF0ZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGlt
ZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgVGltZUlucHV0VHlwZTo6YXR0YWNoKCkK
IHsKICAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlw
ZVRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAppbmRleCAxOTU4ZDc3OThkZWUy
OWY3ODdkMmZmZGEyNmQwNjQ4NWRlNmNmOGY2Li4wOTFmMjIyNTViYjNlMWNmMjhlMzkxMGMxYWE3
YzRjZjExNjY4Njk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtMzgsMTAg
KzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBUaW1lSW5wdXRUeXBlIDogcHVi
bGljIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBl
eHBsaWNpdCBUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAg
ICBleHBsaWNpdCBUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKICAgICB2aXJ0dWFs
IHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBv
bmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJM
SW5wdXRUeXBlLmNwcAppbmRleCAxYjU1ZGM4ZTU2NmUzNDI5YjM0MjAxYzliYjY5YjE2Yjg0ZTc3
MTI0Li5jYmEyOWVjNTA1YTQ3YWMyYjUwNGJiZTZmMmZlMThhNDk5YWZmMjhiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCkBAIC0zNSwxNSArMzUsOSBAQAogI2luY2x1ZGUgIklu
cHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUg
IlVSTC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotT3duUHRyPElucHV0VHlwZT4gVVJMSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxl
bWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFVSTElucHV0VHlwZShl
bGVtZW50KSk7Ci19Ci0KIHZvaWQgVVJMSW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIFRleHRG
aWVsZElucHV0VHlwZTo6YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1VSTElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaAppbmRl
eCBiN2FiNjc0YTQ0OTQ4NGRkMTZmZDQ4MzI5Y2NhMDU5MTBhYTdjNDVkLi4xNDk2ZjA3MGMzZmNl
ZThiZGM3NmZhMTQ2ZTcxMjcwMjVhMDAxZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1VSTElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBl
LmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVVJMSW5w
dXRUeXBlIDogcHVibGljIEJhc2VUZXh0SW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
T3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNp
dCBVUkxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0
VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBVUkxJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2hGb3IoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAppbmRleCA1MTlkZjVhNDQ1MTM4Mjk2
ZjI2OWJhNmYxMjVkYjVmYmJmODA2NDk0Li4zNWQyZmNmMmZlNmI2MzJkZDVkNjUwY2E1MzNlNGU0
YWNkN2M0YTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKQEAgLTM2LDcg
KzM2LDYgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ2LDExICs0NSw2IEBAIHN0YXRp
YyBjb25zdCBpbnQgd2Vla0RlZmF1bHRTdGVwQmFzZSA9IC0yNTkyMDAwMDA7IC8vIFRoZSBmaXJz
dCBkYXkgb2YgMTk3MC1XMDEuCiBzdGF0aWMgY29uc3QgaW50IHdlZWtEZWZhdWx0U3RlcCA9IDE7
CiBzdGF0aWMgY29uc3QgaW50IHdlZWtTdGVwU2NhbGVGYWN0b3IgPSA2MDQ4MDAwMDA7CiAKLU93
blB0cjxJbnB1dFR5cGU+IFdlZWtJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2Vla0lucHV0VHlwZShlbGVtZW50
KSk7Ci19Ci0KIHZvaWQgV2Vla0lucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVh
dHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVdlZWspOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1dlZWtJbnB1dFR5cGUuaAppbmRleCBjYWU3OWU5MWJiOWEwN2JhNjRkNDAzYTQ0ZTY2Zjll
ODE1OWUyYjI0Li4zMzNmYjU3MDQwMDViZTY2NmNmMTA3NmY3NDNkMzk0OGMyNzcxYzgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaApAQCAtMzgsMTAgKzM4LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBXZWVrSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0
VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBXZWVrSW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRp
bWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2Vla0lu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBl
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBEYXRlQ29tcG9uZW50czo6VHlwZSBkYXRl
VHlwZSgpIGNvbnN0IE9WRVJSSURFOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215324</attachid>
            <date>2013-10-28 12:38:02 -0700</date>
            <delta_ts>2013-10-28 21:18:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123160-20131028123801.patch</filename>
            <type>text/plain</type>
            <size>50495</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4MTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI2ZGFjN2FjMDhhNmRm
MWMyYmZiNGU5Njc1MjdiZDg4MDBmYTZlNS4uNTBjMzhmMjQyYTA5ZGQwYjUxMDM2ODhiMGZmYjdk
MTMwN2VmYjc4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDEzLTEwLTI4ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBIVE1MIGlucHV0IHR5
cGUgb2JqZWN0cyBzaG91bGQgYmUgbWFuYWdlZCB0aHJvdWdoIHN0ZDo6dW5pcXVlX3B0cgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTYwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgY29u
c3RydWN0b3JzIG9mIHRoZSBJbnB1dFR5cGUgc3ViY2xhc3NlcyBwdWJsaWMuIFRoaXMgbWFrZXMg
aXQgcG9zc2libGUgdG8gdXNlIHN0ZDo6bWFrZV91bmlxdWUgb24gdGhlc2UgY2xhc3NlcworICAg
ICAgICBhbmQgbWFrZXMgdGhlIFQ6OmNyZWF0ZSgpIGhlbHBlcnMgcmVkdW5kYW50LiBOZXcgaW5z
dGFuY2VzIG9mIHRoZXNlIGNsYXNzZXMgYXJlIG5vdyBtYW5hZ2VkIHRocm91Z2ggc3RkOjp1bmlx
dWVfcHRyLgorCisgICAgICAgIElucHV0VHlwZTo6Y3JlYXRlKCkgbm93IHVzZXMgYSBOZXZlckRl
c3Ryb3llZCBJbnB1dFR5cGVGYWN0b3J5TWFwIHRoYXQgbWFwcyB0eXBlIG5hbWVzIHRvIElucHV0
VHlwZUZhY3RvcnlGdW5jdGlvbnMgYW5kCisgICAgICAgIGdldHMgcG9wdWxhdGVkIHdoZW4gdGhl
IG1ldGhvZCBpcyBmaXJzdCBjYWxsZWQgYW5kIHRoZSBtYXAgaXMgc3RpbGwgZW1wdHkuIENlcnRh
aW4gdHlwZXMgYXJlIG5vdCBhZGRlZCB0byB0aGUgZmFjdG9yeSBtYXAKKyAgICAgICAgaWYgdGhl
eSdyZSBkaXNhYmxlZCBhdCBydW50aW1lLgorCisgICAgICAgIFRoZSBmYWN0b3J5IGlzIHVzZWQg
dG8gY3JlYXRlIHRoZSBuZXcgSW5wdXRUeXBlIG9iamVjdCBpZiB0aGUgcmVxdWVzdGVkIHR5cGUg
d2FzIGZvdW5kIGluIHRoZSBtYXAsIGFuZCBUZXh0SW5wdXRUeXBlIGlzIHVzZWQgb3RoZXJ3aXNl
LgorCisgICAgICAgICogaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwv
QnV0dG9uSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpCdXR0b25JbnB1dFR5cGU6OkJ1
dHRvbklucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHA6Cisg
ICAgICAgICogaHRtbC9DaGVja2JveElucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hl
Y2tib3hJbnB1dFR5cGU6OkNoZWNrYm94SW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0NvbG9y
SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6Q29sb3JJbnB1dFR5cGUpOgorICAgICAgICAqIGh0
bWwvRGF0ZUlucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmg6Cisg
ICAgICAgICogaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9EYXRl
VGltZUlucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVJbnB1dFR5cGU6OkRh
dGVUaW1lSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6RGF0ZVRpbWVMb2NhbElucHV0VHlwZSk6
CisgICAgICAgICogaHRtbC9FbWFpbElucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9FbWFp
bElucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6RW1haWxJbnB1dFR5cGU6OkVtYWlsSW5w
dXRUeXBlKToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0
bWwvRmlsZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVUeXBlKToKKyAgICAg
ICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hpZGRlbklucHV0
VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkhpZGRlbklucHV0VHlwZTo6SGlkZGVuSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1s
L0ltYWdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpJ
bWFnZUlucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9JbWFnZUlucHV0VHlwZS5oOgorICAgICAg
ICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlucHV0VHlw
ZSk6IEEgdGVtcGxhdGVkIGhlbHBlciB0aGF0IGNvbnN0cnVjdHMgYSBuZXcgSW5wdXRUeXBlIHN1
YmNsYXNzIG9iamVjdCB0aHJvdWdoIHN0ZDo6bWFrZV91bmlxdWUuCisgICAgICAgIChXZWJDb3Jl
Ojpwb3B1bGF0ZUlucHV0VHlwZUZhY3RvcnlNYXApOiBQb3B1bGF0ZXMgdGhlIHBhc3NlZC1pbiBt
YXAgd2l0aCB0eXBlLWNyZWF0ZUlucHV0VHlwZTxUPiBwYWlycy4KKyAgICAgICAgKFdlYkNvcmU6
OklucHV0VHlwZTo6Y3JlYXRlKTogR2V0IHRoZSBJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24gZm9y
IHRoZSBzcGVjaWZpZWQgdHlwZSwgb3IgZmFsbCBiYWNrIHRvIFRleHRJbnB1dFR5cGUuCisgICAg
ICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0ZVRleHQpOgorICAgICAgICAqIGh0bWwvSW5w
dXRUeXBlLmg6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6CisgICAgICAgICog
aHRtbC9Nb250aElucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6TW9udGhJbnB1dFR5cGU6
Ok1vbnRoSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6Cisg
ICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok51bWJl
cklucHV0VHlwZTo6TnVtYmVySW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1Bhc3N3b3JkSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmg6CisgICAgICAg
IChXZWJDb3JlOjpQYXNzd29yZElucHV0VHlwZTo6UGFzc3dvcmRJbnB1dFR5cGUpOgorICAgICAg
ICAqIGh0bWwvUmFkaW9JbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvUmFkaW9JbnB1dFR5
cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJhZGlvSW5wdXRUeXBlOjpSYWRpb0lucHV0VHlwZSk6
CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9SYW5n
ZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvUmVzZXRJbnB1dFR5cGUuY3BwOgorICAgICAg
ICAqIGh0bWwvUmVzZXRJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc2V0SW5wdXRU
eXBlOjpSZXNldElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoSW5wdXRUeXBlOjpTZWFyY2hJbnB1dFR5cGUpOgor
ICAgICAgICAqIGh0bWwvU2VhcmNoSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9TdWJtaXRJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvU3VibWl0SW5wdXRUeXBlLmg6CisgICAgICAg
IChXZWJDb3JlOjpTdWJtaXRJbnB1dFR5cGU6OlN1Ym1pdElucHV0VHlwZSk6CisgICAgICAgICog
aHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwOgorICAgICAgICAqIGh0bWwvVGVsZXBob25lSW5w
dXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpUZWxlcGhvbmVJbnB1dFR5cGU6OlRlbGVwaG9u
ZUlucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9UZXh0SW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KiBodG1sL1RleHRJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRJbnB1dFR5cGU6
OlRleHRJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5jcHA6CisgICAg
ICAgICogaHRtbC9UaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9VUkxJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAqIGh0bWwvVVJMSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpV
UkxJbnB1dFR5cGU6OlVSTElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9XZWVrSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OldlZWtJbnB1dFR5cGU6OldlZWtJbnB1dFR5cGUpOgorCiAyMDEzLTEwLTI3ICBBbmRyZWFzIEts
aW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggNCBhc3NlcnRpbmcgU1ZHIHRl
c3RzIGFmdGVyIHIxNTgwOTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRv
bklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0VHlwZS5jcHAK
aW5kZXggOWNlMjgwYzg1MjRiOWFiY2FkOWM1ZDMzYjNjYTI3MjlmYTEzZmQ1Yi4uY2I0NTJlNjQz
ZjUxZTViMzY2OTdjZmUxMTEyYzIxY2IwM2ZiNjYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0
dG9uSW5wdXRUeXBlLmNwcApAQCAtMzIsMTUgKzMyLDkgQEAKICNpbmNsdWRlICJCdXR0b25JbnB1
dFR5cGUuaCIKIAogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBC
dXR0b25JbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogY29u
c3QgQXRvbWljU3RyaW5nJiBCdXR0b25JbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpidXR0b24oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0J1dHRvbklucHV0VHlwZS5oCmluZGV4IGI0ZTk0ODA1OTZmZDMwOTM1OGY5MmY5M2Q4NzlmYWIx
MTM1NzM1YWEuLmIxODBkYzZkMmUwZDY3Mzk5MmY4Y2YyYjViMThlNjc1ZjIxODUyYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBCdXR0b25JbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUJ1dHRv
bklucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+IGNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgQnV0dG9uSW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50KSB7IH0K
IAogcHJpdmF0ZToKLSAgICBCdXR0b25JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVu
dCkgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNWYWxpZGF0aW9uKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIGlzVGV4dEJ1dHRvbigpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NoZWNrYm94SW5wdXRUeXBlLmNwcAppbmRleCAwZWM0ZDFmYjIzNDk0YTE0ODYwZWUyNTMzMDU4
OTg5OGZjOTNmY2UzLi42OWNmMDViY2FkZDFiZWM2MjBlNjQzOWU1ZTdjMzA3NDhjYTlmOWY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcApAQCAtMzYsMTUgKzM2
LDkgQEAKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZl
bnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBDaGVj
a2JveElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBDaGVja2JveElucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIGNv
bnN0IEF0b21pY1N0cmluZyYgQ2hlY2tib3hJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpjaGVja2JveCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oCmluZGV4IDQ1YjNmODMyNTFjNDliYmViNWI2MDM3
ZTUxMTU2NjczYTg1MmVkOTQuLjk3N2ZjOWMzZGYwMmE3MmEzNTI3MmQwNTZjMDU3MmQyMmI3YTli
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmgKQEAgLTM3LDEwICsz
Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2hlY2tib3hJbnB1dFR5cGUgOiBw
dWJsaWMgQmFzZUNoZWNrYWJsZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0
cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgQ2hl
Y2tib3hJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hlY2thYmxl
SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIENoZWNrYm94SW5wdXRUeXBl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNoZWNrYWJsZUlucHV0VHlwZShlbGVt
ZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBl
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2luZyhjb25zdCBT
dHJpbmcmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZU1pc3NpbmdU
ZXh0KCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Nv
bG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3Bw
CmluZGV4IGMzMjVmYzg1ZWYxMTEwMmZjNjMyZWFkM2Y4YWU3ZWZiMWM5ZWE2YmEuLmRlOWJhZWZm
YzE4M2I3OTQ2ZmM2ZGQwZDNmOWUwNjQ2Y2Y2OTRhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29s
b3JJbnB1dFR5cGUuY3BwCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5o
IgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTaGFkb3dSb290Lmgi
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjYsMTEgKzY1LDYgQEAgc3RhdGljIGJv
b2wgaXNWYWxpZENvbG9yU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgcmV0dXJuIGNv
bG9yLmlzVmFsaWQoKSAmJiAhY29sb3IuaGFzQWxwaGEoKTsKIH0KIAotT3duUHRyPElucHV0VHlw
ZT4gQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewot
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ29sb3JJbnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBD
b2xvcklucHV0VHlwZTo6fkNvbG9ySW5wdXRUeXBlKCkKIHsKICAgICBlbmRDb2xvckNob29zZXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRleCAwMGEzZjViMjUxNTk3ZGVk
MzY5NDJjNjk2ZjI5NDg4NjkzOGQ0ZWU3Li43MDA4NWZmMzA3ODY2MzdhMzRhY2NjZDYyNjVhZTc2
N2ViYTUxZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC0zOSw3ICsz
OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29sb3JJbnB1dFR5cGUgOiBwdWJs
aWMgQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUsIHB1YmxpYyBDb2xvckNob29zZXJDbGll
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElu
cHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IENvbG9ySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCkgeyB9
CiAgICAgdmlydHVhbCB+Q29sb3JJbnB1dFR5cGUoKTsKIAogICAgIC8vIENvbG9yQ2hvb3NlckNs
aWVudCBpbXBsZW1lbnRhdGlvbi4KQEAgLTUxLDcgKzUxLDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgVmVjdG9yPENvbG9yPiBzdWdnZXN0aW9ucygpIGNvbnN0IE9WRVJSSURFOwogCiBwcml2YXRl
OgotICAgIGV4cGxpY2l0IENvbG9ySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
IDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc0NvbG9yQ29udHJv
bCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3Jt
Q29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5
cGUuY3BwCmluZGV4IDEyZmEwNDA5Mzk2MTgxNWQ5YWJlOTU5NmVkOTUxMmYyZTQyMDkzZDEuLjY5
NTc1MzE4MjAzMTRjODA1YjMwNzI2OGJiNTA4YTM1ODkxM2E2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlSW5wdXRUeXBlLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkhUTUxJbnB1
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVO
YW1lcy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNTEsMTEgKzUwLDYgQEAgaW5saW5lIERhdGVJbnB1dFR5cGU6OkRhdGVJbnB1dFR5
cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKIH0KIAotT3duUHRyPElucHV0VHlwZT4g
RGF0ZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRlSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBE
YXRlSW5wdXRUeXBlOjphdHRhY2goKQogewogICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZl
YXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlRGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlw
ZS5oCmluZGV4IDRhMGMyM2QxOWUxMWZlM2RlZmVkODBkOGUwN2Q3YmNmMGUzMTlmMmMuLjQ3MDMx
ZTIyMThmZmI5YWU0M2QzYThkZDIwNjNhYjgzMmFhYmQ1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0
ZUlucHV0VHlwZS5oCkBAIC0zOCwxMCArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIERhdGVJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IERhdGVJbnB1dFR5cGUoSFRNTElucHV0RWxl
bWVudCYpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IERhdGVJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCYpOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBEYXRlQ29tcG9uZW50czo6VHlwZSBkYXRlVHlwZSgpIGNvbnN0IE9WRVJS
SURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcAppbmRleCAxMWY3
ZTllYWI4MWRhOWZjYWI5N2I5ZGQ1NTI5ZDhjZjk1ODk5ZWJhLi5lNmU0YjcwOTdkNjcwZDc3NDU4
NDA5ZTZiODY1ZTkyYjhmZjMzMWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5w
dXRUeXBlLmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00
NywxMSArNDYsNiBAQCBzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lRGVmYXVsdFN0ZXAgPSA2MDsK
IHN0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVEZWZhdWx0U3RlcEJhc2UgPSAwOwogc3RhdGljIGNv
bnN0IGludCBkYXRlVGltZVN0ZXBTY2FsZUZhY3RvciA9IDEwMDA7CiAKLU93blB0cjxJbnB1dFR5
cGU+IERhdGVUaW1lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkK
LXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGVUaW1lSW5wdXRUeXBlKGVsZW1lbnQpKTsK
LX0KLQogdm9pZCBEYXRlVGltZUlucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVh
dHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZURhdGVUaW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaAppbmRleCAyMGY0ZGRmOTFkMGI3YmVmNWE5
MTEwNzAwZGQyYTYyY2E3MDRjOTIyLi4xYjI4YWE3N2RjZmRjODE4MzAxODUyZGE2NDY4ZjM1NjJh
Nzk0YTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5oCkBAIC0zOSwx
MCArMzksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVUaW1lSW5wdXRUeXBl
IDogcHVibGljIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsK
KyAgICBleHBsaWNpdCBEYXRlVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VEYXRlVGltZUlucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBl
eHBsaWNpdCBEYXRlVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJh
c2VEYXRlVGltZUlucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9s
VHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUg
ZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IDU1ZDRkMDkzMDYzMjlkODdkNTI3ZDcyNjE4MGE2
MmIzODc1ZTkyNzkuLjk3ZDA4M2RmZDI3OTQzY2JjYWVhYTdmYzIzMzkwMTU5ZWU4MGJlNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcApAQCAt
MzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgotI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDYsMTEgKzQ1LDYgQEAg
c3RhdGljIGNvbnN0IGludCBkYXRlVGltZUxvY2FsRGVmYXVsdFN0ZXAgPSA2MDsKIHN0YXRpYyBj
b25zdCBpbnQgZGF0ZVRpbWVMb2NhbERlZmF1bHRTdGVwQmFzZSA9IDA7CiBzdGF0aWMgY29uc3Qg
aW50IGRhdGVUaW1lTG9jYWxTdGVwU2NhbGVGYWN0b3IgPSAxMDAwOwogCi1Pd25QdHI8SW5wdXRU
eXBlPiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGVUaW1lTG9jYWxJbnB1dFR5cGUo
ZWxlbWVudCkpOwotfQotCiB2b2lkIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmF0dGFjaCgpCiB7
CiAgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVE
YXRlVGltZUxvY2FsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVM
b2NhbElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRU
eXBlLmgKaW5kZXggNjlmMmJiYTYzOTI3YTg5MzQxNWFkNmMwZGMzMTQyZDM0NjRlMzFkZC4uYmMz
ZTlkMmQ1MjgwMzM2OTQ4OTE1MGFmZWJlZjI3YmI5ZTllY2I5MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKQEAgLTM4LDEwICszOCw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGF0ZVRpbWVMb2NhbElucHV0VHlwZSA6IHB1YmxpYyBC
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IE93blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGlj
aXQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJh
c2VEYXRlVGltZUxvY2FsSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIGV4
cGxpY2l0IERhdGVUaW1lTG9jYWxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkg
OiBCYXNlRGF0ZVRpbWVMb2NhbElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZv
cm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVu
dHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFp
bElucHV0VHlwZS5jcHAKaW5kZXggMjdkZThkNDVmNmQ4ZjAwYWI2ODU2ZWI2ZDVjYTM0ZmM2MDFl
ZWNkOC4uZmE2NzlkYzMwYmNmZTc3NGFjNDA3NzU3ZTNkYzNlYzM4OWViMzMxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRl
ICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNs
dWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC01MywxMSArNTIsNiBAQCBzdGF0aWMgYm9vbCBpc1ZhbGlkRW1haWxBZGRyZXNzKGNvbnN0
IFN0cmluZyYgYWRkcmVzcykKICAgICByZXR1cm4gIW1hdGNoT2Zmc2V0ICYmIG1hdGNoTGVuZ3Ro
ID09IGFkZHJlc3NMZW5ndGg7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IEVtYWlsSW5wdXRUeXBl
OjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IEVtYWlsSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBFbWFpbElucHV0VHlw
ZTo6YXR0YWNoKCkKIHsKICAgICBUZXh0RmllbGRJbnB1dFR5cGU6OmF0dGFjaCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9FbWFpbElucHV0VHlwZS5oCmluZGV4IGUwZDIxMzE4NmQ5OWI4ZTA1YzQxZWJlZGIw
ODIyMDdmMGJiNGRiZjkuLmI3YWVlYzU0NTAwODg0OWE1NjQ4YjE3NjQ0N2MwYTA0ODliOTFjZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRW1haWxJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZVRl
eHRJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVh
dGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IEVtYWlsSW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAK
IHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRW1haWxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZv
cm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlz
bWF0Y2hGb3IoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcAppbmRleCBjYjBlZWMyYzdmYzQ4YjZiYjFkZDgwMGQxOGM1OGI5ODkw
ZWE5ZmQ1Li5kNTBkZTY0MWUwMmQ4NGJjYzdkNjFiN2Q0MWYwZmYxNDI2YmZlYzc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRl
ICJSZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKQEAgLTg1LDExICs4NCw2IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgVXBs
b2FkQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogICAgIHJldHVybiBwc2V1
ZG9JZDsKIH0KIAotT3duUHRyPElucHV0VHlwZT4gRmlsZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBGaWxlSW5w
dXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogRmlsZUlucHV0VHlwZTo6RmlsZUlucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KQogICAgIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5
cGUoZWxlbWVudCkKICAgICAsIG1fZmlsZUxpc3QoRmlsZUxpc3Q6OmNyZWF0ZSgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAppbmRleCBlNTViZWVjZmY0MTg3NTM1ZDJhODk5NWJkNjM4
YjgxMTRjZmZiN2YyLi45Y2ZhY2NmMTI5NWE5M2FjMGRhMzMwNmMwZDJkYzRiNjc4NWVmMWQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaApAQCAtNDQsMTQgKzQ0LDEyIEBAIGNsYXNz
IEZpbGVMaXN0OwogCiBjbGFzcyBGaWxlSW5wdXRUeXBlIDogcHVibGljIEJhc2VDbGlja2FibGVX
aXRoS2V5SW5wdXRUeXBlLCBwcml2YXRlIEZpbGVDaG9vc2VyQ2xpZW50LCBwcml2YXRlIEZpbGVJ
Y29uTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4g
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBGaWxlSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQmKTsKICAgICB2aXJ0dWFsIH5GaWxlSW5wdXRUeXBlKCk7CiAKICAgICBz
dGF0aWMgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+IGZpbGVzRnJvbUZvcm1Db250cm9sU3Rh
dGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEZp
bGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwotCiAgICAgdmlydHVhbCBjb25zdCBBdG9t
aWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Rm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJv
bFN0YXRlJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cAppbmRleCBmM2NiNTBkYjgxMWUwNmY0NjYzZTg2ODUyOGU4YzBiMTNlZGE2NjUzLi5iYWQ2N2Q0
MzY3MjIxOGE4MmIwYzYwZDAxOWMzNzhkNzU0ZTc2OWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTQ1NCw3ICs0NTQsNyBAQCB2b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogCiB2b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OnVwZGF0ZVR5cGUoKQogewotICAgIE93blB0cjxJbnB1dFR5cGU+IG5ld1R5cGUgPSBJbnB1
dFR5cGU6OmNyZWF0ZSgqdGhpcywgZmFzdEdldEF0dHJpYnV0ZSh0eXBlQXR0cikpOworICAgIGF1
dG8gbmV3VHlwZSA9IElucHV0VHlwZTo6Y3JlYXRlKCp0aGlzLCBmYXN0R2V0QXR0cmlidXRlKHR5
cGVBdHRyKSk7CiAgICAgYm9vbCBoYWRUeXBlID0gbV9oYXNUeXBlOwogICAgIG1faGFzVHlwZSA9
IHRydWU7CiAgICAgaWYgKG1faW5wdXRUeXBlLT5mb3JtQ29udHJvbFR5cGUoKSA9PSBuZXdUeXBl
LT5mb3JtQ29udHJvbFR5cGUoKSkKQEAgLTQ3OSw3ICs0NzksNyBAQCB2b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OnVwZGF0ZVR5cGUoKQogICAgIGlmICh3YXNBdHRhY2hlZCkKICAgICAgICAgU3R5bGU6
OmRldGFjaFJlbmRlclRyZWUoKnRoaXMpOwogCi0gICAgbV9pbnB1dFR5cGUgPSBuZXdUeXBlLnJl
bGVhc2UoKTsKKyAgICBtX2lucHV0VHlwZSA9IHN0ZDo6bW92ZShuZXdUeXBlKTsKICAgICBtX2lu
cHV0VHlwZS0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggM2JiODYwNTQ3NDAx
NDA2MGI1MGJlMzYwZjBlYmFhZjNhNjc5MDU5YS4uMDQzMzU3OGYyY2NhOWU1YTEyOGNjNDQ4Y2Uw
OTAzNWQ3OWM5OTZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAg
LTQ0Miw3ICs0NDIsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAg
Ym9vbCBtX2hhc1RvdWNoRXZlbnRIYW5kbGVyIDogMTsKICNlbmRpZgotICAgIE93blB0cjxJbnB1
dFR5cGU+IG1faW5wdXRUeXBlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnB1dFR5cGU+IG1faW5w
dXRUeXBlOwogICAgIC8vIFRoZSBJbWFnZUxvYWRlciBtdXN0IGJlIG93bmVkIGJ5IHRoaXMgZWxl
bWVudCBiZWNhdXNlIHRoZSBsb2FkZXIgY29kZSBhc3N1bWVzCiAgICAgLy8gdGhhdCBpdCBsaXZl
cyBhcyBsb25nIGFzIGl0cyBvd25pbmcgZWxlbWVudCBsaXZlcy4gSWYgd2UgbW92ZSB0aGUgbG9h
ZGVyIGludG8KICAgICAvLyB0aGUgSW1hZ2VJbnB1dCBvYmplY3Qgd2UgbWF5IGRlbGV0ZSB0aGUg
bG9hZGVyIHdoaWxlIHRoaXMgZWxlbWVudCBsaXZlcyBvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlk
ZGVuSW5wdXRUeXBlLmNwcAppbmRleCA3MmMwNjhhYmZiYzEzYTRiNzdkODVjMDdmYWQ0ZGFhMDEw
YWE3ZDA3Li43MWY3YzFjZDc1OWNhZTA0ZGJhYTJkMGJmZWU4NDMwYjkzNjQwMjY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCkBAIC0zNywxNyArMzcsMTEgQEAKICNp
bmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5j
bHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLU93blB0
cjxJbnB1dFR5cGU+IEhpZGRlbklucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBIaWRkZW5JbnB1dFR5cGUoZWxlbWVu
dCkpOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIEhpZGRlbklucHV0VHlwZTo6Zm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OmhpZGRlbigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKaW5kZXggZDc2MjNiYzUyZjA1MzEzMWUw
Y2UzNGE3YTliM2E5YWU3MzRlNGQ4OS4uZjcwODdjMDdkMmNjNGFhYzk4OTEzOWNjMjkzNDYxMWI1
YmFiY2FkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCkBAIC0zNywxMCAr
MzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhpZGRlbklucHV0VHlwZSA6IHB1
YmxpYyBJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBj
cmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IEhpZGRlbklucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IElucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBIaWRkZW5JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxl
bWVudCkgOiBJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRm9y
bUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0
YXRlJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4
IDAzODEyYjJmMzg1NDM2ZTNjODY3ZDJlOGUzNzc4ZWE0MjZmNTk5MWEuLmJiMGRmODk5ZDc2MWI1
MjA5Y2U5OWI2NWMxNDQwMDc3ZDMzYjE1NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1
dFR5cGUuY3BwCkBAIC0zMywyMiArMzMsMTYgQEAKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5o
IgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIEltYWdlSW5wdXRUeXBlOjpJbWFnZUlucHV0
VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQorSW1hZ2VJbnB1dFR5cGU6OkltYWdlSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgOiBCYXNlQnV0dG9uSW5wdXRU
eXBlKGVsZW1lbnQpCiB7CiB9CiAKLU93blB0cjxJbnB1dFR5cGU+IEltYWdlSW5wdXRUeXBlOjpj
cmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IEltYWdlSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBJ
bWFnZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5w
dXRUeXBlTmFtZXM6OmltYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lt
YWdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKaW5k
ZXggYjBkYzk3YTQzMjkzZWMyOTJhNjI1YzAzY2UzMjRkMWIxYzQ4OTg4NC4uYjExMTYyMTBjNzNi
MjFmOWQ0NTk3MGEzNmU2NWM3NmNhYWM0Y2E2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbWFnZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1
dFR5cGUuaApAQCAtNDAsMTAgKzQwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJ
bWFnZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlQnV0dG9uSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAg
ICBleHBsaWNpdCBJbWFnZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZhdGU6
Ci0gICAgZXhwbGljaXQgSW1hZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGJvb2wgaXNGb3JtRGF0YUFwcGVuZGFibGUoKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkg
Y29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggODYwYjcxNzI5
NjgwOGU4YzRjMWI1YTYwYzUzODQ0MzJkYmZhM2U1Yy4uMGMwY2UzZmVhMDZlY2MyMzgzZWRjNjhi
NjBjNDAzYzM4YTBhMTIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtODMsNzQg
KzgzLDg2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKIAotdHlwZWRlZiBPd25QdHI8SW5wdXRUeXBlPiAoKklucHV0VHlwZUZhY3RvcnlGdW5jdGlv
bikoSFRNTElucHV0RWxlbWVudCYpOwordHlwZWRlZiBib29sIChSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjoqSW5wdXRUeXBlQ29uZGl0aW9uYWxGdW5jdGlvbikoKTsKK3R5cGVkZWYgY29uc3QgQXRv
bWljU3RyaW5nJiAoKklucHV0VHlwZU5hbWVGdW5jdGlvbikoKTsKK3R5cGVkZWYgc3RkOjp1bmlx
dWVfcHRyPElucHV0VHlwZT4gKCpJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24pKEhUTUxJbnB1dEVs
ZW1lbnQmKTsKIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIElucHV0VHlwZUZhY3RvcnlG
dW5jdGlvbiwgQ2FzZUZvbGRpbmdIYXNoPiBJbnB1dFR5cGVGYWN0b3J5TWFwOwogCi1zdGF0aWMg
T3duUHRyPElucHV0VHlwZUZhY3RvcnlNYXA+IGNyZWF0ZUlucHV0VHlwZUZhY3RvcnlNYXAoKQor
dGVtcGxhdGU8Y2xhc3MgVD4KK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBjcmVh
dGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBPd25QdHI8SW5w
dXRUeXBlRmFjdG9yeU1hcD4gbWFwID0gYWRvcHRQdHIobmV3IElucHV0VHlwZUZhY3RvcnlNYXAp
OworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFQ+KGVsZW1lbnQpOworfQogCi0gICAgLy8g
RklYTUU6IFJlbW92ZSB1bm5lY2Vzc2FyeSAnJidzIGZyb20gdGhlIGZvbGxvd2luZyBtYXAuYWRk
IG9wZXJhdGlvbnMKLSAgICAvLyBvbmNlIHdlIHN3aXRjaCB0byBhIG5vbi1icm9rZW4gVmlzdWFs
IFN0dWRpbyBjb21waWxlci4gIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjEyMzUKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6YnV0dG9uKCksICZCdXR0b25J
bnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmNoZWNrYm94
KCksICZDaGVja2JveElucHV0VHlwZTo6Y3JlYXRlKTsKK3N0YXRpYyB2b2lkIHBvcHVsYXRlSW5w
dXRUeXBlRmFjdG9yeU1hcChJbnB1dFR5cGVGYWN0b3J5TWFwJiBtYXApCit7CisgICAgc3RhdGlj
IGNvbnN0IHN0cnVjdCBJbnB1dFR5cGVzIHsKKyAgICAgICAgSW5wdXRUeXBlQ29uZGl0aW9uYWxG
dW5jdGlvbiBjb25kaXRpb25hbEZ1bmN0aW9uOworICAgICAgICBJbnB1dFR5cGVOYW1lRnVuY3Rp
b24gbmFtZUZ1bmN0aW9uOworICAgICAgICBJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24gZmFjdG9y
eUZ1bmN0aW9uOworICAgIH0gaW5wdXRUeXBlc1tdID0geworICAgICAgICB7IG51bGxwdHIsICZJ
bnB1dFR5cGVOYW1lczo6YnV0dG9uLCAmY3JlYXRlSW5wdXRUeXBlPEJ1dHRvbklucHV0VHlwZT4g
fSwKKyAgICAgICAgeyBudWxscHRyLCAmSW5wdXRUeXBlTmFtZXM6OmNoZWNrYm94LCAmY3JlYXRl
SW5wdXRUeXBlPENoZWNrYm94SW5wdXRUeXBlPiB9LAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpjb2xvcigpLCAmQ29sb3JJbnB1dFR5
cGU6OmNyZWF0ZSk7CisgICAgICAgIHsgbnVsbHB0ciwgJklucHV0VHlwZU5hbWVzOjpjb2xvciwg
JmNyZWF0ZUlucHV0VHlwZTxDb2xvcklucHV0VHlwZT4gfSwKICNlbmRpZgogI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX0RBVEUpCi0gICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuaW5wdXRUeXBlRGF0ZUVuYWJsZWQoKSkKLSAgICAgICAgbWFwLT5hZGQoSW5wdXRU
eXBlTmFtZXM6OmRhdGUoKSwgJkRhdGVJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgICAgIHsgJlJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlucHV0VHlwZURhdGVFbmFibGVkLCAmSW5wdXRUeXBlTmFt
ZXM6OmRhdGUsICZjcmVhdGVJbnB1dFR5cGU8RGF0ZUlucHV0VHlwZT4gfSwKICNlbmRpZgogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpCi0gICAgaWYgKFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5wdXRUeXBlRGF0ZVRpbWVFbmFibGVk
KCkpCi0gICAgICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpkYXRldGltZSgpLCAmRGF0ZVRp
bWVJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgICAgIHsgJlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OmlucHV0VHlwZURhdGVUaW1lRW5hYmxlZCwgJklucHV0VHlwZU5hbWVzOjpkYXRldGltZSwgJmNy
ZWF0ZUlucHV0VHlwZTxEYXRlVGltZUlucHV0VHlwZT4gfSwKICNlbmRpZgogI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpCi0gICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuaW5wdXRUeXBlRGF0ZVRpbWVMb2NhbEVuYWJsZWQoKSkKLSAgICAg
ICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmRhdGV0aW1lbG9jYWwoKSwgJkRhdGVUaW1lTG9j
YWxJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgICAgIHsgJlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OmlucHV0VHlwZURhdGVUaW1lTG9jYWxFbmFibGVkLCAmSW5wdXRUeXBlTmFtZXM6OmRhdGV0aW1l
bG9jYWwsICZjcmVhdGVJbnB1dFR5cGU8RGF0ZVRpbWVMb2NhbElucHV0VHlwZT4gfSwKICNlbmRp
ZgotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjplbWFpbCgpLCAmRW1haWxJbnB1dFR5cGU6
OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmZpbGUoKSwgJkZpbGVJbnB1
dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OmhpZGRlbigpLCAm
SGlkZGVuSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpp
bWFnZSgpLCAmSW1hZ2VJbnB1dFR5cGU6OmNyZWF0ZSk7CisgICAgICAgIHsgbnVsbHB0ciwgJklu
cHV0VHlwZU5hbWVzOjplbWFpbCwgJmNyZWF0ZUlucHV0VHlwZTxFbWFpbElucHV0VHlwZT4gfSwK
KyAgICAgICAgeyBudWxscHRyLCAmSW5wdXRUeXBlTmFtZXM6OmZpbGUsICZjcmVhdGVJbnB1dFR5
cGU8RmlsZUlucHV0VHlwZT4gfSwKKyAgICAgICAgeyBudWxscHRyLCAmSW5wdXRUeXBlTmFtZXM6
OmhpZGRlbiwgJmNyZWF0ZUlucHV0VHlwZTxIaWRkZW5JbnB1dFR5cGU+IH0sCisgICAgICAgIHsg
bnVsbHB0ciwgJklucHV0VHlwZU5hbWVzOjppbWFnZSwgJmNyZWF0ZUlucHV0VHlwZTxJbWFnZUlu
cHV0VHlwZT4gfSwKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9NT05USCkKLSAgICBpZiAoUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1dFR5cGVNb250aEVuYWJsZWQo
KSkKLSAgICAgICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6Om1vbnRoKCksICZNb250aElucHV0
VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyAmUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aW5wdXRU
eXBlTW9udGhFbmFibGVkLCAmSW5wdXRUeXBlTmFtZXM6Om1vbnRoLCAmY3JlYXRlSW5wdXRUeXBl
PE1vbnRoSW5wdXRUeXBlPiB9LAogI2VuZGlmCi0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6
Om51bWJlcigpLCAmTnVtYmVySW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0
VHlwZU5hbWVzOjpwYXNzd29yZCgpLCAmUGFzc3dvcmRJbnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAg
bWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OnJhZGlvKCksICZSYWRpb0lucHV0VHlwZTo6Y3JlYXRl
KTsKLSAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6cmFuZ2UoKSwgJlJhbmdlSW5wdXRUeXBl
OjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjpyZXNldCgpLCAmUmVzZXRJ
bnB1dFR5cGU6OmNyZWF0ZSk7Ci0gICAgbWFwLT5hZGQoSW5wdXRUeXBlTmFtZXM6OnNlYXJjaCgp
LCAmU2VhcmNoSW5wdXRUeXBlOjpjcmVhdGUpOwotICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVz
OjpzdWJtaXQoKSwgJlN1Ym1pdElucHV0VHlwZTo6Y3JlYXRlKTsKLSAgICBtYXAtPmFkZChJbnB1
dFR5cGVOYW1lczo6dGVsZXBob25lKCksICZUZWxlcGhvbmVJbnB1dFR5cGU6OmNyZWF0ZSk7Cisg
ICAgICAgIHsgbnVsbHB0ciwgJklucHV0VHlwZU5hbWVzOjpudW1iZXIsICZjcmVhdGVJbnB1dFR5
cGU8TnVtYmVySW5wdXRUeXBlPiB9LAorICAgICAgICB7IG51bGxwdHIsICZJbnB1dFR5cGVOYW1l
czo6cGFzc3dvcmQsICZjcmVhdGVJbnB1dFR5cGU8UGFzc3dvcmRJbnB1dFR5cGU+IH0sCisgICAg
ICAgIHsgbnVsbHB0ciwgJklucHV0VHlwZU5hbWVzOjpyYWRpbywgJmNyZWF0ZUlucHV0VHlwZTxS
YWRpb0lucHV0VHlwZT4gfSwKKyAgICAgICAgeyBudWxscHRyLCAmSW5wdXRUeXBlTmFtZXM6OnJh
bmdlLCAmY3JlYXRlSW5wdXRUeXBlPFJhbmdlSW5wdXRUeXBlPiB9LAorICAgICAgICB7IG51bGxw
dHIsICZJbnB1dFR5cGVOYW1lczo6cmVzZXQsICZjcmVhdGVJbnB1dFR5cGU8UmVzZXRJbnB1dFR5
cGU+IH0sCisgICAgICAgIHsgbnVsbHB0ciwgJklucHV0VHlwZU5hbWVzOjpzZWFyY2gsICZjcmVh
dGVJbnB1dFR5cGU8U2VhcmNoSW5wdXRUeXBlPiB9LAorICAgICAgICB7IG51bGxwdHIsICZJbnB1
dFR5cGVOYW1lczo6c3VibWl0LCAmY3JlYXRlSW5wdXRUeXBlPFN1Ym1pdElucHV0VHlwZT4gfSwK
KyAgICAgICAgeyBudWxscHRyLCAmSW5wdXRUeXBlTmFtZXM6OnRlbGVwaG9uZSwgJmNyZWF0ZUlu
cHV0VHlwZTxUZWxlcGhvbmVJbnB1dFR5cGU+IH0sCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElN
RSkKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbnB1
dFR5cGVUaW1lRW5hYmxlZCgpKQotICAgICAgICBtYXAtPmFkZChJbnB1dFR5cGVOYW1lczo6dGlt
ZSgpLCAmVGltZUlucHV0VHlwZTo6Y3JlYXRlKTsKKyAgICAgICAgeyAmUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6aW5wdXRUeXBlVGltZUVuYWJsZWQsICZJbnB1dFR5cGVOYW1lczo6dGltZSwgJmNy
ZWF0ZUlucHV0VHlwZTxUaW1lSW5wdXRUeXBlPiB9LAogI2VuZGlmCi0gICAgbWFwLT5hZGQoSW5w
dXRUeXBlTmFtZXM6OnVybCgpLCAmVVJMSW5wdXRUeXBlOjpjcmVhdGUpOworICAgICAgICB7IG51
bGxwdHIsICZJbnB1dFR5cGVOYW1lczo6dXJsLCAmY3JlYXRlSW5wdXRUeXBlPFVSTElucHV0VHlw
ZT4gfSwKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9XRUVLKQotICAgIGlmIChSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlucHV0VHlwZVdlZWtFbmFibGVkKCkpCi0gICAg
ICAgIG1hcC0+YWRkKElucHV0VHlwZU5hbWVzOjp3ZWVrKCksICZXZWVrSW5wdXRUeXBlOjpjcmVh
dGUpOworICAgICAgICB7ICZSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppbnB1dFR5cGVXZWVrRW5h
YmxlZCwgJklucHV0VHlwZU5hbWVzOjp3ZWVrLCAmY3JlYXRlSW5wdXRUeXBlPFdlZWtJbnB1dFR5
cGU+IH0sCiAjZW5kaWYKLSAgICAvLyBObyBuZWVkIHRvIHJlZ2lzdGVyICJ0ZXh0IiBiZWNhdXNl
IGl0IGlzIHRoZSBkZWZhdWx0IHR5cGUuCisgICAgICAgIC8vIE5vIG5lZWQgdG8gcmVnaXN0ZXIg
InRleHQiIGJlY2F1c2UgaXQgaXMgdGhlIGRlZmF1bHQgdHlwZS4KKyAgICB9OwogCi0gICAgcmV0
dXJuIG1hcDsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChp
bnB1dFR5cGVzKTsgKytpKSB7CisgICAgICAgIGF1dG8gY29uZGl0aW9uYWxGdW5jdGlvbiA9IGlu
cHV0VHlwZXNbaV0uY29uZGl0aW9uYWxGdW5jdGlvbjsKKyAgICAgICAgaWYgKCFjb25kaXRpb25h
bEZ1bmN0aW9uIHx8IChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLipj
b25kaXRpb25hbEZ1bmN0aW9uKSgpKQorICAgICAgICAgICAgbWFwLmFkZChpbnB1dFR5cGVzW2ld
Lm5hbWVGdW5jdGlvbigpLCBpbnB1dFR5cGVzW2ldLmZhY3RvcnlGdW5jdGlvbik7CisgICAgfQog
fQogCi1Pd25QdHI8SW5wdXRUeXBlPiBJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGVOYW1lKQorc3RkOjp1bmlxdWVfcHRy
PElucHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCwg
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlTmFtZSkKIHsKLSAgICBzdGF0aWMgY29uc3QgSW5wdXRU
eXBlRmFjdG9yeU1hcCogZmFjdG9yeU1hcCA9IGNyZWF0ZUlucHV0VHlwZUZhY3RvcnlNYXAoKS5s
ZWFrUHRyKCk7Ci0gICAgT3duUHRyPElucHV0VHlwZT4gKCpmYWN0b3J5KShIVE1MSW5wdXRFbGVt
ZW50JikgPSB0eXBlTmFtZS5pc0VtcHR5KCkgPyAwIDogZmFjdG9yeU1hcC0+Z2V0KHR5cGVOYW1l
KTsKLSAgICBpZiAoIWZhY3RvcnkpCi0gICAgICAgIGZhY3RvcnkgPSBUZXh0SW5wdXRUeXBlOjpj
cmVhdGU7Ci0gICAgcmV0dXJuIGZhY3RvcnkoZWxlbWVudCk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPElucHV0VHlwZUZhY3RvcnlNYXA+IGZhY3RvcnlNYXA7CisgICAgaWYgKGZhY3RvcnlN
YXAuZ2V0KCkuaXNFbXB0eSgpKQorICAgICAgICBwb3B1bGF0ZUlucHV0VHlwZUZhY3RvcnlNYXAo
ZmFjdG9yeU1hcCk7CisKKyAgICBpZiAoIXR5cGVOYW1lLmlzRW1wdHkoKSkgeworICAgICAgICBp
ZiAoYXV0byBmYWN0b3J5ID0gZmFjdG9yeU1hcC5nZXQoKS5nZXQodHlwZU5hbWUpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhY3RvcnkoZWxlbWVudCk7CisgICAgfQorICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPFRleHRJbnB1dFR5cGU+KGVsZW1lbnQpOwogfQogCi1Pd25QdHI8SW5wdXRUeXBl
PiBJbnB1dFR5cGU6OmNyZWF0ZVRleHQoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKK3N0ZDo6
dW5pcXVlX3B0cjxJbnB1dFR5cGU+IElucHV0VHlwZTo6Y3JlYXRlVGV4dChIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KQogewotICAgIHJldHVybiBUZXh0SW5wdXRUeXBlOjpjcmVhdGUoZWxlbWVu
dCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VGV4dElucHV0VHlwZT4oZWxlbWVudCk7
CiB9CiAKIElucHV0VHlwZTo6fklucHV0VHlwZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRl
eCA1NDhkNDU2YmY3MzBhNDA0N2VhZWIwMmExZDM5ZDEzZTIzMjkyODgyLi4wNzc5YTZkOWQwYmYx
YTVjNDk1MDE1ZWNlNmI1NjQ0MTMxMTI3ZjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAg
LTc0LDggKzc0LDggQEAgY2xhc3MgSW5wdXRUeXBlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIAogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYsIGNvbnN0IEF0b21pY1N0cmluZyYpOwotICAgIHN0YXRpYyBPd25QdHI8
SW5wdXRUeXBlPiBjcmVhdGVUZXh0KEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmLCBjb25zdCBB
dG9taWNTdHJpbmcmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElucHV0VHlwZT4gY3Jl
YXRlVGV4dChIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB+SW5wdXRUeXBlKCk7CiAK
ICAgICBzdGF0aWMgYm9vbCB0aGVtZVN1cHBvcnRzRGF0YUxpc3RVSShJbnB1dFR5cGUqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKaW5kZXggNDhlYWQxZmU4ZTI0MTRiNjU1
MWY0N2IzM2Y1OWNiNzRjYmI1MTVkMS4uNjgwY2NlZTg0NGI3ZjU3N2NhZTg2ODlmNjU0YTExMDJk
YzAzZjMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKQEAgLTM5LDcg
KzM5LDYgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvRGF0
ZU1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDksMTEgKzQ4LDYgQEAgc3Rh
dGljIGNvbnN0IGludCBtb250aERlZmF1bHRTdGVwID0gMTsKIHN0YXRpYyBjb25zdCBpbnQgbW9u
dGhEZWZhdWx0U3RlcEJhc2UgPSAwOwogc3RhdGljIGNvbnN0IGludCBtb250aFN0ZXBTY2FsZUZh
Y3RvciA9IDE7CiAKLU93blB0cjxJbnB1dFR5cGU+IE1vbnRoSW5wdXRUeXBlOjpjcmVhdGUoSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1vbnRo
SW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBNb250aElucHV0VHlwZTo6YXR0YWNoKCkK
IHsKICAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlw
ZU1vbnRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAppbmRleCA5YjU0ZTBiNjA0
YTFkMjNmMzhlNjMwYWNlMzA2MTMyZDFiY2QzZWQ1Li4xYzdmZjgwOTQzYjZkY2FkMzZiMjdlNTNk
MDgzZDczZmRjOTY5YzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5w
dXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCkBAIC0z
OCwxMCArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1vbnRoSW5wdXRUeXBl
IDogcHVibGljIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsK
KyAgICBleHBsaWNpdCBNb250aElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6
IEJhc2VNb250aElucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNp
dCBNb250aElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VNb250aElu
cHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBj
b25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAppbmRl
eCAyZjMwMmYyY2EzYzIyNzM1NDZlYjkyMTFmNjgxZTg4Y2Y5Y2UzZWE0Li41ODg4MjA4MDlhMDAy
MjllYmI2Nzk5YzdmNTY3ZTdjYTNkZjA4NjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL051bWJlcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJ
bnB1dFR5cGUuY3BwCkBAIC00NCw3ICs0NCw2IEBACiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1
ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTkzLDEx
ICs5Miw2IEBAIHN0YXRpYyBSZWFsTnVtYmVyUmVuZGVyU2l6ZSBjYWxjdWxhdGVSZW5kZXJTaXpl
KGNvbnN0IERlY2ltYWwmIHZhbHVlKQogICAgIHJldHVybiBSZWFsTnVtYmVyUmVuZGVyU2l6ZShz
aXplT2ZTaWduICsgc2l6ZU9mWmVybyAsIG51bWJlck9mWmVyb0FmdGVyRGVjaW1hbFBvaW50ICsg
c2l6ZU9mRGlnaXRzKTsKIH0KIAotT3duUHRyPElucHV0VHlwZT4gTnVtYmVySW5wdXRUeXBlOjpj
cmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IE51bWJlcklucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgTnVtYmVySW5wdXRUeXBl
OjphdHRhY2goKQogewogICAgIFRleHRGaWVsZElucHV0VHlwZTo6YXR0YWNoKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCBmOTlhNjZmNzdiNDlhNzEzNWRiYWFiOGI3
MmU5MTllN2E3ZTRkZGY5Li44ZDhhNWE0OWQ5ZDk0MmE3YWVkMTE3ZTgwNDBjMWViOWM0Yjg5OWY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTnVtYmVySW5wdXRUeXBlIDogcHVibGljIFRl
eHRGaWVsZElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxJbnB1dFR5cGU+
IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgTnVtYmVySW5wdXRUeXBl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQp
IHsgfQogCiBwcml2YXRlOgotICAgIE51bWJlcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBl
bGVtZW50KSA6IFRleHRGaWVsZElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZv
cm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlv
cikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCmlu
ZGV4IGZiNTdhM2E3ZjYyN2ZhNzUzZGRmYTA2OWUxYmM5YmNmODFlNTU0MTQuLjdmN2UwZjlmY2Nh
MzQ0MmM0YzRkZmM2MzQ1NzM2NDEwOTgyM2U0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFz
c3dvcmRJbnB1dFR5cGUuY3BwCkBAIC0zNiwxNSArMzYsOSBAQAogI2luY2x1ZGUgIkhUTUxJbnB1
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1Pd25QdHI8SW5wdXRUeXBlPiBQYXNzd29yZElucHV0VHlwZTo6Y3JlYXRlKEhU
TUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXNz
d29yZElucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgUGFzc3dv
cmRJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0
VHlwZU5hbWVzOjpwYXNzd29yZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Q
YXNzd29yZElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlw
ZS5oCmluZGV4IGVhZjE0OGVmZTZkYzcxY2YxMjk1MTYxNzBlNjlmYzRkMzk4MTZjMzAuLjQzYTdi
NDM2YzYxODY1Zjc2Njc3YTlkOTFjNTEzNzZhZmI3MjlkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1Bhc3N3b3JkSW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgUGFzc3dvcmRJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZVRleHRJbnB1dFR5cGUg
ewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0
RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFBhc3N3b3JkSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6
Ci0gICAgUGFzc3dvcmRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNl
VGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9W
RVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcAppbmRleCAwYzIyNDE2
YWY2NTllMDE1MjM1MGYyNjJiNjcyZjk0NjVmMmU5NmUyLi4yMzlhOWNlNjBhY2ZkYzcyNjBmOWQ2
MDg5ZmQ2MTM3NTQ1ZGFjZWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlv
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNw
cApAQCAtMzMsMTcgKzMzLDExIEBACiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3BhdGlhbE5hdmlnYXRpb24uaCIKLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKLU93blB0cjxJbnB1dFR5cGU+IFJhZGlvSW5wdXRUeXBlOjpjcmVh
dGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3
IFJhZGlvSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBSYWRp
b0lucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRU
eXBlTmFtZXM6OnJhZGlvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlv
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmgKaW5kZXgg
MTQxYmM0ODc5YTg3ZGVmMGU2YWMzMmI2YzU5YzQ2MzQ2OWZlODEzNS4uMzE3Y2IyODhiNGI0MjY2
ZTM2ZDc0ZGMyM2FhN2ZhNjE3MjhkYmYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9SYWRpb0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5
cGUuaApAQCAtMzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSYWRp
b0lucHV0VHlwZSA6IHB1YmxpYyBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAg
ICBleHBsaWNpdCBSYWRpb0lucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJh
c2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgUmFkaW9JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2hlY2th
YmxlSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdmFs
dWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3Ry
aW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9S
YW5nZUlucHV0VHlwZS5jcHAKaW5kZXggMDIxNDkyZjJhOWJlZDE2MzVkYjE1NTA5ZjgwYmMzZDM4
YmNkYWM0Ni4uMWRhYjU0Y2Y2ZDc2NGY4ZWViMDc5ZTRiOTAwYmY1YjI4NWUwNjkyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTQ5LDcgKzQ5LDYgQEAKICNpbmNs
dWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiAjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKICNpbmNsdWRlICJUb3VjaC5oIgpAQCAtNzcsMTEgKzc2LDYgQEAgc3RhdGljIERl
Y2ltYWwgZW5zdXJlTWF4aW11bShjb25zdCBEZWNpbWFsJiBwcm9wb3NlZFZhbHVlLCBjb25zdCBE
ZWNpbWFsJiBtaW5pbXUKICAgICByZXR1cm4gcHJvcG9zZWRWYWx1ZSA+PSBtaW5pbXVtID8gcHJv
cG9zZWRWYWx1ZSA6IHN0ZDo6bWF4KG1pbmltdW0sIGZhbGxiYWNrVmFsdWUpOwogfQogCi1Pd25Q
dHI8SW5wdXRUeXBlPiBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBSYW5nZUlucHV0VHlwZShlbGVtZW50
KSk7Ci19Ci0KIFJhbmdlSW5wdXRUeXBlOjpSYW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
JiBlbGVtZW50KQogICAgIDogSW5wdXRUeXBlKGVsZW1lbnQpCiAjaWYgRU5BQkxFKERBVEFMSVNU
X0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKaW5kZXggYThiYTNmNDI1
ZTU1ZmE4ODk0ZTFmNTQ5ODUyZTJlNTgyYjc4ZGI1MC4uZDExMmYxYjE4Y2ZiZTA3ODljNWUzN2U4
NWIxMmYzZjIwYjQ3ZDdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAt
MzksMTAgKzM5LDkgQEAgY2xhc3MgU2xpZGVyVGh1bWJFbGVtZW50OwogCiBjbGFzcyBSYW5nZUlu
cHV0VHlwZSBGSU5BTCA6IHB1YmxpYyBJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBP
d25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0
IFJhbmdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBs
aWNpdCBSYW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdmlydHVhbCB2b2lk
IGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJv
bFR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UmVzZXRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5j
cHAKaW5kZXggMTA1NmYxY2I2MTBmMTU3ZDNlZjI5NGMxMGUyODQxMTNlNTdiMDBmNS4uYzMyODhk
ZDY3MWUyNGM1YTZlYWU0NTgwMzc2YWI5ODQ1MGY1OGM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9S
ZXNldElucHV0VHlwZS5jcHAKQEAgLTM3LDE1ICszNyw5IEBACiAjaW5jbHVkZSAiSFRNTElucHV0
RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTG9jYWxp
emVkU3RyaW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotT3duUHRyPElucHV0VHlwZT4gUmVzZXRJbnB1dFR5cGU6OmNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUmVzZXRJ
bnB1dFR5cGUoZWxlbWVudCkpOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIFJlc2V0SW5wdXRU
eXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1l
czo6cmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaAppbmRleCA0NWE4OWFi
MzNiMjkxNjMyMzc3Yzk5NTQ1ZTljNjk1ZTkwMTYxYzA1Li5mNzQ5ZjY4ZDAxNThkNmQ2NGVhMWY0
ZmM3MjM2Yzg5ZDBjMjBkMGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5oCkBA
IC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc2V0SW5wdXRU
eXBlIDogcHVibGljIEJhc2VCdXR0b25JbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBP
d25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0
IFJlc2V0SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklu
cHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZXNldElucHV0
VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxl
bWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlw
ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZhbGlkYXRpb24o
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVu
dChFdmVudCopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFy
Y2hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3Bw
CmluZGV4IGZjYWViMmU5ODQ4MWZmNjFiYzdmMjNkMmU3MWE1MjNhMzA1ZTkxZDIuLmE1NDc1MWRj
MzczYzkwZjQ2NjRlNDJjMDQzYjJkYmFhOWM5MGUwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Nl
YXJjaElucHV0VHlwZS5jcHAKQEAgLTM4LDEzICszOCwxMiBAQAogI2luY2x1ZGUgIlJlbmRlclNl
YXJjaEZpZWxkLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHRDb250
cm9sSW5uZXJFbGVtZW50cy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIFNl
YXJjaElucHV0VHlwZTo6U2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
CitTZWFyY2hJbnB1dFR5cGU6OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KQogICAgIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkKICAgICAsIG1fcmVzdWx0c0J1
dHRvbigwKQogICAgICwgbV9jYW5jZWxCdXR0b24oMCkKQEAgLTUyLDExICs1MSw2IEBAIGlubGlu
ZSBTZWFyY2hJbnB1dFR5cGU6OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KQogewogfQogCi1Pd25QdHI8SW5wdXRUeXBlPiBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgU2Vh
cmNoSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmF0dGFj
aCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2goKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1NlYXJjaElucHV0VHlwZS5oCmluZGV4IGE2MTNhZWYzYWRjNTIzMGEwZjE1NGFlNzdlN2QwNWVi
NzExYTgzNTYuLjg5MDMxOWVkNTQyZDZiNWJjMDdjY2M4ZjA2MjE4ZTA0MmNmNTg4ZDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaApAQCAtNDEsMTIgKzQxLDExIEBAIGNsYXNz
IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ7CiAKIGNsYXNzIFNlYXJjaElucHV0VHlw
ZSA6IHB1YmxpYyBCYXNlVGV4dElucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0
cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQgU2Vh
cmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmKTsKIAogICAgIHZvaWQgc3RvcFNlYXJjaEV2
ZW50VGltZXIoKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTZWFyY2hJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCYpOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgYWRkU2VhcmNoUmVzdWx0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBS
ZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgY29uc3Qg
T1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5jcHAKaW5kZXggZGVk
NDFkYmY1ZmJmOWMxMDAxZTZmNDY4OTQ3NWFiYTIxZWEyNGFmYy4uMWQwYjcyZWQ5NWRhNTFmMjA2
OTM3MzA0ZGM3MDFjNmFmMWYwNGEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9T
dWJtaXRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRU
eXBlLmNwcApAQCAtMzgsMTUgKzM4LDkgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdz
LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1Pd25QdHI8SW5wdXRUeXBlPiBTdWJtaXRJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgU3VibWl0SW5wdXRUeXBl
KGVsZW1lbnQpKTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBTdWJtaXRJbnB1dFR5cGU6OmZv
cm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpzdWJt
aXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5oCmluZGV4IGQ5ZDg3YTE3NTQy
YTkzM2QwY2MwZTQ4ODMwYmNmM2YyYWY3MGE3ZGUuLmY0ZTYzZmJkMzcxODc1Yzc1YTM3OWJlMGQ4
MjI3MWNkZjBiYzU1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5w
dXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJbnB1dFR5cGUuaApAQCAt
MzcsMTAgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTdWJtaXRJbnB1dFR5
cGUgOiBwdWJsaWMgQmFzZUJ1dHRvbklucHV0VHlwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93
blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Jik7CisgICAgZXhwbGljaXQg
U3VibWl0SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUJ1dHRvbklu
cHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTdWJtaXRJbnB1
dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVs
ZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5
cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9y
bURhdGFMaXN0JiwgYm9vbCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzUmVxdWlyZWQoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBo
b25lSW5wdXRUeXBlLmNwcAppbmRleCAyZDg3ZDJmOGQ3YTBiODE3NTE0YzM4MjU1ODVlMDMyNGE2
NGY5NWUwLi43N2ZkMGUwYTRiYzBmNzIwMjRhNjhmNDZkZjRlOWEzYWRhOGZkY2U5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwCkBAIC0zMywxNSArMzMsOSBA
QAogCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5h
bWVzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1Pd25QdHI8SW5wdXRUeXBlPiBUZWxlcGhvbmVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGVsZXBob25l
SW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQogdm9pZCBUZWxlcGhvbmVJbnB1dFR5cGU6OmF0dGFj
aCgpCiB7CiAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2goKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCmluZGV4IGFhNGFhNTI3YTY5M2RhNTBiYjM3NjRhYjJi
YjRmZjk3MDEyMTdlOWQuLmYyZDgzNzlkZTQ4YzNhNGUwOTllOGU0MDAyYWVkMjY5ZmE3ZjZhYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBUZWxlcGhvbmVJbnB1dFR5cGUgOiBw
dWJsaWMgQmFzZVRleHRJbnB1dFR5cGUgewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8SW5w
dXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCYpOworICAgIGV4cGxpY2l0IFRlbGVwaG9u
ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBl
KGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFRlbGVwaG9uZUlucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RTcGVlY2hBdHRyaWJ1dGUoKSBPVkVSUklERTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3BwCmluZGV4IGM1ZjNhOGZhZDUxMTMyZmZlZDFl
NzU1OTljZWNmODM4OGQyMjE5ZDUuLjg3ZWI5Mzg3MTE5M2E3OTI3OTVmNGFmYWQ2ZTUxOGZlNWEx
OTgyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmNwcApAQCAtMzMsMTcgKzMz
LDExIEBACiAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRU
eXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLU93blB0cjxJbnB1dFR5cGU+
IFRleHRJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgVGV4dElucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQg
VGV4dElucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBUZXh0RmllbGRJbnB1dFR5cGU6OmF0dGFj
aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuaAppbmRleCBiYTI0Y2E5MjI2MmRhNmJj
MGVmYjNlYWU5OGRjZDZhZDdkODIyZmQ0Li40MWIyYTYyOWIxZWI3OWYwODJlNGU3NWFhNGNkNmQ5
MTE3NzhmN2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuaApAQCAtMzcsMTAgKzM3
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBUZXh0SW5wdXRUeXBlIDogcHVibGlj
IEJhc2VUZXh0SW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlw
ZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBUZXh0SW5wdXRUeXBl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgVGV4dElucHV0VHlwZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFJlc3BlY3RTcGVlY2hBdHRyaWJ1dGUoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rp
bWVJbnB1dFR5cGUuY3BwCmluZGV4IGU3NzM5MzQ5OTgzM2EzOTA1ZWI3NjZiNWMzYWIwZWY1Mzcz
MDczYTkuLmQ3NTFmNTFmODFjMDAzOTM4OWFlNDZmOTYzMzYwNDZmMmI1YmE5M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcApAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUg
PHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9EYXRlTWF0aC5oPgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC01NCwxMSArNTMsNiBAQCBUaW1lSW5wdXRUeXBlOjpUaW1lSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiB7CiB9CiAKLU93blB0cjxJbnB1dFR5
cGU+IFRpbWVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewot
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGltZUlucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZv
aWQgVGltZUlucHV0VHlwZTo6YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJs
ZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1
dFR5cGUuaAppbmRleCAxOTU4ZDc3OThkZWUyOWY3ODdkMmZmZGEyNmQwNjQ4NWRlNmNmOGY2Li4w
OTFmMjIyNTViYjNlMWNmMjhlMzkxMGMxYWE3YzRjZjExNjY4Njk5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuaApAQCAtMzgsMTAgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBUaW1lSW5wdXRUeXBlIDogcHVibGljIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRl
KEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBUaW1lSW5wdXRUeXBlKEhUTUxJbnB1
dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBUaW1lSW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBP
VkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcAppbmRleCAxYjU1ZGM4ZTU2
NmUzNDI5YjM0MjAxYzliYjY5YjE2Yjg0ZTc3MTI0Li5jYmEyOWVjNTA1YTQ3YWMyYjUwNGJiZTZm
MmZlMThhNDk5YWZmMjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCkBAIC0z
NSwxNSArMzUsOSBAQAogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAjaW5jbHVkZSAiTG9j
YWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIlVSTC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotT3duUHRyPElucHV0VHlwZT4gVVJMSW5w
dXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFVSTElucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgVVJMSW5wdXRU
eXBlOjphdHRhY2goKQogewogICAgIFRleHRGaWVsZElucHV0VHlwZTo6YXR0YWNoKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9VUkxJbnB1dFR5cGUuaAppbmRleCBiN2FiNjc0YTQ0OTQ4NGRkMTZmZDQ4MzI5Y2Nh
MDU5MTBhYTdjNDVkLi4xNDk2ZjA3MGMzZmNlZThiZGM3NmZhMTQ2ZTcxMjcwMjVhMDAxZTMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmgKQEAgLTM3LDEwICszNyw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgVVJMSW5wdXRUeXBlIDogcHVibGljIEJhc2VUZXh0SW5wdXRU
eXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmKTsKKyAgICBleHBsaWNpdCBVUkxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVu
dCYgZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBVUkxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBC
YXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlw
ZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2hGb3IoY29u
c3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1dlZWtJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBl
LmNwcAppbmRleCA1MTlkZjVhNDQ1MTM4Mjk2ZjI2OWJhNmYxMjVkYjVmYmJmODA2NDk0Li4zNWQy
ZmNmMmZlNmI2MzJkZDVkNjUwY2E1MzNlNGU0YWNkN2M0YTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
V2Vla0lucHV0VHlwZS5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFt
ZXMuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQ2LDExICs0NSw2IEBAIHN0YXRpYyBjb25zdCBpbnQgd2Vla0RlZmF1bHRTdGVwQmFz
ZSA9IC0yNTkyMDAwMDA7IC8vIFRoZSBmaXJzdCBkYXkgb2YgMTk3MC1XMDEuCiBzdGF0aWMgY29u
c3QgaW50IHdlZWtEZWZhdWx0U3RlcCA9IDE7CiBzdGF0aWMgY29uc3QgaW50IHdlZWtTdGVwU2Nh
bGVGYWN0b3IgPSA2MDQ4MDAwMDA7CiAKLU93blB0cjxJbnB1dFR5cGU+IFdlZWtJbnB1dFR5cGU6
OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0
cihuZXcgV2Vla0lucHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KIHZvaWQgV2Vla0lucHV0VHlwZTo6
YXR0YWNoKCkKIHsKICAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6
OklucHV0VHlwZVdlZWspOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAppbmRleCBjYWU3
OWU5MWJiOWEwN2JhNjRkNDAzYTQ0ZTY2ZjllODE1OWUyYjI0Li4zMzNmYjU3MDQwMDViZTY2NmNm
MTA3NmY3NDNkMzk0OGMyNzcxYzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dl
ZWtJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaApA
QCAtMzgsMTAgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWVrSW5wdXRU
eXBlIDogcHVibGljIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQm
KTsKKyAgICBleHBsaWNpdCBXZWVrSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQp
IDogQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgV2Vla0lucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KSA6IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBEYXRlQ29tcG9uZW50czo6VHlwZSBkYXRlVHlwZSgpIGNvbnN0IE9WRVJSSURFOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>