<?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>109615</bug_id>
          
          <creation_ts>2013-02-12 14:30:11 -0800</creation_ts>
          <short_desc>Add skeleton of the OfflineStorageProcess</short_desc>
          <delta_ts>2013-02-12 19:22:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>abarth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>831263</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-02-12 14:30:11 -0800</bug_when>
    <thetext>Add skeleton of the OfflineStorageProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831266</commentid>
    <comment_count>1</comment_count>
      <attachid>187935</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-02-12 14:32:17 -0800</bug_when>
    <thetext>Created attachment 187935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831325</commentid>
    <comment_count>2</comment_count>
      <attachid>187935</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-12 15:15:40 -0800</bug_when>
    <thetext>Comment on attachment 187935
Patch

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

&gt; Source/WebKit2/ChangeLog:7
&gt; +
&gt; +        Add skeleton of the OfflineStorageProcess
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=109615
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +

This ChangeLog doesn&apos;t really give any information about what an OfflineStorageProcess is...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831327</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-12 15:16:14 -0800</bug_when>
    <thetext>What is an OfflineStorageProcess?  Generally, we ask that contributors explain the &quot;why&quot; behind their changes in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831425</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-02-12 16:53:02 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; What is an OfflineStorageProcess?  Generally, we ask that contributors explain the &quot;why&quot; behind their changes in the ChangeLog.

I thought it was pretty self evident, but I can certainly go into more detail.  The idea is to have a process for offline storage activities, such as Databases and Local Storage.  We don&apos;t want to do this in our UI Process, because we can tightly sandbox these filesystem touching activities if they are in their own little world.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831426</commentid>
    <comment_count>5</comment_count>
      <attachid>187935</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-12 16:54:59 -0800</bug_when>
    <thetext>Comment on attachment 187935
Patch

r=me with a more descriptive ChangeLog as Adam suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831432</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-02-12 16:59:30 -0800</bug_when>
    <thetext>Committed r142690: &lt;http://trac.webkit.org/changeset/142690&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831542</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-12 19:22:15 -0800</bug_when>
    <thetext>Ah, I think I was trying to read too much into the &quot;offline&quot; part of the name.  Thanks for the description.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187935</attachid>
            <date>2013-02-12 14:32:17 -0800</date>
            <delta_ts>2013-02-12 16:54:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109615-20130212142847.patch</filename>
            <type>text/plain</type>
            <size>137032</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjY3MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAyLTEyICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHNrZWxldG9uIG9mIHRoZSBPZmZs
