<?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>160242</bug_id>
          
          <creation_ts>2016-07-27 06:43:41 -0700</creation_ts>
          <short_desc>[Streams API] Replace ReadableStreamController by ReadableStreamDefaultController</short_desc>
          <delta_ts>2016-07-28 08:44:59 -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>WebCore Misc.</component>
          <version>WebKit 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="Romain Bellessort">romain.wkt</reporter>
          <assigned_to name="Romain Bellessort">romain.wkt</assigned_to>
          <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1214871</commentid>
    <comment_count>0</comment_count>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-07-27 06:43:41 -0700</bug_when>
    <thetext>As was done for ReadableStreamReader/ReadableStreamDefaultReader, ReadableStreamController should be replaced by ReadableStreamDefaultController to align with Streams API spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214881</commentid>
    <comment_count>1</comment_count>
      <attachid>284693</attachid>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-07-27 07:12:44 -0700</bug_when>
    <thetext>Created attachment 284693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214883</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-27 07:14:22 -0700</bug_when>
    <thetext>Attachment 284693 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/ReadableStreamDefaultController.h:46:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 1 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215217</commentid>
    <comment_count>3</comment_count>
      <attachid>284693</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-28 06:21:52 -0700</bug_when>
    <thetext>Comment on attachment 284693
Patch

r=me.
It might be good to improve the controller code.
See below for all possible improvements.
This can be done now or in a later patch.
Wdyt romain?

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

&gt; Source/WebCore/bindings/js/ReadableStreamDefaultController.cpp:36
&gt; +#include &quot;JSReadableStreamSource.h&quot;

These two includes may no longer be needed

&gt; Source/WebCore/bindings/js/ReadableStreamDefaultController.cpp:77
&gt; +    auto isLocked = globalObject()-&gt;builtinInternalFunctions().readableStreamInternals().m_isReadableStreamLockedFunction.get();

Can we add an ASSERT(isLocked.isFunction())?

&gt; Source/WebCore/bindings/js/ReadableStreamDefaultController.h:55
&gt; +    void close() { invoke(*globalObject()-&gt;globalExec(), *m_jsController, &quot;close&quot;, JSC::jsUndefined()); }

Can we add a jsConstroller() method helper that would do 
ASSERT(m_jsController);
Return m_jsController;

&gt; Source/WebCore/bindings/js/ReadableStreamDefaultController.h:63
&gt; +    JSDOMGlobalObject* globalObject() const;

Might be better to return a reference than a pointer.

&gt; Source/WebCore/bindings/js/ReadableStreamDefaultController.h:72
&gt; +    return static_cast&lt;JSDOMGlobalObject*&gt;(m_jsController-&gt;globalObject());

Might be better to add an ASSERT and return a JSDOMGlobalObject&amp;

&gt; Source/WebCore/bindings/js/ReadableStreamDefaultController.h:77
&gt; +    JSC::ExecState&amp; state = *globalObject()-&gt;globalExec();

Might be good to add an ASSERT(globalObject()-&gt;globalExec())

&gt; Source/WebCore/bindings/js/ReadableStreamDefaultController.h:96
&gt; +    JSC::JSLockHolder locker(state);

Ditto.

&gt; Source/WebCore/bindings/js/WebCoreBuiltinNames.h:100
&gt; +    macro(ReadableStreamDefaultController) \

Switch reader and controller lines?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215221</commentid>
    <comment_count>4</comment_count>
      <attachid>284781</attachid>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-07-28 07:03:20 -0700</bug_when>
    <thetext>Created attachment 284781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215222</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-28 07:04:16 -0700</bug_when>
    <thetext>Attachment 284781 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/ReadableStreamDefaultController.h:46:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 1 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215223</commentid>
    <comment_count>6</comment_count>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-07-28 07:08:02 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 284693 [details]
&gt; Patch
&gt; 
&gt; r=me.
&gt; It might be good to improve the controller code.
&gt; See below for all possible improvements.
&gt; This can be done now or in a later patch.
&gt; Wdyt romain?

For this patch I was focusing on the JS part. I just uploaded a new patch that fixes alphabetical order in WebCoreBuiltinNames.h, but I let other remarks aiming at improving ReadableStreamDefaultController.h/cpp for another patch. I&apos;m going to create a bug about that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215229</commentid>
    <comment_count>7</comment_count>
      <attachid>284781</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-28 08:44:56 -0700</bug_when>
    <thetext>Comment on attachment 284781
Patch

Clearing flags on attachment: 284781

Committed r203818: &lt;http://trac.webkit.org/changeset/203818&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215230</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-28 08:44:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284693</attachid>
            <date>2016-07-27 07:12:44 -0700</date>
            <delta_ts>2016-07-28 07:03:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160242-20160727161132.patch</filename>
            <type>text/plain</type>
            <size>79432</size>
            <attacher name="Romain Bellessort">romain.wkt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2MxZWJjMTgxNzE2YjVj
