<?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>42104</bug_id>
          
          <creation_ts>2010-07-12 13:16:47 -0700</creation_ts>
          <short_desc>Web Inspector: next step of the Remote Debugger. Transition from InspectorFrontend2.idl to Inspector.idl</short_desc>
          <delta_ts>2010-07-13 10:38:40 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>gustavo</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>249990</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-07-12 13:16:47 -0700</bug_when>
    <thetext>Next iteration of Inspector code generator.
The InspectorFrontend2 was replaced by slightly modified version of
InspectorBackend file (Inspector.idl). At the end all the interface
between WebInspector and inspected page will be specified by this file
and generated by CodeGeneratorInspector (InspectorFrontend.cpp,
InspectorBackend.cpp and InspectorBackend.js). 

Initial version of InspectorFrontend2 had did* functions.
Almost all these functions were the answers for corresponding functions from InspectorBackend.
It is quite simple to generate these functions by processing InspectorBackend.idl.
At the moment InspectorBackend is used for generate binding.
As far as this interface specification will be used for generate both sides of Inspector API
we should be able to mark some argument as &apos;out&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249991</commentid>
    <comment_count>1</comment_count>
      <attachid>61260</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-07-12 13:18:16 -0700</bug_when>
    <thetext>Created attachment 61260
[patch] initial version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250182</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-12 17:33:47 -0700</bug_when>
    <thetext>Attachment 61260 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3476235</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250321</commentid>
    <comment_count>3</comment_count>
      <attachid>61329</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-07-12 22:44:55 -0700</bug_when>
    <thetext>Created attachment 61329
[patch] second iteration. With fixed gtk, windows and efl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250351</commentid>
    <comment_count>4</comment_count>
      <attachid>61329</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-12 23:34:00 -0700</bug_when>
    <thetext>Comment on attachment 61329
[patch] second iteration. With fixed gtk, windows and efl.

WebCore/inspector/Inspector.idl:125
 +          [skipSuccessFlag] void getStyles(in long nodeId, in boolean authOnly, out Value styles);
[skipSuccessFlag] - can we use &quot;out bool success&quot; parameter instead? Or pass this flag to every method?

WebCore/inspector/Inspector.idl:4
 +   * Copyright (C) 2009 Google Inc. All rights reserved.
2010

WebCore/inspector/CodeGeneratorInspector.pm:173
 +          my $argumentsFilter;
argumentsFilter -&gt; argumentsDirection?

WebCore/inspector/CodeGeneratorInspector.pm:200
 +                  my $pushCall =  $typeTransform{$parameter-&gt;type}-&gt;{&quot;push&quot;};
Please rename &quot;push&quot; key to something more descriptive as we discussed offline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250362</commentid>
    <comment_count>5</comment_count>
      <attachid>61338</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-07-13 00:38:56 -0700</bug_when>
    <thetext>Created attachment 61338
[patch] third iteration.

skipSuccessFlag - was removed;
Copyright - was fixed;
$argumentsFilter -&gt; $argumentsDirectionFilter
$pushCall -&gt; $pushFunctionName</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250377</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-13 01:04:19 -0700</bug_when>
    <thetext>Attachment 61329 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3450251</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250394</commentid>
    <comment_count>7</comment_count>
      <attachid>61338</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-13 02:02:04 -0700</bug_when>
    <thetext>Comment on attachment 61338
[patch] third iteration.

WebCore/inspector/Inspector.idl:4
 +   * Copyright (C) 2009, 20010 Google Inc. All rights reserved.
20010 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250562</commentid>
    <comment_count>8</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-07-13 09:31:58 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	D	WebCore/inspector/InspectorFrontend2.idl
	M	WebCore/CMakeLists.txt
	M	WebCore/ChangeLog
	M	WebCore/DerivedSources.make
	M	WebCore/GNUmakefile.am
	M	WebCore/WebCore.gyp/WebCore.gyp
	M	WebCore/WebCore.gyp/scripts/rule_binding.py
	M	WebCore/WebCore.gypi
	M	WebCore/WebCore.pri
	M	WebCore/WebCore.vcproj/WebCore.vcproj
	M	WebCore/WebCore.xcodeproj/project.pbxproj
	M	WebCore/bindings/scripts/IDLParser.pm
	M	WebCore/bindings/scripts/IDLStructure.pm
	M	WebCore/bindings/scripts/generate-bindings.pl
	M	WebCore/inspector/CodeGeneratorInspector.pm
	A	WebCore/inspector/Inspector.idl
	M	WebCore/inspector/InspectorCSSStore.cpp
	M	WebCore/inspector/InspectorController.cpp
	M	WebCore/inspector/InspectorController.h
	M	WebCore/inspector/InspectorDOMAgent.cpp
	M	WebCore/inspector/InspectorDOMAgent.h
	M	WebCore/inspector/InspectorTimelineAgent.cpp
	M	WebCore/inspector/InspectorTimelineAgent.h
	M	cmake/WebKitGenerators.cmake
Committed r63198</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250610</commentid>
    <comment_count>9</comment_count>
      <attachid>61338</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-13 10:38:40 -0700</bug_when>
    <thetext>Comment on attachment 61338
[patch] third iteration.

Hey! Some minor comments.

&gt; +++ b/WebCore/inspector/Inspector.idl
&gt; +        [custorResponse=didApplyDomChange] void setAttribute(in long elementId, in String name, in String value, out boolean success);

Typo: &quot;custorResponse&quot; should be &quot;customResponse&quot; ?


&gt; +#if defined(ENABLE_OFFLINE_WEB_APPLICATIONS)

This is my fault from a while ago. It should be like the other checks:

  #if defined(ENABLE_OFFLINE_WEB_APPLICATIONS) &amp;&amp; ENABLE_OFFLINE_WEB_APPLICATIONS</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61260</attachid>
            <date>2010-07-12 13:18:16 -0700</date>
            <delta_ts>2010-07-12 22:44:55 -0700</delta_ts>
            <desc>[patch] initial version.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>47079</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZjRjYzE0OS4uZThkMmJiMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAxMC0wNy0xMiAgSWx5YSBUaWtob25v
dnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiBOZXh0IGl0ZXJhdGlvbiBvZiBJbnNw
ZWN0b3IgY29kZSBnZW5lcmF0b3IuCisgICAgICAgIFRoZSBJbnNwZWN0b3JGcm9udGVuZDIgd2Fz
IHJlcGxhY2VkIGJ5IHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24gb2YKKyAgICAgICAgSW5zcGVj
dG9yQmFja2VuZCBmaWxlIChJbnNwZWN0b3IuaWRsKS4gQXQgdGhlIGVuZCBhbGwgdGhlIGludGVy
ZmFjZQorICAgICAgICBiZXR3ZWVuIFdlYkluc3BlY3RvciBhbmQgaW5zcGVjdGVkIHBhZ2Ugd2ls
bCBiZSBzcGVjaWZpZWQgYnkgdGhpcyBmaWxlCisgICAgICAgIGFuZCBnZW5lcmF0ZWQgYnkgQ29k
ZUdlbmVyYXRvckluc3BlY3RvciAoSW5zcGVjdG9yRnJvbnRlbmQuY3BwLAorICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLmNwcCBhbmQgSW5zcGVjdG9yQmFja2VuZC5qcykuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjEwNAorCisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBX
ZWJDb3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9zY3JpcHRzL3J1
bGVfYmluZGluZy5weToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS5wcmk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvSURMU3RydWN0dXJlLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvZ2Vu
ZXJhdGUtYmluZGluZ3MucGw6CisgICAgICAgICogaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNw
ZWN0b3IucG06CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5pZGw6IEFkZGVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDU1NTdG9yZTo6aW5zcGVjdG9yU3R5bGVTaGVldCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNvbnRyb2xsZXI6OnN0YXJ0VGltZWxpbmVQcm9maWxlcik6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNv
bnRyb2xsZXI6OnJlbW90ZUluc3BlY3RvckZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdl
bnQ6Okluc3BlY3RvckRPTUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpjcmVhdGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaWRsOiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cmVzZXRGcm9udGVuZFBy
b3h5T2JqZWN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5o
OgorCiAyMDEwLTA3LTA5ICBGcmFuw6dvaXMgU2F1c3NldCAgPHNhdXNzZXRAZ21haWwuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IGEwMGY5MWQuLmM4OWY4MTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ3MCwx
MSArNDcwLDExIEBAIERPTV9DTEFTU0VTID0gXAogICAgIFhTTFRQcm9jZXNzb3IgXAogIwogCi1J
TlNQRUNUT1JfQ0xBU1NFUyA9IEluc3BlY3RvckZyb250ZW5kMgorSU5TUEVDVE9SX0NMQVNTRVMg
PSBJbnNwZWN0b3IKIAogLlBIT05ZIDogYWxsCiAKLUpTX0RPTV9IRUFERVJTPSQoZmlsdGVyLW91
dCBKU0V2ZW50TGlzdGVuZXIuaCBKU0V2ZW50VGFyZ2V0LmgsJChET01fQ0xBU1NFUzolPUpTJS5o
KSAkKElOU1BFQ1RPUl9DTEFTU0VTOiU9UmVtb3RlJS5oKSkKK0pTX0RPTV9IRUFERVJTPSQoZmls
dGVyLW91dCBKU0V2ZW50TGlzdGVuZXIuaCBKU0V2ZW50VGFyZ2V0LmgsJChET01fQ0xBU1NFUzol
PUpTJS5oKSAkKElOU1BFQ1RPUl9DTEFTU0VTOiU9UmVtb3RlJUZyb250ZW5kLmgpKQogCiBhbGwg
OiBcCiAgICAgcmVtb3ZlLXN0cmF5LXBsdWdpbi1hbmQtbWltZS10eXBlLWZpbGVzIFwKQEAgLTg0
MSw4ICs4NDEsOCBAQCBKUyUuaCA6ICUuaWRsICQoSlNfQklORElOR1NfU0NSSVBUUykKIAogSU5T
UEVDVE9SX0dFTkVSQVRPUl9TQ1JJUFRTID0gJChHRU5FUkFURV9TQ1JJUFRTKSBpbnNwZWN0b3Iv
Q29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQogCi1SZW1vdGUlLmggOiAlLmlkbCAkKElOU1BFQ1RP
Ul9HRU5FUkFUT1JfU0NSSVBUUykKLQkkKGNhbGwgZ2VuZXJhdG9yX3NjcmlwdCwgJChJTlNQRUNU
T1JfR0VORVJBVE9SX1NDUklQVFMpKSAtLW91dHB1dERpciAuICAtLWRlZmluZXMgIkxBTkdVQUdF
X0pBVkFTQ1JJUFQiIC0tZ2VuZXJhdG9yIEluc3BlY3RvciAkPAorUmVtb3RlJUZyb250ZW5kLmgg
OiAlLmlkbCAkKElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NSSVBUUykKKwkkKGNhbGwgZ2VuZXJhdG9y
X3NjcmlwdCwgJChJTlNQRUNUT1JfR0VORVJBVE9SX1NDUklQVFMpKSAtLW91dHB1dERpciAuICAt
LWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVy
YXRvciBJbnNwZWN0b3IgJDwKIAogLWluY2x1ZGUgJChKU19ET01fSEVBREVSUzouaD0uZGVwKQog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQppbmRleCA0MmIyNTk5Li5hNThmZDRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTk5LDggKzk5LDggQEAgd2Vi
Y29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxOYW1l
cy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTE5hbWVzLmggXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBcCi0JRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9SZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwIFwKLQlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL1JlbW90ZUluc3BlY3RvckZyb250ZW5kMi5oIFwKKwlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL1JlbW90ZUluc3BlY3RvckZyb250ZW5kLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9SZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL1VzZXJBZ2VudFN0eWxlU2hlZXRzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
VXNlckFnZW50U3R5bGVTaGVldHNEYXRhLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Y
TUxOU05hbWVzLmNwcCBcCkBAIC0zOTgyLDcgKzM5ODIsNyBAQCBEZXJpdmVkU291cmNlcy9XZWJD
b3JlL1hNTE5hbWVzLmNwcCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTE5hbWVzLmg6ICQoV2Vi
Q29yZQogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAk
PCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNP
VVJDRVNfV0VCQ09SRSkiCiAKICMgUmVtb3RlIEluc3BlY3RvciBmcm9udGVuZAotRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9SZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwIERlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmg6ICQoV2ViQ29yZSkvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kMi5pZGwgJChTQ1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUpL2lu
c3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCitEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1JlbW90ZUluc3BlY3RvckZyb250ZW5kLmNwcCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL1JlbW90
ZUluc3BlY3RvckZyb250ZW5kLmg6ICQoV2ViQ29yZSkvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwg
JChTQ1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUpL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5z
cGVjdG9yLnBtCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3Jp
cHRzIC1JJChXZWJDb3JlKS9pbnNwZWN0b3IgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL2dl
bmVyYXRlLWJpbmRpbmdzLnBsICQoSURMX1BBVEg6JT0tLWluY2x1ZGUgIiUiKSAtLW91dHB1dERp
ciAiJChHRU5TT1VSQ0VTX1dFQkNPUkUpIiAtLWRlZmluZXMgIkxBTkdVQUdFX0pBVkFTQ1JJUFQ9
MSAkKEZFQVRVUkVfREVGSU5FUykiIC0tZ2VuZXJhdG9yIEluc3BlY3RvciAkPAogCiBJRExfUEFU
SCA6PSBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvV2Vi
Q29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCA3M2RlNzlmLi5jMDE5Y2YxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAKQEAgLTQ1NCwxOCArNDU0LDE4IEBACiAgICAgICAgICAgXSwK
ICAgICAgICAgfSwKICAgICAgICAgewotICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdJbnNwZWN0
b3JGcm9udGVuZDInLAorICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdSZW1vdGVJbnNwZWN0b3JG
cm9udGVuZCcsCiAgICAgICAgICAgJ2lucHV0cyc6IFsKICAgICAgICAgICAgICcuLi9iaW5kaW5n
cy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsJywKICAgICAgICAgICAgICcuLi9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0nLAogICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3Nj
cmlwdHMvSURMUGFyc2VyLnBtJywKICAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL0lE
TFN0cnVjdHVyZS5wbScsCiAgICAgICAgICAgICAnLi4vaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJ
bnNwZWN0b3IucG0nLAotICAgICAgICAgICAgJy4uL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZDIuaWRsJywKKyAgICAgICAgICAgICcuLi9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCcsCiAgICAg
ICAgICAgXSwKICAgICAgICAgICAnb3V0cHV0cyc6IFsKLSAgICAgICAgICAgICc8KFNIQVJFRF9J
TlRFUk1FRElBVEVfRElSKS93ZWJjb3JlL2JpbmRpbmdzL1JlbW90ZUluc3BlY3RvckZyb250ZW5k
Mi5jcHAnLAotICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9i
aW5kaW5ncy9SZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuaCcsCisgICAgICAgICAgICAnPChTSEFS
RURfSU5URVJNRURJQVRFX0RJUikvd2ViY29yZS9iaW5kaW5ncy9SZW1vdGVJbnNwZWN0b3JGcm9u
dGVuZC5jcHAnLAorICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtp
dC9iaW5kaW5ncy9SZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5oJywKICAgICAgICAgICBdLAogICAg
ICAgICAgICd2YXJpYWJsZXMnOiB7CiAgICAgICAgICAgICAnZ2VuZXJhdG9yX2luY2x1ZGVfZGly
cyc6IFsKQEAgLTQ3NCwxOCArNDc0LDE4IEBACiAgICAgICAgICAgJ2FjdGlvbic6IFsKICAgICAg
ICAgICAgICdweXRob24nLAogICAgICAgICAgICAgJ3NjcmlwdHMvcnVsZV9iaW5kaW5nLnB5JywK
LSAgICAgICAgICAgICcuLi9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbCcsCisgICAg
ICAgICAgICAnLi4vaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwnLAogICAgICAgICAgICAgJzwoU0hB
UkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmNvcmUvYmluZGluZ3MnLAogICAgICAgICAgICAgJzwo
U0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9iaW5kaW5ncycsCiAgICAgICAgICAgICAn
LS0nLAogICAgICAgICAgICAgJzxAKF9pbnB1dHMpJywKICAgICAgICAgICAgICctLScsCi0gICAg
ICAgICAgICAnLS1kZWZpbmVzJywgJ0xBTkdVQUdFX0pBVkFTQ1JJUFQnLAotICAgICAgICAgICAg
Jy0tcHJlZml4JywgJ1JlbW90ZScsCisgICAgICAgICAgICAnLS1kZWZpbmVzJywgJzwoZmVhdHVy
ZV9kZWZpbmVzKSBMQU5HVUFHRV9KQVZBU0NSSVBUJywKKyAgICAgICAgICAgICctLWZpbGVuYW1l
JywgJ1JlbW90ZUluc3BlY3RvckZyb250ZW5kJywKICAgICAgICAgICAgICctLWdlbmVyYXRvcics
ICdJbnNwZWN0b3InLAogICAgICAgICAgICAgJzxAKGdlbmVyYXRvcl9pbmNsdWRlX2RpcnMpJwog
ICAgICAgICAgIF0sCi0gICAgICAgICAgJ21lc3NhZ2UnOiAnR2VuZXJhdGluZyBJbnNwZWN0b3JG
cm9udGVuZDIgY2xhc3MgZnJvbSBJbnNwZWN0b3JGcm9udGVuZDIuaWRsJywKKyAgICAgICAgICAn
bWVzc2FnZSc6ICdHZW5lcmF0aW5nIFJlbW90ZUluc3BlY3RvckZyb250ZW5kIGNsYXNzIGZyb20g
SW5zcGVjdG9yLmlkbCcsCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAnYWN0aW9u
X25hbWUnOiAnWE1MTmFtZXMnLApAQCAtNjkxLDcgKzY5MSw3IEBACiAgICAgICAgICc8KFNIQVJF
RF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvWFBhdGhHcmFtbWFyLmNwcCcsCiAKICAgICAgICAg
IyBBZGRpdGlvbmFsIC5jcHAgZmlsZXMgZnJvbSB0aGUgd2ViY29yZV9pbnNwZWN0b3Jfc291cmNl
cyBsaXN0LgotICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2ViY29yZS9iaW5k
aW5ncy9SZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwJywKKyAgICAgICAgJzwoU0hBUkVEX0lO
VEVSTUVESUFURV9ESVIpL3dlYmNvcmUvYmluZGluZ3MvUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQu
Y3BwJywKICAgICAgIF0sCiAgICAgICAnY29uZGl0aW9ucyc6IFsKICAgICAgICAgWydqYXZhc2Ny
aXB0X2VuZ2luZT09InY4IicsIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXAvc2Ny
aXB0cy9ydWxlX2JpbmRpbmcucHkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9i
aW5kaW5nLnB5CmluZGV4IGY3ZjNlZDEuLmJiNGMyYTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5neXAvc2NyaXB0cy9ydWxlX2JpbmRpbmcucHkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5
cC9zY3JpcHRzL3J1bGVfYmluZGluZy5weQpAQCAtMTAwLDYgKzEwMCwxMCBAQCBkZWYgbWFpbihh
cmdzKToKICAgICBlbHNlOgogICAgICAgICBwcmVmaXhJbmRleCA9IG9wdGlvbnMuaW5kZXgoJy0t
Z2VuZXJhdG9yJykKIAorICAgIGZpbGVOYW1lID0gJycKKyAgICBpZiAnLS1maWxlbmFtZScgaW4g
b3B0aW9uczoKKyAgICAgICAgZmlsZU5hbWUgPSBvcHRpb25zW29wdGlvbnMuaW5kZXgoJy0tZmls
ZW5hbWUnKSArIDFdCisKICAgICBpZiBwcmVmaXhJbmRleCArIDEgPCBsZW4ob3B0aW9ucyk6CiAg
ICAgICAgIHByZWZpeCA9IG9wdGlvbnNbcHJlZml4SW5kZXggKyAxXQogCkBAIC0xMzAsNyArMTM0
LDEwIEBAIGRlZiBtYWluKGFyZ3MpOgogICAgIGlmIGNwcGRpciAhPSBoZGlyOgogICAgICAgICBp
bnB1dEJhc2VuYW1lID0gb3MucGF0aC5iYXNlbmFtZShpbnB1dCkKICAgICAgICAgKHJvb3QsIGV4
dCkgPSBvcy5wYXRoLnNwbGl0ZXh0KGlucHV0QmFzZW5hbWUpCi0gICAgICAgIGhuYW1lID0gJyVz
JXMuaCcgJSAocHJlZml4LCByb290KQorICAgICAgICBpZiBmaWxlTmFtZSAhPSAnJzoKKyAgICAg
ICAgICAgIGhuYW1lID0gJyVzLmgnICUgKGZpbGVOYW1lKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgaG5hbWUgPSAnJXMlcy5oJyAlIChwcmVmaXgsIHJvb3QpCiAgICAgICAgIGhzcmMgPSBv
cy5wYXRoLmpvaW4oY3BwZGlyLCBobmFtZSkKICAgICAgICAgaGRzdCA9IG9zLnBhdGguam9pbiho
ZGlyLCBobmFtZSkKICAgICAgICAgc2h1dGlsLmNvcHlmaWxlKGhzcmMsIGhkc3QpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDdk
YWI4ZDIuLmRmOWRiMjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yNzgsNyArMjc4LDcgQEAKICAgICAgICAgICAgICd4bWwv
WFNMVFByb2Nlc3Nvci5pZGwnLAogICAgICAgICBdLAogICAgICAgICAnd2ViY29yZV9pbnNwZWN0
b3JfaWRsX2ZpbGVzJzogWwotICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZDIuaWRsJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCcsCiAgICAgICAg
IF0sCiAgICAgICAgICd3ZWJjb3JlX3N2Z19iaW5kaW5nc19pZGxfZmlsZXMnOiBbCiAgICAgICAg
ICAgICAnc3ZnL0VsZW1lbnRUaW1lQ29udHJvbC5pZGwnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggYTNiMjQ4ZC4uZmQ5ZGUyMyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJp
CkBAIC02NTIsNyArNjUyLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICB4bWwvWFBhdGhFdmFs
dWF0b3IuaWRsIFwKICAgICB4bWwvWFNMVFByb2Nlc3Nvci5pZGwKIAotSU5TUEVDVE9SX0lOVEVS
RkFDRVMgPSBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbAorSU5TUEVDVE9SX0lOVEVS
RkFDRVMgPSBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAogCiBjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfTUFUSE1MPTEpIHsKICAgICBtYXRobWxuYW1lcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURf
U09VUkNFU19ESVJ9L01hdGhNTE5hbWVzLmNwcApAQCAtNzIwLDcgKzcyMCw3IEBAIGlkbC5kZXBl
bmRzID0gJCRQV0QvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtIFwKIGFkZEV4dHJh
Q29tcGlsZXIoaWRsKQogCiAjIEdFTkVSQVRPUiAyOiBpbnNwZWN0b3IgaWRsIGNvbXBpbGVyCi1p
bnNwZWN0b3JJREwub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9SZW1vdGUk
e1FNQUtFX0ZJTEVfQkFTRX0uY3BwCitpbnNwZWN0b3JJREwub3V0cHV0ID0gJCR7V0NfR0VORVJB
VEVEX1NPVVJDRVNfRElSfS9SZW1vdGUke1FNQUtFX0ZJTEVfQkFTRX1Gcm9udGVuZC5jcHAKIGlu
c3BlY3RvcklETC5pbnB1dCA9IElOU1BFQ1RPUl9JTlRFUkZBQ0VTCiBpbnNwZWN0b3JJREwud2tT
Y3JpcHQgPSAkJFBXRC9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCiBpbnNw
ZWN0b3JJREwuY29tbWFuZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAtSSQkUFdE
L2luc3BlY3RvciAkJGluc3BlY3RvcklETC53a1NjcmlwdCAtLWRlZmluZXMgXCIkJHtGRUFUVVJF
X0RFRklORVNfSkFWQVNDUklQVH1cIiAtLWdlbmVyYXRvciBJbnNwZWN0b3IgLS1vdXRwdXREaXIg
JCRXQ19HRU5FUkFURURfU09VUkNFU19ESVIgLS1wcmVwcm9jZXNzb3IgXCIkJHtRTUFLRV9NT0N9
IC1FXCIgJHtRTUFLRV9GSUxFX05BTUV9CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDAwMzJkMDMuLjZiNDg3NTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDMyLDcgKzEwMzIsNyBAQAogCQk0RjE1MzRFMDEx
QjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAv
KiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTRGMzI4OUI1MTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JW
YWx1ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEYzMjg5QjMxMUE0MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZhbHVlcy5jcHAgKi87IH07CiAJ
CTRGMzI4OUI2MTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGMzI4OUI0MTFBNDJBQUIwMDVB
QkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQk0RjRGNUZGQjExQ0JEMkUxMDBBMTg2QkYgLyogUmVtb3RlSW5z
cGVjdG9yRnJvbnRlbmQyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDRGNEY1RkZBMTFDQkQyRDIwMEExODZCRiAvKiBSZW1vdGVJbnNwZWN0b3JGcm9u
dGVuZDIuY3BwICovOyB9OworCQk0RjRGNUZGQjExQ0JEMkUxMDBBMTg2QkYgLyogUmVtb3RlSW5z
cGVjdG9yRnJvbnRlbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEY0RjVGRkExMUNCRDJEMjAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250
ZW5kLmNwcCAqLzsgfTsKIAkJNEZEOEQwRjIxMTlDNzE4QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZE
OEQwRjAxMTlDNzE4QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZlbnQuY3BwICovOyB9OwogCQk0RkQ4
RDBGMzExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZEOEQwRjExMTlDNzE4QjAwMkZBODI1IC8q
IFNjcmlwdEdDRXZlbnQuaCAqLzsgfTsKIAkJNTEwMTg0NjkwQjA4NjAyQTAwNEE4MjVGIC8qIENh
Y2hlZFBhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMDE4NDY3MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTY3MzksOCArNjczOSw4IEBACiAJ
CTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjMyODlCMzExQTQyQUFCMDA1QUJFN0UgLyogSW5z
cGVjdG9yVmFsdWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElu
c3BlY3RvclZhbHVlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMzI4OUI0
MTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yVmFsdWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTRGNEY1RkZBMTFDQkQyRDIwMEExODZCRiAvKiBSZW1vdGVJbnNwZWN0b3JGcm9udGVu
ZDIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlSW5zcGVj
dG9yRnJvbnRlbmQyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEY0RjVGRkMx
MUNCRDMwMTAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEY0RjVGRkExMUNCRDJEMjAwQTE4NkJGIC8qIFJlbW90
ZUluc3BlY3RvckZyb250ZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbW90ZUluc3BlY3RvckZyb250ZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNEY0RjVGRkMxMUNCRDMwMTAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUluc3BlY3RvckZyb250
ZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGRDhEMEYwMTE5QzcxOEIwMDJG
QTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcmlwdEdDRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
RkQ4RDBGMTExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRHQ0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMDE4NDY3MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFBhZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTExMzY4LDggKzExMzY4LDggQEAKIAkJCQk5RkEzN0VGNzExNzJGRDkz
MDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlLmggKi8sCiAJCQkJOUZBMzdFRjgxMTcyRkQ5MzAw
QzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwICovLAogCQkJCTlGQTM3RUY5MTE3MkZE
OTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlLmggKi8sCi0JCQkJNEY0RjVGRkExMUNC
RDJEMjAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5jcHAgKi8sCi0JCQkJNEY0
RjVGRkMxMUNCRDMwMTAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5oICovLAor
CQkJCTRGNEY1RkZBMTFDQkQyRDIwMEExODZCRiAvKiBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5j
cHAgKi8sCisJCQkJNEY0RjVGRkMxMUNCRDMwMTAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZy
b250ZW5kLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IEluc3BlY3RvcjsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC0yMjExNSw3ICsyMjExNSw3IEBACiAJCQkJOTdERDREODYwRkRGNEQ2
RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjg4NUU4RDQx
MUUwNkREMjAwOUZGQkY0IC8qIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQ0E4QzgxRjExRTNEMzY5MDA4MTJGQjcgLyogQmFja0ZvcndhcmRD
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTRGNEY1RkZCMTFDQkQyRTEwMEExODZC
RiAvKiBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNEY0
RjVGRkIxMUNCRDJFMTAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3RUY1NjEwMTFFNDA3ODMwMDdFMDI2RiAvKiBIVE1MQ29uc3RydWN0
aW9uU2l0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0E4Q0E1RjExRTRFNkQxMDA4MTJGQjcg
LyogQmFja0ZvcndhcmRMaXN0SW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRleCBlMjUwYTRkLi45MjdkZWI5IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCisrKyBiL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KQEAgLTMyOSwxMSArMzI5LDEzIEBAIHN1YiBQ
YXJzZUludGVyZmFjZQogICAgICAgICAgICAgICAgICAgICBteSAkbGluZSA9ICRfOwogCiAgICAg
ICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjppbnRlcmZhY2VQYXJhbWV0
ZXJTZWxlY3Rvci87Ci0gICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUV4dGVuZGVkQXR0cmli
dXRlcyA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiAiKTsgY2hvcCgkcGFyYW1FeHRlbmRlZEF0dHJp
YnV0ZXMpOwotICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlID0gKGRlZmluZWQoJDIp
ID8gJDIgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAg
ICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IChkZWZpbmVkKCQzKSA/ICQzIDogZGllKCJQ
YXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7CisgICAgICAgICAgICAgICAgICAg
IG15ICRwYXJhbURpcmVjdGlvbiA9ICQxOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1F
eHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMikgPyAkMiA6ICIgIik7IGNob3AoJHBhcmFt
RXh0ZW5kZWRBdHRyaWJ1dGVzKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtVHlwZSA9
IChkZWZpbmVkKCQzKSA/ICQzIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVc
bikiKSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSAoZGVmaW5lZCgkNCkg
PyAkNCA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwogCiAgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbURhdGFOb2RlID0gbmV3IGRvbVNpZ25hdHVyZSgpOwor
ICAgICAgICAgICAgICAgICAgICAkcGFyYW1EYXRhTm9kZS0+ZGlyZWN0aW9uKCRwYXJhbURpcmVj
dGlvbik7CiAgICAgICAgICAgICAgICAgICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCRwYXJhbU5h
bWUpOwogICAgICAgICAgICAgICAgICAgICAkcGFyYW1EYXRhTm9kZS0+dHlwZSgkcGFyYW1UeXBl
KTsKICAgICAgICAgICAgICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cyhwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkcGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMpKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExTdHJ1Y3R1cmUucG0gYi9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtCmluZGV4IGQ2MWZjZTEuLjJlZGE2
OTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExTdHJ1Y3R1cmUucG0K
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFN0cnVjdHVyZS5wbQpAQCAtNTksNiAr
NTksNyBAQCBzdHJ1Y3QoIGRvbUF0dHJpYnV0ZSA9PiB7CiAKICMgVXNlZCB0byByZXByZXNlbnQg
YSBtYXAgb2YgJ3ZhcmlhYmxlIG5hbWUnIDwtPiAndmFyaWFibGUgdHlwZScKIHN0cnVjdCggZG9t
U2lnbmF0dXJlID0+IHsKKyAgICBkaXJlY3Rpb24gPT4gJyQnLCAjIFZhcmlhYmxlIGRpcmVjdGlv
biAoaW4gb3Igb3V0KQogICAgIG5hbWUgPT4gJyQnLCAgICAgICMgVmFyaWFibGUgbmFtZQogICAg
IHR5cGUgPT4gJyQnLCAgICAgICMgVmFyaWFibGUgdHlwZQogICAgIGV4dGVuZGVkQXR0cmlidXRl
cyA9PiAnJCcgIyBFeHRlbmRlZCBhdHRyaWJ1dGVzCkBAIC0xMDAsNyArMTAxLDcgQEAgb3VyICRl
eGNlcHRpb25TdWJTZWxlY3RvciA9ICd7XHMqJyAuICRzdXBwb3J0ZWRUeXBlcyAuICdccyooJyAu
ICRpZGxUeXBlIC4gJyopXHMKIAogb3VyICRpbnRlcmZhY2VTZWxlY3RvciA9ICdpbnRlcmZhY2Vc
cyooKD86JyAuICRleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCAuICcgKT8pKCcgLiAkaWRsSWROcyAu
ICcqKVxzKig/OjooXHMqW157XSopKT97KFthLXpBLVowLTlfPVxzKCksOzpcW1xdJlx8XSopJzsK
IG91ciAkaW50ZXJmYWNlTWV0aG9kU2VsZWN0b3IgPSAnXHMqKCg/OicgLiAkZXh0ZW5kZWRBdHRy
aWJ1dGVTeW50YXggLiAnICk/KScgLiAkc3VwcG9ydGVkVHlwZXMgLiAnXHMqKCcgLiAkaWRsSWRO
cyAuICcqKVxzKlwoXHMqKFthLXpBLVowLTk6XHMsPVxbXF1dKiknOwotb3VyICRpbnRlcmZhY2VQ
YXJhbWV0ZXJTZWxlY3RvciA9ICdpblxzKigoPzonIC4gJGV4dGVuZGVkQXR0cmlidXRlU3ludGF4
IC4gJyApPyknIC4gJHN1cHBvcnRlZFR5cGVzIC4gJ1xzKignIC4gJGlkbElkTnMgLiAnKiknOwor
b3VyICRpbnRlcmZhY2VQYXJhbWV0ZXJTZWxlY3RvciA9ICcoaW58b3V0KVxzKigoPzonIC4gJGV4
dGVuZGVkQXR0cmlidXRlU3ludGF4IC4gJyApPyknIC4gJHN1cHBvcnRlZFR5cGVzIC4gJ1xzKign
IC4gJGlkbElkTnMgLiAnKiknOwogCiBvdXIgJGludGVyZmFjZUF0dHJpYnV0ZVNlbGVjdG9yID0g
J1xzKihyZWFkb25seSBhdHRyaWJ1dGV8YXR0cmlidXRlKVxzKignIC4gJGV4dGVuZGVkQXR0cmli
dXRlU3ludGF4IC4gJyApPycgLiAkc3VwcG9ydGVkVHlwZXMgLiAnXHMqKCcgLiAkaWRsVHlwZSAu
ICcqKSc7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1i
aW5kaW5ncy5wbCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5w
bAppbmRleCBiMjkzYjNjLi5hZWU4MWI1IDEwMDc1NQotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L2dlbmVyYXRlLWJpbmRpbmdzLnBsCkBAIC00Miw2ICs0Miw3IEBAIG15ICRvdXRwdXREaXJlY3Rv
cnk7CiBteSAkZ2VuZXJhdG9yOwogbXkgJGRlZmluZXM7CiBteSAkcHJlZml4OworbXkgJGZpbGVu
YW1lOwogbXkgJHByZXByb2Nlc3NvcjsKIG15ICR3cml0ZURlcGVuZGVuY2llczsKIG15ICR2ZXJi
b3NlOwpAQCAtNTEsNiArNTIsNyBAQCBHZXRPcHRpb25zKCdpbmNsdWRlPXNAJyA9PiBcQGlkbERp
cmVjdG9yaWVzLAogICAgICAgICAgICAnZ2VuZXJhdG9yPXMnID0+IFwkZ2VuZXJhdG9yLAogICAg
ICAgICAgICAnZGVmaW5lcz1zJyA9PiBcJGRlZmluZXMsCiAgICAgICAgICAgICdwcmVmaXg9cycg
PT4gXCRwcmVmaXgsCisgICAgICAgICAgICdmaWxlbmFtZT1zJyA9PiBcJGZpbGVuYW1lLAogICAg
ICAgICAgICAncHJlcHJvY2Vzc29yPXMnID0+IFwkcHJlcHJvY2Vzc29yLAogICAgICAgICAgICAn
dmVyYm9zZScgPT4gXCR2ZXJib3NlLAogICAgICAgICAgICAnd3JpdGUtZGVwZW5kZW5jaWVzJyA9
PiBcJHdyaXRlRGVwZW5kZW5jaWVzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0gYi9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9y
SW5zcGVjdG9yLnBtCmluZGV4IGNhZGZhYWMuLmNiNzg0ZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQpAQCAtOTIsMTAgKzkyLDExIEBAIG15ICR3cml0
ZURlcGVuZGVuY2llczsKIG15ICR2ZXJib3NlOwogCiBteSAkbmFtZXNwYWNlOwotbXkgJGZpbGVO
YW1lOworbXkgJGZyb250ZW5kQ2xhc3NOYW1lOwogbXkgJWRpc2NvdmVyZWRUeXBlczsKK215ICVn
ZW5lcmF0ZWRGdW5jdGlvbnM7CiAKLW15IEBjbGFzc0RlZmluaXRpb247CitteSBAZnJvbnRlbmRD
bGFzc0RlY2xhcmF0aW9uOwogbXkgQGZ1bmN0aW9uRGVmaW5pdGlvbnM7CiAKIHN1YiB0eXBlU3Bl
YwpAQCAtMTMzLDYgKzEzNCw3IEBAIHN1YiBHZW5lcmF0ZU1vZHVsZQogICAgIG15ICRkYXRhTm9k
ZSA9IHNoaWZ0OwogCiAgICAgJG5hbWVzcGFjZSA9ICRkYXRhTm9kZS0+bW9kdWxlOworICAgICRu
YW1lc3BhY2UgPX4gcy9jb3JlL1dlYkNvcmUvOwogfQogCiAjIFBhcmFtczogJ2lkbERvY3VtZW50
JyBzdHJ1Y3QKQEAgLTE0Myw0OSArMTQ1LDc3IEBAIHN1YiBHZW5lcmF0ZUludGVyZmFjZQogICAg
IG15ICRkZWZpbmVzID0gc2hpZnQ7CiAKICAgICBteSAkY2xhc3NOYW1lID0gJGludGVyZmFjZS0+
bmFtZTsKLSAgICAkZmlsZU5hbWUgPSAkY2xhc3NOYW1lOworICAgICRmcm9udGVuZENsYXNzTmFt
ZSA9ICJSZW1vdGUiIC4gJGNsYXNzTmFtZSAuICJGcm9udGVuZCI7CiAKICAgICAkZGlzY292ZXJl
ZFR5cGVzeyJTdHJpbmcifSA9IDE7CiAgICAgJGRpc2NvdmVyZWRUeXBlc3siSW5zcGVjdG9yQ2xp
ZW50In0gPSAxOwogICAgICRkaXNjb3ZlcmVkVHlwZXN7IlBhc3NSZWZQdHIifSA9IDE7CiAKLSAg
ICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJjbGFzcyAkY2xhc3NOYW1lIHsiKTsKLSAgICBwdXNo
KEBjbGFzc0RlZmluaXRpb24sICJwdWJsaWM6Iik7Ci0gICAgcHVzaChAY2xhc3NEZWZpbml0aW9u
LCAiICAgICRjbGFzc05hbWUoSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQpIDogbV9p
bnNwZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xpZW50KSB7IH0iKTsKLSAgICBwdXNoKEBjbGFzc0Rl
ZmluaXRpb24sICIiKTsKLSAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sIGdlbmVyYXRlRnVuY3Rp
b25zRGVjbGFyYXRpb25zKCRpbnRlcmZhY2UsICRjbGFzc05hbWUpKTsKLSAgICBwdXNoKEBjbGFz
c0RlZmluaXRpb24sICIiKTsKLSAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJwcml2YXRlOiIp
OwotICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwgIiAgICB2b2lkIHNlbmRTaW1wbGVNZXNzYWdl
VG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsiKTsKLSAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24s
ICIgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2luc3BlY3RvckNsaWVudDsiKTsKLSAgICBwdXNoKEBj
bGFzc0RlZmluaXRpb24sICJ9OyIpOwotCi0gICAgcHVzaChAZnVuY3Rpb25EZWZpbml0aW9ucywg
InZvaWQgJHtjbGFzc05hbWV9OjpzZW5kU2ltcGxlTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3Ry
aW5nJiBmdW5jdGlvbk5hbWUpIik7Ci0gICAgcHVzaChAZnVuY3Rpb25EZWZpbml0aW9ucywgInsi
KTsKLSAgICBwdXNoKEBmdW5jdGlvbkRlZmluaXRpb25zLCAiICAgIFJlZlB0cjxJbnNwZWN0b3JB
cnJheT4gYXJndW1lbnRzID0gSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgpOyIpOwotICAgIHB1c2go
QGZ1bmN0aW9uRGVmaW5pdGlvbnMsICIgICAgYXJndW1lbnRzLT5wdXNoU3RyaW5nKGZ1bmN0aW9u
TmFtZSk7Iik7Ci0gICAgcHVzaChAZnVuY3Rpb25EZWZpbml0aW9ucywgIiAgICBtX2luc3BlY3Rv
ckNsaWVudC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGFyZ3VtZW50cy0+dG9KU09OU3RyaW5nKCkp
OyIpOwotICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlvbnMsICJ9Iik7CisgICAgcHVzaChAZnJv
bnRlbmRDbGFzc0RlY2xhcmF0aW9uLCAiY2xhc3MgJGZyb250ZW5kQ2xhc3NOYW1lIHsiKTsKKyAg
ICBwdXNoKEBmcm9udGVuZENsYXNzRGVjbGFyYXRpb24sICJwdWJsaWM6Iik7CisgICAgcHVzaChA
ZnJvbnRlbmRDbGFzc0RlY2xhcmF0aW9uLCAiICAgICRmcm9udGVuZENsYXNzTmFtZShJbnNwZWN0
b3JDbGllbnQqIGluc3BlY3RvckNsaWVudCkgOiBtX2luc3BlY3RvckNsaWVudChpbnNwZWN0b3JD
bGllbnQpIHsgfSIpOworICAgIHB1c2goQGZyb250ZW5kQ2xhc3NEZWNsYXJhdGlvbiwgIiIpOwor
ICAgIHB1c2goQGZyb250ZW5kQ2xhc3NEZWNsYXJhdGlvbiwgZ2VuZXJhdGVGdW5jdGlvbnMoJGlu
dGVyZmFjZSwgJGZyb250ZW5kQ2xhc3NOYW1lKSk7CisgICAgcHVzaChAZnJvbnRlbmRDbGFzc0Rl
Y2xhcmF0aW9uLCAiIik7CisgICAgcHVzaChAZnJvbnRlbmRDbGFzc0RlY2xhcmF0aW9uLCAicHJp
dmF0ZToiKTsKKyAgICBwdXNoKEBmcm9udGVuZENsYXNzRGVjbGFyYXRpb24sICIgICAgSW5zcGVj
dG9yQ2xpZW50KiBtX2luc3BlY3RvckNsaWVudDsiKTsKKyAgICBwdXNoKEBmcm9udGVuZENsYXNz
RGVjbGFyYXRpb24sICJ9OyIpOwogfQogCi1zdWIgZ2VuZXJhdGVGdW5jdGlvbnNEZWNsYXJhdGlv
bnMKK3N1YiBnZW5lcmF0ZUZ1bmN0aW9ucwogewogICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsK
ICAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CiAKICAgICBteSBAZnVuY3Rpb25EZWNsYXJhdGlv
bnM7CiAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkg
ewotICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7
Ci0gICAgICAgIG15ICRhYnN0cmFjdCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiYWJzdHJhY3QifTsKLSAgICAgICAgbXkgJGFyZ3VtZW50cyA9ICIiOworICAg
ICAgICBteSAkZnVuY3Rpb25OYW1lOworICAgICAgICBteSAkYXJndW1lbnRzRmlsdGVyOworICAg
ICAgICBteSAkYXJndW1lbnRzOworICAgICAgICBteSBAZnVuY3Rpb25Cb2R5OworICAgICAgICBw
dXNoKEBmdW5jdGlvbkJvZHksICIgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBhcmd1bWVudHMg
PSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7Iik7CisgICAgICAgIGlmICgkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Im5vdGlmeSJ9KSB7CisgICAgICAgICAgICAk
ZnVuY3Rpb25OYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgICAgICAk
YXJndW1lbnRzRmlsdGVyID0gImluIjsKKyAgICAgICAgICAgICRhcmd1bWVudHMgPSAiIjsKKyAg
ICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQm9keSwgIiAgICBhcmd1bWVudHMtPnB1c2hTdHJpbmco
XCIkZnVuY3Rpb25OYW1lXCIpOyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbXkg
JGN1c3RvbVJlc3BvbnNlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJjdXN0b21SZXNwb25zZSJ9OworICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICRjdXN0
b21SZXNwb25zZSA/ICRjdXN0b21SZXNwb25zZSA6ICJkaWQiIC4gdWNmaXJzdCgkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgICAgICAkYXJndW1lbnRzRmlsdGVyID0gIm91dCI7
CisgICAgICAgICAgICAkYXJndW1lbnRzID0gImxvbmcgY2FsbElkIjsKKyAgICAgICAgICAgIHB1
c2goQGZ1bmN0aW9uQm9keSwgIiAgICBhcmd1bWVudHMtPnB1c2hTdHJpbmcoXCIkZnVuY3Rpb25O
YW1lXCIpOyIpOworICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Cb2R5LCAiICAgIGFyZ3VtZW50
cy0+cHVzaE51bWJlcihjYWxsSWQpOyIpOworICAgICAgICAgICAgaWYgKCEkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57InNraXBTdWNjZXNzRmxhZyJ9KSB7CisgICAg
ICAgICAgICAgICAgJGFyZ3VtZW50cyA9ICRhcmd1bWVudHMgLiAiLCBib29sIHN1Y2Nlc3MiOwor
ICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQm9keSwgIiAgICBhcmd1bWVudHMtPnB1c2hC
b29sKHN1Y2Nlc3MpOyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgZm9y
ZWFjaCBteSAkcGFyYW1ldGVyIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKLSAgICAgICAg
ICAgICRwYXJhbWV0ZXItPm5hbWUgb3IgZGllICJlbXB0eSBhcmd1bWVudCBuYW1lIHNwZWNpZmll
ZCBmb3IgZnVuY3Rpb24gJHtjbGFzc05hbWV9OjokZnVuY3Rpb25OYW1lIGFuZCBhcmd1bWVudCB0
eXBlICIgLiAkcGFyYW1ldGVyLT50eXBlOwotICAgICAgICAgICAgJGFyZ3VtZW50cyA9ICRhcmd1
bWVudHMgLiAiLCAiIGlmICgkYXJndW1lbnRzKTsKLSAgICAgICAgICAgICRhcmd1bWVudHMgPSAk
YXJndW1lbnRzIC4gdHlwZVNwZWMoJHBhcmFtZXRlcikgLiAiICIgLiAkcGFyYW1ldGVyLT5uYW1l
OworICAgICAgICAgICAgaWYgKCRwYXJhbWV0ZXItPmRpcmVjdGlvbiBlcSAkYXJndW1lbnRzRmls
dGVyKSB7CisgICAgICAgICAgICAgICAgJHBhcmFtZXRlci0+bmFtZSBvciBkaWUgImVtcHR5IGFy
Z3VtZW50IG5hbWUgc3BlY2lmaWVkIGZvciBmdW5jdGlvbiAke2Zyb250ZW5kQ2xhc3NOYW1lfTo6
JGZ1bmN0aW9uTmFtZSBhbmQgYXJndW1lbnQgdHlwZSAiIC4gJHBhcmFtZXRlci0+dHlwZTsKKyAg
ICAgICAgICAgICAgICAkYXJndW1lbnRzID0gJGFyZ3VtZW50cyAuICIsICIgaWYgKCRhcmd1bWVu
dHMpOworICAgICAgICAgICAgICAgICRhcmd1bWVudHMgPSAkYXJndW1lbnRzIC4gdHlwZVNwZWMo
JHBhcmFtZXRlcikgLiAiICIgLiAkcGFyYW1ldGVyLT5uYW1lOworICAgICAgICAgICAgICAgIG15
ICRwdXNoQ2FsbCA9ICAkdHlwZVRyYW5zZm9ybXskcGFyYW1ldGVyLT50eXBlfS0+eyJwdXNoIn07
CisgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Cb2R5LCAiICAgIGFyZ3VtZW50cy0+JHB1
c2hDYWxsKCIgLiAkcGFyYW1ldGVyLT5uYW1lIC4gIik7Iik7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgcHVzaChAZnVuY3Rpb25Cb2R5LCAiICAgIG1faW5zcGVjdG9yQ2xpZW50
LT5zZW5kTWVzc2FnZVRvRnJvbnRlbmQoYXJndW1lbnRzLT50b0pTT05TdHJpbmcoKSk7Iik7CisK
KyAgICAgICAgbXkgJHNpZ25hdHVyZSA9ICIgICAgIiAuIHR5cGVTcGVjKCRmdW5jdGlvbi0+c2ln
bmF0dXJlLCAxKSAuICIgJGZ1bmN0aW9uTmFtZSgkYXJndW1lbnRzKTsiOworICAgICAgICBpZiAo
ISRnZW5lcmF0ZWRGdW5jdGlvbnN7JHtzaWduYXR1cmV9fSkgeworICAgICAgICAgICAgJGdlbmVy
YXRlZEZ1bmN0aW9uc3ske3NpZ25hdHVyZX19ID0gMTsKKyAgICAgICAgICAgIHB1c2goQGZ1bmN0
aW9uRGVjbGFyYXRpb25zLCAkc2lnbmF0dXJlKTsKKworICAgICAgICAgICAgbXkgQGZ1bmN0aW9u
OworICAgICAgICAgICAgcHVzaChAZnVuY3Rpb24sIHR5cGVTcGVjKCRmdW5jdGlvbi0+c2lnbmF0
dXJlLCAxKSAuICIgIiAuICRjbGFzc05hbWUgLiAiOjoiIC4gJGZ1bmN0aW9uTmFtZSAuICIoIiAu
ICRhcmd1bWVudHMgLiAiKSIpOworICAgICAgICAgICAgcHVzaChAZnVuY3Rpb24sICJ7Iik7Cisg
ICAgICAgICAgICBwdXNoKEBmdW5jdGlvbiwgQGZ1bmN0aW9uQm9keSk7CisgICAgICAgICAgICBw
dXNoKEBmdW5jdGlvbiwgIn0iKTsKKyAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uLCAiIik7Cisg
ICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkRlZmluaXRpb25zLCBAZnVuY3Rpb24pOwogICAgICAg
ICB9Ci0gICAgICAgIG15ICRzaWduYXR1cmUgPSAiICAgICIgLiB0eXBlU3BlYygkZnVuY3Rpb24t
PnNpZ25hdHVyZSwgMSkgLiAiICRmdW5jdGlvbk5hbWUoJGFyZ3VtZW50cykiOwotICAgICAgICBw
dXNoKEBmdW5jdGlvbkRlY2xhcmF0aW9ucywgJGFic3RyYWN0ID8gIiRzaWduYXR1cmUgPSAwOyIg
OiAiJHNpZ25hdHVyZTsiKTsKLSAgICAgICAgcHVzaChAZnVuY3Rpb25EZWZpbml0aW9ucywgZ2Vu
ZXJhdGVGdW5jdGlvbnNJbXBsKCRjbGFzc05hbWUsICRmdW5jdGlvbiwgJGFyZ3VtZW50cykpIGlm
ICEkYWJzdHJhY3Q7CiAgICAgfQogICAgIHJldHVybiBAZnVuY3Rpb25EZWNsYXJhdGlvbnM7CiB9
CkBAIC0xOTMsOCArMjIzLDggQEAgc3ViIGdlbmVyYXRlRnVuY3Rpb25zRGVjbGFyYXRpb25zCiBz
dWIgZ2VuZXJhdGVIZWFkZXIKIHsKICAgICBteSBAaGVhZGVyQ29udGVudCA9IHNwbGl0KCJcciIs
ICRsaWNlbnNlVGVtcGxhdGUpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWZuZGVmICR7
ZmlsZU5hbWV9X2giKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2RlZmluZSAke2ZpbGVO
YW1lfV9oIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNpZm5kZWYgJHtmcm9udGVuZENs
YXNzTmFtZX1faCIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZGVmaW5lICR7ZnJvbnRl
bmRDbGFzc05hbWV9X2giKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiIik7CiAKICAgICBt
eSBAZm9yd2FyZEhlYWRlcnM7CkBAIC0yMTMsMTEgKzI0MywxMSBAQCBzdWIgZ2VuZXJhdGVIZWFk
ZXIKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBzb3J0IEBmb3J3YXJkRGVjbGFyYXRpb25zKTsK
IAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIiKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCBAY2xhc3NEZWZpbml0aW9uKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBAZnJvbnRlbmRD
bGFzc0RlY2xhcmF0aW9uKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiIik7CiAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIn0gLy8gbmFtZXNwYWNlICRuYW1lc3BhY2UiKTsKICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiIik7Ci0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNlbmRpZiAv
LyAhZGVmaW5lZCgke2ZpbGVOYW1lfV9oKSIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIj
ZW5kaWYgLy8gIWRlZmluZWQoJHtmcm9udGVuZENsYXNzTmFtZX1faCkiKTsKICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiIik7CiAgICAgcmV0dXJuIEBoZWFkZXJDb250ZW50OwogfQpAQCAtMjI2
LDcgKzI1Niw3IEBAIHN1YiBnZW5lcmF0ZVNvdXJjZQogewogICAgIG15IEBzb3VyY2VDb250ZW50
ID0gc3BsaXQoIlxyIiwgJGxpY2Vuc2VUZW1wbGF0ZSk7CiAgICAgcHVzaChAc291cmNlQ29udGVu
dCwgIlxuI2luY2x1ZGUgXCJjb25maWcuaFwiIik7Ci0gICAgcHVzaChAc291cmNlQ29udGVudCwg
IiNpbmNsdWRlIFwiUmVtb3RlJGZpbGVOYW1lLmhcIiIpOworICAgIHB1c2goQHNvdXJjZUNvbnRl
bnQsICIjaW5jbHVkZSBcIiRmcm9udGVuZENsYXNzTmFtZS5oXCIiKTsKICAgICBwdXNoKEBzb3Vy
Y2VDb250ZW50LCAiIik7CiAgICAgcHVzaChAc291cmNlQ29udGVudCwgIiNpZiBFTkFCTEUoSU5T
UEVDVE9SKSIpOwogICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICIiKTsKQEAgLTI0OCw0MyArMjc4
LDEyIEBAIHN1YiBnZW5lcmF0ZVNvdXJjZQogICAgIHJldHVybiBAc291cmNlQ29udGVudDsKIH0K
IAotc3ViIGdlbmVyYXRlRnVuY3Rpb25zSW1wbAotewotICAgIG15ICRjbGFzc05hbWUgPSBzaGlm
dDsKLSAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsKLSAgICBteSAkYXJndW1lbnRzID0gc2hpZnQ7
Ci0KLSAgICBteSBAZnVuYzsKLQotICAgIG15ICRmdW5jdGlvbk5hbWUgPSAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+bmFtZTsKLQotICAgIHB1c2goQGZ1bmMsIHR5cGVTcGVjKCRmdW5jdGlvbi0+c2ln
bmF0dXJlLCAxKSAuICIgIiAuICRjbGFzc05hbWUgLiAiOjoiIC4gJGZ1bmN0aW9uTmFtZSAuICIo
IiAuICRhcmd1bWVudHMgLiAiKSIpOwotICAgIHB1c2goQGZ1bmMsICJ7Iik7Ci0KLSAgICBteSAk
bnVtUGFyYW1ldGVycyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKLSAgICBpZiAoJG51bVBh
cmFtZXRlcnMgPiAwKSB7Ci0gICAgICAgIHB1c2goQGZ1bmMsICIgICAgUmVmUHRyPEluc3BlY3Rv
ckFycmF5PiBhcmd1bWVudHMgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7Iik7Ci0gICAgICAg
IHB1c2goQGZ1bmMsICIgICAgYXJndW1lbnRzLT5wdXNoU3RyaW5nKFwiJGZ1bmN0aW9uTmFtZVwi
KTsiKTsKLSAgICAgICAgZm9yZWFjaCBteSAkcGFyYW1ldGVyIChAeyRmdW5jdGlvbi0+cGFyYW1l
dGVyc30pIHsKLSAgICAgICAgICAgIG15ICRwdXNoQ2FsbCA9ICAkdHlwZVRyYW5zZm9ybXskcGFy
YW1ldGVyLT50eXBlfS0+eyJwdXNoIn07Ci0gICAgICAgICAgICBwdXNoKEBmdW5jLCAiICAgIGFy
Z3VtZW50cy0+JHB1c2hDYWxsKCIgLiAkcGFyYW1ldGVyLT5uYW1lIC4gIik7Iik7Ci0gICAgICAg
IH0KLSAgICAgICAgcHVzaChAZnVuYywgIiAgICBtX2luc3BlY3RvckNsaWVudC0+c2VuZE1lc3Nh
Z2VUb0Zyb250ZW5kKGFyZ3VtZW50cy0+dG9KU09OU3RyaW5nKCkpOyIpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIHB1c2goQGZ1bmMsICIgICAgc2VuZFNpbXBsZU1lc3NhZ2VUb0Zyb250ZW5kKFwi
JGZ1bmN0aW9uTmFtZVwiKTsiKTsKLSAgICB9Ci0KLSAgICBwdXNoKEBmdW5jLCAifSIpOwotICAg
IHB1c2goQGZ1bmMsICIiKTsKLSAgICByZXR1cm4gQGZ1bmM7Ci19Ci0KIHN1YiBmaW5pc2gKIHsK
ICAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CiAKLSAgICBvcGVuKG15ICRTT1VSQ0UsICI+JG91dHB1
dERpci9SZW1vdGUkZmlsZU5hbWUuY3BwIikgfHwgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJG91
dHB1dERpci9SZW1vdGUkZmlsZU5hbWUuY3BwIjsKLSAgICBvcGVuKG15ICRIRUFERVIsICI+JG91
dHB1dERpci9SZW1vdGUkZmlsZU5hbWUuaCIpIHx8IGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRv
dXRwdXREaXIvUmVtb3RlJGZpbGVOYW1lLmgiOworICAgIG9wZW4obXkgJFNPVVJDRSwgIj4kb3V0
cHV0RGlyLyRmcm9udGVuZENsYXNzTmFtZS5jcHAiKSB8fCBkaWUgIkNvdWxkbid0IG9wZW4gZmls
ZSAkb3V0cHV0RGlyLyRmcm9udGVuZENsYXNzTmFtZS5jcHAiOworICAgIG9wZW4obXkgJEhFQURF
UiwgIj4kb3V0cHV0RGlyLyRmcm9udGVuZENsYXNzTmFtZS5oIikgfHwgZGllICJDb3VsZG4ndCBv
cGVuIGZpbGUgJG91dHB1dERpci8kZnJvbnRlbmRDbGFzc05hbWUuaCI7CiAKICAgICBwcmludCAk
U09VUkNFIGpvaW4oIlxuIiwgZ2VuZXJhdGVTb3VyY2UoKSk7CiAgICAgY2xvc2UoJFNPVVJDRSk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5hYjdkMzg4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
LmlkbApAQCAtMCwwICsxLDE1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTWF0
dCBMaWxlayA8d2Via2l0QG1hdHRsaWxlay5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisgICAgaW50ZXJmYWNlIFtD
b25kaXRpb25hbD1JTlNQRUNUT1JdIEluc3BlY3RvciB7CisgICAgICAgIFtub3RpZnldIHZvaWQg
YWRkUmVjb3JkVG9UaW1lbGluZShpbiBPYmplY3QgcmVjb3JkKTsKKyAgICAgICAgW25vdGlmeV0g
dm9pZCBhZGROb2Rlc1RvU2VhcmNoUmVzdWx0KGluIEFycmF5IG5vZGVJZHMpOworICAgICAgICBb
bm90aWZ5XSB2b2lkIGF0dHJpYnV0ZXNVcGRhdGVkKGluIGxvbmcgaWQsIGluIEFycmF5IGF0dHJp
YnV0ZXMpOworICAgICAgICBbbm90aWZ5XSB2b2lkIGNoaWxkTm9kZUNvdW50VXBkYXRlZChpbiBs
b25nIGlkLCBpbiBpbnQgbmV3VmFsdWUpOworICAgICAgICBbbm90aWZ5XSB2b2lkIGNoaWxkTm9k
ZUluc2VydGVkKGluIGxvbmcgcGFyZW50SWQsIGluIGxvbmcgcHJldklkLCBpbiBPYmplY3Qgbm9k
ZSk7CisgICAgICAgIFtub3RpZnldIHZvaWQgY2hpbGROb2RlUmVtb3ZlZChpbiBsb25nIHBhcmVu
dElkLCBpbiBsb25nIGlkKTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCBzZXRDaGlsZE5vZGVzKGlu
IGxvbmcgcGFyZW50SWQsIGluIEFycmF5IG5vZGVzKTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCBz
ZXREZXRhY2hlZFJvb3QoaW4gT2JqZWN0IHJvb3QpOworICAgICAgICBbbm90aWZ5XSB2b2lkIHNl
dERvY3VtZW50KGluIFZhbHVlIHJvb3QpOworCisgICAgICAgIHZvaWQgc3RvcmVMYXN0QWN0aXZl
UGFuZWwoaW4gU3RyaW5nIHBhbmVsTmFtZSk7CisKKyAgICAgICAgdm9pZCBzYXZlQXBwbGljYXRp
b25TZXR0aW5ncyhpbiBTdHJpbmcgc2V0dGluZ3MpOworICAgICAgICB2b2lkIHNhdmVTZXNzaW9u
U2V0dGluZ3MoaW4gU3RyaW5nIHNldHRpbmdzKTsKKworICAgICAgICB2b2lkIGVuYWJsZVNlYXJj
aGluZ0Zvck5vZGUoKTsKKyAgICAgICAgdm9pZCBkaXNhYmxlU2VhcmNoaW5nRm9yTm9kZSgpOwor
CisgICAgICAgIHZvaWQgZW5hYmxlTW9uaXRvcmluZ1hIUigpOworICAgICAgICB2b2lkIGRpc2Fi
bGVNb25pdG9yaW5nWEhSKCk7CisKKyAgICAgICAgdm9pZCBlbmFibGVSZXNvdXJjZVRyYWNraW5n
KGluIGJvb2xlYW4gYWx3YXlzKTsKKyAgICAgICAgdm9pZCBkaXNhYmxlUmVzb3VyY2VUcmFja2lu
ZyhpbiBib29sZWFuIGFsd2F5cyk7CisgICAgICAgIHZvaWQgZ2V0UmVzb3VyY2VDb250ZW50KGlu
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CisgICAgICAgIHZvaWQgcmVsb2FkUGFnZSgpOwor
CisgICAgICAgIHZvaWQgc3RhcnRUaW1lbGluZVByb2ZpbGVyKCk7CisgICAgICAgIHZvaWQgc3Rv
cFRpbWVsaW5lUHJvZmlsZXIoKTsKKworI2lmIGRlZmluZWQoRU5BQkxFX0pBVkFTQ1JJUFRfREVC
VUdHRVIpICYmIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSCisgICAgICAgIHZvaWQgZW5hYmxl
RGVidWdnZXIoaW4gYm9vbGVhbiBhbHdheXMpOworICAgICAgICB2b2lkIGRpc2FibGVEZWJ1Z2dl
cihpbiBib29sZWFuIGFsd2F5cyk7CisKKyAgICAgICAgdm9pZCBzZXRCcmVha3BvaW50KGluIFN0
cmluZyBzb3VyY2VJRCwgaW4gdW5zaWduZWQgbG9uZyBsaW5lTnVtYmVyLCBpbiBib29sZWFuIGVu
YWJsZWQsIGluIFN0cmluZyBjb25kaXRpb24pOworICAgICAgICB2b2lkIHJlbW92ZUJyZWFrcG9p
bnQoaW4gU3RyaW5nIHNvdXJjZUlELCBpbiB1bnNpZ25lZCBsb25nIGxpbmVOdW1iZXIpOworICAg
ICAgICB2b2lkIGFjdGl2YXRlQnJlYWtwb2ludHMoKTsKKyAgICAgICAgdm9pZCBkZWFjdGl2YXRl
QnJlYWtwb2ludHMoKTsKKworICAgICAgICB2b2lkIHBhdXNlSW5EZWJ1Z2dlcigpOworICAgICAg
ICB2b2lkIHJlc3VtZURlYnVnZ2VyKCk7CisKKyAgICAgICAgdm9pZCBzdGVwT3ZlclN0YXRlbWVu
dEluRGVidWdnZXIoKTsKKyAgICAgICAgdm9pZCBzdGVwSW50b1N0YXRlbWVudEluRGVidWdnZXIo
KTsKKyAgICAgICAgdm9pZCBzdGVwT3V0T2ZGdW5jdGlvbkluRGVidWdnZXIoKTsKKworICAgICAg
ICB2b2lkIHNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUoaW4gbG9uZyBwYXVzZU9uRXhjZXB0aW9u
c1N0YXRlKTsKKworICAgICAgICB2b2lkIGVkaXRTY3JpcHRTb3VyY2UoaW4gU3RyaW5nIHNvdXJj
ZUlELCBpbiBTdHJpbmcgbmV3Q29udGVudCk7CisgICAgICAgIHZvaWQgZ2V0U2NyaXB0U291cmNl
KGluIFN0cmluZyBzb3VyY2VJRCk7CisKKyAgICAgICAgdm9pZCBlbmFibGVQcm9maWxlcihpbiBi
b29sZWFuIGFsd2F5cyk7CisgICAgICAgIHZvaWQgZGlzYWJsZVByb2ZpbGVyKGluIGJvb2xlYW4g
YWx3YXlzKTsKKworICAgICAgICB2b2lkIHN0YXJ0UHJvZmlsaW5nKCk7CisgICAgICAgIHZvaWQg
c3RvcFByb2ZpbGluZygpOworCisgICAgICAgIHZvaWQgZ2V0UHJvZmlsZUhlYWRlcnMoKTsKKyAg
ICAgICAgdm9pZCBnZXRQcm9maWxlKGluIHVuc2lnbmVkIGxvbmcgdWlkKTsKKworICAgICAgICB2
b2lkIHJlbW92ZVByb2ZpbGUoaW4gdW5zaWduZWQgbG9uZyB1aWQpOworICAgICAgICB2b2lkIGNs
ZWFyUHJvZmlsZXMoKTsKKworICAgICAgICB2b2lkIHRha2VIZWFwU25hcHNob3QoKTsKKyNlbmRp
ZgorICAgICAgICB2b2lkIHNldEluamVjdGVkU2NyaXB0U291cmNlKGluIFN0cmluZyBzY3JpcHRT
b3VyY2UpOworICAgICAgICB2b2lkIGRpc3BhdGNoT25JbmplY3RlZFNjcmlwdChpbiBsb25nIGlu
amVjdGVkU2NyaXB0SWQsIGluIFN0cmluZyBtZXRob2ROYW1lLCBpbiBTdHJpbmcgYXJndW1lbnRz
LCBpbiBib29sZWFuIGFzeW5jKTsKKworICAgICAgICB2b2lkIGFkZFNjcmlwdFRvRXZhbHVhdGVP
bkxvYWQoaW4gU3RyaW5nIHNjcmlwdFNvdXJjZSk7CisgICAgICAgIHZvaWQgcmVtb3ZlQWxsU2Ny
aXB0c1RvRXZhbHVhdGVPbkxvYWQoKTsKKworICAgICAgICBbc2tpcFN1Y2Nlc3NGbGFnXSB2b2lk
IGdldENoaWxkTm9kZXMoaW4gbG9uZyBub2RlSWQpOworICAgICAgICBbY3VzdG9yUmVzcG9uc2U9
ZGlkQXBwbHlEb21DaGFuZ2VdIHZvaWQgc2V0QXR0cmlidXRlKGluIGxvbmcgZWxlbWVudElkLCBp
biBTdHJpbmcgbmFtZSwgaW4gU3RyaW5nIHZhbHVlKTsKKyAgICAgICAgW2N1c3RvbVJlc3BvbnNl
PWRpZEFwcGx5RG9tQ2hhbmdlXSB2b2lkIHJlbW92ZUF0dHJpYnV0ZShpbiBsb25nIGVsZW1lbnRJ
ZCwgaW4gU3RyaW5nIG5hbWUpOworICAgICAgICB2b2lkIHNldFRleHROb2RlVmFsdWUoaW4gbG9u
ZyBub2RlSWQsIGluIFN0cmluZyB2YWx1ZSk7CisgICAgICAgIFtza2lwU3VjY2Vzc0ZsYWddIHZv
aWQgZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKGluIGxvbmcgbm9kZUlkLCBvdXQgbG9uZyBub2Rl
SWQsIG91dCBBcnJheSBsaXN0ZW5lcnNBcnJheSk7CisgICAgICAgIHZvaWQgY29weU5vZGUoaW4g
bG9uZyBub2RlSWQpOworICAgICAgICBbc2tpcFN1Y2Nlc3NGbGFnXSB2b2lkIHJlbW92ZU5vZGUo
aW4gbG9uZyBub2RlSWQsIG91dCBsb25nIG5vZGVJZCk7CisgICAgICAgIFtza2lwU3VjY2Vzc0Zs
YWddIHZvaWQgY2hhbmdlVGFnTmFtZShpbiBsb25nIG5vZGVJZCwgaW4gU3RyaW5nIG5ld1RhZ05h
bWUsIG91dCBsb25nIG5vZGVJZCk7CisgICAgICAgIFtza2lwU3VjY2Vzc0ZsYWddIHZvaWQgZ2V0
T3V0ZXJIVE1MKGluIGxvbmcgbm9kZUlkLCBvdXQgU3RyaW5nIG91dGVySFRNTCk7CisgICAgICAg
IFtza2lwU3VjY2Vzc0ZsYWddIHZvaWQgc2V0T3V0ZXJIVE1MKGluIGxvbmcgbm9kZUlkLCBpbiBT
dHJpbmcgb3V0ZXJIVE1MLCBvdXQgbG9uZyBub2RlSWQpOworICAgICAgICB2b2lkIGFkZEluc3Bl
Y3RlZE5vZGUoaW4gbG9uZyBub2RlSWQpOworICAgICAgICB2b2lkIHBlcmZvcm1TZWFyY2goaW4g
U3RyaW5nIHF1ZXJ5LCBpbiBib29sZWFuIHJ1blN5bmNocm9ub3VzbHkpOworICAgICAgICB2b2lk
IHNlYXJjaENhbmNlbGVkKCk7CisgICAgICAgIHZvaWQgcHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5k
KGluIFN0cmluZyBwYXRoKTsKKworICAgICAgICB2b2lkIGNsZWFyQ29uc29sZU1lc3NhZ2VzKCk7
CisKKyAgICAgICAgdm9pZCBoaWdobGlnaHRET01Ob2RlKGluIGxvbmcgbm9kZUlkKTsKKyAgICAg
ICAgdm9pZCBoaWRlRE9NTm9kZUhpZ2hsaWdodCgpOworCisgICAgICAgIFtza2lwU3VjY2Vzc0Zs
YWddIHZvaWQgZ2V0U3R5bGVzKGluIGxvbmcgbm9kZUlkLCBpbiBib29sZWFuIGF1dGhPbmx5LCBv
dXQgVmFsdWUgc3R5bGVzKTsKKyAgICAgICAgW3NraXBTdWNjZXNzRmxhZ10gdm9pZCBnZXRBbGxT
dHlsZXMob3V0IEFycmF5IHN0eWxlcyk7CisgICAgICAgIFtza2lwU3VjY2Vzc0ZsYWddIHZvaWQg
Z2V0SW5saW5lU3R5bGUoaW4gbG9uZyBub2RlSWQsIG91dCBWYWx1ZSBzdHlsZSk7CisgICAgICAg
IFtza2lwU3VjY2Vzc0ZsYWddIHZvaWQgZ2V0Q29tcHV0ZWRTdHlsZShpbiBsb25nIG5vZGVJZCwg
b3V0IFZhbHVlIHN0eWxlKTsKKyAgICAgICAgW3NraXBTdWNjZXNzRmxhZ10gdm9pZCBnZXRTdHls
ZVNoZWV0KGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQgVmFsdWUgc3R5bGVTaGVldCk7CisgICAg
ICAgIHZvaWQgZ2V0UnVsZVJhbmdlc0ZvclN0eWxlU2hlZXRJZChpbiBsb25nIHN0eWxlU2hlZXRJ
ZCk7CisgICAgICAgIHZvaWQgYXBwbHlTdHlsZVRleHQoaW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJp
bmcgc3R5bGVUZXh0LCBpbiBTdHJpbmcgcHJvcGVydHlOYW1lLCBvdXQgVmFsdWUgc3R5bGUsIG91
dCBBcnJheSBjaGFuZ2VkUHJvcGVydGllcyk7CisgICAgICAgIHZvaWQgc2V0U3R5bGVUZXh0KGlu
IGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5nIHN0eWxlVGV4dCk7CisgICAgICAgIHZvaWQgc2V0U3R5
bGVQcm9wZXJ0eShpbiBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBuYW1lLCBpbiBTdHJpbmcgdmFs
dWUpOworICAgICAgICBbc2tpcFN1Y2Nlc3NGbGFnXSB2b2lkIHRvZ2dsZVN0eWxlRW5hYmxlZChp
biBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBwcm9wZXJ0eU5hbWUsIGluIGJvb2xlYW4gZGlzYWJs
ZWQsIG91dCBWYWx1ZSBzdHlsZSk7CisgICAgICAgIFtza2lwU3VjY2Vzc0ZsYWddIHZvaWQgc2V0
UnVsZVNlbGVjdG9yKGluIGxvbmcgcnVsZUlkLCBpbiBTdHJpbmcgc2VsZWN0b3IsIGluIGxvbmcg
c2VsZWN0ZWROb2RlSWQsIG91dCBWYWx1ZSBydWxlLCBvdXQgYm9vbGVhbiBzZWxlY3RvckFmZmVj
dHNOb2RlKTsKKyAgICAgICAgW3NraXBTdWNjZXNzRmxhZ10gdm9pZCBhZGRSdWxlKGluIFN0cmlu
ZyBzZWxlY3RvciwgaW4gbG9uZyBzZWxlY3RlZE5vZGVJZCwgb3V0IFZhbHVlIHJ1bGUsIG91dCBi
b29sZWFuIHNlbGVjdG9yQWZmZWN0c05vZGUpOworCisgICAgICAgIHZvaWQgZ2V0Q29va2llcygp
OworICAgICAgICB2b2lkIGRlbGV0ZUNvb2tpZShpbiBTdHJpbmcgY29va2llTmFtZSwgaW4gU3Ry
aW5nIGRvbWFpbik7CisKKyNpZiBkZWZpbmVkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlMpCisgICAgICAgIHZvaWQgZ2V0QXBwbGljYXRpb25DYWNoZXMoKTsKKyNlbmRpZgorCisgICAg
ICAgIHZvaWQgcmVsZWFzZVdyYXBwZXJPYmplY3RHcm91cChpbiBsb25nIGluamVjdGVkU2NyaXB0
SWQsIGluIFN0cmluZyBvYmplY3RHcm91cCk7CisgICAgICAgIHZvaWQgZGlkRXZhbHVhdGVGb3JU
ZXN0SW5Gcm9udGVuZChpbiBTdHJpbmcganNvblJlc3VsdCk7CisKKyNpZiBkZWZpbmVkKEVOQUJM
RV9EQVRBQkFTRSkgJiYgRU5BQkxFX0RBVEFCQVNFCisgICAgICAgIHZvaWQgZ2V0RGF0YWJhc2VU
YWJsZU5hbWVzKGluIGxvbmcgZGF0YWJhc2VJZCk7CisjZW5kaWYKKworI2lmIGRlZmluZWQoRU5B
QkxFX0RPTV9TVE9SQUdFKSAmJiBFTkFCTEVfRE9NX1NUT1JBR0UKKyAgICAgICAgdm9pZCBnZXRE
T01TdG9yYWdlRW50cmllcyhpbiBsb25nIHN0b3JhZ2VJZCk7CisgICAgICAgIHZvaWQgc2V0RE9N
U3RvcmFnZUl0ZW0oaW4gbG9uZyBzdG9yYWdlSWQsIGluIFN0cmluZyBrZXksIGluIFN0cmluZyB2
YWx1ZSk7CisgICAgICAgIHZvaWQgcmVtb3ZlRE9NU3RvcmFnZUl0ZW0oaW4gbG9uZyBzdG9yYWdl
SWQsIGluIFN0cmluZyBrZXkpOworI2VuZGlmCisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNTU1N0b3JlLmNwcAppbmRleCA0MTNmYjhiLi45ZGZmZWY5IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSAi
SW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvclJlc291cmNlLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JGcm9u
dGVuZDIuaCIKKyNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUg
IlN0eWxlU2hlZXRMaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk1LDEzICs5NSwx
MyBAQCBDU1NTdHlsZVNoZWV0KiBJbnNwZWN0b3JDU1NTdG9yZTo6aW5zcGVjdG9yU3R5bGVTaGVl
dChEb2N1bWVudCogb3duZXJEb2N1bWVudCwgYgogICAgIGlmICghZWMpCiAgICAgICAgIG93bmVy
RG9jdW1lbnQtPmhlYWQoKS0+YXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50LCBlYyk7CiAgICAgaWYg
KGVjKSB7Ci0gICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+aW5zcGVjdG9yRnJvbnRlbmQy
KCktPmRpZEFkZFJ1bGUoY2FsbElkLCBJbnNwZWN0b3JWYWx1ZTo6bnVsbCgpLCBmYWxzZSk7Cisg
ICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+cmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQoKS0+
ZGlkQWRkUnVsZShjYWxsSWQsIEluc3BlY3RvclZhbHVlOjpudWxsKCksIGZhbHNlKTsKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQogICAgIFN0eWxlU2hlZXRMaXN0KiBzdHlsZVNoZWV0cyA9IG93
bmVyRG9jdW1lbnQtPnN0eWxlU2hlZXRzKCk7CiAgICAgU3R5bGVTaGVldCogc3R5bGVTaGVldCA9
IHN0eWxlU2hlZXRzLT5pdGVtKHN0eWxlU2hlZXRzLT5sZW5ndGgoKSAtIDEpOwogICAgIGlmICgh
c3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpIHsKLSAgICAgICAgbV9pbnNwZWN0b3JDb250
cm9sbGVyLT5pbnNwZWN0b3JGcm9udGVuZDIoKS0+ZGlkQWRkUnVsZShjYWxsSWQsIEluc3BlY3Rv
clZhbHVlOjpudWxsKCksIGZhbHNlKTsKKyAgICAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5y
ZW1vdGVJbnNwZWN0b3JGcm9udGVuZCgpLT5kaWRBZGRSdWxlKGNhbGxJZCwgSW5zcGVjdG9yVmFs
dWU6Om51bGwoKSwgZmFsc2UpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgQ1NTU3R5
bGVTaGVldCogaW5zcGVjdG9yU3R5bGVTaGVldCA9IHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQq
PihzdHlsZVNoZWV0KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAK
aW5kZXggZWQyNTY5Ni4uNGZlZjMwMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAKQEAgLTY4LDcgKzY4LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKLSNpbmNsdWRlICJSZW1v
dGVJbnNwZWN0b3JGcm9udGVuZDIuaCIKKyNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JGcm9udGVu
ZC5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVz
dC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKQEAgLTQ4NiwxMCArNDg2LDEwIEBA
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKGNvbnN0IFNjcmlwdE9i
amVjdCYgd2ViSW5zcGVjdG9yKQogICAgIG1fb3BlbmluZ0Zyb250ZW5kID0gZmFsc2U7CiAgICAg
cmVsZWFzZUZyb250ZW5kTGlmZXRpbWVBZ2VudHMoKTsKICAgICBtX2Zyb250ZW5kID0gbmV3IElu
c3BlY3RvckZyb250ZW5kKHdlYkluc3BlY3RvciwgbV9jbGllbnQpOwotICAgIG1fZnJvbnRlbmQy
ID0gbmV3IEluc3BlY3RvckZyb250ZW5kMihtX2NsaWVudCk7Ci0gICAgbV9kb21BZ2VudCA9IElu
c3BlY3RvckRPTUFnZW50OjpjcmVhdGUobV9jc3NTdG9yZS5nZXQoKSwgbV9mcm9udGVuZDIuZ2V0
KCkpOworICAgIG1fcmVtb3RlRnJvbnRlbmQgPSBuZXcgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQo
bV9jbGllbnQpOworICAgIG1fZG9tQWdlbnQgPSBJbnNwZWN0b3JET01BZ2VudDo6Y3JlYXRlKG1f
Y3NzU3RvcmUuZ2V0KCksIG1fcmVtb3RlRnJvbnRlbmQuZ2V0KCkpOwogICAgIGlmIChtX3RpbWVs
aW5lQWdlbnQpCi0gICAgICAgIG1fdGltZWxpbmVBZ2VudC0+cmVzZXRGcm9udGVuZFByb3h5T2Jq
ZWN0KG1fZnJvbnRlbmQyLmdldCgpKTsKKyAgICAgICAgbV90aW1lbGluZUFnZW50LT5yZXNldEZy
b250ZW5kUHJveHlPYmplY3QobV9yZW1vdGVGcm9udGVuZC5nZXQoKSk7CiAKICAgICAvLyBJbml0
aWFsaXplIFdlYiBJbnNwZWN0b3IgdGl0bGUuCiAgICAgbV9mcm9udGVuZC0+aW5zcGVjdGVkVVJM
Q2hhbmdlZChtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+dXJsKCkuc3Ry
aW5nKCkpOwpAQCAtMTE2Myw3ICsxMTYzLDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpz
dGFydFRpbWVsaW5lUHJvZmlsZXIoKQogICAgIGlmIChtX3RpbWVsaW5lQWdlbnQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fdGltZWxpbmVBZ2VudCA9IG5ldyBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50KG1fZnJvbnRlbmQyLmdldCgpKTsKKyAgICBtX3RpbWVsaW5lQWdlbnQgPSBuZXcgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudChtX3JlbW90ZUZyb250ZW5kLmdldCgpKTsKICAgICBpZiAobV9mcm9u
dGVuZCkKICAgICAgICAgbV9mcm9udGVuZC0+dGltZWxpbmVQcm9maWxlcldhc1N0YXJ0ZWQoKTsK
ICAgICBtX2NsaWVudC0+dGltZWxpbmVQcm9maWxlcldhc1N0YXJ0ZWQoKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCAxZjQxNmEwLi5lZTBjOWQ2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC02OSw3ICs2OSw2IEBAIGNsYXNz
IEluc3BlY3RvckNTU1N0b3JlOwogY2xhc3MgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOwog
Y2xhc3MgSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZTsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5k
OwotY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQyOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQ7CiBjbGFzcyBJbnNwZWN0b3JSZXNvdXJjZTsKIGNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ7CkBAIC03OCw2ICs3Nyw3IEBAIGNsYXNzIEluc3BlY3RvcldvcmtlclJlc291cmNlOwogY2xh
c3MgS1VSTDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBQYWdlOworY2xhc3MgUmVtb3RlSW5zcGVjdG9y
RnJvbnRlbmQ7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNl
OwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKQEAgLTIyMCw3ICsyMjAsNyBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgUmVzb3VyY2VzTWFwJiByZXNvdXJjZXMoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNl
czsgfQogICAgIEluc3BlY3RvclJlc291cmNlKiByZXNvdXJjZUZvclVSTChjb25zdCBTdHJpbmcm
IHVybCk7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQqIGluc3BlY3RvckZyb250ZW5kKCkgeyByZXR1
cm4gbV9mcm9udGVuZC5nZXQoKTsgfQotICAgIEluc3BlY3RvckZyb250ZW5kMiogaW5zcGVjdG9y
RnJvbnRlbmQyKCkgeyByZXR1cm4gbV9mcm9udGVuZDIuZ2V0KCk7IH0KKyAgICBSZW1vdGVJbnNw
ZWN0b3JGcm9udGVuZCogcmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQoKSB7IHJldHVybiBtX3JlbW90
ZUZyb250ZW5kLmdldCgpOyB9CiAKICAgICB2b2lkIGRyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoaWNz
Q29udGV4dCYpIGNvbnN0OwogCkBAIC0zNDUsNyArMzQ1LDcgQEAgcHJpdmF0ZToKICAgICBPd25Q
dHI8SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ+IG1faW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7CiAg
ICAgYm9vbCBtX29wZW5pbmdGcm9udGVuZDsKICAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmQ+
IG1fZnJvbnRlbmQ7Ci0gICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kMj4gbV9mcm9udGVuZDI7
CisgICAgT3duUHRyPFJlbW90ZUluc3BlY3RvckZyb250ZW5kPiBtX3JlbW90ZUZyb250ZW5kOwog
ICAgIFJlZlB0cjxJbnNwZWN0b3JET01BZ2VudD4gbV9kb21BZ2VudDsKICAgICBPd25QdHI8SW5z
cGVjdG9yQ1NTU3RvcmU+IG1fY3NzU3RvcmU7CiAgICAgT3duUHRyPEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ+IG1fdGltZWxpbmVBZ2VudDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcAppbmRleCA0NmJjOTM4Li40OTQ2ZmFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCkBAIC01OSw3ICs1OSw3IEBACiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1
ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlICJS
ZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuaCIKKyNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JGcm9u
dGVuZC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVD
b25zdGFudHMuaCIKICNpbmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVyLmgiCkBAIC0xOTUsNyAr
MTk1LDcgQEAgcHVibGljOgogCiB9CiAKLUluc3BlY3RvckRPTUFnZW50OjpJbnNwZWN0b3JET01B
Z2VudChJbnNwZWN0b3JDU1NTdG9yZSogY3NzU3RvcmUsIEluc3BlY3RvckZyb250ZW5kMiogZnJv
bnRlbmQpCitJbnNwZWN0b3JET01BZ2VudDo6SW5zcGVjdG9yRE9NQWdlbnQoSW5zcGVjdG9yQ1NT
U3RvcmUqIGNzc1N0b3JlLCBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiAgICAg
OiBFdmVudExpc3RlbmVyKEluc3BlY3RvckRPTUFnZW50VHlwZSkKICAgICAsIG1fY3NzU3RvcmUo
Y3NzU3RvcmUpCiAgICAgLCBtX2Zyb250ZW5kKGZyb250ZW5kKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmgKaW5kZXggYzAwYzEzMy4uN2NkNWEwNyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5oCkBAIC01Niw3ICs1Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBDU1NTdHlsZVNoZWV0OwogICAgIGNsYXNzIEVsZW1lbnQ7CiAgICAgY2xhc3Mg
RXZlbnQ7Ci0gICAgY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQyOworICAgIGNsYXNzIFJlbW90ZUlu
c3BlY3RvckZyb250ZW5kOwogICAgIGNsYXNzIE1hdGNoSm9iOwogICAgIGNsYXNzIE5hbWVOb2Rl
TWFwOwogICAgIGNsYXNzIE5vZGU7CkBAIC03Nyw3ICs3Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIGNsYXNzIEluc3BlY3RvckRPTUFnZW50IDogcHVibGljIEV2ZW50TGlzdGVuZXIg
ewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yRE9NQWdl
bnQ+IGNyZWF0ZShJbnNwZWN0b3JDU1NTdG9yZSogY3NzU3RvcmUsIEluc3BlY3RvckZyb250ZW5k
MiogZnJvbnRlbmQpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3RvckRPTUFnZW50
PiBjcmVhdGUoSW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0b3JlLCBSZW1vdGVJbnNwZWN0b3JGcm9u
dGVuZCogZnJvbnRlbmQpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSW5zcGVjdG9yRE9NQWdlbnQoY3NzU3RvcmUsIGZyb250ZW5kKSk7CiAgICAgICAgIH0KQEAg
LTg5LDcgKzg5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgIDogMDsK
ICAgICAgICAgfQogCi0gICAgICAgIEluc3BlY3RvckRPTUFnZW50KEluc3BlY3RvckNTU1N0b3Jl
KiBjc3NTdG9yZSwgSW5zcGVjdG9yRnJvbnRlbmQyKiBmcm9udGVuZCk7CisgICAgICAgIEluc3Bl
Y3RvckRPTUFnZW50KEluc3BlY3RvckNTU1N0b3JlKiBjc3NTdG9yZSwgUmVtb3RlSW5zcGVjdG9y
RnJvbnRlbmQqIGZyb250ZW5kKTsKICAgICAgICAgfkluc3BlY3RvckRPTUFnZW50KCk7CiAKICAg
ICAgICAgdm9pZCByZXNldCgpOwpAQCAtMTkyLDcgKzE5Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdm9pZCBkaXNjYXJkQmluZGluZ3MoKTsKIAogICAgICAgICBJbnNwZWN0b3JD
U1NTdG9yZSogbV9jc3NTdG9yZTsKLSAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQyKiBtX2Zyb250
ZW5kOworICAgICAgICBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKICAgICAg
ICAgTm9kZVRvSWRNYXAgbV9kb2N1bWVudE5vZGVUb0lkTWFwOwogICAgICAgICAvLyBPd25zIG5v
ZGUgbWFwcGluZ3MgZm9yIGRhbmdsaW5nIG5vZGVzLgogICAgICAgICBWZWN0b3I8Tm9kZVRvSWRN
YXAqPiBtX2RhbmdsaW5nTm9kZVRvSWRNYXBzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kMi5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5NmQ3MTUuLjAwMDAw
MDAKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbAorKysgL2Rl
di9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8vIENvcHlyaWdodCAoYykgMjAwOSBUaGUgQ2hyb21p
dW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLS8vIGZv
dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLW1vZHVsZSBXZWJDb3JlIHsKLQotICAgIGludGVy
ZmFjZSBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SLCBKU10gSW5zcGVjdG9yRnJvbnRlbmQyIHsKLSAg
ICAgICAgLy8gVGltZWxpbmVBZ2VudAotICAgICAgICB2b2lkIGFkZFJlY29yZFRvVGltZWxpbmUo
aW4gT2JqZWN0IHJlY29yZCk7Ci0KLSAgICAgICAgLy8gRE9NQWdlbnQKLSAgICAgICAgdm9pZCBh
ZGROb2Rlc1RvU2VhcmNoUmVzdWx0KGluIEFycmF5IG5vZGVJZHMpOwotICAgICAgICB2b2lkIGF0
dHJpYnV0ZXNVcGRhdGVkKGluIGxvbmcgaWQsIGluIEFycmF5IGF0dHJpYnV0ZXMpOwotICAgICAg
ICB2b2lkIGNoaWxkTm9kZUNvdW50VXBkYXRlZChpbiBsb25nIGlkLCBpbiBpbnQgbmV3VmFsdWUp
OwotICAgICAgICB2b2lkIGNoaWxkTm9kZUluc2VydGVkKGluIGxvbmcgcGFyZW50SWQsIGluIGxv
bmcgcHJldklkLCBpbiBPYmplY3Qgbm9kZSk7Ci0gICAgICAgIHZvaWQgY2hpbGROb2RlUmVtb3Zl
ZChpbiBsb25nIHBhcmVudElkLCBpbiBsb25nIGlkKTsKLSAgICAgICAgdm9pZCBkaWRBZGRSdWxl
KGluIGxvbmcgY2FsbElkLCBpbiBWYWx1ZSBydWxlLCBpbiBib29sZWFuIHNlbGVjdG9yQWZmZWN0
c05vZGUpOwotICAgICAgICB2b2lkIGRpZEFwcGx5RG9tQ2hhbmdlKGluIGxvbmcgY2FsbElkLCBp
biBib29sZWFuIHN1Y2Nlc3MpOwotICAgICAgICB2b2lkIGRpZEFwcGx5U3R5bGVUZXh0KGluIGxv
bmcgY2FsbElkLCBpbiBib29sZWFuIHN1Y2Nlc3MsIGluIFZhbHVlIHN0eWxlLCBpbiBBcnJheSBj
aGFuZ2VkUHJvcGVydGllcyk7Ci0gICAgICAgIHZvaWQgZGlkQ2hhbmdlVGFnTmFtZShpbiBsb25n
IGNhbGxJZCwgaW4gbG9uZyBub2RlSWQpOwotICAgICAgICB2b2lkIGRpZEdldEFsbFN0eWxlcyhp
biBsb25nIGNhbGxJZCwgaW4gQXJyYXkgc3R5bGVzKTsKLSAgICAgICAgdm9pZCBkaWRHZXRDaGls
ZE5vZGVzKGluIGxvbmcgY2FsbElkKTsKLSAgICAgICAgdm9pZCBkaWRHZXRDb21wdXRlZFN0eWxl
KGluIGxvbmcgY2FsbElkLCBpbiBWYWx1ZSBzdHlsZSk7Ci0gICAgICAgIHZvaWQgZGlkR2V0RXZl
bnRMaXN0ZW5lcnNGb3JOb2RlKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIG5vZGVJZCwgaW4gQXJy
YXkgbGlzdGVuZXJzQXJyYXkpOwotICAgICAgICB2b2lkIGRpZEdldElubGluZVN0eWxlKGluIGxv
bmcgY2FsbElkLCBpbiBWYWx1ZSBzdHlsZSk7Ci0gICAgICAgIHZvaWQgZGlkR2V0T3V0ZXJIVE1M
KGluIGxvbmcgY2FsbElkLCBpbiBTdHJpbmcgb3V0ZXJIVE1MKTsKLSAgICAgICAgdm9pZCBkaWRH
ZXRTdHlsZVNoZWV0KGluIGxvbmcgY2FsbElkLCBpbiBWYWx1ZSBzdHlsZVNoZWV0KTsKLSAgICAg
ICAgdm9pZCBkaWRHZXRTdHlsZXMoaW4gbG9uZyBjYWxsSWQsIGluIFZhbHVlIHN0eWxlcyk7Ci0g
ICAgICAgIHZvaWQgZGlkUmVtb3ZlTm9kZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQp
OwotICAgICAgICB2b2lkIGRpZFNldE91dGVySFRNTChpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBu
b2RlSWQpOwotICAgICAgICB2b2lkIGRpZFNldFJ1bGVTZWxlY3RvcihpbiBsb25nIGNhbGxJZCwg
aW4gVmFsdWUgcnVsZSwgaW4gYm9vbGVhbiBzZWxlY3RvckFmZmVjdHNOb2RlKTsKLSAgICAgICAg
dm9pZCBkaWRTZXRTdHlsZVByb3BlcnR5KGluIGxvbmcgY2FsbElkLCBpbiBib29sZWFuIHN1Y2Nl
c3MpOwotICAgICAgICB2b2lkIGRpZFNldFN0eWxlVGV4dChpbiBsb25nIGNhbGxJZCwgaW4gYm9v
bGVhbiBzdWNjZXNzKTsKLSAgICAgICAgdm9pZCBkaWRUb2dnbGVTdHlsZUVuYWJsZWQoaW4gbG9u
ZyBjYWxsSWQsIGluIFZhbHVlIHN0eWxlKTsKLSAgICAgICAgdm9pZCBzZXRDaGlsZE5vZGVzKGlu
IGxvbmcgcGFyZW50SWQsIGluIEFycmF5IG5vZGVzKTsKLSAgICAgICAgdm9pZCBzZXREZXRhY2hl
ZFJvb3QoaW4gT2JqZWN0IHJvb3QpOwotICAgICAgICB2b2lkIHNldERvY3VtZW50KGluIFZhbHVl
IHJvb3QpOwotICAgIH07Ci19CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuY3BwCmluZGV4IDMxNTEzZDEuLmI1Y2ZmNjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAKICNpbmNsdWRl
ICJFdmVudC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJSZW1vdGVJbnNwZWN0
b3JGcm9udGVuZDIuaCIKKyNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5oIgogI2lu
Y2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIK
ICNpbmNsdWRlICJUaW1lbGluZVJlY29yZEZhY3RvcnkuaCIKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBpbnQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c19pbnN0YW5j
ZUNvdW50ID0gMDsKIAotSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVB
Z2VudChJbnNwZWN0b3JGcm9udGVuZDIqIGZyb250ZW5kKQorSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudChSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRl
bmQpCiAgICAgOiBtX2Zyb250ZW5kKGZyb250ZW5kKQogewogICAgICsrc19pbnN0YW5jZUNvdW50
OwpAQCAtMjc5LDcgKzI3OSw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cmVzZXQo
KQogICAgIG1fcmVjb3JkU3RhY2suY2xlYXIoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpyZXNldEZyb250ZW5kUHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQyKiBmcm9u
dGVuZCkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cmVzZXRGcm9udGVuZFByb3h5T2Jq
ZWN0KFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKIHsKICAgICBBU1NFUlQoZnJv
bnRlbmQpOwogICAgIHJlc2V0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmgKaW5kZXggOWE1Y2I5OC4uMTZkN2I4MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtNDIsNyArNDIsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBFdmVudDsKLWNsYXNzIEluc3BlY3RvckZyb250ZW5kMjsKK2NsYXNzIFJl
bW90ZUluc3BlY3RvckZyb250ZW5kOwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIFJlc291cmNlUmVx
dWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CkBAIC03NCwxMSArNzQsMTEgQEAgZW51bSBU
aW1lbGluZVJlY29yZFR5cGUgewogCiBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50IDogU2Ny
aXB0R0NFdmVudExpc3RlbmVyLCBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgotICAgIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQyKiBmcm9udGVuZCk7CisgICAg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudChSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQp
OwogICAgIH5JbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CiAKICAgICB2b2lkIHJlc2V0KCk7Ci0g
ICAgdm9pZCByZXNldEZyb250ZW5kUHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQyKik7Cisg
ICAgdm9pZCByZXNldEZyb250ZW5kUHJveHlPYmplY3QoUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQq
KTsKIAogICAgIC8vIE1ldGhvZHMgY2FsbGVkIGZyb20gV2ViQ29yZS4KICAgICB2b2lkIHdpbGxD
YWxsRnVuY3Rpb24oY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7CkBA
IC0xNTIsNyArMTUyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcHVzaEdDRXZlbnRSZWNvcmRz
KCk7CiAKLSAgICBJbnNwZWN0b3JGcm9udGVuZDIqIG1fZnJvbnRlbmQ7CisgICAgUmVtb3RlSW5z
cGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CiAKICAgICBWZWN0b3I8VGltZWxpbmVSZWNvcmRF
bnRyeT4gbV9yZWNvcmRTdGFjazsKICAgICBzdGF0aWMgaW50IHNfaW5zdGFuY2VDb3VudDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61329</attachid>
            <date>2010-07-12 22:44:55 -0700</date>
            <delta_ts>2010-07-13 00:38:56 -0700</delta_ts>
            <desc>[patch] second iteration. With fixed gtk, windows and efl.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>49431</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDk1N2I3NzAuLjYwMWM4ZDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTcxNSw3ICsxNzE1LDcgQEAg