aW5lU3RvcmFnZVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwOTYxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLnhjY29uZmln
OiBBZGRlZC4KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9PZmZsaW5lU3RvcmFnZVNlcnZpY2Uu
RGV2ZWxvcG1lbnQueGNjb25maWc6IEFkZGVkLgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL09m
ZmxpbmVTdG9yYWdlU2VydmljZS54Y2NvbmZpZzogQWRkZWQuCisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3M6IEFkZGVkLgorICAg
ICAgICAqIE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50OiBBZGRlZC4KKyAgICAgICAg
KiBPZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWM6IEFkZGVkLgorICAgICAgICAq
IE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzOiBBZGRl
ZC4KKyAgICAgICAgKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5
UHJvY2Vzcy9JbmZvLnBsaXN0OiBBZGRlZC4KKyAgICAgICAgKiBPZmZsaW5lU3RvcmFnZVByb2Nl
c3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9PZmZsaW5lU3RvcmFnZVByb2Nlc3NNYWlu
Lm1tOiBBZGRlZC4KKyAgICAgICAgKE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01haW4pOgorICAgICAg
ICAqIE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL09m
ZmxpbmVTdG9yYWdlUHJvY2Vzc01haW5Cb290c3RyYXBwZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KiBPZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZTogQWRkZWQu
CisgICAgICAgICogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZp
Y2UvT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlOiBBZGRlZC4KKyAgICAgICAgKiBPZmZsaW5lU3RvcmFn
ZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9PZmZsaW5lU3RvcmFnZVNlcnZpY2Uu
RGV2ZWxvcG1lbnQ6IEFkZGVkLgorICAgICAgICAqIE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL09mZmxpbmVTdG9yYWdlU2VydmljZS5EZXZlbG9wbWVudC9J
bmZvLnBsaXN0OiBBZGRlZC4KKyAgICAgICAgKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvWFBDU2VydmljZS9PZmZsaW5lU3RvcmFnZVNlcnZpY2UuRGV2ZWxvcG1lbnQvT2Zm
bGluZVN0b3JhZ2VTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbTogQWRkZWQuCisgICAgICAgICog
T2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvT2ZmbGluZVN0
b3JhZ2VTZXJ2aWNlL0luZm8ucGxpc3Q6IEFkZGVkLgorICAgICAgICAqIE9mZmxpbmVTdG9yYWdl
UHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL09mZmxpbmVTdG9yYWdlU2VydmljZS9P
ZmZsaW5lU3RvcmFnZVNlcnZpY2VNYWluLm1tOiBBZGRlZC4KKyAgICAgICAgKiBPZmZsaW5lU3Rv
cmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9PZmZsaW5lU3RvcmFnZVNlcnZp
Y2VFbnRyeVBvaW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3Mv
T2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmNwcDogQWRkZWQuCisgICAgICAgICogT2ZmbGluZVN0b3Jh
Z2VQcm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy5oOiBBZGRlZC4KKyAgICAgICAgKiBPZmZs
aW5lU3RvcmFnZVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluOiBBZGRl
ZC4KKyAgICAgICAgKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3MvbWFjOiBBZGRlZC4KKyAgICAgICAg
KiBPZmZsaW5lU3RvcmFnZVByb2Nlc3MvbWFjL09mZmxpbmVTdG9yYWdlUHJvY2Vzc01hYy5tbTog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok9mZmxpbmVTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6
ZVByb2Nlc3NOYW1lKToKKyAgICAgICAgKFdlYktpdDo6T2ZmbGluZVN0b3JhZ2VQcm9jZXNzOjpp
bml0aWFsaXplU2FuZGJveCk6CisgICAgICAgICogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL21hYy9j
b20uYXBwbGUuV2ViS2l0Lk9mZmxpbmVTdG9yYWdlLnNiOiBBZGRlZC4KKyAgICAgICAgKiBTaGFy
ZWQvT2ZmbGluZVN0b3JhZ2U6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9PZmZsaW5lU3RvcmFn
ZS9PZmZsaW5lU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBTaGFyZWQvT2ZmbGluZVN0b3JhZ2UvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6IEFkZGVkLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3Nh
Z2VzLnB5OgorICAgICAgICAoc3RydWN0X29yX2NsYXNzKToKKyAgICAgICAgQWRkZWQgT2ZmbGlu
ZVN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLgorCisgICAgICAgICogV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEzLTAyLTEyICBBbmRlcnMgQ2FybHNzb24g
IDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNlIGEgV29ya1F1ZXVlTWVz
c2FnZVJlY2VpdmVyIGNsYXNzIGFzIGEgcmVwbGFjZW1lbnQgZm9yIFF1ZXVlQ2xpZW50CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDE0MjY2OSkKKysrIFNvdXJj
ZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMy
LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9TaGFyZWQvQXV0aGVudGljYXRpb24gXAog
ICAgICQoV2ViS2l0MikvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzIFwKICAgICAkKFdl
YktpdDIpL1NoYXJlZFdvcmtlclByb2Nlc3MgXAorICAgICQoV2ViS2l0MikvT2ZmbGluZVN0b3Jh
Z2VQcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0Nvb2tpZXMgXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9GdWxsU2NyZWVuIFwKQEAgLTY5LDYgKzcwLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMg
PSBcCiAgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIFwKICAgICBOZXR3b3JrUHJvY2Vzc1By
b3h5IFwKICAgICBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciBcCisgICAgT2ZmbGluZVN0b3JhZ2VQ
cm9jZXNzIFwKICAgICBQbHVnaW5Db250cm9sbGVyUHJveHkgXAogICAgIFBsdWdpblByb2Nlc3Mg
XAogICAgIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0Nv
bmZpZ3VyYXRpb25zL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy54Y2NvbmZpZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9PZmZsaW5lU3RvcmFnZVByb2Nlc3MueGNj
b25maWcJKHJldmlzaW9uIDE0MjU3NikJKGZyb20gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlv
bnMvTmV0d29ya1Byb2Nlc3MueGNjb25maWc6MTQyNTc2KQorKysgU291cmNlL1dlYktpdDIvQ29u
ZmlndXJhdGlvbnMvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMzcgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBt
ZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8gSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKy8v
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKwor
I2luY2x1ZGUgIkJhc2VUYXJnZXQueGNjb25maWciCisKK0dDQ19FTkFCTEVfT0JKQ19HQyA9IE5P
OworUFJPRFVDVF9OQU1FID0gTmV0d29ya1Byb2Nlc3M7CitJTkZPUExJU1RfRklMRSA9IE5ldHdv
cmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdDsKK0lOU1RB
TExfUEFUSCA9ICQoV0VCS0lUMl9GUkFNRVdPUktTX0RJUikvV2ViS2l0Mi5mcmFtZXdvcms7CisK
K0FQUF9JQ09OID0gJChBUFBfSUNPTl8kKENPTkZJR1VSQVRJT04pKTsKK0FQUF9JQ09OX0RlYnVn
ID0gV2ViS2l0LmljbnM7CitBUFBfSUNPTl9SZWxlYXNlID0gV2ViS2l0LmljbnM7CitBUFBfSUNP
Tl9Qcm9kdWN0aW9uID0gOworCitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FUyA9ICQoRVhDTFVE
RURfU09VUkNFX0ZJTEVfTkFNRVNfJChDT05GSUdVUkFUSU9OKSk7CitFWENMVURFRF9TT1VSQ0Vf
RklMRV9OQU1FU19Qcm9kdWN0aW9uID0gV2ViS2l0LmljbnM7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9Db25maWd1cmF0aW9ucy9PZmZsaW5lU3RvcmFnZVByb2Nlc3MueGNjb25maWcKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvT2ZmbGluZVN0b3JhZ2VQcm9jZXNz
LnhjY29uZmlnCShyZXZpc2lvbiAxNDI1NzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0
aW9ucy9PZmZsaW5lU3RvcmFnZVByb2Nlc3MueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTEs
NCArMSw0IEBACi0vLyBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KIC8vCiAvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIC8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsOCArMjQsOCBAQAog
I2luY2x1ZGUgIkJhc2VUYXJnZXQueGNjb25maWciCiAKIEdDQ19FTkFCTEVfT0JKQ19HQyA9IE5P
OwotUFJPRFVDVF9OQU1FID0gTmV0d29ya1Byb2Nlc3M7Ci1JTkZPUExJU1RfRklMRSA9IE5ldHdv
cmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdDsKK1BST0RV
Q1RfTkFNRSA9IE9mZmxpbmVTdG9yYWdlUHJvY2VzczsKK0lORk9QTElTVF9GSUxFID0gT2ZmbGlu
ZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdDsK
IElOU1RBTExfUEFUSCA9ICQoV0VCS0lUMl9GUkFNRVdPUktTX0RJUikvV2ViS2l0Mi5mcmFtZXdv
cms7CiAKIEFQUF9JQ09OID0gJChBUFBfSUNPTl8kKENPTkZJR1VSQVRJT04pKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL09mZmxpbmVTdG9yYWdlU2VydmljZS5EZXZlbG9w
bWVudC54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9u
cy9PZmZsaW5lU3RvcmFnZVNlcnZpY2UuRGV2ZWxvcG1lbnQueGNjb25maWcJKHJldmlzaW9uIDE0
MjU3NikJKGZyb20gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvTmV0d29ya1NlcnZpY2Uu
RGV2ZWxvcG1lbnQueGNjb25maWc6MTQyNTc2KQorKysgU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlLkRldmVsb3BtZW50LnhjY29uZmlnCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8v
IGFyZSBtZXQ6CisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKy8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8g
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKy8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKy8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKworI2luY2x1ZGUgIkJhc2VYUENTZXJ2aWNlLnhjY29uZmlnIgorCitQUk9EVUNUX05BTUUg
PSBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuRGV2ZWxvcG1lbnQ7CitJTkZPUExJU1RfRklM
RSA9IE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZp
Y2UuRGV2ZWxvcG1lbnQvSW5mby5wbGlzdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3Vy
YXRpb25zL09mZmxpbmVTdG9yYWdlU2VydmljZS5EZXZlbG9wbWVudC54Y2NvbmZpZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9PZmZsaW5lU3RvcmFnZVNlcnZp
Y2UuRGV2ZWxvcG1lbnQueGNjb25maWcJKHJldmlzaW9uIDE0MjU3NikKKysrIFNvdXJjZS9XZWJL
aXQyL0NvbmZpZ3VyYXRpb25zL09mZmxpbmVTdG9yYWdlU2VydmljZS5EZXZlbG9wbWVudC54Y2Nv
bmZpZwkod29ya2luZyBjb3B5KQpAQCAtMjMsNSArMjMsNSBAQAogCiAjaW5jbHVkZSAiQmFzZVhQ
Q1NlcnZpY2UueGNjb25maWciCiAKLVBST0RVQ1RfTkFNRSA9IGNvbS5hcHBsZS5XZWJLaXQuTmV0
d29ya2luZy5EZXZlbG9wbWVudDsKLUlORk9QTElTVF9GSUxFID0gTmV0d29ya1Byb2Nlc3MvRW50
cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZS5EZXZlbG9wbWVudC9JbmZvLnBs
aXN0OworUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5PZmZsaW5lU3RvcmFnZS5EZXZl
bG9wbWVudDsKK0lORk9QTElTVF9GSUxFID0gT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL1hQQ1NlcnZpY2UvT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlLkRldmVsb3BtZW50L0luZm8u
cGxpc3Q7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9PZmZsaW5lU3RvcmFn
ZVNlcnZpY2UueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlLnhjY29uZmlnCShyZXZpc2lvbiAxNDI1NzYpCShm
cm9tIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL05ldHdvcmtTZXJ2aWNlLnhjY29uZmln
OjE0MjU3NikKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL09mZmxpbmVTdG9yYWdl
U2VydmljZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI3IEBACisvLyBDb3B5
cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8K
Ky8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisvLyBhcmUgbWV0OgorLy8gMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8v
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKy8vIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisvLyAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorLy8gRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKy8vIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorLy8gUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKy8vIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorLy8gRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorLy8gUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisvLyBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisvLyBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
Ky8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisKKyNpbmNsdWRlICJCYXNlWFBDU2Vy
dmljZS54Y2NvbmZpZyIKKworUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5OZXR3b3Jr
aW5nOworSU5GT1BMSVNUX0ZJTEUgPSBOZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENT
ZXJ2aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8ucGxpc3Q7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9D
b25maWd1cmF0aW9ucy9PZmZsaW5lU3RvcmFnZVNlcnZpY2UueGNjb25maWcKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlLnhj
Y29uZmlnCShyZXZpc2lvbiAxNDI1NzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9u
cy9PZmZsaW5lU3RvcmFnZVNlcnZpY2UueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTEsNCAr
MSw0IEBACi0vLyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KIC8vCiAvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIC8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsNSArMjMsNSBA
QAogCiAjaW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCiAKLVBST0RVQ1RfTkFNRSA9
IGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZzsKLUlORk9QTElTVF9GSUxFID0gTmV0d29ya1By
b2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZS9JbmZvLnBsaXN0
OworUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5PZmZsaW5lU3RvcmFnZTsKK0lORk9Q
TElTVF9GSUxFID0gT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZp
Y2UvT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlL0luZm8ucGxpc3Q7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvT2ZmbGluZVN0b3Jh
Z2VQcm9jZXNzLmNwcAkocmV2aXNpb24gMTQyNTc2KQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6MTQyNTc2KQorKysgU291cmNlL1dlYktpdDIv
T2ZmbGluZVN0b3JhZ2VQcm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwyNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKKworI2lmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIkF0dGFjaG1lbnQu
aCIKKyNpbmNsdWRlICJBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJDdXN0b21Q
cm90b2NvbE1hbmFnZXIuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiU3RhdGlz
dGljc0RhdGEuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJX
ZWJDb29raWVNYW5hZ2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Jbml0aWFsaXplTG9nZ2luZy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCisjaWYgVVNFKFNF
Q1VSSVRZX0ZSQU1FV09SSykKKyNpbmNsdWRlICJTZWNJdGVtU2hpbS5oIgorI2VuZGlmCisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmV0d29ya1By
b2Nlc3MmIE5ldHdvcmtQcm9jZXNzOjpzaGFyZWQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoTmV0d29ya1Byb2Nlc3MsIG5ldHdvcmtQcm9jZXNzLCAoKSk7CisgICAgcmV0dXJuIG5ldHdv
cmtQcm9jZXNzOworfQorCitOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MoKQorICAgIDog
bV9oYXNTZXRDYWNoZU1vZGVsKGZhbHNlKQorICAgICwgbV9jYWNoZU1vZGVsKENhY2hlTW9kZWxE
b2N1bWVudFZpZXdlcikKK3sKKyAgICBhZGRTdXBwbGVtZW50PEF1dGhlbnRpY2F0aW9uTWFuYWdl
cj4oKTsKKyAgICBhZGRTdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXI+KCk7CisgICAgYWRkU3Vw
cGxlbWVudDxDdXN0b21Qcm90b2NvbE1hbmFnZXI+KCk7Cit9CisKK05ldHdvcmtQcm9jZXNzOjp+
TmV0d29ya1Byb2Nlc3MoKQoreworfQorCitBdXRoZW50aWNhdGlvbk1hbmFnZXImIE5ldHdvcmtQ
cm9jZXNzOjphdXRoZW50aWNhdGlvbk1hbmFnZXIoKQoreworICAgIHJldHVybiAqc3VwcGxlbWVu
dDxBdXRoZW50aWNhdGlvbk1hbmFnZXI+KCk7Cit9CisKK0Rvd25sb2FkTWFuYWdlciYgTmV0d29y
a1Byb2Nlc3M6OmRvd25sb2FkTWFuYWdlcigpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChE
b3dubG9hZE1hbmFnZXIsIGRvd25sb2FkTWFuYWdlciwgKHRoaXMpKTsKKyAgICByZXR1cm4gZG93
bmxvYWRNYW5hZ2VyOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZW1vdmVOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyhOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogY29ubmVj
dGlvbikKK3sKKyAgICBzaXplX3QgdmVjdG9ySW5kZXggPSBtX3dlYlByb2Nlc3NDb25uZWN0aW9u
cy5maW5kKGNvbm5lY3Rpb24pOworICAgIEFTU0VSVCh2ZWN0b3JJbmRleCAhPSBub3RGb3VuZCk7
CisKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5yZW1vdmUodmVjdG9ySW5kZXgpOworfQor
Citib29sIE5ldHdvcmtQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUoKQoreworICAgIC8vIE5ldHdv
cmsgcHJvY2VzcyBrZWVwcyBzZXNzaW9uIGNvb2tpZXMgYW5kIGNyZWRlbnRpYWxzLCBzbyBpdCBz
aG91bGQgbmV2ZXIgdGVybWluYXRlIChhcyBsb25nIGFzIFVJIHByb2Nlc3MgY29ubmVjdGlvbiBp
cyBhbGl2ZSkuCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAobWVzc2FnZVJlY2VpdmVyTWFw
KCkuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQorICAgICAgICByZXR1cm47
CisKKyAgICBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sK
KyAgICBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24s
IGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZENs
b3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQoreworICAgIC8vIFRoZSBVSVByb2Nlc3MganVzdCBj
cmFzaGVkLgorICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS0+c3RvcCgpOworfQorCit2b2lkIE5ldHdv
cmtQcm9jZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSwgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKQorewor
ICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS0+c3RvcCgpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNz
OjpkaWRDcmVhdGVEb3dubG9hZCgpCit7CisgICAgZGlzYWJsZVRlcm1pbmF0aW9uKCk7Cit9CisK
K3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZERlc3Ryb3lEb3dubG9hZCgpCit7CisgICAgZW5hYmxl
VGVybWluYXRpb24oKTsKK30KKworQ29yZUlQQzo6Q29ubmVjdGlvbiogTmV0d29ya1Byb2Nlc3M6
OmRvd25sb2FkUHJveHlDb25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gcGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKTsKK30KKworQXV0aGVudGljYXRpb25NYW5hZ2VyJiBOZXR3b3JrUHJvY2Vzczo6
ZG93bmxvYWRzQXV0aGVudGljYXRpb25NYW5hZ2VyKCkKK3sKKyAgICByZXR1cm4gYXV0aGVudGlj
YXRpb25NYW5hZ2VyKCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3
b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycykKK3sKKyAgICBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhwYXJhbWV0ZXJz
KTsKKworICAgIHNldENhY2hlTW9kZWwoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHBhcmFtZXRlcnMu
Y2FjaGVNb2RlbCkpOworCisjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKQorICAg
IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRQcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lv
bklkZW50aWZpZXJCYXNlKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcik7Cisj
ZW5kaWYKKworICAgIGlmIChwYXJhbWV0ZXJzLnByaXZhdGVCcm93c2luZ0VuYWJsZWQpCisgICAg
ICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9u
KCk7CisKKyAgICBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnRNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gbV9zdXBwbGVtZW50cy5iZWdpbigpOworICAgIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudE1h
cDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9zdXBwbGVtZW50cy5lbmQoKTsKKyAgICBmb3IgKDsg
aXQgIT0gZW5kOyArK2l0KQorICAgICAgICBpdC0+dmFsdWUtPmluaXRpYWxpemUocGFyYW1ldGVy
cyk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7CisgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFs
aXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKKworI2lmIFVTRShTRUNVUklUWV9GUkFNRVdPUksp
CisgICAgU2VjSXRlbVNoaW06OnNoYXJlZCgpLmluaXRpYWxpemVDb25uZWN0aW9uKGNvbm5lY3Rp
b24pOworI2VuZGlmCit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmNyZWF0ZU5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKCkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgLy8gQ3JlYXRl
IHRoZSBsaXN0ZW5pbmcgcG9ydC4KKyAgICBtYWNoX3BvcnRfdCBsaXN0ZW5pbmdQb3J0OworICAg
IG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVD
RUlWRSwgJmxpc3RlbmluZ1BvcnQpOworCisgICAgLy8gQ3JlYXRlIGEgbGlzdGVuaW5nIGNvbm5l
Y3Rpb24uCisgICAgUmVmUHRyPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBjb25uZWN0
aW9uID0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZShDb3JlSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyKGxpc3RlbmluZ1BvcnQpKTsKKyAgICBtX3dlYlByb2Nlc3NDb25u
ZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbi5yZWxlYXNlKCkpOworCisgICAgQ29yZUlQQzo6QXR0
YWNobWVudCBjbGllbnRQb3J0KGxpc3RlbmluZ1BvcnQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5E
KTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhjbGll
bnRQb3J0KSwgMCk7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisjZW5kaWYKK30KKwor
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCit7Cisg
ICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
KTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oKQoreworICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbigpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkb3dubG9hZFJlcXVlc3Qo
dWludDY0X3QgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorewor
ICAgIGRvd25sb2FkTWFuYWdlcigpLnN0YXJ0RG93bmxvYWQoZG93bmxvYWRJRCwgcmVxdWVzdCk7
Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmNhbmNlbERvd25sb2FkKHVpbnQ2NF90IGRvd25s
b2FkSUQpCit7CisgICAgZG93bmxvYWRNYW5hZ2VyKCkuY2FuY2VsRG93bmxvYWQoZG93bmxvYWRJ
RCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENhY2hlTW9kZWwodWludDMyX3QgY20p
Cit7CisgICAgQ2FjaGVNb2RlbCBjYWNoZU1vZGVsID0gc3RhdGljX2Nhc3Q8Q2FjaGVNb2RlbD4o
Y20pOworCisgICAgaWYgKCFtX2hhc1NldENhY2hlTW9kZWwgfHwgY2FjaGVNb2RlbCAhPSBtX2Nh
Y2hlTW9kZWwpIHsKKyAgICAgICAgbV9oYXNTZXRDYWNoZU1vZGVsID0gdHJ1ZTsKKyAgICAgICAg
bV9jYWNoZU1vZGVsID0gY2FjaGVNb2RlbDsKKyAgICAgICAgcGxhdGZvcm1TZXRDYWNoZU1vZGVs
KGNhY2hlTW9kZWwpOworICAgIH0KK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6Z2V0TmV0d29y
a1Byb2Nlc3NTdGF0aXN0aWNzKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgTmV0d29ya1Jl
c291cmNlTG9hZFNjaGVkdWxlciYgc2NoZWR1bGVyID0gTmV0d29ya1Byb2Nlc3M6OnNoYXJlZCgp
Lm5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIoKTsKKworICAgIFN0YXRpc3RpY3NEYXRhIGRh
dGE7CisKKyAgICBkYXRhLnN0YXRpc3RpY3NOdW1iZXJzLnNldCgiSG9zdHNQZW5kaW5nQ291bnQi
LCBzY2hlZHVsZXIuaG9zdHNQZW5kaW5nQ291bnQoKSk7CisgICAgZGF0YS5zdGF0aXN0aWNzTnVt
YmVycy5zZXQoIkhvc3RzQWN0aXZlQ291bnQiLCBzY2hlZHVsZXIuaG9zdHNBY3RpdmVDb3VudCgp
KTsKKyAgICBkYXRhLnN0YXRpc3RpY3NOdW1iZXJzLnNldCgiTG9hZHNQZW5kaW5nQ291bnQiLCBz
Y2hlZHVsZXIubG9hZHNQZW5kaW5nQ291bnQoKSk7CisgICAgZGF0YS5zdGF0aXN0aWNzTnVtYmVy
cy5zZXQoIkxvYWRzQWN0aXZlQ291bnQiLCBzY2hlZHVsZXIubG9hZHNBY3RpdmVDb3VudCgpKTsK
KyAgICBkYXRhLnN0YXRpc3RpY3NOdW1iZXJzLnNldCgiRG93bmxvYWRzQWN0aXZlQ291bnQiLCBz
aGFyZWQoKS5kb3dubG9hZE1hbmFnZXIoKS5hY3RpdmVEb3dubG9hZENvdW50KCkpOworICAgIGRh
dGEuc3RhdGlzdGljc051bWJlcnMuc2V0KCJPdXRzdGFuZGluZ0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlc0NvdW50Iiwgc2hhcmVkKCkuYXV0aGVudGljYXRpb25NYW5hZ2VyKCkub3V0c3RhbmRpbmdB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZUNvdW50KCkpOworCisgICAgcGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQ29udGV4dDo6RGlkR2V0U3RhdGlzdGljcyhkYXRh
LCBjYWxsYmFja0lEKSwgMCk7Cit9CisKKyNpZiAhUExBVEZPUk0oTUFDKQordm9pZCBOZXR3b3Jr
UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxp
emVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNh
bmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQoreworfQorI2VuZGlmCisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9PZmZsaW5lU3RvcmFnZVByb2Nl
c3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vz
cy9PZmZsaW5lU3RvcmFnZVByb2Nlc3MuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktp
dDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI0LDIwOCArMjQsNzEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlICJPZmZsaW5lU3RvcmFnZVByb2Nlc3MuaCIK
IAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0KLSNpbmNsdWRlICJBcmd1bWVudENvZGVy
cy5oIgotI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIKLSNpbmNsdWRlICJBdXRoZW50aWNhdGlvbk1h
bmFnZXIuaCIKLSNpbmNsdWRlICJDdXN0b21Qcm90b2NvbE1hbmFnZXIuaCIKLSNpbmNsdWRlICJM
b2dnaW5nLmgiCi0jaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0LmgiCi0jaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgotI2luY2x1ZGUgPFdlYkNv
cmUvSW5pdGlhbGl6ZUxvZ2dpbmcuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVz
dC5oPgorI2luY2x1ZGUgIk9mZmxpbmVTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KLQotI2lmIFVTRShTRUNVUklUWV9GUkFNRVdPUkspCi0jaW5jbHVkZSAiU2VjSXRlbVNo
aW0uaCIKLSNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLU5ldHdvcmtQcm9jZXNzJiBOZXR3b3JrUHJvY2Vzczo6c2hhcmVkKCkKLXsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKE5ldHdvcmtQcm9jZXNzLCBuZXR3b3JrUHJvY2VzcywgKCkp
OwotICAgIHJldHVybiBuZXR3b3JrUHJvY2VzczsKLX0KLQotTmV0d29ya1Byb2Nlc3M6Ok5ldHdv
cmtQcm9jZXNzKCkKLSAgICA6IG1faGFzU2V0Q2FjaGVNb2RlbChmYWxzZSkKLSAgICAsIG1fY2Fj
aGVNb2RlbChDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXIpCi17Ci0gICAgYWRkU3VwcGxlbWVudDxB
dXRoZW50aWNhdGlvbk1hbmFnZXI+KCk7Ci0gICAgYWRkU3VwcGxlbWVudDxXZWJDb29raWVNYW5h
Z2VyPigpOwotICAgIGFkZFN1cHBsZW1lbnQ8Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyPigpOwotfQot
Ci1OZXR3b3JrUHJvY2Vzczo6fk5ldHdvcmtQcm9jZXNzKCkKK09mZmxpbmVTdG9yYWdlUHJvY2Vz
cyYgT2ZmbGluZVN0b3JhZ2VQcm9jZXNzOjpzaGFyZWQoKQogeworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLCBvZmZsaW5lU3RvcmFnZVByb2Nlc3MsICgpKTsK
KyAgICByZXR1cm4gb2ZmbGluZVN0b3JhZ2VQcm9jZXNzOwogfQogCi1BdXRoZW50aWNhdGlvbk1h
bmFnZXImIE5ldHdvcmtQcm9jZXNzOjphdXRoZW50aWNhdGlvbk1hbmFnZXIoKQorT2ZmbGluZVN0
b3JhZ2VQcm9jZXNzOjpPZmZsaW5lU3RvcmFnZVByb2Nlc3MoKQogewotICAgIHJldHVybiAqc3Vw
cGxlbWVudDxBdXRoZW50aWNhdGlvbk1hbmFnZXI+KCk7CiB9CiAKLURvd25sb2FkTWFuYWdlciYg
TmV0d29ya1Byb2Nlc3M6OmRvd25sb2FkTWFuYWdlcigpCitPZmZsaW5lU3RvcmFnZVByb2Nlc3M6
On5PZmZsaW5lU3RvcmFnZVByb2Nlc3MoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRG93
bmxvYWRNYW5hZ2VyLCBkb3dubG9hZE1hbmFnZXIsICh0aGlzKSk7Ci0gICAgcmV0dXJuIGRvd25s
b2FkTWFuYWdlcjsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVtb3ZlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rp
b24pCitib29sIE9mZmxpbmVTdG9yYWdlUHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKIHsKLSAg
ICBzaXplX3QgdmVjdG9ySW5kZXggPSBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5maW5kKGNvbm5l
Y3Rpb24pOwotICAgIEFTU0VSVCh2ZWN0b3JJbmRleCAhPSBub3RGb3VuZCk7Ci0KLSAgICBtX3dl
YlByb2Nlc3NDb25uZWN0aW9ucy5yZW1vdmUodmVjdG9ySW5kZXgpOwotfQotCi1ib29sIE5ldHdv
cmtQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUoKQotewotICAgIC8vIE5ldHdvcmsgcHJvY2VzcyBr
ZWVwcyBzZXNzaW9uIGNvb2tpZXMgYW5kIGNyZWRlbnRpYWxzLCBzbyBpdCBzaG91bGQgbmV2ZXIg
dGVybWluYXRlIChhcyBsb25nIGFzIFVJIHByb2Nlc3MgY29ubmVjdGlvbiBpcyBhbGl2ZSkuCisg
ICAgLy8gRklYTUU6IEltcGxlbWVudC4KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQordm9pZCBPZmZsaW5lU3Rv
cmFnZVByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNz
YWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc01lc3NhZ2UoY29u
bmVjdGlvbiwgZGVjb2Rlcik7CisgICAgZGlkUmVjZWl2ZU9mZmxpbmVTdG9yYWdlUHJvY2Vzc01l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNv
ZGVyPiYgcmVwbHlFbmNvZGVyKQordm9pZCBPZmZsaW5lU3RvcmFnZVByb2Nlc3M6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyKQogewogICAgIG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoU3luY01l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAotdm9pZCBOZXR3
b3JrUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCit2b2lkIE9mZmxpbmVT
dG9yYWdlUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCiB7CiAgICAgLy8g
VGhlIFVJUHJvY2VzcyBqdXN0IGNyYXNoZWQuCiAgICAgUnVuTG9vcDo6Y3VycmVudCgpLT5zdG9w
KCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlLCBDb3JlSVBDOjpT
dHJpbmdSZWZlcmVuY2UpCit2b2lkIE9mZmxpbmVTdG9yYWdlUHJvY2Vzczo6ZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVu
Y2UsIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSkKIHsKICAgICBSdW5Mb29wOjpjdXJyZW50KCkt
PnN0b3AoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkQ3JlYXRlRG93bmxvYWQoKQot
ewotICAgIGRpc2FibGVUZXJtaW5hdGlvbigpOwotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpk
aWREZXN0cm95RG93bmxvYWQoKQotewotICAgIGVuYWJsZVRlcm1pbmF0aW9uKCk7Ci19Ci0KLUNv
cmVJUEM6OkNvbm5lY3Rpb24qIE5ldHdvcmtQcm9jZXNzOjpkb3dubG9hZFByb3h5Q29ubmVjdGlv
bigpCi17Ci0gICAgcmV0dXJuIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7Ci19Ci0KLUF1dGhl
bnRpY2F0aW9uTWFuYWdlciYgTmV0d29ya1Byb2Nlc3M6OmRvd25sb2Fkc0F1dGhlbnRpY2F0aW9u
TWFuYWdlcigpCi17Ci0gICAgcmV0dXJuIGF1dGhlbnRpY2F0aW9uTWFuYWdlcigpOwotfQotCi12
b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCi17Ci0gICAgcGxhdGZvcm1J
bml0aWFsaXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVycyk7Ci0KLSAgICBzZXRDYWNoZU1vZGVs
KHN0YXRpY19jYXN0PHVpbnQzMl90PihwYXJhbWV0ZXJzLmNhY2hlTW9kZWwpKTsKLQotI2lmIFBM
QVRGT1JNKE1BQykgfHwgVVNFKENGTkVUV09SSykKLSAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dDo6c2V0UHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZShwYXJhbWV0
ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIpOwotI2VuZGlmCi0KLSAgICBpZiAocGFyYW1l
dGVycy5wcml2YXRlQnJvd3NpbmdFbmFibGVkKQotICAgICAgICBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOwotCi0gICAgTmV0d29ya1Byb2Nl
c3NTdXBwbGVtZW50TWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fc3VwcGxlbWVudHMuYmVnaW4o
KTsKLSAgICBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnRNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9
IG1fc3VwcGxlbWVudHMuZW5kKCk7Ci0gICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAg
ICAgaXQtPnZhbHVlLT5pbml0aWFsaXplKHBhcmFtZXRlcnMpOwotfQotCi12b2lkIE5ldHdvcmtQ
cm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKQotewotICAgIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlv
bik7Ci0KLSNpZiBVU0UoU0VDVVJJVFlfRlJBTUVXT1JLKQotICAgIGNvbm5lY3Rpb24tPmFkZFF1
ZXVlQ2xpZW50KCZTZWNJdGVtU2hpbTo6c2hhcmVkKCkpOwotI2VuZGlmCi19Ci0KLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OmNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKLXsKLSNp
ZiBQTEFURk9STShNQUMpCi0gICAgLy8gQ3JlYXRlIHRoZSBsaXN0ZW5pbmcgcG9ydC4KLSAgICBt
YWNoX3BvcnRfdCBsaXN0ZW5pbmdQb3J0OwotICAgIG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rh
c2tfc2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgJmxpc3RlbmluZ1BvcnQpOwotCi0g
ICAgLy8gQ3JlYXRlIGEgbGlzdGVuaW5nIGNvbm5lY3Rpb24uCi0gICAgUmVmUHRyPE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzPiBjb25uZWN0aW9uID0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmNyZWF0ZShDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGxpc3Rlbmlu
Z1BvcnQpKTsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbi5y
ZWxlYXNlKCkpOwotCi0gICAgQ29yZUlQQzo6QXR0YWNobWVudCBjbGllbnRQb3J0KGxpc3Rlbmlu
Z1BvcnQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKTsKLSAgICBwYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhjbGllbnRQb3J0KSwgMCk7Ci0jZWxzZQotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZW5zdXJl
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCit2b2lkIE9mZmxpbmVTdG9yYWdlUHJvY2Vzczo6aW5p
dGlhbGl6ZU9mZmxpbmVTdG9yYWdlUHJvY2Vzcyhjb25zdCBPZmZsaW5lU3RvcmFnZVByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmKQogewotICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRl
c3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKLXsKLSAgICBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKLX0KLQotdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6ZG93bmxvYWRSZXF1ZXN0KHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICBkb3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25s
b2FkKGRvd25sb2FkSUQsIHJlcXVlc3QpOwotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpjYW5j
ZWxEb3dubG9hZCh1aW50NjRfdCBkb3dubG9hZElEKQotewotICAgIGRvd25sb2FkTWFuYWdlcigp
LmNhbmNlbERvd25sb2FkKGRvd25sb2FkSUQpOwotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpz
ZXRDYWNoZU1vZGVsKHVpbnQzMl90IGNtKQotewotICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCA9
IHN0YXRpY19jYXN0PENhY2hlTW9kZWw+KGNtKTsKLQotICAgIGlmICghbV9oYXNTZXRDYWNoZU1v
ZGVsIHx8IGNhY2hlTW9kZWwgIT0gbV9jYWNoZU1vZGVsKSB7Ci0gICAgICAgIG1faGFzU2V0Q2Fj
aGVNb2RlbCA9IHRydWU7Ci0gICAgICAgIG1fY2FjaGVNb2RlbCA9IGNhY2hlTW9kZWw7Ci0gICAg
ICAgIHBsYXRmb3JtU2V0Q2FjaGVNb2RlbChjYWNoZU1vZGVsKTsKLSAgICB9CiB9CiAKICNpZiAh
UExBVEZPUk0oTUFDKQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1l
KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCit2b2lkIE9mZmxp
bmVTdG9yYWdlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCiB7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6
OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1l
dGVycyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQordm9pZCBPZmZsaW5lU3Rv
cmFnZVByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQogewog
fQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKE5F
VFdPUktfUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vz
cy9PZmZsaW5lU3RvcmFnZVByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9P
ZmZsaW5lU3RvcmFnZVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmgJKHJldmlzaW9uIDE0
MjU3NikJKGZyb20gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aDoxNDI1NzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvT2ZmbGlu
ZVN0b3JhZ2VQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIE5ldHdvcmtQcm9jZXNzX2gKKyNkZWZpbmUgTmV0d29ya1By
b2Nlc3NfaAorCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2luY2x1ZGUgIkNhY2hl
TW9kZWwuaCIKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKKyNpbmNsdWRlICJEb3dubG9hZE1h
bmFnZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKKyNpbmNsdWRlICJOZXR3
b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIFJ1bkxvb3A7Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBBdXRoZW50aWNhdGlvbk1hbmFnZXI7CitjbGFzcyBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudDsKK2Ns
YXNzIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOworc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOworCitjbGFzcyBOZXR3b3JrUHJvY2VzcyA6IHB1YmxpYyBDaGlsZFByb2Nl
c3MsIHByaXZhdGUgRG93bmxvYWRNYW5hZ2VyOjpDbGllbnQgeworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKE5ldHdvcmtQcm9jZXNzKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgTmV0d29ya1Byb2Nl
c3MmIHNoYXJlZCgpOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgVCogc3VwcGxl
bWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KG1fc3VwcGxlbWVu
dHMuZ2V0KFQ6OnN1cHBsZW1lbnROYW1lKCkpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KKyAgICB2b2lkIGFkZFN1cHBsZW1lbnQoKQorICAgIHsKKyAgICAgICAgbV9zdXBw
bGVtZW50cy5hZGQoVDo6c3VwcGxlbWVudE5hbWUoKSwgYWRvcHRQdHI8TmV0d29ya1Byb2Nlc3NT
dXBwbGVtZW50PihuZXcgVCh0aGlzKSkpOworICAgIH0KKworICAgIHZvaWQgcmVtb3ZlTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqKTsK
KworICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXImIG5ldHdvcmtSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIoKSB7IHJldHVybiBtX25ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXI7IH0KKwor
ICAgIEF1dGhlbnRpY2F0aW9uTWFuYWdlciYgYXV0aGVudGljYXRpb25NYW5hZ2VyKCk7CisgICAg
RG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIoKTsKKworcHJpdmF0ZToKKyAgICBOZXR3
b3JrUHJvY2VzcygpOworICAgIH5OZXR3b3JrUHJvY2VzcygpOworCisgICAgdm9pZCBwbGF0Zm9y
bUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYpOworCisgICAgLy8gQ2hpbGRQcm9jZXNzCisgICAgdmlydHVhbCB2b2lkIGluaXRp
YWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29uc3Qg
Q2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ29u
bmVjdGlvbihDb3JlSVBDOjpDb25uZWN0aW9uKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29s
IHNob3VsZFRlcm1pbmF0ZSgpIE9WRVJSSURFOworCisgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlv
bjo6Q2xpZW50CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIENv
cmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgT1ZFUlJJREU7CisKKyAgICAvLyBE
b3dubG9hZE1hbmFnZXI6OkNsaWVudAorICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVEb3dubG9h
ZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95RG93bmxvYWQoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIENvcmVJUEM6OkNvbm5lY3Rpb24qIGRvd25sb2FkUHJveHlDb25u
ZWN0aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBBdXRoZW50aWNhdGlvbk1hbmFnZXImIGRv
d25sb2Fkc0F1dGhlbnRpY2F0aW9uTWFuYWdlcigpIE9WRVJSSURFOworCisgICAgLy8gTWVzc2Fn
ZSBIYW5kbGVycworICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGlu
aXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYpOworICAgIHZvaWQgY3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKTsK
KyAgICB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKKyAgICB2b2lkIGRlc3Ry
b3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CisgICAgdm9pZCBkb3dubG9hZFJlcXVlc3QodWlu
dDY0X3QgZG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAg
dm9pZCBjYW5jZWxEb3dubG9hZCh1aW50NjRfdCBkb3dubG9hZElEKTsKKyAgICB2b2lkIHNldENh
Y2hlTW9kZWwodWludDMyX3QpOworCisgICAgdm9pZCBhbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZp
Y2F0ZUZvckhvc3QoY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBTdHJpbmcm
IGhvc3QpOworCisgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc1N0YXRpc3RpY3ModWludDY0X3Qg
Y2FsbGJhY2tJRCk7CisKKyAgICAvLyBQbGF0Zm9ybSBIZWxwZXJzCisgICAgdm9pZCBwbGF0Zm9y
bVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCk7CisKKyAgICAvLyBDb25uZWN0aW9ucyB0byBXZWJQ
cm9jZXNzZXMuCisgICAgVmVjdG9yPFJlZlB0cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cz4gPiBtX3dlYlByb2Nlc3NDb25uZWN0aW9uczsKKworICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIgbV9uZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyOworCisgICAgU3RyaW5nIG1f
ZGlza0NhY2hlRGlyZWN0b3J5OworICAgIGJvb2wgbV9oYXNTZXRDYWNoZU1vZGVsOworICAgIENh
Y2hlTW9kZWwgbV9jYWNoZU1vZGVsOworCisgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIq
LCBPd25QdHI8TmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50PiwgUHRySGFzaDxjb25zdCBjaGFyKj4g
PiBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnRNYXA7CisgICAgTmV0d29ya1Byb2Nlc3NTdXBwbGVt
ZW50TWFwIG1fc3VwcGxlbWVudHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNlbmRpZiAvLyBOZXR3b3JrUHJvY2Vz
c19oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvT2ZmbGluZVN0
b3JhZ2VQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3Jh
Z2VQcm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yMyw2NCArMjMsMjcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5ldHdvcmtQcm9jZXNzX2gKLSNkZWZpbmUgTmV0d29y
a1Byb2Nlc3NfaAorI2lmbmRlZiBPZmZsaW5lU3RvcmFnZVByb2Nlc3NfaAorI2RlZmluZSBPZmZs
aW5lU3RvcmFnZVByb2Nlc3NfaAogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQotI2lu
Y2x1ZGUgIkNhY2hlTW9kZWwuaCIKICNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKLSNpbmNsdWRl
ICJEb3dubG9hZE1hbmFnZXIuaCIKLSNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKLSNp
bmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCi0jaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIFJ1bkxvb3A7Ci19CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBBdXRoZW50aWNhdGlvbk1hbmFnZXI7Ci1jbGFz
cyBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKLWNsYXNzIE5ldHdvcmtQcm9jZXNzU3Vw
cGxlbWVudDsKLWNsYXNzIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOwotc3RydWN0IE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOworc3RydWN0IE9mZmxpbmVTdG9yYWdlUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczsKIAotY2xhc3MgTmV0d29ya1Byb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQ
cm9jZXNzLCBwcml2YXRlIERvd25sb2FkTWFuYWdlcjo6Q2xpZW50IHsKLSAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShOZXR3b3JrUHJvY2Vzcyk7CitjbGFzcyBPZmZsaW5lU3RvcmFnZVByb2Nlc3Mg
OiBwdWJsaWMgQ2hpbGRQcm9jZXNzIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShPZmZsaW5l
U3RvcmFnZVByb2Nlc3MpOwogcHVibGljOgotICAgIHN0YXRpYyBOZXR3b3JrUHJvY2VzcyYgc2hh
cmVkKCk7Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgICBUKiBzdXBwbGVtZW50KCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4obV9zdXBwbGVtZW50cy5nZXQo
VDo6c3VwcGxlbWVudE5hbWUoKSkpOwotICAgIH0KLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgotICAgIHZvaWQgYWRkU3VwcGxlbWVudCgpCi0gICAgewotICAgICAgICBtX3N1cHBsZW1lbnRz
LmFkZChUOjpzdXBwbGVtZW50TmFtZSgpLCBhZG9wdFB0cjxOZXR3b3JrUHJvY2Vzc1N1cHBsZW1l
bnQ+KG5ldyBUKHRoaXMpKSk7Ci0gICAgfQotCi0gICAgdm9pZCByZW1vdmVOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyhOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyopOwotCi0gICAg
TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlciYgbmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxl
cigpIHsgcmV0dXJuIG1fbmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjsgfQotCi0gICAgQXV0
aGVudGljYXRpb25NYW5hZ2VyJiBhdXRoZW50aWNhdGlvbk1hbmFnZXIoKTsKLSAgICBEb3dubG9h
ZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlcigpOworICAgIHN0YXRpYyBPZmZsaW5lU3RvcmFnZVBy
b2Nlc3MmIHNoYXJlZCgpOwogCiBwcml2YXRlOgotICAgIE5ldHdvcmtQcm9jZXNzKCk7Ci0gICAg
fk5ldHdvcmtQcm9jZXNzKCk7Ci0KLSAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQ
cm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CisgICAgT2Zm
bGluZVN0b3JhZ2VQcm9jZXNzKCk7CisgICAgfk9mZmxpbmVTdG9yYWdlUHJvY2VzcygpOwogCiAg
ICAgLy8gQ2hpbGRQcm9jZXNzCiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVQcm9jZXNzTmFt
ZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbihDb3JlSVBD
OjpDb25uZWN0aW9uKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFRlcm1pbmF0
ZSgpIE9WRVJSSURFOwogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CkBAIC04
OSw0MiArNTIsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5h
bWUpIE9WRVJSSURFOwogCi0gICAgLy8gRG93bmxvYWRNYW5hZ2VyOjpDbGllbnQKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkQ3JlYXRlRG93bmxvYWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkRGVzdHJveURvd25sb2FkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBDb3JlSVBDOjpDb25u
ZWN0aW9uKiBkb3dubG9hZFByb3h5Q29ubmVjdGlvbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
QXV0aGVudGljYXRpb25NYW5hZ2VyJiBkb3dubG9hZHNBdXRoZW50aWNhdGlvbk1hbmFnZXIoKSBP
VkVSUklERTsKLQogICAgIC8vIE1lc3NhZ2UgSGFuZGxlcnMKLSAgICB2b2lkIGRpZFJlY2VpdmVO
ZXR3b3JrUHJvY2Vzc01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7Ci0gICAgdm9pZCBpbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKLSAgICB2b2lkIGNyZWF0ZU5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7Ci0gICAgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKCk7Ci0gICAgdm9pZCBkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOwotICAg
IHZvaWQgZG93bmxvYWRSZXF1ZXN0KHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpOwotICAgIHZvaWQgY2FuY2VsRG93bmxvYWQodWludDY0X3QgZG93
bmxvYWRJRCk7Ci0gICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsKLQotICAgIHZvaWQg
YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFBsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvJiwgY29uc3QgU3RyaW5nJiBob3N0KTsKLQotICAgIC8vIFBsYXRmb3JtIEhlbHBl
cnMKLSAgICB2b2lkIHBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsKTsKLQotICAgIC8v
IENvbm5lY3Rpb25zIHRvIFdlYlByb2Nlc3Nlcy4KLSAgICBWZWN0b3I8UmVmUHRyPE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzPiA+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zOwotCi0gICAg
TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlciBtX25ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVs
ZXI7Ci0KLSAgICBTdHJpbmcgbV9kaXNrQ2FjaGVEaXJlY3Rvcnk7Ci0gICAgYm9vbCBtX2hhc1Nl
dENhY2hlTW9kZWw7Ci0gICAgQ2FjaGVNb2RlbCBtX2NhY2hlTW9kZWw7Ci0KLSAgICB0eXBlZGVm
IEhhc2hNYXA8Y29uc3QgY2hhciosIE93blB0cjxOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQ+LCBQ
dHJIYXNoPGNvbnN0IGNoYXIqPiA+IE5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudE1hcDsKLSAgICBO
ZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnRNYXAgbV9zdXBwbGVtZW50czsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVPZmZsaW5lU3RvcmFnZVByb2Nlc3NNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgaW5pdGlhbGl6ZU9mZmxpbmVTdG9y
YWdlUHJvY2Vzcyhjb25zdCBPZmZsaW5lU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKLQotI2VuZGlmIC8vIE5ldHdvcmtQcm9jZXNzX2gKKyNlbmRpZiAvLyBPZmZs
aW5lU3RvcmFnZVByb2Nlc3NfaApJbmRleDogU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQ
cm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNz
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAxNDI1NzYpCShmcm9tIFNvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOjE0MjU3NikKKysrIFNvdXJjZS9X
ZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9PZmZsaW5lU3RvcmFnZVByb2Nlc3MubWVzc2Fn
ZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworbWVz
c2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgeworICAgICMgSW5pdGlhbGl6
ZXMgdGhlIG5ldHdvcmsgcHJvY2Vzcy4KKyAgICBJbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzKQorCisgICAgIyBDcmVhdGVzIGEgY29ubmVjdGlvbiBmb3IgY29tbXVuaWNhdGlvbiB3
aXRoIGEgV2ViUHJvY2VzcworICAgIENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KCkKKworICAgIEVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQorICAgIERlc3Ryb3lQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKCkKKworICAgIERvd25sb2FkUmVxdWVzdCh1aW50NjRfdCBkb3du
bG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkKKyAgICBDYW5jZWxEb3du
bG9hZCh1aW50NjRfdCBkb3dubG9hZElEKQorCisjaWYgUExBVEZPUk0oTUFDKQorICAgIFNldFBy
b2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCBmbGFnKQorI2VuZGlmCisKKyAgICBBbGxvd1Nw
ZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2ViS2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRl
SW5mbyBjZXJ0aWZpY2F0ZSwgV1RGOjpTdHJpbmcgaG9zdCkKKyAgICAKKyAgICBHZXROZXR3b3Jr
UHJvY2Vzc1N0YXRpc3RpY3ModWludDY0X3QgY2FsbGJhY2tJRCkKK30KKworI2VuZGlmIC8vIEVO
QUJMRShORVRXT1JLX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFn
ZVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9PZmZsaW5lU3RvcmFnZVByb2Nl
c3MubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3Rv
cmFnZVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMCwyNiArMjAs
NyBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0jaWYgRU5BQkxF
KE5FVFdPUktfUFJPQ0VTUykKLQotbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgewotICAgICMgSW5pdGlhbGl6ZXMgdGhlIG5ldHdvcmsgcHJvY2Vzcy4KLSAgICBJbml0
aWFsaXplTmV0d29ya1Byb2Nlc3MoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyBwcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKQotCi0gICAgIyBDcmVhdGVzIGEgY29ubmVj
dGlvbiBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGEgV2ViUHJvY2VzcwotICAgIENyZWF0ZU5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKLQotICAgIEVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oKQotICAgIERlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKLQotICAgIERvd25s
b2FkUmVxdWVzdCh1aW50NjRfdCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCkKLSAgICBDYW5jZWxEb3dubG9hZCh1aW50NjRfdCBkb3dubG9hZElEKQotCi0jaWYg
UExBVEZPUk0oTUFDKQotICAgIFNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCBmbGFn
KQotI2VuZGlmCi0KLSAgICBBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2Vi
S2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSwgV1RGOjpTdHJpbmcgaG9z
dCkKK21lc3NhZ2VzIC0+IE9mZmxpbmVTdG9yYWdlUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7Cisg
ICAgIyBJbml0aWFsaXplcyB0aGUgb2ZmbGluZSBzdG9yYWdlIHByb2Nlc3MuCisgICAgSW5pdGlh
bGl6ZU9mZmxpbmVTdG9yYWdlUHJvY2VzcyhXZWJLaXQ6Ok9mZmxpbmVTdG9yYWdlUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyBwcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKQogfQotCi0jZW5kaWYg
Ly8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL09mZmxpbmVT
dG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3QKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdAkocmV2aXNpb24gMTQyNTc2KQkoZnJvbSBT
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNz
L0luZm8ucGxpc3Q6MTQyNTc2KQorKysgU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDMyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/
PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAi
aHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3Qg
dmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+CisJ
PHN0cmluZz4ke0VYRUNVVEFCTEVfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlR2V0SW5m
b1N0cmluZzwva2V5PgorCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0sIENvcHlyaWdodCAyMDAz
LTIwMTMgQXBwbGUgSW5jLjwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+
CisJPHN0cmluZz5jb20uYXBwbGUuV2ViS2l0LiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgorCTxr
ZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248L2tleT4KKwk8c3RyaW5nPjYuMDwvc3Ry
aW5nPgorCTxrZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+CisJPHN0cmluZz4ke1BST0RVQ1RfTkFNRX08
L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KKwk8c3RyaW5nPkFQUEw8
L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+CisJPHN0cmlu
Zz4ke1NIT1JUX1ZFUlNJT05fU1RSSU5HfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVWZXJzaW9u
PC9rZXk+CisJPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9OfTwvc3RyaW5nPgorCTxrZXk+TFNGaWxl
UXVhcmFudGluZUVuYWJsZWQ8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5MU01pbmltdW1TeXN0ZW1W
ZXJzaW9uPC9rZXk+CisJPHN0cmluZz4ke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVH08L3N0cmlu
Zz4KKwk8a2V5PkxTVUlFbGVtZW50PC9rZXk+CisJPHRydWUvPgorCTxrZXk+TlNQcmluY2lwYWxD
bGFzczwva2V5PgorCTxzdHJpbmc+TlNBcHBsaWNhdGlvbjwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5k
bGVJY29uRmlsZTwva2V5PgorCTxzdHJpbmc+JHtBUFBfSUNPTn08L3N0cmluZz4KKzwvZGljdD4K
KzwvcGxpc3Q+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50
cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9PZmZsaW5lU3RvcmFnZVByb2Nlc3NNYWluLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9MZWdhY3lQcm9jZXNzL09mZmxpbmVTdG9yYWdlUHJvY2Vzc01haW4ubW0JKHJldmlz
aW9uIDE0MjU3NikJKGZyb20gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2lu
dC9tYWMvTGVnYWN5UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc01haW4ubW06MTQyNTc2KQorKysgU291
cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVBy
b2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFpbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQorCisjaW1wb3J0ICJDaGlsZFByb2Nlc3NNYWluLmgiCisjaW1wb3J0
ICJOZXR3b3JrUHJvY2Vzcy5oIgorI2ltcG9ydCAiV0tCYXNlLmgiCisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CisKK2V4dGVybiAiQyIgV0tfRVhQT1JUIGludCBOZXR3b3JrUHJvY2Vzc01haW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsKKworaW50IE5ldHdvcmtQcm9jZXNzTWFpbihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIENoaWxkUHJvY2Vzc01haW48TmV0d29ya1By
b2Nlc3MsIENoaWxkUHJvY2Vzc01haW5EZWxlZ2F0ZT4oYXJnYywgYXJndik7Cit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdDIvT2ZmbGlu
ZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvT2ZmbGluZVN0b3Jh
Z2VQcm9jZXNzTWFpbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3Rv
cmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9PZmZsaW5lU3RvcmFnZVBy
b2Nlc3NNYWluLm1tCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3Jh
Z2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9j
ZXNzTWFpbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsMTkgKzI1LDE1IEBACiAKICNpbXBvcnQgImNvbmZpZy5o
IgogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLQogI2ltcG9ydCAiQ2hpbGRQcm9jZXNz
TWFpbi5oIgotI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbXBvcnQgIk9mZmxpbmVTdG9y
YWdlUHJvY2Vzcy5oIgogI2ltcG9ydCAiV0tCYXNlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKLWV4dGVybiAiQyIgV0tfRVhQT1JUIGludCBOZXR3b3JrUHJvY2Vzc01haW4oaW50IGFy
Z2MsIGNoYXIqKiBhcmd2KTsKK2V4dGVybiAiQyIgV0tfRVhQT1JUIGludCBPZmZsaW5lU3RvcmFn
ZVByb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiogYXJndik7CiAKLWludCBOZXR3b3JrUHJvY2Vz
c01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoraW50IE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogewotICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWlu
PE5ldHdvcmtQcm9jZXNzLCBDaGlsZFByb2Nlc3NNYWluRGVsZWdhdGU+KGFyZ2MsIGFyZ3YpOwor
ICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPE9mZmxpbmVTdG9yYWdlUHJvY2VzcywgQ2hpbGRQ
cm9jZXNzTWFpbkRlbGVnYXRlPihhcmdjLCBhcmd2KTsKIH0KLQotI2VuZGlmIC8vIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nl
c3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9PZmZsaW5lU3RvcmFnZVByb2Nlc3NNYWlu
Qm9vdHN0cmFwcGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3Rv
cmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9PZmZsaW5lU3RvcmFnZVBy
b2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAkocmV2aXNpb24gMTQyNTc2KQkoZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL05ldHdv
cmtQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHA6MTQyNTc2KQorKysgU291cmNlL1dlYktpdDIv
T2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvT2ZmbGlu
ZVN0b3JhZ2VQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNYWluQm9vdHN0
cmFwcGVyLmgiCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBXZWJL
aXRNYWluRnVuY3Rpb24gbWFpbkZ1bmN0aW9uID0gZ2V0Qm9vdHN0cmFwTWFpbkZ1bmN0aW9uKGFy
Z2MsIGFyZ3YsICJOZXR3b3JrUHJvY2Vzc01haW4iKTsKKyAgICByZXR1cm4gbWFpbkZ1bmN0aW9u
KGFyZ2MsIGFyZ3YpOworfQpJbmRleDogU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFp
bkJvb3RzdHJhcHBlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvT2ZmbGluZVN0
b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvT2ZmbGluZVN0b3JhZ2VQ
cm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0
Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9PZmZs
aW5lU3RvcmFnZVByb2Nlc3NNYWluQm9vdHN0cmFwcGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNiBAQAogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiB7Ci0gICAg
V2ViS2l0TWFpbkZ1bmN0aW9uIG1haW5GdW5jdGlvbiA9IGdldEJvb3RzdHJhcE1haW5GdW5jdGlv
bihhcmdjLCBhcmd2LCAiTmV0d29ya1Byb2Nlc3NNYWluIik7CisgICAgV2ViS2l0TWFpbkZ1bmN0
aW9uIG1haW5GdW5jdGlvbiA9IGdldEJvb3RzdHJhcE1haW5GdW5jdGlvbihhcmdjLCBhcmd2LCAi
T2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFpbiIpOwogICAgIHJldHVybiBtYWluRnVuY3Rpb24oYXJn
YywgYXJndik7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3Mv
RW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9PZmZsaW5lU3RvcmFnZVNlcnZpY2VFbnRyeVBvaW50
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9F
bnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL09mZmxpbmVTdG9yYWdlU2VydmljZUVudHJ5UG9pbnQu
bW0JKHJldmlzaW9uIDE0MjU3NikJKGZyb20gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
RW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW06MTQy
NTc2KQorKysgU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL1hQQ1NlcnZpY2UvT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlRW50cnlQb2ludC5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisKKyNpZiBIQVZFKFhQQykKKworI2ltcG9ydCAiRW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKKyNp
bXBvcnQgIk5ldHdvcmtQcm9jZXNzLmgiCisjaW1wb3J0ICJXS0Jhc2UuaCIKKyNpbXBvcnQgIlhQ
Q1NlcnZpY2VFbnRyeVBvaW50LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK2V4dGVy
biAiQyIgV0tfRVhQT1JUIHZvaWQgTmV0d29ya1NlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVj
dGlvbl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UpOworCit2
b2lkIE5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9u
LCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKQoreworICAgIC8vIFJlbW92ZSB0aGUg
U2VjSXRlbVNoaW0gZnJvbSB0aGUgRFlMRF9JTlNFUlRfTElCUkFSSUVTIGVudmlyb25tZW50IHZh
cmlhYmxlIHNvIGFueSBwcm9jZXNzZXMgc3Bhd25lZCBieQorICAgIC8vIHRoZSB0aGlzIHByb2Nl
c3MgZG9uJ3QgdHJ5IHRvIGluc2VydCB0aGUgc2hpbSBhbmQgY3Jhc2guCisgICAgRW52aXJvbm1l
bnRVdGlsaXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZygiRFlMRF9JTlNFUlRfTElC
UkFSSUVTIiwgIi9TZWNJdGVtU2hpbS5keWxpYiIpOworCisgICAgWFBDU2VydmljZUluaXRpYWxp
emVyPE5ldHdvcmtQcm9jZXNzLCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZT4oY29ubmVj
dGlvbiwgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKK30KKworI2VuZGlmIC8vIEhBVkUoWFBDKQpJbmRl
eDogU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQ
Q1NlcnZpY2UvT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlRW50cnlQb2ludC5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBD
U2VydmljZS9PZmZsaW5lU3RvcmFnZVNlcnZpY2VFbnRyeVBvaW50Lm1tCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQ
Q1NlcnZpY2UvT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlRW50cnlQb2ludC5tbQkod29ya2luZyBjb3B5
KQpAQCAtMjcsMjIgKzI3LDE3IEBACiAKICNpZiBIQVZFKFhQQykKIAotI2ltcG9ydCAiRW52aXJv
bm1lbnRVdGlsaXRpZXMuaCIKLSNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzLmgiCisjaW1wb3J0ICJP
ZmZsaW5lU3RvcmFnZVByb2Nlc3MuaCIKICNpbXBvcnQgIldLQmFzZS5oIgogI2ltcG9ydCAiWFBD
U2VydmljZUVudHJ5UG9pbnQuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotZXh0ZXJu
ICJDIiBXS19FWFBPUlQgdm9pZCBOZXR3b3JrU2VydmljZUluaXRpYWxpemVyKHhwY19jb25uZWN0
aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSk7CitleHRl
cm4gIkMiIFdLX0VYUE9SVCB2b2lkIE9mZmxpbmVTdG9yYWdlU2VydmljZUluaXRpYWxpemVyKHhw
Y19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2Fn
ZSk7CiAKLXZvaWQgTmV0d29ya1NlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNv
bm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UpCit2b2lkIE9mZmxpbmVT
dG9yYWdlU2VydmljZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBj
X29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSkKIHsKLSAgICAvLyBSZW1vdmUgdGhlIFNlY0l0
ZW1TaGltIGZyb20gdGhlIERZTERfSU5TRVJUX0xJQlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJs
ZSBzbyBhbnkgcHJvY2Vzc2VzIHNwYXduZWQgYnkKLSAgICAvLyB0aGUgdGhpcyBwcm9jZXNzIGRv
bid0IHRyeSB0byBpbnNlcnQgdGhlIHNoaW0gYW5kIGNyYXNoLgotICAgIEVudmlyb25tZW50VXRp
bGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklF
UyIsICIvU2VjSXRlbVNoaW0uZHlsaWIiKTsKLQotICAgIFhQQ1NlcnZpY2VJbml0aWFsaXplcjxO
ZXR3b3JrUHJvY2VzcywgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU+KGNvbm5lY3Rpb24s
IGluaXRpYWxpemVyTWVzc2FnZSk7CisgICAgWFBDU2VydmljZUluaXRpYWxpemVyPE9mZmxpbmVT
dG9yYWdlUHJvY2VzcywgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU+KGNvbm5lY3Rpb24s
IGluaXRpYWxpemVyTWVzc2FnZSk7CiB9CiAKICNlbmRpZiAvLyBIQVZFKFhQQykKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2
aWNlL09mZmxpbmVTdG9yYWdlU2VydmljZS5EZXZlbG9wbWVudC9JbmZvLnBsaXN0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21h
Yy9YUENTZXJ2aWNlL09mZmxpbmVTdG9yYWdlU2VydmljZS5EZXZlbG9wbWVudC9JbmZvLnBsaXN0
CShyZXZpc2lvbiAxNDI1NzYpCShmcm9tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UuRGV2ZWxvcG1lbnQvSW5mby5w
bGlzdDoxNDI1NzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50
cnlQb2ludC9tYWMvWFBDU2VydmljZS9PZmZsaW5lU3RvcmFnZVNlcnZpY2UuRGV2ZWxvcG1lbnQv
SW5mby5wbGlzdAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQzIEBACis8P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBw
bGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0
eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+Q0ZC
dW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+CisJPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9OfSwgQ29w
eXJpZ2h0IDIwMDMtMjAxMyBBcHBsZSBJbmMuPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZURldmVs
b3BtZW50UmVnaW9uPC9rZXk+CisJPHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+CisJPGtleT5DRkJ1
bmRsZUV4ZWN1dGFibGU8L2tleT4KKwk8c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1FfTwvc3RyaW5n
PgorCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+CisJPHN0cmluZz5jb20uYXBwbGUuV2Vi
S2l0Lk5ldHdvcmtpbmcuRGV2ZWxvcG1lbnQ8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSW5mb0Rp
Y3Rpb25hcnlWZXJzaW9uPC9rZXk+CisJPHN0cmluZz42LjA8L3N0cmluZz4KKwk8a2V5PkNGQnVu
ZGxlTmFtZTwva2V5PgorCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+CisJPGtleT5D
RkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+CisJPHN0cmluZz5YUEMhPC9zdHJpbmc+CisJPGtleT5D
RkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5PgorCTxzdHJpbmc+JHtTSE9SVF9WRVJTSU9O
X1NUUklOR308L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+CisJPHN0cmlu
Zz4/Pz8/PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KKwk8c3RyaW5nPiR7
QlVORExFX1ZFUlNJT059PC9zdHJpbmc+CisJPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwv
a2V5PgorCTx0cnVlLz4KKwk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KKwk8c3RyaW5nPk5T
QXBwbGljYXRpb248L3N0cmluZz4KKwk8a2V5PldlYktpdEVudHJ5UG9pbnQ8L2tleT4KKwk8c3Ry
aW5nPk5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXI8L3N0cmluZz4KKwk8a2V5PkxTVUlFbGVtZW50
PC9rZXk+CisJPHRydWUvPgorCTxrZXk+WFBDU2VydmljZTwva2V5PgorCTxkaWN0PgorCQk8a2V5
PlNlcnZpY2VUeXBlPC9rZXk+CisJCTxzdHJpbmc+QXBwbGljYXRpb248L3N0cmluZz4KKwkJPGtl
eT5SdW5Mb29wVHlwZTwva2V5PgorCQk8c3RyaW5nPk5TUnVuTG9vcDwvc3RyaW5nPgorCQk8a2V5
Pl9NdWx0aXBsZUluc3RhbmNlczwva2V5PgorCQk8dHJ1ZS8+CisJPC9kaWN0PgorPC9kaWN0Pgor
PC9wbGlzdD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL09mZmxpbmVTdG9yYWdlU2VydmljZS5EZXZlbG9wbWVudC9J
bmZvLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL09mZmxpbmVTdG9yYWdlU2VydmljZS5EZXZl
bG9wbWVudC9JbmZvLnBsaXN0CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvT2ZmbGlu
ZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvT2ZmbGluZVN0b3JhZ2VT
ZXJ2aWNlLkRldmVsb3BtZW50L0luZm8ucGxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3
IEBACiAJPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KIAk8c3RyaW5nPiR7RVhFQ1VUQUJM
RV9OQU1FfTwvc3RyaW5nPgogCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+Ci0JPHN0cmlu
Zz5jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuRGV2ZWxvcG1lbnQ8L3N0cmluZz4KKwk8c3Ry
aW5nPmNvbS5hcHBsZS5XZWJLaXQuT2ZmbGluZVN0b3JhZ2UuRGV2ZWxvcG1lbnQ8L3N0cmluZz4K
IAk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+CiAJPHN0cmluZz42LjA8
L3N0cmluZz4KIAk8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgpAQCAtMjQsMTAgKzI0LDggQEAKIAk8
c3RyaW5nPiR7QlVORExFX1ZFUlNJT059PC9zdHJpbmc+CiAJPGtleT5MU0ZpbGVRdWFyYW50aW5l
RW5hYmxlZDwva2V5PgogCTx0cnVlLz4KLQk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KLQk8
c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KIAk8a2V5PldlYktpdEVudHJ5UG9pbnQ8L2tl
eT4KLQk8c3RyaW5nPk5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXI8L3N0cmluZz4KKwk8c3RyaW5n
Pk9mZmxpbmVTdG9yYWdlU2VydmljZUluaXRpYWxpemVyPC9zdHJpbmc+CiAJPGtleT5MU1VJRWxl
bWVudDwva2V5PgogCTx0cnVlLz4KIAk8a2V5PlhQQ1NlcnZpY2U8L2tleT4KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNl
L09mZmxpbmVTdG9yYWdlU2VydmljZS5EZXZlbG9wbWVudC9PZmZsaW5lU3RvcmFnZVNlcnZpY2VN
YWluLkRldmVsb3BtZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL09mZmxpbmVT
dG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL09mZmxpbmVTdG9yYWdlU2Vy
dmljZS5EZXZlbG9wbWVudC9PZmZsaW5lU3RvcmFnZVNlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1t
CShyZXZpc2lvbiAxNDI1NzYpCShmcm9tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UuRGV2ZWxvcG1lbnQvTmV0d29y
a1NlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1tOjE0MjU3NikKKysrIFNvdXJjZS9XZWJLaXQyL09m
ZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL09mZmxpbmVTdG9y
YWdlU2VydmljZS5EZXZlbG9wbWVudC9PZmZsaW5lU3RvcmFnZVNlcnZpY2VNYWluLkRldmVsb3Bt
ZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiWFBDU2VydmljZUJvb3RzdHJhcHBlci5EZXZlbG9wbWVudC5oIgorCit1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OworCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAg
eHBjX21haW4oWFBDU2VydmljZUV2ZW50SGFuZGxlcik7CisgICAgcmV0dXJuIDA7Cit9CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBD
U2VydmljZS9PZmZsaW5lU3RvcmFnZVNlcnZpY2UvSW5mby5wbGlzdAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vy
dmljZS9PZmZsaW5lU3RvcmFnZVNlcnZpY2UvSW5mby5wbGlzdAkocmV2aXNpb24gMTQyNTc2KQko
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2
aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8ucGxpc3Q6MTQyNTc2KQorKysgU291cmNlL1dlYktpdDIv
T2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvT2ZmbGluZVN0
b3JhZ2VTZXJ2aWNlL0luZm8ucGxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAor
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQ
VUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29t
L0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGlj
dD4KKwk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5PgorCTxzdHJpbmc+JHtCVU5ETEVf
VkVSU0lPTn0sIENvcHlyaWdodCAyMDAzLTIwMTMgQXBwbGUgSW5jLjwvc3RyaW5nPgorCTxrZXk+
Q0ZCdW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5PgorCTxzdHJpbmc+RW5nbGlzaDwvc3RyaW5n
PgorCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+CisJPHN0cmluZz4ke0VYRUNVVEFCTEVf
TkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgorCTxzdHJpbmc+
Y29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUluZm9E
aWN0aW9uYXJ5VmVyc2lvbjwva2V5PgorCTxzdHJpbmc+Ni4wPC9zdHJpbmc+CisJPGtleT5DRkJ1
bmRsZU5hbWU8L2tleT4KKwk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgorCTxrZXk+
Q0ZCdW5kbGVQYWNrYWdlVHlwZTwva2V5PgorCTxzdHJpbmc+WFBDITwvc3RyaW5nPgorCTxrZXk+
Q0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8L2tleT4KKwk8c3RyaW5nPiR7U0hPUlRfVkVSU0lP
Tl9TVFJJTkd9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVNpZ25hdHVyZTwva2V5PgorCTxzdHJp
bmc+Pz8/Pzwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+CisJPHN0cmluZz4k
e0JVTkRMRV9WRVJTSU9OfTwvc3RyaW5nPgorCTxrZXk+TFNGaWxlUXVhcmFudGluZUVuYWJsZWQ8
L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+CisJPHN0cmluZz5O
U0FwcGxpY2F0aW9uPC9zdHJpbmc+CisJPGtleT5XZWJLaXRFbnRyeVBvaW50PC9rZXk+CisJPHN0
cmluZz5OZXR3b3JrU2VydmljZUluaXRpYWxpemVyPC9zdHJpbmc+CisJPGtleT5MU1VJRWxlbWVu
dDwva2V5PgorCTx0cnVlLz4KKwk8a2V5PlhQQ1NlcnZpY2U8L2tleT4KKwk8ZGljdD4KKwkJPGtl
eT5TZXJ2aWNlVHlwZTwva2V5PgorCQk8c3RyaW5nPkFwcGxpY2F0aW9uPC9zdHJpbmc+CisJCTxr
ZXk+UnVuTG9vcFR5cGU8L2tleT4KKwkJPHN0cmluZz5OU1J1bkxvb3A8L3N0cmluZz4KKwkJPGtl
eT5fTXVsdGlwbGVJbnN0YW5jZXM8L2tleT4KKwkJPHRydWUvPgorCQk8a2V5PkVudmlyb25tZW50
VmFyaWFibGVzPC9rZXk+CisJCTxkaWN0PgorCQkJPGtleT5EWUxEX0lOU0VSVF9MSUJSQVJJRVM8
L2tleT4KKwkJCTxzdHJpbmc+JChXRUJLSVQyX0ZSQU1FV09SS1NfRElSKS9XZWJLaXQyLmZyYW1l
d29yay9XZWJQcm9jZXNzLmFwcC9Db250ZW50cy9NYWNPUy9TZWNJdGVtU2hpbS5keWxpYjwvc3Ry
aW5nPgorCQk8L2RpY3Q+CisJPC9kaWN0PgorPC9kaWN0PgorPC9wbGlzdD4KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNl
L09mZmxpbmVTdG9yYWdlU2VydmljZS9JbmZvLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL09m
ZmxpbmVTdG9yYWdlU2VydmljZS9JbmZvLnBsaXN0CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvT2Zm
bGluZVN0b3JhZ2VTZXJ2aWNlL0luZm8ucGxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3
IEBACiAJPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KIAk8c3RyaW5nPiR7RVhFQ1VUQUJM
RV9OQU1FfTwvc3RyaW5nPgogCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+Ci0JPHN0cmlu
Zz5jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmc8L3N0cmluZz4KKwk8c3RyaW5nPmNvbS5hcHBs
ZS5XZWJLaXQuT2ZmbGluZVN0b3JhZ2U8L3N0cmluZz4KIAk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rp
b25hcnlWZXJzaW9uPC9rZXk+CiAJPHN0cmluZz42LjA8L3N0cmluZz4KIAk8a2V5PkNGQnVuZGxl
TmFtZTwva2V5PgpAQCAtMjQsMTAgKzI0LDggQEAKIAk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059
PC9zdHJpbmc+CiAJPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgogCTx0cnVlLz4K
LQk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KLQk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0
cmluZz4KIAk8a2V5PldlYktpdEVudHJ5UG9pbnQ8L2tleT4KLQk8c3RyaW5nPk5ldHdvcmtTZXJ2
aWNlSW5pdGlhbGl6ZXI8L3N0cmluZz4KKwk8c3RyaW5nPk9mZmxpbmVTdG9yYWdlU2VydmljZUlu
aXRpYWxpemVyPC9zdHJpbmc+CiAJPGtleT5MU1VJRWxlbWVudDwva2V5PgogCTx0cnVlLz4KIAk8
a2V5PlhQQ1NlcnZpY2U8L2tleT4KQEAgLTM4LDExICszNiw2IEBACiAJCTxzdHJpbmc+TlNSdW5M
b29wPC9zdHJpbmc+CiAJCTxrZXk+X011bHRpcGxlSW5zdGFuY2VzPC9rZXk+CiAJCTx0cnVlLz4K
LQkJPGtleT5FbnZpcm9ubWVudFZhcmlhYmxlczwva2V5PgotCQk8ZGljdD4KLQkJCTxrZXk+RFlM
RF9JTlNFUlRfTElCUkFSSUVTPC9rZXk+Ci0JCQk8c3RyaW5nPiQoV0VCS0lUMl9GUkFNRVdPUktT
X0RJUikvV2ViS2l0Mi5mcmFtZXdvcmsvV2ViUHJvY2Vzcy5hcHAvQ29udGVudHMvTWFjT1MvU2Vj
SXRlbVNoaW0uZHlsaWI8L3N0cmluZz4KLQkJPC9kaWN0PgogCTwvZGljdD4KIDwvZGljdD4KIDwv
cGxpc3Q+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvWFBDU2VydmljZS9PZmZsaW5lU3RvcmFnZVNlcnZpY2UvT2ZmbGluZVN0b3JhZ2VT
ZXJ2aWNlTWFpbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFn
ZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9PZmZsaW5lU3RvcmFnZVNlcnZpY2Uv
T2ZmbGluZVN0b3JhZ2VTZXJ2aWNlTWFpbi5tbQkocmV2aXNpb24gMTQyNTc2KQkoZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdv
cmtTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlTWFpbi5tbToxNDI1NzYpCisrKyBTb3VyY2UvV2ViS2l0
Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9PZmZsaW5l
U3RvcmFnZVNlcnZpY2UvT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlTWFpbi5tbQkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIlhQQ1NlcnZpY2VCb290
c3RyYXBwZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIqKiBhcmd2KQoreworICAgIHhwY19tYWluKFhQQ1NlcnZpY2VFdmVudEhhbmRsZXIp
OworICAgIHJldHVybiAwOworfQpJbmRleDogU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQ
cm9jZXNzL21hYy9PZmZsaW5lU3RvcmFnZVByb2Nlc3NNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzL21hYy9PZmZsaW5lU3RvcmFnZVByb2Nl
c3NNYWMubW0JKHJldmlzaW9uIDE0MjU3NikJKGZyb20gU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tOjE0MjU3NikKKysrIFNvdXJjZS9XZWJLaXQy
L09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9tYWMvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzcy5oIgorCisjaWYgRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKKworI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIK
KyNpbXBvcnQgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCisjaW1wb3J0ICJTYW5kYm94RXh0
ZW5zaW9uLmgiCisjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCisj
aW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5o
PgorI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CisjaW1wb3J0IDxXZWJLaXRT
eXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPG1hY2gvaG9zdF9pbmZvLmg+CisjaW1wb3J0IDxt
YWNoL21hY2guaD4KKyNpbXBvcnQgPG1hY2gvbWFjaF9lcnJvci5oPgorI2ltcG9ydCA8c3lzZXhp
dHMuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgVVNFKFNFQ1VSSVRZ
X0ZSQU1FV09SSykKKyNpbXBvcnQgIlNlY0l0ZW1TaGltLmgiCisjZW5kaWYKKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK0BpbnRlcmZhY2UgTlNVUkxSZXF1ZXN0IChEZXRhaWxzKSAKKysg
KHZvaWQpc2V0QWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlOihOU0FycmF5ICopYWxsb3cg
Zm9ySG9zdDooTlNTdHJpbmcgKilob3N0OworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJv
Y2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBpZiAoIXBh
cmFtZXRlcnMudWlQcm9jZXNzTmFtZS5pc051bGwoKSkgeworICAgICAgICBOU1N0cmluZyAqYXBw
bGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX1NUUklORygi
JUAgTmV0d29ya2luZyIsICJ2aXNpYmxlIG5hbWUgb2YgdGhlIG5ldHdvcmsgcHJvY2Vzcy4gVGhl
IGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiIpLCAoTlNTdHJpbmcgKilwYXJhbWV0
ZXJzLnVpUHJvY2Vzc05hbWVdOworICAgICAgICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUo
KENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CisgICAgfQorfQorCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCitzdGF0aWMgdm9pZCBvdmVycmlkZVN5c3Rl
bVByb3hpZXMoY29uc3QgU3RyaW5nJiBodHRwUHJveHksIGNvbnN0IFN0cmluZyYgaHR0cHNQcm94
eSkKK3sKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpwcm94eVNldHRpbmdzID0gW05TTXV0YWJs
ZURpY3Rpb25hcnkgZGljdGlvbmFyeV07CisKKyAgICBpZiAoIWh0dHBQcm94eS5pc051bGwoKSkg
eworICAgICAgICBLVVJMIGh0dHBQcm94eVVSTChLVVJMKCksIGh0dHBQcm94eSk7CisgICAgICAg
IGlmIChodHRwUHJveHlVUkwuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBbcHJveHlTZXR0aW5n
cyBzZXRPYmplY3Q6bnNTdHJpbmdGcm9tV2ViQ29yZVN0cmluZyhodHRwUHJveHlVUkwuaG9zdCgp
KSBmb3JLZXk6KE5TU3RyaW5nICopa0NGTmV0d29ya1Byb3hpZXNIVFRQUHJveHldOworICAgICAg
ICAgICAgaWYgKGh0dHBQcm94eVVSTC5oYXNQb3J0KCkpIHsKKyAgICAgICAgICAgICAgICBOU051
bWJlciAqcG9ydCA9IFtOU051bWJlciBudW1iZXJXaXRoSW50Omh0dHBQcm94eVVSTC5wb3J0KCld
OworICAgICAgICAgICAgICAgIFtwcm94eVNldHRpbmdzIHNldE9iamVjdDpwb3J0IGZvcktleToo
TlNTdHJpbmcgKilrQ0ZOZXR3b3JrUHJveGllc0hUVFBQb3J0XTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICBOU0xvZyhAIk1hbGZvcm1lZCBIVFRQ
IFByb3h5IFVSTCAnJXMnLiAgRXhwZWN0ZWQgJ2h0dHA6Ly88aG9zdG5hbWU+Wzo8cG9ydD5dJ1xu
IiwgaHR0cFByb3h5LnV0ZjgoKS5kYXRhKCkpOworICAgIH0KKworICAgIGlmICghaHR0cHNQcm94
eS5pc051bGwoKSkgeworICAgICAgICBLVVJMIGh0dHBzUHJveHlVUkwoS1VSTCgpLCBodHRwc1By
b3h5KTsKKyAgICAgICAgaWYgKGh0dHBzUHJveHlVUkwuaXNWYWxpZCgpKSB7CisgICAgICAgICAg
ICBbcHJveHlTZXR0aW5ncyBzZXRPYmplY3Q6bnNTdHJpbmdGcm9tV2ViQ29yZVN0cmluZyhodHRw
c1Byb3h5VVJMLmhvc3QoKSkgZm9yS2V5OihOU1N0cmluZyAqKWtDRk5ldHdvcmtQcm94aWVzSFRU
UFNQcm94eV07CisgICAgICAgICAgICBpZiAoaHR0cHNQcm94eVVSTC5oYXNQb3J0KCkpIHsKKyAg
ICAgICAgICAgICAgICBOU051bWJlciAqcG9ydCA9IFtOU051bWJlciBudW1iZXJXaXRoSW50Omh0
dHBzUHJveHlVUkwucG9ydCgpXTsKKyAgICAgICAgICAgICAgICBbcHJveHlTZXR0aW5ncyBzZXRP
YmplY3Q6cG9ydCBmb3JLZXk6KE5TU3RyaW5nICopa0NGTmV0d29ya1Byb3hpZXNIVFRQU1BvcnRd
OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIE5TTG9nKEAiTWFs
Zm9ybWVkIEhUVFBTIFByb3h5IFVSTCAnJXMnLiAgRXhwZWN0ZWQgJ2h0dHBzOi8vPGhvc3RuYW1l
Pls6PHBvcnQ+XSdcbiIsIGh0dHBzUHJveHkudXRmOCgpLmRhdGEoKSk7CisgICAgfQorCisgICAg
aWYgKFtwcm94eVNldHRpbmdzIGNvdW50XSA+IDApCisgICAgICAgIFdLQ0ZOZXR3b3JrU2V0T3Zl
cnJpZGVTeXN0ZW1Qcm94eVNldHRpbmdzKChDRkRpY3Rpb25hcnlSZWYpcHJveHlTZXR0aW5ncyk7
Cit9CisjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCisK
K3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNv
bnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworICAg
IG1fZGlza0NhY2hlRGlyZWN0b3J5ID0gcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3Rvcnk7CisK
KyAgICBpZiAoIW1fZGlza0NhY2hlRGlyZWN0b3J5LmlzTnVsbCgpKSB7CisgICAgICAgIFNhbmRi
b3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSk7CisgICAgICAgIE5TVUludGVnZXIgY2FjaGVNZW1vcnlDYXBh
Y2l0eSA9IHBhcmFtZXRlcnMubnNVUkxDYWNoZU1lbW9yeUNhcGFjaXR5OworICAgICAgICBOU1VJ
bnRlZ2VyIGNhY2hlRGlza0NhcGFjaXR5ID0gcGFyYW1ldGVycy5uc1VSTENhY2hlRGlza0NhcGFj
aXR5OworCisgICAgICAgIFJldGFpblB0cjxOU1VSTENhY2hlPiBwYXJlbnRQcm9jZXNzVVJMQ2Fj
aGUoQWRvcHROUywgW1tOU1VSTENhY2hlIGFsbG9jXSBpbml0V2l0aE1lbW9yeUNhcGFjaXR5OmNh
Y2hlTWVtb3J5Q2FwYWNpdHkgZGlza0NhcGFjaXR5OmNhY2hlRGlza0NhcGFjaXR5IGRpc2tQYXRo
OnBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5XSk7CisgICAgICAgIFtOU1VSTENhY2hlIHNl
dFNoYXJlZFVSTENhY2hlOnBhcmVudFByb2Nlc3NVUkxDYWNoZS5nZXQoKV07CisgICAgfQorCisj
aWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09SSykKKyAgICBTZWNJdGVtU2hpbTo6c2hhcmVkKCkuaW5p
dGlhbGl6ZSh0aGlzKTsKKyNlbmRpZgorCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDcwCisgICAgaWYgKCFwYXJhbWV0ZXJzLmh0dHBQcm94eS5pc051bGwoKSB8fCAh
cGFyYW1ldGVycy5odHRwc1Byb3h5LmlzTnVsbCgpKQorICAgICAgICBvdmVycmlkZVN5c3RlbVBy
b3hpZXMocGFyYW1ldGVycy5odHRwUHJveHksIHBhcmFtZXRlcnMuaHR0cHNQcm94eSk7CisjZW5k
aWYKK30KKworc3RhdGljIHVpbnQ2NF90IG1lbW9yeVNpemUoKQoreworICAgIHN0YXRpYyBob3N0
X2Jhc2ljX2luZm9fZGF0YV90IGhvc3RJbmZvOworCisgICAgc3RhdGljIGRpc3BhdGNoX29uY2Vf
dCBvbmNlOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2UsIF4oKSB7CisgICAgICAgIG1hY2hfcG9y
dF90IGhvc3QgPSBtYWNoX2hvc3Rfc2VsZigpOworICAgICAgICBtYWNoX21zZ190eXBlX251bWJl
cl90IGNvdW50ID0gSE9TVF9CQVNJQ19JTkZPX0NPVU5UOworICAgICAgICBrZXJuX3JldHVybl90
IHIgPSBob3N0X2luZm8oaG9zdCwgSE9TVF9CQVNJQ19JTkZPLCAoaG9zdF9pbmZvX3QpJmhvc3RJ
bmZvLCAmY291bnQpOworICAgICAgICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2Vs
ZigpLCBob3N0KTsKKworICAgICAgICBpZiAociAhPSBLRVJOX1NVQ0NFU1MpCisgICAgICAgICAg
ICBMT0dfRVJST1IoIiVzIDogaG9zdF9pbmZvKCVkKSA6ICVzLlxuIiwgX19GVU5DVElPTl9fLCBy
LCBtYWNoX2Vycm9yX3N0cmluZyhyKSk7CisgICAgfSk7CisKKyAgICByZXR1cm4gaG9zdEluZm8u
bWF4X21lbTsKK30KKworc3RhdGljIHVpbnQ2NF90IHZvbHVtZUZyZWVTaXplKGNvbnN0IFN0cmlu
ZyYgcGF0aCkKK3sKKyAgICBOU0RpY3Rpb25hcnkgKmZpbGVTeXN0ZW1BdHRyaWJ1dGVzRGljdGlv
bmFyeSA9IFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gYXR0cmlidXRlc09mRmlsZVN5
c3RlbUZvclBhdGg6KE5TU3RyaW5nICopcGF0aCBlcnJvcjpOVUxMXTsKKyAgICByZXR1cm4gW1tm
aWxlU3lzdGVtQXR0cmlidXRlc0RpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5Ok5TRmlsZVN5c3RlbUZy
ZWVTaXplXSB1bnNpZ25lZExvbmdMb25nVmFsdWVdOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNz
OjpwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQoreworCisgICAg
Ly8gQXMgYSBmdWRnZSBmYWN0b3IsIHVzZSAxMDAwIGluc3RlYWQgb2YgMTAyNCwgaW4gY2FzZSB0
aGUgcmVwb3J0ZWQgYnl0ZSAKKyAgICAvLyBjb3VudCBkb2Vzbid0IGFsaWduIGV4YWN0bHkgdG8g
YSBtZWdhYnl0ZSBib3VuZGFyeS4KKyAgICB1aW50NjRfdCBtZW1TaXplID0gbWVtb3J5U2l6ZSgp
IC8gMTAyNCAvIDEwMDA7CisgICAgdWludDY0X3QgZGlza0ZyZWVTaXplID0gdm9sdW1lRnJlZVNp
emUobV9kaXNrQ2FjaGVEaXJlY3RvcnkpIC8gMTAyNCAvIDEwMDA7CisKKyAgICB1bnNpZ25lZCBj
YWNoZVRvdGFsQ2FwYWNpdHkgPSAwOworICAgIHVuc2lnbmVkIGNhY2hlTWluRGVhZENhcGFjaXR5
ID0gMDsKKyAgICB1bnNpZ25lZCBjYWNoZU1heERlYWRDYXBhY2l0eSA9IDA7CisgICAgZG91Ymxl
IGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwgPSAwOworICAgIHVuc2lnbmVkIHBhZ2VD
YWNoZUNhcGFjaXR5ID0gMDsKKyAgICB1bnNpZ25lZCBsb25nIHVybENhY2hlTWVtb3J5Q2FwYWNp
dHkgPSAwOworICAgIHVuc2lnbmVkIGxvbmcgdXJsQ2FjaGVEaXNrQ2FwYWNpdHkgPSAwOworCisg
ICAgY2FsY3VsYXRlQ2FjaGVTaXplcyhjYWNoZU1vZGVsLCBtZW1TaXplLCBkaXNrRnJlZVNpemUs
CisgICAgICAgIGNhY2hlVG90YWxDYXBhY2l0eSwgY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hl
TWF4RGVhZENhcGFjaXR5LCBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsLAorICAgICAg
ICBwYWdlQ2FjaGVDYXBhY2l0eSwgdXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSwgdXJsQ2FjaGVEaXNr
Q2FwYWNpdHkpOworCisKKyAgICBOU1VSTENhY2hlICpuc3VybENhY2hlID0gW05TVVJMQ2FjaGUg
c2hhcmVkVVJMQ2FjaGVdOworICAgIFtuc3VybENhY2hlIHNldE1lbW9yeUNhcGFjaXR5OnVybENh
Y2hlTWVtb3J5Q2FwYWNpdHldOworICAgIFtuc3VybENhY2hlIHNldERpc2tDYXBhY2l0eTpzdGQ6
Om1heDx1bnNpZ25lZCBsb25nPih1cmxDYWNoZURpc2tDYXBhY2l0eSwgW25zdXJsQ2FjaGUgZGlz
a0NhcGFjaXR5XSldOyAvLyBEb24ndCBzaHJpbmsgYSBiaWcgZGlzayBjYWNoZSwgc2luY2UgdGhh
dCB3b3VsZCBjYXVzZSBjaHVybi4KK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVj
aWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
JiBjZXJ0aWZpY2F0ZUluZm8sIGNvbnN0IFN0cmluZyYgaG9zdCkKK3sKKyAgICBbTlNVUkxSZXF1
ZXN0IHNldEFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmlj
YXRlSW5mby5jZXJ0aWZpY2F0ZUNoYWluKCkgZm9ySG9zdDooTlNTdHJpbmcgKilob3N0XTsKK30K
Kwordm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1ldGVycykKK3sKKyAgICAvLyBOZWVkIHRvIG92
ZXJpZGUgdGhlIGRlZmF1bHQsIGJlY2F1c2Ugc2VydmljZSBoYXMgYSBkaWZmZXJlbnQgYnVuZGxl
IElELgorICAgIE5TQnVuZGxlICp3ZWJraXQyQnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNs
YXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tWaWV3IildOworICAgIHNhbmRib3hQYXJhbWV0ZXJz
LnNldE92ZXJyaWRlU2FuZGJveFByb2ZpbGVQYXRoKFt3ZWJraXQyQnVuZGxlIHBhdGhGb3JSZXNv
dXJjZTpAImNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3MiIG9mVHlwZTpAInNiIl0pOwor
CisgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94
UGFyYW1ldGVycyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdl
UHJvY2Vzcy9tYWMvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFjLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL09mZmxpbmVTdG9yYWdlUHJvY2Vzcy9tYWMvT2ZmbGluZVN0b3JhZ2VQcm9j
ZXNzTWFjLm1tCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvT2ZmbGluZVN0b3JhZ2VQ
cm9jZXNzL21hYy9PZmZsaW5lU3RvcmFnZVByb2Nlc3NNYWMubW0JKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDE2NiAr
MjQsMjcgQEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIk5ldHdvcmtQcm9j
ZXNzLmgiCisjaW1wb3J0ICJPZmZsaW5lU3RvcmFnZVByb2Nlc3MuaCIKIAotI2lmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCi0KLSNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgiCi0jaW1wb3J0ICJQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIgotI2ltcG9ydCAiU2Fu
ZGJveEV4dGVuc2lvbi5oIgogI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVy
cy5oIgotI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCi0jaW1wb3J0IDxXZWJDb3JlL0ZpbGVT
eXN0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8
V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Ci0jaW1wb3J0IDxtYWNoL2hvc3RfaW5mby5oPgotI2lt
cG9ydCA8bWFjaC9tYWNoLmg+Ci0jaW1wb3J0IDxtYWNoL21hY2hfZXJyb3IuaD4KLSNpbXBvcnQg
PHN5c2V4aXRzLmg+Ci0jaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotI2lmIFVTRShT
RUNVUklUWV9GUkFNRVdPUkspCi0jaW1wb3J0ICJTZWNJdGVtU2hpbS5oIgotI2VuZGlmCi0KLXVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1AaW50ZXJmYWNlIE5TVVJMUmVxdWVzdCAoRGV0YWls
cykgCi0rICh2b2lkKXNldEFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAq
KWFsbG93IGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdDsKLUBlbmQKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBD
aGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCi17Ci0gICAg
aWYgKCFwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWUuaXNOdWxsKCkpIHsKLSAgICAgICAgTlNTdHJp
bmcgKmFwcGxpY2F0aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9T
VFJJTkcoIiVAIE5ldHdvcmtpbmciLCAidmlzaWJsZSBuYW1lIG9mIHRoZSBuZXR3b3JrIHByb2Nl
c3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgKE5TU3RyaW5nICop
cGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsKLSAgICAgICAgV0tTZXRWaXNpYmxlQXBwbGljYXRp
b25OYW1lKChDRlN0cmluZ1JlZilhcHBsaWNhdGlvbk5hbWUpOwotICAgIH0KLX0KLQotI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAotc3RhdGljIHZvaWQgb3ZlcnJp
ZGVTeXN0ZW1Qcm94aWVzKGNvbnN0IFN0cmluZyYgaHR0cFByb3h5LCBjb25zdCBTdHJpbmcmIGh0
dHBzUHJveHkpCi17Ci0gICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqcHJveHlTZXR0aW5ncyA9IFtO
U011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnldOwotCi0gICAgaWYgKCFodHRwUHJveHkuaXNO
dWxsKCkpIHsKLSAgICAgICAgS1VSTCBodHRwUHJveHlVUkwoS1VSTCgpLCBodHRwUHJveHkpOwot
ICAgICAgICBpZiAoaHR0cFByb3h5VVJMLmlzVmFsaWQoKSkgewotICAgICAgICAgICAgW3Byb3h5
U2V0dGluZ3Mgc2V0T2JqZWN0Om5zU3RyaW5nRnJvbVdlYkNvcmVTdHJpbmcoaHR0cFByb3h5VVJM
Lmhvc3QoKSkgZm9yS2V5OihOU1N0cmluZyAqKWtDRk5ldHdvcmtQcm94aWVzSFRUUFByb3h5XTsK
LSAgICAgICAgICAgIGlmIChodHRwUHJveHlVUkwuaGFzUG9ydCgpKSB7Ci0gICAgICAgICAgICAg
ICAgTlNOdW1iZXIgKnBvcnQgPSBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpodHRwUHJveHlVUkwu
cG9ydCgpXTsKLSAgICAgICAgICAgICAgICBbcHJveHlTZXR0aW5ncyBzZXRPYmplY3Q6cG9ydCBm
b3JLZXk6KE5TU3RyaW5nICopa0NGTmV0d29ya1Byb3hpZXNIVFRQUG9ydF07Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgTlNMb2coQCJNYWxmb3Jt
ZWQgSFRUUCBQcm94eSBVUkwgJyVzJy4gIEV4cGVjdGVkICdodHRwOi8vPGhvc3RuYW1lPls6PHBv
cnQ+XSdcbiIsIGh0dHBQcm94eS51dGY4KCkuZGF0YSgpKTsKLSAgICB9Ci0KLSAgICBpZiAoIWh0
dHBzUHJveHkuaXNOdWxsKCkpIHsKLSAgICAgICAgS1VSTCBodHRwc1Byb3h5VVJMKEtVUkwoKSwg
aHR0cHNQcm94eSk7Ci0gICAgICAgIGlmIChodHRwc1Byb3h5VVJMLmlzVmFsaWQoKSkgewotICAg
ICAgICAgICAgW3Byb3h5U2V0dGluZ3Mgc2V0T2JqZWN0Om5zU3RyaW5nRnJvbVdlYkNvcmVTdHJp
bmcoaHR0cHNQcm94eVVSTC5ob3N0KCkpIGZvcktleTooTlNTdHJpbmcgKilrQ0ZOZXR3b3JrUHJv
eGllc0hUVFBTUHJveHldOwotICAgICAgICAgICAgaWYgKGh0dHBzUHJveHlVUkwuaGFzUG9ydCgp
KSB7Ci0gICAgICAgICAgICAgICAgTlNOdW1iZXIgKnBvcnQgPSBbTlNOdW1iZXIgbnVtYmVyV2l0
aEludDpodHRwc1Byb3h5VVJMLnBvcnQoKV07Ci0gICAgICAgICAgICAgICAgW3Byb3h5U2V0dGlu
Z3Mgc2V0T2JqZWN0OnBvcnQgZm9yS2V5OihOU1N0cmluZyAqKWtDRk5ldHdvcmtQcm94aWVzSFRU
UFNQb3J0XTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBOU0xv
ZyhAIk1hbGZvcm1lZCBIVFRQUyBQcm94eSBVUkwgJyVzJy4gIEV4cGVjdGVkICdodHRwczovLzxo
b3N0bmFtZT5bOjxwb3J0Pl0nXG4iLCBodHRwc1Byb3h5LnV0ZjgoKS5kYXRhKCkpOwotICAgIH0K
LQotICAgIGlmIChbcHJveHlTZXR0aW5ncyBjb3VudF0gPiAwKQotICAgICAgICBXS0NGTmV0d29y
a1NldE92ZXJyaWRlU3lzdGVtUHJveHlTZXR0aW5ncygoQ0ZEaWN0aW9uYXJ5UmVmKXByb3h5U2V0
dGluZ3MpOwotfQotI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA3MAotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJv
Y2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
LXsKLSAgICBtX2Rpc2tDYWNoZURpcmVjdG9yeSA9IHBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0
b3J5OwotCi0gICAgaWYgKCFtX2Rpc2tDYWNoZURpcmVjdG9yeS5pc051bGwoKSkgewotICAgICAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5kaXNrQ2Fj
aGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotICAgICAgICBOU1VJbnRlZ2VyIGNhY2hlTWVt
b3J5Q2FwYWNpdHkgPSBwYXJhbWV0ZXJzLm5zVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eTsKLSAgICAg
ICAgTlNVSW50ZWdlciBjYWNoZURpc2tDYXBhY2l0eSA9IHBhcmFtZXRlcnMubnNVUkxDYWNoZURp
c2tDYXBhY2l0eTsKLQotICAgICAgICBSZXRhaW5QdHI8TlNVUkxDYWNoZT4gcGFyZW50UHJvY2Vz
c1VSTENhY2hlKEFkb3B0TlMsIFtbTlNVUkxDYWNoZSBhbGxvY10gaW5pdFdpdGhNZW1vcnlDYXBh
Y2l0eTpjYWNoZU1lbW9yeUNhcGFjaXR5IGRpc2tDYXBhY2l0eTpjYWNoZURpc2tDYXBhY2l0eSBk
aXNrUGF0aDpwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeV0pOwotICAgICAgICBbTlNVUkxD
YWNoZSBzZXRTaGFyZWRVUkxDYWNoZTpwYXJlbnRQcm9jZXNzVVJMQ2FjaGUuZ2V0KCldOwotICAg
IH0KLQotI2lmIFVTRShTRUNVUklUWV9GUkFNRVdPUkspCi0gICAgU2VjSXRlbVNoaW06OnNoYXJl
ZCgpLmluaXRpYWxpemUodGhpcyk7Ci0jZW5kaWYKLQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA3MAotICAgIGlmICghcGFyYW1ldGVycy5odHRwUHJveHkuaXNOdWxs
KCkgfHwgIXBhcmFtZXRlcnMuaHR0cHNQcm94eS5pc051bGwoKSkKLSAgICAgICAgb3ZlcnJpZGVT
eXN0ZW1Qcm94aWVzKHBhcmFtZXRlcnMuaHR0cFByb3h5LCBwYXJhbWV0ZXJzLmh0dHBzUHJveHkp
OwotI2VuZGlmCi19Ci0KLXN0YXRpYyB1aW50NjRfdCBtZW1vcnlTaXplKCkKK3ZvaWQgT2ZmbGlu
ZVN0b3JhZ2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNz
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotICAgIHN0YXRpYyBob3N0
X2Jhc2ljX2luZm9fZGF0YV90IGhvc3RJbmZvOwotCi0gICAgc3RhdGljIGRpc3BhdGNoX29uY2Vf
dCBvbmNlOwotICAgIGRpc3BhdGNoX29uY2UoJm9uY2UsIF4oKSB7Ci0gICAgICAgIG1hY2hfcG9y
dF90IGhvc3QgPSBtYWNoX2hvc3Rfc2VsZigpOwotICAgICAgICBtYWNoX21zZ190eXBlX251bWJl
cl90IGNvdW50ID0gSE9TVF9CQVNJQ19JTkZPX0NPVU5UOwotICAgICAgICBrZXJuX3JldHVybl90
IHIgPSBob3N0X2luZm8oaG9zdCwgSE9TVF9CQVNJQ19JTkZPLCAoaG9zdF9pbmZvX3QpJmhvc3RJ
bmZvLCAmY291bnQpOwotICAgICAgICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2Vs
ZigpLCBob3N0KTsKLQotICAgICAgICBpZiAociAhPSBLRVJOX1NVQ0NFU1MpCi0gICAgICAgICAg
ICBMT0dfRVJST1IoIiVzIDogaG9zdF9pbmZvKCVkKSA6ICVzLlxuIiwgX19GVU5DVElPTl9fLCBy
LCBtYWNoX2Vycm9yX3N0cmluZyhyKSk7Ci0gICAgfSk7Ci0KLSAgICByZXR1cm4gaG9zdEluZm8u
bWF4X21lbTsKKyAgICBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0cmlu
Z1dpdGhGb3JtYXQ6V0VCX1VJX1NUUklORygiJUAgT2ZmbGluZSBTdG9yYWdlIiwgInZpc2libGUg
bmFtZSBvZiB0aGUgb2ZmbGluZSBzdG9yYWdlIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUg
YXBwbGljYXRpb24gbmFtZS4iKSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1l
XTsKKyAgICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0
aW9uTmFtZSk7CiB9CiAKLXN0YXRpYyB1aW50NjRfdCB2b2x1bWVGcmVlU2l6ZShjb25zdCBTdHJp
bmcmIHBhdGgpCi17Ci0gICAgTlNEaWN0aW9uYXJ5ICpmaWxlU3lzdGVtQXR0cmlidXRlc0RpY3Rp
b25hcnkgPSBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGF0dHJpYnV0ZXNPZkZpbGVT
eXN0ZW1Gb3JQYXRoOihOU1N0cmluZyAqKXBhdGggZXJyb3I6TlVMTF07Ci0gICAgcmV0dXJuIFtb
ZmlsZVN5c3RlbUF0dHJpYnV0ZXNEaWN0aW9uYXJ5IG9iamVjdEZvcktleTpOU0ZpbGVTeXN0ZW1G
cmVlU2l6ZV0gdW5zaWduZWRMb25nTG9uZ1ZhbHVlXTsKLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vz
czo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwgY2FjaGVNb2RlbCkKLXsKLQotICAg
IC8vIEFzIGEgZnVkZ2UgZmFjdG9yLCB1c2UgMTAwMCBpbnN0ZWFkIG9mIDEwMjQsIGluIGNhc2Ug
dGhlIHJlcG9ydGVkIGJ5dGUgCi0gICAgLy8gY291bnQgZG9lc24ndCBhbGlnbiBleGFjdGx5IHRv
IGEgbWVnYWJ5dGUgYm91bmRhcnkuCi0gICAgdWludDY0X3QgbWVtU2l6ZSA9IG1lbW9yeVNpemUo
KSAvIDEwMjQgLyAxMDAwOwotICAgIHVpbnQ2NF90IGRpc2tGcmVlU2l6ZSA9IHZvbHVtZUZyZWVT
aXplKG1fZGlza0NhY2hlRGlyZWN0b3J5KSAvIDEwMjQgLyAxMDAwOwotCi0gICAgdW5zaWduZWQg
Y2FjaGVUb3RhbENhcGFjaXR5ID0gMDsKLSAgICB1bnNpZ25lZCBjYWNoZU1pbkRlYWRDYXBhY2l0
eSA9IDA7Ci0gICAgdW5zaWduZWQgY2FjaGVNYXhEZWFkQ2FwYWNpdHkgPSAwOwotICAgIGRvdWJs
ZSBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsID0gMDsKLSAgICB1bnNpZ25lZCBwYWdl
Q2FjaGVDYXBhY2l0eSA9IDA7Ci0gICAgdW5zaWduZWQgbG9uZyB1cmxDYWNoZU1lbW9yeUNhcGFj
aXR5ID0gMDsKLSAgICB1bnNpZ25lZCBsb25nIHVybENhY2hlRGlza0NhcGFjaXR5ID0gMDsKLQot
ICAgIGNhbGN1bGF0ZUNhY2hlU2l6ZXMoY2FjaGVNb2RlbCwgbWVtU2l6ZSwgZGlza0ZyZWVTaXpl
LAotICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHksIGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNo
ZU1heERlYWRDYXBhY2l0eSwgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwKLSAgICAg
ICAgcGFnZUNhY2hlQ2FwYWNpdHksIHVybENhY2hlTWVtb3J5Q2FwYWNpdHksIHVybENhY2hlRGlz
a0NhcGFjaXR5KTsKLQotCi0gICAgTlNVUkxDYWNoZSAqbnN1cmxDYWNoZSA9IFtOU1VSTENhY2hl
IHNoYXJlZFVSTENhY2hlXTsKLSAgICBbbnN1cmxDYWNoZSBzZXRNZW1vcnlDYXBhY2l0eTp1cmxD
YWNoZU1lbW9yeUNhcGFjaXR5XTsKLSAgICBbbnN1cmxDYWNoZSBzZXREaXNrQ2FwYWNpdHk6c3Rk
OjptYXg8dW5zaWduZWQgbG9uZz4odXJsQ2FjaGVEaXNrQ2FwYWNpdHksIFtuc3VybENhY2hlIGRp
c2tDYXBhY2l0eV0pXTsgLy8gRG9uJ3Qgc2hyaW5rIGEgYmlnIGRpc2sgY2FjaGUsIHNpbmNlIHRo
YXQgd291bGQgY2F1c2UgY2h1cm4uCi19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93U3Bl
Y2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5m
byYgY2VydGlmaWNhdGVJbmZvLCBjb25zdCBTdHJpbmcmIGhvc3QpCi17Ci0gICAgW05TVVJMUmVx
dWVzdCBzZXRBbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGU6KE5TQXJyYXkgKiljZXJ0aWZp
Y2F0ZUluZm8uY2VydGlmaWNhdGVDaGFpbigpIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdF07Ci19
Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJv
Y2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgU2FuZGJveEluaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCit2b2lkIE9mZmxpbmVTdG9yYWdl
UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
JiBzYW5kYm94UGFyYW1ldGVycykKIHsKICAgICAvLyBOZWVkIHRvIG92ZXJpZGUgdGhlIGRlZmF1
bHQsIGJlY2F1c2Ugc2VydmljZSBoYXMgYSBkaWZmZXJlbnQgYnVuZGxlIElELgogICAgIE5TQnVu
ZGxlICp3ZWJraXQyQnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOk5TQ2xhc3NGcm9t
U3RyaW5nKEAiV0tWaWV3IildOwotICAgIHNhbmRib3hQYXJhbWV0ZXJzLnNldE92ZXJyaWRlU2Fu
ZGJveFByb2ZpbGVQYXRoKFt3ZWJraXQyQnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAImNvbS5hcHBs
ZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3MiIG9mVHlwZTpAInNiIl0pOworICAgIHNhbmRib3hQYXJh
bWV0ZXJzLnNldE92ZXJyaWRlU2FuZGJveFByb2ZpbGVQYXRoKFt3ZWJraXQyQnVuZGxlIHBhdGhG
b3JSZXNvdXJjZTpAImNvbS5hcHBsZS5XZWJLaXQuT2ZmbGluZVN0b3JhZ2UiIG9mVHlwZTpAInNi
Il0pOwogCiAgICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBz
YW5kYm94UGFyYW1ldGVycyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYg
Ly8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL09mZmxpbmVT
dG9yYWdlUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5PZmZsaW5lU3RvcmFnZS5zYgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9PZmZsaW5lU3RvcmFnZVByb2Nlc3MvbWFjL2NvbS5h
cHBsZS5XZWJLaXQuT2ZmbGluZVN0b3JhZ2Uuc2IJKHJldmlzaW9uIDE0MjU3NikJKGZyb20gU291
cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5TaGFy
ZWRXb3JrZXJQcm9jZXNzLnNiOjE0MjU3NikKKysrIFNvdXJjZS9XZWJLaXQyL09mZmxpbmVTdG9y
YWdlUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5PZmZsaW5lU3RvcmFnZS5zYgkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDQgQEAKKyh2ZXJzaW9uIDEpCisoZGVueSBkZWZhdWx0ICh3aXRo
IHBhcnRpYWwtc3ltYm9saWNhdGlvbikpCisKKyhpbXBvcnQgInN5c3RlbS5zYiIpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CShyZXZpc2lvbiAxNDI2
NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkJKHdvcmtp
bmcgY29weSkKQEAgLTE4OCw2ICsxODgsNyBAQCBkZWYgc3RydWN0X29yX2NsYXNzKG5hbWVzcGFj
ZSwgdHlwZSk6CiAgICAgICAgICdXZWJLaXQ6OkRyYXdpbmdBcmVhSW5mbycsCiAgICAgICAgICdX
ZWJLaXQ6OkVkaXRvclN0YXRlJywKICAgICAgICAgJ1dlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMnLAorICAgICAgICAnV2ViS2l0OjpPZmZsaW5lU3RvcmFnZVByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMnLAogICAgICAgICAnV2ViS2l0OjpQbGF0Zm9ybVBvcHVwTWVudURh
dGEnLAogICAgICAgICAnV2ViS2l0OjpQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMnLAogICAgICAg
ICAnV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJywKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9PZmZsaW5lU3RvcmFnZS9PZmZsaW5lU3RvcmFnZVByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9P
ZmZsaW5lU3RvcmFnZS9PZmZsaW5lU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL09mZmxpbmVTdG9yYWdlL09m
ZmxpbmVTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiT2ZmbGluZVN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisKKyNpbmNsdWRl
ICJBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworT2ZmbGluZVN0b3Jh
Z2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpPZmZsaW5lU3RvcmFnZVByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMoKQoreworfQorCit2b2lkIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKK3sKK30KKworYm9vbCBPZmZsaW5lU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIE9mZmxpbmVTdG9yYWdl
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0KQoreworICAgIHJldHVybiB0cnVlOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9P
ZmZsaW5lU3RvcmFnZS9PZmZsaW5lU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvT2ZmbGluZVN0b3JhZ2UvT2ZmbGlu
ZVN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvT2ZmbGluZVN0b3JhZ2UvT2ZmbGluZVN0b3JhZ2VQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyc19oCisj
ZGVmaW5lIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyc19oCisKK25hbWVz
cGFjZSBDb3JlSVBDIHsKKyAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7CisgICAgY2xhc3MgQXJn
dW1lbnRFbmNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IE9mZmxpbmVT
dG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CisgICAgT2ZmbGluZVN0b3JhZ2VQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCk7CisKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyJiwgT2ZmbGluZVN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIE9mZmxpbmVTdG9yYWdl
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyc19oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDI2NjkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTIwLDEyICsyMCwxNSBAQAogCQkJCUJDREUwQUMxMTMyNzI3MTIwMDEyNTlGQiAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCUUxM0E4QTREMTYyODdBNUIwMDM5MjkyOSAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTUxMENDODQ4MTYxM0M4NTMwMEQwM0VEMyAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAorCQkJCUJDQUYzNUVDMTZDQTI2MTUwMEQ0RTlGQyAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCUJDQThENDY4MTVCQ0UwRDYwMDlEQzFGMSAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCUJDQUU5REZEMTYwQzBBQjAwMEEzMzIxNyAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCUJDODI4M0Q1MTZCNEMwMUYwMEEyNzhGRSAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCUJDODI4M0Q3MTZCNEMwMjIwMEEyNzhGRSAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCUJDODI4NDQ2MTZCNEZGNjYwMEEyNzhGRSAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCUJDODI4NDQ4MTZCNEZGNkYwMEEyNzhGRSAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAorCQkJCUJDQUYzNjE4MTZDQTI3QkQwMEQ0RTlGQyAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAorCQkJCUJDQUYzNjFBMTZDQTI3QzAwMEQ0RTlGQyAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBBbGw7CiAJCQlwcm9k
dWN0TmFtZSA9IFdlYktpdDI7CkBAIC04MTIsMTQgKzgxNSw5IEBACiAJCUJDODI4Mzk1MTZCNDYw
ODMwMEEyNzhGRSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbi5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4MzkzMTZCNDYwN0IwMEEyNzhGRSAv
KiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFpbi5tbSAqLzsgfTsKIAkJQkM4MjgzOTkxNkI0OERDMDAw
QTI3OEZFIC8qIFdlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzk4MTZCNDhEQzAwMEEyNzhGRSAv
KiBXZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0gKi87IH07CiAJCUJDODI4M0FDMTZCNEJG
M0YwMEEyNzhGRSAvKiBOZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODNBODE2QjRCRDkxMDBBMjc4RkUg
LyogTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tICovOyB9OwotCQlCQzgyODNCMzE2QjRCRjc3
MDBBMjc4RkUgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODNCMjE2QjRCRjc3MDBBMjc4RkUgLyogRm91
bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07Ci0JCUJDODI4M0M2MTZCNEJGQTgwMEEyNzhGRSAvKiBG
b3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDODI4M0IyMTZCNEJGNzcwMEEyNzhGRSAvKiBGb3VuZGF0aW9uLmZyYW1l
d29yayAqLzsgfTsKIAkJQkM4MjgzRDgxNkI0REIyQTAwQTI3OEZFIC8qIE5ldHdvcmtTZXJ2aWNl
TWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
ODI4M0E0MTZCNEJEOTEwMEEyNzhGRSAvKiBOZXR3b3JrU2VydmljZU1haW4ubW0gKi87IH07CiAJ
CUJDODI4M0Q5MTZCNERCMkUwMEEyNzhGRSAvKiBOZXR3b3JrU2VydmljZU1haW4uRGV2ZWxvcG1l
bnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgy
ODNBNzE2QjRCRDkxMDBBMjc4RkUgLyogTmV0d29ya1NlcnZpY2VNYWluLkRldmVsb3BtZW50Lm1t
ICovOyB9OwogCQlCQzgyODNEQTE2QjREQjkzMDBBMjc4RkUgLyogV2ViS2l0Mi5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4REMyRUY1
QjA0ODZBNjk0MDA5OEIyMTYgLyogV2ViS2l0Mi5mcmFtZXdvcmsgKi87IH07Ci0JCUJDODI4M0ZB
MTZCNEZEREUwMEEyNzhGRSAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4M0IyMTZCNEJGNzcwMEEyNzhG
RSAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKLQkJQkM4Mjg0MjAxNkI0RkRGNjAwQTI3
OEZFIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzQjIxNkI0QkY3NzAwQTI3OEZFIC8qIEZvdW5kYXRp
b24uZnJhbWV3b3JrICovOyB9OwotCQlCQzgyODQzMzE2QjRGRTE0MDBBMjc4RkUgLyogRm91bmRh
dGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzgyODNCMjE2QjRCRjc3MDBBMjc4RkUgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsg
Ki87IH07CiAJCUJDODI4NDQ5MTZCNTAwNDIwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlLjMyLk1h
aW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgy
ODNFNTE2QjRGOEUyMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS4zMi5NYWluLm1tICovOyB9Owog
CQlCQzgyODQ0QjE2QjUwMDREMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZS42NC5NYWluLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzRUIxNkI0
RjhFMjAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2UuNjQuTWFpbi5tbSAqLzsgfTsKIAkJQkM4Mjg0
NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzRUYxNkI0RjhFMjAw
QTI3OEZFIC8qIFBsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tICovOyB9OwpAQCAtODg1LDYgKzg4
MywyOSBAQAogCQlCQ0FDQzQ0QTE2QjI0RDM2MDBCNkUwOTIgLyogV2ViQ29udGVudFNlcnZpY2VN
YWluLkRldmVsb3BtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkNBQ0M0NDQxNkIyNENBQTAwQjZFMDkyIC8qIFdlYkNvbnRlbnRTZXJ2aWNlTWFp
bi5EZXZlbG9wbWVudC5tbSAqLzsgfTsKIAkJQkNBRTlFMDgxNjBDMUMwNzAwQTMzMjE3IC8qIFdl
YktpdDIuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOERDMkVGNUIwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdDIuZnJhbWV3b3JrICov
OyB9OwogCQlCQ0FFOUUwOTE2MEMyMzNCMDBBMzMyMTcgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNERTQ2
ODE1QTkxNzYzMDA4RDI2RkMgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CisJCUJDQUYz
NUJDMTZDQTFFMjQwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3NNYWluQm9vdHN0cmFw
cGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
QUYzNUI5MTZDQTFFMjQwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3NNYWluQm9vdHN0
cmFwcGVyLmNwcCAqLzsgfTsKKwkJQkNBRjM1RDUxNkNBMjEyNDAwRDRFOUZDIC8qIE9mZmxpbmVT
dG9yYWdlUHJvY2Vzc01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDQUYzNUQxMTZDQTIxMjQwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVByb2Nl
c3NNYWMubW0gKi87IH07CisJCUJDQUYzNUQ3MTZDQTIxMjQwMEQ0RTlGQyAvKiBPZmZsaW5lU3Rv
cmFnZVByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNBRjM1RDIxNkNBMjEyNDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy5j
cHAgKi87IH07CisJCUJDQUYzNUQ5MTZDQTIxMjQwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVBy
b2Nlc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
QUYzNUQzMTZDQTIxMjQwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3MuaCAqLzsgfTsK
KwkJQkNBRjM1REQxNkNBMjE0QTAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01haW4u
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0FGMzVC
ODE2Q0ExRTI0MDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFpbi5tbSAqLzsgfTsK
KwkJQkNBRjM1REUxNkNBMjE3NzAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlU2VydmljZUVudHJ5
UG9pbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0FGMzVDNDE2Q0ExRjlEMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlRW50cnlQb2lu
dC5tbSAqLzsgfTsKKwkJQkNBRjM1RTQxNkNBMjREQTAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdl
UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0FGMzVERjE2Q0EyNDkzMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNz
TWVzc2FnZXMuaCAqLzsgfTsKKwkJQkNBRjM1RTgxNkNBMjUzQjAwRDRFOUZDIC8qIE9mZmxpbmVT
dG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0FGMzVFNjE2Q0EyNTNCMDBENEU5RkMgLyogT2Zm
bGluZVN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLzsgfTsKKwkJQkNBRjM1
RTkxNkNBMjUzQjAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0FGMzVFNjE2Q0EyNTNCMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCAqLzsgfTsKKwkJQkNBRjM1RUExNkNBMjUzQjAwRDRFOUZDIC8qIE9mZmxp
bmVTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBRjM1RTcxNkNBMjUzQjAwRDRFOUZDIC8qIE9m
ZmxpbmVTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovOyB9OworCQlCQ0FGMzYx
MzE2Q0EyNkI4MDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlTWFpbi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQUYzNUMwMTZDQTFGOUQw
MEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVNlcnZpY2VNYWluLm1tICovOyB9OworCQlCQ0FGMzYx
NDE2Q0EyNkJCMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlTWFpbi5EZXZlbG9wbWVu
dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQUYz
NUMzMTZDQTFGOUQwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVNlcnZpY2VNYWluLkRldmVsb3Bt
ZW50Lm1tICovOyB9OworCQlCQ0FGMzYxQjE2Q0EyODU0MDBENEU5RkMgLyogT2ZmbGluZVN0b3Jh
Z2VQcm9jZXNzLmFwcCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNBRjM1OUExNkNBMUQ1NzAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy5h
cHAgKi87IH07CisJCUJDQUYzNjFDMTZDQTI4NjcwMEQ0RTlGQyAvKiBjb20uYXBwbGUuV2ViS2l0
Lk9mZmxpbmVTdG9yYWdlLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0FGMzYxNTE2Q0EyNzQwMDBENEU5RkMgLyogY29tLmFwcGxlLldlYktpdC5P
ZmZsaW5lU3RvcmFnZS5zYiAqLzsgfTsKKwkJQkNBRjM2MUQxNkNBMjhDMTAwRDRFOUZDIC8qIEZv
dW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMzREU0NjgxNUE5MTc2MzAwOEQyNkZDIC8qIEZvdW5kYXRpb24uZnJhbWV3
b3JrICovOyB9OworCQlCQ0FGMzYxRTE2Q0EyOEM1MDBENEU5RkMgLyogRm91bmRhdGlvbi5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzNERTQ2ODE1QTkxNzYzMDA4RDI2RkMgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CisJ
CUJDQUYzNjFGMTZDQTI4Q0QwMEQ0RTlGQyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFt
ZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0RFNDY4MTVBOTE3
NjMwMDhEMjZGQyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKKwkJQkNBRjM2MjAxNkNB
MjhENjAwRDRFOUZDIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzREU0NjgxNUE5MTc2MzAwOEQyNkZDIC8q
IEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OworCQlCQ0FGMzYyMTE2Q0EyOEYzMDBENEU5RkMg
LyogV2ViS2l0Mi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4REMyRUY1QjA0ODZBNjk0MDA5OEIyMTYgLyogV2ViS2l0Mi5mcmFtZXdv
cmsgKi87IH07CisJCUJDQUYzNjIyMTZDQTI5MkIwMEQ0RTlGQyAvKiBGb3VuZGF0aW9uLmZyYW1l
d29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
M0RFNDY4MTVBOTE3NjMwMDhEMjZGQyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKKwkJ
QkNBRjM2MjUxNkNBMjlBMjAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0FGMzVFMDE2Q0EyNDkzMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJQkNBRjM2MjYxNkNBMkE0RTAwRDRFOUZDIC8qIFdlYktp
dC5pY25zIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MTMzRkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgKi87IH07CisJCUJDQUYzNjI3
MTZDQTJBNTMwMEQ0RTlGQyAvKiBXZWJLaXQuaWNucyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEzM0ZEODkxNDIzREQ3RjAwRkM3QkZCIC8qIFdlYktp
dC5pY25zICovOyB9OwogCQlCQ0IwQUQzMzEyMkYyODU4MDBCMTM0MUUgLyogTXV0YWJsZUFycmF5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzgw
NDlEMTIyRjBENkIwMDEwMzUyOSAvKiBNdXRhYmxlQXJyYXkuY3BwICovOyB9OwogCQlCQ0IwQUQz
NDEyMkYyODU4MDBCMTM0MUUgLyogTXV0YWJsZUFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M4MDQ5RTEyMkYwRDZCMDAxMDM1MjkgLyogTXV0
YWJsZUFycmF5LmggKi87IH07CiAJCUJDQjBBRUU5MTIyRjUzRTMwMEIxMzQxRSAvKiBNdXRhYmxl
RGljdGlvbmFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNCMEFFRTcxMjJGNTNFMzAwQjEzNDFFIC8qIE11dGFibGVEaWN0aW9uYXJ5LmggKi87IH07
CkBAIC0xMDU5LDcgKzEwODAsNiBAQAogCQlFMTMzRkQ4QTE0MjNERDdGMDBGQzdCRkIgLyogV2Vi
S2l0LmljbnMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxMzNGRDg5MTQyM0REN0YwMEZDN0JGQiAvKiBXZWJLaXQuaWNucyAqLzsgfTsKIAkJRTEzNEYw
MTcxMkVBNUQzMzAwNEVDNThEIC8qIFdLUHJpbnRpbmdWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTM0RjAxNTEyRUE1RDExMDA0RUM1OEQgLyog
V0tQcmludGluZ1ZpZXcuaCAqLzsgfTsKIAkJRTEzNEYwMUExMkVBNUQ5OTAwNEVDNThEIC8qIFdL
UHJpbnRpbmdWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTEzNEYwMTkxMkVBNUQ5OTAwNEVDNThEIC8qIFdLUHJpbnRpbmdWaWV3Lm1tICovOyB9
OwotCQlFMTNBOEEzMDE2Mjg3OUFDMDAzOTI5MjkgLyogQ29jb2EuZnJhbWV3b3JrIGluIEZyYW1l
d29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEzQThBMkYxNjI4NzlB
QzAwMzkyOTI5IC8qIENvY29hLmZyYW1ld29yayAqLzsgfTsKIAkJRTE1MTNDNjYxNjZFQUJCMjAw
MTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTEzQzY0MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFBy
b2Nlc3NQcm94eS5jcHAgKi87IH07CiAJCUUxNTEzQzY3MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGls
ZFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmggKi87
IH07CiAJCUUxNzkwODhEMTY5QkFBNjIwMDY5MDRDNyAvKiBTZWNJdGVtU2hpbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMThFNjk0NzE2OUI3N0M4
MDA5QjY2NzAgLyogU2VjSXRlbVNoaW0uY3BwICovOyB9OwpAQCAtMTIxNSw2ICsxMjM1LDQxIEBA
CiAJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IEJDQUU5REU4MTYwQzA5NzQwMEEzMzIxNzsKIAkJ
CXJlbW90ZUluZm8gPSBXZWJQcm9jZXNzU2VydmljZUZvcldlYktpdERldmVsb3BtZW50OwogCQl9
OworCQlCQ0FGMzVFQjE2Q0EyNjE1MDBENEU5RkMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICov
ID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFs
ID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJv
eHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gQkNBRjM1OTkxNkNBMUQ1NzAw
RDRFOUZDOworCQkJcmVtb3RlSW5mbyA9IE9mZmxpbmVTdG9yYWdlUHJvY2VzczsKKwkJfTsKKwkJ
QkNBRjM2MTcxNkNBMjdCRDAwRDRFOUZDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsK
KwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDA4
NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlw
ZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IEJDQUYzNUYwMTZDQTI2MzgwMEQ0RTlG
QzsKKwkJCXJlbW90ZUluZm8gPSBPZmZsaW5lU3RvcmFnZTsKKwkJfTsKKwkJQkNBRjM2MTkxNkNB
MjdDMDAwRDRFOUZDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBC
WENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAy
OEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQly
ZW1vdGVHbG9iYWxJRFN0cmluZyA9IEJDQUYzNjAzMTZDQTI2NjkwMEQ0RTlGQzsKKwkJCXJlbW90
ZUluZm8gPSBPZmZsaW5lU3RvcmFnZS5EZXZlbG9wbWVudDsKKwkJfTsKKwkJQkNBRjM2MjMxNkNB
Mjk1RjAwRDRFOUZDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBC
WENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAy
OEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQly
ZW1vdGVHbG9iYWxJRFN0cmluZyA9IDhEQzJFRjRGMDQ4NkE2OTQwMDk4QjIxNjsKKwkJCXJlbW90
ZUluZm8gPSBXZWJLaXQyOworCQl9OworCQlCQ0NERTJENTE2Qzg4REFBMDBEOTAzMTAgLyogUEJY
Q29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5
OworCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2pl
Y3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5n
ID0gQkM4MjgzRjgxNkI0RkRERTAwQTI3OEZFOworCQkJcmVtb3RlSW5mbyA9IFBsdWdpbi4zMjsK
KwkJfTsKIAkJQkNERTA5MzUxMzI3MjQ5NjAwMTI1OUZCIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94
eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBv
cnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAg
LTEyNjIsNiArMTMxNyw3IEBACiAJCQkJNTEwQ0M4NDkxNjEzQzg1QzAwRDAzRUQzIC8qIE5ldHdv
cmtQcm9jZXNzLmFwcCBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJQkNERTBBQkYxMzI3MjcwODAwMTI1
OUZCIC8qIFBsdWdpblByb2Nlc3MuYXBwIGluIENvcHlGaWxlcyAqLywKIAkJCQkxQTUwREI2NjEx
MEEzRDU3MDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5hcHAgaW4gQ29weUZpbGVzICovLAorCQkJCUJD
QUYzNjFCMTZDQTI4NTQwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3MuYXBwIGluIENv
cHlGaWxlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTE1MjksNiArMTU4NSw5IEBACiAJCTFBQjMxQTkzMTZCQzY1QUIwMEY2
REJDOSAvKiBTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFCMzFBOTQxNkJDNjg4
MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFCMzFBOTUxNkJDNjg4MTAwRjZE
QkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQUI3NzlDOTE2Qzk5RTY0MDBFMkNFNDEgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFCNzc5Q0ExNkM5
QTEyNjAwRTJDRTQxIC8qIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQUI3NzlDQjE2QzlBMTI2MDBFMkNFNDEgLyogUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25NYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUFCN0Q0QzgxMjg4QUFBNzAwQ0ZEMDhDIC8qIERvd25sb2FkUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG93bmxvYWRQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUI3RDRDOTEyODhBQUE3MDBDRkQwOEMgLyog
RG93bmxvYWRQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
b3dubG9hZFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFCN0Q1RTkx
Mjg4QjhDMDAwQ0ZEMDhDIC8qIERvd25sb2FkUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gRG93bmxvYWRQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIxODQsNyArMjI0Myw2IEBACiAJCUJDODI4M0FBMTZCNEJFQUQwMEEyNzhG
RSAvKiBOZXR3b3JrU2VydmljZS5EZXZlbG9wbWVudC54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBO
ZXR3b3JrU2VydmljZS5EZXZlbG9wbWVudC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkM4MjgzQUIxNkI0QkVBRDAwQTI3OEZFIC8qIE5ldHdvcmtTZXJ2aWNlLnhjY29u
ZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC54Y2NvbmZpZzsgcGF0aCA9IE5ldHdvcmtTZXJ2aWNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzgyODNCMTE2QjRCRjc3MDBBMjc4RkUgLyogY29tLmFwcGxlLldl
YktpdC5OZXR3b3JraW5nLnhwYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gd3JhcHBlci5jZmJ1bmRsZTsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0g
Y29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnhwYzsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKLQkJQkM4MjgzQjIxNkI0QkY3NzAwQTI3OEZFIC8qIEZvdW5kYXRpb24uZnJh
bWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
d3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBGb3VuZGF0aW9uLmZyYW1ld29yazsgcGF0aCA9IFN5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvRm91bmRhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUg
PSBTREtST09UOyB9OwogCQlCQzgyODNDNTE2QjRCRkE4MDBBMjc4RkUgLyogY29tLmFwcGxlLldl
YktpdC5OZXR3b3JraW5nLkRldmVsb3BtZW50LnhwYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5jZmJ1bmRsZTsgaW5jbHVkZUluSW5kZXgg
PSAwOyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLkRldmVsb3BtZW50LnhwYzsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJQkM4MjgzRTQxNkI0RjhFMjAw
QTI3OEZFIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDODI4M0U1MTZCNEY4RTIwMEEyNzhGRSAvKiBQbHVnaW5T
ZXJ2aWNlLjMyLk1haW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbHVnaW5TZXJ2aWNlLjMy
Lk1haW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjU4LDYgKzIzMTYsMjkg
QEAKIAkJQkNBQ0M0NDMxNkIyNENBQTAwQjZFMDkyIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDQUNDNDQ0MTZCMjRDQUEwMEI2RTA5MiAvKiBXZWJDb250ZW50U2VydmljZU1haW4u
RGV2ZWxvcG1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJDb250ZW50U2VydmljZU1haW4uRGV2ZWxvcG1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDQUU5REU5MTYwQzA5NzQwMEEzMzIxNyAvKiBjb20uYXBwbGUuV2ViS2l0Lldl
YkNvbnRlbnQuRGV2ZWxvcG1lbnQueHBjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmNmYnVuZGxlOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBh
dGggPSBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQueHBjOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlCQ0FGMzU5QTE2Q0ExRDU3MDBENEU5RkMg
LyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmFwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5hcHBsaWNhdGlvbjsgaW5jbHVkZUluSW5kZXgg
PSAwOyBwYXRoID0gT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmFwcDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKKwkJQkNBRjM1QjcxNkNBMUUyNDAwRDRFOUZDIC8qIEluZm8ucGxp
c3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDQUYzNUI4MTZDQTFFMjQwMEQ0RTlGQyAvKiBPZmZsaW5l
U3RvcmFnZVByb2Nlc3NNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFpbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQkNBRjM1QjkxNkNBMUUyNDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vz
c01haW5Cb290c3RyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFpbkJvb3RzdHJhcHBlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDQUYzNUJGMTZDQTFGOUQwMEQ0RTlGQyAvKiBJbmZvLnBsaXN0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCQ0FGMzVDMDE2Q0ExRjlEMDBENEU5RkMgLyogT2ZmbGluZVN0
b3JhZ2VTZXJ2aWNlTWFpbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IE9mZmxpbmVTdG9yYWdlU2VydmljZU1haW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUJDQUYzNUMyMTZDQTFGOUQwMEQ0RTlGQyAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCQ0FGMzVDMzE2Q0ExRjlEMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VTZXJ2aWNl
TWFpbi5EZXZlbG9wbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IE9mZmxpbmVTdG9yYWdlU2VydmljZU1haW4uRGV2ZWxvcG1lbnQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDQUYzNUM0MTZDQTFGOUQwMEQ0RTlGQyAvKiBPZmZsaW5lU3Rv
cmFnZVNlcnZpY2VFbnRyeVBvaW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlRW50cnlQb2ludC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQkNBRjM1Q0ExNkNBMjA0MzAwRDRFOUZDIC8qIE9mZmxpbmVTdG9y
YWdlUHJvY2Vzcy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBPZmZs
aW5lU3RvcmFnZVByb2Nlc3MueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUJDQUYzNUNCMTZDQTIwNDMwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVNlcnZpY2UuRGV2ZWxv
cG1lbnQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gT2ZmbGluZVN0
b3JhZ2VTZXJ2aWNlLkRldmVsb3BtZW50LnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCQ0FGMzVDQzE2Q0EyMDQzMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VTZXJ2aWNl
LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IE9mZmxpbmVTdG9yYWdl
U2VydmljZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNBRjM1RDEx
NkNBMjEyNDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNBRjM1RDIxNkNBMjEyNDAwRDRFOUZD
IC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBPZmZsaW5lU3RvcmFnZVByb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCQ0FGMzVEMzE2Q0EyMTI0MDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9j
ZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9mZmxpbmVTdG9yYWdlUHJv
Y2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0FGMzVENDE2Q0EyMTI0MDBE
NEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQkNBRjM1REYxNkNBMjQ5MzAwRDRFOUZDIC8qIE9mZmxpbmVTdG9y
YWdlUHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9m
ZmxpbmVTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUJDQUYzNUUwMTZDQTI0OTMwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3NNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gT2Zm
bGluZVN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQkNBRjM1RTYxNkNBMjUzQjAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBPZmZsaW5lU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0FGMzVFNzE2Q0EyNTNCMDBENEU5RkMgLyogT2Zm
bGluZVN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE9mZmxpbmVTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0FGMzVGMTE2Q0EyNjM4MDBENEU5RkMg
LyogY29tLmFwcGxlLldlYktpdC5PZmZsaW5lU3RvcmFnZS54cGMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuY2ZidW5kbGU7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuT2ZmbGluZVN0b3JhZ2UueHBjOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlCQ0FGMzYwNDE2Q0EyNjY5MDBE
NEU5RkMgLyogY29tLmFwcGxlLldlYktpdC5PZmZsaW5lU3RvcmFnZS5EZXZlbG9wbWVudC54cGMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIu
Y2ZidW5kbGU7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuT2Zm
bGluZVN0b3JhZ2UuRGV2ZWxvcG1lbnQueHBjOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OworCQlCQ0FGMzYxNTE2Q0EyNzQwMDBENEU5RkMgLyogY29tLmFwcGxlLldlYktpdC5P
ZmZsaW5lU3RvcmFnZS5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0
Lk9mZmxpbmVTdG9yYWdlLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0IwQUVF
NzEyMkY1M0UzMDBCMTM0MUUgLyogTXV0YWJsZURpY3Rpb25hcnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTXV0YWJsZURpY3Rpb25hcnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkNCMEFFRTgxMjJGNTNFMzAwQjEzNDFFIC8qIE11dGFibGVEaWN0aW9uYXJ5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE11dGFibGVEaWN0aW9u
YXJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCMEIwREIxMjMwNUEyNTAw
QjEzNDFFIC8qIFdlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0NDgsMTAgKzI1MjksNiBAQAogCQlFMTM0RjAxNTEyRUE1
RDExMDA0RUM1OEQgLyogV0tQcmludGluZ1ZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tQcmludGluZ1ZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTEzNEYwMTkxMkVBNUQ5OTAwNEVDNThEIC8qIFdLUHJpbnRpbmdWaWV3Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tQcmludGluZ1ZpZXcubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxM0E4QTJDMTYyODc5QUMwMDM5MjkyOSAvKiBTaGFyZWRX
b3JrZXJQcm9jZXNzLmFwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZp
bGVUeXBlID0gd3JhcHBlci5hcHBsaWNhdGlvbjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0g
U2hhcmVkV29ya2VyUHJvY2Vzcy5hcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07Ci0JCUUxM0E4QTJGMTYyODc5QUMwMDM5MjkyOSAvKiBDb2NvYS5mcmFtZXdvcmsgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1l
d29yazsgbmFtZSA9IENvY29hLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvQ29jb2EuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKLQkJRTEzQThB
MzIxNjI4NzlBQzAwMzkyOTI5IC8qIEFwcEtpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9
IEFwcEtpdC5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtp
dC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwotCQlFMTNBOEEzMzE2Mjg3OUFD
MDAzOTI5MjkgLyogQ29yZURhdGEuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDb3JlRGF0
YS5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVEYXRhLmZy
YW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07Ci0JCUUxM0E4QTM0MTYyODc5QUMwMDM5
MjkyOSAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gRm91bmRhdGlv
bi5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ZvdW5kYXRpb24u
ZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKIAkJRTEzQThBNEIxNjI4N0ExQjAw
MzkyOTI5IC8qIFNoYXJlZFdvcmtlclByb2Nlc3MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gU2hh
cmVkV29ya2VyUHJvY2Vzcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTE0RTk5RjgxNEQ4NzlCNDAwMUQyMjFGIC8qIFBsdWdpblByb2Nlc3MuZW50aXRsZW1lbnRzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7
IHBhdGggPSBQbHVnaW5Qcm9jZXNzLmVudGl0bGVtZW50czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTE0RTk5RjkxNEQ4NzlDOTAwMUQyMjFGIC8qIGFkZC1lbnRpdGxlbWVudHMuc2gg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNj
cmlwdC5zaDsgcGF0aCA9ICJhZGQtZW50aXRsZW1lbnRzLnNoIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI1NjUsNyArMjY0Miw3IEBACiAJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVp
bGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgK
LQkJCQlCQzgyODNCMzE2QjRCRjc3MDBBMjc4RkUgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4g
RnJhbWV3b3JrcyAqLywKKwkJCQlCQ0FGMzYyMDE2Q0EyOEQ2MDBENEU5RkMgLyogRm91bmRhdGlv
bi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQlCQzgyODNEQTE2QjREQjkzMDBBMjc4
RkUgLyogV2ViS2l0Mi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTI1NzQsNyArMjY1MSw3IEBA
CiAJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9
IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQlCQzgyODNDNjE2QjRCRkE4MDBBMjc4RkUg
LyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQlCQ0FGMzYxRjE2
Q0EyOENEMDBENEU5RkMgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTI2MDAsNyArMjY3Nyw3IEBACiAJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsK
IAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQlCQzgy
ODQzMzE2QjRGRTE0MDBBMjc4RkUgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLywKKwkJCQlCQ0FGMzYyMjE2Q0EyOTJCMDBENEU5RkMgLyogRm91bmRhdGlvbi5mcmFtZXdv
cmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI2MTIsNiArMjY4OSwzMCBAQAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQlCQ0FGMzU5NzE2
Q0ExRDU3MDBENEU5RkMgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29y
a3NCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVz
ID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwor
CQl9OworCQlCQ0FGMzVFRTE2Q0EyNjM4MDBENEU5RkMgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJ
CWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCUJDQUYzNjFEMTZDQTI4QzEwMEQ0RTlGQyAvKiBG
b3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAorCQkJCUJDQUYzNjIxMTZDQTI4
RjMwMEQ0RTlGQyAvKiBXZWJLaXQyLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAorCQkJKTsK
KwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OworCQlCQ0FG
MzYwMTE2Q0EyNjY5MDBENEU5RkMgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZy
YW1ld29ya3NCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJ
CWZpbGVzID0gKAorCQkJCUJDQUYzNjFFMTZDQTI4QzUwMEQ0RTlGQyAvKiBGb3VuZGF0aW9uLmZy
YW1ld29yayBpbiBGcmFtZXdvcmtzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQlCQ0RDMzA4RDE1RkRCOTlBMDA2QjY2OTUgLyog
RnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJ
YnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTI2MjUsNyArMjcyNiw2IEBACiAJCQlp
c2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0
ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQlFMTNBOEEzMDE2Mjg3OUFDMDAzOTI5MjkgLyogQ29j
b2EuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNjQ5LDYgKzI3NDksOSBAQAogCQkJ
CUUxM0E4QTJDMTYyODc5QUMwMDM5MjkyOSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzLmFwcCAqLywK
IAkJCQk4REMyRUY1QjA0ODZBNjk0MDA5OEIyMTYgLyogV2ViS2l0Mi5mcmFtZXdvcmsgKi8sCiAJ
CQkJMUE1MERCMUUxMTBBM0JEQzAwMEQzRkU1IC8qIFdlYlByb2Nlc3MuYXBwICovLAorCQkJCUJD
QUYzNTlBMTZDQTFENTcwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3MuYXBwICovLAor
CQkJCUJDQUYzNUYxMTZDQTI2MzgwMEQ0RTlGQyAvKiBjb20uYXBwbGUuV2ViS2l0Lk9mZmxpbmVT
dG9yYWdlLnhwYyAqLywKKwkJCQlCQ0FGMzYwNDE2Q0EyNjY5MDBENEU5RkMgLyogY29tLmFwcGxl
LldlYktpdC5PZmZsaW5lU3RvcmFnZS5EZXZlbG9wbWVudC54cGMgKi8sCiAJCQkpOwogCQkJbmFt
ZSA9IFByb2R1Y3RzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI2NjgsMTIgKzI3
NzEsMTIgQEAKIAkJCQk1MTBDQzdEQTE2MTM4RTAxMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3Mg
Ki8sCiAJCQkJMUEwRUM2QjAxMjRCQkQzNjAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3MgKi8sCiAJ
CQkJRTEzQThBMzUxNjI4NzlBQzAwMzkyOTI5IC8qIFNoYXJlZFdvcmtlclByb2Nlc3MgKi8sCisJ
CQkJQkNBRjM1OUQxNkNBMUQ1NzAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2VzcyAqLywK
IAkJCQlDMENFNzI5RDEyNDdFNzFEMDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJ
CTA4OUMxNjY1RkU4NDExNThDMDJBQUMwNyAvKiBSZXNvdXJjZXMgKi8sCiAJCQkJQzBDRTczMzUx
MjQ3RjcwRTAwQkMwRUM0IC8qIFNjcmlwdHMgKi8sCiAJCQkJMUE0Rjk3NjkxMDBFN0I2NjAwNjM3
QTE4IC8qIENvbmZpZ3VyYXRpb25zICovLAogCQkJCTA4NjdENjlBRkU4NDAyOEZDMDJBQUMwNyAv
KiBFeHRlcm5hbCBGcmFtZXdvcmtzIGFuZCBMaWJyYXJpZXMgKi8sCi0JCQkJRTEzQThBMkUxNjI4
NzlBQzAwMzkyOTI5IC8qIEZyYW1ld29ya3MgKi8sCiAJCQkJMDM0NzY4REZGRjM4QTUwNDExREI5
QzhCIC8qIFByb2R1Y3RzICovLAogCQkJKTsKIAkJCW5hbWUgPSBXZWJLaXQyOwpAQCAtMjgwNCw2
ICsyOTA3LDkgQEAKIAkJCQk1MTBDQzg0NjE2MTNDN0M2MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nl
c3MueGNjb25maWcgKi8sCiAJCQkJQkM4MjgzQUExNkI0QkVBRDAwQTI3OEZFIC8qIE5ldHdvcmtT
ZXJ2aWNlLkRldmVsb3BtZW50LnhjY29uZmlnICovLAogCQkJCUJDODI4M0FCMTZCNEJFQUQwMEEy
NzhGRSAvKiBOZXR3b3JrU2VydmljZS54Y2NvbmZpZyAqLywKKwkJCQlCQ0FGMzVDQTE2Q0EyMDQz
MDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLnhjY29uZmlnICovLAorCQkJCUJDQUYz
NUNCMTZDQTIwNDMwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVNlcnZpY2UuRGV2ZWxvcG1lbnQu
eGNjb25maWcgKi8sCisJCQkJQkNBRjM1Q0MxNkNBMjA0MzAwRDRFOUZDIC8qIE9mZmxpbmVTdG9y
YWdlU2VydmljZS54Y2NvbmZpZyAqLywKIAkJCQlCQzEyMkZBMzEzMjcwN0YzMDBGN0VBQzEgLyog
UGx1Z2luUHJvY2Vzcy54Y2NvbmZpZyAqLywKIAkJCQlCQzgyODNGMjE2QjRGQzUzMDBBMjc4RkUg
LyogUGx1Z2luU2VydmljZS4zMi54Y2NvbmZpZyAqLywKIAkJCQlCQzgyODNGNDE2QjRGQzUzMDBB
Mjc4RkUgLyogUGx1Z2luU2VydmljZS42NC54Y2NvbmZpZyAqLywKQEAgLTI5NDUsNiArMzA1MSw3
IEBACiAJCQkJQkM4MjgzNjgxNkIzNTg3OTAwQTI3OEZFIC8qIEVudHJ5UG9pbnRVdGlsaXRpZXMg
Ki8sCiAJCQkJQkMxMTFCNUExMTJGNjI4MjAwMzM3QkFCIC8qIG1hYyAqLywKIAkJCQk1MUE4QTYw
RDE2MjdGMkFDMDAwRDkwRTkgLyogTmV0d29yayAqLywKKwkJCQlCQ0FGMzVFNTE2Q0EyNTNCMDBE
NEU5RkMgLyogT2ZmbGluZVN0b3JhZ2UgKi8sCiAJCQkJMUFBRTA1OEMxMjc5RENENDAwODUyNDE4
IC8qIFBsdWdpbnMgKi8sCiAJCQkJMUEzREQyMDUxMjVFNUEyRjAwNDUxNUU2IC8qIEFQSUNsaWVu
dC5oICovLAogCQkJCTVENTE4NDUzMTNCQ0Y5Q0MwMEM3RkY0QSAvKiBBUElDbGllbnRUcmFpdHMu
Y3BwICovLApAQCAtNDQ0NSw2ICs0NTUyLDg1IEBACiAJCQlwYXRoID0gV2ViQ29udGVudFNlcnZp
Y2UuRGV2ZWxvcG1lbnQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlCQ0FG
MzU5RDE2Q0ExRDU3MDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQ0FGMzVCNDE2Q0ExRTI0MDBE
NEU5RkMgLyogRW50cnlQb2ludCAqLywKKwkJCQlCQ0FGMzVEMDE2Q0EyMTI0MDBENEU5RkMgLyog
bWFjICovLAorCQkJCUJDQUYzNUQyMTZDQTIxMjQwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVBy
b2Nlc3MuY3BwICovLAorCQkJCUJDQUYzNUQzMTZDQTIxMjQwMEQ0RTlGQyAvKiBPZmZsaW5lU3Rv
cmFnZVByb2Nlc3MuaCAqLywKKwkJCQlCQ0FGMzVENDE2Q0EyMTI0MDBENEU5RkMgLyogT2ZmbGlu
ZVN0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBPZmZsaW5l
U3RvcmFnZVByb2Nlc3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlCQ0FG
MzVCNDE2Q0ExRTI0MDBENEU5RkMgLyogRW50cnlQb2ludCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQkNBRjM1QjYxNkNBMUUyNDAwRDRFOUZDIC8qIExl
Z2FjeVByb2Nlc3MgKi8sCisJCQkJQkNBRjM1QkQxNkNBMUY5RDAwRDRFOUZDIC8qIFhQQ1NlcnZp
Y2UgKi8sCisJCQkpOworCQkJcGF0aCA9IEVudHJ5UG9pbnQ7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OworCQlCQ0FGMzVCNjE2Q0ExRTI0MDBENEU5RkMgLyogTGVnYWN5UHJvY2Vz
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQkNBRjM1
QjcxNkNBMUUyNDAwRDRFOUZDIC8qIEluZm8ucGxpc3QgKi8sCisJCQkJQkNBRjM1QjgxNkNBMUUy
NDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01haW4ubW0gKi8sCisJCQkJQkNBRjM1
QjkxNkNBMUUyNDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01haW5Cb290c3RyYXBw
ZXIuY3BwICovLAorCQkJKTsKKwkJCW5hbWUgPSBMZWdhY3lQcm9jZXNzOworCQkJcGF0aCA9IG1h
Yy9MZWdhY3lQcm9jZXNzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJQkNB
RjM1QkQxNkNBMUY5RDAwRDRFOUZDIC8qIFhQQ1NlcnZpY2UgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUJDQUYzNUJFMTZDQTFGOUQwMEQ0RTlGQyAvKiBP
ZmZsaW5lU3RvcmFnZVNlcnZpY2UgKi8sCisJCQkJQkNBRjM1QzExNkNBMUY5RDAwRDRFOUZDIC8q
IE9mZmxpbmVTdG9yYWdlU2VydmljZS5EZXZlbG9wbWVudCAqLywKKwkJCQlCQ0FGMzVDNDE2Q0Ex
RjlEMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlRW50cnlQb2ludC5tbSAqLywKKwkJ
CSk7CisJCQluYW1lID0gWFBDU2VydmljZTsKKwkJCXBhdGggPSBtYWMvWFBDU2VydmljZTsKKwkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCUJDQUYzNUJFMTZDQTFGOUQwMEQ0RTlG
QyAvKiBPZmZsaW5lU3RvcmFnZVNlcnZpY2UgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCUJDQUYzNUJGMTZDQTFGOUQwMEQ0RTlGQyAvKiBJbmZvLnBsaXN0
ICovLAorCQkJCUJDQUYzNUMwMTZDQTFGOUQwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVNlcnZp
Y2VNYWluLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBPZmZsaW5lU3RvcmFnZVNlcnZpY2U7CisJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlCQ0FGMzVDMTE2Q0ExRjlEMDBENEU5
RkMgLyogT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlLkRldmVsb3BtZW50ICovID0geworCQkJaXNhID0g
UEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQ0FGMzVDMjE2Q0ExRjlEMDBENEU5RkMg
LyogSW5mby5wbGlzdCAqLywKKwkJCQlCQ0FGMzVDMzE2Q0ExRjlEMDBENEU5RkMgLyogT2ZmbGlu
ZVN0b3JhZ2VTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0g
T2ZmbGluZVN0b3JhZ2VTZXJ2aWNlLkRldmVsb3BtZW50OworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKKwkJQkNBRjM1RDAxNkNBMjEyNDAwRDRFOUZDIC8qIG1hYyAqLyA9IHsKKwkJ
CWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQkNBRjM2MTUxNkNBMjc0MDAw
RDRFOUZDIC8qIGNvbS5hcHBsZS5XZWJLaXQuT2ZmbGluZVN0b3JhZ2Uuc2IgKi8sCisJCQkJQkNB
RjM1RDExNkNBMjEyNDAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01hYy5tbSAqLywK
KwkJCSk7CisJCQlwYXRoID0gbWFjOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsK
KwkJQkNBRjM1RTUxNkNBMjUzQjAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQ0FGMzVFNjE2Q0EyNTNCMDBE
NEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLywK
KwkJCQlCQ0FGMzVFNzE2Q0EyNTNCMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmggKi8sCisJCQkpOworCQkJcGF0aCA9IE9mZmxpbmVTdG9yYWdlOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQkNCQUFDNTgxNDRFMzhCOTAwNTNG
ODJGIC8qIFdLVmlldyBEZXRhaWxzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKQEAgLTQ2MzgsNiArNDgyNCw4IEBACiAJCQkJNTEzQTE2M0IxNjMwODhGNjAwNUQ3
RDIyIC8qIE5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTFBMkQ4NDM3MTI3
RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCiAJCQkJMUEyRDg0MzgxMjdGNjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJl
Y2VpdmVyTWVzc2FnZXMuaCAqLywKKwkJCQlCQ0FGMzVFMDE2Q0EyNDkzMDBENEU5RkMgLyogT2Zm
bGluZVN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlCQ0FGMzVERjE2
Q0EyNDkzMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaCAqLywKIAkJ
CQkxQThFRjk2QzEyNTJBRjZCMDBGNzA2N0YgLyogUGx1Z2luQ29udHJvbGxlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQThFRjk2RDEyNTJBRjZCMDBGNzA2N0YgLyogUGx1Z2lu
Q29udHJvbGxlclByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQkxQTc4NjVCNzE2Q0FDNzE1MDBBQ0U4
M0EgLyogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKQEAgLTQ3NjIsMjYgKzQ5NTAsNiBAQAogCQkJcGF0aCA9IEZ1bGxTY3JlZW4vbWFjOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJRTEzQThBMkUxNjI4NzlBQzAwMzkyOTI5
IC8qIEZyYW1ld29ya3MgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0g
KAotCQkJCUUxM0E4QTMxMTYyODc5QUMwMDM5MjkyOSAvKiBPdGhlciBGcmFtZXdvcmtzICovLAot
CQkJCUUxM0E4QTJGMTYyODc5QUMwMDM5MjkyOSAvKiBDb2NvYS5mcmFtZXdvcmsgKi8sCi0JCQkJ
QkM4MjgzQjIxNkI0QkY3NzAwQTI3OEZFIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovLAotCQkJ
KTsKLQkJCW5hbWUgPSBGcmFtZXdvcmtzOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJ
fTsKLQkJRTEzQThBMzExNjI4NzlBQzAwMzkyOTI5IC8qIE90aGVyIEZyYW1ld29ya3MgKi8gPSB7
Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUUxM0E4QTMyMTYyODc5
QUMwMDM5MjkyOSAvKiBBcHBLaXQuZnJhbWV3b3JrICovLAotCQkJCUUxM0E4QTMzMTYyODc5QUMw
MDM5MjkyOSAvKiBDb3JlRGF0YS5mcmFtZXdvcmsgKi8sCi0JCQkJRTEzQThBMzQxNjI4NzlBQzAw
MzkyOTI5IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovLAotCQkJKTsKLQkJCW5hbWUgPSAiT3Ro
ZXIgRnJhbWV3b3JrcyI7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQlFMTNB
OEEzNTE2Mjg3OUFDMDAzOTI5MjkgLyogU2hhcmVkV29ya2VyUHJvY2VzcyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC01MzgxLDYgKzU1NDksOSBAQAogCQkJ
CUJDOTg5RDg1MTYxQTk4OTAwMDBENDZEMyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5JbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyRTZFOEUxMTQxOTcxNTAwQTYzQjFFIC8qIFdvcmtRdWV1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCRUNERTgxNkI2NDE2ODAwMDQ3QTFBIC8qIFhQQ1Nl
cnZpY2VFbnRyeVBvaW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQ0FGMzVEOTE2Q0EyMTI0MDBE
NEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQ0FG
MzVFNDE2Q0EyNERBMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCUJDQUYzNUVBMTZDQTI1M0IwMEQ0RTlGQyAvKiBPZmZsaW5lU3Rv
cmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNEJE
RUQzMTZDOThFREQwMEU0RTI1RSAvKiBTdGF0aXN0aWNzUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC01
NjA1LDYgKzU3NzYsNTggQEAKIAkJCXByb2R1Y3RSZWZlcmVuY2UgPSBCQ0FFOURFOTE2MEMwOTc0
MDBBMzMyMTcgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50LnhwYyAq
LzsKIAkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUuYnVuZGxlIjsKIAkJ
fTsKKwkJQkNBRjM1OTkxNkNBMUQ1NzAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2VzcyAq
LyA9IHsKKwkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxp
c3QgPSBCQ0FGMzVCMjE2Q0ExRDU3MDBENEU5RkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhOYXRpdmVUYXJnZXQgIk9mZmxpbmVTdG9yYWdlUHJvY2VzcyIgKi87CisJCQlidWls
ZFBoYXNlcyA9ICgKKwkJCQlCQ0FGMzU5NjE2Q0ExRDU3MDBENEU5RkMgLyogU291cmNlcyAqLywK
KwkJCQlCQ0FGMzU5NzE2Q0ExRDU3MDBENEU5RkMgLyogRnJhbWV3b3JrcyAqLywKKwkJCQlCQ0FG
MzU5ODE2Q0ExRDU3MDBENEU5RkMgLyogUmVzb3VyY2VzICovLAorCQkJKTsKKwkJCWJ1aWxkUnVs
ZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCUJDQUYzNjI0MTZDQTI5NUYw
MEQ0RTlGQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAorCQkJKTsKKwkJCW5hbWUgPSBPZmZs
aW5lU3RvcmFnZVByb2Nlc3M7CisJCQlwcm9kdWN0TmFtZSA9IE9mZmxpbmVTdG9yYWdlUHJvY2Vz
czsKKwkJCXByb2R1Y3RSZWZlcmVuY2UgPSBCQ0FGMzU5QTE2Q0ExRDU3MDBENEU5RkMgLyogT2Zm
bGluZVN0b3JhZ2VQcm9jZXNzLmFwcCAqLzsKKwkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5w
cm9kdWN0LXR5cGUuYXBwbGljYXRpb24iOworCQl9OworCQlCQ0FGMzVGMDE2Q0EyNjM4MDBENEU5
RkMgLyogT2ZmbGluZVN0b3JhZ2UgKi8gPSB7CisJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CisJ
CQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gQkNBRjM1RkMxNkNBMjYzODAwRDRFOUZDIC8qIEJ1
aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJPZmZsaW5lU3RvcmFn
ZSIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQlCQ0FGMzVFRDE2Q0EyNjM4MDBENEU5RkMg
LyogU291cmNlcyAqLywKKwkJCQlCQ0FGMzVFRTE2Q0EyNjM4MDBENEU5RkMgLyogRnJhbWV3b3Jr
cyAqLywKKwkJCQlCQ0FGMzVFRjE2Q0EyNjM4MDBENEU5RkMgLyogUmVzb3VyY2VzICovLAorCQkJ
KTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsK
KwkJCW5hbWUgPSBPZmZsaW5lU3RvcmFnZTsKKwkJCXByb2R1Y3ROYW1lID0gT2ZmbGluZVN0b3Jh
Z2U7CisJCQlwcm9kdWN0UmVmZXJlbmNlID0gQkNBRjM1RjExNkNBMjYzODAwRDRFOUZDIC8qIGNv
bS5hcHBsZS5XZWJLaXQuT2ZmbGluZVN0b3JhZ2UueHBjICovOworCQkJcHJvZHVjdFR5cGUgPSAi
Y29tLmFwcGxlLnByb2R1Y3QtdHlwZS5idW5kbGUiOworCQl9OworCQlCQ0FGMzYwMzE2Q0EyNjY5
MDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2UuRGV2ZWxvcG1lbnQgKi8gPSB7CisJCQlpc2EgPSBQ
QlhOYXRpdmVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gQkNBRjM2MEYxNkNB
MjY2OTAwRDRFOUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFy
Z2V0ICJPZmZsaW5lU3RvcmFnZS5EZXZlbG9wbWVudCIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgK
KwkJCQlCQ0FGMzYwMDE2Q0EyNjY5MDBENEU5RkMgLyogU291cmNlcyAqLywKKwkJCQlCQ0FGMzYw
MTE2Q0EyNjY5MDBENEU5RkMgLyogRnJhbWV3b3JrcyAqLywKKwkJCQlCQ0FGMzYwMjE2Q0EyNjY5
MDBENEU5RkMgLyogUmVzb3VyY2VzICovLAorCQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkp
OworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSBPZmZsaW5lU3RvcmFnZS5E
ZXZlbG9wbWVudDsKKwkJCXByb2R1Y3ROYW1lID0gT2ZmbGluZVN0b3JhZ2UuRGV2ZWxvcG1lbnQ7
CisJCQlwcm9kdWN0UmVmZXJlbmNlID0gQkNBRjM2MDQxNkNBMjY2OTAwRDRFOUZDIC8qIGNvbS5h
cHBsZS5XZWJLaXQuT2ZmbGluZVN0b3JhZ2UuRGV2ZWxvcG1lbnQueHBjICovOworCQkJcHJvZHVj
dFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS5idW5kbGUiOworCQl9OwogCQlCQ0RFMDkz
MzEzMjcyNDk2MDAxMjU5RkIgLyogUGx1Z2luUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWE5h
dGl2ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBCQ0RFMDkzRTEzMjcyNDk2
MDAxMjU5RkIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQg
IlBsdWdpblByb2Nlc3MiICovOwpAQCAtNTY3Myw2ICs1ODk2LDcgQEAKIAkJCQlCQ0RFMDkzMzEz
MjcyNDk2MDAxMjU5RkIgLyogUGx1Z2luUHJvY2VzcyAqLywKIAkJCQk1MTBDQzgwRDE2MTNDNzk5
MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MgKi8sCiAJCQkJRTEzQThBMkIxNjI4NzlBQzAwMzky
OTI5IC8qIFNoYXJlZFdvcmtlclByb2Nlc3MgKi8sCisJCQkJQkNBRjM1OTkxNkNBMUQ1NzAwRDRF
OUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2VzcyAqLywKIAkJCQlDMENFNzI4NTEyNDdFNjY4MDBC
QzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTFBQzI1RkFGMTJBNDhFQTcwMEJEMjY3
MSAvKiBQbHVnaW5Qcm9jZXNzU2hpbSAqLywKIAkJCQk1MTAwMzFFQTEzNzlDQUNCMDBDOERGRTQg
LyogU2VjSXRlbVNoaW0gKi8sCkBAIC01NjgwLDYgKzU5MDQsOCBAQAogCQkJCUJDQUU5REU4MTYw
QzA5NzQwMEEzMzIxNyAvKiBXZWJDb250ZW50LkRldmVsb3BtZW50ICovLAogCQkJCUJDODI4M0Iw
MTZCNEJGNzcwMEEyNzhGRSAvKiBOZXR3b3JraW5nICovLAogCQkJCUJDODI4M0M0MTZCNEJGQTgw
MEEyNzhGRSAvKiBOZXR3b3JraW5nLkRldmVsb3BtZW50ICovLAorCQkJCUJDQUYzNUYwMTZDQTI2
MzgwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZSAqLywKKwkJCQlCQ0FGMzYwMzE2Q0EyNjY5MDBE
NEU5RkMgLyogT2ZmbGluZVN0b3JhZ2UuRGV2ZWxvcG1lbnQgKi8sCiAJCQkJQkM4MjgzRjgxNkI0
RkRERTAwQTI3OEZFIC8qIFBsdWdpbi4zMiAqLywKIAkJCQlCQzgyODQxRTE2QjRGREY2MDBBMjc4
RkUgLyogUGx1Z2luLjY0ICovLAogCQkJCUJDODI4NDMxMTZCNEZFMTMwMEEyNzhGRSAvKiBQbHVn
aW4uRGV2ZWxvcG1lbnQgKi8sCkBAIC01NzExLDYgKzU5MzcsNyBAQAogCQkJCUUxN0FFMkMzMTZC
OUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiIGluIFJl
c291cmNlcyAqLywKIAkJCQlFMTFEMzVBRDE2QjYzRDE0MDA2RDIzRDcgLyogY29tLmFwcGxlLldl
YktpdC5TaGFyZWRXb3JrZXJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQlFMTFEMzVB
RTE2QjYzRDFCMDA2RDIzRDcgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVzb3VyY2Vz
ICovLAorCQkJCUJDQUYzNjFDMTZDQTI4NjcwMEQ0RTlGQyAvKiBjb20uYXBwbGUuV2ViS2l0Lk9m
ZmxpbmVTdG9yYWdlLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQkxQ0JDOTQ1RTE2NTE1RUQyMDBE
NjhBQUUgLyogRG9jay5wZGYgaW4gUmVzb3VyY2VzICovLAogCQkJCThEQzJFRjUzMDQ4NkE2OTQw
MDk4QjIxNiAvKiBJbmZvUGxpc3Quc3RyaW5ncyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwpAQCAt
NTc2NSw2ICs1OTkyLDI4IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CisJCUJDQUYzNTk4MTZDQTFENTcwMEQ0RTlGQyAvKiBSZXNvdXJj
ZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCUJDQUYzNjI3MTZDQTJBNTMw
MEQ0RTlGQyAvKiBXZWJLaXQuaWNucyBpbiBSZXNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CisJCUJDQUYzNUVGMTZDQTI2
MzgwMEQ0RTlGQyAvKiBSZXNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhSZXNvdXJjZXNCdWls
ZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAor
CQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9Owor
CQlCQ0FGMzYwMjE2Q0EyNjY5MDBENEU5RkMgLyogUmVzb3VyY2VzICovID0geworCQkJaXNhID0g
UEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7
CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKKwkJfTsKIAkJQkNERTA5MzgxMzI3MjQ5NjAwMTI1OUZCIC8qIFJlc291cmNlcyAq
LyA9IHsKIAkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1h
c2sgPSAyMTQ3NDgzNjQ3OwpAQCAtNTc3Niw2ICs2MDI1LDcgQEAKIAkJCWlzYSA9IFBCWFJlc291
cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmls
ZXMgPSAoCisJCQkJQkNBRjM2MjYxNkNBMkE0RTAwRDRFOUZDIC8qIFdlYktpdC5pY25zIGluIFJl
c291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTU4OTksNiArNjE0OSw4IEBACiAJCQkJIiQoQlVJTFRfUFJPRFVDVFNf
RElSKS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi4zMi54cGMiLAogCQkJCSIkKEJVSUxUX1BST0RV
Q1RTX0RJUikvY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjIiwKIAkJCQkiJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLkRldmVsb3BtZW50LnhwYyIsCisJ
CQkJIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9jb20uYXBwbGUuV2ViS2l0Lk9mZmxpbmVTdG9yYWdl
LnhwYyIsCisJCQkJIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9jb20uYXBwbGUuV2ViS2l0Lk9mZmxp
bmVTdG9yYWdlLkRldmVsb3BtZW50LnhwYyIsCiAJCQkpOwogCQkJbmFtZSA9ICJDb3B5IFhQQyBz
ZXJ2aWNlcyBmb3IgZW5naW5lZXJpbmcgYnVpbGRzIjsKIAkJCW91dHB1dFBhdGhzID0gKApAQCAt
NTkwOSwxMCArNjE2MSwxMiBAQAogCQkJCSIkKEJVSUxUX1BST0RVQ1RTX0RJUikvJHtXUkFQUEVS
X05BTUV9L1dlYktpdDIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvWFBDU2VydmljZXMvY29tLmFwcGxl
LldlYktpdC5QbHVnaW4uMzIueHBjIiwKIAkJCQkiJChCVUlMVF9QUk9EVUNUU19ESVIpLyR7V1JB
UFBFUl9OQU1FfS9XZWJLaXQyLmZyYW1ld29yay9WZXJzaW9ucy9BL1hQQ1NlcnZpY2VzL2NvbS5h
cHBsZS5XZWJLaXQuUGx1Z2luLjY0LnhwYyIsCiAJCQkJIiQoQlVJTFRfUFJPRFVDVFNfRElSKS8k
e1dSQVBQRVJfTkFNRX0vV2ViS2l0Mi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9YUENTZXJ2aWNlcy9j
b20uYXBwbGUuV2ViS2l0LlBsdWdpbi5EZXZlbG9wbWVudC54cGMiLAorCQkJCSIkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvJHtXUkFQUEVSX05BTUV9L1dlYktpdDIuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
WFBDU2VydmljZXMvY29tLmFwcGxlLldlYktpdC5PZmZsaW5lU3RvcmFnZS54cGMiLAorCQkJCSIk
KEJVSUxUX1BST0RVQ1RTX0RJUikvJHtXUkFQUEVSX05BTUV9L1dlYktpdDIuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvWFBDU2VydmljZXMvY29tLmFwcGxlLldlYktpdC5PZmZsaW5lU3RvcmFnZS5EZXZl
bG9wbWVudC54cGMiLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gImlmIFtb
IFwiJHtDT05GSUdVUkFUSU9OfVwiID09IFwiUHJvZHVjdGlvblwiIF1dOyB0aGVuXG4gICAgZXhp
dFxuZmlcblxuWFBDX1NFUlZJQ0VTX1BBVEg9XCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vJHtXUkFQ
UEVSX05BTUV9L1dlYktpdDIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvWFBDU2VydmljZXNcIlxubWtk
aXIgLXAgXCIke1hQQ19TRVJWSUNFU19QQVRIfVwiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNf
RElSfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQueHBjXCIgXCIke1hQQ19TRVJWSUNFU19Q
QVRIfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9Q
Uk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54cGNc
IiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZl
bG9wbWVudC54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldl
YktpdC5OZXR3b3JraW5nLnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldl
YktpdC5OZXR3b3JraW5nLnhwY1wiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20u
YXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuRGV2ZWxvcG1lbnQueHBjXCIgXCIke1hQQ19TRVJWSUNF
U19QQVRIfS9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuRGV2ZWxvcG1lbnQueHBjXCJcbmRp
dHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjMyLnhw
Y1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uMzIueHBj
XCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2lu
LjY0LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4u
NjQueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQu
UGx1Z2luLkRldmVsb3BtZW50LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxl
LldlYktpdC5QbHVnaW4uRGV2ZWxvcG1lbnQueHBjXCJcbiI7CisJCQlzaGVsbFNjcmlwdCA9ICJp
ZiBbWyBcIiR7Q09ORklHVVJBVElPTn1cIiA9PSBcIlByb2R1Y3Rpb25cIiBdXTsgdGhlblxuICAg
IGV4aXRcbmZpXG5cblhQQ19TRVJWSUNFU19QQVRIPVwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9LyR7
V1JBUFBFUl9OQU1FfS9XZWJLaXQyLmZyYW1ld29yay9WZXJzaW9ucy9BL1hQQ1NlcnZpY2VzXCJc
bm1rZGlyIC1wIFwiJHtYUENfU0VSVklDRVNfUEFUSH1cIlxuZGl0dG8gXCIke0JVSUxUX1BST0RV
Q1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnhwY1wiIFwiJHtYUENfU0VSVklD
RVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnhwY1wiXG5kaXR0byBcIiR7QlVJ
TFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQu
eHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQu
RGV2ZWxvcG1lbnQueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBs
ZS5XZWJLaXQuTmV0d29ya2luZy54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBs
ZS5XZWJLaXQuTmV0d29ya2luZy54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0v
Y29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLkRldmVsb3BtZW50LnhwY1wiIFwiJHtYUENfU0VS
VklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLkRldmVsb3BtZW50LnhwY1wi
XG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi4z
Mi54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjMy
LnhwY1wiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LlBs
dWdpbi42NC54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuUGx1
Z2luLjY0LnhwY1wiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2Vi
S2l0LlBsdWdpbi5EZXZlbG9wbWVudC54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5h
cHBsZS5XZWJLaXQuUGx1Z2luLkRldmVsb3BtZW50LnhwY1wiXG5kaXR0byBcIiR7QlVJTFRfUFJP
RFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0Lk9mZmxpbmVTdG9yYWdlLnhwY1wiIFwiJHtYUENf
U0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5PZmZsaW5lU3RvcmFnZS54cGNcIlxuZGl0
dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5PZmZsaW5lU3RvcmFn
ZS5EZXZlbG9wbWVudC54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJL
aXQuT2ZmbGluZVN0b3JhZ2UuRGV2ZWxvcG1lbnQueHBjXCJcbiI7CiAJCX07CiAJCUMwQ0U3Mjg0
MTI0N0U2NjgwMEJDMEVDNCAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlp
c2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CkBAIC02NTA1LDYgKzY3NTksMTIgQEAKIAkJ
CQlCQzJFNkU4RDExNDE5NzE1MDBBNjNCMUUgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDMDA5MkY4MTE1ODM3QTMwMEUwQUUyQSAvKiBXb3JrUXVldWVNYWMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkNCRUNERTcxNkI2NDE2ODAwMDQ3QTFBIC8qIFhQQ1NlcnZpY2VFbnRy
eVBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQkNBRjM1RDUxNkNBMjEyNDAwRDRFOUZDIC8q
IE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUJDQUYzNUQ3
MTZDQTIxMjQwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3MuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQkNBRjM1REQxNkNBMjE0QTAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vz
c01haW4ubW0gaW4gU291cmNlcyAqLywKKwkJCQlCQ0FGMzVERTE2Q0EyMTc3MDBENEU5RkMgLyog
T2ZmbGluZVN0b3JhZ2VTZXJ2aWNlRW50cnlQb2ludC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUJD
QUYzNUU4MTZDQTI1M0IwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkNBRjM2MjUxNkNBMjlBMjAwRDRFOUZD
IC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MUE0RDVBOTE2Q0FDNEZGMDAwRTYxNUUgLyogU3RhdGlzdGljc1JlcXVlc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CkBAIC02NTY1LDYgKzY4MjUsMzEgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJQkNBRjM1OTYxNkNBMUQ1NzAwRDRF
OUZDIC8qIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKKwkJ
CWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQlCQ0FGMzVC
QzE2Q0ExRTI0MDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWFpbkJvb3RzdHJhcHBl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQ0FGMzVFOTE2Q0EyNTNCMDBENEU5RkMgLyogT2Zm
bGluZVN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9Owor
CQlCQ0FGMzVFRDE2Q0EyNjM4MDBENEU5RkMgLyogU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBC
WFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJ
CWZpbGVzID0gKAorCQkJCUJDQUYzNjEzMTZDQTI2QjgwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFn
ZVNlcnZpY2VNYWluLm1tIGluIFNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CisJCUJDQUYzNjAwMTZDQTI2NjkwMEQ0RTlG
QyAvKiBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CisJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJQkNBRjM2MTQx
NkNBMjZCQjAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlU2VydmljZU1haW4uRGV2ZWxvcG1lbnQu
bW0gaW4gU291cmNlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKKwkJfTsKIAkJQkNERTA5M0ExMzI3MjQ5NjAwMTI1OUZCIC8qIFNvdXJjZXMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFz
ayA9IDIxNDc0ODM2NDc7CkBAIC02NjQ0LDYgKzY5MjksMzEgQEAKIAkJCXRhcmdldCA9IEJDQUU5
REU4MTYwQzA5NzQwMEEzMzIxNyAvKiBXZWJDb250ZW50LkRldmVsb3BtZW50ICovOwogCQkJdGFy
Z2V0UHJveHkgPSBCQ0FFOURGQzE2MEMwQUIwMDBBMzMyMTcgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovOwogCQl9OworCQlCQ0FGMzVFQzE2Q0EyNjE1MDBENEU5RkMgLyogUEJYVGFyZ2V0RGVw
ZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQg
PSBCQ0FGMzU5OTE2Q0ExRDU3MDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzICovOwor
CQkJdGFyZ2V0UHJveHkgPSBCQ0FGMzVFQjE2Q0EyNjE1MDBENEU5RkMgLyogUEJYQ29udGFpbmVy
SXRlbVByb3h5ICovOworCQl9OworCQlCQ0FGMzYxODE2Q0EyN0JEMDBENEU5RkMgLyogUEJYVGFy
Z2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0
YXJnZXQgPSBCQ0FGMzVGMDE2Q0EyNjM4MDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2UgKi87CisJ
CQl0YXJnZXRQcm94eSA9IEJDQUYzNjE3MTZDQTI3QkQwMEQ0RTlGQyAvKiBQQlhDb250YWluZXJJ
dGVtUHJveHkgKi87CisJCX07CisJCUJDQUYzNjFBMTZDQTI3QzAwMEQ0RTlGQyAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRh
cmdldCA9IEJDQUYzNjAzMTZDQTI2NjkwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZS5EZXZlbG9w
bWVudCAqLzsKKwkJCXRhcmdldFByb3h5ID0gQkNBRjM2MTkxNkNBMjdDMDAwRDRFOUZDIC8qIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKKwkJQkNBRjM2MjQxNkNBMjk1RjAwRDRFOUZD
IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRl
bmN5OworCQkJdGFyZ2V0ID0gOERDMkVGNEYwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdDIgKi87
CisJCQl0YXJnZXRQcm94eSA9IEJDQUYzNjIzMTZDQTI5NUYwMEQ0RTlGQyAvKiBQQlhDb250YWlu
ZXJJdGVtUHJveHkgKi87CisJCX07CisJCUJDQ0RFMkQ2MTZDODhEQUEwMEQ5MDMxMCAvKiBQQlhU
YXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJ
CXRhcmdldCA9IEJDODI4M0Y4MTZCNEZEREUwMEEyNzhGRSAvKiBQbHVnaW4uMzIgKi87CisJCQl0
YXJnZXRQcm94eSA9IEJDQ0RFMkQ1MTZDODhEQUEwMEQ5MDMxMCAvKiBQQlhDb250YWluZXJJdGVt
UHJveHkgKi87CisJCX07CiAJCUJDREUwOTM0MTMyNzI0OTYwMDEyNTlGQiAvKiBQQlhUYXJnZXRE
ZXBlbmRlbmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdl
dCA9IDFBQzI1RkFGMTJBNDhFQTcwMEJEMjY3MSAvKiBQbHVnaW5Qcm9jZXNzU2hpbSAqLzsKQEAg
LTcwMTEsNiArNzMyMSw2OSBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9Owor
CQlCQ0FGMzVBRjE2Q0ExRDU3MDBENEU5RkMgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1
aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gQkNBRjM1
Q0ExNkNBMjA0MzAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy54Y2NvbmZpZyAqLzsK
KwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQlC
Q0FGMzVCMDE2Q0ExRDU3MDBENEU5RkMgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVp
bGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSBCQ0FGMzVD
QTE2Q0EyMDQzMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLnhjY29uZmlnICovOwor
CQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJ
QkNBRjM1QjExNkNBMUQ1NzAwRDRFOUZDIC8qIFByb2R1Y3Rpb24gKi8gPSB7CisJCQlpc2EgPSBY
Q0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gQkNB
RjM1Q0ExNkNBMjA0MzAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy54Y2NvbmZpZyAq
LzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJ
CX07CisJCUJDQUYzNUZEMTZDQTI2MzgwMEQ0RTlGQyAvKiBEZWJ1ZyAqLyA9IHsKKwkJCWlzYSA9
IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSBC
Q0FGMzVDQzE2Q0EyMDQzMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlLnhjY29uZmln
ICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07
CisJCUJDQUYzNUZFMTZDQTI2MzgwMEQ0RTlGQyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0g
WENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IEJD
QUYzNUNDMTZDQTIwNDMwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVNlcnZpY2UueGNjb25maWcg
Ki87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9
OworCQlCQ0FGMzVGRjE2Q0EyNjM4MDBENEU5RkMgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlz
YSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2Ug
PSBCQ0FGMzVDQzE2Q0EyMDQzMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VTZXJ2aWNlLnhjY29u
ZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCX07CisJCQluYW1lID0gUHJvZHVjdGlv
bjsKKwkJfTsKKwkJQkNBRjM2MTAxNkNBMjY2OTAwRDRFOUZDIC8qIERlYnVnICovID0geworCQkJ
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5j
ZSA9IEJDQUYzNUNCMTZDQTIwNDMwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVNlcnZpY2UuRGV2
ZWxvcG1lbnQueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsKKwkJCW5h
bWUgPSBEZWJ1ZzsKKwkJfTsKKwkJQkNBRjM2MTExNkNBMjY2OTAwRDRFOUZDIC8qIFJlbGVhc2Ug
Ki8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0
aW9uUmVmZXJlbmNlID0gQkNBRjM1Q0IxNkNBMjA0MzAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdl
U2VydmljZS5EZXZlbG9wbWVudC54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJ
CQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCUJDQUYzNjEyMTZDQTI2NjkwMEQ0RTlG
QyAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJ
CQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IEJDQUYzNUNCMTZDQTIwNDMwMEQ0RTlGQyAv
KiBPZmZsaW5lU3RvcmFnZVNlcnZpY2UuRGV2ZWxvcG1lbnQueGNjb25maWcgKi87CisJCQlidWls
ZFNldHRpbmdzID0geworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQlCQ0RF
MDkzRjEzMjcyNDk2MDAxMjU5RkIgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29u
ZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gQkMxMjJGQTMxMzI3
MDdGMzAwRjdFQUMxIC8qIFBsdWdpblByb2Nlc3MueGNjb25maWcgKi87CkBAIC03MjI1LDYgKzc1
OTgsMzMgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1
bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJCUJDQUYzNUIyMTZDQTFE
NTcwMEQ0RTlGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdl
dCAiT2ZmbGluZVN0b3JhZ2VQcm9jZXNzIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlv
bkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCUJDQUYzNUFGMTZDQTFENTcw
MEQ0RTlGQyAvKiBEZWJ1ZyAqLywKKwkJCQlCQ0FGMzVCMDE2Q0ExRDU3MDBENEU5RkMgLyogUmVs
ZWFzZSAqLywKKwkJCQlCQ0FGMzVCMTE2Q0ExRDU3MDBENEU5RkMgLyogUHJvZHVjdGlvbiAqLywK
KwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCX07CisJCUJD
QUYzNUZDMTZDQTI2MzgwMEQ0RTlGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBC
WE5hdGl2ZVRhcmdldCAiT2ZmbGluZVN0b3JhZ2UiICovID0geworCQkJaXNhID0gWENDb25maWd1
cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJQkNBRjM1RkQxNkNB
MjYzODAwRDRFOUZDIC8qIERlYnVnICovLAorCQkJCUJDQUYzNUZFMTZDQTI2MzgwMEQ0RTlGQyAv
KiBSZWxlYXNlICovLAorCQkJCUJDQUYzNUZGMTZDQTI2MzgwMEQ0RTlGQyAvKiBQcm9kdWN0aW9u
ICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJfTsK
KwkJQkNBRjM2MEYxNkNBMjY2OTAwRDRFOUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYTmF0aXZlVGFyZ2V0ICJPZmZsaW5lU3RvcmFnZS5EZXZlbG9wbWVudCIgKi8gPSB7CisJ
CQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgK
KwkJCQlCQ0FGMzYxMDE2Q0EyNjY5MDBENEU5RkMgLyogRGVidWcgKi8sCisJCQkJQkNBRjM2MTEx
NkNBMjY2OTAwRDRFOUZDIC8qIFJlbGVhc2UgKi8sCisJCQkJQkNBRjM2MTIxNkNBMjY2OTAwRDRF
OUZDIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zp
c2libGUgPSAwOworCQl9OwogCQlCQ0RFMDkzRTEzMjcyNDk2MDAxMjU5RkIgLyogQnVpbGQgY29u
ZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIlBsdWdpblByb2Nlc3MiICovID0g
ewogCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMg
PSAoCg==
</data>
<flag name="review"
          id="207908"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>