YThlNTAyNjJjYWUyMWEyNWY4MjAzYmU2Yi4uMGFiNGM1Y2UzOTdhMGMwY2JlOWI3MmI4NDJlNWI2
NDg5OGIzOWQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU4IEBACiAyMDE2LTA3LTI3ICBSb21h
aW4gQmVsbGVzc29ydCAgPHJvbWFpbi5iZWxsZXNzb3J0QGNyZi5jYW5vbi5mcj4KIAorICAgICAg
ICBbU3RyZWFtcyBBUEldIFJlcGxhY2UgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIGJ5IFJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MDI0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlcGxhY2VkIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBieSBS
ZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyIHRvIGFsaWduCisgICAgICAgIHdpdGggdXBk
YXRlZCBTdHJlYW1zIEFQSSBzcGVjaWZpY2F0aW9uLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBm
dW5jdGlvbmFsaXR5LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzOgorICAgICAgICAoaW5pdGlhbGl6
ZVJlYWRhYmxlU3RyZWFtKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW1EZWZhdWx0Q29udHJvbGxlci5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmlkbC4KKyAgICAgICAgKiBNb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5qczogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xs
ZXIuanMuCisgICAgICAgIChlbnF1ZXVlKToKKyAgICAgICAgKGVycm9yKToKKyAgICAgICAgKGNs
b3NlKToKKyAgICAgICAgKGRlc2lyZWRTaXplKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanM6CisgICAgICAgIChwcml2YXRlSW5pdGlhbGl6ZVJl
YWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIpOgorICAgICAgICAoaXNSZWFkYWJsZVN0cmVh
bURlZmF1bHRDb250cm9sbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1Tb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtU291cmNlOjpj
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtU291cmNlOjpzdGFy
dCk6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmlkbDoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNE
T01HbG9iYWxPYmplY3Q6OmFkZEJ1aWx0aW5HbG9iYWxzKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb25zdHJ1Y3RKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNCdWlsdGluUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlclByaXZh
dGVDb25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZUV4ZWN1dGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3Rv
cnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtU291cmNlQ3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTUmVhZGFibGVTdHJlYW1Tb3VyY2U6OnN0YXJ0KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFt
Q29udHJvbGxlci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpjYWxsRnVuY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcjo6aW52b2tlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXI6OmlzQ29udHJv
bGxlZFJlYWRhYmxlU3RyZWFtTG9ja2VkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXI6OlJlYWRhYmxlU3RyZWFtRGVmYXVsdENv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJv
bGxlcjo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1EZWZhdWx0Q29u
dHJvbGxlcjo6ZXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlcjo6ZW5xdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbURl
ZmF1bHRDb250cm9sbGVyOjpnbG9iYWxPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFi
bGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcjo6ZXJyb3I8U3RyaW5nPik6CisgICAgICAgICogYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorCisyMDE2LTA3LTI3ICBSb21haW4gQmVs
bGVzc29ydCAgPHJvbWFpbi5iZWxsZXNzb3J0QGNyZi5jYW5vbi5mcj4KKwogICAgICAgICBbU3Ry
ZWFtcyBBUEldIFJlcGxhY2UgUmVhZGFibGVTdHJlYW1SZWFkZXIgYnkgUmVhZGFibGVTdHJlYW1E
ZWZhdWx0UmVhZGVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjAxOTQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlNjkzNzIxZGRkZWE2NzNhOTg4
NzIyN2Q4NDM5Y2YxYzgzMjRkNDdkLi5iZTE0MTUyNTk3YWIyZGY1NjEwMTAxNDg5OGVhYzk2OWE4
Mzk2ZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjYyLDcgKzI2Miw3IEBAIHNldChXZWJD
b3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9zdHJlYW1zL0J5dGVMZW5ndGhRdWV1
aW5nU3RyYXRlZ3kuaWRsCiAgICAgTW9kdWxlcy9zdHJlYW1zL0NvdW50UXVldWluZ1N0cmF0ZWd5
LmlkbAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGwKLSAgICBNb2R1bGVz
L3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmlkbAorICAgIE1vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmlkbAogICAgIE1vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsCiAgICAgTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtU291cmNlLmlkbAogICAgIE1vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVh
bS5pZGwKQEAgLTEyMzQsNyArMTIzNCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5k
aW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hQ
YXRoUmVzdWx0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3Rv
bS5jcHAKLSAgICBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuY3BwCisgICAg
YmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAKICAgICBiaW5k
aW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwCiAgICAgYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVk
RnJhbWVEYXRhLmNwcAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0z
NzI2LDcgKzM3MjYsNyBAQCBzZXQoV2ViQ29yZV9CVUlMVElOU19TT1VSQ0VTCiAgICAgJHtXRUJD
T1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1zL0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3kuanMKICAg
ICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5nU3RyYXRlZ3kuanMK
ICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKLSAg
ICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVy
LmpzCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVm
YXVsdENvbnRyb2xsZXIuanMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1JbnRlcm5hbHMuanMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmpzCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy9zdHJlYW1zL1N0cmVhbUludGVybmFscy5qcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3Bw
CmluZGV4IDgxYWRjYmQ4YzQ3YWQyZjYxY2Y5MzlmYWIyMjI5YTE3ZDE2NDBmZWIuLjNjZTMyYWQ4
NGRjYzQ1YTFjMjg2OWQ2ZTM5NTQzZjExMTJjNDhjYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAKQEAgLTM5NSw3ICszOTUsNyBAQAogI2luY2x1ZGUgIkpTUmFuZ2UuY3BwIgogI2lmIEVO
QUJMRShTVFJFQU1TX0FQSSkKICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtLmNwcCIKLSNpbmNs
dWRlICJKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHAiCisjaW5jbHVkZSAiSlNSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCIKICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFt
RGVmYXVsdFJlYWRlci5jcHAiCiAjaW5jbHVkZSAiSlNXcml0YWJsZVN0cmVhbS5jcHAiCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDI2YWYyZGE4MzY5OTg3ZTljMjdm
MmQ5OGQ4YzNkYjE3NGNhMWM3MGIuLjNkZGFhMWEzOGFiNjNlNGVlNGVjMjFjYmMzODU5Y2VhNDFm
NGU2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTg1LDcgKzE4NSw3IEBA
IE5PTl9TVkdfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1z
L0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3kuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
c3RyZWFtcy9Db3VudFF1ZXVpbmdTdHJhdGVneS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uaWRsIFwK
QEAgLTEyOTYsNyArMTI5Niw3IEBAIFdlYkNvcmVfQlVJTFRJTlNfU09VUkNFUyA9IFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5LmpzIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9Db3VudFF1ZXVpbmdTdHJhdGVneS5qcyBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMgXAotICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5qcyBc
CisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29u
dHJvbGxlci5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW1JbnRlcm5hbHMuanMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtRGVmYXVsdFJlYWRlci5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMv
U3RyZWFtSW50ZXJuYWxzLmpzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbS5qcwppbmRleCA2N2UzYmQzOGJjMDU0YTU2MTU2NTY1ZmZkMGE3NGI4
ZWQ2NTgzNGU1Li5mMWIyNzVkMDg1Mzg3MDgzM2ZkODczZGEzZmM0OTZmY2NmZTIyYWM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCkBA
IC01Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIGluaXRpYWxpemVSZWFkYWJsZVN0cmVhbSh1bmRlcmx5
aW5nU291cmNlLCBzdHJhdGVneSkKICAgICB0aGlzLkByZWFkZXIgPSBAdW5kZWZpbmVkOwogICAg
IHRoaXMuQHN0b3JlZEVycm9yID0gQHVuZGVmaW5lZDsKICAgICB0aGlzLkBkaXN0dXJiZWQgPSBm
YWxzZTsKLSAgICB0aGlzLkBjb250cm9sbGVyID0gbmV3IEBSZWFkYWJsZVN0cmVhbUNvbnRyb2xs
ZXIodGhpcyk7CisgICAgdGhpcy5AY29udHJvbGxlciA9IG5ldyBAUmVhZGFibGVTdHJlYW1EZWZh
dWx0Q29udHJvbGxlcih0aGlzKTsKICAgICB0aGlzLkBzdHJhdGVneSA9IEB2YWxpZGF0ZUFuZE5v
cm1hbGl6ZVF1ZXVpbmdTdHJhdGVneShzdHJhdGVneS5zaXplLCBzdHJhdGVneS5oaWdoV2F0ZXJN
YXJrKTsKIAogICAgIEBwcm9taXNlSW52b2tlT3JOb29wTm9DYXRjaCh1bmRlcmx5aW5nU291cmNl
LCAic3RhcnQiLCBbdGhpcy5AY29udHJvbGxlcl0pLkB0aGVuKCgpID0+IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ29udHJv
bGxlci5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyMmRhMTE2ZDAzYjc0YmI2
ZmQ3N2Q4NDBkNjMxMTQxOTcwNjZhODQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3Ry
ZWFtQ29udHJvbGxlci5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2Fs
aWEgUy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
LCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIHJlcXVpcmVk
IHRvIGJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5P
TiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0gKiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCi0gKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotICogU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSAq
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCi0gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi1bCi0gICAgQ29uZGl0aW9uYWw9U1RSRUFNU19BUEksCi0gICAgQ3VzdG9t
Q29uc3RydWN0b3IoUmVhZGFibGVTdHJlYW0gc3RyZWFtLCBhbnkgdW5kZXJseWluZ1NvdXJjZSwg
dW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGhpZ2hXYXRlck1hcmspLAotICAgIEV4
cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAotICAgIEpTQnVpbHRpbiwKLSAgICBOb0ludGVyZmFjZU9i
amVjdAotXSBpbnRlcmZhY2UgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIHsKLSAgICBbTm90RW51
bWVyYWJsZV0gdm9pZCBlbnF1ZXVlKG9wdGlvbmFsIGFueSBjaHVuayk7Ci0gICAgW05vdEVudW1l
cmFibGVdIHZvaWQgY2xvc2UoKTsKLSAgICBbTm90RW51bWVyYWJsZV0gdm9pZCBlcnJvcihvcHRp
b25hbCBhbnkgZXJyb3IpOwotCi0gICAgW05vdEVudW1lcmFibGVdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBkb3VibGUgZGVzaXJlZFNpemU7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDgwYzUzY2U3Mjk5ODk3NTVmNzI2MTZlYmFkODViOWJiYzNkNTI1
ZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5qcworKysg
L2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQ2Fu
b24gSW5jLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0vLyBA
Y29uZGl0aW9uYWw9RU5BQkxFKFNUUkVBTVNfQVBJKQotCi1mdW5jdGlvbiBlbnF1ZXVlKGNodW5r
KQotewotICAgICJ1c2Ugc3RyaWN0IjsKLQotICAgIGlmICghQGlzUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyKHRoaXMpKQotICAgICAgICB0aHJvdyBAbWFrZVRoaXNUeXBlRXJyb3IoIlJlYWRhYmxl
U3RyZWFtQ29udHJvbGxlciIsICJlbnF1ZXVlIik7Ci0KLSAgICBjb25zdCBzdHJlYW0gPSB0aGlz
LkBjb250cm9sbGVkUmVhZGFibGVTdHJlYW07Ci0KLSAgICBpZiAoc3RyZWFtLkBjbG9zZVJlcXVl
c3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIHJl
cXVlc3RlZCB0byBjbG9zZSIpOwotCi0gICAgaWYgKHN0cmVhbS5Ac3RhdGUgIT09IEBzdHJlYW1S
ZWFkYWJsZSkKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlz
IG5vdCByZWFkYWJsZSIpOwotCi0gICAgcmV0dXJuIEBlbnF1ZXVlSW5SZWFkYWJsZVN0cmVhbShz
dHJlYW0sIGNodW5rKTsKLX0KLQotZnVuY3Rpb24gZXJyb3IoZXJyb3IpCi17Ci0gICAgInVzZSBz
dHJpY3QiOwotCi0gICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIodGhpcykpCi0g
ICAgICAgIHRocm93IEBtYWtlVGhpc1R5cGVFcnJvcigiUmVhZGFibGVTdHJlYW1Db250cm9sbGVy
IiwgImVycm9yIik7Ci0KLSAgICBjb25zdCBzdHJlYW0gPSB0aGlzLkBjb250cm9sbGVkUmVhZGFi
bGVTdHJlYW07Ci0gICAgaWYgKHN0cmVhbS5Ac3RhdGUgIT09IEBzdHJlYW1SZWFkYWJsZSkKLSAg
ICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIG5vdCByZWFkYWJs
ZSIpOwotCi0gICAgQGVycm9yUmVhZGFibGVTdHJlYW0oc3RyZWFtLCBlcnJvcik7Ci19Ci0KLWZ1
bmN0aW9uIGNsb3NlKCkKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0KLSAgICBpZiAoIUBpc1JlYWRh
YmxlU3RyZWFtQ29udHJvbGxlcih0aGlzKSkKLSAgICAgICAgdGhyb3cgQG1ha2VUaGlzVHlwZUVy
cm9yKCJSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIiLCAiY2xvc2UiKTsKLQotICAgIGNvbnN0IHN0
cmVhbSA9IHRoaXMuQGNvbnRyb2xsZWRSZWFkYWJsZVN0cmVhbTsKLSAgICBpZiAoc3RyZWFtLkBj
bG9zZVJlcXVlc3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlYWRhYmxlU3Ry
ZWFtIGlzIGFscmVhZHkgcmVxdWVzdGVkIHRvIGNsb3NlIik7Ci0KLSAgICBpZiAoc3RyZWFtLkBz
dGF0ZSAhPT0gQHN0cmVhbVJlYWRhYmxlKQotICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigi
UmVhZGFibGVTdHJlYW0gaXMgbm90IHJlYWRhYmxlIik7Ci0KLSAgICBAY2xvc2VSZWFkYWJsZVN0
cmVhbShzdHJlYW0pOwotfQotCi1mdW5jdGlvbiBkZXNpcmVkU2l6ZSgpCi17Ci0gICAgInVzZSBz
dHJpY3QiOwotCi0gICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIodGhpcykpCi0g
ICAgICAgIHRocm93IEBtYWtlR2V0dGVyVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbUNvbnRyb2xs
ZXIiLCAiZGVzaXJlZFNpemUiKTsKLQotICAgIHJldHVybiBAZ2V0UmVhZGFibGVTdHJlYW1EZXNp
cmVkU2l6ZSh0aGlzLkBjb250cm9sbGVkUmVhZGFibGVTdHJlYW0pOwotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRy
b2xsZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
RGVmYXVsdENvbnRyb2xsZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmOGQ3ZGZmZGRhM2ZhNGNjN2YxYmVl
MWY4YzRkODAwNmMzZTFhNGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5pZGwKQEAgLTAsMCAr
MSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBDYW5vbiBJbmMuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YK
KyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNUUkVBTVNf
QVBJLAorICAgIEN1c3RvbUNvbnN0cnVjdG9yKFJlYWRhYmxlU3RyZWFtIHN0cmVhbSwgYW55IHVu
ZGVybHlpbmdTb3VyY2UsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBoaWdoV2F0
ZXJNYXJrKSwKKyAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKKyAgICBKU0J1aWx0aW4sCisg
ICAgTm9JbnRlcmZhY2VPYmplY3QKK10gaW50ZXJmYWNlIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENv
bnRyb2xsZXIgeworICAgIFtOb3RFbnVtZXJhYmxlXSB2b2lkIGVucXVldWUob3B0aW9uYWwgYW55
IGNodW5rKTsKKyAgICBbTm90RW51bWVyYWJsZV0gdm9pZCBjbG9zZSgpOworICAgIFtOb3RFbnVt
ZXJhYmxlXSB2b2lkIGVycm9yKG9wdGlvbmFsIGFueSBlcnJvcik7CisKKyAgICBbTm90RW51bWVy
YWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBkZXNpcmVkU2l6ZTsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbURlZmF1bHRDb250cm9sbGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkNDkyMDY5MTVjYjM3YzFhMmFk
MWVmOWE2NGYxYmE1MzUzNTViOWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5qcwpAQCAtMCww
ICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gQGNvbmRpdGlvbmFsPUVOQUJM
RShTVFJFQU1TX0FQSSkKKworZnVuY3Rpb24gZW5xdWV1ZShjaHVuaykKK3sKKyAgICAidXNlIHN0
cmljdCI7CisKKyAgICBpZiAoIUBpc1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIodGhp
cykpCisgICAgICAgIHRocm93IEBtYWtlVGhpc1R5cGVFcnJvcigiUmVhZGFibGVTdHJlYW1EZWZh
dWx0Q29udHJvbGxlciIsICJlbnF1ZXVlIik7CisKKyAgICBjb25zdCBzdHJlYW0gPSB0aGlzLkBj
b250cm9sbGVkUmVhZGFibGVTdHJlYW07CisKKyAgICBpZiAoc3RyZWFtLkBjbG9zZVJlcXVlc3Rl
ZCkKKyAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIHJlcXVl
c3RlZCB0byBjbG9zZSIpOworCisgICAgaWYgKHN0cmVhbS5Ac3RhdGUgIT09IEBzdHJlYW1SZWFk
YWJsZSkKKyAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIG5v
dCByZWFkYWJsZSIpOworCisgICAgcmV0dXJuIEBlbnF1ZXVlSW5SZWFkYWJsZVN0cmVhbShzdHJl
YW0sIGNodW5rKTsKK30KKworZnVuY3Rpb24gZXJyb3IoZXJyb3IpCit7CisgICAgInVzZSBzdHJp
Y3QiOworCisgICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyKHRoaXMp
KQorICAgICAgICB0aHJvdyBAbWFrZVRoaXNUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtRGVmYXVs
dENvbnRyb2xsZXIiLCAiZXJyb3IiKTsKKworICAgIGNvbnN0IHN0cmVhbSA9IHRoaXMuQGNvbnRy
b2xsZWRSZWFkYWJsZVN0cmVhbTsKKyAgICBpZiAoc3RyZWFtLkBzdGF0ZSAhPT0gQHN0cmVhbVJl
YWRhYmxlKQorICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiUmVhZGFibGVTdHJlYW0gaXMg
bm90IHJlYWRhYmxlIik7CisKKyAgICBAZXJyb3JSZWFkYWJsZVN0cmVhbShzdHJlYW0sIGVycm9y
KTsKK30KKworZnVuY3Rpb24gY2xvc2UoKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIGlm
ICghQGlzUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcih0aGlzKSkKKyAgICAgICAgdGhy
b3cgQG1ha2VUaGlzVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyIiwg
ImNsb3NlIik7CisKKyAgICBjb25zdCBzdHJlYW0gPSB0aGlzLkBjb250cm9sbGVkUmVhZGFibGVT
dHJlYW07CisgICAgaWYgKHN0cmVhbS5AY2xvc2VSZXF1ZXN0ZWQpCisgICAgICAgIHRocm93IG5l
dyBAVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbSBpcyBhbHJlYWR5IHJlcXVlc3RlZCB0byBjbG9z
ZSIpOworCisgICAgaWYgKHN0cmVhbS5Ac3RhdGUgIT09IEBzdHJlYW1SZWFkYWJsZSkKKyAgICAg
ICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIG5vdCByZWFkYWJsZSIp
OworCisgICAgQGNsb3NlUmVhZGFibGVTdHJlYW0oc3RyZWFtKTsKK30KKworZnVuY3Rpb24gZGVz
aXJlZFNpemUoKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIGlmICghQGlzUmVhZGFibGVT
dHJlYW1EZWZhdWx0Q29udHJvbGxlcih0aGlzKSkKKyAgICAgICAgdGhyb3cgQG1ha2VHZXR0ZXJU
eXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIiLCAiZGVzaXJlZFNpemUi
KTsKKworICAgIHJldHVybiBAZ2V0UmVhZGFibGVTdHJlYW1EZXNpcmVkU2l6ZSh0aGlzLkBjb250
cm9sbGVkUmVhZGFibGVTdHJlYW0pOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCmluZGV4IDEwOTA5Y2Qx
ODBiMDkwMzA4YTA4ZGE1ZDk1NWM3ZThlNzljMGU1ZTIuLjczZmM0ZTNjZjdkNjA0ZTUwMTQ4YTNj
M2U4ZmYyZDNjOTg0MmIxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMKQEAgLTUzLDEyICs1MywxMiBA
QCBmdW5jdGlvbiBwcml2YXRlSW5pdGlhbGl6ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcihz
dHJlYW0pCiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKLWZ1bmN0aW9uIHByaXZhdGVJbml0aWFsaXpl
UmVhZGFibGVTdHJlYW1Db250cm9sbGVyKHN0cmVhbSkKK2Z1bmN0aW9uIHByaXZhdGVJbml0aWFs
aXplUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcihzdHJlYW0pCiB7CiAgICAgInVzZSBz
dHJpY3QiOwogCiAgICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVhbShzdHJlYW0pKQotICAgICAgICB0
aHJvdyBuZXcgQFR5cGVFcnJvcigiUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIG5lZWRzIGEgUmVh
ZGFibGVTdHJlYW0iKTsKKyAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXIgbmVlZHMgYSBSZWFkYWJsZVN0cmVhbSIpOwogICAgIGlmIChz
dHJlYW0uQGNvbnRyb2xsZXIgIT09IEB1bmRlZmluZWQpCiAgICAgICAgIHRocm93IG5ldyBAVHlw
ZUVycm9yKCJSZWFkYWJsZVN0cmVhbSBhbHJlYWR5IGhhcyBhIGNvbnRyb2xsZXIiKTsKICAgICB0
aGlzLkBjb250cm9sbGVkUmVhZGFibGVTdHJlYW0gPSBzdHJlYW07CkBAIC0xODYsNyArMTg2LDcg
QEAgZnVuY3Rpb24gaXNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIocmVhZGVyKQogICAgIHJl
dHVybiBAaXNPYmplY3QocmVhZGVyKSAmJiByZWFkZXIuQG93bmVyUmVhZGFibGVTdHJlYW0gIT09
IEB1bmRlZmluZWQ7CiB9CiAKLWZ1bmN0aW9uIGlzUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKGNv
bnRyb2xsZXIpCitmdW5jdGlvbiBpc1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIoY29u
dHJvbGxlcikKIHsKICAgICAidXNlIHN0cmljdCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKaW5kZXggMWJiZGZkZTBj
MzY2N2UwMmVlNzc4OGNjMGFkNGQ3OGY3MjIxMDcwMi4uNWNkNTE5NDY2MzI2OGM0ZGE3Y2Q4M2Zm
N2RlNTE4NDgyZDViZjI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpZiBFTkFC
TEUoU1RSRUFNU19BUEkpCiAKICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKLSNpbmNsdWRlICJS
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbURlZmF1
bHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQ1LDE0ICs0NSwxNCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Qcm9t
aXNlPHN0ZDo6bnVsbHB0cl90PiBQcm9taXNlOwogCiAgICAgdmlydHVhbCB2b2lkIGZpcnN0UmVh
ZENhbGxiYWNrKCkgeyB9Ci0gICAgdm9pZCBzdGFydChSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIm
JiwgUHJvbWlzZSYmKTsKKyAgICB2b2lkIHN0YXJ0KFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRy
b2xsZXImJiwgUHJvbWlzZSYmKTsKICAgICB2b2lkIGNhbmNlbChKU0M6OkpTVmFsdWUpOwogCiAg
ICAgYm9vbCBpc1N0YXJ0aW5nKCkgY29uc3QgeyByZXR1cm4gISFtX3N0YXJ0UHJvbWlzZTsgfQog
CiBwcm90ZWN0ZWQ6Ci0gICAgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyJiBjb250cm9sbGVyKCkg
eyByZXR1cm4gbV9jb250cm9sbGVyLnZhbHVlKCk7IH0KLSAgICBjb25zdCBSZWFkYWJsZVN0cmVh
bUNvbnRyb2xsZXImIGNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRyb2xsZXIudmFs
dWUoKTsgfQorICAgIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXImIGNvbnRyb2xsZXIo
KSB7IHJldHVybiBtX2NvbnRyb2xsZXIudmFsdWUoKTsgfQorICAgIGNvbnN0IFJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXImIGNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRy
b2xsZXIudmFsdWUoKTsgfQogCiAgICAgdm9pZCBzdGFydEZpbmlzaGVkKCk7CiAgICAgdm9pZCBj
YW5jZWxGaW5pc2hlZCgpOwpAQCAtNjYsMTAgKzY2LDEwIEBAIHByb3RlY3RlZDoKIAogcHJpdmF0
ZToKICAgICBPcHRpb25hbDxQcm9taXNlPiBtX3N0YXJ0UHJvbWlzZTsKLSAgICBPcHRpb25hbDxS
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXI+IG1fY29udHJvbGxlcjsKKyAgICBPcHRpb25hbDxSZWFk
YWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyPiBtX2NvbnRyb2xsZXI7CiB9OwogCi1pbmxpbmUg
dm9pZCBSZWFkYWJsZVN0cmVhbVNvdXJjZTo6c3RhcnQoUmVhZGFibGVTdHJlYW1Db250cm9sbGVy
JiYgY29udHJvbGxlciwgUHJvbWlzZSYmIHByb21pc2UpCitpbmxpbmUgdm9pZCBSZWFkYWJsZVN0
cmVhbVNvdXJjZTo6c3RhcnQoUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlciYmIGNvbnRy
b2xsZXIsIFByb21pc2UmJiBwcm9taXNlKQogewogICAgIG1fc3RhcnRQcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKTsKICAgICBtX2NvbnRyb2xsZXIgPSBXVEZNb3ZlKGNvbnRyb2xsZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291
cmNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNv
dXJjZS5pZGwKaW5kZXggZDE2OTI4MTZiYjcwNzEzNzkxYjVhOWNkMzAzMzAzNTViOWEyYWI2ZS4u
NDRhOGVkNTE5NzRhZDEzYzkyMzNiN2FlNDFjNDU1MmZhNzU5MmE2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRs
CkBAIC0zMiw3ICszMiw3IEBACiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24KIF0gaW50ZXJmYWNl
IFJlYWRhYmxlU3RyZWFtU291cmNlIHsKICAgICAvLyBNZXRob2RzIHRvIHN1cHBvcnQgcHVzaCBz
b3VyY2VzLiBUbyBzdXBwb3J0IGFsbCBzb3VyY2VzLCBwdWxsIG1ldGhvZCBtaWdodCBuZWVkIHRv
IGJlIGFkZGVkLCBhbmQgY2FuY2VsIG1heSByZXR1cm4gYSBwcm9taXNlLgotICAgIFtDdXN0b21d
IFByb21pc2Ugc3RhcnQoUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIGNvbnRyb2xsZXIpOworICAg
IFtDdXN0b21dIFByb21pc2Ugc3RhcnQoUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlciBj
b250cm9sbGVyKTsKICAgICB2b2lkIGNhbmNlbChhbnkgcmVhc29uKTsKIAogICAgIFtQcml2YXRl
SWRlbnRpZmllcl0gdm9pZCBmaXJzdFJlYWRDYWxsYmFjaygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNkNjk4OTc0NjkwY2Q2
YzI1YzBiMjQyNWNjNWYxZjgzNzc1MzY0MDQuLjljM2Q2NjcxMzQyYjkzN2NmMmNiYmUyYzIxMjQz
ZTMyMjM1ZDQwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE2MTksNyArMTYxOSw3IEBACiAJCTQxOEMzOTU2MUM4REFDN0Yw
MDUxQzhBMyAvKiBET01XaW5kb3dGZXRjaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MThDMzk1MjFDOERBQzdCMDA1MUM4QTMgLyogRE9NV2luZG93
RmV0Y2guY3BwICovOyB9OwogCQk0MThDMzk1QTFDOERENjk5MDA1MUM4QTMgLyogV29ya2VyR2xv
YmFsU2NvcGVGZXRjaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MThDMzk1NzFDOERENjk2MDA1MUM4QTMgLyogV29ya2VyR2xvYmFsU2NvcGVGZXRj
aC5jcHAgKi87IH07CiAJCTQxOEMzOTYwMUM4RjBBQUUwMDUxQzhBMyAvKiBKU1JlYWRhYmxlU3Ry
ZWFtU291cmNlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxOEMzOTVEMUM4RjBBQUIwMDUxQzhBMyAvKiBKU1JlYWRhYmxlU3RyZWFtU291
cmNlQ3VzdG9tLmNwcCAqLzsgfTsKLQkJNDE4QzM5NjExQzhGMEFCMTAwNTFDOEEzIC8qIFJlYWRh
YmxlU3RyZWFtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MThDMzk1RTFDOEYwQUFCMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1D
b250cm9sbGVyLmNwcCAqLzsgfTsKKwkJNDE4QzM5NjExQzhGMEFCMTAwNTFDOEEzIC8qIFJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4QzM5NUUxQzhGMEFBQjAwNTFDOEEzIC8qIFJlYWRhYmxl
U3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwICovOyB9OwogCQk0MThGODgwNDBGRjk1N0FFMDA4
MEYwNDUgLyogSlNBYnN0cmFjdFdvcmtlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MThGODgwMjBGRjk1N0FFMDA4MEYwNDUgLyogSlNBYnN0cmFj
dFdvcmtlci5jcHAgKi87IH07CiAJCTQxOEY4ODA1MEZGOTU3QUYwMDgwRjA0NSAvKiBKU0Fic3Ry
YWN0V29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MThGODgwMzBGRjk1N0FFMDA4MEYwNDUgLyogSlNBYnN0cmFjdFdvcmtlci5oICovOyB9Owog
CQk0MTlCQzJERTE2ODUzMjk5MDBENjRENkQgLyogVmlzaXRlZExpbmtTdGF0ZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTlCQzJEQzE2ODUzMjk5
MDBENjRENkQgLyogVmlzaXRlZExpbmtTdGF0ZS5jcHAgKi87IH07CkBAIC0yNTgzLDggKzI1ODMs
OCBAQAogCQk2QjM0ODA5NDBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2VQdHIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMzQ4MDkyMEVFRjUw
RDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZVB0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZCNjkzQTJFMUM1MUE4MkUwMEIwM0JFRiAvKiBSZXNv
dXJjZUxvYWRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkI2OTNBMkQxQzUxQTgyRTAwQjAzQkVGIC8qIFJlc291cmNlTG9hZE9ic2VydmVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkI2
OTNBMzQxQzUxQTk1RDAwQjAzQkVGIC8qIFJlc291cmNlTG9hZE9ic2VydmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCNjkzQTMzMUM1MUE5NUQw
MEIwM0JFRiAvKiBSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAgKi87IH07Ci0JCTZDNEM5NkRFMUFE
NDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzRDOTZEQTFBRDQ0ODM1MDAz
NjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuY3BwICovOyB9OwotCQk2QzRDOTZE
RjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNEM5NkRCMUFENDQ4MzUw
MDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5oICovOyB9OworCQk2QzRDOTZE
RTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNEM5NkRB
MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3Bw
ICovOyB9OworCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURl
ZmF1bHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1
bHRDb250cm9sbGVyLmggKi87IH07CiAJCTZDNjM4ODk1QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2QzYzODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTZDNjM4ODk2QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAqLzsgfTsKIAkJNkNEREU4RDAxNzcwQkIyMjAwMTZFMDcy
IC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkM3MEE4MTQxNzcwN0M0OTAwOUE0NDZFIC8qIFJlZ2lvbk92ZXJzZXRT
dGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC05MTQ3LDcgKzkxNDcsNyBAQAogCQk0MEVDQUU3RDE2QjhCNjcyMDBDMzYxMDMgLyogSlNET01F
cnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTUVycm9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQwRUNBRTgwMTZCOEI2OEEwMEMzNjEwMyAvKiBK
U0RPTUVycm9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9N
RXJyb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIw
MDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk0MTE4OUVGNzFBRDgyMzI4MDBCOTBBMEQgLyogUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUNv
bnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTE4OUVGNzFBRDgy
MzI4MDBCOTBBMEQgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjdENTM2MEY4QUFCMUQwMEU0MjRGNSAvKiBT
Y3JpcHRTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3Jp
cHRTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjlERjgzMUJCNUI3
RjcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0
ZUNvbnN0cnVjdG9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjlERjg0
MUJCNUI3RjcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0
ZUNvbnN0cnVjdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTIwNCw4ICs5
MjA0LDggQEAKIAkJNDE4QzM5NUIxQzhGMEE2MTAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtU291
cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtU291
cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOEMzOTVDMUM4RjBBNjEwMDUx
QzhBMyAvKiBSZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
UmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MThDMzk1RDFDOEYwQUFCMDA1MUM4QTMgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZUN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFt
U291cmNlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE4QzM5NUUx
QzhGMEFBQjAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MThDMzk1RjFDOEYwQUFCMDA1MUM4QTMg
LyogUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MThDMzk1RTFDOEYwQUFCMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFk
YWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDE4QzM5NUYxQzhGMEFBQjAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENv
bnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJl
YW1EZWZhdWx0Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MThG
ODgwMjBGRjk1N0FFMDA4MEYwNDUgLyogSlNBYnN0cmFjdFdvcmtlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Fic3RyYWN0V29ya2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4Rjg4MDMwRkY5NTdBRTAwODBGMDQ1IC8qIEpTQWJzdHJh
Y3RXb3JrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBYnN0cmFjdFdv
cmtlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlCQzJEQzE2ODUzMjk5MDBE
NjRENkQgLyogVmlzaXRlZExpbmtTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBWaXNpdGVkTGlua1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEwMjkwLDggKzEwMjkwLDggQEAKIAkJNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8q
IE5hdGl2ZUltYWdlUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRp
dmVJbWFnZVB0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjY5M0EyRDFDNTFB
ODJFMDBCMDNCRUYgLyogUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNkI2OTNBMzMxQzUxQTk1RDAwQjAzQkVGIC8qIFJlc291cmNlTG9hZE9ic2Vy
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9h
ZE9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkM0Qzk2REExQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkM0Qzk2REIxQUQ0NDgzNTAwMzY1QTUw
IC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTZDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFt
RGVmYXVsdENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNkM0Qzk2REIxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJl
YW1EZWZhdWx0Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkM2Mzg4OTRBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
QzcwQTgxNDE3NzA3QzQ5MDA5QTQ0NkUgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ2lvbk92ZXJzZXRTdGF0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTE4MTgsNyArMTE4MTgsNyBAQAogCQk5OTA4QjBFRTFCQ0FD
RjkxMDBFRDBGNjUgLyogQ291bnRRdWV1aW5nU3RyYXRlZ3kuanMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmphdmFzY3JpcHQ7IHBhdGggPSBDb3VudFF1ZXVpbmdTdHJhdGVneS5qczsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRUYxQkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxl
U3RyZWFtLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gUmVhZGFi
bGVTdHJlYW0uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEVGMUJDQUNG
OTEwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk5OTA4QjBGMDFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gUmVhZGFibGVT
dHJlYW1Db250cm9sbGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTA4QjBG
MDFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5qcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtRGVm
YXVsdENvbnRyb2xsZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEYx
MUJDQUNGOTEwMEVEMEY1NSAvKiBTdHJlYW1JbnRlcm5hbHMuanMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmphdmFzY3JpcHQ7IHBhdGggPSBTdHJlYW1JbnRlcm5hbHMuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5MDhCMEYxMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVh
bUludGVybmFscy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFJl
YWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNzUgLyogV3JpdGFibGVTdHJlYW1JbnRlcm5hbHMuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVy
bmFscy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExODI5LDggKzExODI5LDgg
QEAKIAkJOTkwOEIwRjcxQkNBRDA3RDAwRUQwRjY1IC8qIENvdW50UXVldWluZ1N0cmF0ZWd5QnVp
bHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRRdWV1aW5nU3Ry
YXRlZ3lCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGOTFC
Q0FEMDdEMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjkxQkNBRDA3RDAwRUQwRjc1IC8qIFdy
aXRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV3JpdGFibGVTdHJlYW1CdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTk5MDhCMEZBMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xs
ZXJCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFk
YWJsZVN0cmVhbUNvbnRyb2xsZXJCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTk5MDhCMEZCMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xs
ZXJCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0
cmVhbUNvbnRyb2xsZXJCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
OTA4QjBGQTFCQ0FEMDdEMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxl
ckJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTk5MDhCMEZCMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbURl
ZmF1bHRDb250cm9sbGVyQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlckJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEZEMUJDQUQwN0QwMEVEMEY0NSAvKiBGZXRjaEludGVy
bmFsc0J1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZl
dGNoSW50ZXJuYWxzQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
OTA4QjBGRDFCQ0FEMDdEMDBFRDBGNTUgLyogU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyZWFtSW50ZXJuYWxzQnVpbHRp
bnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGRDFCQ0FEMDdEMDBF
RDBGNjUgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5z
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MDY4LDggKzE3MDY4LDggQEAK
IAkJCQk5OTA4QjBFRTFCQ0FDRjkxMDBFRDBGNjUgLyogQ291bnRRdWV1aW5nU3RyYXRlZ3kuanMg
Ki8sCiAJCQkJNDFBMDIzRUQxQTM5REI3OTAwRjcyMkNGIC8qIFJlYWRhYmxlU3RyZWFtLmlkbCAq
LywKIAkJCQk5OTA4QjBFRjFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW0uanMgKi8s
Ci0JCQkJNDExODlFRjcxQUQ4MjMyODAwQjkwQTBEIC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxl
ci5pZGwgKi8sCi0JCQkJOTkwOEIwRjAxQkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFt
Q29udHJvbGxlci5qcyAqLywKKwkJCQk0MTE4OUVGNzFBRDgyMzI4MDBCOTBBMEQgLyogUmVhZGFi
bGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5pZGwgKi8sCisJCQkJOTkwOEIwRjAxQkNBQ0Y5MTAw
RUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuanMgKi8sCiAJCQkJOTkw
OEIwRjExQkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzICovLAog
CQkJCTQxOUZBRkFEMUFCQUJDRDUwMDVCODI4QiAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFk
ZXIuaWRsICovLAogCQkJCTk5MDhCMEYyMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVh
bURlZmF1bHRSZWFkZXIuanMgKi8sCkBAIC0xNzA4OCw4ICsxNzA4OCw4IEBACiAJCQljaGlsZHJl
biA9ICgKIAkJCQk3QzRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5j
cHAgKi8sCiAJCQkJN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0u
aCAqLywKLQkJCQk2QzRDOTZEQTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNv
bnRyb2xsZXIuY3BwICovLAotCQkJCTZDNEM5NkRCMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRh
YmxlU3RyZWFtQ29udHJvbGxlci5oICovLAorCQkJCTZDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAv
KiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwICovLAorCQkJCTZDNEM5NkRC
MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaCAq
LywKIAkJCQk3QzRDOTZEQTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXIuY3BwICovLAogCQkJCTdDNEM5NkRCMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlci5oICovLAogCQkJCTdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE2
MCAvKiBKU1dyaXRhYmxlU3RyZWFtLmNwcCAqLywKQEAgLTE3OTQxLDggKzE3OTQxLDkgQEAKIAkJ
CQk3MUUyMTgzOTE3MzU5RkI4MDA2RTZFNEQgLyogUGx1Z0luc1Jlc291cmNlc0RhdGEuY3BwICov
LAogCQkJCTk5MDhCMEY5MUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5z
LmNwcCAqLywKIAkJCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RDggLyogUmVhZGFibGVTdHJlYW1C
dWlsdGlucy5oICovLAotCQkJCTk5MDhCMEZBMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0
cmVhbUNvbnRyb2xsZXJCdWlsdGlucy5jcHAgKi8sCi0JCQkJOTkwOEIwRkIxQkNBRDA3RDAwRUQw
RjY1IC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckJ1aWx0aW5zLmggKi8sCisJCQkJOTkwOEIw
RkExQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJCdWls
dGlucy5jcHAgKi8sCisJCQkJOTkwOEIwRkIxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXJCdWlsdGlucy5oICovLAorCQkJCTk5MDhCMEZEMUJDQUQwN0Qw
MEVEMEY0NSAvKiBGZXRjaEludGVybmFsc0J1aWx0aW5zLmNwcCAqLywKIAkJCQk5OTA4QjBGRDFC
Q0FEMDdEMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8s
CiAJCQkJOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEQ5IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxz
QnVpbHRpbnMuaCAqLywKIAkJCQk5OTA4QjBGRTFCQ0FEMDdEMDBFRDBGNjUgLyogUmVhZGFibGVT
dHJlYW1EZWZhdWx0UmVhZGVyQnVpbHRpbnMuY3BwICovLApAQCAtMjI2MDAsOCArMjI2MDEsOCBA
QAogCQkJCUUxQzM2RDMzMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckdsb2JhbFNjb3BlQmFz
ZS5oICovLAogCQkJCTgzQTRBOUY4MUNFN0ZEN0UwMDcwOUIwMCAvKiBKU1hNTERvY3VtZW50Q3Vz
dG9tLmNwcCAqLywKIAkJCQk4MzZDMTQ0MjFDREVBRkNBMDA3MzQ5M0YgLyogSlNYUGF0aE5TUmVz
b2x2ZXJDdXN0b20uY3BwICovLAotCQkJCTQxOEMzOTVFMUM4RjBBQUIwMDUxQzhBMyAvKiBSZWFk
YWJsZVN0cmVhbUNvbnRyb2xsZXIuY3BwICovLAotCQkJCTQxOEMzOTVGMUM4RjBBQUIwMDUxQzhB
MyAvKiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaCAqLywKKwkJCQk0MThDMzk1RTFDOEYwQUFC
MDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAgKi8sCisJCQkJ
NDE4QzM5NUYxQzhGMEFBQjAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xs
ZXIuaCAqLywKIAkJCQlCQ0EzNzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9u
LmNwcCAqLywKIAkJCQlCQ0EzNzhCQjBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9u
LmggKi8sCiAJCQkJNDFGMUQyMUUwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1l
RGF0YS5jcHAgKi8sCkBAIC0yNzExNyw3ICsyNzExOCw3IEBACiAJCQkJQjY1OEZGQTIxNTIyRUYz
QTAwREQ1NTk1IC8qIEpTUmFkaW9Ob2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVERjMy
MDIwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNEM5
NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4gSGVhZGVycyAqLywK
LQkJCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTZDNEM5NkRGMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1Jl
YWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMjlE
Rjg2MUJCNUI4MEMwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9y
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M0Qzk2REYxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVh
ZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3RTRDOTZERDFB
RDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zMDkyNSw3ICszMDkyNiw3IEBACiAJCQkJQjY1OEZGQTExNTIyRUYzQTAwREQ1NTk1IC8q
IEpTUmFkaW9Ob2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzIwMTA5RDFDQzYw
MDAwQkUzMjUgLyogSlNSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzRDOTZEQzFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk2
QzRDOTZERTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNkM0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFi
bGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTI5REY4
NTFCQjVCODA3MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVh
ZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFNEM5NkRD
MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU291cmNlLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMzE2MTEsNyArMzE2MTIsNyBAQAogCQkJCTkzRjE5QUI5MDgyNDVFNTkwMDFFOUFC
QyAvKiBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDRDEyNTFGMTJEMDAzRUYy
NjkgLyogUmFuZ2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU4NEU5RTAxNzY2
OEJFRTAwODE1QjY4IC8qIFJhc3RlclNoYXBlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQxOEMz
OTYxMUM4RjBBQjEwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNDE4QzM5NjExQzhGMEFCMTAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFt
RGVmYXVsdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwM0IxMkIwMjY3
NjAwQzFBMzU5IC8qIFJlYWx0aW1lQW5hbHlzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEE0
RjY1NzAxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNEEwRkZBQTExQUFGNUVBMjAwNjI4MDNCIC8qIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggZDdmZTYzMGU1NGFkMmU3MTBmZDIzOTU3
ODc3NjY4NmIxMzkwMDhkOS4uMWRiNGYwZGY3ZTE0MTE3ZWUzZmNlMTQ1MzJkODFkMGU1ZmMyOTVi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0
LmNwcApAQCAtOTMsMTMgKzkzLDEzIEBAIHZvaWQgSlNET01HbG9iYWxPYmplY3Q6OmFkZEJ1aWx0
aW5HbG9iYWxzKFZNJiB2bSkKICAgICBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucy5pbml0aWFs
aXplKCp0aGlzKTsKIAogI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKLSAgICBKU09iamVjdCogcHJp
dmF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yID0gY3JlYXRlUmVhZGFibGVT
dHJlYW1Db250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yKHZtLCAqdGhpcyk7CisgICAgSlNPYmpl
Y3QqIHByaXZhdGVSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyQ29uc3RydWN0b3IgPSBj
cmVhdGVSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yKHZt
LCAqdGhpcyk7CiAgICAgSlNPYmplY3QqIHByaXZhdGVSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFk
ZXJDb25zdHJ1Y3RvciA9IGNyZWF0ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclByaXZhdGVD
b25zdHJ1Y3Rvcih2bSwgKnRoaXMpOwogCi0gICAgQVNTRVJUKCFjb25zdHJ1Y3RvcnMoKS5nZXQo
cHJpdmF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yLT5pbmZvKCkpLmdldCgp
KTsKKyAgICBBU1NFUlQoIWNvbnN0cnVjdG9ycygpLmdldChwcml2YXRlUmVhZGFibGVTdHJlYW1E
ZWZhdWx0Q29udHJvbGxlckNvbnN0cnVjdG9yLT5pbmZvKCkpLmdldCgpKTsKICAgICBBU1NFUlQo
IWNvbnN0cnVjdG9ycygpLmdldChwcml2YXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyQ29u
c3RydWN0b3ItPmluZm8oKSkuZ2V0KCkpOwogICAgIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6SlNP
YmplY3Q+IHRlbXA7Ci0gICAgY29uc3RydWN0b3JzKCkuYWRkKHByaXZhdGVSZWFkYWJsZVN0cmVh
bUNvbnRyb2xsZXJDb25zdHJ1Y3Rvci0+aW5mbygpLCB0ZW1wKS5pdGVyYXRvci0+dmFsdWUuc2V0
KHZtLCB0aGlzLCBwcml2YXRlUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ29uc3RydWN0b3IpOwor
ICAgIGNvbnN0cnVjdG9ycygpLmFkZChwcml2YXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJv
bGxlckNvbnN0cnVjdG9yLT5pbmZvKCksIHRlbXApLml0ZXJhdG9yLT52YWx1ZS5zZXQodm0sIHRo
aXMsIHByaXZhdGVSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyQ29uc3RydWN0b3IpOwog
ICAgIGNvbnN0cnVjdG9ycygpLmFkZChwcml2YXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVy
Q29uc3RydWN0b3ItPmluZm8oKSwgdGVtcCkuaXRlcmF0b3ItPnZhbHVlLnNldCh2bSwgdGhpcywg
cHJpdmF0ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlckNvbnN0cnVjdG9yKTsKICNlbmRpZgog
ICAgIEpTVk1DbGllbnREYXRhJiBjbGllbnREYXRhID0gKnN0YXRpY19jYXN0PEpTVk1DbGllbnRE
YXRhKj4odm0uY2xpZW50RGF0YSk7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBKU0RPTUdsb2Jh
bE9iamVjdDo6YWRkQnVpbHRpbkdsb2JhbHMoVk0mIHZtKQogICAgICAgICBKU0RPTUdsb2JhbE9i
amVjdDo6R2xvYmFsUHJvcGVydHlJbmZvKGNsaWVudERhdGEuYnVpbHRpbk5hbWVzKCkuc3RyZWFt
UmVhZGFibGVQcml2YXRlTmFtZSgpLCBqc051bWJlcig0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKICAgICAgICAgSlNET01HbG9iYWxPYmplY3Q6Okdsb2JhbFByb3BlcnR5SW5mbyhjbGllbnRE
YXRhLmJ1aWx0aW5OYW1lcygpLnN0cmVhbVdhaXRpbmdQcml2YXRlTmFtZSgpLCBqc051bWJlcig1
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgSlNET01HbG9iYWxPYmplY3Q6Okds
b2JhbFByb3BlcnR5SW5mbyhjbGllbnREYXRhLmJ1aWx0aW5OYW1lcygpLnN0cmVhbVdyaXRhYmxl
UHJpdmF0ZU5hbWUoKSwganNOdW1iZXIoNiksIERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAg
ICAgIEpTRE9NR2xvYmFsT2JqZWN0OjpHbG9iYWxQcm9wZXJ0eUluZm8oY2xpZW50RGF0YS5idWls
dGluTmFtZXMoKS5SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRlTmFtZSgpLCBwcml2YXRl
UmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ29uc3RydWN0b3IsIERvbnREZWxldGUgfCBSZWFkT25s
eSksCisgICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0OjpHbG9iYWxQcm9wZXJ0eUluZm8oY2xpZW50
RGF0YS5idWlsdGluTmFtZXMoKS5SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyUHJpdmF0
ZU5hbWUoKSwgcHJpdmF0ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJDb25zdHJ1Y3Rv
ciwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgSlNET01HbG9iYWxPYmplY3Q6Okds
b2JhbFByb3BlcnR5SW5mbyhjbGllbnREYXRhLmJ1aWx0aW5OYW1lcygpLlJlYWRhYmxlU3RyZWFt
RGVmYXVsdFJlYWRlclByaXZhdGVOYW1lKCksIHByaXZhdGVSZWFkYWJsZVN0cmVhbURlZmF1bHRS
ZWFkZXJDb25zdHJ1Y3RvciwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICNlbmRpZgogICAgIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFt
UHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Jl
YWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAKaW5kZXggNzc3ZDA1ZTIxOGUwOTNk
M2Q4OTU0NWI4MDY5ZmYzNmI5NTg0Y2Y5NS4uYjQ5YjNhMmIwYjNlZDRjMzkxYmVjZGRjYjhkNzQ0
YzIwMzNhYzBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFk
YWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcApAQCAtMjQs
NyArMjQsNyBAQAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29u
c3RydWN0b3IuaCIKICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtLmgiCi0jaW5jbHVkZSAiSlNS
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtRGVm
YXVsdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRl
ci5oIgogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCIKICNpbmNs
dWRlIDxydW50aW1lL0NhbGxEYXRhLmg+CkBAIC0zMywxMCArMzMsMTAgQEAgdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBQdWJsaWMgSlMgUmVhZGFibGVT
dHJlYW1SZWRlciBhbmQgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIGNvbnN0cnVjdG9yIGNhbGxi
YWNrcy4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNSZWFkYWJsZVN0
cmVhbUNvbnRyb2xsZXIoRXhlY1N0YXRlJiBleGVjKQorLy8gUHVibGljIEpTIFJlYWRhYmxlU3Ry
ZWFtUmVkZXIgYW5kIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIgY29uc3RydWN0b3Ig
Y2FsbGJhY2tzLgorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1JlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIoRXhlY1N0YXRlJiBleGVjKQogewotICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKCZleGVjLCBBU0NJSUxpdGVyYWwoIlJlYWRhYmxlU3RyZWFtQ29u
dHJvbGxlciBjb25zdHJ1Y3RvciBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSIpKTsKKyAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmZXhlYywgQVNDSUlMaXRlcmFsKCJSZWFkYWJsZVN0
cmVhbURlZmF1bHRDb250cm9sbGVyIGNvbnN0cnVjdG9yIHNob3VsZCBub3QgYmUgY2FsbGVkIGRp
cmVjdGx5IikpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpT
UmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyKEV4ZWNTdGF0ZSYgZXhlYykKQEAgLTUzLDI0ICs1
MywyNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTUmVhZGFibGVT
dHJlYW1EZWZhdWx0UmVhZGVyKEV4ZWNTdGF0ZSYgZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoY2FsbCgmZXhlYywganNGdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBzdHJlYW0sIG5v
QXJndW1lbnRzKSk7CiB9CiAKLS8vIFByaXZhdGUgSlMgUmVhZGFibGVTdHJlYW1SZWRlciBhbmQg
UmVhZGFibGVTdHJlYW1Db250cm9sbGVyIGNvbnN0cnVjdG9ycy4KKy8vIFByaXZhdGUgSlMgUmVh
ZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIGFuZCBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9s
bGVyIGNvbnN0cnVjdG9ycy4KIHR5cGVkZWYgSlNCdWlsdGluQ29uc3RydWN0b3I8SlNSZWFkYWJs
ZVN0cmVhbURlZmF1bHRSZWFkZXI+IEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRl
clByaXZhdGVDb25zdHJ1Y3RvcjsKLXR5cGVkZWYgSlNCdWlsdGluQ29uc3RydWN0b3I8SlNSZWFk
YWJsZVN0cmVhbUNvbnRyb2xsZXI+IEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtQ29udHJvbGxlclBy
aXZhdGVDb25zdHJ1Y3RvcjsKK3R5cGVkZWYgSlNCdWlsdGluQ29uc3RydWN0b3I8SlNSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyPiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbURlZmF1bHRD
b250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yOwogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxM
WV9ERVNUUlVDVElCTEUoSlNCdWlsdGluUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0
ZUNvbnN0cnVjdG9yKTsKLVNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShK
U0J1aWx0aW5SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3IpOworU1RB
VElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEpTQnVpbHRpblJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3IpOwogCiB0ZW1wbGF0ZTw+IGNv
bnN0IENsYXNzSW5mbyBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRl
Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclByaXZh
dGVDb25zdHJ1Y3RvciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNC
dWlsdGluUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yKSB9Owot
dGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNCdWlsdGluUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyUHJpdmF0ZUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJSZWFkYWJsZVN0cmVhbUNvbnRyb2xs
ZXJQcml2YXRlQ29uc3RydWN0b3IiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtQ29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3Rvcikg
fTsKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtRGVm
YXVsdENvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3IiLCAmQmFzZTo6c19pbmZvLCAw
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRy
b2xsZXJQcml2YXRlQ29uc3RydWN0b3IpIH07CiAKIHRlbXBsYXRlPD4gRnVuY3Rpb25FeGVjdXRh
YmxlKiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRlQ29uc3RydWN0
b3I6OmluaXRpYWxpemVFeGVjdXRhYmxlKEpTQzo6Vk0mIHZtKQogewogICAgIHJldHVybiByZWFk
YWJsZVN0cmVhbUludGVybmFsc1ByaXZhdGVJbml0aWFsaXplUmVhZGFibGVTdHJlYW1EZWZhdWx0
UmVhZGVyQ29kZUdlbmVyYXRvcih2bSk7CiB9CiAKLXRlbXBsYXRlPD4gRnVuY3Rpb25FeGVjdXRh
YmxlKiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3I6
OmluaXRpYWxpemVFeGVjdXRhYmxlKEpTQzo6Vk0mIHZtKQordGVtcGxhdGU8PiBGdW5jdGlvbkV4
ZWN1dGFibGUqIEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJQcml2YXRl
Q29uc3RydWN0b3I6OmluaXRpYWxpemVFeGVjdXRhYmxlKEpTQzo6Vk0mIHZtKQogewotICAgIHJl
dHVybiByZWFkYWJsZVN0cmVhbUludGVybmFsc1ByaXZhdGVJbml0aWFsaXplUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyQ29kZUdlbmVyYXRvcih2bSk7CisgICAgcmV0dXJuIHJlYWRhYmxlU3RyZWFt
SW50ZXJuYWxzUHJpdmF0ZUluaXRpYWxpemVSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVy
Q29kZUdlbmVyYXRvcih2bSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVSZWFkYWJsZVN0cmVhbURl
ZmF1bHRSZWFkZXJQcml2YXRlQ29uc3RydWN0b3IoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KQpAQCAtNzgsOSArNzgsOSBAQCBKU09iamVjdCogY3JlYXRlUmVhZGFibGVT
dHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yKFZNJiB2bSwgSlNET01HbG9iYQog
ICAgIHJldHVybiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRlQ29u
c3RydWN0b3I6OmNyZWF0ZSh2bSwgSlNCdWlsdGluUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVy
UHJpdmF0ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xv
YmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KTsKIH0KIAotSlNPYmpl
Y3QqIGNyZWF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3RvcihWTSYg
dm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCitKU09iamVjdCogY3JlYXRlUmVh
ZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3RvcihWTSYgdm0sIEpT
RE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7Ci0gICAgcmV0dXJuIEpTQnVpbHRpblJl
YWRhYmxlU3RyZWFtQ29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBKU0J1
aWx0aW5SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3I6OmNyZWF0ZVN0
cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCkp
LCBnbG9iYWxPYmplY3QpOworICAgIHJldHVybiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbURlZmF1
bHRDb250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yOjpjcmVhdGUodm0sIEpTQnVpbHRpblJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCkpLCBn
bG9iYWxPYmplY3QpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVj
dG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVByaXZh
dGVDb25zdHJ1Y3RvcnMuaAppbmRleCAzNmM2ZWYyNWMzMTZiN2U3YTFkY2FhNGM4YWJjZmE1M2Vk
OTFkYTY2Li43MWRjYzdmYTYyMjFjYTM1NmM2MzYwOWYxMDU5ZjU5MDJmNTk0ZjEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNv
bnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVT
dHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmgKQEAgLTMzLDggKzMzLDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKIAotSlNDOjpKU09iamVjdCogY3Jl
YXRlUmVhZGFibGVTdHJlYW1Db250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yKEpTQzo6Vk0mLCBK
U0RPTUdsb2JhbE9iamVjdCYpOwogSlNDOjpKU09iamVjdCogY3JlYXRlUmVhZGFibGVTdHJlYW1E
ZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVj
dCYpOworSlNDOjpKU09iamVjdCogY3JlYXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxl
clByaXZhdGVDb25zdHJ1Y3RvcihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1JlYWRhYmxlU3RyZWFtU291cmNlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3BwCmluZGV4IDU4OTk5Y2U3
ZmEwOGU0YTJiMDE5MTVhZTlkNTRlMmMzNWRhMmU1MjMuLmQ0Njg3ZDE1YmZmZWM2ODM1NDlhMjNi
NzdhZmUyYzM0MTAxZDdiYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3BwCkBAIC0zNywxNCArMzcs
MTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBKU1ZhbHVlIEpTUmVhZGFibGVTdHJlYW1Tb3Vy
Y2U6OnN0YXJ0KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgSlNSZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBqc0R5bmFtaWNDYXN0PEpTUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyKj4oc3RhdGUuYXJndW1lbnQoMCkpOworICAgIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29u
dHJvbGxlciogY29udHJvbGxlciA9IGpzRHluYW1pY0Nhc3Q8SlNSZWFkYWJsZVN0cmVhbURlZmF1
bHRDb250cm9sbGVyKj4oc3RhdGUuYXJndW1lbnQoMCkpOwogICAgIEFTU0VSVChjb250cm9sbGVy
KTsKIAogICAgIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2UqIGpzU291cmNlID0gY29uc3RfY2FzdDxK
U1JlYWRhYmxlU3RyZWFtU291cmNlKj4odGhpcyk7CiAgICAgbV9jb250cm9sbGVyLnNldChzdGF0
ZS52bSgpLCBqc1NvdXJjZSwgc3RhdGUuYXJndW1lbnQoMCkpOwogCiAgICAgSlNDOjpKU1Byb21p
c2VEZWZlcnJlZCogcHJvbWlzZURlZmVycmVkID0gSlNDOjpKU1Byb21pc2VEZWZlcnJlZDo6Y3Jl
YXRlKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCkpOwotICAgIHdyYXBwZWQoKS5zdGFydChSZWFkYWJs
ZVN0cmVhbUNvbnRyb2xsZXIoY29udHJvbGxlciksIERlZmVycmVkV3JhcHBlcigmc3RhdGUsIGds
b2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpKTsKKyAgICB3cmFwcGVkKCkuc3RhcnQoUmVh
ZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcihjb250cm9sbGVyKSwgRGVmZXJyZWRXcmFwcGVy
KCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCkpOwogICAgIHJldHVybiBw
cm9taXNlRGVmZXJyZWQtPnByb21pc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDBiNGE3NmQ5MjdiOWIyNzI0NThhMzVjNmQ4ODcxNjhlZThmODdl
MTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDg5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24g
SW5jLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIHJlcXVpcmVkIHRv
IGJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
LSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
Q0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0gKiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCi0gKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSAqIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCi0gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZWFkYWJsZVN0cmVh
bUNvbnRyb2xsZXIuaCIKLQotI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKLQotI2luY2x1ZGUgIkpT
UmVhZGFibGVTdHJlYW0uaCIKLSNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtU291cmNlLmgiCi0j
aW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LXN0YXRpYyBpbmxpbmUgSlNDOjpKU1ZhbHVlIGNhbGxGdW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUsIEpTQzo6SlNWYWx1ZSBqc0Z1bmN0aW9uLCBKU0M6OkpTVmFsdWUgdGhpc1ZhbHVlLCBj
b25zdCBKU0M6OkFyZ0xpc3QmIGFyZ3VtZW50cykKLXsKLSAgICBKU0M6OkNhbGxEYXRhIGNhbGxE
YXRhOwotICAgIGF1dG8gY2FsbFR5cGUgPSBKU0M6OmdldENhbGxEYXRhKGpzRnVuY3Rpb24sIGNh
bGxEYXRhKTsKLSAgICByZXR1cm4gY2FsbCgmc3RhdGUsIGpzRnVuY3Rpb24sIGNhbGxUeXBlLCBj
YWxsRGF0YSwgdGhpc1ZhbHVlLCBhcmd1bWVudHMpOwotfQotCi1KU0M6OkpTVmFsdWUgUmVhZGFi
bGVTdHJlYW1Db250cm9sbGVyOjppbnZva2UoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpT
T2JqZWN0JiBvYmplY3QsIGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlIHBh
cmFtZXRlcikKLXsKLSAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKCZzdGF0ZSk7Ci0KLSAgICBh
dXRvIGZ1bmN0aW9uID0gb2JqZWN0LmdldCgmc3RhdGUsIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24o
KSkKLSAgICAgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKLQotICAgIGlmICghZnVuY3Rp
b24uaXNGdW5jdGlvbigpKSB7Ci0gICAgICAgIGlmICghZnVuY3Rpb24uaXNVbmRlZmluZWQoKSkK
LSAgICAgICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJSZWFkYWJs
ZVN0cmVhbSB0cnlpbmcgdG8gY2FsbCBhIHByb3BlcnR5IHRoYXQgaXMgbm90IGNhbGxhYmxlIikp
OwotICAgICAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIEpTQzo6
TWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOwotICAgIGFyZ3VtZW50cy5hcHBlbmQocGFy
YW1ldGVyKTsKLQotICAgIHJldHVybiBjYWxsRnVuY3Rpb24oc3RhdGUsIGZ1bmN0aW9uLCAmb2Jq
ZWN0LCBhcmd1bWVudHMpOwotfQotCi1ib29sIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcjo6aXND
b250cm9sbGVkUmVhZGFibGVTdHJlYW1Mb2NrZWQoKSBjb25zdAotewotICAgIGF1dG8mIHN0YXRl
ID0gKmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7Ci0gICAgSlNDOjpKU0xvY2tIb2xkZXIg
bG9jaygmc3RhdGUpOwotCi0gICAgYXV0byYgY2xpZW50RGF0YSA9ICpzdGF0aWNfY2FzdDxKU1ZN
Q2xpZW50RGF0YSo+KHN0YXRlLnZtKCkuY2xpZW50RGF0YSk7Ci0gICAgYXV0byByZWFkYWJsZVN0
cmVhbSA9IG1fanNDb250cm9sbGVyLT5nZXQoJnN0YXRlLCBjbGllbnREYXRhLmJ1aWx0aW5OYW1l
cygpLmNvbnRyb2xsZWRSZWFkYWJsZVN0cmVhbVByaXZhdGVOYW1lKCkpOwotICAgIEFTU0VSVCgh
c3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotCi0gICAgYXV0byBpc0xvY2tlZCA9IGdsb2JhbE9iamVj
dCgpLT5idWlsdGluSW50ZXJuYWxGdW5jdGlvbnMoKS5yZWFkYWJsZVN0cmVhbUludGVybmFscygp
Lm1faXNSZWFkYWJsZVN0cmVhbUxvY2tlZEZ1bmN0aW9uLmdldCgpOwotCi0gICAgSlNDOjpNYXJr
ZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7Ci0gICAgYXJndW1lbnRzLmFwcGVuZChyZWFkYWJs
ZVN0cmVhbSk7Ci0gICAgYXV0byByZXN1bHQgPSBjYWxsRnVuY3Rpb24oc3RhdGUsIGlzTG9ja2Vk
LCBKU0M6OmpzVW5kZWZpbmVkKCksIGFyZ3VtZW50cyk7Ci0gICAgQVNTRVJUKCFzdGF0ZS5oYWRF
eGNlcHRpb24oKSk7Ci0KLSAgICByZXR1cm4gcmVzdWx0LmlzVHJ1ZSgpOwotfQotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoU1RSRUFNU19BUEkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZWIzMTRmNzJmMWUyMGVmMjY1OTYxMTIy
Yzk5MmMyNjJiYzc0NTczLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxl
ci5oCisrKyAvZGV2L251bGwKQEAgLTEsMTA0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQ2Fub24gSW5jLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IHJlcXVpcmVkIHRvIGJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgotICogICAg
IGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
Ci0gKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCi0gKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotICogU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKLSAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcl9o
Ci0jZGVmaW5lIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcl9oCi0KLSNpZiBFTkFCTEUoU1RSRUFN
U19BUEkpCi0KLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRlICJKU1JlYWRhYmxl
U3RyZWFtQ29udHJvbGxlci5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZS5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaD4KLSNpbmNsdWRlIDxydW50aW1lL1R5
cGVkQXJyYXlzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUmVhZGFibGVTdHJl
YW1Tb3VyY2U7Ci0KLWNsYXNzIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciB7Ci1wdWJsaWM6Ci0g
ICAgZXhwbGljaXQgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKEpTUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyKiBjb250cm9sbGVyKSA6IG1fanNDb250cm9sbGVyKGNvbnRyb2xsZXIpIHsgfQotCi0g
ICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBpbnZva2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTT2Jq
ZWN0JiwgY29uc3QgY2hhciosIEpTQzo6SlNWYWx1ZSk7Ci0KLSAgICBib29sIGVucXVldWUoUmVm
UHRyPEpTQzo6QXJyYXlCdWZmZXI+JiYpOwotCi0gICAgdGVtcGxhdGU8Y2xhc3MgUmVzb2x2ZVJl
c3VsdFR5cGU+Ci0gICAgdm9pZCBlcnJvcihjb25zdCBSZXNvbHZlUmVzdWx0VHlwZSYpOwotCi0g
ICAgdm9pZCBjbG9zZSgpIHsgaW52b2tlKCpnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCAq
bV9qc0NvbnRyb2xsZXIsICJjbG9zZSIsIEpTQzo6anNVbmRlZmluZWQoKSk7IH0KLQotICAgIGJv
b2wgaXNDb250cm9sbGVkUmVhZGFibGVTdHJlYW1Mb2NrZWQoKSBjb25zdDsKLQotcHJpdmF0ZToK
LSAgICB2b2lkIGVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIHZhbHVl
KSB7IGludm9rZShzdGF0ZSwgKm1fanNDb250cm9sbGVyLCAiZXJyb3IiLCB2YWx1ZSk7IH0KLSAg
ICB2b2lkIGVucXVldWUoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgdmFsdWUp
IHsgaW52b2tlKHN0YXRlLCAqbV9qc0NvbnRyb2xsZXIsICJlbnF1ZXVlIiwgdmFsdWUpOyB9Ci0K
LSAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgY29uc3Q7Ci0KLSAgICAvLyBU
aGUgb3duZXIgb2YgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIGlzIHJlc3BvbnNpYmxlIHRvIGtl
ZXAgdW5jb2xsZWN0ZWQgdGhlIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLgotICAgIEpTUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyKiBtX2pzQ29udHJvbGxlciB7IG51bGxwdHIgfTsKLX07Ci0K
LWlubGluZSBKU0RPTUdsb2JhbE9iamVjdCogUmVhZGFibGVTdHJlYW1Db250cm9sbGVyOjpnbG9i
YWxPYmplY3QoKSBjb25zdAotewotICAgIEFTU0VSVChtX2pzQ29udHJvbGxlcik7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4obV9qc0NvbnRyb2xsZXItPmdsb2Jh
bE9iamVjdCgpKTsKLX0KLQotaW5saW5lIGJvb2wgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyOjpl
bnF1ZXVlKFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiYmIGJ1ZmZlcikKLXsKLSAgICBKU0M6OkV4
ZWNTdGF0ZSYgc3RhdGUgPSAqZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKLSAgICBKU0M6
OkpTTG9ja0hvbGRlciBsb2NrZXIoJnN0YXRlKTsKLQotICAgIGlmICghYnVmZmVyKSB7Ci0gICAg
ICAgIGVycm9yKHN0YXRlLCBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKCZzdGF0ZSkpOwotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGF1dG8gbGVuZ3RoID0gYnVmZmVyLT5ieXRlTGVu
Z3RoKCk7Ci0gICAgYXV0byBjaHVuayA9IEpTQzo6VWludDhBcnJheTo6Y3JlYXRlKFdURk1vdmUo
YnVmZmVyKSwgMCwgbGVuZ3RoKTsKLSAgICBBU1NFUlQoY2h1bmspOwotICAgIGVucXVldWUoc3Rh
dGUsIHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgY2h1bmsuZ2V0KCkpKTsKLSAgICBBU1NF
UlQoIXN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdGVtcGxh
dGU8PgotaW5saW5lIHZvaWQgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyOjplcnJvcjxTdHJpbmc+
KGNvbnN0IFN0cmluZyYgcmVzdWx0KQotewotICAgIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSA9IGds
b2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7Ci0gICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2Vy
KHN0YXRlKTsKLSAgICBlcnJvcigqc3RhdGUsIGpzU3RyaW5nKHN0YXRlLCByZXN1bHQpKTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNUUkVBTVNfQVBJ
KQotCi0jZW5kaWYgLy8gUmVhZGFibGVTdHJlYW1Db250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29u
dHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWE4Mzc5MGZmZjgyOTMxZTljNDEzYmQ1MDg4MTg4Y2U0
ZTYzYzg5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Jl
YWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsODkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBu
YW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
ICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmgiCisKKyNpZiBF
TkFCTEUoU1RSRUFNU19BUEkpCisKKyNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtLmgiCisjaW5j
bHVkZSAiSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgorI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVu
dERhdGEuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgaW5saW5lIEpTQzo6SlNW
YWx1ZSBjYWxsRnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUganNG
dW5jdGlvbiwgSlNDOjpKU1ZhbHVlIHRoaXNWYWx1ZSwgY29uc3QgSlNDOjpBcmdMaXN0JiBhcmd1
bWVudHMpCit7CisgICAgSlNDOjpDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICBhdXRvIGNhbGxUeXBl
ID0gSlNDOjpnZXRDYWxsRGF0YShqc0Z1bmN0aW9uLCBjYWxsRGF0YSk7CisgICAgcmV0dXJuIGNh
bGwoJnN0YXRlLCBqc0Z1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNWYWx1ZSwgYXJn
dW1lbnRzKTsKK30KKworSlNDOjpKU1ZhbHVlIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xs
ZXI6Omludm9rZShKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNPYmplY3QmIG9iamVjdCwg
Y29uc3QgY2hhciogcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUgcGFyYW1ldGVyKQoreworICAg
IEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soJnN0YXRlKTsKKworICAgIGF1dG8gZnVuY3Rpb24gPSBv
YmplY3QuZ2V0KCZzdGF0ZSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZzdGF0ZSwgcHJv
cGVydHlOYW1lKSk7CisgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1
cm4gSlNDOjpqc1VuZGVmaW5lZCgpOworCisgICAgaWYgKCFmdW5jdGlvbi5pc0Z1bmN0aW9uKCkp
IHsKKyAgICAgICAgaWYgKCFmdW5jdGlvbi5pc1VuZGVmaW5lZCgpKQorICAgICAgICAgICAgdGhy
b3dUeXBlRXJyb3IoJnN0YXRlLCBBU0NJSUxpdGVyYWwoIlJlYWRhYmxlU3RyZWFtIHRyeWluZyB0
byBjYWxsIGEgcHJvcGVydHkgdGhhdCBpcyBub3QgY2FsbGFibGUiKSk7CisgICAgICAgIHJldHVy
biBKU0M6OmpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1
ZmZlciBhcmd1bWVudHM7CisgICAgYXJndW1lbnRzLmFwcGVuZChwYXJhbWV0ZXIpOworCisgICAg
cmV0dXJuIGNhbGxGdW5jdGlvbihzdGF0ZSwgZnVuY3Rpb24sICZvYmplY3QsIGFyZ3VtZW50cyk7
Cit9CisKK2Jvb2wgUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcjo6aXNDb250cm9sbGVk
UmVhZGFibGVTdHJlYW1Mb2NrZWQoKSBjb25zdAoreworICAgIGF1dG8mIHN0YXRlID0gKmdsb2Jh
bE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jaygmc3Rh
dGUpOworCisgICAgYXV0byYgY2xpZW50RGF0YSA9ICpzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0
YSo+KHN0YXRlLnZtKCkuY2xpZW50RGF0YSk7CisgICAgYXV0byByZWFkYWJsZVN0cmVhbSA9IG1f
anNDb250cm9sbGVyLT5nZXQoJnN0YXRlLCBjbGllbnREYXRhLmJ1aWx0aW5OYW1lcygpLmNvbnRy
b2xsZWRSZWFkYWJsZVN0cmVhbVByaXZhdGVOYW1lKCkpOworICAgIEFTU0VSVCghc3RhdGUuaGFk
RXhjZXB0aW9uKCkpOworCisgICAgYXV0byBpc0xvY2tlZCA9IGdsb2JhbE9iamVjdCgpLT5idWls
dGluSW50ZXJuYWxGdW5jdGlvbnMoKS5yZWFkYWJsZVN0cmVhbUludGVybmFscygpLm1faXNSZWFk
YWJsZVN0cmVhbUxvY2tlZEZ1bmN0aW9uLmdldCgpOworCisgICAgSlNDOjpNYXJrZWRBcmd1bWVu
dEJ1ZmZlciBhcmd1bWVudHM7CisgICAgYXJndW1lbnRzLmFwcGVuZChyZWFkYWJsZVN0cmVhbSk7
CisgICAgYXV0byByZXN1bHQgPSBjYWxsRnVuY3Rpb24oc3RhdGUsIGlzTG9ja2VkLCBKU0M6Ompz
VW5kZWZpbmVkKCksIGFyZ3VtZW50cyk7CisgICAgQVNTRVJUKCFzdGF0ZS5oYWRFeGNlcHRpb24o
KSk7CisKKyAgICByZXR1cm4gcmVzdWx0LmlzVHJ1ZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1RSRUFNU19BUEkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9s
bGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWJiNDNkZGNhNzMyMjg1ODI5YTdiYTc5YTJmZmQwM2NlNjUwYzdi
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxl
U3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQ2Fub24gSW5jLiBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmVhZGFibGVTdHJlYW1EZWZh
dWx0Q29udHJvbGxlcl9oCisjZGVmaW5lIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJf
aAorCisjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQorCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgi
CisjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmgiCisjaW5jbHVk
ZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5s
aW5lcy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvVHlwZWRBcnJheXMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBSZWFkYWJsZVN0cmVhbVNvdXJjZTsKKworY2xhc3MgUmVhZGFibGVT
dHJlYW1EZWZhdWx0Q29udHJvbGxlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVhZGFibGVT
dHJlYW1EZWZhdWx0Q29udHJvbGxlcihKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIq
IGNvbnRyb2xsZXIpIDogbV9qc0NvbnRyb2xsZXIoY29udHJvbGxlcikgeyB9CisKKyAgICBzdGF0
aWMgSlNDOjpKU1ZhbHVlIGludm9rZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNPYmplY3QmLCBj
b25zdCBjaGFyKiwgSlNDOjpKU1ZhbHVlKTsKKworICAgIGJvb2wgZW5xdWV1ZShSZWZQdHI8SlND
OjpBcnJheUJ1ZmZlcj4mJik7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBSZXNvbHZlUmVzdWx0VHlw
ZT4KKyAgICB2b2lkIGVycm9yKGNvbnN0IFJlc29sdmVSZXN1bHRUeXBlJik7CisKKyAgICB2b2lk
IGNsb3NlKCkgeyBpbnZva2UoKmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksICptX2pzQ29u
dHJvbGxlciwgImNsb3NlIiwgSlNDOjpqc1VuZGVmaW5lZCgpKTsgfQorCisgICAgYm9vbCBpc0Nv
bnRyb2xsZWRSZWFkYWJsZVN0cmVhbUxvY2tlZCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIHZv
aWQgZXJyb3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgdmFsdWUpIHsgaW52
b2tlKHN0YXRlLCAqbV9qc0NvbnRyb2xsZXIsICJlcnJvciIsIHZhbHVlKTsgfQorICAgIHZvaWQg
ZW5xdWV1ZShKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkgeyBpbnZv
a2Uoc3RhdGUsICptX2pzQ29udHJvbGxlciwgImVucXVldWUiLCB2YWx1ZSk7IH0KKworICAgIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSBjb25zdDsKKworICAgIC8vIFRoZSBvd25l
ciBvZiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyIGlzIHJlc3BvbnNpYmxlIHRvIGtl
ZXAgdW5jb2xsZWN0ZWQgdGhlIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci4KKyAg
ICBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIqIG1fanNDb250cm9sbGVyIHsgbnVs
bHB0ciB9OworfTsKKworaW5saW5lIEpTRE9NR2xvYmFsT2JqZWN0KiBSZWFkYWJsZVN0cmVhbURl
ZmF1bHRDb250cm9sbGVyOjpnbG9iYWxPYmplY3QoKSBjb25zdAoreworICAgIEFTU0VSVChtX2pz
Q29udHJvbGxlcik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
bV9qc0NvbnRyb2xsZXItPmdsb2JhbE9iamVjdCgpKTsKK30KKworaW5saW5lIGJvb2wgUmVhZGFi
bGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcjo6ZW5xdWV1ZShSZWZQdHI8SlNDOjpBcnJheUJ1ZmZl
cj4mJiBidWZmZXIpCit7CisgICAgSlNDOjpFeGVjU3RhdGUmIHN0YXRlID0gKmdsb2JhbE9iamVj
dCgpLT5nbG9iYWxFeGVjKCk7CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKCZzdGF0ZSk7
CisKKyAgICBpZiAoIWJ1ZmZlcikgeworICAgICAgICBlcnJvcihzdGF0ZSwgY3JlYXRlT3V0T2ZN
ZW1vcnlFcnJvcigmc3RhdGUpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBh
dXRvIGxlbmd0aCA9IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpOworICAgIGF1dG8gY2h1bmsgPSBKU0M6
OlVpbnQ4QXJyYXk6OmNyZWF0ZShXVEZNb3ZlKGJ1ZmZlciksIDAsIGxlbmd0aCk7CisgICAgQVNT
RVJUKGNodW5rKTsKKyAgICBlbnF1ZXVlKHN0YXRlLCB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0
KCksIGNodW5rLmdldCgpKSk7CisgICAgQVNTRVJUKCFzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK3RlbXBsYXRlPD4KK2lubGluZSB2b2lkIFJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXI6OmVycm9yPFN0cmluZz4oY29uc3QgU3RyaW5nJiByZXN1bHQp
Cit7CisgICAgSlNDOjpFeGVjU3RhdGUqIHN0YXRlID0gZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4
ZWMoKTsKKyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrZXIoc3RhdGUpOworICAgIGVycm9yKCpz
dGF0ZSwganNTdHJpbmcoc3RhdGUsIHJlc3VsdCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1RSRUFNU19BUEkpCisKKyNlbmRpZiAvLyBSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCBkOGNlNTQ4NDk2Y2MxYjFkMjBkY2VlNzA1
NGU3OWJlNmNhNzlmOTRkLi5iNTYyODk0OWY5MGUzN2JhZWMyODhhMjBlMTRlYmYyODQyNjM1Yzdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oCkBAIC05Nyw3ICs5Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhNZWRp
YVN0cmVhbVRyYWNrKSBcCiAgICAgbWFjcm8oUmVhZGFibGVTdHJlYW0pIFwKICAgICBtYWNybyhS
ZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIpIFwKLSAgICBtYWNybyhSZWFkYWJsZVN0cmVhbUNv
bnRyb2xsZXIpIFwKKyAgICBtYWNybyhSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyKSBc
CiAgICAgbWFjcm8oUmVxdWVzdCkgXAogICAgIG1hY3JvKFJlc3BvbnNlKSBcCiAgICAgbWFjcm8o
UlRDSWNlQ2FuZGlkYXRlKSBcCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjk4OTU5ZWFiMWY4YmY0MTNmMzE3ZTQwZmNmYTc0
ZjVhMzgxOWYwMC4uMjJmYTk2MDkwZGRjM2E0YTdmNDc1ZDg4ZTVlNWNjMWZjMDRhM2UxZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDIzIEBACiAyMDE2LTA3LTI3ICBSb21haW4gQmVsbGVzc29ydCAgPHJvbWFp
bi5iZWxsZXNzb3J0QGNyZi5jYW5vbi5mcj4KIAorICAgICAgICBbU3RyZWFtcyBBUEldIFJlcGxh
Y2UgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIGJ5IFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRy
b2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MDI0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
cGxhY2VkIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBieSBSZWFkYWJsZVN0cmVhbURlZmF1bHRD
b250cm9sbGVyIHRvIGFsaWduCisgICAgICAgIHdpdGggdXBkYXRlZCBTdHJlYW1zIEFQSSBzcGVj
aWZpY2F0aW9uLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LgorCisgICAg
ICAgICogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tZGVmYXVsdC1jb250cm9sbGVyLWVycm9yLWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3Ry
ZWFtLWNvbnRyb2xsZXItZXJyb3ItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHN0cmVhbXMvcmVh
ZGFibGUtc3RyZWFtLWRlZmF1bHQtY29udHJvbGxlci1lcnJvci5odG1sOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tY29udHJvbGxlci1lcnJvci5odG1s
LgorICAgICAgICAqIHN0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWVycm9yLW1lc3NhZ2VzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBzdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1lcnJvci1tZXNzYWdl
cy5odG1sOgorICAgICAgICAqIHN0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRh
YmxlLXN0cmVhbS1leHBlY3RlZC50eHQ6CisKKzIwMTYtMDctMjcgIFJvbWFpbiBCZWxsZXNzb3J0
ICA8cm9tYWluLmJlbGxlc3NvcnRAY3JmLmNhbm9uLmZyPgorCiAgICAgICAgIFtTdHJlYW1zIEFQ
SV0gUmVwbGFjZSBSZWFkYWJsZVN0cmVhbVJlYWRlciBieSBSZWFkYWJsZVN0cmVhbURlZmF1bHRS
ZWFkZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MDE5NAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1j
b250cm9sbGVyLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFi
bGUtc3RyZWFtLWNvbnRyb2xsZXItZXJyb3ItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkMmE3NWU5MmUzMTY1MzU3MTk3ZmIwNTcxYWQ0MzZkZTAzYTk3NzQ3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWNvbnRyb2xsZXItZXJyb3ItZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0KLVBBU1MgRXJyb3JpbmcgYSBSZWFkYWJsZVN0
cmVhbSBhZnRlciBjaGVja2luZyBjbG9zZWQgc2hvdWxkIHJlamVjdCBSZWFkYWJsZVN0cmVhbURl
ZmF1bHRSZWFkZXIgY2xvc2VkIHByb21pc2UgCi1QQVNTIEVycm9yaW5nIGEgUmVhZGFibGVTdHJl
YW0gYmVmb3JlIGNoZWNraW5nIGNsb3NlZCBzaG91bGQgcmVqZWN0IFJlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlciBjbG9zZWQgcHJvbWlzZSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Ry
ZWFtcy9yZWFkYWJsZS1zdHJlYW0tY29udHJvbGxlci1lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMv
c3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tY29udHJvbGxlci1lcnJvci5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyNmE2MzZkMzdmZjg3NDAzMDczYTA0MzI0NWI3OTc3NzBkYWFk
NmFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWNvbnRyb2xsZXItZXJyb3IuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9
Jy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyc+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0nLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0vLyBU
aGlzIGlzIHVwZGF0ZWQgdGlsbCBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL3N0cmVhbXMvY29t
bWl0LzRiYTg2MWU2ZjYwYzI0ODA2MDgxMTgzMGUxMTI3MWM4NGI0MzljYzMKLQotdmFyIHRlc3Qx
ID0gYXN5bmNfdGVzdCgnRXJyb3JpbmcgYSBSZWFkYWJsZVN0cmVhbSBhZnRlciBjaGVja2luZyBj
bG9zZWQgc2hvdWxkIHJlamVjdCBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIgY2xvc2VkIHBy
b21pc2UnKTsKLXRlc3QxLnN0ZXAoZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGNvbnRyb2xsZXI7Ci0g
ICAgdmFyIHJzID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKLSAgICAgICAgc3RhcnQ6IGZ1bmN0aW9u
KGMpIHsKLSAgICAgICAgICAgIGNvbnRyb2xsZXIgPSBjOwotICAgICAgICB9Ci0gICAgfSk7Ci0K
LSAgIHJzLmdldFJlYWRlcigpLmNsb3NlZC50aGVuKHRlc3QxLnN0ZXBfZnVuYyhmdW5jdGlvbigp
IHsKLSAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiY2xvc2VkIHByb21pc2Ugc2hvdWxkIG5vdCBi
ZSByZXNvbHZlZCB3aGVuIHN0cmVhbSBpcyBlcnJvcmVkIik7Ci0gICAgfSksIHRlc3QxLnN0ZXBf
ZnVuYyhmdW5jdGlvbihlcnIpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhyc0Vycm9yLCBlcnIp
OwotICAgICAgICB0ZXN0MS5kb25lKCk7Ci0gICAgfSkpOwotCi0gICAgdmFyIHJzRXJyb3IgPSAi
bXkgZXJyb3IiOwotICAgIGNvbnRyb2xsZXIuZXJyb3IocnNFcnJvcik7Ci19KTsKLQotdmFyIHRl
c3QyID0gYXN5bmNfdGVzdCgnRXJyb3JpbmcgYSBSZWFkYWJsZVN0cmVhbSBiZWZvcmUgY2hlY2tp
bmcgY2xvc2VkIHNob3VsZCByZWplY3QgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIGNsb3Nl
ZCBwcm9taXNlJyk7Ci10ZXN0Mi5zdGVwKGZ1bmN0aW9uKCkgewotICAgIHZhciBjb250cm9sbGVy
OwotICAgIHZhciBycyA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7Ci0gICAgICAgIHN0YXJ0OiBmdW5j
dGlvbihjKSB7Ci0gICAgICAgICAgICBjb250cm9sbGVyID0gYzsKLSAgICAgICAgfQotICAgIH0p
OwotCi0gICAgdmFyIHJzRXJyb3IgPSAibXkgZXJyb3IiOwotICAgIGNvbnRyb2xsZXIuZXJyb3Io
cnNFcnJvcik7Ci0KLSAgICAvLyBMZXQncyBjYWxsIGdldFJlYWRlciB0d2ljZSB0byBlbnN1cmUg
dGhhdCBzdHJlYW0gaXMgbm90IGxvY2tlZCB0byBhIHJlYWRlci4KLSAgICBycy5nZXRSZWFkZXIo
KS5yZWxlYXNlTG9jaygpOwotICAgIHJzLmdldFJlYWRlcigpLmNsb3NlZC50aGVuKHRlc3QyLnN0
ZXBfZnVuYyhmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiY2xvc2VkIHBy
b21pc2Ugc2hvdWxkIG5vdCBiZSByZXNvbHZlZCB3aGVuIHN0cmVhbSBpcyBlcnJvcmVkIik7Ci0g
ICAgfSksIHRlc3QyLnN0ZXBfZnVuYyhmdW5jdGlvbihlcnIpIHsKLSAgICAgICAgYXNzZXJ0X2Vx
dWFscyhyc0Vycm9yLCBlcnIpOwotICAgICAgICB0ZXN0Mi5kb25lKCk7Ci0gICAgfSkpOwotfSk7
Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3Ry
ZWFtLWRlZmF1bHQtY29udHJvbGxlci1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1kZWZhdWx0LWNvbnRyb2xsZXItZXJyb3ItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQyYTc1ZTkyZTMxNjUzNTcxOTdmYjA1NzFhZDQzNmRlMDNhOTc3NDcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1k
ZWZhdWx0LWNvbnRyb2xsZXItZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQ
QVNTIEVycm9yaW5nIGEgUmVhZGFibGVTdHJlYW0gYWZ0ZXIgY2hlY2tpbmcgY2xvc2VkIHNob3Vs
ZCByZWplY3QgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIGNsb3NlZCBwcm9taXNlIAorUEFT
UyBFcnJvcmluZyBhIFJlYWRhYmxlU3RyZWFtIGJlZm9yZSBjaGVja2luZyBjbG9zZWQgc2hvdWxk
IHJlamVjdCBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIgY2xvc2VkIHByb21pc2UgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWRlZmF1bHQtY29u
dHJvbGxlci1lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0t
ZGVmYXVsdC1jb250cm9sbGVyLWVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjZhNjM2ZDM3ZmY4NzQw
MzA3M2EwNDMyNDViNzk3NzcwZGFhZDZhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWRlZmF1bHQtY29udHJvbGxlci1lcnJvci5odG1sCkBA
IC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CisvLyBUaGlzIGlzIHVwZGF0
ZWQgdGlsbCBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL3N0cmVhbXMvY29tbWl0LzRiYTg2MWU2
ZjYwYzI0ODA2MDgxMTgzMGUxMTI3MWM4NGI0MzljYzMKKwordmFyIHRlc3QxID0gYXN5bmNfdGVz
dCgnRXJyb3JpbmcgYSBSZWFkYWJsZVN0cmVhbSBhZnRlciBjaGVja2luZyBjbG9zZWQgc2hvdWxk
IHJlamVjdCBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIgY2xvc2VkIHByb21pc2UnKTsKK3Rl
c3QxLnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvbnRyb2xsZXI7CisgICAgdmFyIHJzID0g
bmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uKGMpIHsKKyAgICAg
ICAgICAgIGNvbnRyb2xsZXIgPSBjOworICAgICAgICB9CisgICAgfSk7CisKKyAgIHJzLmdldFJl
YWRlcigpLmNsb3NlZC50aGVuKHRlc3QxLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKKyAgICAgICAg
YXNzZXJ0X3VucmVhY2hlZCgiY2xvc2VkIHByb21pc2Ugc2hvdWxkIG5vdCBiZSByZXNvbHZlZCB3
aGVuIHN0cmVhbSBpcyBlcnJvcmVkIik7CisgICAgfSksIHRlc3QxLnN0ZXBfZnVuYyhmdW5jdGlv
bihlcnIpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyc0Vycm9yLCBlcnIpOworICAgICAgICB0
ZXN0MS5kb25lKCk7CisgICAgfSkpOworCisgICAgdmFyIHJzRXJyb3IgPSAibXkgZXJyb3IiOwor
ICAgIGNvbnRyb2xsZXIuZXJyb3IocnNFcnJvcik7Cit9KTsKKwordmFyIHRlc3QyID0gYXN5bmNf
dGVzdCgnRXJyb3JpbmcgYSBSZWFkYWJsZVN0cmVhbSBiZWZvcmUgY2hlY2tpbmcgY2xvc2VkIHNo
b3VsZCByZWplY3QgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIGNsb3NlZCBwcm9taXNlJyk7
Cit0ZXN0Mi5zdGVwKGZ1bmN0aW9uKCkgeworICAgIHZhciBjb250cm9sbGVyOworICAgIHZhciBy
cyA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7CisgICAgICAgIHN0YXJ0OiBmdW5jdGlvbihjKSB7Cisg
ICAgICAgICAgICBjb250cm9sbGVyID0gYzsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgdmFy
IHJzRXJyb3IgPSAibXkgZXJyb3IiOworICAgIGNvbnRyb2xsZXIuZXJyb3IocnNFcnJvcik7CisK
KyAgICAvLyBMZXQncyBjYWxsIGdldFJlYWRlciB0d2ljZSB0byBlbnN1cmUgdGhhdCBzdHJlYW0g
aXMgbm90IGxvY2tlZCB0byBhIHJlYWRlci4KKyAgICBycy5nZXRSZWFkZXIoKS5yZWxlYXNlTG9j
aygpOworICAgIHJzLmdldFJlYWRlcigpLmNsb3NlZC50aGVuKHRlc3QyLnN0ZXBfZnVuYyhmdW5j
dGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiY2xvc2VkIHByb21pc2Ugc2hvdWxk
IG5vdCBiZSByZXNvbHZlZCB3aGVuIHN0cmVhbSBpcyBlcnJvcmVkIik7CisgICAgfSksIHRlc3Qy
LnN0ZXBfZnVuYyhmdW5jdGlvbihlcnIpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyc0Vycm9y
LCBlcnIpOworICAgICAgICB0ZXN0Mi5kb25lKCk7CisgICAgfSkpOworfSk7Cis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWVycm9yLW1l
c3NhZ2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFt
LWVycm9yLW1lc3NhZ2VzLWV4cGVjdGVkLnR4dAppbmRleCA5NzEzOTY4ZmNkMjVjYjZkM2ZiYmU1
YjFmNTA5MDQ3NzhiM2RhZjc2Li43MWVhMzUyN2NhNTY1NGZlMzcyODQ0M2U5OTcxNzNmMjJlMGM4
MjlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1lcnJv
ci1tZXNzYWdlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJs
ZS1zdHJlYW0tZXJyb3ItbWVzc2FnZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDE1ICsxLDE1IEBACiBD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6IFR5cGVFcnJvcjogQ2FuIG9ubHkgY2FsbCBSZWFkYWJs
ZVN0cmVhbS5nZXRSZWFkZXIgb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFtCiBDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTE6IFR5cGVFcnJvcjogQ2FuIG9ubHkgY2FsbCBSZWFkYWJsZVN0cmVh
bS50ZWUgb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFtCiBDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTE6IFR5cGVFcnJvcjogVGhlIFJlYWRhYmxlU3RyZWFtLmxvY2tlZCBnZXR0ZXIgY2FuIG9u
bHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW0KLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAxMTogVHlwZUVycm9yOiBDYW4gb25seSBjYWxsIFJlYWRhYmxlU3RyZWFtQ29udHJv
bGxlci5lbnF1ZXVlIG9uIGluc3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAxMTogVHlwZUVycm9yOiBDYW4gb25seSBjYWxsIFJlYWRhYmxl
U3RyZWFtQ29udHJvbGxlci5lcnJvciBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6IFR5cGVFcnJvcjogQ2FuIG9ubHkgY2Fs
bCBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuY2xvc2Ugb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxl
U3RyZWFtQ29udHJvbGxlcgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiBUeXBlRXJyb3I6IFRo
ZSBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuZGVzaXJlZFNpemUgZ2V0dGVyIGNhbiBvbmx5IGJl
IHVzZWQgb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcgorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDExOiBUeXBlRXJyb3I6IENhbiBvbmx5IGNhbGwgUmVhZGFibGVTdHJlYW1E
ZWZhdWx0Q29udHJvbGxlci5lbnF1ZXVlIG9uIGluc3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVhbURl
ZmF1bHRDb250cm9sbGVyCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6IFR5cGVFcnJvcjogQ2Fu
IG9ubHkgY2FsbCBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmVycm9yIG9uIGluc3Rh
bmNlcyBvZiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTE6IFR5cGVFcnJvcjogQ2FuIG9ubHkgY2FsbCBSZWFkYWJsZVN0cmVhbURlZmF1bHRD
b250cm9sbGVyLmNsb3NlIG9uIGluc3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250
cm9sbGVyCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6IFR5cGVFcnJvcjogVGhlIFJlYWRhYmxl
U3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuZGVzaXJlZFNpemUgZ2V0dGVyIGNhbiBvbmx5IGJlIHVz
ZWQgb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIKIENPTlNP
TEUgTUVTU0FHRTogbGluZSAxMTogVHlwZUVycm9yOiBDYW4gb25seSBjYWxsIFJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdFJlYWRlci5yZWxlYXNlTG9jayBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJl
YW1EZWZhdWx0UmVhZGVyCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IFR5cGVFcnJvcjogQ2Fu
IG9ubHkgY2FsbCBSZWFkYWJsZVN0cmVhbS5jYW5jZWwgb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxl
U3RyZWFtCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IFR5cGVFcnJvcjogQ2FuIG9ubHkgY2Fs
bCBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuY2FuY2VsIG9uIGluc3RhbmNlcyBvZiBSZWFk
YWJsZVN0cmVhbURlZmF1bHRSZWFkZXIKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxODogVHlwZUVy
cm9yOiBDYW4gb25seSBjYWxsIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5yZWFkIG9uIGlu
c3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIKIENPTlNPTEUgTUVTU0FHRTog
bGluZSAxODogVHlwZUVycm9yOiBUaGUgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmNsb3Nl
ZCBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW1E
ZWZhdWx0UmVhZGVyCiAKLVBBU1MgRXhlcmNpc2luZyBUeXBlRXJyb3IgbWVzc2FnZXMgaW4gUmVh
ZGFibGVTdHJlYW0sIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBhbmQgUmVhZGFibGVTdHJlYW1E
ZWZhdWx0UmVhZGVyIAorUEFTUyBFeGVyY2lzaW5nIFR5cGVFcnJvciBtZXNzYWdlcyBpbiBSZWFk
YWJsZVN0cmVhbSwgUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlciBhbmQgUmVhZGFibGVT
dHJlYW1EZWZhdWx0UmVhZGVyIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3Jl
YWRhYmxlLXN0cmVhbS1lcnJvci1tZXNzYWdlcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9y
ZWFkYWJsZS1zdHJlYW0tZXJyb3ItbWVzc2FnZXMuaHRtbAppbmRleCBiNDcxMzM3Y2FiYTFmMzE0
YjZmNjkzNGEzNDEwOWMwNDVkMGJmN2Q0Li42MDI5MjU3MDZjZWU3NTAwNzQyNmY5NmNjYjc0YzBj
OWE1ZjU2ZWVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVh
bS1lcnJvci1tZXNzYWdlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUt
c3RyZWFtLWVycm9yLW1lc3NhZ2VzLmh0bWwKQEAgLTU5LDUgKzU5LDUgQEAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHRlc3QpIHsKICAgICByZXN1bHRzLnB1c2gocHJpbnRQcm9taXNlR2V0dGVyRXJy
b3IocmVhZGVyLCAiY2xvc2VkIiwgc3RyZWFtKSk7CiAKICAgICByZXR1cm4gUHJvbWlzZS5hbGwo
cmVzdWx0cyk7Ci19LCAiRXhlcmNpc2luZyBUeXBlRXJyb3IgbWVzc2FnZXMgaW4gUmVhZGFibGVT
dHJlYW0sIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBhbmQgUmVhZGFibGVTdHJlYW1EZWZhdWx0
UmVhZGVyIik7Cit9LCAiRXhlcmNpc2luZyBUeXBlRXJyb3IgbWVzc2FnZXMgaW4gUmVhZGFibGVT
dHJlYW0sIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIgYW5kIFJlYWRhYmxlU3RyZWFt
RGVmYXVsdFJlYWRlciIpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJl
YW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUt
c3RyZWFtLWV4cGVjdGVkLnR4dAppbmRleCA0MWE0Zjg5MWM4YjJiNmQ0YmQ1YzNhOWY2M2FhMmEy
ZmRmNWFkYjNkLi42MjEwYjgwZmMzODFhYzM1YWJiMjMyZGFhYWEwMzg0MWNhNGNkNjBkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFk
YWJsZS1zdHJlYW0tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJl
bmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS1leHBlY3RlZC50eHQKQEAgLTMyLDcg
KzMyLDcgQEAgUEFTUyBSZWFkYWJsZVN0cmVhbSBzdHJhdGVnaWVzOiB0aGUgZGVmYXVsdCBzdHJh
dGVneSBzaG91bGQgY29udGludWUgZ2l2aW5nIGRlc2kKIFBBU1MgUmVhZGFibGVTdHJlYW0gaW50
ZWdyYXRpb24gdGVzdDogYWRhcHRpbmcgYSByYW5kb20gcHVzaCBzb3VyY2UgCiBQQVNTIFJlYWRh
YmxlU3RyZWFtIGludGVncmF0aW9uIHRlc3Q6IGFkYXB0aW5nIGEgc3luYyBwdWxsIHNvdXJjZSAK
IFBBU1MgUmVhZGFibGVTdHJlYW0gaW50ZWdyYXRpb24gdGVzdDogYWRhcHRpbmcgYW4gYXN5bmMg
cHVsbCBzb3VyY2UgCi1QQVNTIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBtZXRob2RzIHNob3Vs
ZCBjb250aW51ZSB3b3JraW5nIHByb3Blcmx5IHdoZW4gc2NyaXB0cyBsb3NlIHRoZWlyIHJlZmVy
ZW5jZSB0byB0aGUgcmVhZGFibGUgc3RyZWFtIAorUEFTUyBSZWFkYWJsZVN0cmVhbURlZmF1bHRD
b250cm9sbGVyIG1ldGhvZHMgc2hvdWxkIGNvbnRpbnVlIHdvcmtpbmcgcHJvcGVybHkgd2hlbiBz
Y3JpcHRzIGxvc2UgdGhlaXIgcmVmZXJlbmNlIHRvIHRoZSByZWFkYWJsZSBzdHJlYW0gCiBQQVNT
IFJlYWRhYmxlU3RyZWFtIGNsb3NlZCBwcm9taXNlIHNob3VsZCBmdWxmaWxsIGV2ZW4gaWYgdGhl
IHN0cmVhbSBhbmQgcmVhZGVyIEpTIHJlZmVyZW5jZXMgYXJlIGxvc3QgCiBQQVNTIFJlYWRhYmxl
U3RyZWFtIGNsb3NlZCBwcm9taXNlIHNob3VsZCByZWplY3QgZXZlbiBpZiBzdHJlYW0gYW5kIHJl
YWRlciBKUyByZWZlcmVuY2VzIGFyZSBsb3N0IAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284781</attachid>
            <date>2016-07-28 07:03:20 -0700</date>
            <delta_ts>2016-07-28 08:44:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160242-20160728160206.patch</filename>
            <type>text/plain</type>
            <size>79280</size>
            <attacher name="Romain Bellessort">romain.wkt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQyYWM2N2VhNmFkZThm