Rk9SRUFDSCAoX2ZpbGUgJHtXZWJDb3JlX0lETF9QVVJFX0ZJTEVTfSkKICAgICBHRU5FUkFURV9K
U19GUk9NX0lETF9QVVJFKCR7X2ZpbGV9KQogRU5ERk9SRUFDSCAoKQogCi1HRU5FUkFURV9JTlNQ
RUNUT1JfRlJPTV9JREwoaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGwpCitHRU5FUkFU
RV9JTlNQRUNUT1JfRlJPTV9JREwoaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwpCiAKIExJU1QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUyAke0pTX0lETF9GSUxFU30gJHtJbnNwZWN0b3JfSURMX0ZJTEVT
fSkKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBiNDY4ZDAyLi5kNTM4MWYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEwLTA3LTEyICBJbHlhIFRp
a2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJJbnNwZWN0b3I6IE5leHQgaXRlcmF0aW9uIG9m
IEluc3BlY3RvciBjb2RlIGdlbmVyYXRvci4KKyAgICAgICAgVGhlIEluc3BlY3RvckZyb250ZW5k
MiB3YXMgcmVwbGFjZWQgYnkgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZgorICAgICAgICBJ
bnNwZWN0b3JCYWNrZW5kIGZpbGUgKEluc3BlY3Rvci5pZGwpLiBBdCB0aGUgZW5kIGFsbCB0aGUg
aW50ZXJmYWNlCisgICAgICAgIGJldHdlZW4gV2ViSW5zcGVjdG9yIGFuZCBpbnNwZWN0ZWQgcGFn
ZSB3aWxsIGJlIHNwZWNpZmllZCBieSB0aGlzIGZpbGUKKyAgICAgICAgYW5kIGdlbmVyYXRlZCBi
eSBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yIChJbnNwZWN0b3JGcm9udGVuZC5jcHAsCisgICAgICAg
IEluc3BlY3RvckJhY2tlbmQuY3BwIGFuZCBJbnNwZWN0b3JCYWNrZW5kLmpzKS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMTA0CisKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUuZ3lwL3Njcmlw
dHMvcnVsZV9iaW5kaW5nLnB5OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9JRExTdHJ1Y3R1cmUucG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29kZUdlbmVyYXRv
ckluc3BlY3Rvci5wbToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDogQWRkZWQu
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjppbnNwZWN0b3JTdHlsZVNoZWV0KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRUaW1lbGluZVByb2ZpbGVyKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ29udHJvbGxlcjo6cmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
T01BZ2VudDo6SW5zcGVjdG9yRE9NQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpyZXNldEZyb250
ZW5kUHJveHlPYmplY3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50Lmg6CisKIDIwMTAtMDctMTIgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lh
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpp
bmRleCAwY2NjN2ZiLi4yMDdiN2E2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC00NzEsMTEgKzQ3MSwx
MSBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBYU0xUUHJvY2Vzc29yIFwKICMKIAotSU5TUEVDVE9S
X0NMQVNTRVMgPSBJbnNwZWN0b3JGcm9udGVuZDIKK0lOU1BFQ1RPUl9DTEFTU0VTID0gSW5zcGVj
dG9yCiAKIC5QSE9OWSA6IGFsbAogCi1KU19ET01fSEVBREVSUz0kKGZpbHRlci1vdXQgSlNFdmVu
dExpc3RlbmVyLmggSlNFdmVudFRhcmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkgJChJTlNQ
RUNUT1JfQ0xBU1NFUzolPVJlbW90ZSUuaCkpCitKU19ET01fSEVBREVSUz0kKGZpbHRlci1vdXQg
SlNFdmVudExpc3RlbmVyLmggSlNFdmVudFRhcmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkg
JChJTlNQRUNUT1JfQ0xBU1NFUzolPVJlbW90ZSVGcm9udGVuZC5oKSkKIAogYWxsIDogXAogICAg
IHJlbW92ZS1zdHJheS1wbHVnaW4tYW5kLW1pbWUtdHlwZS1maWxlcyBcCkBAIC04NDIsOCArODQy
LDggQEAgSlMlLmggOiAlLmlkbCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpCiAKIElOU1BFQ1RPUl9H
RU5FUkFUT1JfU0NSSVBUUyA9ICQoR0VORVJBVEVfU0NSSVBUUykgaW5zcGVjdG9yL0NvZGVHZW5l
cmF0b3JJbnNwZWN0b3IucG0KIAotUmVtb3RlJS5oIDogJS5pZGwgJChJTlNQRUNUT1JfR0VORVJB
VE9SX1NDUklQVFMpCi0JJChjYWxsIGdlbmVyYXRvcl9zY3JpcHQsICQoSU5TUEVDVE9SX0dFTkVS
QVRPUl9TQ1JJUFRTKSkgLS1vdXRwdXREaXIgLiAgLS1kZWZpbmVzICJMQU5HVUFHRV9KQVZBU0NS
SVBUIiAtLWdlbmVyYXRvciBJbnNwZWN0b3IgJDwKK1JlbW90ZSVGcm9udGVuZC5oIDogJS5pZGwg
JChJTlNQRUNUT1JfR0VORVJBVE9SX1NDUklQVFMpCisJJChjYWxsIGdlbmVyYXRvcl9zY3JpcHQs
ICQoSU5TUEVDVE9SX0dFTkVSQVRPUl9TQ1JJUFRTKSkgLS1vdXRwdXREaXIgLiAgLS1kZWZpbmVz
ICIkKEZFQVRVUkVfREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgSW5z
cGVjdG9yICQ8CiAKIC1pbmNsdWRlICQoSlNfRE9NX0hFQURFUlM6Lmg9LmRlcCkKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5k
ZXggYzM0NDZkNC4uZDg0N2NjZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQor
KysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC05OSw4ICs5OSw4IEBAIHdlYmNvcmVfYnVp
bHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MTmFtZXMuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxOYW1lcy5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgXAotCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9SZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9SZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9V
c2VyQWdlbnRTdHlsZVNoZWV0cy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1VzZXJBZ2Vu
dFN0eWxlU2hlZXRzRGF0YS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTlNOYW1l
cy5jcHAgXApAQCAtMzk4MSw3ICszOTgxLDcgQEAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxO
YW1lcy5jcHAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTUxOYW1lcy5oOiAkKFdlYkNvcmUKIAkk
KEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1hdHRy
cyAkKFdlYkNvcmUpL3htbC94bWxhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTX1dF
QkNPUkUpIgogCiAjIFJlbW90ZSBJbnNwZWN0b3IgZnJvbnRlbmQKLURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmNwcCBEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1JlbW90ZUluc3BlY3RvckZyb250ZW5kMi5oOiAkKFdlYkNvcmUpL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZDIuaWRsICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9pbnNwZWN0b3Iv
Q29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQorRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9SZW1vdGVJ
bnNwZWN0b3JGcm9udGVuZC5jcHAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9SZW1vdGVJbnNwZWN0
b3JGcm9udGVuZC5oOiAkKFdlYkNvcmUpL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsICQoU0NSSVBU
U19CSU5ESU5HUykgJChXZWJDb3JlKS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5w
bQogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAtSSQo
V2ViQ29yZSkvaW5zcGVjdG9yICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1i
aW5kaW5ncy5wbCAkKElETF9QQVRIOiU9LS1pbmNsdWRlICIlIikgLS1vdXRwdXREaXIgIiQoR0VO
U09VUkNFU19XRUJDT1JFKSIgLS1kZWZpbmVzICJMQU5HVUFHRV9KQVZBU0NSSVBUPTEgJChGRUFU
VVJFX0RFRklORVMpIiAtLWdlbmVyYXRvciBJbnNwZWN0b3IgJDwKIAogSURMX1BBVEggOj0gXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cCBiL1dlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggNzNkZTc5Zi4uYzAxOWNmMSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwCkBAIC00NTQsMTggKzQ1NCwxOCBAQAogICAgICAgICAgIF0sCiAgICAgICAg
IH0sCiAgICAgICAgIHsKLSAgICAgICAgICAnYWN0aW9uX25hbWUnOiAnSW5zcGVjdG9yRnJvbnRl
bmQyJywKKyAgICAgICAgICAnYWN0aW9uX25hbWUnOiAnUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQn
LAogICAgICAgICAgICdpbnB1dHMnOiBbCiAgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0
cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCcsCiAgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yLnBtJywKICAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL0lE
TFBhcnNlci5wbScsCiAgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9JRExTdHJ1Y3R1
cmUucG0nLAogICAgICAgICAgICAgJy4uL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9y
LnBtJywKLSAgICAgICAgICAgICcuLi9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbCcs
CisgICAgICAgICAgICAnLi4vaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwnLAogICAgICAgICAgIF0s
CiAgICAgICAgICAgJ291dHB1dHMnOiBbCi0gICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJ
QVRFX0RJUikvd2ViY29yZS9iaW5kaW5ncy9SZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwJywK
LSAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3Mv
UmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmgnLAorICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVS
TUVESUFURV9ESVIpL3dlYmNvcmUvYmluZGluZ3MvUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuY3Bw
JywKKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGlu
Z3MvUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuaCcsCiAgICAgICAgICAgXSwKICAgICAgICAgICAn
dmFyaWFibGVzJzogewogICAgICAgICAgICAgJ2dlbmVyYXRvcl9pbmNsdWRlX2RpcnMnOiBbCkBA
IC00NzQsMTggKzQ3NCwxOCBAQAogICAgICAgICAgICdhY3Rpb24nOiBbCiAgICAgICAgICAgICAn
cHl0aG9uJywKICAgICAgICAgICAgICdzY3JpcHRzL3J1bGVfYmluZGluZy5weScsCi0gICAgICAg
ICAgICAnLi4vaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGwnLAorICAgICAgICAgICAg
Jy4uL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsJywKICAgICAgICAgICAgICc8KFNIQVJFRF9JTlRF
Uk1FRElBVEVfRElSKS93ZWJjb3JlL2JpbmRpbmdzJywKICAgICAgICAgICAgICc8KFNIQVJFRF9J
TlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MnLAogICAgICAgICAgICAgJy0tJywKICAg
ICAgICAgICAgICc8QChfaW5wdXRzKScsCiAgICAgICAgICAgICAnLS0nLAotICAgICAgICAgICAg
Jy0tZGVmaW5lcycsICdMQU5HVUFHRV9KQVZBU0NSSVBUJywKLSAgICAgICAgICAgICctLXByZWZp
eCcsICdSZW1vdGUnLAorICAgICAgICAgICAgJy0tZGVmaW5lcycsICc8KGZlYXR1cmVfZGVmaW5l
cykgTEFOR1VBR0VfSkFWQVNDUklQVCcsCisgICAgICAgICAgICAnLS1maWxlbmFtZScsICdSZW1v
dGVJbnNwZWN0b3JGcm9udGVuZCcsCiAgICAgICAgICAgICAnLS1nZW5lcmF0b3InLCAnSW5zcGVj
dG9yJywKICAgICAgICAgICAgICc8QChnZW5lcmF0b3JfaW5jbHVkZV9kaXJzKScKICAgICAgICAg
ICBdLAotICAgICAgICAgICdtZXNzYWdlJzogJ0dlbmVyYXRpbmcgSW5zcGVjdG9yRnJvbnRlbmQy
IGNsYXNzIGZyb20gSW5zcGVjdG9yRnJvbnRlbmQyLmlkbCcsCisgICAgICAgICAgJ21lc3NhZ2Un
OiAnR2VuZXJhdGluZyBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCBjbGFzcyBmcm9tIEluc3BlY3Rv
ci5pZGwnLAogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgJ2FjdGlvbl9uYW1lJzog
J1hNTE5hbWVzJywKQEAgLTY5MSw3ICs2OTEsNyBAQAogICAgICAgICAnPChTSEFSRURfSU5URVJN
RURJQVRFX0RJUikvd2Via2l0L1hQYXRoR3JhbW1hci5jcHAnLAogCiAgICAgICAgICMgQWRkaXRp
b25hbCAuY3BwIGZpbGVzIGZyb20gdGhlIHdlYmNvcmVfaW5zcGVjdG9yX3NvdXJjZXMgbGlzdC4K
LSAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmNvcmUvYmluZGluZ3MvUmVt
b3RlSW5zcGVjdG9yRnJvbnRlbmQyLmNwcCcsCisgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElB
VEVfRElSKS93ZWJjb3JlL2JpbmRpbmdzL1JlbW90ZUluc3BlY3RvckZyb250ZW5kLmNwcCcsCiAg
ICAgICBdLAogICAgICAgJ2NvbmRpdGlvbnMnOiBbCiAgICAgICAgIFsnamF2YXNjcmlwdF9lbmdp
bmU9PSJ2OCInLCB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvcnVs
ZV9iaW5kaW5nLnB5IGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1bGVfYmluZGluZy5w
eQppbmRleCBmN2YzZWQxLi5iYjRjMmE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lw
L3NjcmlwdHMvcnVsZV9iaW5kaW5nLnB5CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0
cy9ydWxlX2JpbmRpbmcucHkKQEAgLTEwMCw2ICsxMDAsMTAgQEAgZGVmIG1haW4oYXJncyk6CiAg
ICAgZWxzZToKICAgICAgICAgcHJlZml4SW5kZXggPSBvcHRpb25zLmluZGV4KCctLWdlbmVyYXRv
cicpCiAKKyAgICBmaWxlTmFtZSA9ICcnCisgICAgaWYgJy0tZmlsZW5hbWUnIGluIG9wdGlvbnM6
CisgICAgICAgIGZpbGVOYW1lID0gb3B0aW9uc1tvcHRpb25zLmluZGV4KCctLWZpbGVuYW1lJykg
KyAxXQorCiAgICAgaWYgcHJlZml4SW5kZXggKyAxIDwgbGVuKG9wdGlvbnMpOgogICAgICAgICBw
cmVmaXggPSBvcHRpb25zW3ByZWZpeEluZGV4ICsgMV0KIApAQCAtMTMwLDcgKzEzNCwxMCBAQCBk
ZWYgbWFpbihhcmdzKToKICAgICBpZiBjcHBkaXIgIT0gaGRpcjoKICAgICAgICAgaW5wdXRCYXNl
bmFtZSA9IG9zLnBhdGguYmFzZW5hbWUoaW5wdXQpCiAgICAgICAgIChyb290LCBleHQpID0gb3Mu
cGF0aC5zcGxpdGV4dChpbnB1dEJhc2VuYW1lKQotICAgICAgICBobmFtZSA9ICclcyVzLmgnICUg
KHByZWZpeCwgcm9vdCkKKyAgICAgICAgaWYgZmlsZU5hbWUgIT0gJyc6CisgICAgICAgICAgICBo
bmFtZSA9ICclcy5oJyAlIChmaWxlTmFtZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGhu
YW1lID0gJyVzJXMuaCcgJSAocHJlZml4LCByb290KQogICAgICAgICBoc3JjID0gb3MucGF0aC5q
b2luKGNwcGRpciwgaG5hbWUpCiAgICAgICAgIGhkc3QgPSBvcy5wYXRoLmpvaW4oaGRpciwgaG5h
bWUpCiAgICAgICAgIHNodXRpbC5jb3B5ZmlsZShoc3JjLCBoZHN0KQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAxY2NiYzNmLi4y
ZDhjMDA5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtMjc5LDcgKzI3OSw3IEBACiAgICAgICAgICAgICAneG1sL1hTTFRQcm9j
ZXNzb3IuaWRsJywKICAgICAgICAgXSwKICAgICAgICAgJ3dlYmNvcmVfaW5zcGVjdG9yX2lkbF9m
aWxlcyc6IFsKLSAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbCcs
CisgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwnLAogICAgICAgICBdLAogICAg
ICAgICAnd2ViY29yZV9zdmdfYmluZGluZ3NfaWRsX2ZpbGVzJzogWwogICAgICAgICAgICAgJ3N2
Zy9FbGVtZW50VGltZUNvbnRyb2wuaWRsJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5w
cmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDA3NWI5MjUuLmEyMGEyNjcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtNjY0
LDcgKzY2NCw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgeG1sL1hQYXRoRXZhbHVhdG9yLmlk
bCBcCiAgICAgeG1sL1hTTFRQcm9jZXNzb3IuaWRsCiAKLUlOU1BFQ1RPUl9JTlRFUkZBQ0VTID0g
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGwKK0lOU1BFQ1RPUl9JTlRFUkZBQ0VTID0g
aW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX01BVEhN
TD0xKSB7CiAgICAgbWF0aG1sbmFtZXMub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNf
RElSfS9NYXRoTUxOYW1lcy5jcHAKQEAgLTczMiw3ICs3MzIsNyBAQCBpZGwuZGVwZW5kcyA9ICQk
UFdEL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBcCiBhZGRFeHRyYUNvbXBpbGVy
KGlkbCkKIAogIyBHRU5FUkFUT1IgMjogaW5zcGVjdG9yIGlkbCBjb21waWxlcgotaW5zcGVjdG9y
SURMLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vUmVtb3RlJHtRTUFLRV9G
SUxFX0JBU0V9LmNwcAoraW5zcGVjdG9ySURMLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUn0vUmVtb3RlJHtRTUFLRV9GSUxFX0JBU0V9RnJvbnRlbmQuY3BwCiBpbnNwZWN0b3JJ
REwuaW5wdXQgPSBJTlNQRUNUT1JfSU5URVJGQUNFUwogaW5zcGVjdG9ySURMLndrU2NyaXB0ID0g
JCRQV0QvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbAogaW5zcGVjdG9ySURM
LmNvbW1hbmRzID0gcGVybCAtSSQkUFdEL2JpbmRpbmdzL3NjcmlwdHMgLUkkJFBXRC9pbnNwZWN0
b3IgJCRpbnNwZWN0b3JJREwud2tTY3JpcHQgLS1kZWZpbmVzIFwiJCR7RkVBVFVSRV9ERUZJTkVT
X0pBVkFTQ1JJUFR9XCIgLS1nZW5lcmF0b3IgSW5zcGVjdG9yIC0tb3V0cHV0RGlyICQkV0NfR0VO
RVJBVEVEX1NPVVJDRVNfRElSIC0tcHJlcHJvY2Vzc29yIFwiJCR7UU1BS0VfTU9DfSAtRVwiICR7
UU1BS0VfRklMRV9OQU1FfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
NjIzNTIzZS4uYzc0OTMwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC0yMDc0NSwxMSArMjA3NDUsMTEgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQot
CQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwIg0KKwkJCQlSZWxhdGl2
ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJ
CTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuaCINCisJCQkJ
UmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXFJlbW90ZUluc3BlY3RvckZyb250ZW5kLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+
DQogCQkJPEZpbGUNCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDFjZDI1ZWMuLmUxNGI2MGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMDMwLDcgKzEwMzAsNyBAQAogCQk0RjE1MzRFMDExQjUzMzAyMDAyMUZE
ODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVo
YXZpb3JUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTRGMzI4OUI1MTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYzMjg5QjMxMUE0
MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZhbHVlcy5jcHAgKi87IH07CiAJCTRGMzI4OUI2MTFB
NDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGMzI4OUI0MTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNw
ZWN0b3JWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQk0RjRGNUZGQjExQ0JEMkUxMDBBMTg2QkYgLyogUmVtb3RlSW5zcGVjdG9yRnJvbnRl
bmQyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRG
NEY1RkZBMTFDQkQyRDIwMEExODZCRiAvKiBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwICov
OyB9OworCQk0RjRGNUZGQjExQ0JEMkUxMDBBMTg2QkYgLyogUmVtb3RlSW5zcGVjdG9yRnJvbnRl
bmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY0
RjVGRkExMUNCRDJEMjAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kLmNwcCAqLzsg
fTsKIAkJNEZEOEQwRjIxMTlDNzE4QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZEOEQwRjAxMTlDNzE4
QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZlbnQuY3BwICovOyB9OwogCQk0RkQ4RDBGMzExOUM3MThC
MDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEZEOEQwRjExMTlDNzE4QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZl
bnQuaCAqLzsgfTsKIAkJNTEwMTg0NjkwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE4NDY3MEIw
ODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTY3NTEsOCArNjc1MSw4IEBACiAJCTRGMTUzNERGMTFC
NTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0RjMyODlCMzExQTQyQUFCMDA1QUJFN0UgLyogSW5zcGVjdG9yVmFsdWVz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclZhbHVl
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMzI4OUI0MTFBNDJBQUIwMDVB
QkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW5zcGVjdG9yVmFsdWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTRGNEY1
RkZBMTFDQkQyRDIwMEExODZCRiAvKiBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEY0RjVGRkMxMUNCRDMwMTAwQTE4
NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNEY0RjVGRkExMUNCRDJEMjAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZy
b250ZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUlu
c3BlY3RvckZyb250ZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEY0RjVG
RkMxMUNCRDMwMTAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUluc3BlY3RvckZyb250ZW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGRDhEMEYwMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3Jp
cHRHQ0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlw
dEdDRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkQ4RDBGMTExOUM3
MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JpcHRHQ0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
MDE4NDY3MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENhY2hlZFBhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTExMzk0LDggKzExMzk0LDggQEAKIAkJCQk5RkEzN0VGNzExNzJGRDkzMDBDNENENTUgLyog
SlNTY3JpcHRQcm9maWxlLmggKi8sCiAJCQkJOUZBMzdFRjgxMTcyRkQ5MzAwQzRDRDU1IC8qIEpT
U2NyaXB0UHJvZmlsZU5vZGUuY3BwICovLAogCQkJCTlGQTM3RUY5MTE3MkZEOTMwMEM0Q0Q1NSAv
KiBKU1NjcmlwdFByb2ZpbGVOb2RlLmggKi8sCi0JCQkJNEY0RjVGRkExMUNCRDJEMjAwQTE4NkJG
IC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5jcHAgKi8sCi0JCQkJNEY0RjVGRkMxMUNCRDMw
MTAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5oICovLAorCQkJCTRGNEY1RkZB
MTFDQkQyRDIwMEExODZCRiAvKiBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5jcHAgKi8sCisJCQkJ
NEY0RjVGRkMxMUNCRDMwMTAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kLmggKi8s
CiAJCQkpOwogCQkJbmFtZSA9IEluc3BlY3RvcjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0yMjExNSw3ICsyMjExNSw3IEBACiAJCQkJOTdERDREODYwRkRGNEQ2RTAwRUNGOUE0IC8q
IFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjg4NUU4RDQxMUUwNkREMjAwOUZG
QkY0IC8qIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0E4QzgxRjExRTNEMzY5MDA4MTJGQjcgLyogQmFja0ZvcndhcmRDb250cm9sbGVyLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTRGNEY1RkZCMTFDQkQyRTEwMEExODZCRiAvKiBSZW1vdGVJ
bnNwZWN0b3JGcm9udGVuZDIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNEY0RjVGRkIxMUNCRDJF
MTAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3RUY1NjEwMTFFNDA3ODMwMDdFMDI2RiAvKiBIVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQ0E4Q0E1RjExRTRFNkQxMDA4MTJGQjcgLyogQmFja0Zvcndh
cmRMaXN0SW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4QTlBNTg3MDExRTg0QzM2MDA4QUNG
RDEgLyogSlNOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9JRExQYXJzZXIucG0KaW5kZXggZTI1MGE0ZC4uOTI3ZGViOSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvSURMUGFyc2VyLnBtCkBAIC0zMjksMTEgKzMyOSwxMyBAQCBzdWIgUGFyc2VJbnRlcmZh
Y2UKICAgICAgICAgICAgICAgICAgICAgbXkgJGxpbmUgPSAkXzsKIAogICAgICAgICAgICAgICAg
ICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlUGFyYW1ldGVyU2VsZWN0b3Iv
OwotICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVm
aW5lZCgkMSkgPyAkMSA6ICIgIik7IGNob3AoJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAg
ICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtVHlwZSA9IChkZWZpbmVkKCQyKSA/ICQyIDogZGll
KCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIG15ICRwYXJhbU5hbWUgPSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJv
ciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1E
aXJlY3Rpb24gPSAkMTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtRXh0ZW5kZWRBdHRy
aWJ1dGVzID0gKGRlZmluZWQoJDIpID8gJDIgOiAiICIpOyBjaG9wKCRwYXJhbUV4dGVuZGVkQXR0
cmlidXRlcyk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSAoZGVmaW5lZCgk
MykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOworICAg
ICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUo
IlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKIAogICAgICAgICAgICAgICAg
ICAgICBteSAkcGFyYW1EYXRhTm9kZSA9IG5ldyBkb21TaWduYXR1cmUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmRpcmVjdGlvbigkcGFyYW1EaXJlY3Rpb24pOwogICAg
ICAgICAgICAgICAgICAgICAkcGFyYW1EYXRhTm9kZS0+bmFtZSgkcGFyYW1OYW1lKTsKICAgICAg
ICAgICAgICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPnR5cGUoJHBhcmFtVHlwZSk7CiAgICAgICAg
ICAgICAgICAgICAgICRwYXJhbURhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VFeHRl
bmRlZEF0dHJpYnV0ZXMoJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVzKSk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtIGIvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETFN0cnVjdHVyZS5wbQppbmRleCBkNjFmY2UxLi4yZWRhNjk2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtCisrKyBiL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9JRExTdHJ1Y3R1cmUucG0KQEAgLTU5LDYgKzU5LDcgQEAgc3Ry
dWN0KCBkb21BdHRyaWJ1dGUgPT4gewogCiAjIFVzZWQgdG8gcmVwcmVzZW50IGEgbWFwIG9mICd2
YXJpYWJsZSBuYW1lJyA8LT4gJ3ZhcmlhYmxlIHR5cGUnCiBzdHJ1Y3QoIGRvbVNpZ25hdHVyZSA9
PiB7CisgICAgZGlyZWN0aW9uID0+ICckJywgIyBWYXJpYWJsZSBkaXJlY3Rpb24gKGluIG9yIG91
dCkKICAgICBuYW1lID0+ICckJywgICAgICAjIFZhcmlhYmxlIG5hbWUKICAgICB0eXBlID0+ICck
JywgICAgICAjIFZhcmlhYmxlIHR5cGUKICAgICBleHRlbmRlZEF0dHJpYnV0ZXMgPT4gJyQnICMg
RXh0ZW5kZWQgYXR0cmlidXRlcwpAQCAtMTAwLDcgKzEwMSw3IEBAIG91ciAkZXhjZXB0aW9uU3Vi
U2VsZWN0b3IgPSAne1xzKicgLiAkc3VwcG9ydGVkVHlwZXMgLiAnXHMqKCcgLiAkaWRsVHlwZSAu
ICcqKVxzCiAKIG91ciAkaW50ZXJmYWNlU2VsZWN0b3IgPSAnaW50ZXJmYWNlXHMqKCg/OicgLiAk
ZXh0ZW5kZWRBdHRyaWJ1dGVTeW50YXggLiAnICk/KSgnIC4gJGlkbElkTnMgLiAnKilccyooPzo6
KFxzKltee10qKSk/eyhbYS16QS1aMC05Xz1ccygpLDs6XFtcXSZcfF0qKSc7CiBvdXIgJGludGVy
ZmFjZU1ldGhvZFNlbGVjdG9yID0gJ1xzKigoPzonIC4gJGV4dGVuZGVkQXR0cmlidXRlU3ludGF4
IC4gJyApPyknIC4gJHN1cHBvcnRlZFR5cGVzIC4gJ1xzKignIC4gJGlkbElkTnMgLiAnKilccypc
KFxzKihbYS16QS1aMC05OlxzLD1cW1xdXSopJzsKLW91ciAkaW50ZXJmYWNlUGFyYW1ldGVyU2Vs
ZWN0b3IgPSAnaW5ccyooKD86JyAuICRleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCAuICcgKT8pJyAu
ICRzdXBwb3J0ZWRUeXBlcyAuICdccyooJyAuICRpZGxJZE5zIC4gJyopJzsKK291ciAkaW50ZXJm
YWNlUGFyYW1ldGVyU2VsZWN0b3IgPSAnKGlufG91dClccyooKD86JyAuICRleHRlbmRlZEF0dHJp
YnV0ZVN5bnRheCAuICcgKT8pJyAuICRzdXBwb3J0ZWRUeXBlcyAuICdccyooJyAuICRpZGxJZE5z
IC4gJyopJzsKIAogb3VyICRpbnRlcmZhY2VBdHRyaWJ1dGVTZWxlY3RvciA9ICdccyoocmVhZG9u
bHkgYXR0cmlidXRlfGF0dHJpYnV0ZSlccyooJyAuICRleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCAu
ICcgKT8nIC4gJHN1cHBvcnRlZFR5cGVzIC4gJ1xzKignIC4gJGlkbFR5cGUgLiAnKiknOwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwg
Yi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKaW5kZXggYjI5
M2IzYy4uYWVlODFiNSAxMDA3NTUKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVy
YXRlLWJpbmRpbmdzLnBsCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1i
aW5kaW5ncy5wbApAQCAtNDIsNiArNDIsNyBAQCBteSAkb3V0cHV0RGlyZWN0b3J5OwogbXkgJGdl
bmVyYXRvcjsKIG15ICRkZWZpbmVzOwogbXkgJHByZWZpeDsKK215ICRmaWxlbmFtZTsKIG15ICRw
cmVwcm9jZXNzb3I7CiBteSAkd3JpdGVEZXBlbmRlbmNpZXM7CiBteSAkdmVyYm9zZTsKQEAgLTUx
LDYgKzUyLDcgQEAgR2V0T3B0aW9ucygnaW5jbHVkZT1zQCcgPT4gXEBpZGxEaXJlY3RvcmllcywK
ICAgICAgICAgICAgJ2dlbmVyYXRvcj1zJyA9PiBcJGdlbmVyYXRvciwKICAgICAgICAgICAgJ2Rl
ZmluZXM9cycgPT4gXCRkZWZpbmVzLAogICAgICAgICAgICAncHJlZml4PXMnID0+IFwkcHJlZml4
LAorICAgICAgICAgICAnZmlsZW5hbWU9cycgPT4gXCRmaWxlbmFtZSwKICAgICAgICAgICAgJ3By
ZXByb2Nlc3Nvcj1zJyA9PiBcJHByZXByb2Nlc3NvciwKICAgICAgICAgICAgJ3ZlcmJvc2UnID0+
IFwkdmVyYm9zZSwKICAgICAgICAgICAgJ3dyaXRlLWRlcGVuZGVuY2llcycgPT4gXCR3cml0ZURl
cGVuZGVuY2llcyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9y
SW5zcGVjdG9yLnBtIGIvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5w
bQppbmRleCBjYWRmYWFjLi5jYjc4NGRiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9D
b2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5l
cmF0b3JJbnNwZWN0b3IucG0KQEAgLTkyLDEwICs5MiwxMSBAQCBteSAkd3JpdGVEZXBlbmRlbmNp
ZXM7CiBteSAkdmVyYm9zZTsKIAogbXkgJG5hbWVzcGFjZTsKLW15ICRmaWxlTmFtZTsKK215ICRm
cm9udGVuZENsYXNzTmFtZTsKIG15ICVkaXNjb3ZlcmVkVHlwZXM7CitteSAlZ2VuZXJhdGVkRnVu
Y3Rpb25zOwogCi1teSBAY2xhc3NEZWZpbml0aW9uOworbXkgQGZyb250ZW5kQ2xhc3NEZWNsYXJh
dGlvbjsKIG15IEBmdW5jdGlvbkRlZmluaXRpb25zOwogCiBzdWIgdHlwZVNwZWMKQEAgLTEzMyw2
ICsxMzQsNyBAQCBzdWIgR2VuZXJhdGVNb2R1bGUKICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsK
IAogICAgICRuYW1lc3BhY2UgPSAkZGF0YU5vZGUtPm1vZHVsZTsKKyAgICAkbmFtZXNwYWNlID1+
IHMvY29yZS9XZWJDb3JlLzsKIH0KIAogIyBQYXJhbXM6ICdpZGxEb2N1bWVudCcgc3RydWN0CkBA
IC0xNDMsNDkgKzE0NSw3NyBAQCBzdWIgR2VuZXJhdGVJbnRlcmZhY2UKICAgICBteSAkZGVmaW5l
cyA9IHNoaWZ0OwogCiAgICAgbXkgJGNsYXNzTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7Ci0gICAg
JGZpbGVOYW1lID0gJGNsYXNzTmFtZTsKKyAgICAkZnJvbnRlbmRDbGFzc05hbWUgPSAiUmVtb3Rl
IiAuICRjbGFzc05hbWUgLiAiRnJvbnRlbmQiOwogCiAgICAgJGRpc2NvdmVyZWRUeXBlc3siU3Ry
aW5nIn0gPSAxOwogICAgICRkaXNjb3ZlcmVkVHlwZXN7Ikluc3BlY3RvckNsaWVudCJ9ID0gMTsK
ICAgICAkZGlzY292ZXJlZFR5cGVzeyJQYXNzUmVmUHRyIn0gPSAxOwogCi0gICAgcHVzaChAY2xh
c3NEZWZpbml0aW9uLCAiY2xhc3MgJGNsYXNzTmFtZSB7Iik7Ci0gICAgcHVzaChAY2xhc3NEZWZp
bml0aW9uLCAicHVibGljOiIpOwotICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwgIiAgICAkY2xh
c3NOYW1lKEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50KSA6IG1faW5zcGVjdG9yQ2xp
ZW50KGluc3BlY3RvckNsaWVudCkgeyB9Iik7Ci0gICAgcHVzaChAY2xhc3NEZWZpbml0aW9uLCAi
Iik7Ci0gICAgcHVzaChAY2xhc3NEZWZpbml0aW9uLCBnZW5lcmF0ZUZ1bmN0aW9uc0RlY2xhcmF0
aW9ucygkaW50ZXJmYWNlLCAkY2xhc3NOYW1lKSk7Ci0gICAgcHVzaChAY2xhc3NEZWZpbml0aW9u
LCAiIik7Ci0gICAgcHVzaChAY2xhc3NEZWZpbml0aW9uLCAicHJpdmF0ZToiKTsKLSAgICBwdXNo
KEBjbGFzc0RlZmluaXRpb24sICIgICAgdm9pZCBzZW5kU2ltcGxlTWVzc2FnZVRvRnJvbnRlbmQo
Y29uc3QgU3RyaW5nJik7Iik7Ci0gICAgcHVzaChAY2xhc3NEZWZpbml0aW9uLCAiICAgIEluc3Bl
Y3RvckNsaWVudCogbV9pbnNwZWN0b3JDbGllbnQ7Iik7Ci0gICAgcHVzaChAY2xhc3NEZWZpbml0
aW9uLCAifTsiKTsKLQotICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlvbnMsICJ2b2lkICR7Y2xh
c3NOYW1lfTo6c2VuZFNpbXBsZU1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgZnVuY3Rp
b25OYW1lKSIpOwotICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlvbnMsICJ7Iik7Ci0gICAgcHVz
aChAZnVuY3Rpb25EZWZpbml0aW9ucywgIiAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGFyZ3Vt
ZW50cyA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsiKTsKLSAgICBwdXNoKEBmdW5jdGlvbkRl
ZmluaXRpb25zLCAiICAgIGFyZ3VtZW50cy0+cHVzaFN0cmluZyhmdW5jdGlvbk5hbWUpOyIpOwot
ICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlvbnMsICIgICAgbV9pbnNwZWN0b3JDbGllbnQtPnNl
bmRNZXNzYWdlVG9Gcm9udGVuZChhcmd1bWVudHMtPnRvSlNPTlN0cmluZygpKTsiKTsKLSAgICBw
dXNoKEBmdW5jdGlvbkRlZmluaXRpb25zLCAifSIpOworICAgIHB1c2goQGZyb250ZW5kQ2xhc3NE
ZWNsYXJhdGlvbiwgImNsYXNzICRmcm9udGVuZENsYXNzTmFtZSB7Iik7CisgICAgcHVzaChAZnJv
bnRlbmRDbGFzc0RlY2xhcmF0aW9uLCAicHVibGljOiIpOworICAgIHB1c2goQGZyb250ZW5kQ2xh
c3NEZWNsYXJhdGlvbiwgIiAgICAkZnJvbnRlbmRDbGFzc05hbWUoSW5zcGVjdG9yQ2xpZW50KiBp
bnNwZWN0b3JDbGllbnQpIDogbV9pbnNwZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xpZW50KSB7IH0i
KTsKKyAgICBwdXNoKEBmcm9udGVuZENsYXNzRGVjbGFyYXRpb24sICIiKTsKKyAgICBwdXNoKEBm
cm9udGVuZENsYXNzRGVjbGFyYXRpb24sIGdlbmVyYXRlRnVuY3Rpb25zKCRpbnRlcmZhY2UsICRm
cm9udGVuZENsYXNzTmFtZSkpOworICAgIHB1c2goQGZyb250ZW5kQ2xhc3NEZWNsYXJhdGlvbiwg
IiIpOworICAgIHB1c2goQGZyb250ZW5kQ2xhc3NEZWNsYXJhdGlvbiwgInByaXZhdGU6Iik7Cisg
ICAgcHVzaChAZnJvbnRlbmRDbGFzc0RlY2xhcmF0aW9uLCAiICAgIEluc3BlY3RvckNsaWVudCog
bV9pbnNwZWN0b3JDbGllbnQ7Iik7CisgICAgcHVzaChAZnJvbnRlbmRDbGFzc0RlY2xhcmF0aW9u
LCAifTsiKTsKIH0KIAotc3ViIGdlbmVyYXRlRnVuY3Rpb25zRGVjbGFyYXRpb25zCitzdWIgZ2Vu
ZXJhdGVGdW5jdGlvbnMKIHsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CiAgICAgbXkgJGNs
YXNzTmFtZSA9IHNoaWZ0OwogCiAgICAgbXkgQGZ1bmN0aW9uRGVjbGFyYXRpb25zOwogICAgIGZv
cmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30pIHsKLSAgICAgICAg
bXkgJGZ1bmN0aW9uTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwotICAgICAgICBt
eSAkYWJzdHJhY3QgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
ImFic3RyYWN0In07Ci0gICAgICAgIG15ICRhcmd1bWVudHMgPSAiIjsKKyAgICAgICAgbXkgJGZ1
bmN0aW9uTmFtZTsKKyAgICAgICAgbXkgJGFyZ3VtZW50c0ZpbHRlcjsKKyAgICAgICAgbXkgJGFy
Z3VtZW50czsKKyAgICAgICAgbXkgQGZ1bmN0aW9uQm9keTsKKyAgICAgICAgcHVzaChAZnVuY3Rp
b25Cb2R5LCAiICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gYXJndW1lbnRzID0gSW5zcGVjdG9y
QXJyYXk6OmNyZWF0ZSgpOyIpOworICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJub3RpZnkifSkgeworICAgICAgICAgICAgJGZ1bmN0aW9uTmFt
ZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOworICAgICAgICAgICAgJGFyZ3VtZW50c0Zp
bHRlciA9ICJpbiI7CisgICAgICAgICAgICAkYXJndW1lbnRzID0gIiI7CisgICAgICAgICAgICBw
dXNoKEBmdW5jdGlvbkJvZHksICIgICAgYXJndW1lbnRzLT5wdXNoU3RyaW5nKFwiJGZ1bmN0aW9u
TmFtZVwiKTsiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG15ICRjdXN0b21SZXNw
b25zZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiY3VzdG9t
UmVzcG9uc2UifTsKKyAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAkY3VzdG9tUmVzcG9uc2Ug
PyAkY3VzdG9tUmVzcG9uc2UgOiAiZGlkIiAuIHVjZmlyc3QoJGZ1bmN0aW9uLT5zaWduYXR1cmUt
Pm5hbWUpOworICAgICAgICAgICAgJGFyZ3VtZW50c0ZpbHRlciA9ICJvdXQiOworICAgICAgICAg
ICAgJGFyZ3VtZW50cyA9ICJsb25nIGNhbGxJZCI7CisgICAgICAgICAgICBwdXNoKEBmdW5jdGlv
bkJvZHksICIgICAgYXJndW1lbnRzLT5wdXNoU3RyaW5nKFwiJGZ1bmN0aW9uTmFtZVwiKTsiKTsK
KyAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQm9keSwgIiAgICBhcmd1bWVudHMtPnB1c2hOdW1i
ZXIoY2FsbElkKTsiKTsKKyAgICAgICAgICAgIGlmICghJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJza2lwU3VjY2Vzc0ZsYWcifSkgeworICAgICAgICAgICAgICAg
ICRhcmd1bWVudHMgPSAkYXJndW1lbnRzIC4gIiwgYm9vbCBzdWNjZXNzIjsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBmdW5jdGlvbkJvZHksICIgICAgYXJndW1lbnRzLT5wdXNoQm9vbChzdWNjZXNz
KTsiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIGZvcmVhY2ggbXkgJHBh
cmFtZXRlciAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7Ci0gICAgICAgICAgICAkcGFyYW1l
dGVyLT5uYW1lIG9yIGRpZSAiZW1wdHkgYXJndW1lbnQgbmFtZSBzcGVjaWZpZWQgZm9yIGZ1bmN0
aW9uICR7Y2xhc3NOYW1lfTo6JGZ1bmN0aW9uTmFtZSBhbmQgYXJndW1lbnQgdHlwZSAiIC4gJHBh
cmFtZXRlci0+dHlwZTsKLSAgICAgICAgICAgICRhcmd1bWVudHMgPSAkYXJndW1lbnRzIC4gIiwg
IiBpZiAoJGFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAkYXJndW1lbnRzID0gJGFyZ3VtZW50cyAu
IHR5cGVTcGVjKCRwYXJhbWV0ZXIpIC4gIiAiIC4gJHBhcmFtZXRlci0+bmFtZTsKKyAgICAgICAg
ICAgIGlmICgkcGFyYW1ldGVyLT5kaXJlY3Rpb24gZXEgJGFyZ3VtZW50c0ZpbHRlcikgeworICAg
ICAgICAgICAgICAgICRwYXJhbWV0ZXItPm5hbWUgb3IgZGllICJlbXB0eSBhcmd1bWVudCBuYW1l
IHNwZWNpZmllZCBmb3IgZnVuY3Rpb24gJHtmcm9udGVuZENsYXNzTmFtZX06OiRmdW5jdGlvbk5h
bWUgYW5kIGFyZ3VtZW50IHR5cGUgIiAuICRwYXJhbWV0ZXItPnR5cGU7CisgICAgICAgICAgICAg
ICAgJGFyZ3VtZW50cyA9ICRhcmd1bWVudHMgLiAiLCAiIGlmICgkYXJndW1lbnRzKTsKKyAgICAg
ICAgICAgICAgICAkYXJndW1lbnRzID0gJGFyZ3VtZW50cyAuIHR5cGVTcGVjKCRwYXJhbWV0ZXIp
IC4gIiAiIC4gJHBhcmFtZXRlci0+bmFtZTsKKyAgICAgICAgICAgICAgICBteSAkcHVzaENhbGwg
PSAgJHR5cGVUcmFuc2Zvcm17JHBhcmFtZXRlci0+dHlwZX0tPnsicHVzaCJ9OworICAgICAgICAg
ICAgICAgIHB1c2goQGZ1bmN0aW9uQm9keSwgIiAgICBhcmd1bWVudHMtPiRwdXNoQ2FsbCgiIC4g
JHBhcmFtZXRlci0+bmFtZSAuICIpOyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIHB1c2goQGZ1bmN0aW9uQm9keSwgIiAgICBtX2luc3BlY3RvckNsaWVudC0+c2VuZE1lc3Nh
Z2VUb0Zyb250ZW5kKGFyZ3VtZW50cy0+dG9KU09OU3RyaW5nKCkpOyIpOworCisgICAgICAgIG15
ICRzaWduYXR1cmUgPSAiICAgICIgLiB0eXBlU3BlYygkZnVuY3Rpb24tPnNpZ25hdHVyZSwgMSkg
LiAiICRmdW5jdGlvbk5hbWUoJGFyZ3VtZW50cyk7IjsKKyAgICAgICAgaWYgKCEkZ2VuZXJhdGVk
RnVuY3Rpb25zeyR7c2lnbmF0dXJlfX0pIHsKKyAgICAgICAgICAgICRnZW5lcmF0ZWRGdW5jdGlv
bnN7JHtzaWduYXR1cmV9fSA9IDE7CisgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkRlY2xhcmF0
aW9ucywgJHNpZ25hdHVyZSk7CisKKyAgICAgICAgICAgIG15IEBmdW5jdGlvbjsKKyAgICAgICAg
ICAgIHB1c2goQGZ1bmN0aW9uLCB0eXBlU3BlYygkZnVuY3Rpb24tPnNpZ25hdHVyZSwgMSkgLiAi
ICIgLiAkY2xhc3NOYW1lIC4gIjo6IiAuICRmdW5jdGlvbk5hbWUgLiAiKCIgLiAkYXJndW1lbnRz
IC4gIikiKTsKKyAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uLCAieyIpOworICAgICAgICAgICAg
cHVzaChAZnVuY3Rpb24sIEBmdW5jdGlvbkJvZHkpOworICAgICAgICAgICAgcHVzaChAZnVuY3Rp
b24sICJ9Iik7CisgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbiwgIiIpOworICAgICAgICAgICAg
cHVzaChAZnVuY3Rpb25EZWZpbml0aW9ucywgQGZ1bmN0aW9uKTsKICAgICAgICAgfQotICAgICAg
ICBteSAkc2lnbmF0dXJlID0gIiAgICAiIC4gdHlwZVNwZWMoJGZ1bmN0aW9uLT5zaWduYXR1cmUs
IDEpIC4gIiAkZnVuY3Rpb25OYW1lKCRhcmd1bWVudHMpIjsKLSAgICAgICAgcHVzaChAZnVuY3Rp
b25EZWNsYXJhdGlvbnMsICRhYnN0cmFjdCA/ICIkc2lnbmF0dXJlID0gMDsiIDogIiRzaWduYXR1
cmU7Iik7Ci0gICAgICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlvbnMsIGdlbmVyYXRlRnVuY3Rp
b25zSW1wbCgkY2xhc3NOYW1lLCAkZnVuY3Rpb24sICRhcmd1bWVudHMpKSBpZiAhJGFic3RyYWN0
OwogICAgIH0KICAgICByZXR1cm4gQGZ1bmN0aW9uRGVjbGFyYXRpb25zOwogfQpAQCAtMTkzLDgg
KzIyMyw4IEBAIHN1YiBnZW5lcmF0ZUZ1bmN0aW9uc0RlY2xhcmF0aW9ucwogc3ViIGdlbmVyYXRl
SGVhZGVyCiB7CiAgICAgbXkgQGhlYWRlckNvbnRlbnQgPSBzcGxpdCgiXHIiLCAkbGljZW5zZVRl
bXBsYXRlKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2lmbmRlZiAke2ZpbGVOYW1lfV9o
Iik7Ci0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNkZWZpbmUgJHtmaWxlTmFtZX1faCIpOwor
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWZuZGVmICR7ZnJvbnRlbmRDbGFzc05hbWV9X2gi
KTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2RlZmluZSAke2Zyb250ZW5kQ2xhc3NOYW1l
fV9oIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiIpOwogCiAgICAgbXkgQGZvcndhcmRI
ZWFkZXJzOwpAQCAtMjEzLDExICsyNDMsMTEgQEAgc3ViIGdlbmVyYXRlSGVhZGVyCiAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgc29ydCBAZm9yd2FyZERlY2xhcmF0aW9ucyk7CiAKICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiIik7Ci0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgQGNsYXNzRGVm
aW5pdGlvbik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgQGZyb250ZW5kQ2xhc3NEZWNsYXJh
dGlvbik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiIpOwogICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICJ9IC8vIG5hbWVzcGFjZSAkbmFtZXNwYWNlIik7CiAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiIpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWYgLy8gIWRlZmluZWQo
JHtmaWxlTmFtZX1faCkiKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2VuZGlmIC8vICFk
ZWZpbmVkKCR7ZnJvbnRlbmRDbGFzc05hbWV9X2gpIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiIpOwogICAgIHJldHVybiBAaGVhZGVyQ29udGVudDsKIH0KQEAgLTIyNiw3ICsyNTYsNyBA
QCBzdWIgZ2VuZXJhdGVTb3VyY2UKIHsKICAgICBteSBAc291cmNlQ29udGVudCA9IHNwbGl0KCJc
ciIsICRsaWNlbnNlVGVtcGxhdGUpOwogICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICJcbiNpbmNs
dWRlIFwiY29uZmlnLmhcIiIpOwotICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICIjaW5jbHVkZSBc
IlJlbW90ZSRmaWxlTmFtZS5oXCIiKTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiI2luY2x1
ZGUgXCIkZnJvbnRlbmRDbGFzc05hbWUuaFwiIik7CiAgICAgcHVzaChAc291cmNlQ29udGVudCwg
IiIpOwogICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICIjaWYgRU5BQkxFKElOU1BFQ1RPUikiKTsK
ICAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiIik7CkBAIC0yNDgsNDMgKzI3OCwxMiBAQCBzdWIg
Z2VuZXJhdGVTb3VyY2UKICAgICByZXR1cm4gQHNvdXJjZUNvbnRlbnQ7CiB9CiAKLXN1YiBnZW5l
cmF0ZUZ1bmN0aW9uc0ltcGwKLXsKLSAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7Ci0gICAgbXkg
JGZ1bmN0aW9uID0gc2hpZnQ7Ci0gICAgbXkgJGFyZ3VtZW50cyA9IHNoaWZ0OwotCi0gICAgbXkg
QGZ1bmM7Ci0KLSAgICBteSAkZnVuY3Rpb25OYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5h
bWU7Ci0KLSAgICBwdXNoKEBmdW5jLCB0eXBlU3BlYygkZnVuY3Rpb24tPnNpZ25hdHVyZSwgMSkg
LiAiICIgLiAkY2xhc3NOYW1lIC4gIjo6IiAuICRmdW5jdGlvbk5hbWUgLiAiKCIgLiAkYXJndW1l
bnRzIC4gIikiKTsKLSAgICBwdXNoKEBmdW5jLCAieyIpOwotCi0gICAgbXkgJG51bVBhcmFtZXRl
cnMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307Ci0gICAgaWYgKCRudW1QYXJhbWV0ZXJzID4g
MCkgewotICAgICAgICBwdXNoKEBmdW5jLCAiICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gYXJn
dW1lbnRzID0gSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgpOyIpOwotICAgICAgICBwdXNoKEBmdW5j
LCAiICAgIGFyZ3VtZW50cy0+cHVzaFN0cmluZyhcIiRmdW5jdGlvbk5hbWVcIik7Iik7Ci0gICAg
ICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7Ci0g
ICAgICAgICAgICBteSAkcHVzaENhbGwgPSAgJHR5cGVUcmFuc2Zvcm17JHBhcmFtZXRlci0+dHlw
ZX0tPnsicHVzaCJ9OwotICAgICAgICAgICAgcHVzaChAZnVuYywgIiAgICBhcmd1bWVudHMtPiRw
dXNoQ2FsbCgiIC4gJHBhcmFtZXRlci0+bmFtZSAuICIpOyIpOwotICAgICAgICB9Ci0gICAgICAg
IHB1c2goQGZ1bmMsICIgICAgbV9pbnNwZWN0b3JDbGllbnQtPnNlbmRNZXNzYWdlVG9Gcm9udGVu
ZChhcmd1bWVudHMtPnRvSlNPTlN0cmluZygpKTsiKTsKLSAgICB9IGVsc2UgewotICAgICAgICBw
dXNoKEBmdW5jLCAiICAgIHNlbmRTaW1wbGVNZXNzYWdlVG9Gcm9udGVuZChcIiRmdW5jdGlvbk5h
bWVcIik7Iik7Ci0gICAgfQotCi0gICAgcHVzaChAZnVuYywgIn0iKTsKLSAgICBwdXNoKEBmdW5j
LCAiIik7Ci0gICAgcmV0dXJuIEBmdW5jOwotfQotCiBzdWIgZmluaXNoCiB7CiAgICAgbXkgJG9i
amVjdCA9IHNoaWZ0OwogCi0gICAgb3BlbihteSAkU09VUkNFLCAiPiRvdXRwdXREaXIvUmVtb3Rl
JGZpbGVOYW1lLmNwcCIpIHx8IGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRvdXRwdXREaXIvUmVt
b3RlJGZpbGVOYW1lLmNwcCI7Ci0gICAgb3BlbihteSAkSEVBREVSLCAiPiRvdXRwdXREaXIvUmVt
b3RlJGZpbGVOYW1lLmgiKSB8fCBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkb3V0cHV0RGlyL1Jl
bW90ZSRmaWxlTmFtZS5oIjsKKyAgICBvcGVuKG15ICRTT1VSQ0UsICI+JG91dHB1dERpci8kZnJv
bnRlbmRDbGFzc05hbWUuY3BwIikgfHwgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJG91dHB1dERp
ci8kZnJvbnRlbmRDbGFzc05hbWUuY3BwIjsKKyAgICBvcGVuKG15ICRIRUFERVIsICI+JG91dHB1
dERpci8kZnJvbnRlbmRDbGFzc05hbWUuaCIpIHx8IGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRv
dXRwdXREaXIvJGZyb250ZW5kQ2xhc3NOYW1lLmgiOwogCiAgICAgcHJpbnQgJFNPVVJDRSBqb2lu
KCJcbiIsIGdlbmVyYXRlU291cmNlKCkpOwogICAgIGNsb3NlKCRTT1VSQ0UpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWI3ZDM4OAot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKQEAgLTAs
MCArMSwxNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hdHQgTGlsZWsgPHdl
YmtpdEBtYXR0bGlsZWsuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9
SU5TUEVDVE9SXSBJbnNwZWN0b3IgeworICAgICAgICBbbm90aWZ5XSB2b2lkIGFkZFJlY29yZFRv
VGltZWxpbmUoaW4gT2JqZWN0IHJlY29yZCk7CisgICAgICAgIFtub3RpZnldIHZvaWQgYWRkTm9k
ZXNUb1NlYXJjaFJlc3VsdChpbiBBcnJheSBub2RlSWRzKTsKKyAgICAgICAgW25vdGlmeV0gdm9p
ZCBhdHRyaWJ1dGVzVXBkYXRlZChpbiBsb25nIGlkLCBpbiBBcnJheSBhdHRyaWJ1dGVzKTsKKyAg
ICAgICAgW25vdGlmeV0gdm9pZCBjaGlsZE5vZGVDb3VudFVwZGF0ZWQoaW4gbG9uZyBpZCwgaW4g
aW50IG5ld1ZhbHVlKTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCBjaGlsZE5vZGVJbnNlcnRlZChp
biBsb25nIHBhcmVudElkLCBpbiBsb25nIHByZXZJZCwgaW4gT2JqZWN0IG5vZGUpOworICAgICAg
ICBbbm90aWZ5XSB2b2lkIGNoaWxkTm9kZVJlbW92ZWQoaW4gbG9uZyBwYXJlbnRJZCwgaW4gbG9u
ZyBpZCk7CisgICAgICAgIFtub3RpZnldIHZvaWQgc2V0Q2hpbGROb2RlcyhpbiBsb25nIHBhcmVu
dElkLCBpbiBBcnJheSBub2Rlcyk7CisgICAgICAgIFtub3RpZnldIHZvaWQgc2V0RGV0YWNoZWRS
b290KGluIE9iamVjdCByb290KTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCBzZXREb2N1bWVudChp
biBWYWx1ZSByb290KTsKKworICAgICAgICB2b2lkIHN0b3JlTGFzdEFjdGl2ZVBhbmVsKGluIFN0
cmluZyBwYW5lbE5hbWUpOworCisgICAgICAgIHZvaWQgc2F2ZUFwcGxpY2F0aW9uU2V0dGluZ3Mo
aW4gU3RyaW5nIHNldHRpbmdzKTsKKyAgICAgICAgdm9pZCBzYXZlU2Vzc2lvblNldHRpbmdzKGlu
IFN0cmluZyBzZXR0aW5ncyk7CisKKyAgICAgICAgdm9pZCBlbmFibGVTZWFyY2hpbmdGb3JOb2Rl
KCk7CisgICAgICAgIHZvaWQgZGlzYWJsZVNlYXJjaGluZ0Zvck5vZGUoKTsKKworICAgICAgICB2
b2lkIGVuYWJsZU1vbml0b3JpbmdYSFIoKTsKKyAgICAgICAgdm9pZCBkaXNhYmxlTW9uaXRvcmlu
Z1hIUigpOworCisgICAgICAgIHZvaWQgZW5hYmxlUmVzb3VyY2VUcmFja2luZyhpbiBib29sZWFu
IGFsd2F5cyk7CisgICAgICAgIHZvaWQgZGlzYWJsZVJlc291cmNlVHJhY2tpbmcoaW4gYm9vbGVh
biBhbHdheXMpOworICAgICAgICB2b2lkIGdldFJlc291cmNlQ29udGVudChpbiB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIpOworICAgICAgICB2b2lkIHJlbG9hZFBhZ2UoKTsKKworICAgICAgICB2
b2lkIHN0YXJ0VGltZWxpbmVQcm9maWxlcigpOworICAgICAgICB2b2lkIHN0b3BUaW1lbGluZVBy
b2ZpbGVyKCk7CisKKyNpZiBkZWZpbmVkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBF
TkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUgorICAgICAgICB2b2lkIGVuYWJsZURlYnVnZ2VyKGlu
IGJvb2xlYW4gYWx3YXlzKTsKKyAgICAgICAgdm9pZCBkaXNhYmxlRGVidWdnZXIoaW4gYm9vbGVh
biBhbHdheXMpOworCisgICAgICAgIHZvaWQgc2V0QnJlYWtwb2ludChpbiBTdHJpbmcgc291cmNl
SUQsIGluIHVuc2lnbmVkIGxvbmcgbGluZU51bWJlciwgaW4gYm9vbGVhbiBlbmFibGVkLCBpbiBT
dHJpbmcgY29uZGl0aW9uKTsKKyAgICAgICAgdm9pZCByZW1vdmVCcmVha3BvaW50KGluIFN0cmlu
ZyBzb3VyY2VJRCwgaW4gdW5zaWduZWQgbG9uZyBsaW5lTnVtYmVyKTsKKyAgICAgICAgdm9pZCBh
Y3RpdmF0ZUJyZWFrcG9pbnRzKCk7CisgICAgICAgIHZvaWQgZGVhY3RpdmF0ZUJyZWFrcG9pbnRz
KCk7CisKKyAgICAgICAgdm9pZCBwYXVzZUluRGVidWdnZXIoKTsKKyAgICAgICAgdm9pZCByZXN1
bWVEZWJ1Z2dlcigpOworCisgICAgICAgIHZvaWQgc3RlcE92ZXJTdGF0ZW1lbnRJbkRlYnVnZ2Vy
KCk7CisgICAgICAgIHZvaWQgc3RlcEludG9TdGF0ZW1lbnRJbkRlYnVnZ2VyKCk7CisgICAgICAg
IHZvaWQgc3RlcE91dE9mRnVuY3Rpb25JbkRlYnVnZ2VyKCk7CisKKyAgICAgICAgdm9pZCBzZXRQ
YXVzZU9uRXhjZXB0aW9uc1N0YXRlKGluIGxvbmcgcGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSk7CisK
KyAgICAgICAgdm9pZCBlZGl0U2NyaXB0U291cmNlKGluIFN0cmluZyBzb3VyY2VJRCwgaW4gU3Ry
aW5nIG5ld0NvbnRlbnQpOworICAgICAgICB2b2lkIGdldFNjcmlwdFNvdXJjZShpbiBTdHJpbmcg
c291cmNlSUQpOworCisgICAgICAgIHZvaWQgZW5hYmxlUHJvZmlsZXIoaW4gYm9vbGVhbiBhbHdh
eXMpOworICAgICAgICB2b2lkIGRpc2FibGVQcm9maWxlcihpbiBib29sZWFuIGFsd2F5cyk7CisK
KyAgICAgICAgdm9pZCBzdGFydFByb2ZpbGluZygpOworICAgICAgICB2b2lkIHN0b3BQcm9maWxp
bmcoKTsKKworICAgICAgICB2b2lkIGdldFByb2ZpbGVIZWFkZXJzKCk7CisgICAgICAgIHZvaWQg
Z2V0UHJvZmlsZShpbiB1bnNpZ25lZCBsb25nIHVpZCk7CisKKyAgICAgICAgdm9pZCByZW1vdmVQ
cm9maWxlKGluIHVuc2lnbmVkIGxvbmcgdWlkKTsKKyAgICAgICAgdm9pZCBjbGVhclByb2ZpbGVz
KCk7CisKKyAgICAgICAgdm9pZCB0YWtlSGVhcFNuYXBzaG90KCk7CisjZW5kaWYKKyAgICAgICAg
dm9pZCBzZXRJbmplY3RlZFNjcmlwdFNvdXJjZShpbiBTdHJpbmcgc2NyaXB0U291cmNlKTsKKyAg
ICAgICAgdm9pZCBkaXNwYXRjaE9uSW5qZWN0ZWRTY3JpcHQoaW4gbG9uZyBpbmplY3RlZFNjcmlw
dElkLCBpbiBTdHJpbmcgbWV0aG9kTmFtZSwgaW4gU3RyaW5nIGFyZ3VtZW50cywgaW4gYm9vbGVh
biBhc3luYyk7CisKKyAgICAgICAgdm9pZCBhZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKGluIFN0
cmluZyBzY3JpcHRTb3VyY2UpOworICAgICAgICB2b2lkIHJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1
YXRlT25Mb2FkKCk7CisKKyAgICAgICAgW3NraXBTdWNjZXNzRmxhZ10gdm9pZCBnZXRDaGlsZE5v
ZGVzKGluIGxvbmcgbm9kZUlkKTsKKyAgICAgICAgW2N1c3RvclJlc3BvbnNlPWRpZEFwcGx5RG9t
Q2hhbmdlXSB2b2lkIHNldEF0dHJpYnV0ZShpbiBsb25nIGVsZW1lbnRJZCwgaW4gU3RyaW5nIG5h
bWUsIGluIFN0cmluZyB2YWx1ZSk7CisgICAgICAgIFtjdXN0b21SZXNwb25zZT1kaWRBcHBseURv
bUNoYW5nZV0gdm9pZCByZW1vdmVBdHRyaWJ1dGUoaW4gbG9uZyBlbGVtZW50SWQsIGluIFN0cmlu
ZyBuYW1lKTsKKyAgICAgICAgdm9pZCBzZXRUZXh0Tm9kZVZhbHVlKGluIGxvbmcgbm9kZUlkLCBp
biBTdHJpbmcgdmFsdWUpOworICAgICAgICBbc2tpcFN1Y2Nlc3NGbGFnXSB2b2lkIGdldEV2ZW50
TGlzdGVuZXJzRm9yTm9kZShpbiBsb25nIG5vZGVJZCwgb3V0IGxvbmcgbm9kZUlkLCBvdXQgQXJy
YXkgbGlzdGVuZXJzQXJyYXkpOworICAgICAgICB2b2lkIGNvcHlOb2RlKGluIGxvbmcgbm9kZUlk
KTsKKyAgICAgICAgW3NraXBTdWNjZXNzRmxhZ10gdm9pZCByZW1vdmVOb2RlKGluIGxvbmcgbm9k
ZUlkLCBvdXQgbG9uZyBub2RlSWQpOworICAgICAgICBbc2tpcFN1Y2Nlc3NGbGFnXSB2b2lkIGNo
YW5nZVRhZ05hbWUoaW4gbG9uZyBub2RlSWQsIGluIFN0cmluZyBuZXdUYWdOYW1lLCBvdXQgbG9u
ZyBub2RlSWQpOworICAgICAgICBbc2tpcFN1Y2Nlc3NGbGFnXSB2b2lkIGdldE91dGVySFRNTChp
biBsb25nIG5vZGVJZCwgb3V0IFN0cmluZyBvdXRlckhUTUwpOworICAgICAgICBbc2tpcFN1Y2Nl
c3NGbGFnXSB2b2lkIHNldE91dGVySFRNTChpbiBsb25nIG5vZGVJZCwgaW4gU3RyaW5nIG91dGVy
SFRNTCwgb3V0IGxvbmcgbm9kZUlkKTsKKyAgICAgICAgdm9pZCBhZGRJbnNwZWN0ZWROb2RlKGlu
IGxvbmcgbm9kZUlkKTsKKyAgICAgICAgdm9pZCBwZXJmb3JtU2VhcmNoKGluIFN0cmluZyBxdWVy
eSwgaW4gYm9vbGVhbiBydW5TeW5jaHJvbm91c2x5KTsKKyAgICAgICAgdm9pZCBzZWFyY2hDYW5j
ZWxlZCgpOworICAgICAgICB2b2lkIHB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChpbiBTdHJpbmcg
cGF0aCk7CisKKyAgICAgICAgdm9pZCBjbGVhckNvbnNvbGVNZXNzYWdlcygpOworCisgICAgICAg
IHZvaWQgaGlnaGxpZ2h0RE9NTm9kZShpbiBsb25nIG5vZGVJZCk7CisgICAgICAgIHZvaWQgaGlk
ZURPTU5vZGVIaWdobGlnaHQoKTsKKworICAgICAgICBbc2tpcFN1Y2Nlc3NGbGFnXSB2b2lkIGdl
dFN0eWxlcyhpbiBsb25nIG5vZGVJZCwgaW4gYm9vbGVhbiBhdXRoT25seSwgb3V0IFZhbHVlIHN0
eWxlcyk7CisgICAgICAgIFtza2lwU3VjY2Vzc0ZsYWddIHZvaWQgZ2V0QWxsU3R5bGVzKG91dCBB
cnJheSBzdHlsZXMpOworICAgICAgICBbc2tpcFN1Y2Nlc3NGbGFnXSB2b2lkIGdldElubGluZVN0
eWxlKGluIGxvbmcgbm9kZUlkLCBvdXQgVmFsdWUgc3R5bGUpOworICAgICAgICBbc2tpcFN1Y2Nl
c3NGbGFnXSB2b2lkIGdldENvbXB1dGVkU3R5bGUoaW4gbG9uZyBub2RlSWQsIG91dCBWYWx1ZSBz
dHlsZSk7CisgICAgICAgIFtza2lwU3VjY2Vzc0ZsYWddIHZvaWQgZ2V0U3R5bGVTaGVldChpbiBs
b25nIHN0eWxlU2hlZXRJZCwgb3V0IFZhbHVlIHN0eWxlU2hlZXQpOworICAgICAgICB2b2lkIGdl
dFJ1bGVSYW5nZXNGb3JTdHlsZVNoZWV0SWQoaW4gbG9uZyBzdHlsZVNoZWV0SWQpOworICAgICAg
ICB2b2lkIGFwcGx5U3R5bGVUZXh0KGluIGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5nIHN0eWxlVGV4
dCwgaW4gU3RyaW5nIHByb3BlcnR5TmFtZSwgb3V0IFZhbHVlIHN0eWxlLCBvdXQgQXJyYXkgY2hh
bmdlZFByb3BlcnRpZXMpOworICAgICAgICB2b2lkIHNldFN0eWxlVGV4dChpbiBsb25nIHN0eWxl
SWQsIGluIFN0cmluZyBzdHlsZVRleHQpOworICAgICAgICB2b2lkIHNldFN0eWxlUHJvcGVydHko
aW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcgbmFtZSwgaW4gU3RyaW5nIHZhbHVlKTsKKyAgICAg
ICAgW3NraXBTdWNjZXNzRmxhZ10gdm9pZCB0b2dnbGVTdHlsZUVuYWJsZWQoaW4gbG9uZyBzdHls
ZUlkLCBpbiBTdHJpbmcgcHJvcGVydHlOYW1lLCBpbiBib29sZWFuIGRpc2FibGVkLCBvdXQgVmFs
dWUgc3R5bGUpOworICAgICAgICBbc2tpcFN1Y2Nlc3NGbGFnXSB2b2lkIHNldFJ1bGVTZWxlY3Rv
cihpbiBsb25nIHJ1bGVJZCwgaW4gU3RyaW5nIHNlbGVjdG9yLCBpbiBsb25nIHNlbGVjdGVkTm9k
ZUlkLCBvdXQgVmFsdWUgcnVsZSwgb3V0IGJvb2xlYW4gc2VsZWN0b3JBZmZlY3RzTm9kZSk7Cisg
ICAgICAgIFtza2lwU3VjY2Vzc0ZsYWddIHZvaWQgYWRkUnVsZShpbiBTdHJpbmcgc2VsZWN0b3Is
IGluIGxvbmcgc2VsZWN0ZWROb2RlSWQsIG91dCBWYWx1ZSBydWxlLCBvdXQgYm9vbGVhbiBzZWxl
Y3RvckFmZmVjdHNOb2RlKTsKKworICAgICAgICB2b2lkIGdldENvb2tpZXMoKTsKKyAgICAgICAg
dm9pZCBkZWxldGVDb29raWUoaW4gU3RyaW5nIGNvb2tpZU5hbWUsIGluIFN0cmluZyBkb21haW4p
OworCisjaWYgZGVmaW5lZChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgICAg
ICB2b2lkIGdldEFwcGxpY2F0aW9uQ2FjaGVzKCk7CisjZW5kaWYKKworICAgICAgICB2b2lkIHJl
bGVhc2VXcmFwcGVyT2JqZWN0R3JvdXAoaW4gbG9uZyBpbmplY3RlZFNjcmlwdElkLCBpbiBTdHJp
bmcgb2JqZWN0R3JvdXApOworICAgICAgICB2b2lkIGRpZEV2YWx1YXRlRm9yVGVzdEluRnJvbnRl
bmQoaW4gU3RyaW5nIGpzb25SZXN1bHQpOworCisjaWYgZGVmaW5lZChFTkFCTEVfREFUQUJBU0Up
ICYmIEVOQUJMRV9EQVRBQkFTRQorICAgICAgICB2b2lkIGdldERhdGFiYXNlVGFibGVOYW1lcyhp
biBsb25nIGRhdGFiYXNlSWQpOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKEVOQUJMRV9ET01fU1RP
UkFHRSkgJiYgRU5BQkxFX0RPTV9TVE9SQUdFCisgICAgICAgIHZvaWQgZ2V0RE9NU3RvcmFnZUVu
dHJpZXMoaW4gbG9uZyBzdG9yYWdlSWQpOworICAgICAgICB2b2lkIHNldERPTVN0b3JhZ2VJdGVt
KGluIGxvbmcgc3RvcmFnZUlkLCBpbiBTdHJpbmcga2V5LCBpbiBTdHJpbmcgdmFsdWUpOworICAg
ICAgICB2b2lkIHJlbW92ZURPTVN0b3JhZ2VJdGVtKGluIGxvbmcgc3RvcmFnZUlkLCBpbiBTdHJp
bmcga2V5KTsKKyNlbmRpZgorICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NT
dG9yZS5jcHAKaW5kZXggNDEzZmI4Yi4uOWRmZmVmOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNTU1N0b3JlLmNwcApAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckNv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmgiCisj
aW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0
TGlzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05NSwxMyArOTUsMTMgQEAgQ1NTU3R5
bGVTaGVldCogSW5zcGVjdG9yQ1NTU3RvcmU6Omluc3BlY3RvclN0eWxlU2hlZXQoRG9jdW1lbnQq
IG93bmVyRG9jdW1lbnQsIGIKICAgICBpZiAoIWVjKQogICAgICAgICBvd25lckRvY3VtZW50LT5o
ZWFkKCktPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCwgZWMpOwogICAgIGlmIChlYykgewotICAg
ICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmluc3BlY3RvckZyb250ZW5kMigpLT5kaWRBZGRS
dWxlKGNhbGxJZCwgSW5zcGVjdG9yVmFsdWU6Om51bGwoKSwgZmFsc2UpOworICAgICAgICBtX2lu
c3BlY3RvckNvbnRyb2xsZXItPnJlbW90ZUluc3BlY3RvckZyb250ZW5kKCktPmRpZEFkZFJ1bGUo
Y2FsbElkLCBJbnNwZWN0b3JWYWx1ZTo6bnVsbCgpLCBmYWxzZSk7CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KICAgICBTdHlsZVNoZWV0TGlzdCogc3R5bGVTaGVldHMgPSBvd25lckRvY3VtZW50
LT5zdHlsZVNoZWV0cygpOwogICAgIFN0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBzdHlsZVNoZWV0
cy0+aXRlbShzdHlsZVNoZWV0cy0+bGVuZ3RoKCkgLSAxKTsKICAgICBpZiAoIXN0eWxlU2hlZXQt
PmlzQ1NTU3R5bGVTaGVldCgpKSB7Ci0gICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+aW5z
cGVjdG9yRnJvbnRlbmQyKCktPmRpZEFkZFJ1bGUoY2FsbElkLCBJbnNwZWN0b3JWYWx1ZTo6bnVs
bCgpLCBmYWxzZSk7CisgICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+cmVtb3RlSW5zcGVj
dG9yRnJvbnRlbmQoKS0+ZGlkQWRkUnVsZShjYWxsSWQsIEluc3BlY3RvclZhbHVlOjpudWxsKCks
IGZhbHNlKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIENTU1N0eWxlU2hlZXQqIGlu
c3BlY3RvclN0eWxlU2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5bGVTaGVl
dCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGVkMjU2
OTYuLjRmZWYzMDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CkBAIC02OCw3ICs2OCw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlByb2dyZXNz
VHJhY2tlci5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9y
RnJvbnRlbmQyLmgiCisjaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNs
dWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCkBAIC00ODYsMTAgKzQ4NiwxMCBAQCB2b2lkIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZChjb25zdCBTY3JpcHRPYmplY3QmIHdlYklu
c3BlY3RvcikKICAgICBtX29wZW5pbmdGcm9udGVuZCA9IGZhbHNlOwogICAgIHJlbGVhc2VGcm9u
dGVuZExpZmV0aW1lQWdlbnRzKCk7CiAgICAgbV9mcm9udGVuZCA9IG5ldyBJbnNwZWN0b3JGcm9u
dGVuZCh3ZWJJbnNwZWN0b3IsIG1fY2xpZW50KTsKLSAgICBtX2Zyb250ZW5kMiA9IG5ldyBJbnNw
ZWN0b3JGcm9udGVuZDIobV9jbGllbnQpOwotICAgIG1fZG9tQWdlbnQgPSBJbnNwZWN0b3JET01B
Z2VudDo6Y3JlYXRlKG1fY3NzU3RvcmUuZ2V0KCksIG1fZnJvbnRlbmQyLmdldCgpKTsKKyAgICBt
X3JlbW90ZUZyb250ZW5kID0gbmV3IFJlbW90ZUluc3BlY3RvckZyb250ZW5kKG1fY2xpZW50KTsK
KyAgICBtX2RvbUFnZW50ID0gSW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0ZShtX2Nzc1N0b3JlLmdl
dCgpLCBtX3JlbW90ZUZyb250ZW5kLmdldCgpKTsKICAgICBpZiAobV90aW1lbGluZUFnZW50KQot
ICAgICAgICBtX3RpbWVsaW5lQWdlbnQtPnJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChtX2Zyb250
ZW5kMi5nZXQoKSk7CisgICAgICAgIG1fdGltZWxpbmVBZ2VudC0+cmVzZXRGcm9udGVuZFByb3h5
T2JqZWN0KG1fcmVtb3RlRnJvbnRlbmQuZ2V0KCkpOwogCiAgICAgLy8gSW5pdGlhbGl6ZSBXZWIg
SW5zcGVjdG9yIHRpdGxlLgogICAgIG1fZnJvbnRlbmQtPmluc3BlY3RlZFVSTENoYW5nZWQobV9p
bnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPnVybCgpLnN0cmluZygpKTsKQEAg
LTExNjMsNyArMTE2Myw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRUaW1lbGlu
ZVByb2ZpbGVyKCkKICAgICBpZiAobV90aW1lbGluZUFnZW50KQogICAgICAgICByZXR1cm47CiAK
LSAgICBtX3RpbWVsaW5lQWdlbnQgPSBuZXcgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChtX2Zyb250
ZW5kMi5nZXQoKSk7CisgICAgbV90aW1lbGluZUFnZW50ID0gbmV3IEluc3BlY3RvclRpbWVsaW5l
QWdlbnQobV9yZW1vdGVGcm9udGVuZC5nZXQoKSk7CiAgICAgaWYgKG1fZnJvbnRlbmQpCiAgICAg
ICAgIG1fZnJvbnRlbmQtPnRpbWVsaW5lUHJvZmlsZXJXYXNTdGFydGVkKCk7CiAgICAgbV9jbGll
bnQtPnRpbWVsaW5lUHJvZmlsZXJXYXNTdGFydGVkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmgKaW5kZXggMWY0MTZhMC4uZWUwYzlkNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNjksNyArNjksNiBAQCBjbGFzcyBJbnNwZWN0b3JD
U1NTdG9yZTsKIGNsYXNzIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTsKIGNsYXNzIEluc3Bl
Y3RvckRhdGFiYXNlUmVzb3VyY2U7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKLWNsYXNzIElu
c3BlY3RvckZyb250ZW5kMjsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50OwogY2xhc3Mg
SW5zcGVjdG9yUmVzb3VyY2U7CiBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OwpAQCAtNzgs
NiArNzcsNyBAQCBjbGFzcyBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZTsKIGNsYXNzIEtVUkw7CiBj
bGFzcyBOb2RlOwogY2xhc3MgUGFnZTsKK2NsYXNzIFJlbW90ZUluc3BlY3RvckZyb250ZW5kOwog
Y2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNsYXNzIFJl
c291cmNlRXJyb3I7CkBAIC0yMjAsNyArMjIwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IFJlc291
cmNlc01hcCYgcmVzb3VyY2VzKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZXM7IH0KICAgICBJ
bnNwZWN0b3JSZXNvdXJjZSogcmVzb3VyY2VGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmwpOwogICAg
IEluc3BlY3RvckZyb250ZW5kKiBpbnNwZWN0b3JGcm9udGVuZCgpIHsgcmV0dXJuIG1fZnJvbnRl
bmQuZ2V0KCk7IH0KLSAgICBJbnNwZWN0b3JGcm9udGVuZDIqIGluc3BlY3RvckZyb250ZW5kMigp
IHsgcmV0dXJuIG1fZnJvbnRlbmQyLmdldCgpOyB9CisgICAgUmVtb3RlSW5zcGVjdG9yRnJvbnRl
bmQqIHJlbW90ZUluc3BlY3RvckZyb250ZW5kKCkgeyByZXR1cm4gbV9yZW1vdGVGcm9udGVuZC5n
ZXQoKTsgfQogCiAgICAgdm9pZCBkcmF3Tm9kZUhpZ2hsaWdodChHcmFwaGljc0NvbnRleHQmKSBj
b25zdDsKIApAQCAtMzQ1LDcgKzM0NSw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50PiBtX2luc3BlY3RvckZyb250ZW5kQ2xpZW50OwogICAgIGJvb2wgbV9v
cGVuaW5nRnJvbnRlbmQ7CiAgICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kPiBtX2Zyb250ZW5k
OwotICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZDI+IG1fZnJvbnRlbmQyOworICAgIE93blB0
cjxSZW1vdGVJbnNwZWN0b3JGcm9udGVuZD4gbV9yZW1vdGVGcm9udGVuZDsKICAgICBSZWZQdHI8
SW5zcGVjdG9yRE9NQWdlbnQ+IG1fZG9tQWdlbnQ7CiAgICAgT3duUHRyPEluc3BlY3RvckNTU1N0
b3JlPiBtX2Nzc1N0b3JlOwogICAgIE93blB0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBtX3Rp
bWVsaW5lQWdlbnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXgg
NDZiYzkzOC4uNDk0NmZhZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNw
cApAQCAtNTksNyArNTksNyBAQAogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJOb2RlTGlz
dC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW5zcGVj
dG9yRnJvbnRlbmQyLmgiCisjaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNp
bmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgi
CiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgpAQCAtMTk1LDcgKzE5NSw3IEBAIHB1
YmxpYzoKIAogfQogCi1JbnNwZWN0b3JET01BZ2VudDo6SW5zcGVjdG9yRE9NQWdlbnQoSW5zcGVj
dG9yQ1NTU3RvcmUqIGNzc1N0b3JlLCBJbnNwZWN0b3JGcm9udGVuZDIqIGZyb250ZW5kKQorSW5z
cGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFnZW50KEluc3BlY3RvckNTU1N0b3JlKiBjc3NT
dG9yZSwgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogICAgIDogRXZlbnRMaXN0
ZW5lcihJbnNwZWN0b3JET01BZ2VudFR5cGUpCiAgICAgLCBtX2Nzc1N0b3JlKGNzc1N0b3JlKQog
ICAgICwgbV9mcm9udGVuZChmcm9udGVuZCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5oCmluZGV4IGMwMGMxMzMuLjdjZDVhMDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuaApAQCAtNTYsNyArNTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3Mg
Q1NTU3R5bGVTaGVldDsKICAgICBjbGFzcyBFbGVtZW50OwogICAgIGNsYXNzIEV2ZW50OwotICAg
IGNsYXNzIEluc3BlY3RvckZyb250ZW5kMjsKKyAgICBjbGFzcyBSZW1vdGVJbnNwZWN0b3JGcm9u
dGVuZDsKICAgICBjbGFzcyBNYXRjaEpvYjsKICAgICBjbGFzcyBOYW1lTm9kZU1hcDsKICAgICBj
bGFzcyBOb2RlOwpAQCAtNzcsNyArNzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBj
bGFzcyBJbnNwZWN0b3JET01BZ2VudCA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKICAgICBwdWJs
aWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3RvckRPTUFnZW50PiBjcmVhdGUo
SW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0b3JlLCBJbnNwZWN0b3JGcm9udGVuZDIqIGZyb250ZW5k
KQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JET01BZ2VudD4gY3JlYXRlKElu
c3BlY3RvckNTU1N0b3JlKiBjc3NTdG9yZSwgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250
ZW5kKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluc3BlY3Rv
ckRPTUFnZW50KGNzc1N0b3JlLCBmcm9udGVuZCkpOwogICAgICAgICB9CkBAIC04OSw3ICs4OSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAgICA6IDA7CiAgICAgICAgIH0K
IAotICAgICAgICBJbnNwZWN0b3JET01BZ2VudChJbnNwZWN0b3JDU1NTdG9yZSogY3NzU3RvcmUs
IEluc3BlY3RvckZyb250ZW5kMiogZnJvbnRlbmQpOworICAgICAgICBJbnNwZWN0b3JET01BZ2Vu
dChJbnNwZWN0b3JDU1NTdG9yZSogY3NzU3RvcmUsIFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBm
cm9udGVuZCk7CiAgICAgICAgIH5JbnNwZWN0b3JET01BZ2VudCgpOwogCiAgICAgICAgIHZvaWQg
cmVzZXQoKTsKQEAgLTE5Miw3ICsxOTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZvaWQgZGlzY2FyZEJpbmRpbmdzKCk7CiAKICAgICAgICAgSW5zcGVjdG9yQ1NTU3RvcmUqIG1f
Y3NzU3RvcmU7Ci0gICAgICAgIEluc3BlY3RvckZyb250ZW5kMiogbV9mcm9udGVuZDsKKyAgICAg
ICAgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CiAgICAgICAgIE5vZGVUb0lk
TWFwIG1fZG9jdW1lbnROb2RlVG9JZE1hcDsKICAgICAgICAgLy8gT3ducyBub2RlIG1hcHBpbmdz
IGZvciBkYW5nbGluZyBub2Rlcy4KICAgICAgICAgVmVjdG9yPE5vZGVUb0lkTWFwKj4gbV9kYW5n
bGluZ05vZGVUb0lkTWFwczsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kMi5pZGwgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaWRs
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTZkNzE1Li4wMDAwMDAwCi0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGwKKysrIC9kZXYvbnVsbApAQCAt
MSwzOSArMCwwIEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMDkgVGhlIENocm9taXVtIEF1dGhvcnMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0vLyBmb3VuZCBpbiB0aGUg
TElDRU5TRSBmaWxlLgotCi1tb2R1bGUgV2ViQ29yZSB7Ci0KLSAgICBpbnRlcmZhY2UgW0NvbmRp
dGlvbmFsPUlOU1BFQ1RPUiwgSlNdIEluc3BlY3RvckZyb250ZW5kMiB7Ci0gICAgICAgIC8vIFRp
bWVsaW5lQWdlbnQKLSAgICAgICAgdm9pZCBhZGRSZWNvcmRUb1RpbWVsaW5lKGluIE9iamVjdCBy
ZWNvcmQpOwotCi0gICAgICAgIC8vIERPTUFnZW50Ci0gICAgICAgIHZvaWQgYWRkTm9kZXNUb1Nl
YXJjaFJlc3VsdChpbiBBcnJheSBub2RlSWRzKTsKLSAgICAgICAgdm9pZCBhdHRyaWJ1dGVzVXBk
YXRlZChpbiBsb25nIGlkLCBpbiBBcnJheSBhdHRyaWJ1dGVzKTsKLSAgICAgICAgdm9pZCBjaGls
ZE5vZGVDb3VudFVwZGF0ZWQoaW4gbG9uZyBpZCwgaW4gaW50IG5ld1ZhbHVlKTsKLSAgICAgICAg
dm9pZCBjaGlsZE5vZGVJbnNlcnRlZChpbiBsb25nIHBhcmVudElkLCBpbiBsb25nIHByZXZJZCwg
aW4gT2JqZWN0IG5vZGUpOwotICAgICAgICB2b2lkIGNoaWxkTm9kZVJlbW92ZWQoaW4gbG9uZyBw
YXJlbnRJZCwgaW4gbG9uZyBpZCk7Ci0gICAgICAgIHZvaWQgZGlkQWRkUnVsZShpbiBsb25nIGNh
bGxJZCwgaW4gVmFsdWUgcnVsZSwgaW4gYm9vbGVhbiBzZWxlY3RvckFmZmVjdHNOb2RlKTsKLSAg
ICAgICAgdm9pZCBkaWRBcHBseURvbUNoYW5nZShpbiBsb25nIGNhbGxJZCwgaW4gYm9vbGVhbiBz
dWNjZXNzKTsKLSAgICAgICAgdm9pZCBkaWRBcHBseVN0eWxlVGV4dChpbiBsb25nIGNhbGxJZCwg
aW4gYm9vbGVhbiBzdWNjZXNzLCBpbiBWYWx1ZSBzdHlsZSwgaW4gQXJyYXkgY2hhbmdlZFByb3Bl
cnRpZXMpOwotICAgICAgICB2b2lkIGRpZENoYW5nZVRhZ05hbWUoaW4gbG9uZyBjYWxsSWQsIGlu
IGxvbmcgbm9kZUlkKTsKLSAgICAgICAgdm9pZCBkaWRHZXRBbGxTdHlsZXMoaW4gbG9uZyBjYWxs
SWQsIGluIEFycmF5IHN0eWxlcyk7Ci0gICAgICAgIHZvaWQgZGlkR2V0Q2hpbGROb2RlcyhpbiBs
b25nIGNhbGxJZCk7Ci0gICAgICAgIHZvaWQgZGlkR2V0Q29tcHV0ZWRTdHlsZShpbiBsb25nIGNh
bGxJZCwgaW4gVmFsdWUgc3R5bGUpOwotICAgICAgICB2b2lkIGRpZEdldEV2ZW50TGlzdGVuZXJz
Rm9yTm9kZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQsIGluIEFycmF5IGxpc3RlbmVy
c0FycmF5KTsKLSAgICAgICAgdm9pZCBkaWRHZXRJbmxpbmVTdHlsZShpbiBsb25nIGNhbGxJZCwg
aW4gVmFsdWUgc3R5bGUpOwotICAgICAgICB2b2lkIGRpZEdldE91dGVySFRNTChpbiBsb25nIGNh
bGxJZCwgaW4gU3RyaW5nIG91dGVySFRNTCk7Ci0gICAgICAgIHZvaWQgZGlkR2V0U3R5bGVTaGVl
dChpbiBsb25nIGNhbGxJZCwgaW4gVmFsdWUgc3R5bGVTaGVldCk7Ci0gICAgICAgIHZvaWQgZGlk
R2V0U3R5bGVzKGluIGxvbmcgY2FsbElkLCBpbiBWYWx1ZSBzdHlsZXMpOwotICAgICAgICB2b2lk
IGRpZFJlbW92ZU5vZGUoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkKTsKLSAgICAgICAg
dm9pZCBkaWRTZXRPdXRlckhUTUwoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkKTsKLSAg
ICAgICAgdm9pZCBkaWRTZXRSdWxlU2VsZWN0b3IoaW4gbG9uZyBjYWxsSWQsIGluIFZhbHVlIHJ1
bGUsIGluIGJvb2xlYW4gc2VsZWN0b3JBZmZlY3RzTm9kZSk7Ci0gICAgICAgIHZvaWQgZGlkU2V0
U3R5bGVQcm9wZXJ0eShpbiBsb25nIGNhbGxJZCwgaW4gYm9vbGVhbiBzdWNjZXNzKTsKLSAgICAg
ICAgdm9pZCBkaWRTZXRTdHlsZVRleHQoaW4gbG9uZyBjYWxsSWQsIGluIGJvb2xlYW4gc3VjY2Vz
cyk7Ci0gICAgICAgIHZvaWQgZGlkVG9nZ2xlU3R5bGVFbmFibGVkKGluIGxvbmcgY2FsbElkLCBp
biBWYWx1ZSBzdHlsZSk7Ci0gICAgICAgIHZvaWQgc2V0Q2hpbGROb2RlcyhpbiBsb25nIHBhcmVu
dElkLCBpbiBBcnJheSBub2Rlcyk7Ci0gICAgICAgIHZvaWQgc2V0RGV0YWNoZWRSb290KGluIE9i
amVjdCByb290KTsKLSAgICAgICAgdm9pZCBzZXREb2N1bWVudChpbiBWYWx1ZSByb290KTsKLSAg
ICB9OwotfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApp
bmRleCAzMTUxM2QxLi5iNWNmZjY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmNwcApAQCAtMzUsNyArMzUsNyBAQAogCiAjaW5jbHVkZSAiRXZlbnQuaCIK
ICNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQy
LmgiCisjaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAi
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmgiCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogaW50IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNfaW5zdGFuY2VDb3VudCA9IDA7
CiAKLUluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zcGVj
dG9yRnJvbnRlbmQyKiBmcm9udGVuZCkKK0luc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQoUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogICAgIDog
bV9mcm9udGVuZChmcm9udGVuZCkKIHsKICAgICArK3NfaW5zdGFuY2VDb3VudDsKQEAgLTI3OSw3
ICsyNzksNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnJlc2V0KCkKICAgICBtX3Jl
Y29yZFN0YWNrLmNsZWFyKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cmVz
ZXRGcm9udGVuZFByb3h5T2JqZWN0KEluc3BlY3RvckZyb250ZW5kMiogZnJvbnRlbmQpCit2b2lk
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChSZW1vdGVJ
bnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiB7CiAgICAgQVNTRVJUKGZyb250ZW5kKTsKICAg
ICByZXNldCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmlu
ZGV4IDlhNWNiOTguLjE2ZDdiODMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50LmgKQEAgLTQyLDcgKzQyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgRXZlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JGcm9udGVuZDI7CitjbGFzcyBSZW1vdGVJbnNwZWN0
b3JGcm9udGVuZDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFz
cyBSZXNvdXJjZVJlc3BvbnNlOwpAQCAtNzQsMTEgKzc0LDExIEBAIGVudW0gVGltZWxpbmVSZWNv
cmRUeXBlIHsKIAogY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCA6IFNjcmlwdEdDRXZlbnRM
aXN0ZW5lciwgcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBJbnNwZWN0b3JUaW1l
bGluZUFnZW50KEluc3BlY3RvckZyb250ZW5kMiogZnJvbnRlbmQpOworICAgIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQoUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKTsKICAgICB+SW5z
cGVjdG9yVGltZWxpbmVBZ2VudCgpOwogCiAgICAgdm9pZCByZXNldCgpOwotICAgIHZvaWQgcmVz
ZXRGcm9udGVuZFByb3h5T2JqZWN0KEluc3BlY3RvckZyb250ZW5kMiopOworICAgIHZvaWQgcmVz
ZXRGcm9udGVuZFByb3h5T2JqZWN0KFJlbW90ZUluc3BlY3RvckZyb250ZW5kKik7CiAKICAgICAv
LyBNZXRob2RzIGNhbGxlZCBmcm9tIFdlYkNvcmUuCiAgICAgdm9pZCB3aWxsQ2FsbEZ1bmN0aW9u
KGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpOwpAQCAtMTUyLDcgKzE1
Miw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwogCi0gICAg
SW5zcGVjdG9yRnJvbnRlbmQyKiBtX2Zyb250ZW5kOworICAgIFJlbW90ZUluc3BlY3RvckZyb250
ZW5kKiBtX2Zyb250ZW5kOwogCiAgICAgVmVjdG9yPFRpbWVsaW5lUmVjb3JkRW50cnk+IG1fcmVj
b3JkU3RhY2s7CiAgICAgc3RhdGljIGludCBzX2luc3RhbmNlQ291bnQ7CmRpZmYgLS1naXQgYS9j
bWFrZS9XZWJLaXRHZW5lcmF0b3JzLmNtYWtlIGIvY21ha2UvV2ViS2l0R2VuZXJhdG9ycy5jbWFr
ZQppbmRleCAzMDAzNDc2Li5hMTU4NjMzIDEwMDY0NAotLS0gYS9jbWFrZS9XZWJLaXRHZW5lcmF0
b3JzLmNtYWtlCisrKyBiL2NtYWtlL1dlYktpdEdlbmVyYXRvcnMuY21ha2UKQEAgLTEzOCwxMSAr
MTM4LDExIEBAIE1BQ1JPKEdFTkVSQVRFX0lOU1BFQ1RPUl9GUk9NX0lETCBfc291cmNlKQogCiAg
IEdFVF9GSUxFTkFNRV9DT01QT05FTlQoX25hbWUgJHtfc291cmNlfSBOQU1FX1dFKQogICBBRERf
Q1VTVE9NX0NPTU1BTkQoCi0gICAgT1VUUFVUICAke0RFUklWRURfU09VUkNFU19ESVJ9L1JlbW90
ZSR7X25hbWV9LmNwcCAke0RFUklWRURfU09VUkNFU19ESVJ9L1JlbW90ZSR7X25hbWV9LmgKKyAg
ICBPVVRQVVQgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vUmVtb3RlJHtfbmFtZX1Gcm9udGVuZC5j
cHAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9SZW1vdGUke19uYW1lfUZyb250ZW5kLmgKICAgICBE
RVBFTkRTICR7QklORElOR19DT0RFX0dFTkVSQVRPUn0gJHtTQ1JJUFRTX0JJTkRJTkdTfSAke1dF
QkNPUkVfRElSfS8ke19zb3VyY2V9CiAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gLUkk
e1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzIC1JJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9y
ICR7QklORElOR19DT0RFX0dFTkVSQVRPUn0gJHtJRExfSU5DTFVERVN9IC0tb3V0cHV0RGlyICIk
e0RFUklWRURfU09VUkNFU19ESVJ9IiAtLWRlZmluZXMgIkxBTkdVQUdFX0pBVkFTQ1JJUFQ9MSAk
e0ZFQVRVUkVfREVGSU5FU19TVFJ9IiAtLWdlbmVyYXRvciBJbnNwZWN0b3IgJHtXRUJDT1JFX0RJ
Un0vJHtfc291cmNlfQogICAgIFZFUkJBVElNKQotICBMSVNUKEFQUEVORCBJbnNwZWN0b3JfSURM
X0ZJTEVTICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vUmVtb3RlJHtfbmFtZX0uY3BwKQorICBMSVNU
KEFQUEVORCBJbnNwZWN0b3JfSURMX0ZJTEVTICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vUmVtb3Rl
JHtfbmFtZX1Gcm9udGVuZC5jcHApCiAgIFVOU0VUKF9uYW1lKQogICBVTlNFVChfZGVmaW5lcykK
IEVORE1BQ1JPKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61338</attachid>
            <date>2010-07-13 00:38:56 -0700</date>
            <delta_ts>2010-07-13 10:38:40 -0700</delta_ts>
            <desc>[patch] third iteration.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>49090</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDk1N2I3NzAuLjYwMWM4ZDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTcxNSw3ICsxNzE1LDcgQEAg
Rk9SRUFDSCAoX2ZpbGUgJHtXZWJDb3JlX0lETF9QVVJFX0ZJTEVTfSkKICAgICBHRU5FUkFURV9K
U19GUk9NX0lETF9QVVJFKCR7X2ZpbGV9KQogRU5ERk9SRUFDSCAoKQogCi1HRU5FUkFURV9JTlNQ
RUNUT1JfRlJPTV9JREwoaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGwpCitHRU5FUkFU
RV9JTlNQRUNUT1JfRlJPTV9JREwoaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwpCiAKIExJU1QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUyAke0pTX0lETF9GSUxFU30gJHtJbnNwZWN0b3JfSURMX0ZJTEVT
fSkKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBlMGQ1ODQzLi40NDA5MThjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEwLTA3LTEyICBJbHlhIFRp
a2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJJbnNwZWN0b3I6IE5leHQgaXRlcmF0aW9uIG9m
IEluc3BlY3RvciBjb2RlIGdlbmVyYXRvci4KKyAgICAgICAgVGhlIEluc3BlY3RvckZyb250ZW5k
MiB3YXMgcmVwbGFjZWQgYnkgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZgorICAgICAgICBJ
bnNwZWN0b3JCYWNrZW5kIGZpbGUgKEluc3BlY3Rvci5pZGwpLiBBdCB0aGUgZW5kIGFsbCB0aGUg
aW50ZXJmYWNlCisgICAgICAgIGJldHdlZW4gV2ViSW5zcGVjdG9yIGFuZCBpbnNwZWN0ZWQgcGFn
ZSB3aWxsIGJlIHNwZWNpZmllZCBieSB0aGlzIGZpbGUKKyAgICAgICAgYW5kIGdlbmVyYXRlZCBi
eSBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yIChJbnNwZWN0b3JGcm9udGVuZC5jcHAsCisgICAgICAg
IEluc3BlY3RvckJhY2tlbmQuY3BwIGFuZCBJbnNwZWN0b3JCYWNrZW5kLmpzKS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMTA0CisKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUuZ3lwL3Njcmlw
dHMvcnVsZV9iaW5kaW5nLnB5OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9JRExTdHJ1Y3R1cmUucG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29kZUdlbmVyYXRv
ckluc3BlY3Rvci5wbToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDogQWRkZWQu
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjppbnNwZWN0b3JTdHlsZVNoZWV0KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRUaW1lbGluZVByb2ZpbGVyKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ29udHJvbGxlcjo6cmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
T01BZ2VudDo6SW5zcGVjdG9yRE9NQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpyZXNldEZyb250
ZW5kUHJveHlPYmplY3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50Lmg6CisKIDIwMTAtMDctMTIgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggODQzMDAy
NC4uN2M1M2U4NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDcxLDExICs0NzEsMTEgQEAgRE9NX0NM
QVNTRVMgPSBcCiAgICAgWFNMVFByb2Nlc3NvciBcCiAjCiAKLUlOU1BFQ1RPUl9DTEFTU0VTID0g
SW5zcGVjdG9yRnJvbnRlbmQyCitJTlNQRUNUT1JfQ0xBU1NFUyA9IEluc3BlY3RvcgogCiAuUEhP
TlkgOiBhbGwKIAotSlNfRE9NX0hFQURFUlM9JChmaWx0ZXItb3V0IEpTRXZlbnRMaXN0ZW5lci5o
IEpTRXZlbnRUYXJnZXQuaCwkKERPTV9DTEFTU0VTOiU9SlMlLmgpICQoSU5TUEVDVE9SX0NMQVNT
RVM6JT1SZW1vdGUlLmgpKQorSlNfRE9NX0hFQURFUlM9JChmaWx0ZXItb3V0IEpTRXZlbnRMaXN0
ZW5lci5oIEpTRXZlbnRUYXJnZXQuaCwkKERPTV9DTEFTU0VTOiU9SlMlLmgpICQoSU5TUEVDVE9S
X0NMQVNTRVM6JT1SZW1vdGUlRnJvbnRlbmQuaCkpCiAKIGFsbCA6IFwKICAgICByZW1vdmUtc3Ry
YXktcGx1Z2luLWFuZC1taW1lLXR5cGUtZmlsZXMgXApAQCAtODA4LDggKzgwOCw4IEBAIEpTJS5o
IDogJS5pZGwgJChKU19CSU5ESU5HU19TQ1JJUFRTKQogCiBJTlNQRUNUT1JfR0VORVJBVE9SX1ND
UklQVFMgPSAkKEdFTkVSQVRFX1NDUklQVFMpIGluc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVj
dG9yLnBtCiAKLVJlbW90ZSUuaCA6ICUuaWRsICQoSU5TUEVDVE9SX0dFTkVSQVRPUl9TQ1JJUFRT
KQotCSQoY2FsbCBnZW5lcmF0b3Jfc2NyaXB0LCAkKElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NSSVBU
UykpIC0tb3V0cHV0RGlyIC4gIC0tZGVmaW5lcyAiTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5l
cmF0b3IgSW5zcGVjdG9yICQ8CitSZW1vdGUlRnJvbnRlbmQuaCA6ICUuaWRsICQoSU5TUEVDVE9S
X0dFTkVSQVRPUl9TQ1JJUFRTKQorCSQoY2FsbCBnZW5lcmF0b3Jfc2NyaXB0LCAkKElOU1BFQ1RP
Ul9HRU5FUkFUT1JfU0NSSVBUUykpIC0tb3V0cHV0RGlyIC4gIC0tZGVmaW5lcyAiJChGRUFUVVJF
X0RFRklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0tZ2VuZXJhdG9yIEluc3BlY3RvciAkPAog
CiAtaW5jbHVkZSAkKEpTX0RPTV9IRUFERVJTOi5oPS5kZXApCiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDI3OGFhOWIu
Ljg3Y2JmMjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQpAQCAtOTksOCArOTksOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMg
Kz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTE5hbWVzLmNwcCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9IVE1MTmFtZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hU
TUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1Jl
bW90ZUluc3BlY3RvckZyb250ZW5kMi5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvUmVt
b3RlSW5zcGVjdG9yRnJvbnRlbmQyLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvUmVtb3Rl
SW5zcGVjdG9yRnJvbnRlbmQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1JlbW90ZUlu
c3BlY3RvckZyb250ZW5kLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvVXNlckFnZW50U3R5
bGVTaGVldHMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdlbnRTdHlsZVNoZWV0
c0RhdGEuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1hNTE5TTmFtZXMuY3BwIFwKQEAg
LTM5ODMsNyArMzk4Myw3IEBAIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTmFtZXMuY3BwIERl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvWE1MTmFtZXMuaDogJChXZWJDb3JlCiAJJChBTV9WX0dFTikk
KFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3Jl
KS94bWwveG1sYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIKIAog
IyBSZW1vdGUgSW5zcGVjdG9yIGZyb250ZW5kCi1EZXJpdmVkU291cmNlcy9XZWJDb3JlL1JlbW90
ZUluc3BlY3RvckZyb250ZW5kMi5jcHAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9SZW1vdGVJbnNw
ZWN0b3JGcm9udGVuZDIuaDogJChXZWJDb3JlKS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQy
LmlkbCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29yZSkvaW5zcGVjdG9yL0NvZGVHZW5lcmF0
b3JJbnNwZWN0b3IucG0KK0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvUmVtb3RlSW5zcGVjdG9yRnJv
bnRlbmQuY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQu
aDogJChXZWJDb3JlKS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCAkKFNDUklQVFNfQklORElOR1Mp
ICQoV2ViQ29yZSkvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KIAkkKEFNX1Zf
R0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgLUkkKFdlYkNvcmUpL2lu
c3BlY3RvciAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwg
JChJRExfUEFUSDolPS0taW5jbHVkZSAiJSIpIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNfV0VC
Q09SRSkiIC0tZGVmaW5lcyAiTEFOR1VBR0VfSkFWQVNDUklQVD0xICQoRkVBVFVSRV9ERUZJTkVT
KSIgLS1nZW5lcmF0b3IgSW5zcGVjdG9yICQ8CiAKIElETF9QQVRIIDo9IFwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dl
YkNvcmUuZ3lwCmluZGV4IDNiOTQ2NDQuLjBjM2ZhODEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5
cApAQCAtNDc1LDE4ICs0NzUsMTggQEAKICAgICAgICAgICBdLAogICAgICAgICB9LAogICAgICAg
ICB7Ci0gICAgICAgICAgJ2FjdGlvbl9uYW1lJzogJ0luc3BlY3RvckZyb250ZW5kMicsCisgICAg
ICAgICAgJ2FjdGlvbl9uYW1lJzogJ1JlbW90ZUluc3BlY3RvckZyb250ZW5kJywKICAgICAgICAg
ICAnaW5wdXRzJzogWwogICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUt
YmluZGluZ3MucGwnLAogICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvci5wbScsCiAgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0n
LAogICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtJywKICAg
ICAgICAgICAgICcuLi9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbScsCi0gICAg
ICAgICAgICAnLi4vaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGwnLAorICAgICAgICAg
ICAgJy4uL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsJywKICAgICAgICAgICBdLAogICAgICAgICAg
ICdvdXRwdXRzJzogWwotICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dl
YmNvcmUvYmluZGluZ3MvUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmNwcCcsCi0gICAgICAgICAg
ICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L2JpbmRpbmdzL1JlbW90ZUluc3Bl
Y3RvckZyb250ZW5kMi5oJywKKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElS
KS93ZWJjb3JlL2JpbmRpbmdzL1JlbW90ZUluc3BlY3RvckZyb250ZW5kLmNwcCcsCisgICAgICAg
ICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L2JpbmRpbmdzL1JlbW90ZUlu
c3BlY3RvckZyb250ZW5kLmgnLAogICAgICAgICAgIF0sCiAgICAgICAgICAgJ3ZhcmlhYmxlcyc6
IHsKICAgICAgICAgICAgICdnZW5lcmF0b3JfaW5jbHVkZV9kaXJzJzogWwpAQCAtNDk1LDE4ICs0
OTUsMTggQEAKICAgICAgICAgICAnYWN0aW9uJzogWwogICAgICAgICAgICAgJ3B5dGhvbicsCiAg
ICAgICAgICAgICAnc2NyaXB0cy9ydWxlX2JpbmRpbmcucHknLAotICAgICAgICAgICAgJy4uL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaWRsJywKKyAgICAgICAgICAgICcuLi9pbnNwZWN0
b3IvSW5zcGVjdG9yLmlkbCcsCiAgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJ
Uikvd2ViY29yZS9iaW5kaW5ncycsCiAgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRF
X0RJUikvd2Via2l0L2JpbmRpbmdzJywKICAgICAgICAgICAgICctLScsCiAgICAgICAgICAgICAn
PEAoX2lucHV0cyknLAogICAgICAgICAgICAgJy0tJywKLSAgICAgICAgICAgICctLWRlZmluZXMn
LCAnTEFOR1VBR0VfSkFWQVNDUklQVCcsCi0gICAgICAgICAgICAnLS1wcmVmaXgnLCAnUmVtb3Rl
JywKKyAgICAgICAgICAgICctLWRlZmluZXMnLCAnPChmZWF0dXJlX2RlZmluZXMpIExBTkdVQUdF
X0pBVkFTQ1JJUFQnLAorICAgICAgICAgICAgJy0tZmlsZW5hbWUnLCAnUmVtb3RlSW5zcGVjdG9y
RnJvbnRlbmQnLAogICAgICAgICAgICAgJy0tZ2VuZXJhdG9yJywgJ0luc3BlY3RvcicsCiAgICAg
ICAgICAgICAnPEAoZ2VuZXJhdG9yX2luY2x1ZGVfZGlycyknCiAgICAgICAgICAgXSwKLSAgICAg
ICAgICAnbWVzc2FnZSc6ICdHZW5lcmF0aW5nIEluc3BlY3RvckZyb250ZW5kMiBjbGFzcyBmcm9t
IEluc3BlY3RvckZyb250ZW5kMi5pZGwnLAorICAgICAgICAgICdtZXNzYWdlJzogJ0dlbmVyYXRp
bmcgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQgY2xhc3MgZnJvbSBJbnNwZWN0b3IuaWRsJywKICAg
ICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdYTUxOYW1lcycs
CkBAIC03MTQsNyArNzE0LDcgQEAKICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIp
L3dlYmtpdC9YUGF0aEdyYW1tYXIuY3BwJywKIAogICAgICAgICAjIEFkZGl0aW9uYWwgLmNwcCBm
aWxlcyBmcm9tIHRoZSB3ZWJjb3JlX2luc3BlY3Rvcl9zb3VyY2VzIGxpc3QuCi0gICAgICAgICc8
KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJjb3JlL2JpbmRpbmdzL1JlbW90ZUluc3BlY3Rv
ckZyb250ZW5kMi5jcHAnLAorICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Vi
Y29yZS9iaW5kaW5ncy9SZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5jcHAnLAogICAgICAgXSwKICAg
ICAgICdjb25kaXRpb25zJzogWwogICAgICAgICBbJ2phdmFzY3JpcHRfZW5naW5lPT0idjgiJywg
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1bGVfYmluZGluZy5w
eSBiL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9ydWxlX2JpbmRpbmcucHkKaW5kZXggZjdm
M2VkMS4uYmI0YzJhNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1
bGVfYmluZGluZy5weQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9iaW5k
aW5nLnB5CkBAIC0xMDAsNiArMTAwLDEwIEBAIGRlZiBtYWluKGFyZ3MpOgogICAgIGVsc2U6CiAg
ICAgICAgIHByZWZpeEluZGV4ID0gb3B0aW9ucy5pbmRleCgnLS1nZW5lcmF0b3InKQogCisgICAg
ZmlsZU5hbWUgPSAnJworICAgIGlmICctLWZpbGVuYW1lJyBpbiBvcHRpb25zOgorICAgICAgICBm
aWxlTmFtZSA9IG9wdGlvbnNbb3B0aW9ucy5pbmRleCgnLS1maWxlbmFtZScpICsgMV0KKwogICAg
IGlmIHByZWZpeEluZGV4ICsgMSA8IGxlbihvcHRpb25zKToKICAgICAgICAgcHJlZml4ID0gb3B0
aW9uc1twcmVmaXhJbmRleCArIDFdCiAKQEAgLTEzMCw3ICsxMzQsMTAgQEAgZGVmIG1haW4oYXJn
cyk6CiAgICAgaWYgY3BwZGlyICE9IGhkaXI6CiAgICAgICAgIGlucHV0QmFzZW5hbWUgPSBvcy5w
YXRoLmJhc2VuYW1lKGlucHV0KQogICAgICAgICAocm9vdCwgZXh0KSA9IG9zLnBhdGguc3BsaXRl
eHQoaW5wdXRCYXNlbmFtZSkKLSAgICAgICAgaG5hbWUgPSAnJXMlcy5oJyAlIChwcmVmaXgsIHJv
b3QpCisgICAgICAgIGlmIGZpbGVOYW1lICE9ICcnOgorICAgICAgICAgICAgaG5hbWUgPSAnJXMu
aCcgJSAoZmlsZU5hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBobmFtZSA9ICclcyVz
LmgnICUgKHByZWZpeCwgcm9vdCkKICAgICAgICAgaHNyYyA9IG9zLnBhdGguam9pbihjcHBkaXIs
IGhuYW1lKQogICAgICAgICBoZHN0ID0gb3MucGF0aC5qb2luKGhkaXIsIGhuYW1lKQogICAgICAg
ICBzaHV0aWwuY29weWZpbGUoaHNyYywgaGRzdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMWNjYmMzZi4uMmQ4YzAwOSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTI3OSw3ICsyNzksNyBAQAogICAgICAgICAgICAgJ3htbC9YU0xUUHJvY2Vzc29yLmlkbCcs
CiAgICAgICAgIF0sCiAgICAgICAgICd3ZWJjb3JlX2luc3BlY3Rvcl9pZGxfZmlsZXMnOiBbCi0g
ICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGwnLAorICAgICAgICAg
ICAgJ2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsJywKICAgICAgICAgXSwKICAgICAgICAgJ3dlYmNv
cmVfc3ZnX2JpbmRpbmdzX2lkbF9maWxlcyc6IFsKICAgICAgICAgICAgICdzdmcvRWxlbWVudFRp
bWVDb250cm9sLmlkbCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29y
ZS9XZWJDb3JlLnByaQppbmRleCAxNDUxOTg0Li43ZTRmZDgxIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTY2NCw3ICs2NjQsNyBA
QCBJRExfQklORElOR1MgKz0gXAogICAgIHhtbC9YUGF0aEV2YWx1YXRvci5pZGwgXAogICAgIHht
bC9YU0xUUHJvY2Vzc29yLmlkbAogCi1JTlNQRUNUT1JfSU5URVJGQUNFUyA9IGluc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZDIuaWRsCitJTlNQRUNUT1JfSU5URVJGQUNFUyA9IGluc3BlY3Rvci9J
bnNwZWN0b3IuaWRsCiAKIG1hdGhtbG5hbWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUn0vTWF0aE1MTmFtZXMuY3BwCiBtYXRobWxuYW1lcy5pbnB1dCA9IE1BVEhNTF9OQU1F
UwpAQCAtNzI4LDcgKzcyOCw3IEBAIGlkbC5kZXBlbmRzID0gJCRQV0QvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yLnBtIFwKIGFkZEV4dHJhQ29tcGlsZXIoaWRsKQogCiAjIEdFTkVSQVRP
UiAyOiBpbnNwZWN0b3IgaWRsIGNvbXBpbGVyCi1pbnNwZWN0b3JJREwub3V0cHV0ID0gJCR7V0Nf
R0VORVJBVEVEX1NPVVJDRVNfRElSfS9SZW1vdGUke1FNQUtFX0ZJTEVfQkFTRX0uY3BwCitpbnNw
ZWN0b3JJREwub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9SZW1vdGUke1FN
QUtFX0ZJTEVfQkFTRX1Gcm9udGVuZC5jcHAKIGluc3BlY3RvcklETC5pbnB1dCA9IElOU1BFQ1RP
Ul9JTlRFUkZBQ0VTCiBpbnNwZWN0b3JJREwud2tTY3JpcHQgPSAkJFBXRC9iaW5kaW5ncy9zY3Jp
cHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCiBpbnNwZWN0b3JJREwuY29tbWFuZHMgPSBwZXJsIC1J
JCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAtSSQkUFdEL2luc3BlY3RvciAkJGluc3BlY3RvcklETC53
a1NjcmlwdCAtLWRlZmluZXMgXCIkJHtGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVH1cIiAtLWdl
bmVyYXRvciBJbnNwZWN0b3IgLS1vdXRwdXREaXIgJCRXQ19HRU5FUkFURURfU09VUkNFU19ESVIg
LS1wcmVwcm9jZXNzb3IgXCIkJHtRTUFLRV9NT0N9IC1FXCIgJHtRTUFLRV9GSUxFX05BTUV9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA5MTA2YTU3Li5mMjViNDRlIDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIwNzYxLDExICsyMDc2MSwx
MSBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIk
KFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFJlbW90
ZUluc3BlY3RvckZyb250ZW5kMi5jcHAiDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRw
dXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xSZW1vdGVJbnNwZWN0b3JG
cm9udGVuZC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRp
dmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXFJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2Vi
S2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcUmVtb3RlSW5z
cGVjdG9yRnJvbnRlbmQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWNkMjVlYy4uZTE0YjYw
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMzAs
NyArMTAzMCw3IEBACiAJCTRGMTUzNEUwMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZp
b3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEYzMjg5QjUxMUE0
MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZhbHVlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjMyODlCMzExQTQyQUFCMDA1QUJFN0UgLyogSW5z
cGVjdG9yVmFsdWVzLmNwcCAqLzsgfTsKIAkJNEYzMjg5QjYxMUE0MkFBQjAwNUFCRTdFIC8qIElu
c3BlY3RvclZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEYzMjg5QjQxMUE0MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZhbHVlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTRGNEY1RkZCMTFD
QkQyRTEwMEExODZCRiAvKiBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY0RjVGRkExMUNCRDJEMjAwQTE4
NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5jcHAgKi87IH07CisJCTRGNEY1RkZCMTFD
QkQyRTEwMEExODZCRiAvKiBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjRGNUZGQTExQ0JEMkQyMDBBMTg2
QkYgLyogUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuY3BwICovOyB9OwogCQk0RkQ4RDBGMjExOUM3
MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkQ4RDBGMDExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0
R0NFdmVudC5jcHAgKi87IH07CiAJCTRGRDhEMEYzMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRH
Q0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RkQ4RDBGMTExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5oICovOyB9OwogCQk1MTAx
ODQ2OTBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMTg0NjcwQjA4NjAyQTAwNEE4MjVGIC8qIENh
Y2hlZFBhZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtNjc1MSw4ICs2NzUxLDggQEAKIAkJNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVk
aXRpbmdCZWhhdmlvclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVk
aXRpbmdCZWhhdmlvclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMzI4
OUIzMTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yVmFsdWVzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNEYzMjg5QjQxMUE0MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZh
bHVlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JWYWx1ZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEY0RjVGRkExMUNCRDJEMjAwQTE4NkJG
IC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk0RjRGNUZGQzExQ0JEMzAxMDBBMTg2QkYgLyogUmVtb3RlSW5zcGVj
dG9yRnJvbnRlbmQyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUlu
c3BlY3RvckZyb250ZW5kMi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0RjRGNUZG
QTExQ0JEMkQyMDBBMTg2QkYgLyogUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0RjRGNUZGQzExQ0JEMzAxMDBBMTg2QkYg
LyogUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNEZEOEQwRjAxMTlDNzE4QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZlbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0R0NFdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGRDhEMEYxMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3Jp
cHRHQ0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdEdDRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMTg0NjcwQjA4NjAyQTAwNEE4
MjVGIC8qIENhY2hlZFBhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2Fj
aGVkUGFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEzOTQsOCArMTEzOTQs
OCBAQAogCQkJCTlGQTM3RUY3MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCAq
LywKIAkJCQk5RkEzN0VGODExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5j
cHAgKi8sCiAJCQkJOUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5v
ZGUuaCAqLywKLQkJCQk0RjRGNUZGQTExQ0JEMkQyMDBBMTg2QkYgLyogUmVtb3RlSW5zcGVjdG9y
RnJvbnRlbmQyLmNwcCAqLywKLQkJCQk0RjRGNUZGQzExQ0JEMzAxMDBBMTg2QkYgLyogUmVtb3Rl
SW5zcGVjdG9yRnJvbnRlbmQyLmggKi8sCisJCQkJNEY0RjVGRkExMUNCRDJEMjAwQTE4NkJGIC8q
IFJlbW90ZUluc3BlY3RvckZyb250ZW5kLmNwcCAqLywKKwkJCQk0RjRGNUZGQzExQ0JEMzAxMDBB
MTg2QkYgLyogUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuaCAqLywKIAkJCSk7CiAJCQluYW1lID0g
SW5zcGVjdG9yOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIyMTE1LDcgKzIyMTE1
LDcgQEAKIAkJCQk5N0RENEQ4NjBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCODg1RThENDExRTA2REQyMDA5RkZCRjQgLyogSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQThDODFGMTFFM0Qz
NjkwMDgxMkZCNyAvKiBCYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJNEY0RjVGRkIxMUNCRDJFMTAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk0RjRGNUZGQjExQ0JEMkUxMDBBMTg2QkYgLyogUmVtb3Rl
SW5zcGVjdG9yRnJvbnRlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdFRjU2MTAxMUU0MDc4
MzAwN0UwMjZGIC8qIEhUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDQThDQTVGMTFFNEU2RDEwMDgxMkZCNyAvKiBCYWNrRm9yd2FyZExpc3RJbXBsLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU05hdmlnYXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
SURMUGFyc2VyLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRl
eCBlMjUwYTRkLi45MjdkZWI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
SURMUGFyc2VyLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0K
QEAgLTMyOSwxMSArMzI5LDEzIEBAIHN1YiBQYXJzZUludGVyZmFjZQogICAgICAgICAgICAgICAg
ICAgICBteSAkbGluZSA9ICRfOwogCiAgICAgICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURM
U3RydWN0dXJlOjppbnRlcmZhY2VQYXJhbWV0ZXJTZWxlY3Rvci87Ci0gICAgICAgICAgICAgICAg
ICAgIG15ICRwYXJhbUV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiAi
KTsgY2hvcCgkcGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgICAgICAgICBt
eSAkcGFyYW1UeXBlID0gKGRlZmluZWQoJDIpID8gJDIgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5T
b3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9
IChkZWZpbmVkKCQzKSA/ICQzIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVc
bikiKSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbURpcmVjdGlvbiA9ICQxOworICAg
ICAgICAgICAgICAgICAgICBteSAkcGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgk
MikgPyAkMiA6ICIgIik7IGNob3AoJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKKyAgICAgICAg
ICAgICAgICAgICAgbXkgJHBhcmFtVHlwZSA9IChkZWZpbmVkKCQzKSA/ICQzIDogZGllKCJQYXJz
aW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7CisgICAgICAgICAgICAgICAgICAgIG15
ICRwYXJhbU5hbWUgPSAoZGVmaW5lZCgkNCkgPyAkNCA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNv
dXJjZTpcbiRsaW5lXG4pIikpOwogCiAgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbURhdGFO
b2RlID0gbmV3IGRvbVNpZ25hdHVyZSgpOworICAgICAgICAgICAgICAgICAgICAkcGFyYW1EYXRh
Tm9kZS0+ZGlyZWN0aW9uKCRwYXJhbURpcmVjdGlvbik7CiAgICAgICAgICAgICAgICAgICAgICRw
YXJhbURhdGFOb2RlLT5uYW1lKCRwYXJhbU5hbWUpOwogICAgICAgICAgICAgICAgICAgICAkcGFy
YW1EYXRhTm9kZS0+dHlwZSgkcGFyYW1UeXBlKTsKICAgICAgICAgICAgICAgICAgICAgJHBhcmFt
RGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcyhwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkcGFy
YW1FeHRlbmRlZEF0dHJpYnV0ZXMpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9JRExTdHJ1Y3R1cmUucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0
dXJlLnBtCmluZGV4IGQ2MWZjZTEuLjJlZGE2OTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9JRExTdHJ1Y3R1cmUucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0lETFN0cnVjdHVyZS5wbQpAQCAtNTksNiArNTksNyBAQCBzdHJ1Y3QoIGRvbUF0dHJpYnV0ZSA9
PiB7CiAKICMgVXNlZCB0byByZXByZXNlbnQgYSBtYXAgb2YgJ3ZhcmlhYmxlIG5hbWUnIDwtPiAn
dmFyaWFibGUgdHlwZScKIHN0cnVjdCggZG9tU2lnbmF0dXJlID0+IHsKKyAgICBkaXJlY3Rpb24g
PT4gJyQnLCAjIFZhcmlhYmxlIGRpcmVjdGlvbiAoaW4gb3Igb3V0KQogICAgIG5hbWUgPT4gJyQn
LCAgICAgICMgVmFyaWFibGUgbmFtZQogICAgIHR5cGUgPT4gJyQnLCAgICAgICMgVmFyaWFibGUg
dHlwZQogICAgIGV4dGVuZGVkQXR0cmlidXRlcyA9PiAnJCcgIyBFeHRlbmRlZCBhdHRyaWJ1dGVz
CkBAIC0xMDAsNyArMTAxLDcgQEAgb3VyICRleGNlcHRpb25TdWJTZWxlY3RvciA9ICd7XHMqJyAu
ICRzdXBwb3J0ZWRUeXBlcyAuICdccyooJyAuICRpZGxUeXBlIC4gJyopXHMKIAogb3VyICRpbnRl
cmZhY2VTZWxlY3RvciA9ICdpbnRlcmZhY2VccyooKD86JyAuICRleHRlbmRlZEF0dHJpYnV0ZVN5
bnRheCAuICcgKT8pKCcgLiAkaWRsSWROcyAuICcqKVxzKig/OjooXHMqW157XSopKT97KFthLXpB
LVowLTlfPVxzKCksOzpcW1xdJlx8XSopJzsKIG91ciAkaW50ZXJmYWNlTWV0aG9kU2VsZWN0b3Ig
PSAnXHMqKCg/OicgLiAkZXh0ZW5kZWRBdHRyaWJ1dGVTeW50YXggLiAnICk/KScgLiAkc3VwcG9y
dGVkVHlwZXMgLiAnXHMqKCcgLiAkaWRsSWROcyAuICcqKVxzKlwoXHMqKFthLXpBLVowLTk6XHMs
PVxbXF1dKiknOwotb3VyICRpbnRlcmZhY2VQYXJhbWV0ZXJTZWxlY3RvciA9ICdpblxzKigoPzon
IC4gJGV4dGVuZGVkQXR0cmlidXRlU3ludGF4IC4gJyApPyknIC4gJHN1cHBvcnRlZFR5cGVzIC4g
J1xzKignIC4gJGlkbElkTnMgLiAnKiknOworb3VyICRpbnRlcmZhY2VQYXJhbWV0ZXJTZWxlY3Rv
ciA9ICcoaW58b3V0KVxzKigoPzonIC4gJGV4dGVuZGVkQXR0cmlidXRlU3ludGF4IC4gJyApPykn
IC4gJHN1cHBvcnRlZFR5cGVzIC4gJ1xzKignIC4gJGlkbElkTnMgLiAnKiknOwogCiBvdXIgJGlu
dGVyZmFjZUF0dHJpYnV0ZVNlbGVjdG9yID0gJ1xzKihyZWFkb25seSBhdHRyaWJ1dGV8YXR0cmli
dXRlKVxzKignIC4gJGV4dGVuZGVkQXR0cmlidXRlU3ludGF4IC4gJyApPycgLiAkc3VwcG9ydGVk
VHlwZXMgLiAnXHMqKCcgLiAkaWRsVHlwZSAuICcqKSc7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBiL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbAppbmRleCBiMjkzYjNjLi5hZWU4MWI1IDEwMDc1
NQotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCkBAIC00Miw2
ICs0Miw3IEBAIG15ICRvdXRwdXREaXJlY3Rvcnk7CiBteSAkZ2VuZXJhdG9yOwogbXkgJGRlZmlu
ZXM7CiBteSAkcHJlZml4OworbXkgJGZpbGVuYW1lOwogbXkgJHByZXByb2Nlc3NvcjsKIG15ICR3
cml0ZURlcGVuZGVuY2llczsKIG15ICR2ZXJib3NlOwpAQCAtNTEsNiArNTIsNyBAQCBHZXRPcHRp
b25zKCdpbmNsdWRlPXNAJyA9PiBcQGlkbERpcmVjdG9yaWVzLAogICAgICAgICAgICAnZ2VuZXJh
dG9yPXMnID0+IFwkZ2VuZXJhdG9yLAogICAgICAgICAgICAnZGVmaW5lcz1zJyA9PiBcJGRlZmlu
ZXMsCiAgICAgICAgICAgICdwcmVmaXg9cycgPT4gXCRwcmVmaXgsCisgICAgICAgICAgICdmaWxl
bmFtZT1zJyA9PiBcJGZpbGVuYW1lLAogICAgICAgICAgICAncHJlcHJvY2Vzc29yPXMnID0+IFwk
cHJlcHJvY2Vzc29yLAogICAgICAgICAgICAndmVyYm9zZScgPT4gXCR2ZXJib3NlLAogICAgICAg
ICAgICAnd3JpdGUtZGVwZW5kZW5jaWVzJyA9PiBcJHdyaXRlRGVwZW5kZW5jaWVzKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0gYi9XZWJD
b3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCmluZGV4IGNhZGZhYWMuLmIy
MGVkYTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0
b3IucG0KKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQpA
QCAtOTIsMTAgKzkyLDExIEBAIG15ICR3cml0ZURlcGVuZGVuY2llczsKIG15ICR2ZXJib3NlOwog
CiBteSAkbmFtZXNwYWNlOwotbXkgJGZpbGVOYW1lOworbXkgJGZyb250ZW5kQ2xhc3NOYW1lOwog
bXkgJWRpc2NvdmVyZWRUeXBlczsKK215ICVnZW5lcmF0ZWRGdW5jdGlvbnM7CiAKLW15IEBjbGFz
c0RlZmluaXRpb247CitteSBAZnJvbnRlbmRDbGFzc0RlY2xhcmF0aW9uOwogbXkgQGZ1bmN0aW9u
RGVmaW5pdGlvbnM7CiAKIHN1YiB0eXBlU3BlYwpAQCAtMTMzLDYgKzEzNCw3IEBAIHN1YiBHZW5l
cmF0ZU1vZHVsZQogICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwogCiAgICAgJG5hbWVzcGFjZSA9
ICRkYXRhTm9kZS0+bW9kdWxlOworICAgICRuYW1lc3BhY2UgPX4gcy9jb3JlL1dlYkNvcmUvOwog
fQogCiAjIFBhcmFtczogJ2lkbERvY3VtZW50JyBzdHJ1Y3QKQEAgLTE0Myw0OSArMTQ1LDczIEBA
IHN1YiBHZW5lcmF0ZUludGVyZmFjZQogICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CiAKICAgICBt
eSAkY2xhc3NOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKLSAgICAkZmlsZU5hbWUgPSAkY2xhc3NO
YW1lOworICAgICRmcm9udGVuZENsYXNzTmFtZSA9ICJSZW1vdGUiIC4gJGNsYXNzTmFtZSAuICJG
cm9udGVuZCI7CiAKICAgICAkZGlzY292ZXJlZFR5cGVzeyJTdHJpbmcifSA9IDE7CiAgICAgJGRp
c2NvdmVyZWRUeXBlc3siSW5zcGVjdG9yQ2xpZW50In0gPSAxOwogICAgICRkaXNjb3ZlcmVkVHlw
ZXN7IlBhc3NSZWZQdHIifSA9IDE7CiAKLSAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJjbGFz
cyAkY2xhc3NOYW1lIHsiKTsKLSAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJwdWJsaWM6Iik7
Ci0gICAgcHVzaChAY2xhc3NEZWZpbml0aW9uLCAiICAgICRjbGFzc05hbWUoSW5zcGVjdG9yQ2xp
ZW50KiBpbnNwZWN0b3JDbGllbnQpIDogbV9pbnNwZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xpZW50
KSB7IH0iKTsKLSAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICIiKTsKLSAgICBwdXNoKEBjbGFz
c0RlZmluaXRpb24sIGdlbmVyYXRlRnVuY3Rpb25zRGVjbGFyYXRpb25zKCRpbnRlcmZhY2UsICRj
bGFzc05hbWUpKTsKLSAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICIiKTsKLSAgICBwdXNoKEBj
bGFzc0RlZmluaXRpb24sICJwcml2YXRlOiIpOwotICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwg
IiAgICB2b2lkIHNlbmRTaW1wbGVNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsiKTsK
LSAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICIgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2luc3Bl
Y3RvckNsaWVudDsiKTsKLSAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJ9OyIpOwotCi0gICAg
cHVzaChAZnVuY3Rpb25EZWZpbml0aW9ucywgInZvaWQgJHtjbGFzc05hbWV9OjpzZW5kU2ltcGxl
TWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUpIik7Ci0gICAgcHVz
aChAZnVuY3Rpb25EZWZpbml0aW9ucywgInsiKTsKLSAgICBwdXNoKEBmdW5jdGlvbkRlZmluaXRp
b25zLCAiICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gYXJndW1lbnRzID0gSW5zcGVjdG9yQXJy
YXk6OmNyZWF0ZSgpOyIpOwotICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlvbnMsICIgICAgYXJn
dW1lbnRzLT5wdXNoU3RyaW5nKGZ1bmN0aW9uTmFtZSk7Iik7Ci0gICAgcHVzaChAZnVuY3Rpb25E
ZWZpbml0aW9ucywgIiAgICBtX2luc3BlY3RvckNsaWVudC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5k
KGFyZ3VtZW50cy0+dG9KU09OU3RyaW5nKCkpOyIpOwotICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5p
dGlvbnMsICJ9Iik7CisgICAgcHVzaChAZnJvbnRlbmRDbGFzc0RlY2xhcmF0aW9uLCAiY2xhc3Mg
JGZyb250ZW5kQ2xhc3NOYW1lIHsiKTsKKyAgICBwdXNoKEBmcm9udGVuZENsYXNzRGVjbGFyYXRp
b24sICJwdWJsaWM6Iik7CisgICAgcHVzaChAZnJvbnRlbmRDbGFzc0RlY2xhcmF0aW9uLCAiICAg
ICRmcm9udGVuZENsYXNzTmFtZShJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckNsaWVudCkgOiBt
X2luc3BlY3RvckNsaWVudChpbnNwZWN0b3JDbGllbnQpIHsgfSIpOworICAgIHB1c2goQGZyb250
ZW5kQ2xhc3NEZWNsYXJhdGlvbiwgIiIpOworICAgIHB1c2goQGZyb250ZW5kQ2xhc3NEZWNsYXJh
dGlvbiwgZ2VuZXJhdGVGdW5jdGlvbnMoJGludGVyZmFjZSwgJGZyb250ZW5kQ2xhc3NOYW1lKSk7
CisgICAgcHVzaChAZnJvbnRlbmRDbGFzc0RlY2xhcmF0aW9uLCAiIik7CisgICAgcHVzaChAZnJv
bnRlbmRDbGFzc0RlY2xhcmF0aW9uLCAicHJpdmF0ZToiKTsKKyAgICBwdXNoKEBmcm9udGVuZENs
YXNzRGVjbGFyYXRpb24sICIgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2luc3BlY3RvckNsaWVudDsi
KTsKKyAgICBwdXNoKEBmcm9udGVuZENsYXNzRGVjbGFyYXRpb24sICJ9OyIpOwogfQogCi1zdWIg
Z2VuZXJhdGVGdW5jdGlvbnNEZWNsYXJhdGlvbnMKK3N1YiBnZW5lcmF0ZUZ1bmN0aW9ucwogewog
ICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKICAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CiAK
ICAgICBteSBAZnVuY3Rpb25EZWNsYXJhdGlvbnM7CiAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24g
KEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgewotICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0g
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7Ci0gICAgICAgIG15ICRhYnN0cmFjdCA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiYWJzdHJhY3QifTsKLSAgICAg
ICAgbXkgJGFyZ3VtZW50cyA9ICIiOworICAgICAgICBteSAkZnVuY3Rpb25OYW1lOworICAgICAg
ICBteSAkYXJndW1lbnRzRGlyZWN0aW9uRmlsdGVyOworICAgICAgICBteSAkYXJndW1lbnRzOwor
ICAgICAgICBteSBAZnVuY3Rpb25Cb2R5OworICAgICAgICBwdXNoKEBmdW5jdGlvbkJvZHksICIg
ICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBhcmd1bWVudHMgPSBJbnNwZWN0b3JBcnJheTo6Y3Jl
YXRlKCk7Iik7CisgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Im5vdGlmeSJ9KSB7CisgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgICAgICAkYXJndW1lbnRzRGlyZWN0aW9uRmls
dGVyID0gImluIjsKKyAgICAgICAgICAgICRhcmd1bWVudHMgPSAiIjsKKyAgICAgICAgICAgIHB1
c2goQGZ1bmN0aW9uQm9keSwgIiAgICBhcmd1bWVudHMtPnB1c2hTdHJpbmcoXCIkZnVuY3Rpb25O
YW1lXCIpOyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbXkgJGN1c3RvbVJlc3Bv
bnNlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJjdXN0b21S
ZXNwb25zZSJ9OworICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICRjdXN0b21SZXNwb25zZSA/
ICRjdXN0b21SZXNwb25zZSA6ICJkaWQiIC4gdWNmaXJzdCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
bmFtZSk7CisgICAgICAgICAgICAkYXJndW1lbnRzRGlyZWN0aW9uRmlsdGVyID0gIm91dCI7Cisg
ICAgICAgICAgICAkYXJndW1lbnRzID0gImxvbmcgY2FsbElkIjsKKyAgICAgICAgICAgIHB1c2go
QGZ1bmN0aW9uQm9keSwgIiAgICBhcmd1bWVudHMtPnB1c2hTdHJpbmcoXCIkZnVuY3Rpb25OYW1l
XCIpOyIpOworICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Cb2R5LCAiICAgIGFyZ3VtZW50cy0+
cHVzaE51bWJlcihjYWxsSWQpOyIpOworICAgICAgICB9CisKICAgICAgICAgZm9yZWFjaCBteSAk
cGFyYW1ldGVyIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKLSAgICAgICAgICAgICRwYXJh
bWV0ZXItPm5hbWUgb3IgZGllICJlbXB0eSBhcmd1bWVudCBuYW1lIHNwZWNpZmllZCBmb3IgZnVu
Y3Rpb24gJHtjbGFzc05hbWV9OjokZnVuY3Rpb25OYW1lIGFuZCBhcmd1bWVudCB0eXBlICIgLiAk
cGFyYW1ldGVyLT50eXBlOwotICAgICAgICAgICAgJGFyZ3VtZW50cyA9ICRhcmd1bWVudHMgLiAi
LCAiIGlmICgkYXJndW1lbnRzKTsKLSAgICAgICAgICAgICRhcmd1bWVudHMgPSAkYXJndW1lbnRz
IC4gdHlwZVNwZWMoJHBhcmFtZXRlcikgLiAiICIgLiAkcGFyYW1ldGVyLT5uYW1lOworICAgICAg
ICAgICAgaWYgKCRwYXJhbWV0ZXItPmRpcmVjdGlvbiBlcSAkYXJndW1lbnRzRGlyZWN0aW9uRmls
dGVyKSB7CisgICAgICAgICAgICAgICAgJHBhcmFtZXRlci0+bmFtZSBvciBkaWUgImVtcHR5IGFy
Z3VtZW50IG5hbWUgc3BlY2lmaWVkIGZvciBmdW5jdGlvbiAke2Zyb250ZW5kQ2xhc3NOYW1lfTo6
JGZ1bmN0aW9uTmFtZSBhbmQgYXJndW1lbnQgdHlwZSAiIC4gJHBhcmFtZXRlci0+dHlwZTsKKyAg
ICAgICAgICAgICAgICAkYXJndW1lbnRzID0gJGFyZ3VtZW50cyAuICIsICIgaWYgKCRhcmd1bWVu
dHMpOworICAgICAgICAgICAgICAgICRhcmd1bWVudHMgPSAkYXJndW1lbnRzIC4gdHlwZVNwZWMo
JHBhcmFtZXRlcikgLiAiICIgLiAkcGFyYW1ldGVyLT5uYW1lOworICAgICAgICAgICAgICAgIG15
ICRwdXNoRnVuY3Rpb25OYW1lID0gICR0eXBlVHJhbnNmb3JteyRwYXJhbWV0ZXItPnR5cGV9LT57
InB1c2gifTsKKyAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkJvZHksICIgICAgYXJndW1l
bnRzLT4kcHVzaEZ1bmN0aW9uTmFtZSgiIC4gJHBhcmFtZXRlci0+bmFtZSAuICIpOyIpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1c2goQGZ1bmN0aW9uQm9keSwgIiAgICBt
X2luc3BlY3RvckNsaWVudC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGFyZ3VtZW50cy0+dG9KU09O
U3RyaW5nKCkpOyIpOworCisgICAgICAgIG15ICRzaWduYXR1cmUgPSAiICAgICIgLiB0eXBlU3Bl
YygkZnVuY3Rpb24tPnNpZ25hdHVyZSwgMSkgLiAiICRmdW5jdGlvbk5hbWUoJGFyZ3VtZW50cyk7
IjsKKyAgICAgICAgaWYgKCEkZ2VuZXJhdGVkRnVuY3Rpb25zeyR7c2lnbmF0dXJlfX0pIHsKKyAg
ICAgICAgICAgICRnZW5lcmF0ZWRGdW5jdGlvbnN7JHtzaWduYXR1cmV9fSA9IDE7CisgICAgICAg
ICAgICBwdXNoKEBmdW5jdGlvbkRlY2xhcmF0aW9ucywgJHNpZ25hdHVyZSk7CisKKyAgICAgICAg
ICAgIG15IEBmdW5jdGlvbjsKKyAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uLCB0eXBlU3BlYygk
ZnVuY3Rpb24tPnNpZ25hdHVyZSwgMSkgLiAiICIgLiAkY2xhc3NOYW1lIC4gIjo6IiAuICRmdW5j
dGlvbk5hbWUgLiAiKCIgLiAkYXJndW1lbnRzIC4gIikiKTsKKyAgICAgICAgICAgIHB1c2goQGZ1
bmN0aW9uLCAieyIpOworICAgICAgICAgICAgcHVzaChAZnVuY3Rpb24sIEBmdW5jdGlvbkJvZHkp
OworICAgICAgICAgICAgcHVzaChAZnVuY3Rpb24sICJ9Iik7CisgICAgICAgICAgICBwdXNoKEBm
dW5jdGlvbiwgIiIpOworICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25EZWZpbml0aW9ucywgQGZ1
bmN0aW9uKTsKICAgICAgICAgfQotICAgICAgICBteSAkc2lnbmF0dXJlID0gIiAgICAiIC4gdHlw
ZVNwZWMoJGZ1bmN0aW9uLT5zaWduYXR1cmUsIDEpIC4gIiAkZnVuY3Rpb25OYW1lKCRhcmd1bWVu
dHMpIjsKLSAgICAgICAgcHVzaChAZnVuY3Rpb25EZWNsYXJhdGlvbnMsICRhYnN0cmFjdCA/ICIk
c2lnbmF0dXJlID0gMDsiIDogIiRzaWduYXR1cmU7Iik7Ci0gICAgICAgIHB1c2goQGZ1bmN0aW9u
RGVmaW5pdGlvbnMsIGdlbmVyYXRlRnVuY3Rpb25zSW1wbCgkY2xhc3NOYW1lLCAkZnVuY3Rpb24s
ICRhcmd1bWVudHMpKSBpZiAhJGFic3RyYWN0OwogICAgIH0KICAgICByZXR1cm4gQGZ1bmN0aW9u
RGVjbGFyYXRpb25zOwogfQpAQCAtMTkzLDggKzIxOSw4IEBAIHN1YiBnZW5lcmF0ZUZ1bmN0aW9u
c0RlY2xhcmF0aW9ucwogc3ViIGdlbmVyYXRlSGVhZGVyCiB7CiAgICAgbXkgQGhlYWRlckNvbnRl
bnQgPSBzcGxpdCgiXHIiLCAkbGljZW5zZVRlbXBsYXRlKTsKLSAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiI2lmbmRlZiAke2ZpbGVOYW1lfV9oIik7Ci0gICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiNkZWZpbmUgJHtmaWxlTmFtZX1faCIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWZu
ZGVmICR7ZnJvbnRlbmRDbGFzc05hbWV9X2giKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
I2RlZmluZSAke2Zyb250ZW5kQ2xhc3NOYW1lfV9oIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiIpOwogCiAgICAgbXkgQGZvcndhcmRIZWFkZXJzOwpAQCAtMjEzLDExICsyMzksMTEgQEAg
c3ViIGdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgc29ydCBAZm9yd2Fy
ZERlY2xhcmF0aW9ucyk7CiAKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiIik7Ci0gICAgcHVz
aChAaGVhZGVyQ29udGVudCwgQGNsYXNzRGVmaW5pdGlvbik7CisgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgQGZyb250ZW5kQ2xhc3NEZWNsYXJhdGlvbik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiIpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9IC8vIG5hbWVzcGFjZSAkbmFtZXNw
YWNlIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiIpOwotICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIjZW5kaWYgLy8gIWRlZmluZWQoJHtmaWxlTmFtZX1faCkiKTsKKyAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiI2VuZGlmIC8vICFkZWZpbmVkKCR7ZnJvbnRlbmRDbGFzc05hbWV9X2gp
Iik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiIpOwogICAgIHJldHVybiBAaGVhZGVyQ29u
dGVudDsKIH0KQEAgLTIyNiw3ICsyNTIsNyBAQCBzdWIgZ2VuZXJhdGVTb3VyY2UKIHsKICAgICBt
eSBAc291cmNlQ29udGVudCA9IHNwbGl0KCJcciIsICRsaWNlbnNlVGVtcGxhdGUpOwogICAgIHB1
c2goQHNvdXJjZUNvbnRlbnQsICJcbiNpbmNsdWRlIFwiY29uZmlnLmhcIiIpOwotICAgIHB1c2go
QHNvdXJjZUNvbnRlbnQsICIjaW5jbHVkZSBcIlJlbW90ZSRmaWxlTmFtZS5oXCIiKTsKKyAgICBw
dXNoKEBzb3VyY2VDb250ZW50LCAiI2luY2x1ZGUgXCIkZnJvbnRlbmRDbGFzc05hbWUuaFwiIik7
CiAgICAgcHVzaChAc291cmNlQ29udGVudCwgIiIpOwogICAgIHB1c2goQHNvdXJjZUNvbnRlbnQs
ICIjaWYgRU5BQkxFKElOU1BFQ1RPUikiKTsKICAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiIik7
CkBAIC0yNDgsNDMgKzI3NCwxMiBAQCBzdWIgZ2VuZXJhdGVTb3VyY2UKICAgICByZXR1cm4gQHNv
dXJjZUNvbnRlbnQ7CiB9CiAKLXN1YiBnZW5lcmF0ZUZ1bmN0aW9uc0ltcGwKLXsKLSAgICBteSAk
Y2xhc3NOYW1lID0gc2hpZnQ7Ci0gICAgbXkgJGZ1bmN0aW9uID0gc2hpZnQ7Ci0gICAgbXkgJGFy
Z3VtZW50cyA9IHNoaWZ0OwotCi0gICAgbXkgQGZ1bmM7Ci0KLSAgICBteSAkZnVuY3Rpb25OYW1l
ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7Ci0KLSAgICBwdXNoKEBmdW5jLCB0eXBlU3Bl
YygkZnVuY3Rpb24tPnNpZ25hdHVyZSwgMSkgLiAiICIgLiAkY2xhc3NOYW1lIC4gIjo6IiAuICRm
dW5jdGlvbk5hbWUgLiAiKCIgLiAkYXJndW1lbnRzIC4gIikiKTsKLSAgICBwdXNoKEBmdW5jLCAi
eyIpOwotCi0gICAgbXkgJG51bVBhcmFtZXRlcnMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307
Ci0gICAgaWYgKCRudW1QYXJhbWV0ZXJzID4gMCkgewotICAgICAgICBwdXNoKEBmdW5jLCAiICAg
IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gYXJndW1lbnRzID0gSW5zcGVjdG9yQXJyYXk6OmNyZWF0
ZSgpOyIpOwotICAgICAgICBwdXNoKEBmdW5jLCAiICAgIGFyZ3VtZW50cy0+cHVzaFN0cmluZyhc
IiRmdW5jdGlvbk5hbWVcIik7Iik7Ci0gICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAoQHsk
ZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7Ci0gICAgICAgICAgICBteSAkcHVzaENhbGwgPSAgJHR5
cGVUcmFuc2Zvcm17JHBhcmFtZXRlci0+dHlwZX0tPnsicHVzaCJ9OwotICAgICAgICAgICAgcHVz
aChAZnVuYywgIiAgICBhcmd1bWVudHMtPiRwdXNoQ2FsbCgiIC4gJHBhcmFtZXRlci0+bmFtZSAu
ICIpOyIpOwotICAgICAgICB9Ci0gICAgICAgIHB1c2goQGZ1bmMsICIgICAgbV9pbnNwZWN0b3JD
bGllbnQtPnNlbmRNZXNzYWdlVG9Gcm9udGVuZChhcmd1bWVudHMtPnRvSlNPTlN0cmluZygpKTsi
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBwdXNoKEBmdW5jLCAiICAgIHNlbmRTaW1wbGVNZXNz
YWdlVG9Gcm9udGVuZChcIiRmdW5jdGlvbk5hbWVcIik7Iik7Ci0gICAgfQotCi0gICAgcHVzaChA
ZnVuYywgIn0iKTsKLSAgICBwdXNoKEBmdW5jLCAiIik7Ci0gICAgcmV0dXJuIEBmdW5jOwotfQot
CiBzdWIgZmluaXNoCiB7CiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OwogCi0gICAgb3BlbihteSAk
U09VUkNFLCAiPiRvdXRwdXREaXIvUmVtb3RlJGZpbGVOYW1lLmNwcCIpIHx8IGRpZSAiQ291bGRu
J3Qgb3BlbiBmaWxlICRvdXRwdXREaXIvUmVtb3RlJGZpbGVOYW1lLmNwcCI7Ci0gICAgb3Blbiht
eSAkSEVBREVSLCAiPiRvdXRwdXREaXIvUmVtb3RlJGZpbGVOYW1lLmgiKSB8fCBkaWUgIkNvdWxk
bid0IG9wZW4gZmlsZSAkb3V0cHV0RGlyL1JlbW90ZSRmaWxlTmFtZS5oIjsKKyAgICBvcGVuKG15
ICRTT1VSQ0UsICI+JG91dHB1dERpci8kZnJvbnRlbmRDbGFzc05hbWUuY3BwIikgfHwgZGllICJD
b3VsZG4ndCBvcGVuIGZpbGUgJG91dHB1dERpci8kZnJvbnRlbmRDbGFzc05hbWUuY3BwIjsKKyAg
ICBvcGVuKG15ICRIRUFERVIsICI+JG91dHB1dERpci8kZnJvbnRlbmRDbGFzc05hbWUuaCIpIHx8
IGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRvdXRwdXREaXIvJGZyb250ZW5kQ2xhc3NOYW1lLmgi
OwogCiAgICAgcHJpbnQgJFNPVVJDRSBqb2luKCJcbiIsIGdlbmVyYXRlU291cmNlKCkpOwogICAg
IGNsb3NlKCRTT1VSQ0UpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
LmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMDk4NmFjYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5pZGwKQEAgLTAsMCArMSwxNTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA4IE1hdHQgTGlsZWsgPHdlYmtpdEBtYXR0bGlsZWsuY29tPgorICogQ29weXJp
Z2h0IChDKSAyMDA5LCAyMDAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBj
b3JlIHsKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gSW5zcGVjdG9yIHsK
KyAgICAgICAgW25vdGlmeV0gdm9pZCBhZGRSZWNvcmRUb1RpbWVsaW5lKGluIE9iamVjdCByZWNv
cmQpOworICAgICAgICBbbm90aWZ5XSB2b2lkIGFkZE5vZGVzVG9TZWFyY2hSZXN1bHQoaW4gQXJy
YXkgbm9kZUlkcyk7CisgICAgICAgIFtub3RpZnldIHZvaWQgYXR0cmlidXRlc1VwZGF0ZWQoaW4g
bG9uZyBpZCwgaW4gQXJyYXkgYXR0cmlidXRlcyk7CisgICAgICAgIFtub3RpZnldIHZvaWQgY2hp
bGROb2RlQ291bnRVcGRhdGVkKGluIGxvbmcgaWQsIGluIGludCBuZXdWYWx1ZSk7CisgICAgICAg
IFtub3RpZnldIHZvaWQgY2hpbGROb2RlSW5zZXJ0ZWQoaW4gbG9uZyBwYXJlbnRJZCwgaW4gbG9u
ZyBwcmV2SWQsIGluIE9iamVjdCBub2RlKTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCBjaGlsZE5v
ZGVSZW1vdmVkKGluIGxvbmcgcGFyZW50SWQsIGluIGxvbmcgaWQpOworICAgICAgICBbbm90aWZ5
XSB2b2lkIHNldENoaWxkTm9kZXMoaW4gbG9uZyBwYXJlbnRJZCwgaW4gQXJyYXkgbm9kZXMpOwor
ICAgICAgICBbbm90aWZ5XSB2b2lkIHNldERldGFjaGVkUm9vdChpbiBPYmplY3Qgcm9vdCk7Cisg
ICAgICAgIFtub3RpZnldIHZvaWQgc2V0RG9jdW1lbnQoaW4gVmFsdWUgcm9vdCk7CisKKyAgICAg
ICAgdm9pZCBzdG9yZUxhc3RBY3RpdmVQYW5lbChpbiBTdHJpbmcgcGFuZWxOYW1lKTsKKworICAg
ICAgICB2b2lkIHNhdmVBcHBsaWNhdGlvblNldHRpbmdzKGluIFN0cmluZyBzZXR0aW5ncyk7Cisg
ICAgICAgIHZvaWQgc2F2ZVNlc3Npb25TZXR0aW5ncyhpbiBTdHJpbmcgc2V0dGluZ3MpOworCisg
ICAgICAgIHZvaWQgZW5hYmxlU2VhcmNoaW5nRm9yTm9kZSgpOworICAgICAgICB2b2lkIGRpc2Fi
bGVTZWFyY2hpbmdGb3JOb2RlKCk7CisKKyAgICAgICAgdm9pZCBlbmFibGVNb25pdG9yaW5nWEhS
KCk7CisgICAgICAgIHZvaWQgZGlzYWJsZU1vbml0b3JpbmdYSFIoKTsKKworICAgICAgICB2b2lk
IGVuYWJsZVJlc291cmNlVHJhY2tpbmcoaW4gYm9vbGVhbiBhbHdheXMpOworICAgICAgICB2b2lk
IGRpc2FibGVSZXNvdXJjZVRyYWNraW5nKGluIGJvb2xlYW4gYWx3YXlzKTsKKyAgICAgICAgdm9p
ZCBnZXRSZXNvdXJjZUNvbnRlbnQoaW4gdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKKyAgICAg
ICAgdm9pZCByZWxvYWRQYWdlKCk7CisKKyAgICAgICAgdm9pZCBzdGFydFRpbWVsaW5lUHJvZmls
ZXIoKTsKKyAgICAgICAgdm9pZCBzdG9wVGltZWxpbmVQcm9maWxlcigpOworCisjaWYgZGVmaW5l
ZChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdH
RVIKKyAgICAgICAgdm9pZCBlbmFibGVEZWJ1Z2dlcihpbiBib29sZWFuIGFsd2F5cyk7CisgICAg
ICAgIHZvaWQgZGlzYWJsZURlYnVnZ2VyKGluIGJvb2xlYW4gYWx3YXlzKTsKKworICAgICAgICB2
b2lkIHNldEJyZWFrcG9pbnQoaW4gU3RyaW5nIHNvdXJjZUlELCBpbiB1bnNpZ25lZCBsb25nIGxp
bmVOdW1iZXIsIGluIGJvb2xlYW4gZW5hYmxlZCwgaW4gU3RyaW5nIGNvbmRpdGlvbik7CisgICAg
ICAgIHZvaWQgcmVtb3ZlQnJlYWtwb2ludChpbiBTdHJpbmcgc291cmNlSUQsIGluIHVuc2lnbmVk
IGxvbmcgbGluZU51bWJlcik7CisgICAgICAgIHZvaWQgYWN0aXZhdGVCcmVha3BvaW50cygpOwor
ICAgICAgICB2b2lkIGRlYWN0aXZhdGVCcmVha3BvaW50cygpOworCisgICAgICAgIHZvaWQgcGF1
c2VJbkRlYnVnZ2VyKCk7CisgICAgICAgIHZvaWQgcmVzdW1lRGVidWdnZXIoKTsKKworICAgICAg
ICB2b2lkIHN0ZXBPdmVyU3RhdGVtZW50SW5EZWJ1Z2dlcigpOworICAgICAgICB2b2lkIHN0ZXBJ
bnRvU3RhdGVtZW50SW5EZWJ1Z2dlcigpOworICAgICAgICB2b2lkIHN0ZXBPdXRPZkZ1bmN0aW9u
SW5EZWJ1Z2dlcigpOworCisgICAgICAgIHZvaWQgc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShp
biBsb25nIHBhdXNlT25FeGNlcHRpb25zU3RhdGUpOworCisgICAgICAgIHZvaWQgZWRpdFNjcmlw
dFNvdXJjZShpbiBTdHJpbmcgc291cmNlSUQsIGluIFN0cmluZyBuZXdDb250ZW50KTsKKyAgICAg
ICAgdm9pZCBnZXRTY3JpcHRTb3VyY2UoaW4gU3RyaW5nIHNvdXJjZUlEKTsKKworICAgICAgICB2
b2lkIGVuYWJsZVByb2ZpbGVyKGluIGJvb2xlYW4gYWx3YXlzKTsKKyAgICAgICAgdm9pZCBkaXNh
YmxlUHJvZmlsZXIoaW4gYm9vbGVhbiBhbHdheXMpOworCisgICAgICAgIHZvaWQgc3RhcnRQcm9m
aWxpbmcoKTsKKyAgICAgICAgdm9pZCBzdG9wUHJvZmlsaW5nKCk7CisKKyAgICAgICAgdm9pZCBn
ZXRQcm9maWxlSGVhZGVycygpOworICAgICAgICB2b2lkIGdldFByb2ZpbGUoaW4gdW5zaWduZWQg
bG9uZyB1aWQpOworCisgICAgICAgIHZvaWQgcmVtb3ZlUHJvZmlsZShpbiB1bnNpZ25lZCBsb25n
IHVpZCk7CisgICAgICAgIHZvaWQgY2xlYXJQcm9maWxlcygpOworCisgICAgICAgIHZvaWQgdGFr
ZUhlYXBTbmFwc2hvdCgpOworI2VuZGlmCisgICAgICAgIHZvaWQgc2V0SW5qZWN0ZWRTY3JpcHRT
b3VyY2UoaW4gU3RyaW5nIHNjcmlwdFNvdXJjZSk7CisgICAgICAgIHZvaWQgZGlzcGF0Y2hPbklu
amVjdGVkU2NyaXB0KGluIGxvbmcgaW5qZWN0ZWRTY3JpcHRJZCwgaW4gU3RyaW5nIG1ldGhvZE5h
bWUsIGluIFN0cmluZyBhcmd1bWVudHMsIGluIGJvb2xlYW4gYXN5bmMpOworCisgICAgICAgIHZv
aWQgYWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZChpbiBTdHJpbmcgc2NyaXB0U291cmNlKTsKKyAg
ICAgICAgdm9pZCByZW1vdmVBbGxTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCgpOworCisgICAgICAg
IHZvaWQgZ2V0Q2hpbGROb2RlcyhpbiBsb25nIG5vZGVJZCk7CisgICAgICAgIFtjdXN0b3JSZXNw
b25zZT1kaWRBcHBseURvbUNoYW5nZV0gdm9pZCBzZXRBdHRyaWJ1dGUoaW4gbG9uZyBlbGVtZW50
SWQsIGluIFN0cmluZyBuYW1lLCBpbiBTdHJpbmcgdmFsdWUsIG91dCBib29sZWFuIHN1Y2Nlc3Mp
OworICAgICAgICBbY3VzdG9tUmVzcG9uc2U9ZGlkQXBwbHlEb21DaGFuZ2VdIHZvaWQgcmVtb3Zl
QXR0cmlidXRlKGluIGxvbmcgZWxlbWVudElkLCBpbiBTdHJpbmcgbmFtZSwgb3V0IGJvb2xlYW4g
c3VjY2Vzcyk7CisgICAgICAgIHZvaWQgc2V0VGV4dE5vZGVWYWx1ZShpbiBsb25nIG5vZGVJZCwg
aW4gU3RyaW5nIHZhbHVlKTsKKyAgICAgICAgdm9pZCBnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUo
aW4gbG9uZyBub2RlSWQsIG91dCBsb25nIG5vZGVJZCwgb3V0IEFycmF5IGxpc3RlbmVyc0FycmF5
KTsKKyAgICAgICAgdm9pZCBjb3B5Tm9kZShpbiBsb25nIG5vZGVJZCk7CisgICAgICAgIHZvaWQg
cmVtb3ZlTm9kZShpbiBsb25nIG5vZGVJZCwgb3V0IGxvbmcgbm9kZUlkKTsKKyAgICAgICAgdm9p
ZCBjaGFuZ2VUYWdOYW1lKGluIGxvbmcgbm9kZUlkLCBpbiBTdHJpbmcgbmV3VGFnTmFtZSwgb3V0
IGxvbmcgbm9kZUlkKTsKKyAgICAgICAgdm9pZCBnZXRPdXRlckhUTUwoaW4gbG9uZyBub2RlSWQs
IG91dCBTdHJpbmcgb3V0ZXJIVE1MKTsKKyAgICAgICAgdm9pZCBzZXRPdXRlckhUTUwoaW4gbG9u
ZyBub2RlSWQsIGluIFN0cmluZyBvdXRlckhUTUwsIG91dCBsb25nIG5vZGVJZCk7CisgICAgICAg
IHZvaWQgYWRkSW5zcGVjdGVkTm9kZShpbiBsb25nIG5vZGVJZCk7CisgICAgICAgIHZvaWQgcGVy
Zm9ybVNlYXJjaChpbiBTdHJpbmcgcXVlcnksIGluIGJvb2xlYW4gcnVuU3luY2hyb25vdXNseSk7
CisgICAgICAgIHZvaWQgc2VhcmNoQ2FuY2VsZWQoKTsKKyAgICAgICAgdm9pZCBwdXNoTm9kZUJ5
UGF0aFRvRnJvbnRlbmQoaW4gU3RyaW5nIHBhdGgpOworCisgICAgICAgIHZvaWQgY2xlYXJDb25z
b2xlTWVzc2FnZXMoKTsKKworICAgICAgICB2b2lkIGhpZ2hsaWdodERPTU5vZGUoaW4gbG9uZyBu
b2RlSWQpOworICAgICAgICB2b2lkIGhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisKKyAgICAgICAg
dm9pZCBnZXRTdHlsZXMoaW4gbG9uZyBub2RlSWQsIGluIGJvb2xlYW4gYXV0aE9ubHksIG91dCBW
YWx1ZSBzdHlsZXMpOworICAgICAgICB2b2lkIGdldEFsbFN0eWxlcyhvdXQgQXJyYXkgc3R5bGVz
KTsKKyAgICAgICAgdm9pZCBnZXRJbmxpbmVTdHlsZShpbiBsb25nIG5vZGVJZCwgb3V0IFZhbHVl
IHN0eWxlKTsKKyAgICAgICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlKGluIGxvbmcgbm9kZUlkLCBv
dXQgVmFsdWUgc3R5bGUpOworICAgICAgICB2b2lkIGdldFN0eWxlU2hlZXQoaW4gbG9uZyBzdHls
ZVNoZWV0SWQsIG91dCBWYWx1ZSBzdHlsZVNoZWV0KTsKKyAgICAgICAgdm9pZCBnZXRSdWxlUmFu
Z2VzRm9yU3R5bGVTaGVldElkKGluIGxvbmcgc3R5bGVTaGVldElkKTsKKyAgICAgICAgdm9pZCBh
cHBseVN0eWxlVGV4dChpbiBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBzdHlsZVRleHQsIGluIFN0
cmluZyBwcm9wZXJ0eU5hbWUsIG91dCBib29sZWFuIHN1Y2Nlc3MsIG91dCBWYWx1ZSBzdHlsZSwg
b3V0IEFycmF5IGNoYW5nZWRQcm9wZXJ0aWVzKTsKKyAgICAgICAgdm9pZCBzZXRTdHlsZVRleHQo
aW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcgc3R5bGVUZXh0LCBvdXQgYm9vbGVhbiBzdWNjZXNz
KTsKKyAgICAgICAgdm9pZCBzZXRTdHlsZVByb3BlcnR5KGluIGxvbmcgc3R5bGVJZCwgaW4gU3Ry
aW5nIG5hbWUsIGluIFN0cmluZyB2YWx1ZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcyk7CisgICAgICAg
IHZvaWQgdG9nZ2xlU3R5bGVFbmFibGVkKGluIGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5nIHByb3Bl
cnR5TmFtZSwgaW4gYm9vbGVhbiBkaXNhYmxlZCwgb3V0IFZhbHVlIHN0eWxlKTsKKyAgICAgICAg
dm9pZCBzZXRSdWxlU2VsZWN0b3IoaW4gbG9uZyBydWxlSWQsIGluIFN0cmluZyBzZWxlY3Rvciwg
aW4gbG9uZyBzZWxlY3RlZE5vZGVJZCwgb3V0IFZhbHVlIHJ1bGUsIG91dCBib29sZWFuIHNlbGVj
dG9yQWZmZWN0c05vZGUpOworICAgICAgICB2b2lkIGFkZFJ1bGUoaW4gU3RyaW5nIHNlbGVjdG9y
LCBpbiBsb25nIHNlbGVjdGVkTm9kZUlkLCBvdXQgVmFsdWUgcnVsZSwgb3V0IGJvb2xlYW4gc2Vs
ZWN0b3JBZmZlY3RzTm9kZSk7CisKKyAgICAgICAgdm9pZCBnZXRDb29raWVzKCk7CisgICAgICAg
IHZvaWQgZGVsZXRlQ29va2llKGluIFN0cmluZyBjb29raWVOYW1lLCBpbiBTdHJpbmcgZG9tYWlu
KTsKKworI2lmIGRlZmluZWQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICAg
ICAgdm9pZCBnZXRBcHBsaWNhdGlvbkNhY2hlcygpOworI2VuZGlmCisKKyAgICAgICAgdm9pZCBy
ZWxlYXNlV3JhcHBlck9iamVjdEdyb3VwKGluIGxvbmcgaW5qZWN0ZWRTY3JpcHRJZCwgaW4gU3Ry
aW5nIG9iamVjdEdyb3VwKTsKKyAgICAgICAgdm9pZCBkaWRFdmFsdWF0ZUZvclRlc3RJbkZyb250
ZW5kKGluIFN0cmluZyBqc29uUmVzdWx0KTsKKworI2lmIGRlZmluZWQoRU5BQkxFX0RBVEFCQVNF
KSAmJiBFTkFCTEVfREFUQUJBU0UKKyAgICAgICAgdm9pZCBnZXREYXRhYmFzZVRhYmxlTmFtZXMo
aW4gbG9uZyBkYXRhYmFzZUlkKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChFTkFCTEVfRE9NX1NU
T1JBR0UpICYmIEVOQUJMRV9ET01fU1RPUkFHRQorICAgICAgICB2b2lkIGdldERPTVN0b3JhZ2VF
bnRyaWVzKGluIGxvbmcgc3RvcmFnZUlkKTsKKyAgICAgICAgdm9pZCBzZXRET01TdG9yYWdlSXRl
bShpbiBsb25nIHN0b3JhZ2VJZCwgaW4gU3RyaW5nIGtleSwgaW4gU3RyaW5nIHZhbHVlKTsKKyAg
ICAgICAgdm9pZCByZW1vdmVET01TdG9yYWdlSXRlbShpbiBsb25nIHN0b3JhZ2VJZCwgaW4gU3Ry
aW5nIGtleSk7CisjZW5kaWYKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NT
U3RvcmUuY3BwCmluZGV4IDQxM2ZiOGIuLjlkZmZlZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NTdG9yZS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUmVzb3VyY2UuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgIlJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5oIgor
I2luY2x1ZGUgIlJlbW90ZUluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVl
dExpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTUsMTMgKzk1LDEzIEBAIENTU1N0
eWxlU2hlZXQqIEluc3BlY3RvckNTU1N0b3JlOjppbnNwZWN0b3JTdHlsZVNoZWV0KERvY3VtZW50
KiBvd25lckRvY3VtZW50LCBiCiAgICAgaWYgKCFlYykKICAgICAgICAgb3duZXJEb2N1bWVudC0+
aGVhZCgpLT5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQsIGVjKTsKICAgICBpZiAoZWMpIHsKLSAg
ICAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5pbnNwZWN0b3JGcm9udGVuZDIoKS0+ZGlkQWRk
UnVsZShjYWxsSWQsIEluc3BlY3RvclZhbHVlOjpudWxsKCksIGZhbHNlKTsKKyAgICAgICAgbV9p
bnNwZWN0b3JDb250cm9sbGVyLT5yZW1vdGVJbnNwZWN0b3JGcm9udGVuZCgpLT5kaWRBZGRSdWxl
KGNhbGxJZCwgSW5zcGVjdG9yVmFsdWU6Om51bGwoKSwgZmFsc2UpOwogICAgICAgICByZXR1cm4g
MDsKICAgICB9CiAgICAgU3R5bGVTaGVldExpc3QqIHN0eWxlU2hlZXRzID0gb3duZXJEb2N1bWVu
dC0+c3R5bGVTaGVldHMoKTsKICAgICBTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gc3R5bGVTaGVl
dHMtPml0ZW0oc3R5bGVTaGVldHMtPmxlbmd0aCgpIC0gMSk7CiAgICAgaWYgKCFzdHlsZVNoZWV0
LT5pc0NTU1N0eWxlU2hlZXQoKSkgewotICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmlu
c3BlY3RvckZyb250ZW5kMigpLT5kaWRBZGRSdWxlKGNhbGxJZCwgSW5zcGVjdG9yVmFsdWU6Om51
bGwoKSwgZmFsc2UpOworICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPnJlbW90ZUluc3Bl
Y3RvckZyb250ZW5kKCktPmRpZEFkZFJ1bGUoY2FsbElkLCBJbnNwZWN0b3JWYWx1ZTo6bnVsbCgp
LCBmYWxzZSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICBDU1NTdHlsZVNoZWV0KiBp
bnNwZWN0b3JTdHlsZVNoZWV0ID0gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hl
ZXQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBlZDI1
Njk2Li40ZmVmMzAyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cApAQCAtNjgsNyArNjgsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQcm9ncmVz
c1RyYWNrZXIuaCIKICNpbmNsdWRlICJSYW5nZS5oIgotI2luY2x1ZGUgIlJlbW90ZUluc3BlY3Rv
ckZyb250ZW5kMi5oIgorI2luY2x1ZGUgIlJlbW90ZUluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5j
bHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgpAQCAtNDg2LDEwICs0ODYsMTAgQEAgdm9pZCBJbnNw
ZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoY29uc3QgU2NyaXB0T2JqZWN0JiB3ZWJJ
bnNwZWN0b3IpCiAgICAgbV9vcGVuaW5nRnJvbnRlbmQgPSBmYWxzZTsKICAgICByZWxlYXNlRnJv
bnRlbmRMaWZldGltZUFnZW50cygpOwogICAgIG1fZnJvbnRlbmQgPSBuZXcgSW5zcGVjdG9yRnJv
bnRlbmQod2ViSW5zcGVjdG9yLCBtX2NsaWVudCk7Ci0gICAgbV9mcm9udGVuZDIgPSBuZXcgSW5z
cGVjdG9yRnJvbnRlbmQyKG1fY2xpZW50KTsKLSAgICBtX2RvbUFnZW50ID0gSW5zcGVjdG9yRE9N
QWdlbnQ6OmNyZWF0ZShtX2Nzc1N0b3JlLmdldCgpLCBtX2Zyb250ZW5kMi5nZXQoKSk7CisgICAg
bV9yZW1vdGVGcm9udGVuZCA9IG5ldyBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZChtX2NsaWVudCk7
CisgICAgbV9kb21BZ2VudCA9IEluc3BlY3RvckRPTUFnZW50OjpjcmVhdGUobV9jc3NTdG9yZS5n
ZXQoKSwgbV9yZW1vdGVGcm9udGVuZC5nZXQoKSk7CiAgICAgaWYgKG1fdGltZWxpbmVBZ2VudCkK
LSAgICAgICAgbV90aW1lbGluZUFnZW50LT5yZXNldEZyb250ZW5kUHJveHlPYmplY3QobV9mcm9u
dGVuZDIuZ2V0KCkpOworICAgICAgICBtX3RpbWVsaW5lQWdlbnQtPnJlc2V0RnJvbnRlbmRQcm94
eU9iamVjdChtX3JlbW90ZUZyb250ZW5kLmdldCgpKTsKIAogICAgIC8vIEluaXRpYWxpemUgV2Vi
IEluc3BlY3RvciB0aXRsZS4KICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0ZWRVUkxDaGFuZ2VkKG1f
aW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT51cmwoKS5zdHJpbmcoKSk7CkBA
IC0xMTYzLDcgKzExNjMsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0VGltZWxp
bmVQcm9maWxlcigpCiAgICAgaWYgKG1fdGltZWxpbmVBZ2VudCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV90aW1lbGluZUFnZW50ID0gbmV3IEluc3BlY3RvclRpbWVsaW5lQWdlbnQobV9mcm9u
dGVuZDIuZ2V0KCkpOworICAgIG1fdGltZWxpbmVBZ2VudCA9IG5ldyBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KG1fcmVtb3RlRnJvbnRlbmQuZ2V0KCkpOwogICAgIGlmIChtX2Zyb250ZW5kKQogICAg
ICAgICBtX2Zyb250ZW5kLT50aW1lbGluZVByb2ZpbGVyV2FzU3RhcnRlZCgpOwogICAgIG1fY2xp
ZW50LT50aW1lbGluZVByb2ZpbGVyV2FzU3RhcnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5oCmluZGV4IDFmNDE2YTAuLmVlMGM5ZDYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTY5LDcgKzY5LDYgQEAgY2xhc3MgSW5zcGVjdG9y
Q1NTU3RvcmU7CiBjbGFzcyBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U7CiBjbGFzcyBJbnNw
ZWN0b3JEYXRhYmFzZVJlc291cmNlOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7Ci1jbGFzcyBJ
bnNwZWN0b3JGcm9udGVuZDI7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudDsKIGNsYXNz
IEluc3BlY3RvclJlc291cmNlOwogY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDsKQEAgLTc4
LDYgKzc3LDcgQEAgY2xhc3MgSW5zcGVjdG9yV29ya2VyUmVzb3VyY2U7CiBjbGFzcyBLVVJMOwog
Y2xhc3MgTm9kZTsKIGNsYXNzIFBhZ2U7CitjbGFzcyBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDsK
IGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBS
ZXNvdXJjZUVycm9yOwpAQCAtMjIwLDcgKzIyMCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBSZXNv
dXJjZXNNYXAmIHJlc291cmNlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VzOyB9CiAgICAg
SW5zcGVjdG9yUmVzb3VyY2UqIHJlc291cmNlRm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKTsKICAg
ICBJbnNwZWN0b3JGcm9udGVuZCogaW5zcGVjdG9yRnJvbnRlbmQoKSB7IHJldHVybiBtX2Zyb250
ZW5kLmdldCgpOyB9Ci0gICAgSW5zcGVjdG9yRnJvbnRlbmQyKiBpbnNwZWN0b3JGcm9udGVuZDIo
KSB7IHJldHVybiBtX2Zyb250ZW5kMi5nZXQoKTsgfQorICAgIFJlbW90ZUluc3BlY3RvckZyb250
ZW5kKiByZW1vdGVJbnNwZWN0b3JGcm9udGVuZCgpIHsgcmV0dXJuIG1fcmVtb3RlRnJvbnRlbmQu
Z2V0KCk7IH0KIAogICAgIHZvaWQgZHJhd05vZGVIaWdobGlnaHQoR3JhcGhpY3NDb250ZXh0Jikg
Y29uc3Q7CiAKQEAgLTM0NSw3ICszNDUsNyBAQCBwcml2YXRlOgogICAgIE93blB0cjxJbnNwZWN0
b3JGcm9udGVuZENsaWVudD4gbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudDsKICAgICBib29sIG1f
b3BlbmluZ0Zyb250ZW5kOwogICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZD4gbV9mcm9udGVu
ZDsKLSAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmQyPiBtX2Zyb250ZW5kMjsKKyAgICBPd25Q
dHI8UmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQ+IG1fcmVtb3RlRnJvbnRlbmQ7CiAgICAgUmVmUHRy
PEluc3BlY3RvckRPTUFnZW50PiBtX2RvbUFnZW50OwogICAgIE93blB0cjxJbnNwZWN0b3JDU1NT
dG9yZT4gbV9jc3NTdG9yZTsKICAgICBPd25QdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gbV90
aW1lbGluZUFnZW50OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4
IDQ2YmM5MzguLjQ5NDZmYWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHAKQEAgLTU5LDcgKzU5LDcgQEAKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiTm9kZUxp
c3QuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgIlJlbW90ZUluc3Bl
Y3RvckZyb250ZW5kMi5oIgorI2luY2x1ZGUgIlJlbW90ZUluc3BlY3RvckZyb250ZW5kLmgiCiAj
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5o
IgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKQEAgLTE5NSw3ICsxOTUsNyBAQCBw
dWJsaWM6CiAKIH0KIAotSW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFnZW50KEluc3Bl
Y3RvckNTU1N0b3JlKiBjc3NTdG9yZSwgSW5zcGVjdG9yRnJvbnRlbmQyKiBmcm9udGVuZCkKK0lu
c3BlY3RvckRPTUFnZW50OjpJbnNwZWN0b3JET01BZ2VudChJbnNwZWN0b3JDU1NTdG9yZSogY3Nz
U3RvcmUsIFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKICAgICA6IEV2ZW50TGlz
dGVuZXIoSW5zcGVjdG9yRE9NQWdlbnRUeXBlKQogICAgICwgbV9jc3NTdG9yZShjc3NTdG9yZSkK
ICAgICAsIG1fZnJvbnRlbmQoZnJvbnRlbmQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuaAppbmRleCBjMDBjMTMzLi43Y2Q1YTA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmgKQEAgLTU2LDcgKzU2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNz
IENTU1N0eWxlU2hlZXQ7CiAgICAgY2xhc3MgRWxlbWVudDsKICAgICBjbGFzcyBFdmVudDsKLSAg
ICBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDI7CisgICAgY2xhc3MgUmVtb3RlSW5zcGVjdG9yRnJv
bnRlbmQ7CiAgICAgY2xhc3MgTWF0Y2hKb2I7CiAgICAgY2xhc3MgTmFtZU5vZGVNYXA7CiAgICAg
Y2xhc3MgTm9kZTsKQEAgLTc3LDcgKzc3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
Y2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CiAgICAgcHVi
bGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JET01BZ2VudD4gY3JlYXRl
KEluc3BlY3RvckNTU1N0b3JlKiBjc3NTdG9yZSwgSW5zcGVjdG9yRnJvbnRlbmQyKiBmcm9udGVu
ZCkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yRE9NQWdlbnQ+IGNyZWF0ZShJ
bnNwZWN0b3JDU1NTdG9yZSogY3NzU3RvcmUsIFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBmcm9u
dGVuZCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnNwZWN0
b3JET01BZ2VudChjc3NTdG9yZSwgZnJvbnRlbmQpKTsKICAgICAgICAgfQpAQCAtODksNyArODks
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgOiAwOwogICAgICAgICB9
CiAKLSAgICAgICAgSW5zcGVjdG9yRE9NQWdlbnQoSW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0b3Jl
LCBJbnNwZWN0b3JGcm9udGVuZDIqIGZyb250ZW5kKTsKKyAgICAgICAgSW5zcGVjdG9yRE9NQWdl
bnQoSW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0b3JlLCBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQpOwogICAgICAgICB+SW5zcGVjdG9yRE9NQWdlbnQoKTsKIAogICAgICAgICB2b2lk
IHJlc2V0KCk7CkBAIC0xOTIsNyArMTkyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2b2lkIGRpc2NhcmRCaW5kaW5ncygpOwogCiAgICAgICAgIEluc3BlY3RvckNTU1N0b3JlKiBt
X2Nzc1N0b3JlOwotICAgICAgICBJbnNwZWN0b3JGcm9udGVuZDIqIG1fZnJvbnRlbmQ7CisgICAg
ICAgIFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBtX2Zyb250ZW5kOwogICAgICAgICBOb2RlVG9J
ZE1hcCBtX2RvY3VtZW50Tm9kZVRvSWRNYXA7CiAgICAgICAgIC8vIE93bnMgbm9kZSBtYXBwaW5n
cyBmb3IgZGFuZ2xpbmcgbm9kZXMuCiAgICAgICAgIFZlY3RvcjxOb2RlVG9JZE1hcCo+IG1fZGFu
Z2xpbmdOb2RlVG9JZE1hcHM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZDIuaWRsIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlk
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjk2ZDcxNS4uMDAwMDAwMAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaWRsCisrKyAvZGV2L251bGwKQEAg
LTEsMzkgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDA5IFRoZSBDaHJvbWl1bSBBdXRob3Jz
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotLy8gZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZS4KLQotbW9kdWxlIFdlYkNvcmUgewotCi0gICAgaW50ZXJmYWNlIFtDb25k
aXRpb25hbD1JTlNQRUNUT1IsIEpTXSBJbnNwZWN0b3JGcm9udGVuZDIgewotICAgICAgICAvLyBU
aW1lbGluZUFnZW50Ci0gICAgICAgIHZvaWQgYWRkUmVjb3JkVG9UaW1lbGluZShpbiBPYmplY3Qg
cmVjb3JkKTsKLQotICAgICAgICAvLyBET01BZ2VudAotICAgICAgICB2b2lkIGFkZE5vZGVzVG9T
ZWFyY2hSZXN1bHQoaW4gQXJyYXkgbm9kZUlkcyk7Ci0gICAgICAgIHZvaWQgYXR0cmlidXRlc1Vw
ZGF0ZWQoaW4gbG9uZyBpZCwgaW4gQXJyYXkgYXR0cmlidXRlcyk7Ci0gICAgICAgIHZvaWQgY2hp
bGROb2RlQ291bnRVcGRhdGVkKGluIGxvbmcgaWQsIGluIGludCBuZXdWYWx1ZSk7Ci0gICAgICAg
IHZvaWQgY2hpbGROb2RlSW5zZXJ0ZWQoaW4gbG9uZyBwYXJlbnRJZCwgaW4gbG9uZyBwcmV2SWQs
IGluIE9iamVjdCBub2RlKTsKLSAgICAgICAgdm9pZCBjaGlsZE5vZGVSZW1vdmVkKGluIGxvbmcg
cGFyZW50SWQsIGluIGxvbmcgaWQpOwotICAgICAgICB2b2lkIGRpZEFkZFJ1bGUoaW4gbG9uZyBj
YWxsSWQsIGluIFZhbHVlIHJ1bGUsIGluIGJvb2xlYW4gc2VsZWN0b3JBZmZlY3RzTm9kZSk7Ci0g
ICAgICAgIHZvaWQgZGlkQXBwbHlEb21DaGFuZ2UoaW4gbG9uZyBjYWxsSWQsIGluIGJvb2xlYW4g
c3VjY2Vzcyk7Ci0gICAgICAgIHZvaWQgZGlkQXBwbHlTdHlsZVRleHQoaW4gbG9uZyBjYWxsSWQs
IGluIGJvb2xlYW4gc3VjY2VzcywgaW4gVmFsdWUgc3R5bGUsIGluIEFycmF5IGNoYW5nZWRQcm9w
ZXJ0aWVzKTsKLSAgICAgICAgdm9pZCBkaWRDaGFuZ2VUYWdOYW1lKGluIGxvbmcgY2FsbElkLCBp
biBsb25nIG5vZGVJZCk7Ci0gICAgICAgIHZvaWQgZGlkR2V0QWxsU3R5bGVzKGluIGxvbmcgY2Fs
bElkLCBpbiBBcnJheSBzdHlsZXMpOwotICAgICAgICB2b2lkIGRpZEdldENoaWxkTm9kZXMoaW4g
bG9uZyBjYWxsSWQpOwotICAgICAgICB2b2lkIGRpZEdldENvbXB1dGVkU3R5bGUoaW4gbG9uZyBj
YWxsSWQsIGluIFZhbHVlIHN0eWxlKTsKLSAgICAgICAgdm9pZCBkaWRHZXRFdmVudExpc3RlbmVy
c0Zvck5vZGUoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkLCBpbiBBcnJheSBsaXN0ZW5l
cnNBcnJheSk7Ci0gICAgICAgIHZvaWQgZGlkR2V0SW5saW5lU3R5bGUoaW4gbG9uZyBjYWxsSWQs
IGluIFZhbHVlIHN0eWxlKTsKLSAgICAgICAgdm9pZCBkaWRHZXRPdXRlckhUTUwoaW4gbG9uZyBj
YWxsSWQsIGluIFN0cmluZyBvdXRlckhUTUwpOwotICAgICAgICB2b2lkIGRpZEdldFN0eWxlU2hl
ZXQoaW4gbG9uZyBjYWxsSWQsIGluIFZhbHVlIHN0eWxlU2hlZXQpOwotICAgICAgICB2b2lkIGRp
ZEdldFN0eWxlcyhpbiBsb25nIGNhbGxJZCwgaW4gVmFsdWUgc3R5bGVzKTsKLSAgICAgICAgdm9p
ZCBkaWRSZW1vdmVOb2RlKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIG5vZGVJZCk7Ci0gICAgICAg
IHZvaWQgZGlkU2V0T3V0ZXJIVE1MKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIG5vZGVJZCk7Ci0g
ICAgICAgIHZvaWQgZGlkU2V0UnVsZVNlbGVjdG9yKGluIGxvbmcgY2FsbElkLCBpbiBWYWx1ZSBy
dWxlLCBpbiBib29sZWFuIHNlbGVjdG9yQWZmZWN0c05vZGUpOwotICAgICAgICB2b2lkIGRpZFNl
dFN0eWxlUHJvcGVydHkoaW4gbG9uZyBjYWxsSWQsIGluIGJvb2xlYW4gc3VjY2Vzcyk7Ci0gICAg
ICAgIHZvaWQgZGlkU2V0U3R5bGVUZXh0KGluIGxvbmcgY2FsbElkLCBpbiBib29sZWFuIHN1Y2Nl
c3MpOwotICAgICAgICB2b2lkIGRpZFRvZ2dsZVN0eWxlRW5hYmxlZChpbiBsb25nIGNhbGxJZCwg
aW4gVmFsdWUgc3R5bGUpOwotICAgICAgICB2b2lkIHNldENoaWxkTm9kZXMoaW4gbG9uZyBwYXJl
bnRJZCwgaW4gQXJyYXkgbm9kZXMpOwotICAgICAgICB2b2lkIHNldERldGFjaGVkUm9vdChpbiBP
YmplY3Qgcm9vdCk7Ci0gICAgICAgIHZvaWQgc2V0RG9jdW1lbnQoaW4gVmFsdWUgcm9vdCk7Ci0g
ICAgfTsKLX0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAK
aW5kZXggMzE1MTNkMS4uYjVjZmY2OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKIAogI2luY2x1ZGUgIkV2ZW50Lmgi
CiAjaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgIlJlbW90ZUluc3BlY3RvckZyb250ZW5k
Mi5oIgorI2luY2x1ZGUgIlJlbW90ZUluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUg
IlRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIgpAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGludCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzX2luc3RhbmNlQ291bnQgPSAw
OwogCi1JbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3Bl
Y3RvckZyb250ZW5kMiogZnJvbnRlbmQpCitJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50KFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKICAgICA6
IG1fZnJvbnRlbmQoZnJvbnRlbmQpCiB7CiAgICAgKytzX2luc3RhbmNlQ291bnQ7CkBAIC0yNzks
NyArMjc5LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpyZXNldCgpCiAgICAgbV9y
ZWNvcmRTdGFjay5jbGVhcigpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnJl
c2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0b3JGcm9udGVuZDIqIGZyb250ZW5kKQordm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpyZXNldEZyb250ZW5kUHJveHlPYmplY3QoUmVtb3Rl
SW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogewogICAgIEFTU0VSVChmcm9udGVuZCk7CiAg
ICAgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVs
aW5lQWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApp
bmRleCA5YTVjYjk4Li4xNmQ3YjgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oCkBAIC00Miw3ICs0Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEV2ZW50OwotY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQyOworY2xhc3MgUmVtb3RlSW5zcGVj
dG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnRSZWN0OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xh
c3MgUmVzb3VyY2VSZXNwb25zZTsKQEAgLTc0LDExICs3NCwxMSBAQCBlbnVtIFRpbWVsaW5lUmVj
b3JkVHlwZSB7CiAKIGNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQgOiBTY3JpcHRHQ0V2ZW50
TGlzdGVuZXIsIHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudChJbnNwZWN0b3JGcm9udGVuZDIqIGZyb250ZW5kKTsKKyAgICBJbnNwZWN0b3JU
aW1lbGluZUFnZW50KFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCk7CiAgICAgfklu
c3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKIAogICAgIHZvaWQgcmVzZXQoKTsKLSAgICB2b2lkIHJl
c2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0b3JGcm9udGVuZDIqKTsKKyAgICB2b2lkIHJl
c2V0RnJvbnRlbmRQcm94eU9iamVjdChSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCopOwogCiAgICAg
Ly8gTWV0aG9kcyBjYWxsZWQgZnJvbSBXZWJDb3JlLgogICAgIHZvaWQgd2lsbENhbGxGdW5jdGlv
bihjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsKQEAgLTE1Miw3ICsx
NTIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwdXNoR0NFdmVudFJlY29yZHMoKTsKIAotICAg
IEluc3BlY3RvckZyb250ZW5kMiogbV9mcm9udGVuZDsKKyAgICBSZW1vdGVJbnNwZWN0b3JGcm9u
dGVuZCogbV9mcm9udGVuZDsKIAogICAgIFZlY3RvcjxUaW1lbGluZVJlY29yZEVudHJ5PiBtX3Jl
Y29yZFN0YWNrOwogICAgIHN0YXRpYyBpbnQgc19pbnN0YW5jZUNvdW50OwpkaWZmIC0tZ2l0IGEv
Y21ha2UvV2ViS2l0R2VuZXJhdG9ycy5jbWFrZSBiL2NtYWtlL1dlYktpdEdlbmVyYXRvcnMuY21h
a2UKaW5kZXggMzAwMzQ3Ni4uYTE1ODYzMyAxMDA2NDQKLS0tIGEvY21ha2UvV2ViS2l0R2VuZXJh
dG9ycy5jbWFrZQorKysgYi9jbWFrZS9XZWJLaXRHZW5lcmF0b3JzLmNtYWtlCkBAIC0xMzgsMTEg
KzEzOCwxMSBAQCBNQUNSTyhHRU5FUkFURV9JTlNQRUNUT1JfRlJPTV9JREwgX3NvdXJjZSkKIAog
ICBHRVRfRklMRU5BTUVfQ09NUE9ORU5UKF9uYW1lICR7X3NvdXJjZX0gTkFNRV9XRSkKICAgQURE
X0NVU1RPTV9DT01NQU5EKAotICAgIE9VVFBVVCAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9SZW1v
dGUke19uYW1lfS5jcHAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9SZW1vdGUke19uYW1lfS5oCisg
ICAgT1VUUFVUICAke0RFUklWRURfU09VUkNFU19ESVJ9L1JlbW90ZSR7X25hbWV9RnJvbnRlbmQu
Y3BwICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vUmVtb3RlJHtfbmFtZX1Gcm9udGVuZC5oCiAgICAg
REVQRU5EUyAke0JJTkRJTkdfQ09ERV9HRU5FUkFUT1J9ICR7U0NSSVBUU19CSU5ESU5HU30gJHtX
RUJDT1JFX0RJUn0vJHtfc291cmNlfQogICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9IC1J
JHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cyAtSSR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rv
ciAke0JJTkRJTkdfQ09ERV9HRU5FUkFUT1J9ICR7SURMX0lOQ0xVREVTfSAtLW91dHB1dERpciAi
JHtERVJJVkVEX1NPVVJDRVNfRElSfSIgLS1kZWZpbmVzICJMQU5HVUFHRV9KQVZBU0NSSVBUPTEg
JHtGRUFUVVJFX0RFRklORVNfU1RSfSIgLS1nZW5lcmF0b3IgSW5zcGVjdG9yICR7V0VCQ09SRV9E
SVJ9LyR7X3NvdXJjZX0KICAgICBWRVJCQVRJTSkKLSAgTElTVChBUFBFTkQgSW5zcGVjdG9yX0lE
TF9GSUxFUyAke0RFUklWRURfU09VUkNFU19ESVJ9L1JlbW90ZSR7X25hbWV9LmNwcCkKKyAgTElT
VChBUFBFTkQgSW5zcGVjdG9yX0lETF9GSUxFUyAke0RFUklWRURfU09VUkNFU19ESVJ9L1JlbW90
ZSR7X25hbWV9RnJvbnRlbmQuY3BwKQogICBVTlNFVChfbmFtZSkKICAgVU5TRVQoX2RlZmluZXMp
CiBFTkRNQUNSTygpCg==
</data>
<flag name="review"
          id="49349"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>