ZGQ0NjRjMWQ5ZWMwMWJhNGY3NzBlNTdhNy4uMzE2NjRiMDBjMDNkZTU3YjZhOWUyNTU1NzQyODg0
MzU1YjUxY2RmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE2LTA3LTI4ICBSb21h
aW4gQmVsbGVzc29ydCAgPHJvbWFpbi5iZWxsZXNzb3J0QGNyZi5jYW5vbi5mcj4KKworICAgICAg
ICBbU3RyZWFtcyBBUEldIFJlcGxhY2UgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIGJ5IFJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MDI0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlcGxhY2VkIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBieSBS
ZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyIHRvIGFsaWduCisgICAgICAgIHdpdGggdXBk
YXRlZCBTdHJlYW1zIEFQSSBzcGVjaWZpY2F0aW9uLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBm
dW5jdGlvbmFsaXR5LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzOgorICAgICAgICAoaW5pdGlhbGl6
ZVJlYWRhYmxlU3RyZWFtKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW1EZWZhdWx0Q29udHJvbGxlci5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmlkbC4KKyAgICAgICAgKiBNb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5qczogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xs
ZXIuanMuCisgICAgICAgIChlbnF1ZXVlKToKKyAgICAgICAgKGVycm9yKToKKyAgICAgICAgKGNs
b3NlKToKKyAgICAgICAgKGRlc2lyZWRTaXplKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanM6CisgICAgICAgIChwcml2YXRlSW5pdGlhbGl6ZVJl
YWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIpOgorICAgICAgICAoaXNSZWFkYWJsZVN0cmVh
bURlZmF1bHRDb250cm9sbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1Tb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtU291cmNlOjpj
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtU291cmNlOjpzdGFy
dCk6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmlkbDoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNE
T01HbG9iYWxPYmplY3Q6OmFkZEJ1aWx0aW5HbG9iYWxzKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb25zdHJ1Y3RKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNCdWlsdGluUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlclByaXZh
dGVDb25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZUV4ZWN1dGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3Rv
cnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtU291cmNlQ3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTUmVhZGFibGVTdHJlYW1Tb3VyY2U6OnN0YXJ0KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFt
Q29udHJvbGxlci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpjYWxsRnVuY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcjo6aW52b2tlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXI6OmlzQ29udHJv
bGxlZFJlYWRhYmxlU3RyZWFtTG9ja2VkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXI6OlJlYWRhYmxlU3RyZWFtRGVmYXVsdENv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJv
bGxlcjo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1EZWZhdWx0Q29u
dHJvbGxlcjo6ZXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlcjo6ZW5xdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbURl
ZmF1bHRDb250cm9sbGVyOjpnbG9iYWxPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFi
bGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcjo6ZXJyb3I8U3RyaW5nPik6CisgICAgICAgICogYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorCiAyMDE2LTA3LTI4ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBDb21wdXRlIGZldGNoIHJlc3BvbnNl
IHR5cGUgaW4gY2FzZSBvZiBjcm9zcy1vcmlnaW4gcmVxdWVzdHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggZTY5MzcyMWRkZGVhNjczYTk4ODcyMjdkODQzOWNmMWM4MzI0ZDQ3ZC4uYmUxNDE1MjU5
N2FiMmRmNTYxMDEwMTQ4OThlYWM5NjlhODM5NmUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTI2Miw3ICsyNjIsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVs
ZXMvc3RyZWFtcy9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5LmlkbAogICAgIE1vZHVsZXMvc3Ry
ZWFtcy9Db3VudFF1ZXVpbmdTdHJhdGVneS5pZGwKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW0uaWRsCi0gICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxl
ci5pZGwKKyAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxl
ci5pZGwKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlk
bAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGwKICAgICBNb2R1
bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uaWRsCkBAIC0xMjM0LDcgKzEyMzQsNyBAQCBzZXQo
V2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAKICAgICBiaW5kaW5n
cy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMvUmVhZGFibGVT
dHJlYW1Db250cm9sbGVyLmNwcAorICAgIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtRGVmYXVs
dENvbnRyb2xsZXIuY3BwCiAgICAgYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcAogICAg
IGJpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKICAgICBiaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzcyNiw3ICszNzI2LDcgQEAgc2V0KFdlYkNvcmVfQlVJ
TFRJTlNfU09VUkNFUwogICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvc3RyZWFtcy9CeXRlTGVu
Z3RoUXVldWluZ1N0cmF0ZWd5LmpzCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1z
L0NvdW50UXVldWluZ1N0cmF0ZWd5LmpzCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlU3RyZWFtLmpzCi0gICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5qcworICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmpzCiAgICAgJHtXRUJDT1JF
X0RJUn0vTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCiAgICAgJHtX
RUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5q
cwogICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvc3RyZWFtcy9TdHJlYW1JbnRlcm5hbHMuanMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA4MWFkY2JkOGM0N2FkMmY2MWNmOTM5ZmFi
MjIyOWExN2QxNjQwZmViLi4zY2UzMmFkODRkY2M0NWExYzI4NjlkNmUzOTU0M2YxMTEyYzQ4Y2Iy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0zOTUsNyArMzk1LDcgQEAKICNpbmNs
dWRlICJKU1JhbmdlLmNwcCIKICNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCiAjaW5jbHVkZSAiSlNS
ZWFkYWJsZVN0cmVhbS5jcHAiCi0jaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIu
Y3BwIgorI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAiCiAj
aW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuY3BwIgogI2luY2x1ZGUgIkpT
V3JpdGFibGVTdHJlYW0uY3BwIgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpp
bmRleCAyNmFmMmRhODM2OTk4N2U5YzI3ZjJkOThkOGMzZGIxNzRjYTFjNzBiLi4zZGRhYTFhMzhh
YjYzZTRlZTRlYzIxY2JjMzg1OWNlYTQxZjRlNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTE4NSw3ICsxODUsNyBAQCBOT05fU1ZHX0JJTkRJTkdfSURMUyA9IFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5LmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5nU3RyYXRlZ3kuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGwgXAot
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVs
dENvbnRyb2xsZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJl
YW1zL1dyaXRhYmxlU3RyZWFtLmlkbCBcCkBAIC0xMjk2LDcgKzEyOTYsNyBAQCBXZWJDb3JlX0JV
SUxUSU5TX1NPVVJDRVMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvQnl0ZUxl
bmd0aFF1ZXVpbmdTdHJhdGVneS5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMv
Q291bnRRdWV1aW5nU3RyYXRlZ3kuanMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtLmpzIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbUNvbnRyb2xsZXIuanMgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuanMgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuanMgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1N0cmVhbUludGVybmFscy5qcyBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKaW5kZXggNjdlM2Jk
MzhiYzA1NGE1NjE1NjU2NWZmZDBhNzRiOGVkNjU4MzRlNS4uZjFiMjc1ZDA4NTM4NzA4MzNmZDg3
M2RhM2ZjNDk2ZmNjZmUyMmFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbS5qcwpAQCAtNTIsNyArNTIsNyBAQCBmdW5jdGlvbiBpbml0aWFs
aXplUmVhZGFibGVTdHJlYW0odW5kZXJseWluZ1NvdXJjZSwgc3RyYXRlZ3kpCiAgICAgdGhpcy5A
cmVhZGVyID0gQHVuZGVmaW5lZDsKICAgICB0aGlzLkBzdG9yZWRFcnJvciA9IEB1bmRlZmluZWQ7
CiAgICAgdGhpcy5AZGlzdHVyYmVkID0gZmFsc2U7Ci0gICAgdGhpcy5AY29udHJvbGxlciA9IG5l
dyBAUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKHRoaXMpOworICAgIHRoaXMuQGNvbnRyb2xsZXIg
PSBuZXcgQFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIodGhpcyk7CiAgICAgdGhpcy5A
c3RyYXRlZ3kgPSBAdmFsaWRhdGVBbmROb3JtYWxpemVRdWV1aW5nU3RyYXRlZ3koc3RyYXRlZ3ku
c2l6ZSwgc3RyYXRlZ3kuaGlnaFdhdGVyTWFyayk7CiAKICAgICBAcHJvbWlzZUludm9rZU9yTm9v
cE5vQ2F0Y2godW5kZXJseWluZ1NvdXJjZSwgInN0YXJ0IiwgW3RoaXMuQGNvbnRyb2xsZXJdKS5A
dGhlbigoKSA9PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0MjJkYTExNmQwM2I3NGJiNmZkNzdkODQwZDYzMTE0MTk3MDY2YTg0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaWRsCisrKyAvZGV2L251bGwK
QEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBDYW5vbiBJbmMuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUg
bmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgotICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotICogREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
LSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSCi0gKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIENvbmRpdGlvbmFs
PVNUUkVBTVNfQVBJLAotICAgIEN1c3RvbUNvbnN0cnVjdG9yKFJlYWRhYmxlU3RyZWFtIHN0cmVh
bSwgYW55IHVuZGVybHlpbmdTb3VyY2UsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9u
ZyBoaWdoV2F0ZXJNYXJrKSwKLSAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKLSAgICBKU0J1
aWx0aW4sCi0gICAgTm9JbnRlcmZhY2VPYmplY3QKLV0gaW50ZXJmYWNlIFJlYWRhYmxlU3RyZWFt
Q29udHJvbGxlciB7Ci0gICAgW05vdEVudW1lcmFibGVdIHZvaWQgZW5xdWV1ZShvcHRpb25hbCBh
bnkgY2h1bmspOwotICAgIFtOb3RFbnVtZXJhYmxlXSB2b2lkIGNsb3NlKCk7Ci0gICAgW05vdEVu
dW1lcmFibGVdIHZvaWQgZXJyb3Iob3B0aW9uYWwgYW55IGVycm9yKTsKLQotICAgIFtOb3RFbnVt
ZXJhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGRlc2lyZWRTaXplOwotfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1D
b250cm9sbGVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MGM1M2NlNzI5OTg5
NzU1ZjcyNjE2ZWJhZDg1YjliYmMzZDUyNWRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbUNvbnRyb2xsZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotLy8gQGNvbmRpdGlvbmFsPUVOQUJMRShTVFJFQU1TX0FQSSkK
LQotZnVuY3Rpb24gZW5xdWV1ZShjaHVuaykKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0KLSAgICBp
ZiAoIUBpc1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcih0aGlzKSkKLSAgICAgICAgdGhyb3cgQG1h
a2VUaGlzVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIiLCAiZW5xdWV1ZSIpOwot
Ci0gICAgY29uc3Qgc3RyZWFtID0gdGhpcy5AY29udHJvbGxlZFJlYWRhYmxlU3RyZWFtOwotCi0g
ICAgaWYgKHN0cmVhbS5AY2xvc2VSZXF1ZXN0ZWQpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVy
cm9yKCJSZWFkYWJsZVN0cmVhbSBpcyByZXF1ZXN0ZWQgdG8gY2xvc2UiKTsKLQotICAgIGlmIChz
dHJlYW0uQHN0YXRlICE9PSBAc3RyZWFtUmVhZGFibGUpCi0gICAgICAgIHRocm93IG5ldyBAVHlw
ZUVycm9yKCJSZWFkYWJsZVN0cmVhbSBpcyBub3QgcmVhZGFibGUiKTsKLQotICAgIHJldHVybiBA
ZW5xdWV1ZUluUmVhZGFibGVTdHJlYW0oc3RyZWFtLCBjaHVuayk7Ci19Ci0KLWZ1bmN0aW9uIGVy
cm9yKGVycm9yKQotewotICAgICJ1c2Ugc3RyaWN0IjsKLQotICAgIGlmICghQGlzUmVhZGFibGVT
dHJlYW1Db250cm9sbGVyKHRoaXMpKQotICAgICAgICB0aHJvdyBAbWFrZVRoaXNUeXBlRXJyb3Io
IlJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciIsICJlcnJvciIpOwotCi0gICAgY29uc3Qgc3RyZWFt
ID0gdGhpcy5AY29udHJvbGxlZFJlYWRhYmxlU3RyZWFtOwotICAgIGlmIChzdHJlYW0uQHN0YXRl
ICE9PSBAc3RyZWFtUmVhZGFibGUpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJSZWFk
YWJsZVN0cmVhbSBpcyBub3QgcmVhZGFibGUiKTsKLQotICAgIEBlcnJvclJlYWRhYmxlU3RyZWFt
KHN0cmVhbSwgZXJyb3IpOwotfQotCi1mdW5jdGlvbiBjbG9zZSgpCi17Ci0gICAgInVzZSBzdHJp
Y3QiOwotCi0gICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIodGhpcykpCi0gICAg
ICAgIHRocm93IEBtYWtlVGhpc1R5cGVFcnJvcigiUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIiwg
ImNsb3NlIik7Ci0KLSAgICBjb25zdCBzdHJlYW0gPSB0aGlzLkBjb250cm9sbGVkUmVhZGFibGVT
dHJlYW07Ci0gICAgaWYgKHN0cmVhbS5AY2xvc2VSZXF1ZXN0ZWQpCi0gICAgICAgIHRocm93IG5l
dyBAVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbSBpcyBhbHJlYWR5IHJlcXVlc3RlZCB0byBjbG9z
ZSIpOwotCi0gICAgaWYgKHN0cmVhbS5Ac3RhdGUgIT09IEBzdHJlYW1SZWFkYWJsZSkKLSAgICAg
ICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIG5vdCByZWFkYWJsZSIp
OwotCi0gICAgQGNsb3NlUmVhZGFibGVTdHJlYW0oc3RyZWFtKTsKLX0KLQotZnVuY3Rpb24gZGVz
aXJlZFNpemUoKQotewotICAgICJ1c2Ugc3RyaWN0IjsKLQotICAgIGlmICghQGlzUmVhZGFibGVT
dHJlYW1Db250cm9sbGVyKHRoaXMpKQotICAgICAgICB0aHJvdyBAbWFrZUdldHRlclR5cGVFcnJv
cigiUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIiwgImRlc2lyZWRTaXplIik7Ci0KLSAgICByZXR1
cm4gQGdldFJlYWRhYmxlU3RyZWFtRGVzaXJlZFNpemUodGhpcy5AY29udHJvbGxlZFJlYWRhYmxl
U3RyZWFtKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mZjhkN2RmZmRkYTNmYTRjYzdmMWJlZTFmOGM0ZDgwMDZjM2UxYTRiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVs
dENvbnRyb2xsZXIuaWRsCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQ2Fub24gSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQ2Fu
b24gSW5jLiBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENBTk9OIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5PTiBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sK
KyAgICBDb25kaXRpb25hbD1TVFJFQU1TX0FQSSwKKyAgICBDdXN0b21Db25zdHJ1Y3RvcihSZWFk
YWJsZVN0cmVhbSBzdHJlYW0sIGFueSB1bmRlcmx5aW5nU291cmNlLCB1bnNpZ25lZCBsb25nIHNp
emUsIHVuc2lnbmVkIGxvbmcgaGlnaFdhdGVyTWFyayksCisgICAgRXhwb3NlZD0oV2luZG93LFdv
cmtlciksCisgICAgSlNCdWlsdGluLAorICAgIE5vSW50ZXJmYWNlT2JqZWN0CitdIGludGVyZmFj
ZSBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyIHsKKyAgICBbTm90RW51bWVyYWJsZV0g
dm9pZCBlbnF1ZXVlKG9wdGlvbmFsIGFueSBjaHVuayk7CisgICAgW05vdEVudW1lcmFibGVdIHZv
aWQgY2xvc2UoKTsKKyAgICBbTm90RW51bWVyYWJsZV0gdm9pZCBlcnJvcihvcHRpb25hbCBhbnkg
ZXJyb3IpOworCisgICAgW05vdEVudW1lcmFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUg
ZGVzaXJlZFNpemU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yZDQ5MjA2OTE1Y2IzN2MxYTJhZDFlZjlhNjRmMWJhNTM1MzU1YjllCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVm
YXVsdENvbnRyb2xsZXIuanMKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBDYW5vbiBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKy8vIEBjb25kaXRpb25hbD1FTkFCTEUoU1RSRUFNU19BUEkpCisKK2Z1bmN0aW9uIGVucXVl
dWUoY2h1bmspCit7CisgICAgInVzZSBzdHJpY3QiOworCisgICAgaWYgKCFAaXNSZWFkYWJsZVN0
cmVhbURlZmF1bHRDb250cm9sbGVyKHRoaXMpKQorICAgICAgICB0aHJvdyBAbWFrZVRoaXNUeXBl
RXJyb3IoIlJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIiLCAiZW5xdWV1ZSIpOworCisg
ICAgY29uc3Qgc3RyZWFtID0gdGhpcy5AY29udHJvbGxlZFJlYWRhYmxlU3RyZWFtOworCisgICAg
aWYgKHN0cmVhbS5AY2xvc2VSZXF1ZXN0ZWQpCisgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9y
KCJSZWFkYWJsZVN0cmVhbSBpcyByZXF1ZXN0ZWQgdG8gY2xvc2UiKTsKKworICAgIGlmIChzdHJl
YW0uQHN0YXRlICE9PSBAc3RyZWFtUmVhZGFibGUpCisgICAgICAgIHRocm93IG5ldyBAVHlwZUVy
cm9yKCJSZWFkYWJsZVN0cmVhbSBpcyBub3QgcmVhZGFibGUiKTsKKworICAgIHJldHVybiBAZW5x
dWV1ZUluUmVhZGFibGVTdHJlYW0oc3RyZWFtLCBjaHVuayk7Cit9CisKK2Z1bmN0aW9uIGVycm9y
KGVycm9yKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIGlmICghQGlzUmVhZGFibGVTdHJl
YW1EZWZhdWx0Q29udHJvbGxlcih0aGlzKSkKKyAgICAgICAgdGhyb3cgQG1ha2VUaGlzVHlwZUVy
cm9yKCJSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyIiwgImVycm9yIik7CisKKyAgICBj
b25zdCBzdHJlYW0gPSB0aGlzLkBjb250cm9sbGVkUmVhZGFibGVTdHJlYW07CisgICAgaWYgKHN0
cmVhbS5Ac3RhdGUgIT09IEBzdHJlYW1SZWFkYWJsZSkKKyAgICAgICAgdGhyb3cgbmV3IEBUeXBl
RXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIG5vdCByZWFkYWJsZSIpOworCisgICAgQGVycm9yUmVh
ZGFibGVTdHJlYW0oc3RyZWFtLCBlcnJvcik7Cit9CisKK2Z1bmN0aW9uIGNsb3NlKCkKK3sKKyAg
ICAidXNlIHN0cmljdCI7CisKKyAgICBpZiAoIUBpc1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRy
b2xsZXIodGhpcykpCisgICAgICAgIHRocm93IEBtYWtlVGhpc1R5cGVFcnJvcigiUmVhZGFibGVT
dHJlYW1EZWZhdWx0Q29udHJvbGxlciIsICJjbG9zZSIpOworCisgICAgY29uc3Qgc3RyZWFtID0g
dGhpcy5AY29udHJvbGxlZFJlYWRhYmxlU3RyZWFtOworICAgIGlmIChzdHJlYW0uQGNsb3NlUmVx
dWVzdGVkKQorICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiUmVhZGFibGVTdHJlYW0gaXMg
YWxyZWFkeSByZXF1ZXN0ZWQgdG8gY2xvc2UiKTsKKworICAgIGlmIChzdHJlYW0uQHN0YXRlICE9
PSBAc3RyZWFtUmVhZGFibGUpCisgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJSZWFkYWJs
ZVN0cmVhbSBpcyBub3QgcmVhZGFibGUiKTsKKworICAgIEBjbG9zZVJlYWRhYmxlU3RyZWFtKHN0
cmVhbSk7Cit9CisKK2Z1bmN0aW9uIGRlc2lyZWRTaXplKCkKK3sKKyAgICAidXNlIHN0cmljdCI7
CisKKyAgICBpZiAoIUBpc1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIodGhpcykpCisg
ICAgICAgIHRocm93IEBtYWtlR2V0dGVyVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbURlZmF1bHRD
b250cm9sbGVyIiwgImRlc2lyZWRTaXplIik7CisKKyAgICByZXR1cm4gQGdldFJlYWRhYmxlU3Ry
ZWFtRGVzaXJlZFNpemUodGhpcy5AY29udHJvbGxlZFJlYWRhYmxlU3RyZWFtKTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVy
bmFscy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUlu
dGVybmFscy5qcwppbmRleCAxMDkwOWNkMTgwYjA5MDMwOGEwOGRhNWQ5NTVjN2U4ZTc5YzBlNWUy
Li43M2ZjNGUzY2Y3ZDYwNGU1MDE0OGEzYzNlOGZmMmQzYzk4NDJiMTIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJu
YWxzLmpzCkBAIC01MywxMiArNTMsMTIgQEAgZnVuY3Rpb24gcHJpdmF0ZUluaXRpYWxpemVSZWFk
YWJsZVN0cmVhbURlZmF1bHRSZWFkZXIoc3RyZWFtKQogICAgIHJldHVybiB0aGlzOwogfQogCi1m
dW5jdGlvbiBwcml2YXRlSW5pdGlhbGl6ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcihzdHJlYW0p
CitmdW5jdGlvbiBwcml2YXRlSW5pdGlhbGl6ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xs
ZXIoc3RyZWFtKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIAogICAgIGlmICghQGlzUmVhZGFibGVT
dHJlYW0oc3RyZWFtKSkKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlYWRhYmxlU3Ry
ZWFtQ29udHJvbGxlciBuZWVkcyBhIFJlYWRhYmxlU3RyZWFtIik7CisgICAgICAgIHRocm93IG5l
dyBAVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyIG5lZWRzIGEgUmVh
ZGFibGVTdHJlYW0iKTsKICAgICBpZiAoc3RyZWFtLkBjb250cm9sbGVyICE9PSBAdW5kZWZpbmVk
KQogICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiUmVhZGFibGVTdHJlYW0gYWxyZWFkeSBo
YXMgYSBjb250cm9sbGVyIik7CiAgICAgdGhpcy5AY29udHJvbGxlZFJlYWRhYmxlU3RyZWFtID0g
c3RyZWFtOwpAQCAtMTg2LDcgKzE4Niw3IEBAIGZ1bmN0aW9uIGlzUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyKHJlYWRlcikKICAgICByZXR1cm4gQGlzT2JqZWN0KHJlYWRlcikgJiYgcmVhZGVy
LkBvd25lclJlYWRhYmxlU3RyZWFtICE9PSBAdW5kZWZpbmVkOwogfQogCi1mdW5jdGlvbiBpc1Jl
YWRhYmxlU3RyZWFtQ29udHJvbGxlcihjb250cm9sbGVyKQorZnVuY3Rpb24gaXNSZWFkYWJsZVN0
cmVhbURlZmF1bHRDb250cm9sbGVyKGNvbnRyb2xsZXIpCiB7CiAgICAgInVzZSBzdHJpY3QiOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW1Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bVNvdXJjZS5oCmluZGV4IDFiYmRmZGUwYzM2NjdlMDJlZTc3ODhjYzBhZDRkNzhmNzIyMTA3MDIu
LjVjZDUxOTQ2NjMyNjhjNGRhN2NkODNmZjdkZTUxODQ4MmQ1YmYyNmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oCkBA
IC0zMSw3ICszMSw3IEBACiAjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQogCiAjaW5jbHVkZSAiSlNE
T01Qcm9taXNlLmgiCi0jaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmgiCisjaW5j
bHVkZSAiUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPHd0Zi9P
cHRpb25hbC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NSwxNCArNDUsMTQgQEAgcHVi
bGljOgogICAgIHR5cGVkZWYgRE9NUHJvbWlzZTxzdGQ6Om51bGxwdHJfdD4gUHJvbWlzZTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBmaXJzdFJlYWRDYWxsYmFjaygpIHsgfQotICAgIHZvaWQgc3RhcnQo
UmVhZGFibGVTdHJlYW1Db250cm9sbGVyJiYsIFByb21pc2UmJik7CisgICAgdm9pZCBzdGFydChS
ZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyJiYsIFByb21pc2UmJik7CiAgICAgdm9pZCBj
YW5jZWwoSlNDOjpKU1ZhbHVlKTsKIAogICAgIGJvb2wgaXNTdGFydGluZygpIGNvbnN0IHsgcmV0
dXJuICEhbV9zdGFydFByb21pc2U7IH0KIAogcHJvdGVjdGVkOgotICAgIFJlYWRhYmxlU3RyZWFt
Q29udHJvbGxlciYgY29udHJvbGxlcigpIHsgcmV0dXJuIG1fY29udHJvbGxlci52YWx1ZSgpOyB9
Ci0gICAgY29uc3QgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyJiBjb250cm9sbGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9jb250cm9sbGVyLnZhbHVlKCk7IH0KKyAgICBSZWFkYWJsZVN0cmVhbURlZmF1
bHRDb250cm9sbGVyJiBjb250cm9sbGVyKCkgeyByZXR1cm4gbV9jb250cm9sbGVyLnZhbHVlKCk7
IH0KKyAgICBjb25zdCBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyJiBjb250cm9sbGVy
KCkgY29uc3QgeyByZXR1cm4gbV9jb250cm9sbGVyLnZhbHVlKCk7IH0KIAogICAgIHZvaWQgc3Rh
cnRGaW5pc2hlZCgpOwogICAgIHZvaWQgY2FuY2VsRmluaXNoZWQoKTsKQEAgLTY2LDEwICs2Niwx
MCBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8UHJvbWlzZT4gbV9zdGFy
dFByb21pc2U7Ci0gICAgT3B0aW9uYWw8UmVhZGFibGVTdHJlYW1Db250cm9sbGVyPiBtX2NvbnRy
b2xsZXI7CisgICAgT3B0aW9uYWw8UmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcj4gbV9j
b250cm9sbGVyOwogfTsKIAotaW5saW5lIHZvaWQgUmVhZGFibGVTdHJlYW1Tb3VyY2U6OnN0YXJ0
KFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciYmIGNvbnRyb2xsZXIsIFByb21pc2UmJiBwcm9taXNl
KQoraW5saW5lIHZvaWQgUmVhZGFibGVTdHJlYW1Tb3VyY2U6OnN0YXJ0KFJlYWRhYmxlU3RyZWFt
RGVmYXVsdENvbnRyb2xsZXImJiBjb250cm9sbGVyLCBQcm9taXNlJiYgcHJvbWlzZSkKIHsKICAg
ICBtX3N0YXJ0UHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSk7CiAgICAgbV9jb250cm9sbGVyID0g
V1RGTW92ZShjb250cm9sbGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsCmluZGV4IGQxNjkyODE2YmI3MDcxMzc5
MWI1YTljZDMwMzMwMzU1YjlhMmFiNmUuLjQ0YThlZDUxOTc0YWQxM2M5MjMzYjdhZTQxYzQ1NTJm
YTc1OTJhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbVNvdXJjZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtU291cmNlLmlkbApAQCAtMzIsNyArMzIsNyBAQAogICAgIFNraXBWVGFi
bGVWYWxpZGF0aW9uCiBdIGludGVyZmFjZSBSZWFkYWJsZVN0cmVhbVNvdXJjZSB7CiAgICAgLy8g
TWV0aG9kcyB0byBzdXBwb3J0IHB1c2ggc291cmNlcy4gVG8gc3VwcG9ydCBhbGwgc291cmNlcywg
cHVsbCBtZXRob2QgbWlnaHQgbmVlZCB0byBiZSBhZGRlZCwgYW5kIGNhbmNlbCBtYXkgcmV0dXJu
IGEgcHJvbWlzZS4KLSAgICBbQ3VzdG9tXSBQcm9taXNlIHN0YXJ0KFJlYWRhYmxlU3RyZWFtQ29u
dHJvbGxlciBjb250cm9sbGVyKTsKKyAgICBbQ3VzdG9tXSBQcm9taXNlIHN0YXJ0KFJlYWRhYmxl
U3RyZWFtRGVmYXVsdENvbnRyb2xsZXIgY29udHJvbGxlcik7CiAgICAgdm9pZCBjYW5jZWwoYW55
IHJlYXNvbik7CiAKICAgICBbUHJpdmF0ZUlkZW50aWZpZXJdIHZvaWQgZmlyc3RSZWFkQ2FsbGJh
Y2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBjZDY5ODk3NDY5MGNkNmMyNWMwYjI0MjVjYzVmMWY4Mzc3NTM2NDA0Li45YzNk
NjY3MTM0MmI5MzdjZjJjYmJlMmMyMTI0M2UzMjIzNWQ0MGQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjE5LDcgKzE2MTks
NyBAQAogCQk0MThDMzk1NjFDOERBQzdGMDA1MUM4QTMgLyogRE9NV2luZG93RmV0Y2guY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4QzM5NTIxQzhE
QUM3QjAwNTFDOEEzIC8qIERPTVdpbmRvd0ZldGNoLmNwcCAqLzsgfTsKIAkJNDE4QzM5NUExQzhE
RDY5OTAwNTFDOEEzIC8qIFdvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4QzM5NTcxQzhERDY5NjAwNTFDOEEz
IC8qIFdvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwICovOyB9OwogCQk0MThDMzk2MDFDOEYwQUFF
MDA1MUM4QTMgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZUN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MThDMzk1RDFDOEYwQUFCMDA1MUM4
QTMgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZUN1c3RvbS5jcHAgKi87IH07Ci0JCTQxOEMzOTYx
MUM4RjBBQjEwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4QzM5NUUxQzhGMEFBQjAw
NTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHAgKi87IH07CisJCTQxOEMzOTYx
MUM4RjBBQjEwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOEMzOTVFMUM4
RjBBQUIwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCAqLzsg
fTsKIAkJNDE4Rjg4MDQwRkY5NTdBRTAwODBGMDQ1IC8qIEpTQWJzdHJhY3RXb3JrZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4Rjg4MDIwRkY5
NTdBRTAwODBGMDQ1IC8qIEpTQWJzdHJhY3RXb3JrZXIuY3BwICovOyB9OwogCQk0MThGODgwNTBG
Rjk1N0FGMDA4MEYwNDUgLyogSlNBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4Rjg4MDMwRkY5NTdBRTAwODBGMDQ1IC8qIEpT
QWJzdHJhY3RXb3JrZXIuaCAqLzsgfTsKIAkJNDE5QkMyREUxNjg1MzI5OTAwRDY0RDZEIC8qIFZp
c2l0ZWRMaW5rU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE5QkMyREMxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuY3Bw
ICovOyB9OwpAQCAtMjU4Myw4ICsyNTgzLDggQEAKIAkJNkIzNDgwOTQwRUVGNTBENDAwQUMxQjQx
IC8qIE5hdGl2ZUltYWdlUHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2QjM0ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2VQdHIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QjY5M0Ey
RTFDNTFBODJFMDBCMDNCRUYgLyogUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCNjkzQTJEMUM1MUE4MkUwMEIwM0JF
RiAvKiBSZXNvdXJjZUxvYWRPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTZCNjkzQTM0MUM1MUE5NUQwMEIwM0JFRiAvKiBSZXNvdXJj
ZUxvYWRPYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2QjY5M0EzMzFDNTFBOTVEMDBCMDNCRUYgLyogUmVzb3VyY2VMb2FkT2JzZXJ2ZXIu
Y3BwICovOyB9OwotCQk2QzRDOTZERTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVh
bUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkM0Qzk2REExQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyLmNwcCAqLzsgfTsKLQkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVT
dHJlYW1Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXIuaCAqLzsgfTsKKwkJNkM0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVT
dHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2QzRDOTZEQTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0
cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCAqLzsgfTsKKwkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1
QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0Qzk2REIxQUQ0NDgzNTAwMzY1QTUw
IC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5oICovOyB9OwogCQk2QzYzODg5
NUE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZD
Q0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NkE5NkND
RUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1
MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CiAJ
CTZDRERFOEQwMTc3MEJCMjIwMDE2RTA3MiAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNzBBODE0MTc3MDdDNDkw
MDlBNDQ2RSAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTE0Nyw3ICs5MTQ3LDcgQEAKIAkJNDBFQ0FFN0Qx
NkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNET01FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MEVD
QUU4MDE2QjhCNjhBMDBDMzYxMDMgLyogSlNET01FcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDExODlFRjcxQUQ4MjMy
ODAwQjkwQTBEIC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDExODlFRjcxQUQ4MjMyODAwQjkwQTBEIC8qIFJlYWRhYmxlU3RyZWFtRGVm
YXVsdENvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFt
RGVmYXVsdENvbnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI3
RDUzNjBGOEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTI5REY4MzFCQjVCN0Y3MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVhbVBy
aXZhdGVDb25zdHJ1Y3RvcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTI5REY4NDFCQjVCN0Y3MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0
cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTkyMDQsOCArOTIwNCw4IEBACiAJCTQxOEMzOTVCMUM4RjBBNjEwMDUx
QzhBMyAvKiBSZWFkYWJsZVN0cmVhbVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZWFkYWJsZVN0cmVhbVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MThDMzk1QzFDOEYwQTYxMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtU291cmNlLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4QzM5NUQxQzhGMEFBQjAwNTFDOEEzIC8qIEpTUmVh
ZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbVNvdXJjZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTQxOEMzOTVFMUM4RjBBQUIwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVh
bUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NDE4QzM5NUYxQzhGMEFBQjAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4QzM5NUUxQzhGMEFBQjAwNTFDOEEz
IC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxOEMzOTVGMUM4RjBBQUIwMDUxQzhBMyAv
KiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4Rjg4MDIwRkY5NTdBRTAwODBGMDQ1IC8qIEpTQWJzdHJh
Y3RXb3JrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBYnN0
cmFjdFdvcmtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOEY4ODAzMEZG
OTU3QUUwMDgwRjA0NSAvKiBKU0Fic3RyYWN0V29ya2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQWJzdHJhY3RXb3JrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE5QkMyREMxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlzaXRlZExpbmtTdGF0ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDI5MCw4ICsxMDI5MCw4IEBACiAJCTZC
MzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZVB0ci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlSW1hZ2VQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNkI2OTNBMkQxQzUxQTgyRTAwQjAzQkVGIC8qIFJlc291cmNlTG9hZE9ic2Vy
dmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZE9ic2Vy
dmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCNjkzQTMzMUM1MUE5NUQwMEIw
M0JFRiAvKiBSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTZDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFt
Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Jl
YWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTZDNEM5NkRCMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtQ29udHJv
bGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2QzRDOTZEQTFBRDQ0ODM1MDAz
NjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJv
bGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNEM5NkRCMUFENDQ4MzUw
MDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2
QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM3MEE4MTQxNzcwN0M0OTAwOUE0NDZFIC8qIFJlZ2lv
bk92ZXJzZXRTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdpb25P
dmVyc2V0U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExODE4LDcgKzEx
ODE4LDcgQEAKIAkJOTkwOEIwRUUxQkNBQ0Y5MTAwRUQwRjY1IC8qIENvdW50UXVldWluZ1N0cmF0
ZWd5LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gQ291bnRRdWV1
aW5nU3RyYXRlZ3kuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEVGMUJD
QUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
amF2YXNjcmlwdDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5OTA4QjBFRjFCQ0FDRjkxMDBFRDBGNzUgLyogV3JpdGFibGVTdHJlYW0uanMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBXcml0YWJsZVN0cmVhbS5q
czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRjAxQkNBQ0Y5MTAwRUQwRjY1
IC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5qczsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTkwOEIwRjAxQkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IHBhdGggPSBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNTUgLyogU3RyZWFtSW50ZXJu
YWxzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gU3RyZWFtSW50
ZXJuYWxzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGMTFCQ0FDRjkx
MDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmphdmFzY3JpcHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUludGVybmFscy5qczsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjExQkNBQ0Y5MTAwRUQwRjc1IC8qIFdyaXRh
YmxlU3RyZWFtSW50ZXJuYWxzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBw
YXRoID0gV3JpdGFibGVTdHJlYW1JbnRlcm5hbHMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMTgyOSw4ICsxMTgyOSw4IEBACiAJCTk5MDhCMEY3MUJDQUQwN0QwMEVEMEY2NSAv
KiBDb3VudFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENvdW50UXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjkxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFt
QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhZGFi
bGVTdHJlYW1CdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhC
MEY5MUJDQUQwN0QwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTA4QjBGQTFCQ0FEMDdEMDBFRDBGNjUg
LyogUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQnVpbHRpbnMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTA4QjBGQjFCQ0FEMDdEMDBFRDBGNjUg
LyogUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQnVpbHRpbnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTkwOEIwRkExQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyQnVpbHRp
bnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTA4QjBGQjFCQ0FEMDdEMDBF
RDBGNjUgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlckJ1aWx0aW5zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xs
ZXJCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGRDFCQ0FE
MDdEMDBFRDBGNDUgLyogRmV0Y2hJbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGZXRjaEludGVybmFsc0J1aWx0aW5zLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkQxQkNBRDA3RDAwRUQwRjU1IC8qIFN0cmVh
bUludGVybmFsc0J1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTkwOEIwRkQxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxz
QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhZGFi
bGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNzA2OCw4ICsxNzA2OCw4IEBACiAJCQkJOTkwOEIwRUUxQkNBQ0Y5MTAwRUQwRjY1IC8q
IENvdW50UXVldWluZ1N0cmF0ZWd5LmpzICovLAogCQkJCTQxQTAyM0VEMUEzOURCNzkwMEY3MjJD
RiAvKiBSZWFkYWJsZVN0cmVhbS5pZGwgKi8sCiAJCQkJOTkwOEIwRUYxQkNBQ0Y5MTAwRUQwRjY1
IC8qIFJlYWRhYmxlU3RyZWFtLmpzICovLAotCQkJCTQxMTg5RUY3MUFEODIzMjgwMEI5MEEwRCAv
KiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaWRsICovLAotCQkJCTk5MDhCMEYwMUJDQUNGOTEw
MEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuanMgKi8sCisJCQkJNDExODlFRjcx
QUQ4MjMyODAwQjkwQTBEIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaWRsICov
LAorCQkJCTk5MDhCMEYwMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRD
b250cm9sbGVyLmpzICovLAogCQkJCTk5MDhCMEYxMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJs
ZVN0cmVhbUludGVybmFscy5qcyAqLywKIAkJCQk0MTlGQUZBRDFBQkFCQ0Q1MDA1QjgyOEIgLyog
UmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbCAqLywKIAkJCQk5OTA4QjBGMjFCQ0FDRjkx
MDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmpzICovLApAQCAtMTcwODgs
OCArMTcwODgsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJN0M0Qzk2RDgxQUQ0NDgzNTAwMzY1
QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uY3BwICovLAogCQkJCTdDNEM5NkQ5MUFENDQ4MzUwMDM2
NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggKi8sCi0JCQkJNkM0Qzk2REExQUQ0NDgzNTAwMzY1
QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcCAqLywKLQkJCQk2QzRDOTZEQjFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaCAqLywKKwkJCQk2
QzRDOTZEQTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9s
bGVyLmNwcCAqLywKKwkJCQk2QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0
cmVhbURlZmF1bHRDb250cm9sbGVyLmggKi8sCiAJCQkJN0M0Qzk2REExQUQ0NDgzNTAwMzY1QTUw
IC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmNwcCAqLywKIAkJCQk3QzRDOTZEQjFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaCAqLywKIAkJ
CQk3QzRDOTZEODFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5jcHAgKi8sCkBA
IC0xNzk0MSw4ICsxNzk0MSw5IEBACiAJCQkJNzFFMjE4MzkxNzM1OUZCODAwNkU2RTREIC8qIFBs
dWdJbnNSZXNvdXJjZXNEYXRhLmNwcCAqLywKIAkJCQk5OTA4QjBGOTFCQ0FEMDdEMDBFRDBGNjUg
LyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5jcHAgKi8sCiAJCQkJOUIwM0Q4MDYxQkIzMTEwRDAw
Qjc2NEQ4IC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuaCAqLywKLQkJCQk5OTA4QjBGQTFCQ0FE
MDdEMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQnVpbHRpbnMuY3BwICovLAot
CQkJCTk5MDhCMEZCMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJC
dWlsdGlucy5oICovLAorCQkJCTk5MDhCMEZBMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0
cmVhbURlZmF1bHRDb250cm9sbGVyQnVpbHRpbnMuY3BwICovLAorCQkJCTk5MDhCMEZCMUJDQUQw
N0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyQnVpbHRpbnMuaCAq
LywKKwkJCQk5OTA4QjBGRDFCQ0FEMDdEMDBFRDBGNDUgLyogRmV0Y2hJbnRlcm5hbHNCdWlsdGlu
cy5jcHAgKi8sCiAJCQkJOTkwOEIwRkQxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFt
SW50ZXJuYWxzQnVpbHRpbnMuY3BwICovLAogCQkJCTlCMDNEODA2MUJCMzExMEQwMEI3NjREOSAv
KiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi8sCiAJCQkJOTkwOEIwRkUxQkNB
RDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlckJ1aWx0aW5zLmNwcCAq
LywKQEAgLTIyNjAwLDggKzIyNjAxLDggQEAKIAkJCQlFMUMzNkQzMzBFQjBBMDk0MDA3NDEwQkMg
LyogSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCAqLywKIAkJCQk4M0E0QTlGODFDRTdGRDdFMDA3
MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJODM2QzE0NDIxQ0RFQUZD
QTAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCAqLywKLQkJCQk0MThDMzk1
RTFDOEYwQUFCMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcCAqLywKLQkJ
CQk0MThDMzk1RjFDOEYwQUFCMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmgg
Ki8sCisJCQkJNDE4QzM5NUUxQzhGMEFBQjAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVs
dENvbnRyb2xsZXIuY3BwICovLAorCQkJCTQxOEMzOTVGMUM4RjBBQUIwMDUxQzhBMyAvKiBSZWFk
YWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggKi8sCiAJCQkJQkNBMzc4QkEwRDE1RjY0MjAw
Qjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgKi8sCiAJCQkJQkNBMzc4QkIwRDE1RjY0MjAw
Qjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovLAogCQkJCTQxRjFEMjFFMEVGMzVDMkEwMERB
ODc1MyAvKiBTY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwICovLApAQCAtMjcxMTcsNyArMjcxMTgs
NyBAQAogCQkJCUI2NThGRkEyMTUyMkVGM0EwMERENTU5NSAvKiBKU1JhZGlvTm9kZUxpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTY1REYzMjAyMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1JhbmdlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3QzRDOTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJs
ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1QTUwIC8q
IEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk2QzRDOTZE
RjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTI5REY4NjFCQjVCODBDMDAzMjJBMTYgLyogSlNSZWFkYWJs
ZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNEM5NkRG
MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0U0Qzk2REQxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJl
YW1Tb3VyY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMzA5MjUsNyArMzA5MjYsNyBAQAogCQkJCUI2
NThGRkExMTUyMkVGM0EwMERENTU5NSAvKiBKU1JhZGlvTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNjVERjMyMDEwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0M0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0u
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNkM0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTZDNEM5NkRFMUFE
NDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDEyOURGODUxQkI1QjgwNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVT
dHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNEM5NkRF
MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk3RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0
cmVhbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxNjExLDcgKzMxNjEyLDcgQEAKIAkJ
CQk5M0YxOUFCOTA4MjQ1RTU5MDAxRTlBQkMgLyogUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRjU1QjNEQ0QxMjUxRjEyRDAwM0VGMjY5IC8qIFJhbmdlSW5wdXRUeXBlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTZFODRFOUUwMTc2NjhCRUUwMDgxNUI2OCAvKiBSYXN0ZXJTaGFwZS5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQk0MThDMzk2MTFDOEYwQUIxMDA1MUM4QTMgLyogUmVhZGFibGVT
dHJlYW1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxOEMzOTYxMUM4RjBBQjEw
MDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZEMzE2MDNCMTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTRBNEY2NTcwMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGlt
ZU1lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRBMEZGQUExMUFBRjVFQTIwMDYy
ODAzQiAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4
IGQ3ZmU2MzBlNTRhZDJlNzEwZmQyMzk1Nzg3NzY2ODZiMTM5MDA4ZDkuLjFkYjRmMGRmN2UxNDEx
N2VlM2ZjZTE0NTMyZDgxZDBlNWZjMjk1YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKQEAgLTkzLDEzICs5MywxMyBAQCB2b2lkIEpT
RE9NR2xvYmFsT2JqZWN0OjphZGRCdWlsdGluR2xvYmFscyhWTSYgdm0pCiAgICAgbV9idWlsdGlu
SW50ZXJuYWxGdW5jdGlvbnMuaW5pdGlhbGl6ZSgqdGhpcyk7CiAKICNpZiBFTkFCTEUoU1RSRUFN
U19BUEkpCi0gICAgSlNPYmplY3QqIHByaXZhdGVSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDb25z
dHJ1Y3RvciA9IGNyZWF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3Rv
cih2bSwgKnRoaXMpOworICAgIEpTT2JqZWN0KiBwcml2YXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlckNvbnN0cnVjdG9yID0gY3JlYXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJv
bGxlclByaXZhdGVDb25zdHJ1Y3Rvcih2bSwgKnRoaXMpOwogICAgIEpTT2JqZWN0KiBwcml2YXRl
UmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyQ29uc3RydWN0b3IgPSBjcmVhdGVSZWFkYWJsZVN0
cmVhbURlZmF1bHRSZWFkZXJQcml2YXRlQ29uc3RydWN0b3Iodm0sICp0aGlzKTsKIAotICAgIEFT
U0VSVCghY29uc3RydWN0b3JzKCkuZ2V0KHByaXZhdGVSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJD
b25zdHJ1Y3Rvci0+aW5mbygpKS5nZXQoKSk7CisgICAgQVNTRVJUKCFjb25zdHJ1Y3RvcnMoKS5n
ZXQocHJpdmF0ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJDb25zdHJ1Y3Rvci0+aW5m
bygpKS5nZXQoKSk7CiAgICAgQVNTRVJUKCFjb25zdHJ1Y3RvcnMoKS5nZXQocHJpdmF0ZVJlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlckNvbnN0cnVjdG9yLT5pbmZvKCkpLmdldCgpKTsKICAgICBK
U0M6OldyaXRlQmFycmllcjxKU0M6OkpTT2JqZWN0PiB0ZW1wOwotICAgIGNvbnN0cnVjdG9ycygp
LmFkZChwcml2YXRlUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ29uc3RydWN0b3ItPmluZm8oKSwg
dGVtcCkuaXRlcmF0b3ItPnZhbHVlLnNldCh2bSwgdGhpcywgcHJpdmF0ZVJlYWRhYmxlU3RyZWFt
Q29udHJvbGxlckNvbnN0cnVjdG9yKTsKKyAgICBjb25zdHJ1Y3RvcnMoKS5hZGQocHJpdmF0ZVJl
YWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJDb25zdHJ1Y3Rvci0+aW5mbygpLCB0ZW1wKS5p
dGVyYXRvci0+dmFsdWUuc2V0KHZtLCB0aGlzLCBwcml2YXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlckNvbnN0cnVjdG9yKTsKICAgICBjb25zdHJ1Y3RvcnMoKS5hZGQocHJpdmF0ZVJl
YWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlckNvbnN0cnVjdG9yLT5pbmZvKCksIHRlbXApLml0ZXJh
dG9yLT52YWx1ZS5zZXQodm0sIHRoaXMsIHByaXZhdGVSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFk
ZXJDb25zdHJ1Y3Rvcik7CiAjZW5kaWYKICAgICBKU1ZNQ2xpZW50RGF0YSYgY2xpZW50RGF0YSA9
ICpzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOwpAQCAtMTE1LDcg
KzExNSw3IEBAIHZvaWQgSlNET01HbG9iYWxPYmplY3Q6OmFkZEJ1aWx0aW5HbG9iYWxzKFZNJiB2
bSkKICAgICAgICAgSlNET01HbG9iYWxPYmplY3Q6Okdsb2JhbFByb3BlcnR5SW5mbyhjbGllbnRE
YXRhLmJ1aWx0aW5OYW1lcygpLnN0cmVhbVJlYWRhYmxlUHJpdmF0ZU5hbWUoKSwganNOdW1iZXIo
NCksIERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0OjpH
bG9iYWxQcm9wZXJ0eUluZm8oY2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5zdHJlYW1XYWl0aW5n
UHJpdmF0ZU5hbWUoKSwganNOdW1iZXIoNSksIERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAg
ICAgIEpTRE9NR2xvYmFsT2JqZWN0OjpHbG9iYWxQcm9wZXJ0eUluZm8oY2xpZW50RGF0YS5idWls
dGluTmFtZXMoKS5zdHJlYW1Xcml0YWJsZVByaXZhdGVOYW1lKCksIGpzTnVtYmVyKDYpLCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBKU0RPTUdsb2JhbE9iamVjdDo6R2xvYmFsUHJv
cGVydHlJbmZvKGNsaWVudERhdGEuYnVpbHRpbk5hbWVzKCkuUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvbnN0cnVj
dG9yLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBKU0RPTUdsb2JhbE9iamVjdDo6
R2xvYmFsUHJvcGVydHlJbmZvKGNsaWVudERhdGEuYnVpbHRpbk5hbWVzKCkuUmVhZGFibGVTdHJl
YW1EZWZhdWx0Q29udHJvbGxlclByaXZhdGVOYW1lKCksIHByaXZhdGVSZWFkYWJsZVN0cmVhbURl
ZmF1bHRDb250cm9sbGVyQ29uc3RydWN0b3IsIERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAg
ICAgIEpTRE9NR2xvYmFsT2JqZWN0OjpHbG9iYWxQcm9wZXJ0eUluZm8oY2xpZW50RGF0YS5idWls
dGluTmFtZXMoKS5SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRlTmFtZSgpLCBwcml2
YXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyQ29uc3RydWN0b3IsIERvbnREZWxldGUgfCBS
ZWFkT25seSksCiAjZW5kaWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMu
Y3BwCmluZGV4IDc3N2QwNWUyMThlMDkzZDNkODk1NDViODA2OWZmMzZiOTU4NGNmOTUuLmI0OWIz
YTJiMGIzZWQ0YzM5MWJlY2RkY2I4ZDc0NGMyMDMzYWMwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUHJpdmF0
ZUNvbnN0cnVjdG9ycy5jcHAKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNSZWFkYWJs
ZVN0cmVhbS5oIgotI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmgiCisjaW5j
bHVkZSAiSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSlNS
ZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaCIKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbUlu
dGVybmFsc0J1aWx0aW5zLmgiCiAjaW5jbHVkZSA8cnVudGltZS9DYWxsRGF0YS5oPgpAQCAtMzMs
MTAgKzMzLDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotLy8gUHVibGljIEpTIFJlYWRhYmxlU3RyZWFtUmVkZXIgYW5kIFJlYWRhYmxlU3RyZWFtQ29u
dHJvbGxlciBjb25zdHJ1Y3RvciBjYWxsYmFja3MuCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnN0cnVjdEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKEV4ZWNTdGF0ZSYgZXhlYykK
Ky8vIFB1YmxpYyBKUyBSZWFkYWJsZVN0cmVhbVJlZGVyIGFuZCBSZWFkYWJsZVN0cmVhbURlZmF1
bHRDb250cm9sbGVyIGNvbnN0cnVjdG9yIGNhbGxiYWNrcy4KK0VuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0SlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyKEV4ZWNT
dGF0ZSYgZXhlYykKIHsKLSAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmZXhlYywgQVNDSUlM
aXRlcmFsKCJSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgY29uc3RydWN0b3Igc2hvdWxkIG5vdCBi
ZSBjYWxsZWQgZGlyZWN0bHkiKSk7CisgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJmV4ZWMs
IEFTQ0lJTGl0ZXJhbCgiUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlciBjb25zdHJ1Y3Rv
ciBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSIpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcihFeGVj
U3RhdGUmIGV4ZWMpCkBAIC01MywyNCArNTMsMjQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcihFeGVjU3RhdGUmIGUK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGwoJmV4ZWMsIGpzRnVuY3Rpb24sIGNhbGxU
eXBlLCBjYWxsRGF0YSwgc3RyZWFtLCBub0FyZ3VtZW50cykpOwogfQogCi0vLyBQcml2YXRlIEpT
IFJlYWRhYmxlU3RyZWFtUmVkZXIgYW5kIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBjb25zdHJ1
Y3RvcnMuCisvLyBQcml2YXRlIEpTIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBhbmQgUmVh
ZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlciBjb25zdHJ1Y3RvcnMuCiB0eXBlZGVmIEpTQnVp
bHRpbkNvbnN0cnVjdG9yPEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyPiBKU0J1aWx0aW5S
ZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRlQ29uc3RydWN0b3I7Ci10eXBlZGVmIEpT
QnVpbHRpbkNvbnN0cnVjdG9yPEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyPiBKU0J1aWx0aW5S
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3I7Cit0eXBlZGVmIEpTQnVp
bHRpbkNvbnN0cnVjdG9yPEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcj4gSlNCdWls
dGluUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3RvcjsKIAog
U1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEpTQnVpbHRpblJlYWRhYmxl
U3RyZWFtRGVmYXVsdFJlYWRlclByaXZhdGVDb25zdHJ1Y3Rvcik7Ci1TVEFUSUNfQVNTRVJUX0lT
X1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNCdWlsdGluUmVhZGFibGVTdHJlYW1Db250cm9sbGVy
UHJpdmF0ZUNvbnN0cnVjdG9yKTsKK1NUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNU
SUJMRShKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyUHJpdmF0ZUNvbnN0
cnVjdG9yKTsKIAogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNCdWlsdGluUmVhZGFibGVT
dHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJSZWFkYWJs
ZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRlQ29uc3RydWN0b3IiLCAmQmFzZTo6c19pbmZvLCAw
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRl
clByaXZhdGVDb25zdHJ1Y3RvcikgfTsKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTQnVp
bHRpblJlYWRhYmxlU3RyZWFtQ29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiUmVhZGFibGVTdHJlYW1Db250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yIiwgJkJhc2U6OnNf
aW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXJQcml2YXRlQ29uc3RydWN0b3IpIH07Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBK
U0J1aWx0aW5SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyUHJpdmF0ZUNvbnN0
cnVjdG9yIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0J1aWx0aW5S
ZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yKSB9OwogCiB0
ZW1wbGF0ZTw+IEZ1bmN0aW9uRXhlY3V0YWJsZSogSlNCdWlsdGluUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yOjppbml0aWFsaXplRXhlY3V0YWJsZShKU0M6OlZN
JiB2bSkKIHsKICAgICByZXR1cm4gcmVhZGFibGVTdHJlYW1JbnRlcm5hbHNQcml2YXRlSW5pdGlh
bGl6ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlckNvZGVHZW5lcmF0b3Iodm0pOwogfQogCi10
ZW1wbGF0ZTw+IEZ1bmN0aW9uRXhlY3V0YWJsZSogSlNCdWlsdGluUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yOjppbml0aWFsaXplRXhlY3V0YWJsZShKU0M6OlZNJiB2
bSkKK3RlbXBsYXRlPD4gRnVuY3Rpb25FeGVjdXRhYmxlKiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVh
bURlZmF1bHRDb250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yOjppbml0aWFsaXplRXhlY3V0YWJs
ZShKU0M6OlZNJiB2bSkKIHsKLSAgICByZXR1cm4gcmVhZGFibGVTdHJlYW1JbnRlcm5hbHNQcml2
YXRlSW5pdGlhbGl6ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvZGVHZW5lcmF0b3Iodm0pOwor
ICAgIHJldHVybiByZWFkYWJsZVN0cmVhbUludGVybmFsc1ByaXZhdGVJbml0aWFsaXplUmVhZGFi
bGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlckNvZGVHZW5lcmF0b3Iodm0pOwogfQogCiBKU09iamVj
dCogY3JlYXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yKFZN
JiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTc4LDkgKzc4LDkgQEAg
SlNPYmplY3QqIGNyZWF0ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclByaXZhdGVDb25zdHJ1
Y3RvcihWTSYgdm0sIEpTRE9NR2xvYmEKICAgICByZXR1cm4gSlNCdWlsdGluUmVhZGFibGVTdHJl
YW1EZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yOjpjcmVhdGUodm0sIEpTQnVpbHRpblJl
YWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclByaXZhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKSksIGds
b2JhbE9iamVjdCk7CiB9CiAKLUpTT2JqZWN0KiBjcmVhdGVSZWFkYWJsZVN0cmVhbUNvbnRyb2xs
ZXJQcml2YXRlQ29uc3RydWN0b3IoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2Jq
ZWN0KQorSlNPYmplY3QqIGNyZWF0ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJQcml2
YXRlQ29uc3RydWN0b3IoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQog
ewotICAgIHJldHVybiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRlQ29u
c3RydWN0b3I6OmNyZWF0ZSh2bSwgSlNCdWlsdGluUmVhZGFibGVTdHJlYW1Db250cm9sbGVyUHJp
dmF0ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gSlNC
dWlsdGluUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3Rvcjo6
Y3JlYXRlKHZtLCBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyUHJpdmF0
ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0Lm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFk
YWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmgKaW5kZXggMzZjNmVmMjVj
MzE2YjdlN2ExZGNhYTRjOGFiY2ZhNTNlZDkxZGE2Ni4uNzFkY2M3ZmE2MjIxY2EzNTZjNjM2MDlm
MTA1OWY1OTAyZjU5NGYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5oCkBAIC0z
Myw4ICszMyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSlNET01HbG9iYWxPYmpl
Y3Q7CiAKLUpTQzo6SlNPYmplY3QqIGNyZWF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlclByaXZh
dGVDb25zdHJ1Y3RvcihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKIEpTQzo6SlNPYmpl
Y3QqIGNyZWF0ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclByaXZhdGVDb25zdHJ1Y3RvcihK
U0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKK0pTQzo6SlNPYmplY3QqIGNyZWF0ZVJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3IoSlNDOjpWTSYsIEpT
RE9NR2xvYmFsT2JqZWN0Jik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVNvdXJjZUN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtU291cmNl
Q3VzdG9tLmNwcAppbmRleCA1ODk5OWNlN2ZhMDhlNGEyYjAxOTE1YWU5ZDU0ZTJjMzVkYTJlNTIz
Li5kNDY4N2QxNWJmZmVjNjgzNTQ5YTIzYjc3YWZlMmMzNDEwMWQ3YmIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtU291cmNlQ3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtU291cmNl
Q3VzdG9tLmNwcApAQCAtMzcsMTQgKzM3LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSlNW
YWx1ZSBKU1JlYWRhYmxlU3RyZWFtU291cmNlOjpzdGFydChFeGVjU3RhdGUmIHN0YXRlKQogewot
ICAgIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKiBjb250cm9sbGVyID0ganNEeW5hbWljQ2Fz
dDxKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcio+KHN0YXRlLmFyZ3VtZW50KDApKTsKKyAgICBK
U1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBqc0R5bmFtaWND
YXN0PEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcio+KHN0YXRlLmFyZ3VtZW50KDAp
KTsKICAgICBBU1NFUlQoY29udHJvbGxlcik7CiAKICAgICBKU1JlYWRhYmxlU3RyZWFtU291cmNl
KiBqc1NvdXJjZSA9IGNvbnN0X2Nhc3Q8SlNSZWFkYWJsZVN0cmVhbVNvdXJjZSo+KHRoaXMpOwog
ICAgIG1fY29udHJvbGxlci5zZXQoc3RhdGUudm0oKSwganNTb3VyY2UsIHN0YXRlLmFyZ3VtZW50
KDApKTsKIAogICAgIEpTQzo6SlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2VEZWZlcnJlZCA9IEpT
Qzo6SlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSgmc3RhdGUsIGdsb2JhbE9iamVjdCgpKTsKLSAg
ICB3cmFwcGVkKCkuc3RhcnQoUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKGNvbnRyb2xsZXIpLCBE
ZWZlcnJlZFdyYXBwZXIoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKSk7
CisgICAgd3JhcHBlZCgpLnN0YXJ0KFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIoY29u
dHJvbGxlciksIERlZmVycmVkV3JhcHBlcigmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwcm9taXNl
RGVmZXJyZWQpKTsKICAgICByZXR1cm4gcHJvbWlzZURlZmVycmVkLT5wcm9taXNlKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUNv
bnRyb2xsZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYjRhNzZkOTI3Yjli
MjcyNDU4YTM1YzZkODg3MTY4ZWU4Zjg3ZTEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3Ry
ZWFtQ29udHJvbGxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE2IENhbm9uIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUgotICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotICogREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSAq
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSCi0gKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmgiCi0KLSNpZiBFTkFCTEUoU1RS
RUFNU19BUEkpCi0KLSNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtLmgiCi0jaW5jbHVkZSAiSlNS
ZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgotI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgaW5saW5lIEpTQzo6SlNWYWx1ZSBjYWxs
RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUganNGdW5jdGlvbiwg
SlNDOjpKU1ZhbHVlIHRoaXNWYWx1ZSwgY29uc3QgSlNDOjpBcmdMaXN0JiBhcmd1bWVudHMpCi17
Ci0gICAgSlNDOjpDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBhdXRvIGNhbGxUeXBlID0gSlNDOjpn
ZXRDYWxsRGF0YShqc0Z1bmN0aW9uLCBjYWxsRGF0YSk7Ci0gICAgcmV0dXJuIGNhbGwoJnN0YXRl
LCBqc0Z1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNWYWx1ZSwgYXJndW1lbnRzKTsK
LX0KLQotSlNDOjpKU1ZhbHVlIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcjo6aW52b2tlKEpTQzo6
RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpKU09iamVjdCYgb2JqZWN0LCBjb25zdCBjaGFyKiBwcm9w
ZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSBwYXJhbWV0ZXIpCi17Ci0gICAgSlNDOjpKU0xvY2tIb2xk
ZXIgbG9jaygmc3RhdGUpOwotCi0gICAgYXV0byBmdW5jdGlvbiA9IG9iamVjdC5nZXQoJnN0YXRl
LCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAg
ICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBKU0M6OmpzVW5kZWZp
bmVkKCk7Ci0KLSAgICBpZiAoIWZ1bmN0aW9uLmlzRnVuY3Rpb24oKSkgewotICAgICAgICBpZiAo
IWZ1bmN0aW9uLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3Rh
dGUsIEFTQ0lJTGl0ZXJhbCgiUmVhZGFibGVTdHJlYW0gdHJ5aW5nIHRvIGNhbGwgYSBwcm9wZXJ0
eSB0aGF0IGlzIG5vdCBjYWxsYWJsZSIpKTsKLSAgICAgICAgcmV0dXJuIEpTQzo6anNVbmRlZmlu
ZWQoKTsKLSAgICB9Ci0KLSAgICBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50czsK
LSAgICBhcmd1bWVudHMuYXBwZW5kKHBhcmFtZXRlcik7Ci0KLSAgICByZXR1cm4gY2FsbEZ1bmN0
aW9uKHN0YXRlLCBmdW5jdGlvbiwgJm9iamVjdCwgYXJndW1lbnRzKTsKLX0KLQotYm9vbCBSZWFk
YWJsZVN0cmVhbUNvbnRyb2xsZXI6OmlzQ29udHJvbGxlZFJlYWRhYmxlU3RyZWFtTG9ja2VkKCkg
Y29uc3QKLXsKLSAgICBhdXRvJiBzdGF0ZSA9ICpnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygp
OwotICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soJnN0YXRlKTsKLQotICAgIGF1dG8mIGNsaWVu
dERhdGEgPSAqc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPihzdGF0ZS52bSgpLmNsaWVudERh
dGEpOwotICAgIGF1dG8gcmVhZGFibGVTdHJlYW0gPSBtX2pzQ29udHJvbGxlci0+Z2V0KCZzdGF0
ZSwgY2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5jb250cm9sbGVkUmVhZGFibGVTdHJlYW1Qcml2
YXRlTmFtZSgpKTsKLSAgICBBU1NFUlQoIXN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKLQotICAgIGF1
dG8gaXNMb2NrZWQgPSBnbG9iYWxPYmplY3QoKS0+YnVpbHRpbkludGVybmFsRnVuY3Rpb25zKCku
cmVhZGFibGVTdHJlYW1JbnRlcm5hbHMoKS5tX2lzUmVhZGFibGVTdHJlYW1Mb2NrZWRGdW5jdGlv
bi5nZXQoKTsKLQotICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOwotICAg
IGFyZ3VtZW50cy5hcHBlbmQocmVhZGFibGVTdHJlYW0pOwotICAgIGF1dG8gcmVzdWx0ID0gY2Fs
bEZ1bmN0aW9uKHN0YXRlLCBpc0xvY2tlZCwgSlNDOjpqc1VuZGVmaW5lZCgpLCBhcmd1bWVudHMp
OwotICAgIEFTU0VSVCghc3RhdGUuaGFkRXhjZXB0aW9uKCkpOwotCi0gICAgcmV0dXJuIHJlc3Vs
dC5pc1RydWUoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5B
QkxFKFNUUkVBTVNfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
UmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9S
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YmViMzE0ZjcyZjFlMjBlZjI2NTk2MTEyMmM5OTJjMjYyYmM3NDU3My4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDEwNCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IENhbm9uIEluYy4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6Ci0gKgotICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMu
IG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotICogREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IKLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0gKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAot
ICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBS
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJfaAotI2RlZmluZSBSZWFkYWJsZVN0cmVhbUNvbnRyb2xs
ZXJfaAotCi0jaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQotCi0jaW5jbHVkZSAiSlNET01CaW5kaW5n
LmgiCi0jaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlIDxy
dW50aW1lL0pTQ0pTVmFsdWUuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVz
Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9UeXBlZEFycmF5cy5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWNsYXNzIFJlYWRhYmxlU3RyZWFtU291cmNlOwotCi1jbGFzcyBSZWFkYWJsZVN0cmVh
bUNvbnRyb2xsZXIgewotcHVibGljOgotICAgIGV4cGxpY2l0IFJlYWRhYmxlU3RyZWFtQ29udHJv
bGxlcihKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlciogY29udHJvbGxlcikgOiBtX2pzQ29udHJv
bGxlcihjb250cm9sbGVyKSB7IH0KLQotICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgaW52b2tlKEpT
Qzo6RXhlY1N0YXRlJiwgSlNDOjpKU09iamVjdCYsIGNvbnN0IGNoYXIqLCBKU0M6OkpTVmFsdWUp
OwotCi0gICAgYm9vbCBlbnF1ZXVlKFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiYmKTsKLQotICAg
IHRlbXBsYXRlPGNsYXNzIFJlc29sdmVSZXN1bHRUeXBlPgotICAgIHZvaWQgZXJyb3IoY29uc3Qg
UmVzb2x2ZVJlc3VsdFR5cGUmKTsKLQotICAgIHZvaWQgY2xvc2UoKSB7IGludm9rZSgqZ2xvYmFs
T2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgKm1fanNDb250cm9sbGVyLCAiY2xvc2UiLCBKU0M6Ompz
VW5kZWZpbmVkKCkpOyB9Ci0KLSAgICBib29sIGlzQ29udHJvbGxlZFJlYWRhYmxlU3RyZWFtTG9j
a2VkKCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBlcnJvcihKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkgeyBpbnZva2Uoc3RhdGUsICptX2pzQ29udHJvbGxl
ciwgImVycm9yIiwgdmFsdWUpOyB9Ci0gICAgdm9pZCBlbnF1ZXVlKEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgSlNDOjpKU1ZhbHVlIHZhbHVlKSB7IGludm9rZShzdGF0ZSwgKm1fanNDb250cm9sbGVy
LCAiZW5xdWV1ZSIsIHZhbHVlKTsgfQotCi0gICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCgpIGNvbnN0OwotCi0gICAgLy8gVGhlIG93bmVyIG9mIFJlYWRhYmxlU3RyZWFtQ29udHJv
bGxlciBpcyByZXNwb25zaWJsZSB0byBrZWVwIHVuY29sbGVjdGVkIHRoZSBKU1JlYWRhYmxlU3Ry
ZWFtQ29udHJvbGxlci4KLSAgICBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlciogbV9qc0NvbnRy
b2xsZXIgeyBudWxscHRyIH07Ci19OwotCi1pbmxpbmUgSlNET01HbG9iYWxPYmplY3QqIFJlYWRh
YmxlU3RyZWFtQ29udHJvbGxlcjo6Z2xvYmFsT2JqZWN0KCkgY29uc3QKLXsKLSAgICBBU1NFUlQo
bV9qc0NvbnRyb2xsZXIpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KG1fanNDb250cm9sbGVyLT5nbG9iYWxPYmplY3QoKSk7Ci19Ci0KLWlubGluZSBib29sIFJl
YWRhYmxlU3RyZWFtQ29udHJvbGxlcjo6ZW5xdWV1ZShSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4m
JiBidWZmZXIpCi17Ci0gICAgSlNDOjpFeGVjU3RhdGUmIHN0YXRlID0gKmdsb2JhbE9iamVjdCgp
LT5nbG9iYWxFeGVjKCk7Ci0gICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKCZzdGF0ZSk7Ci0K
LSAgICBpZiAoIWJ1ZmZlcikgewotICAgICAgICBlcnJvcihzdGF0ZSwgY3JlYXRlT3V0T2ZNZW1v
cnlFcnJvcigmc3RhdGUpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBhdXRv
IGxlbmd0aCA9IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpOwotICAgIGF1dG8gY2h1bmsgPSBKU0M6OlVp
bnQ4QXJyYXk6OmNyZWF0ZShXVEZNb3ZlKGJ1ZmZlciksIDAsIGxlbmd0aCk7Ci0gICAgQVNTRVJU
KGNodW5rKTsKLSAgICBlbnF1ZXVlKHN0YXRlLCB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCks
IGNodW5rLmdldCgpKSk7Ci0gICAgQVNTRVJUKCFzdGF0ZS5oYWRFeGNlcHRpb24oKSk7Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLXRlbXBsYXRlPD4KLWlubGluZSB2b2lkIFJlYWRhYmxlU3RyZWFt
Q29udHJvbGxlcjo6ZXJyb3I8U3RyaW5nPihjb25zdCBTdHJpbmcmIHJlc3VsdCkKLXsKLSAgICBK
U0M6OkV4ZWNTdGF0ZSogc3RhdGUgPSBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOwotICAg
IEpTQzo6SlNMb2NrSG9sZGVyIGxvY2tlcihzdGF0ZSk7Ci0gICAgZXJyb3IoKnN0YXRlLCBqc1N0
cmluZyhzdGF0ZSwgcmVzdWx0KSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShTVFJFQU1TX0FQSSkKLQotI2VuZGlmIC8vIFJlYWRhYmxlU3RyZWFtQ29u
dHJvbGxlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhODM3OTBm
ZmY4MjkzMWU5YzQxM2JkNTA4ODE4OGNlNGU2M2M4OTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNw
cApAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IENhbm9uIEluYy4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSByZXF1aXJlZCB0byBiZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9O
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1EZWZh
dWx0Q29udHJvbGxlci5oIgorCisjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQorCisjaW5jbHVkZSAi
SlNSZWFkYWJsZVN0cmVhbS5oIgorI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCIK
KyNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RhdGljIGlubGluZSBKU0M6OkpTVmFsdWUgY2FsbEZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRl
JiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIGpzRnVuY3Rpb24sIEpTQzo6SlNWYWx1ZSB0aGlzVmFsdWUs
IGNvbnN0IEpTQzo6QXJnTGlzdCYgYXJndW1lbnRzKQoreworICAgIEpTQzo6Q2FsbERhdGEgY2Fs
bERhdGE7CisgICAgYXV0byBjYWxsVHlwZSA9IEpTQzo6Z2V0Q2FsbERhdGEoanNGdW5jdGlvbiwg
Y2FsbERhdGEpOworICAgIHJldHVybiBjYWxsKCZzdGF0ZSwganNGdW5jdGlvbiwgY2FsbFR5cGUs
IGNhbGxEYXRhLCB0aGlzVmFsdWUsIGFyZ3VtZW50cyk7Cit9CisKK0pTQzo6SlNWYWx1ZSBSZWFk
YWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyOjppbnZva2UoSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBKU0M6OkpTT2JqZWN0JiBvYmplY3QsIGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgSlNDOjpK
U1ZhbHVlIHBhcmFtZXRlcikKK3sKKyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKCZzdGF0ZSk7
CisKKyAgICBhdXRvIGZ1bmN0aW9uID0gb2JqZWN0LmdldCgmc3RhdGUsIEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVN0cmluZygmc3RhdGUsIHByb3BlcnR5TmFtZSkpOworICAgIGlmIChzdGF0ZS5oYWRF
eGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKKworICAgIGlm
ICghZnVuY3Rpb24uaXNGdW5jdGlvbigpKSB7CisgICAgICAgIGlmICghZnVuY3Rpb24uaXNVbmRl
ZmluZWQoKSkKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFs
KCJSZWFkYWJsZVN0cmVhbSB0cnlpbmcgdG8gY2FsbCBhIHByb3BlcnR5IHRoYXQgaXMgbm90IGNh
bGxhYmxlIikpOworICAgICAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOworICAgIH0KKwor
ICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOworICAgIGFyZ3VtZW50cy5h
cHBlbmQocGFyYW1ldGVyKTsKKworICAgIHJldHVybiBjYWxsRnVuY3Rpb24oc3RhdGUsIGZ1bmN0
aW9uLCAmb2JqZWN0LCBhcmd1bWVudHMpOworfQorCitib29sIFJlYWRhYmxlU3RyZWFtRGVmYXVs
dENvbnRyb2xsZXI6OmlzQ29udHJvbGxlZFJlYWRhYmxlU3RyZWFtTG9ja2VkKCkgY29uc3QKK3sK
KyAgICBhdXRvJiBzdGF0ZSA9ICpnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOworICAgIEpT
Qzo6SlNMb2NrSG9sZGVyIGxvY2soJnN0YXRlKTsKKworICAgIGF1dG8mIGNsaWVudERhdGEgPSAq
c3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPihzdGF0ZS52bSgpLmNsaWVudERhdGEpOworICAg
IGF1dG8gcmVhZGFibGVTdHJlYW0gPSBtX2pzQ29udHJvbGxlci0+Z2V0KCZzdGF0ZSwgY2xpZW50
RGF0YS5idWlsdGluTmFtZXMoKS5jb250cm9sbGVkUmVhZGFibGVTdHJlYW1Qcml2YXRlTmFtZSgp
KTsKKyAgICBBU1NFUlQoIXN0YXRlLmhhZEV4Y2VwdGlvbigpKTsKKworICAgIGF1dG8gaXNMb2Nr
ZWQgPSBnbG9iYWxPYmplY3QoKS0+YnVpbHRpbkludGVybmFsRnVuY3Rpb25zKCkucmVhZGFibGVT
dHJlYW1JbnRlcm5hbHMoKS5tX2lzUmVhZGFibGVTdHJlYW1Mb2NrZWRGdW5jdGlvbi5nZXQoKTsK
KworICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOworICAgIGFyZ3VtZW50
cy5hcHBlbmQocmVhZGFibGVTdHJlYW0pOworICAgIGF1dG8gcmVzdWx0ID0gY2FsbEZ1bmN0aW9u
KHN0YXRlLCBpc0xvY2tlZCwgSlNDOjpqc1VuZGVmaW5lZCgpLCBhcmd1bWVudHMpOworICAgIEFT
U0VSVCghc3RhdGUuaGFkRXhjZXB0aW9uKCkpOworCisgICAgcmV0dXJuIHJlc3VsdC5pc1RydWUo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNUUkVB
TVNfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVT
dHJlYW1EZWZhdWx0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVh
ZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYjQzZGRjYTczMjI4
NTgyOWE3YmE3OWEyZmZkMDNjZTY1MGM3YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmgKQEAgLTAs
MCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENh
bm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJfaAorI2RlZmluZSBSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyX2gKKworI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKKwor
I2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1EZWZh
dWx0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZS5oPgorI2luY2x1
ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaD4KKyNpbmNsdWRlIDxydW50aW1lL1R5cGVk
QXJyYXlzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVhZGFibGVTdHJlYW1T
b3VyY2U7CisKK2NsYXNzIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIgeworcHVibGlj
OgorICAgIGV4cGxpY2l0IFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIoSlNSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyKiBjb250cm9sbGVyKSA6IG1fanNDb250cm9sbGVyKGNv
bnRyb2xsZXIpIHsgfQorCisgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBpbnZva2UoSlNDOjpFeGVj
U3RhdGUmLCBKU0M6OkpTT2JqZWN0JiwgY29uc3QgY2hhciosIEpTQzo6SlNWYWx1ZSk7CisKKyAg
ICBib29sIGVucXVldWUoUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+JiYpOworCisgICAgdGVtcGxh
dGU8Y2xhc3MgUmVzb2x2ZVJlc3VsdFR5cGU+CisgICAgdm9pZCBlcnJvcihjb25zdCBSZXNvbHZl
UmVzdWx0VHlwZSYpOworCisgICAgdm9pZCBjbG9zZSgpIHsgaW52b2tlKCpnbG9iYWxPYmplY3Qo
KS0+Z2xvYmFsRXhlYygpLCAqbV9qc0NvbnRyb2xsZXIsICJjbG9zZSIsIEpTQzo6anNVbmRlZmlu
ZWQoKSk7IH0KKworICAgIGJvb2wgaXNDb250cm9sbGVkUmVhZGFibGVTdHJlYW1Mb2NrZWQoKSBj
b25zdDsKKworcHJpdmF0ZToKKyAgICB2b2lkIGVycm9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
SlNDOjpKU1ZhbHVlIHZhbHVlKSB7IGludm9rZShzdGF0ZSwgKm1fanNDb250cm9sbGVyLCAiZXJy
b3IiLCB2YWx1ZSk7IH0KKyAgICB2b2lkIGVucXVldWUoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBK
U0M6OkpTVmFsdWUgdmFsdWUpIHsgaW52b2tlKHN0YXRlLCAqbV9qc0NvbnRyb2xsZXIsICJlbnF1
ZXVlIiwgdmFsdWUpOyB9CisKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkg
Y29uc3Q7CisKKyAgICAvLyBUaGUgb3duZXIgb2YgUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJv
bGxlciBpcyByZXNwb25zaWJsZSB0byBrZWVwIHVuY29sbGVjdGVkIHRoZSBKU1JlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXIuCisgICAgSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9s
bGVyKiBtX2pzQ29udHJvbGxlciB7IG51bGxwdHIgfTsKK307CisKK2lubGluZSBKU0RPTUdsb2Jh
bE9iamVjdCogUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcjo6Z2xvYmFsT2JqZWN0KCkg
Y29uc3QKK3sKKyAgICBBU1NFUlQobV9qc0NvbnRyb2xsZXIpOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KG1fanNDb250cm9sbGVyLT5nbG9iYWxPYmplY3QoKSk7
Cit9CisKK2lubGluZSBib29sIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXI6OmVucXVl
dWUoUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+JiYgYnVmZmVyKQoreworICAgIEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSA9ICpnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOworICAgIEpTQzo6SlNM
b2NrSG9sZGVyIGxvY2tlcigmc3RhdGUpOworCisgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAg
ZXJyb3Ioc3RhdGUsIGNyZWF0ZU91dE9mTWVtb3J5RXJyb3IoJnN0YXRlKSk7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgICAgYXV0byBsZW5ndGggPSBidWZmZXItPmJ5dGVMZW5ndGgo
KTsKKyAgICBhdXRvIGNodW5rID0gSlNDOjpVaW50OEFycmF5OjpjcmVhdGUoV1RGTW92ZShidWZm
ZXIpLCAwLCBsZW5ndGgpOworICAgIEFTU0VSVChjaHVuayk7CisgICAgZW5xdWV1ZShzdGF0ZSwg
dG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBjaHVuay5nZXQoKSkpOworICAgIEFTU0VSVCgh
c3RhdGUuaGFkRXhjZXB0aW9uKCkpOworICAgIHJldHVybiB0cnVlOworfQorCit0ZW1wbGF0ZTw+
CitpbmxpbmUgdm9pZCBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyOjplcnJvcjxTdHJp
bmc+KGNvbnN0IFN0cmluZyYgcmVzdWx0KQoreworICAgIEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSA9
IGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9j
a2VyKHN0YXRlKTsKKyAgICBlcnJvcigqc3RhdGUsIGpzU3RyaW5nKHN0YXRlLCByZXN1bHQpKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNUUkVBTVNf
QVBJKQorCisjZW5kaWYgLy8gUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXgg
ZDhjZTU0ODQ5NmNjMWIxZDIwZGNlZTcwNTRlNzliZTZjYTc5Zjk0ZC4uOGJiNGZmOGRkMTE4M2Vm
NDFjZWQ5NWM1NzA5MmVhYTI4YWU2ZTAyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtOTYsOCArOTYsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8oTWVkaWFTdHJlYW0pIFwKICAgICBtYWNybyhNZWRpYVN0cmVh
bVRyYWNrKSBcCiAgICAgbWFjcm8oUmVhZGFibGVTdHJlYW0pIFwKKyAgICBtYWNybyhSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyKSBcCiAgICAgbWFjcm8oUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyKSBcCi0gICAgbWFjcm8oUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKSBcCiAgICAg
bWFjcm8oUmVxdWVzdCkgXAogICAgIG1hY3JvKFJlc3BvbnNlKSBcCiAgICAgbWFjcm8oUlRDSWNl
Q2FuZGlkYXRlKSBcCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDZjZTcwMWFhYWUwYTIzNGI1MTI5NmQxMDQ2MjUyODI2YWIx
ZWZjZC4uN2UwMjBiMWVmODMxNjdhMzNkZDgzZTgzNzMyNzhkYzYyYTk4MTY3MSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDE2LTA3LTI4ICBSb21haW4gQmVsbGVzc29ydCAgPHJvbWFpbi5iZWxs
ZXNzb3J0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEldIFJlcGxhY2UgUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyIGJ5IFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDI0Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2Vk
IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBieSBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9s
bGVyIHRvIGFsaWduCisgICAgICAgIHdpdGggdXBkYXRlZCBTdHJlYW1zIEFQSSBzcGVjaWZpY2F0
aW9uLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICog
c3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tZGVmYXVsdC1jb250cm9sbGVyLWVycm9yLWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWNv
bnRyb2xsZXItZXJyb3ItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHN0cmVhbXMvcmVhZGFibGUt
c3RyZWFtLWRlZmF1bHQtY29udHJvbGxlci1lcnJvci5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tY29udHJvbGxlci1lcnJvci5odG1sLgorICAg
ICAgICAqIHN0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWVycm9yLW1lc3NhZ2VzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBzdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1lcnJvci1tZXNzYWdlcy5odG1s
OgorICAgICAgICAqIHN0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0
cmVhbS1leHBlY3RlZC50eHQ6CisKIDIwMTYtMDctMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIENvbXB1dGUgZmV0Y2ggcmVzcG9uc2UgdHlwZSBpbiBjYXNl
IG9mIGNyb3NzLW9yaWdpbiByZXF1ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFt
cy9yZWFkYWJsZS1zdHJlYW0tY29udHJvbGxlci1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1jb250cm9sbGVyLWVycm9yLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDJhNzVlOTJlMzE2NTM1NzE5N2ZiMDU3
MWFkNDM2ZGUwM2E5Nzc0Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1jb250cm9sbGVyLWVy
cm9yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotCi1QQVNTIEVy
cm9yaW5nIGEgUmVhZGFibGVTdHJlYW0gYWZ0ZXIgY2hlY2tpbmcgY2xvc2VkIHNob3VsZCByZWpl
Y3QgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIGNsb3NlZCBwcm9taXNlIAotUEFTUyBFcnJv
cmluZyBhIFJlYWRhYmxlU3RyZWFtIGJlZm9yZSBjaGVja2luZyBjbG9zZWQgc2hvdWxkIHJlamVj
dCBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIgY2xvc2VkIHByb21pc2UgCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWNvbnRyb2xsZXItZXJyb3Iu
aHRtbCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWNvbnRyb2xsZXItZXJy
b3IuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjZhNjM2ZDM3ZmY4NzQwMzA3
M2EwNDMyNDViNzk3NzcwZGFhZDZhZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1jb250cm9s
bGVyLWVycm9yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotLy8gVGhpcyBpcyB1cGRhdGVkIHRpbGwgaHR0cHM6Ly9naXRodWIuY29t
L3doYXR3Zy9zdHJlYW1zL2NvbW1pdC80YmE4NjFlNmY2MGMyNDgwNjA4MTE4MzBlMTEyNzFjODRi
NDM5Y2MzCi0KLXZhciB0ZXN0MSA9IGFzeW5jX3Rlc3QoJ0Vycm9yaW5nIGEgUmVhZGFibGVTdHJl
YW0gYWZ0ZXIgY2hlY2tpbmcgY2xvc2VkIHNob3VsZCByZWplY3QgUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyIGNsb3NlZCBwcm9taXNlJyk7Ci10ZXN0MS5zdGVwKGZ1bmN0aW9uKCkgewotICAg
IHZhciBjb250cm9sbGVyOwotICAgIHZhciBycyA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7Ci0gICAg
ICAgIHN0YXJ0OiBmdW5jdGlvbihjKSB7Ci0gICAgICAgICAgICBjb250cm9sbGVyID0gYzsKLSAg
ICAgICAgfQotICAgIH0pOwotCi0gICBycy5nZXRSZWFkZXIoKS5jbG9zZWQudGhlbih0ZXN0MS5z
dGVwX2Z1bmMoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydF91bnJlYWNoZWQoImNsb3NlZCBw
cm9taXNlIHNob3VsZCBub3QgYmUgcmVzb2x2ZWQgd2hlbiBzdHJlYW0gaXMgZXJyb3JlZCIpOwot
ICAgIH0pLCB0ZXN0MS5zdGVwX2Z1bmMoZnVuY3Rpb24oZXJyKSB7Ci0gICAgICAgIGFzc2VydF9l
cXVhbHMocnNFcnJvciwgZXJyKTsKLSAgICAgICAgdGVzdDEuZG9uZSgpOwotICAgIH0pKTsKLQot
ICAgIHZhciByc0Vycm9yID0gIm15IGVycm9yIjsKLSAgICBjb250cm9sbGVyLmVycm9yKHJzRXJy
b3IpOwotfSk7Ci0KLXZhciB0ZXN0MiA9IGFzeW5jX3Rlc3QoJ0Vycm9yaW5nIGEgUmVhZGFibGVT
dHJlYW0gYmVmb3JlIGNoZWNraW5nIGNsb3NlZCBzaG91bGQgcmVqZWN0IFJlYWRhYmxlU3RyZWFt
RGVmYXVsdFJlYWRlciBjbG9zZWQgcHJvbWlzZScpOwotdGVzdDIuc3RlcChmdW5jdGlvbigpIHsK
LSAgICB2YXIgY29udHJvbGxlcjsKLSAgICB2YXIgcnMgPSBuZXcgUmVhZGFibGVTdHJlYW0oewot
ICAgICAgICBzdGFydDogZnVuY3Rpb24oYykgewotICAgICAgICAgICAgY29udHJvbGxlciA9IGM7
Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIHZhciByc0Vycm9yID0gIm15IGVycm9yIjsKLSAg
ICBjb250cm9sbGVyLmVycm9yKHJzRXJyb3IpOwotCi0gICAgLy8gTGV0J3MgY2FsbCBnZXRSZWFk
ZXIgdHdpY2UgdG8gZW5zdXJlIHRoYXQgc3RyZWFtIGlzIG5vdCBsb2NrZWQgdG8gYSByZWFkZXIu
Ci0gICAgcnMuZ2V0UmVhZGVyKCkucmVsZWFzZUxvY2soKTsKLSAgICBycy5nZXRSZWFkZXIoKS5j
bG9zZWQudGhlbih0ZXN0Mi5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydF91
bnJlYWNoZWQoImNsb3NlZCBwcm9taXNlIHNob3VsZCBub3QgYmUgcmVzb2x2ZWQgd2hlbiBzdHJl
YW0gaXMgZXJyb3JlZCIpOwotICAgIH0pLCB0ZXN0Mi5zdGVwX2Z1bmMoZnVuY3Rpb24oZXJyKSB7
Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocnNFcnJvciwgZXJyKTsKLSAgICAgICAgdGVzdDIuZG9u
ZSgpOwotICAgIH0pKTsKLX0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1kZWZhdWx0LWNvbnRyb2xsZXItZXJyb3ItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tZGVmYXVsdC1jb250cm9s
bGVyLWVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMmE3NWU5MmUzMTY1MzU3MTk3ZmIw
NTcxYWQ0MzZkZTAzYTk3NzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFt
cy9yZWFkYWJsZS1zdHJlYW0tZGVmYXVsdC1jb250cm9sbGVyLWVycm9yLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKKworUEFTUyBFcnJvcmluZyBhIFJlYWRhYmxlU3RyZWFtIGFmdGVyIGNo
ZWNraW5nIGNsb3NlZCBzaG91bGQgcmVqZWN0IFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBj
bG9zZWQgcHJvbWlzZSAKK1BBU1MgRXJyb3JpbmcgYSBSZWFkYWJsZVN0cmVhbSBiZWZvcmUgY2hl
Y2tpbmcgY2xvc2VkIHNob3VsZCByZWplY3QgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIGNs
b3NlZCBwcm9taXNlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxl
LXN0cmVhbS1kZWZhdWx0LWNvbnRyb2xsZXItZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL3N0cmVh
bXMvcmVhZGFibGUtc3RyZWFtLWRlZmF1bHQtY29udHJvbGxlci1lcnJvci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI2YTYzNmQzN2ZmODc0MDMwNzNhMDQzMjQ1Yjc5Nzc3MGRhYWQ2YWUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1kZWZhdWx0LWNvbnRy
b2xsZXItZXJyb3IuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3Jp
cHQgc3JjPScuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Jy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorLy8gVGhpcyBpcyB1cGRhdGVkIHRpbGwgaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9zdHJl
YW1zL2NvbW1pdC80YmE4NjFlNmY2MGMyNDgwNjA4MTE4MzBlMTEyNzFjODRiNDM5Y2MzCisKK3Zh
ciB0ZXN0MSA9IGFzeW5jX3Rlc3QoJ0Vycm9yaW5nIGEgUmVhZGFibGVTdHJlYW0gYWZ0ZXIgY2hl
Y2tpbmcgY2xvc2VkIHNob3VsZCByZWplY3QgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIGNs
b3NlZCBwcm9taXNlJyk7Cit0ZXN0MS5zdGVwKGZ1bmN0aW9uKCkgeworICAgIHZhciBjb250cm9s
bGVyOworICAgIHZhciBycyA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7CisgICAgICAgIHN0YXJ0OiBm
dW5jdGlvbihjKSB7CisgICAgICAgICAgICBjb250cm9sbGVyID0gYzsKKyAgICAgICAgfQorICAg
IH0pOworCisgICBycy5nZXRSZWFkZXIoKS5jbG9zZWQudGhlbih0ZXN0MS5zdGVwX2Z1bmMoZnVu
Y3Rpb24oKSB7CisgICAgICAgIGFzc2VydF91bnJlYWNoZWQoImNsb3NlZCBwcm9taXNlIHNob3Vs
ZCBub3QgYmUgcmVzb2x2ZWQgd2hlbiBzdHJlYW0gaXMgZXJyb3JlZCIpOworICAgIH0pLCB0ZXN0
MS5zdGVwX2Z1bmMoZnVuY3Rpb24oZXJyKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocnNFcnJv
ciwgZXJyKTsKKyAgICAgICAgdGVzdDEuZG9uZSgpOworICAgIH0pKTsKKworICAgIHZhciByc0Vy
cm9yID0gIm15IGVycm9yIjsKKyAgICBjb250cm9sbGVyLmVycm9yKHJzRXJyb3IpOworfSk7CisK
K3ZhciB0ZXN0MiA9IGFzeW5jX3Rlc3QoJ0Vycm9yaW5nIGEgUmVhZGFibGVTdHJlYW0gYmVmb3Jl
IGNoZWNraW5nIGNsb3NlZCBzaG91bGQgcmVqZWN0IFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRl
ciBjbG9zZWQgcHJvbWlzZScpOwordGVzdDIuc3RlcChmdW5jdGlvbigpIHsKKyAgICB2YXIgY29u
dHJvbGxlcjsKKyAgICB2YXIgcnMgPSBuZXcgUmVhZGFibGVTdHJlYW0oeworICAgICAgICBzdGFy
dDogZnVuY3Rpb24oYykgeworICAgICAgICAgICAgY29udHJvbGxlciA9IGM7CisgICAgICAgIH0K
KyAgICB9KTsKKworICAgIHZhciByc0Vycm9yID0gIm15IGVycm9yIjsKKyAgICBjb250cm9sbGVy
LmVycm9yKHJzRXJyb3IpOworCisgICAgLy8gTGV0J3MgY2FsbCBnZXRSZWFkZXIgdHdpY2UgdG8g
ZW5zdXJlIHRoYXQgc3RyZWFtIGlzIG5vdCBsb2NrZWQgdG8gYSByZWFkZXIuCisgICAgcnMuZ2V0
UmVhZGVyKCkucmVsZWFzZUxvY2soKTsKKyAgICBycy5nZXRSZWFkZXIoKS5jbG9zZWQudGhlbih0
ZXN0Mi5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF91bnJlYWNoZWQoImNs
b3NlZCBwcm9taXNlIHNob3VsZCBub3QgYmUgcmVzb2x2ZWQgd2hlbiBzdHJlYW0gaXMgZXJyb3Jl
ZCIpOworICAgIH0pLCB0ZXN0Mi5zdGVwX2Z1bmMoZnVuY3Rpb24oZXJyKSB7CisgICAgICAgIGFz
c2VydF9lcXVhbHMocnNFcnJvciwgZXJyKTsKKyAgICAgICAgdGVzdDIuZG9uZSgpOworICAgIH0p
KTsKK30pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRh
YmxlLXN0cmVhbS1lcnJvci1tZXNzYWdlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJl
YW1zL3JlYWRhYmxlLXN0cmVhbS1lcnJvci1tZXNzYWdlcy1leHBlY3RlZC50eHQKaW5kZXggOTcx
Mzk2OGZjZDI1Y2I2ZDNmYmJlNWIxZjUwOTA0Nzc4YjNkYWY3Ni4uNzFlYTM1MjdjYTU2NTRmZTM3
Mjg0NDNlOTk3MTczZjIyZTBjODI5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9y
ZWFkYWJsZS1zdHJlYW0tZXJyb3ItbWVzc2FnZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWVycm9yLW1lc3NhZ2VzLWV4cGVjdGVkLnR4dApA
QCAtMSwxNSArMSwxNSBAQAogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiBUeXBlRXJyb3I6IENh
biBvbmx5IGNhbGwgUmVhZGFibGVTdHJlYW0uZ2V0UmVhZGVyIG9uIGluc3RhbmNlcyBvZiBSZWFk
YWJsZVN0cmVhbQogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiBUeXBlRXJyb3I6IENhbiBvbmx5
IGNhbGwgUmVhZGFibGVTdHJlYW0udGVlIG9uIGluc3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVhbQog
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiBUeXBlRXJyb3I6IFRoZSBSZWFkYWJsZVN0cmVhbS5s
b2NrZWQgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3Ry
ZWFtCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6IFR5cGVFcnJvcjogQ2FuIG9ubHkgY2FsbCBS
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuZW5xdWV1ZSBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVT
dHJlYW1Db250cm9sbGVyCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6IFR5cGVFcnJvcjogQ2Fu
IG9ubHkgY2FsbCBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuZXJyb3Igb24gaW5zdGFuY2VzIG9m
IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiBUeXBl
RXJyb3I6IENhbiBvbmx5IGNhbGwgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNsb3NlIG9uIGlu
c3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxMTogVHlwZUVycm9yOiBUaGUgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmRlc2lyZWRTaXpl
IGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVhbUNv
bnRyb2xsZXIKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMTogVHlwZUVycm9yOiBDYW4gb25seSBj
YWxsIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuZW5xdWV1ZSBvbiBpbnN0YW5jZXMg
b2YgUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcgorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDExOiBUeXBlRXJyb3I6IENhbiBvbmx5IGNhbGwgUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJv
bGxlci5lcnJvciBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxl
cgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiBUeXBlRXJyb3I6IENhbiBvbmx5IGNhbGwgUmVh
ZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jbG9zZSBvbiBpbnN0YW5jZXMgb2YgUmVhZGFi
bGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiBUeXBl
RXJyb3I6IFRoZSBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmRlc2lyZWRTaXplIGdl
dHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVhbURlZmF1
bHRDb250cm9sbGVyCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6IFR5cGVFcnJvcjogQ2FuIG9u
bHkgY2FsbCBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIucmVsZWFzZUxvY2sgb24gaW5zdGFu
Y2VzIG9mIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcgogQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE4OiBUeXBlRXJyb3I6IENhbiBvbmx5IGNhbGwgUmVhZGFibGVTdHJlYW0uY2FuY2VsIG9uIGlu
c3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVhbQogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBUeXBl
RXJyb3I6IENhbiBvbmx5IGNhbGwgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmNhbmNlbCBv
biBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyCiBDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTg6IFR5cGVFcnJvcjogQ2FuIG9ubHkgY2FsbCBSZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXIucmVhZCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVy
CiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IFR5cGVFcnJvcjogVGhlIFJlYWRhYmxlU3RyZWFt
RGVmYXVsdFJlYWRlci5jbG9zZWQgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2Vz
IG9mIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcgogCi1QQVNTIEV4ZXJjaXNpbmcgVHlwZUVy
cm9yIG1lc3NhZ2VzIGluIFJlYWRhYmxlU3RyZWFtLCBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIg
YW5kIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciAKK1BBU1MgRXhlcmNpc2luZyBUeXBlRXJy
b3IgbWVzc2FnZXMgaW4gUmVhZGFibGVTdHJlYW0sIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRy
b2xsZXIgYW5kIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tZXJyb3ItbWVzc2FnZXMuaHRtbCBiL0xh
eW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWVycm9yLW1lc3NhZ2VzLmh0bWwKaW5k
ZXggYjQ3MTMzN2NhYmExZjMxNGI2ZjY5MzRhMzQxMDljMDQ1ZDBiZjdkNC4uNjAyOTI1NzA2Y2Vl
NzUwMDc0MjZmOTZjY2I3NGMwYzlhNWY1NmVlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Ry
ZWFtcy9yZWFkYWJsZS1zdHJlYW0tZXJyb3ItbWVzc2FnZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1lcnJvci1tZXNzYWdlcy5odG1sCkBAIC01OSw1ICs1
OSw1IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CiAgICAgcmVzdWx0cy5wdXNoKHBy
aW50UHJvbWlzZUdldHRlckVycm9yKHJlYWRlciwgImNsb3NlZCIsIHN0cmVhbSkpOwogCiAgICAg
cmV0dXJuIFByb21pc2UuYWxsKHJlc3VsdHMpOwotfSwgIkV4ZXJjaXNpbmcgVHlwZUVycm9yIG1l
c3NhZ2VzIGluIFJlYWRhYmxlU3RyZWFtLCBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgYW5kIFJl
YWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciIpOworfSwgIkV4ZXJjaXNpbmcgVHlwZUVycm9yIG1l
c3NhZ2VzIGluIFJlYWRhYmxlU3RyZWFtLCBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVy
IGFuZCBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIiKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUt
c3RyZWFtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxl
bWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS1leHBlY3RlZC50eHQKaW5kZXggNDFhNGY4OTFjOGIy
YjZkNGJkNWMzYTlmNjNhYTJhMmZkZjVhZGIzZC4uNjIxMGI4MGZjMzgxYWMzNWFiYjIzMmRhYWFh
MDM4NDFjYTRjZDYwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2Ut
aW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tZXhw
ZWN0ZWQudHh0CkBAIC0zMiw3ICszMiw3IEBAIFBBU1MgUmVhZGFibGVTdHJlYW0gc3RyYXRlZ2ll
czogdGhlIGRlZmF1bHQgc3RyYXRlZ3kgc2hvdWxkIGNvbnRpbnVlIGdpdmluZyBkZXNpCiBQQVNT
IFJlYWRhYmxlU3RyZWFtIGludGVncmF0aW9uIHRlc3Q6IGFkYXB0aW5nIGEgcmFuZG9tIHB1c2gg
c291cmNlIAogUEFTUyBSZWFkYWJsZVN0cmVhbSBpbnRlZ3JhdGlvbiB0ZXN0OiBhZGFwdGluZyBh
IHN5bmMgcHVsbCBzb3VyY2UgCiBQQVNTIFJlYWRhYmxlU3RyZWFtIGludGVncmF0aW9uIHRlc3Q6
IGFkYXB0aW5nIGFuIGFzeW5jIHB1bGwgc291cmNlIAotUEFTUyBSZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXIgbWV0aG9kcyBzaG91bGQgY29udGludWUgd29ya2luZyBwcm9wZXJseSB3aGVuIHNjcmlw
dHMgbG9zZSB0aGVpciByZWZlcmVuY2UgdG8gdGhlIHJlYWRhYmxlIHN0cmVhbSAKK1BBU1MgUmVh
ZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlciBtZXRob2RzIHNob3VsZCBjb250aW51ZSB3b3Jr
aW5nIHByb3Blcmx5IHdoZW4gc2NyaXB0cyBsb3NlIHRoZWlyIHJlZmVyZW5jZSB0byB0aGUgcmVh
ZGFibGUgc3RyZWFtIAogUEFTUyBSZWFkYWJsZVN0cmVhbSBjbG9zZWQgcHJvbWlzZSBzaG91bGQg
ZnVsZmlsbCBldmVuIGlmIHRoZSBzdHJlYW0gYW5kIHJlYWRlciBKUyByZWZlcmVuY2VzIGFyZSBs
b3N0IAogUEFTUyBSZWFkYWJsZVN0cmVhbSBjbG9zZWQgcHJvbWlzZSBzaG91bGQgcmVqZWN0IGV2
ZW4gaWYgc3RyZWFtIGFuZCByZWFkZXIgSlMgcmVmZXJlbmNlcyBhcmUgbG9zdCAKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>