<?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>143805</bug_id>
          
          <creation_ts>2015-04-15 15:39:12 -0700</creation_ts>
          <short_desc>Make WKWebsiteDataStore public</short_desc>
          <delta_ts>2015-04-15 17:46:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1085733</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-04-15 15:39:12 -0700</bug_when>
    <thetext>Make WKWebsiteDataStore public</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085735</commentid>
    <comment_count>1</comment_count>
      <attachid>250877</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-04-15 15:41:14 -0700</bug_when>
    <thetext>Created attachment 250877
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085737</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-15 15:43:37 -0700</bug_when>
    <thetext>Attachment 250877 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:210:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085742</commentid>
    <comment_count>3</comment_count>
      <attachid>250877</attachid>
    <who name="">mitz</who>
    <bug_when>2015-04-15 15:57:22 -0700</bug_when>
    <thetext>Comment on attachment 250877
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:294
&gt; +    webPageConfiguration.websiteDataStore = &amp;((WKWebsiteDataStore *)[_configuration _websiteDataStore])-&gt;_websiteDataStore-&gt;websiteDataStore();

Do we need this already?

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataStore.h:31
&gt; +

Need WK_ASSUME_NONNULL_BEGIN/END around the rest of this header.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataStore.h:36
&gt; ++ (instancetype)defaultDataStore;

The return type here should be WKWebsiteDataStore *, not instancetype.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:32
&gt; +#import &quot;WKNSArray.h&quot;

Doesn’t this one import APIArray.h?

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:37
&gt; ++ (instancetype)defaultDataStore

Fix the return type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085763</commentid>
    <comment_count>4</comment_count>
      <attachid>250882</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-04-15 16:57:46 -0700</bug_when>
    <thetext>Created attachment 250882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085764</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-15 16:59:33 -0700</bug_when>
    <thetext>Attachment 250882 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:210:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085768</commentid>
    <comment_count>6</comment_count>
      <attachid>250882</attachid>
    <who name="">mitz</who>
    <bug_when>2015-04-15 17:08:20 -0700</bug_when>
    <thetext>Comment on attachment 250882
Patch

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

Something is off with the whitespace but I can’t quite put my finger on it.

&gt; Source/WebKit2/ChangeLog:9
&gt; +        @interface and @implementation that just derives from WKWebsiteDataStore.

There’s a little more to _WKWebsiteDataStore in this version of the patch.

&gt; Source/WebKit2/ChangeLog:18
&gt; +        * UIProcess/API/Cocoa/WKWebsiteDataStore.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataStore.h.

You should mention the other changes: stricter return types and unavailability of -init.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:294
&gt; +    webPageConfiguration.websiteDataStore = &amp;((WKWebsiteDataStore *)[_configuration _websiteDataStore])-&gt;_websiteDataStore-&gt;websiteDataStore();

This remains a mystery to me.

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:27
&gt; +#include &quot;config.h&quot;
&gt; +#include &quot;_WKWebsiteDataStore.h&quot;

#import</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085782</commentid>
    <comment_count>7</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-04-15 17:46:24 -0700</bug_when>
    <thetext>Committed r182873: &lt;http://trac.webkit.org/changeset/182873&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250877</attachid>
            <date>2015-04-15 15:41:14 -0700</date>
            <delta_ts>2015-04-15 16:44:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143805-20150415154017.patch</filename>
            <type>text/plain</type>
            <size>37213</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjJhYjdhNmVjNjRjNDdj
N2RmZGQ3ZTMyY2ZhMWYyMTRiODQ4NDg2MS4uZjQwMTg1YjQ1YWY3NjQ3NTkxZjZhZTliMjdjYjU3
ZjE1YjA2ODRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAyMDE1LTA0LTE1ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgTWFrZSBXS1dlYnNp
dGVEYXRhU3RvcmUgcHVibGljCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDM4MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWUgdGhlIGN1cnJlbnQgX1dLV2Vic2l0ZURhdGFTdG9yZSB0byBXS1dl
YnNpdGVEYXRhU3RvcmUgYW5kIGFkZCBhIG5ldyBfV0tXZWJzaXRlRGF0YVN0b3JlCisgICAgICAg
IEBpbnRlcmZhY2UgYW5kIEBpbXBsZW1lbnRhdGlvbiB0aGF0IGp1c3QgZGVyaXZlcyBmcm9tIFdL
V2Vic2l0ZURhdGFTdG9yZS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV2ViS2l0Lmg6
CisgICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbToKKyAgICAgICAgKEFQSTo6T2Jq
ZWN0OjpuZXdPYmplY3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgaW5pdFdpdGhGcmFtZTpjb25maWd1cmF0aW9uOl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5t
bToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfd2Vic2l0ZURhdGFTdG9yZV0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmUubW0uCisgICAgICAgICgrW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZh
dWx0RGF0YVN0b3JlXSk6CisgICAgICAgICgrW1dLV2Vic2l0ZURhdGFTdG9yZSBub25QZXJzaXN0
ZW50RGF0YVN0b3JlXSk6CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWFsbG9jXSk6
CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBpc05vblBlcnNpc3RlbnRdKToKKyAgICAg
ICAgKHRvU3lzdGVtQ2xvY2tUaW1lKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIGZl
dGNoRGF0YVJlY29yZHNPZlR5cGVzOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtX
S1dlYnNpdGVEYXRhU3RvcmUgcmVtb3ZlRGF0YU9mVHlwZXM6bW9kaWZpZWRTaW5jZTpjb21wbGV0
aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKHRvV2Vic2l0ZURhdGFSZWNvcmRzKToKKyAgICAgICAg
KC1bV0tXZWJzaXRlRGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOmZvckRhdGFSZWNvcmRzOmNv
bXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2FwaU9i
amVjdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
SW50ZXJuYWwuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmguCisgICAgICAgIChXZWJLaXQ6OndyYXBw
ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5tbToK
KyAgICAgICAgKCtbX1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSk6IERlbGV0
ZWQuCisgICAgICAgICgrW19XS1dlYnNpdGVEYXRhU3RvcmUgbm9uUGVyc2lzdGVudERhdGFTdG9y
ZV0pOiBEZWxldGVkLgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlIGRlYWxsb2NdKTog
RGVsZXRlZC4KKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZSBpc05vblBlcnNpc3RlbnRd
KTogRGVsZXRlZC4KKyAgICAgICAgKHRvU3lzdGVtQ2xvY2tUaW1lKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZSBmZXRjaERhdGFSZWNvcmRzT2ZUeXBlczpjb21wbGV0
aW9uSGFuZGxlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZSBy
ZW1vdmVEYXRhT2ZUeXBlczptb2RpZmllZFNpbmNlOmNvbXBsZXRpb25IYW5kbGVyOl0pOiBEZWxl
dGVkLgorICAgICAgICAodG9XZWJzaXRlRGF0YVJlY29yZHMpOiBEZWxldGVkLgorICAgICAgICAo
LVtfV0tXZWJzaXRlRGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOmZvckRhdGFSZWNvcmRzOmNv
bXBsZXRpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0
b3JlIF9hcGlPYmplY3RdKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKKzIwMTUtMDQtMTUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2Nh
QGFwcGxlLmNvbT4KKwogICAgICAgICBNYWtlIFdLV2Vic2l0ZURhdGFSZWNvcmQgcHVibGljCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM3OTYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XZWJLaXQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV2ViS2l0LmgKaW5kZXggNjVjMDBlODZjN2Fk
NTZlZmU0ODE0NTdlNTFiYzE1NDUxYWQ3NWU1Yy4uZDllMDExZWEzODkwYWMxNjFiZTA0ZmZhYmFh
ZDQxNWY1NzkyN2M5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2Nv
YS9XZWJLaXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dlYktpdC5o
CkBAIC00Miw1ICs0Miw2IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0
IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
c2l0ZURhdGFSZWNvcmQuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS1dpbmRvd0ZlYXR1cmVzLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2Vi
S2l0TGVnYWN5Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvQVBJ
T2JqZWN0Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQppbmRl
eCA3ZGY0NmY2MTJiMzkzZTk4NWJlOGE0MzY4NmY2MjM3ZDQ1ODU2ZThhLi4zYjU4MmVjNTBjNjQ2
N2U3YjQyOTNlYWZlODFjNzY5NDAxZmVkYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2Nv
YS9BUElPYmplY3QubW0KQEAgLTU4LDEzICs1OCwxMyBAQAogI2ltcG9ydCAiV0tXZWJQcm9jZXNz
UGx1Z0luUGFnZUdyb3VwSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJblNj
cmlwdFdvcmxkSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5h
bC5oIgorI2ltcG9ydCAiV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9X
S0Rvd25sb2FkSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIK
ICNpbXBvcnQgIl9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbkludGVybmFsLmgiCiAjaW1wb3J0
ICJfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1Vz
ZXJDb250ZW50RmlsdGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1Zpc2l0ZWRMaW5rUHJvdmlk
ZXJJbnRlcm5hbC5oIgotI2ltcG9ydCAiX1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgiCiAj
aW1wb3J0IDxvYmpjL29iamMtYXV0by5oPgogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTIwOSw3ICsy
MDksNyBAQCB2b2lkKiBPYmplY3Q6Om5ld09iamVjdChzaXplX3Qgc2l6ZSwgVHlwZSB0eXBlKQog
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgVHlwZTo6V2Vic2l0ZURhdGFTdG9yZToKLSAgICAg
ICAgd3JhcHBlciA9IFtfV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXTsKKyAgICAgICAgd3JhcHBl
ciA9IFtXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdOwogICAgICAgICBicmVhazsKIAogICAgIGNh
c2UgVHlwZTo6QnVuZGxlRnJhbWU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDNiY2UwMGJlOGI0NTM3YTA5M2I4OTdkYjMyMjVjNTA1
NWUwODM0ZGUuLmY2OTk1ZTU3MTUwMWU5ZjlkNTc5ZWYyMmU4MjRlYzEzZGRmZmMyZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC01
OSw2ICs1OSw3IEBACiAjaW1wb3J0ICJXS1VzZXJDb250ZW50Q29udHJvbGxlckludGVybmFsLmgi
CiAjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIldL
V2ViVmlld0NvbnRlbnRQcm92aWRlci5oIgorI2ltcG9ydCAiV0tXZWJzaXRlRGF0YVN0b3JlSW50
ZXJuYWwuaCIKICNpbXBvcnQgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2ltcG9ydCAiV2ViQ2Vy
dGlmaWNhdGVJbmZvLmgiCiAjaW1wb3J0ICJXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHku
aCIKQEAgLTc0LDcgKzc1LDYgQEAKICNpbXBvcnQgIl9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5SW50
ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1Nlc3Npb25TdGF0ZUludGVybmFsLmgiCiAjaW1wb3J0ICJf
V0tWaXNpdGVkTGlua1Byb3ZpZGVySW50ZXJuYWwuaCIKLSNpbXBvcnQgIl9XS1dlYnNpdGVEYXRh
U3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNDb250ZXh0Lmg+CiAj
aW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1ZhbHVlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0lPU3Vy
ZmFjZS5oPgpAQCAtMjkxLDcgKzI5MSw3IEBAIHN0YXRpYyBpbnQzMl90IGRldmljZU9yaWVudGF0
aW9uKCkKIAogICAgIHdlYlBhZ2VDb25maWd1cmF0aW9uLnVzZXJDb250ZW50Q29udHJvbGxlciA9
IFtfY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdLT5fdXNlckNvbnRlbnRDb250
cm9sbGVyUHJveHkuZ2V0KCk7CiAgICAgd2ViUGFnZUNvbmZpZ3VyYXRpb24udmlzaXRlZExpbmtQ
cm92aWRlciA9IFtfY29uZmlndXJhdGlvbiBfdmlzaXRlZExpbmtQcm92aWRlcl0tPl92aXNpdGVk
TGlua1Byb3ZpZGVyLmdldCgpOwotICAgIHdlYlBhZ2VDb25maWd1cmF0aW9uLndlYnNpdGVEYXRh
U3RvcmUgPSAmW19jb25maWd1cmF0aW9uIF93ZWJzaXRlRGF0YVN0b3JlXS0+X3dlYnNpdGVEYXRh
U3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKTsKKyAgICB3ZWJQYWdlQ29uZmlndXJhdGlvbi53ZWJz
aXRlRGF0YVN0b3JlID0gJigoV0tXZWJzaXRlRGF0YVN0b3JlICopW19jb25maWd1cmF0aW9uIF93
ZWJzaXRlRGF0YVN0b3JlXSktPl93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCk7
CiAgICAgd2ViUGFnZUNvbmZpZ3VyYXRpb24uc2Vzc2lvbklEID0gd2ViUGFnZUNvbmZpZ3VyYXRp
b24ud2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCk7CiAgICAgd2ViUGFnZUNvbmZpZ3VyYXRp
b24udHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5zZWN1cmUgPSBbX2NvbmZpZ3VyYXRp
b24gX3RyZWF0c1NIQTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlXTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25m
aWd1cmF0aW9uLm1tCmluZGV4IDUxNzg1NDUwOTZkZTQyNWQ3ZWZkNzVlMDMwYTUxM2FkMWRlZDlh
ZDUuLjZlZWE0OWRmNzQxYmEwNjA5MDJhY2NkMjk3YTQ1NzY5NTg0NmZjYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24ubW0KQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICBMYXp5SW5pdGlh
bGl6ZWQ8UmV0YWluUHRyPFdLUHJlZmVyZW5jZXM+PiBfcHJlZmVyZW5jZXM7CiAgICAgTGF6eUlu
aXRpYWxpemVkPFJldGFpblB0cjxXS1VzZXJDb250ZW50Q29udHJvbGxlcj4+IF91c2VyQ29udGVu
dENvbnRyb2xsZXI7CiAgICAgTGF6eUluaXRpYWxpemVkPFJldGFpblB0cjxfV0tWaXNpdGVkTGlu
a1Byb3ZpZGVyPj4gX3Zpc2l0ZWRMaW5rUHJvdmlkZXI7Ci0gICAgTGF6eUluaXRpYWxpemVkPFJl
dGFpblB0cjxfV0tXZWJzaXRlRGF0YVN0b3JlPj4gX3dlYnNpdGVEYXRhU3RvcmU7CisgICAgTGF6
eUluaXRpYWxpemVkPFJldGFpblB0cjxXS1dlYnNpdGVEYXRhU3RvcmU+PiBfd2Vic2l0ZURhdGFT
dG9yZTsKICAgICBXZWJLaXQ6OldlYWtPYmpDUHRyPFdLV2ViVmlldz4gX3JlbGF0ZWRXZWJWaWV3
OwogICAgIFdlYktpdDo6V2Vha09iakNQdHI8V0tXZWJWaWV3PiBfYWx0ZXJuYXRlV2ViVmlld0Zv
ck5hdmlnYXRpb25HZXN0dXJlczsKICAgICBCT09MIF90cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNh
dGVzQXNJbnNlY3VyZTsKQEAgLTIwNyw3ICsyMDcsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKmRlZmF1
bHRBcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQoKQogCiAtIChfV0tXZWJzaXRlRGF0YVN0b3Jl
ICopX3dlYnNpdGVEYXRhU3RvcmUKIHsKLSAgICByZXR1cm4gX3dlYnNpdGVEYXRhU3RvcmUuZ2V0
KFtdIHsgcmV0dXJuIFtfV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOyB9KTsK
KyAgICByZXR1cm4gKF9XS1dlYnNpdGVEYXRhU3RvcmUgKilfd2Vic2l0ZURhdGFTdG9yZS5nZXQo
W10geyByZXR1cm4gW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXTsgfSk7CiB9
CiAKIC0gKHZvaWQpX3NldFdlYnNpdGVEYXRhU3RvcmU6KF9XS1dlYnNpdGVEYXRhU3RvcmUgKil3
ZWJzaXRlRGF0YVN0b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDY5ZDE2ZDMzMDY4OTMx
MDc4ODNmMTJlODkxZGEwNjNjODExZWFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMCwwICsxLDQ5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYg
V0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFSZWNvcmQuaD4K
KworV0tfQ0xBU1NfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpCitAaW50ZXJmYWNl
IFdLV2Vic2l0ZURhdGFTdG9yZSA6IE5TT2JqZWN0CisKKy8vIFJldHVybnMgdGhlIHNoYXJlZCBk
ZWZhdWx0IGRhdGEgc3RvcmUuCisrIChpbnN0YW5jZXR5cGUpZGVmYXVsdERhdGFTdG9yZTsKKwor
Ly8gUmV0dXJucyBhIG5ldyBub24tcGVyc2lzdGVudCBkYXRhIHN0b3JlLgorKyAoaW5zdGFuY2V0
eXBlKW5vblBlcnNpc3RlbnREYXRhU3RvcmU7CisKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIGdldHRl
cj1pc05vblBlcnNpc3RlbnQpIEJPT0wgbm9uUGVyc2lzdGVudDsKKworLSAodm9pZClmZXRjaERh
dGFSZWNvcmRzT2ZUeXBlczooV0tXZWJzaXRlRGF0YVR5cGVzKXdlYnNpdGVEYXRhVHlwZXMgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXkgKikpY29tcGxldGlvbkhhbmRsZXI7Cist
ICh2b2lkKXJlbW92ZURhdGFPZlR5cGVzOihXS1dlYnNpdGVEYXRhVHlwZXMpd2Vic2l0ZURhdGFU
eXBlcyBmb3JEYXRhUmVjb3JkczooTlNBcnJheSAqKWRhdGFSZWNvcmRzIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKSgpKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClyZW1vdmVEYXRhT2ZU
eXBlczooV0tXZWJzaXRlRGF0YVR5cGVzKXdlYnNpdGVEYXRhVHlwZXMgbW9kaWZpZWRTaW5jZToo
TlNEYXRlICopZGF0ZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoKSljb21wbGV0aW9uSGFu
ZGxlcjsKKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzhiOTAzZmY4OTliNzEzODJiNTU1YmRmZWQzZjE0ZGU2NGU4NTMzMwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlLm1tCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIgorCisjaWYg
V0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAiQVBJQXJyYXkuaCIKKyNpbXBvcnQgIldLTlNBcnJh
eS5oIgorI2ltcG9ydCAiV0tXZWJzaXRlRGF0YVJlY29yZEludGVybmFsLmgiCisKK0BpbXBsZW1l
bnRhdGlvbiBXS1dlYnNpdGVEYXRhU3RvcmUKKworKyAoaW5zdGFuY2V0eXBlKWRlZmF1bHREYXRh
U3RvcmUKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp3cmFwcGVyKCpBUEk6OldlYnNpdGVEYXRhU3Rv
cmU6OmRlZmF1bHREYXRhU3RvcmUoKS5nZXQoKSk7Cit9CisKKysgKGluc3RhbmNldHlwZSlub25Q
ZXJzaXN0ZW50RGF0YVN0b3JlCit7CisgICAgcmV0dXJuIFtXZWJLaXQ6OndyYXBwZXIoKkFQSTo6
V2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlTm9uUGVyc2lzdGVudERhdGFTdG9yZSgpLnJlbGVhc2Uo
KS5sZWFrUmVmKCkpIGF1dG9yZWxlYXNlXTsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAg
X3dlYnNpdGVEYXRhU3RvcmUtPkFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3Rv
cmUoKTsKKworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAoQk9PTClpc05vblBlcnNpc3Rl
bnQKK3sKKyAgICByZXR1cm4gX3dlYnNpdGVEYXRhU3RvcmUtPmlzTm9uUGVyc2lzdGVudCgpOwor
fQorCitzdGF0aWMgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCB0b1N5c3Rl
bUNsb2NrVGltZShOU0RhdGUgKmRhdGUpCit7CisgICAgQVNTRVJUKGRhdGUpOworICAgIHVzaW5n
IG5hbWVzcGFjZSBzdGQ6OmNocm9ubzsKKworICAgIHJldHVybiBzeXN0ZW1fY2xvY2s6OnRpbWVf
cG9pbnQoZHVyYXRpb25fY2FzdDxzeXN0ZW1fY2xvY2s6OmR1cmF0aW9uPihkdXJhdGlvbjxkb3Vi
bGU+KGRhdGUudGltZUludGVydmFsU2luY2UxOTcwKSkpOworfQorCistICh2b2lkKWZldGNoRGF0
YVJlY29yZHNPZlR5cGVzOihXS1dlYnNpdGVEYXRhVHlwZXMpd2Vic2l0ZURhdGFUeXBlcyBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheSAqKSljb21wbGV0aW9uSGFuZGxlcgorewor
ICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXJDb3B5ID0gQmxvY2tfY29weShjb21wbGV0aW9uSGFu
ZGxlcik7CisKKyAgICBfd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLmZldGNo
RGF0YShXZWJLaXQ6OnRvV2Vic2l0ZURhdGFUeXBlcyh3ZWJzaXRlRGF0YVR5cGVzKSwgW2NvbXBs
ZXRpb25IYW5kbGVyQ29weV0oVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHdlYnNp
dGVEYXRhUmVjb3JkcykgeworICAgICAgICBWZWN0b3I8UmVmUHRyPEFQSTo6T2JqZWN0Pj4gZWxl
bWVudHM7CisgICAgICAgIGVsZW1lbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkod2Vic2l0ZURh
dGFSZWNvcmRzLnNpemUoKSk7CisKKyAgICAgICAgZm9yIChhdXRvJiB3ZWJzaXRlRGF0YVJlY29y
ZCA6IHdlYnNpdGVEYXRhUmVjb3JkcykKKyAgICAgICAgICAgIGVsZW1lbnRzLnVuY2hlY2tlZEFw
cGVuZChBUEk6OldlYnNpdGVEYXRhUmVjb3JkOjpjcmVhdGUoV1RGOjptb3ZlKHdlYnNpdGVEYXRh
UmVjb3JkKSkpOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQ29weSh3cmFwcGVyKCpBUEk6
OkFycmF5OjpjcmVhdGUoV1RGOjptb3ZlKGVsZW1lbnRzKSkpKTsKKworICAgICAgICBCbG9ja19y
ZWxlYXNlKGNvbXBsZXRpb25IYW5kbGVyQ29weSk7CisgICAgfSk7Cit9CisKKy0gKHZvaWQpcmVt
b3ZlRGF0YU9mVHlwZXM6KFdLV2Vic2l0ZURhdGFUeXBlcyl3ZWJzaXRlRGF0YVR5cGVzIG1vZGlm
aWVkU2luY2U6KE5TRGF0ZSAqKWRhdGUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKCkpY29t
cGxldGlvbkhhbmRsZXIKK3sKKyAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyQ29weSA9IEJsb2Nr
X2NvcHkoY29tcGxldGlvbkhhbmRsZXIpOworICAgIF93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRl
RGF0YVN0b3JlKCkucmVtb3ZlRGF0YShXZWJLaXQ6OnRvV2Vic2l0ZURhdGFUeXBlcyh3ZWJzaXRl
RGF0YVR5cGVzKSwgdG9TeXN0ZW1DbG9ja1RpbWUoZGF0ZSA/IGRhdGUgOiBbTlNEYXRlIGRpc3Rh
bnRQYXN0XSksIFtjb21wbGV0aW9uSGFuZGxlckNvcHldIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXJDb3B5KCk7CisgICAgICAgIEJsb2NrX3JlbGVhc2UoY29tcGxldGlvbkhhbmRsZXJDb3B5
KTsKKyAgICB9KTsKK30KKworc3RhdGljIFZlY3RvcjxXZWJLaXQ6OldlYnNpdGVEYXRhUmVjb3Jk
PiB0b1dlYnNpdGVEYXRhUmVjb3JkcyhOU0FycmF5ICpkYXRhUmVjb3JkcykKK3sKKyAgICBWZWN0
b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gcmVzdWx0OworCisgICAgZm9yIChXS1dlYnNp
dGVEYXRhUmVjb3JkICpkYXRhUmVjb3JkIGluIGRhdGFSZWNvcmRzKQorICAgICAgICByZXN1bHQu
YXBwZW5kKGRhdGFSZWNvcmQtPl93ZWJzaXRlRGF0YVJlY29yZC0+d2Vic2l0ZURhdGFSZWNvcmQo
KSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCistICh2b2lkKXJlbW92ZURhdGFPZlR5cGVz
OihXS1dlYnNpdGVEYXRhVHlwZXMpd2Vic2l0ZURhdGFUeXBlcyBmb3JEYXRhUmVjb3JkczooTlNB
cnJheSAqKWRhdGFSZWNvcmRzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSgpKWNvbXBsZXRp
b25IYW5kbGVyCit7CisgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlckNvcHkgPSBCbG9ja19jb3B5
KGNvbXBsZXRpb25IYW5kbGVyKTsKKworICAgIF93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0
YVN0b3JlKCkucmVtb3ZlRGF0YShXZWJLaXQ6OnRvV2Vic2l0ZURhdGFUeXBlcyh3ZWJzaXRlRGF0
YVR5cGVzKSwgdG9XZWJzaXRlRGF0YVJlY29yZHMoZGF0YVJlY29yZHMpLCBbY29tcGxldGlvbkhh
bmRsZXJDb3B5XSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQ29weSgpOworICAgICAgICBC
bG9ja19yZWxlYXNlKGNvbXBsZXRpb25IYW5kbGVyQ29weSk7CisgICAgfSk7Cit9CisKKyNwcmFn
bWEgbWFyayBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgorCistIChBUEk6Ok9iamVj
dCYpX2FwaU9iamVjdAoreworICAgIHJldHVybiAqX3dlYnNpdGVEYXRhU3RvcmU7Cit9CisKK0Bl
bmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFs
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzg2YjEyZjUyYjlkYTY2ZDU3Njg0NjZhMGRkNzRhMzA2NjI2YTA1Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiV0tXZWJzaXRlRGF0YVN0b3JlLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCisj
aW1wb3J0ICJBUElXZWJzaXRlRGF0YVN0b3JlLmgiCisjaW1wb3J0ICJXS09iamVjdC5oIgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworaW5saW5lIFdLV2Vic2l0ZURhdGFTdG9yZSAqd3JhcHBlcihB
UEk6OldlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUpCit7CisgICAgQVNTRVJUKFt3
ZWJzaXRlRGF0YVN0b3JlLndyYXBwZXIoKSBpc0tpbmRPZkNsYXNzOltXS1dlYnNpdGVEYXRhU3Rv
cmUgY2xhc3NdXSk7CisgICAgcmV0dXJuIChXS1dlYnNpdGVEYXRhU3RvcmUgKil3ZWJzaXRlRGF0
YVN0b3JlLndyYXBwZXIoKTsKK30KKworfQorCitAaW50ZXJmYWNlIFdLV2Vic2l0ZURhdGFTdG9y
ZSAoKSA8V0tPYmplY3Q+IHsKK0BwYWNrYWdlCisgICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6
V2Vic2l0ZURhdGFTdG9yZT4gX3dlYnNpdGVEYXRhU3RvcmU7Cit9CitAZW5kCisKKyNlbmRpZiAv
LyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBhMzE0OTk0NGQ5YjM3YmExMDU1
ODZiYmEyOTY1NGZmMTI4YTM3MDIyLi45NjIzMWEzNTkyN2I5MjBiYTQ1MjNmNjI3YzczNTk5Njll
ODc2ZmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsMjMgKzI3LDEwIEBACiAKICNpZiBXS19BUElfRU5BQkxF
RAogCi0jaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFSZWNvcmQuaD4KKyNpbXBvcnQgPFdl
YktpdC9XS1dlYnNpdGVEYXRhU3RvcmUuaD4KIAogV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4
XzApCi1AaW50ZXJmYWNlIF9XS1dlYnNpdGVEYXRhU3RvcmUgOiBOU09iamVjdAotCi0vLyBSZXR1
cm5zIHRoZSBzaGFyZWQgZGVmYXVsdCBkYXRhIHN0b3JlLgotKyAoaW5zdGFuY2V0eXBlKWRlZmF1
bHREYXRhU3RvcmU7Ci0KLS8vIFJldHVybnMgYSBuZXcgbm9uLXBlcnNpc3RlbnQgZGF0YSBzdG9y
ZS4KLSsgKGluc3RhbmNldHlwZSlub25QZXJzaXN0ZW50RGF0YVN0b3JlOwotCi1AcHJvcGVydHkg
KHJlYWRvbmx5LCBnZXR0ZXI9aXNOb25QZXJzaXN0ZW50KSBCT09MIG5vblBlcnNpc3RlbnQ7Ci0K
LS0gKHZvaWQpZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6KFdLV2Vic2l0ZURhdGFUeXBlcyl3ZWJz
aXRlRGF0YVR5cGVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5ICopKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKHZv
aWQpcmVtb3ZlRGF0YU9mVHlwZXM6KFdLV2Vic2l0ZURhdGFUeXBlcyl3ZWJzaXRlRGF0YVR5cGVz
IGZvckRhdGFSZWNvcmRzOihOU0FycmF5ICopZGF0YVJlY29yZHMgY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQgKF4pKCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdL
X0lPU19UQkEpOwotLSAodm9pZClyZW1vdmVEYXRhT2ZUeXBlczooV0tXZWJzaXRlRGF0YVR5cGVz
KXdlYnNpdGVEYXRhVHlwZXMgbW9kaWZpZWRTaW5jZTooTlNEYXRlICopZGF0ZSBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoKSljb21wbGV0aW9uSGFuZGxlciBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgV0tfSU9TX1RCQSk7Ci0KK0BpbnRlcmZhY2UgX1dLV2Vic2l0ZURhdGFTdG9yZSA6IFdL
V2Vic2l0ZURhdGFTdG9yZQogQGVuZAogCi0jZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tX
ZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDBhNTgxMzM4MTQyYzI3M2U1NTg0NWVhODEzMGRkODNk
ZDA0ZTg0NzAuLmYzNWZmMWMxMDBhNDU3Mjc4YzM0MDIxYThjNmQ5Y2Y0ODNiMGU3MGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNp
dGVEYXRhU3RvcmUubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTIzLDEwMCArMjMsMTIgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIl9XS1dlYnNpdGVEYXRh
U3RvcmVJbnRlcm5hbC5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIl9XS1dlYnNp
dGVEYXRhU3RvcmUuaCIKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLSNpbXBvcnQgIkFQSUFycmF5
LmgiCi0jaW1wb3J0ICJXS05TQXJyYXkuaCIKLSNpbXBvcnQgIldLV2Vic2l0ZURhdGFSZWNvcmRJ
bnRlcm5hbC5oIgotCiBAaW1wbGVtZW50YXRpb24gX1dLV2Vic2l0ZURhdGFTdG9yZQotCi0rIChp
bnN0YW5jZXR5cGUpZGVmYXVsdERhdGFTdG9yZQotewotICAgIHJldHVybiBXZWJLaXQ6OndyYXBw
ZXIoKkFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZSgpLmdldCgpKTsKLX0K
LQotKyAoaW5zdGFuY2V0eXBlKW5vblBlcnNpc3RlbnREYXRhU3RvcmUKLXsKLSAgICByZXR1cm4g
W1dlYktpdDo6d3JhcHBlcigqQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0
ZW50RGF0YVN0b3JlKCkucmVsZWFzZSgpLmxlYWtSZWYoKSkgYXV0b3JlbGVhc2VdOwotfQotCi0t
ICh2b2lkKWRlYWxsb2MKLXsKLSAgICBfd2Vic2l0ZURhdGFTdG9yZS0+QVBJOjpXZWJzaXRlRGF0
YVN0b3JlOjp+V2Vic2l0ZURhdGFTdG9yZSgpOwotCi0gICAgW3N1cGVyIGRlYWxsb2NdOwotfQot
Ci0tIChCT09MKWlzTm9uUGVyc2lzdGVudAotewotICAgIHJldHVybiBfd2Vic2l0ZURhdGFTdG9y
ZS0+aXNOb25QZXJzaXN0ZW50KCk7Ci19Ci0KLXN0YXRpYyBzdGQ6OmNocm9ubzo6c3lzdGVtX2Ns
b2NrOjp0aW1lX3BvaW50IHRvU3lzdGVtQ2xvY2tUaW1lKE5TRGF0ZSAqZGF0ZSkKLXsKLSAgICBB
U1NFUlQoZGF0ZSk7Ci0gICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDo6Y2hyb25vOwotCi0gICAgcmV0
dXJuIHN5c3RlbV9jbG9jazo6dGltZV9wb2ludChkdXJhdGlvbl9jYXN0PHN5c3RlbV9jbG9jazo6
ZHVyYXRpb24+KGR1cmF0aW9uPGRvdWJsZT4oZGF0ZS50aW1lSW50ZXJ2YWxTaW5jZTE5NzApKSk7
Ci19Ci0KLS0gKHZvaWQpZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6KFdLV2Vic2l0ZURhdGFUeXBl
cyl3ZWJzaXRlRGF0YVR5cGVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5ICop
KWNvbXBsZXRpb25IYW5kbGVyCi17Ci0gICAgYXV0byBjb21wbGV0aW9uSGFuZGxlckNvcHkgPSBC
bG9ja19jb3B5KGNvbXBsZXRpb25IYW5kbGVyKTsKLQotICAgIF93ZWJzaXRlRGF0YVN0b3JlLT53
ZWJzaXRlRGF0YVN0b3JlKCkuZmV0Y2hEYXRhKFdlYktpdDo6dG9XZWJzaXRlRGF0YVR5cGVzKHdl
YnNpdGVEYXRhVHlwZXMpLCBbY29tcGxldGlvbkhhbmRsZXJDb3B5XShWZWN0b3I8V2ViS2l0OjpX
ZWJzaXRlRGF0YVJlY29yZD4gd2Vic2l0ZURhdGFSZWNvcmRzKSB7Ci0gICAgICAgIFZlY3RvcjxS
ZWZQdHI8QVBJOjpPYmplY3Q+PiBlbGVtZW50czsKLSAgICAgICAgZWxlbWVudHMucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eSh3ZWJzaXRlRGF0YVJlY29yZHMuc2l6ZSgpKTsKLQotICAgICAgICBmb3Ig
KGF1dG8mIHdlYnNpdGVEYXRhUmVjb3JkIDogd2Vic2l0ZURhdGFSZWNvcmRzKQotICAgICAgICAg
ICAgZWxlbWVudHMudW5jaGVja2VkQXBwZW5kKEFQSTo6V2Vic2l0ZURhdGFSZWNvcmQ6OmNyZWF0
ZShXVEY6Om1vdmUod2Vic2l0ZURhdGFSZWNvcmQpKSk7Ci0KLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXJDb3B5KHdyYXBwZXIoKkFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUoZWxlbWVudHMp
KSkpOwotCi0gICAgICAgIEJsb2NrX3JlbGVhc2UoY29tcGxldGlvbkhhbmRsZXJDb3B5KTsKLSAg
ICB9KTsKLX0KLQotLSAodm9pZClyZW1vdmVEYXRhT2ZUeXBlczooV0tXZWJzaXRlRGF0YVR5cGVz
KXdlYnNpdGVEYXRhVHlwZXMgbW9kaWZpZWRTaW5jZTooTlNEYXRlICopZGF0ZSBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoKSljb21wbGV0aW9uSGFuZGxlcgotewotICAgIGF1dG8gY29tcGxl
dGlvbkhhbmRsZXJDb3B5ID0gQmxvY2tfY29weShjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgX3dl
YnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5yZW1vdmVEYXRhKFdlYktpdDo6dG9X
ZWJzaXRlRGF0YVR5cGVzKHdlYnNpdGVEYXRhVHlwZXMpLCB0b1N5c3RlbUNsb2NrVGltZShkYXRl
ID8gZGF0ZSA6IFtOU0RhdGUgZGlzdGFudFBhc3RdKSwgW2NvbXBsZXRpb25IYW5kbGVyQ29weV0g
ewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlckNvcHkoKTsKLSAgICAgICAgQmxvY2tfcmVsZWFz
ZShjb21wbGV0aW9uSGFuZGxlckNvcHkpOwotICAgIH0pOwotfQotCi1zdGF0aWMgVmVjdG9yPFdl
YktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRh
dGFSZWNvcmRzKQotewotICAgIFZlY3RvcjxXZWJLaXQ6OldlYnNpdGVEYXRhUmVjb3JkPiByZXN1
bHQ7Ci0KLSAgICBmb3IgKFdLV2Vic2l0ZURhdGFSZWNvcmQgKmRhdGFSZWNvcmQgaW4gZGF0YVJl
Y29yZHMpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoZGF0YVJlY29yZC0+X3dlYnNpdGVEYXRhUmVj
b3JkLT53ZWJzaXRlRGF0YVJlY29yZCgpKTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLS0g
KHZvaWQpcmVtb3ZlRGF0YU9mVHlwZXM6KFdLV2Vic2l0ZURhdGFUeXBlcyl3ZWJzaXRlRGF0YVR5
cGVzIGZvckRhdGFSZWNvcmRzOihOU0FycmF5ICopZGF0YVJlY29yZHMgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKCkpY29tcGxldGlvbkhhbmRsZXIKLXsKLSAgICBhdXRvIGNvbXBsZXRpb25I
YW5kbGVyQ29weSA9IEJsb2NrX2NvcHkoY29tcGxldGlvbkhhbmRsZXIpOwotCi0gICAgX3dlYnNp
dGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5yZW1vdmVEYXRhKFdlYktpdDo6dG9XZWJz
aXRlRGF0YVR5cGVzKHdlYnNpdGVEYXRhVHlwZXMpLCB0b1dlYnNpdGVEYXRhUmVjb3JkcyhkYXRh
UmVjb3JkcyksIFtjb21wbGV0aW9uSGFuZGxlckNvcHldIHsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXJDb3B5KCk7Ci0gICAgICAgIEJsb2NrX3JlbGVhc2UoY29tcGxldGlvbkhhbmRsZXJDb3B5
KTsKLSAgICB9KTsKLX0KLQotI3ByYWdtYSBtYXJrIFdLT2JqZWN0IHByb3RvY29sIGltcGxlbWVu
dGF0aW9uCi0KLS0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0Ci17Ci0gICAgcmV0dXJuICpfd2Vi
c2l0ZURhdGFTdG9yZTsKLX0KLQogQGVuZAogCi0jZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tX
ZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGNiMDExMjg0YTM4MDNmOWJkMjg3MWVjMGYxZjQwMjg4MWYyNjZlMzEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaAorKysgL2Rl
di9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJfV0tXZWJzaXRl
RGF0YVN0b3JlLmgiCi0KLSNpZiBXS19BUElfRU5BQkxFRAotCi0jaW1wb3J0ICJBUElXZWJzaXRl
RGF0YVN0b3JlLmgiCi0jaW1wb3J0ICJXS09iamVjdC5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotaW5saW5lIF9XS1dlYnNpdGVEYXRhU3RvcmUgKndyYXBwZXIoQVBJOjpXZWJzaXRlRGF0YVN0
b3JlJiB3ZWJzaXRlRGF0YVN0b3JlKQotewotICAgIEFTU0VSVChbd2Vic2l0ZURhdGFTdG9yZS53
cmFwcGVyKCkgaXNLaW5kT2ZDbGFzczpbX1dLV2Vic2l0ZURhdGFTdG9yZSBjbGFzc11dKTsKLSAg
ICByZXR1cm4gKF9XS1dlYnNpdGVEYXRhU3RvcmUgKil3ZWJzaXRlRGF0YVN0b3JlLndyYXBwZXIo
KTsKLX0KLQotfQotCi1AaW50ZXJmYWNlIF9XS1dlYnNpdGVEYXRhU3RvcmUgKCkgPFdLT2JqZWN0
PiB7Ci1AcGFja2FnZQotICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OldlYnNpdGVEYXRhU3Rv
cmU+IF93ZWJzaXRlRGF0YVN0b3JlOwotfQotQGVuZAotCi0jZW5kaWYgLy8gV0tfQVBJX0VOQUJM
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA3MTM1MTMzMzdlMDRkMDVjZDk0Y2QzZDRjNzVkNzFhMDQzMmFkZWY1Li4yZGUyMjU4
MGZlMzIxZDEzM2QwZjIwZjU5YTIzYzBjOTJmN2EyNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MDMsNiArNTAzLDggQEAK
IAkJMUFGQTRCOEYxQTY1QTlFMjAwNkM0QUI0IC8qIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRkE0
QjhEMUE2NUE5RTIwMDZDNEFCNCAvKiBXZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlci5jcHAgKi87
IH07CiAJCTFBRkE0QjkwMUE2NUE5RTIwMDZDNEFCNCAvKiBXZWJQcm9jZXNzTGlmZXRpbWVPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFG
QTRCOEUxQTY1QTlFMjAwNkM0QUI0IC8qIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmggKi87
IH07CiAJCTFBRkI0QzZFMUFERjBDNzgwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVJlY29yZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGQjRDNkMx
QURGMEM3ODAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRhUmVjb3JkLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUFGQjRDNzExQURGMTU1RDAwQjMz
MzM5IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZCNEM2RjFBREYxNTVEMDBCMzMzMzkgLyogX1dLV2Vic2l0
ZURhdGFTdG9yZS5tbSAqLzsgfTsKKwkJMUFGQjRDNzIxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dl
YnNpdGVEYXRhU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFBRkI0QzcwMUFERjE1NUQwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUFGREQz
MTUxODkxQjU0MDAwMTUzOTcwIC8qIEFQSVBvbGljeUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGREQzMTQxODkxQjU0MDAwMTUzOTcwIC8q
IEFQSVBvbGljeUNsaWVudC5oICovOyB9OwogCQkxQUZERDMxNzE4OTFDOTQ3MDAxNTM5NzAgLyog
V0tQcmVmZXJlbmNlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUFGREQzMTYxODkxQzk0NzAwMTUzOTcwIC8qIFdLUHJlZmVyZW5jZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTFBRkREMzE5MTg5MUNB
MTIwMDE1Mzk3MCAvKiBXS1ByZWZlcmVuY2VzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGREQzMTgxODkxQ0ExMjAwMTUzOTcwIC8qIFdLUHJlZmVy
ZW5jZXMubW0gKi87IH07CkBAIC0xMDc3LDkgKzEwNzksOSBAQAogCQk3NTU0MjJDQjE4MDY1MDAy
MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJNzU1NDIyQ0MxODA3NzNDRTAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJDNzE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXIuaCAqLzsgfTsKIAkJNzU5Q0NENUExODA4RjYxNjAwNzhFOEE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1NTQyMkJGMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmggKi87IH07Ci0JCTc1QThEMkM4MTg3Q0NGQUIwMEMzOUM5RSAvKiBfV0tXZWJzaXRl
RGF0YVN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3NUE4RDJDNDE4N0NDRjlGMDBDMzlDOUUgLyogX1dLV2Vic2l0ZURhdGFTdG9yZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTc1QThEMkM5MTg3
Q0NGQUYwMEMzOUM5RSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyQzUxODdDQ0Y5RjAwQzM5QzlFIC8q
IF9XS1dlYnNpdGVEYXRhU3RvcmUubW0gKi87IH07Ci0JCTc1QThEMkQ2MTg3RDFDMEUwMEMzOUM5
RSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThEMkQ0MTg3RDFDMDEwMEMzOUM5RSAvKiBfV0tX
ZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCAqLzsgfTsKKwkJNzVBOEQyQzgxODdDQ0ZBQjAwQzM5
QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyQzQxODdDQ0Y5RjAwQzM5QzlFIC8qIFdLV2Vic2l0ZURh
dGFTdG9yZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsK
KwkJNzVBOEQyQzkxODdDQ0ZBRjAwQzM5QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThEMkM1MTg3Q0NG
OUYwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmUubW0gKi87IH07CisJCTc1QThEMkQ2MTg3
RDFDMEUwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyRDQxODdEMUMwMTAwQzM5
QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmggKi87IH07CiAJCTc1QThEMkQ3MTg3
RDMwM0EwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThEMkQxMTg3RDE3QkYwMEMzOUM5RSAvKiBXS1Nlc3Np
b25SZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3NUE4RDJEODE4N0QzMDQwMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThEMkQwMTg3RDE3QkYwMEMz
OUM5RSAvKiBXS1Nlc3Npb25SZWYuY3BwICovOyB9OwogCQk3NUE4RDJFMTE4N0RFQzFBMDBDMzlD
OUUgLyogQVBJU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzVBOEQyREUxODdERTg3NDAwQzM5QzlFIC8qIEFQSVNlc3Npb24uaCAqLzsgfTsK
QEAgLTI2NTMsNiArMjY1NSw4IEBACiAJCTFBRkE0QjhEMUE2NUE5RTIwMDZDNEFCNCAvKiBXZWJQ
cm9jZXNzTGlmZXRpbWVPYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBRkE0QjhFMUE2NUE5RTIwMDZDNEFCNCAvKiBXZWJQcm9jZXNzTGlmZXRp
bWVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQcm9jZXNz
TGlmZXRpbWVPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUZCNEM2
QzFBREYwQzc4MDBCMzMzMzkgLyogX1dLV2Vic2l0ZURhdGFSZWNvcmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLV2Vic2l0ZURhdGFSZWNvcmQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUFGQjRDNkYxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVE
YXRhU3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tX
ZWJzaXRlRGF0YVN0b3JlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQUZCNEM3
MDFBREYxNTVEMDBCMzMzMzkgLyogX1dLV2Vic2l0ZURhdGFTdG9yZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tXZWJzaXRlRGF0YVN0b3JlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFBRkREMzE0MTg5MUI1NDAwMDE1Mzk3MCAvKiBBUElQb2xpY3lDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJUG9saWN5Q2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBRkREMzE2MTg5MUM5NDcwMDE1Mzk3MCAv
KiBXS1ByZWZlcmVuY2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJl
ZmVyZW5jZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFGREQzMTgxODkxQ0Ex
MjAwMTUzOTcwIC8qIFdLUHJlZmVyZW5jZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXS1ByZWZlcmVuY2VzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMzI5NCwxMSArMzI5OCwxMSBAQAogCQk3NTU0MjJDNjE4MDY0RkZDMDA0NkY2QTggLyog
V2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmln
aW5EYXRhTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NTQyMkM3
MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJPcmlnaW5EYXRhTWFuYWdlci5oOyBwYXRoID0gT3JpZ2lu
RGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3NTU0MjJDODE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2Fn
ZXMuaW47IHBhdGggPSBPcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3NUE4RDJDNDE4N0NDRjlGMDBDMzlDOUUg
LyogX1dLV2Vic2l0ZURhdGFTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBfV0tXZWJzaXRlRGF0YVN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTc1
QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLV2Vic2l0ZURhdGFTdG9yZS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVBOEQyQzQxODdDQ0Y5RjAwQzM5QzlFIC8q
IFdLV2Vic2l0ZURhdGFTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S1dlYnNpdGVEYXRhU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVBOEQy
QzUxODdDQ0Y5RjAwQzM5QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2Vic2l0ZURhdGFTdG9yZS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzVBOEQyRDAxODdEMTdCRjAwQzM5QzlFIC8qIFdLU2Vz
c2lvblJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1Nlc3Np
b25SZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUE4RDJEMTE4N0QxN0JG
MDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLU2Vzc2lvblJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3NUE4RDJE
NDE4N0QxQzAxMDBDMzlDOUUgLyogX1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJENDE4N0QxQzAxMDBDMzlDOUUg
LyogV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzVBOEQyREQxODdERTg3NDAwQzM5QzlFIC8qIEFQSVNlc3Npb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQVBJU2Vzc2lvbi5jcHA7IHBhdGgg
PSBVSVByb2Nlc3MvQVBJL0FQSVNlc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7
IH07CiAJCTc1QThEMkRFMTg3REU4NzQwMEMzOUM5RSAvKiBBUElTZXNzaW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFQSVNlc3Npb24uaDsgcGF0aCA9IFVJUHJvY2Vzcy9B
UEkvQVBJU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTc1RTc0OUU1
MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00
NDQ1LDYgKzQ0NDksOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQkxQUZCNEM2QzFBREYwQzc4MDBCMzMzMzkgLyogX1dLV2Vic2l0ZURhdGFSZWNvcmQuaCAqLywK
KwkJCQkxQUZCNEM3MDFBREYxNTVEMDBCMzMzMzkgLyogX1dLV2Vic2l0ZURhdGFTdG9yZS5oICov
LAorCQkJCTFBRkI0QzZGMUFERjE1NUQwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLm1t
ICovLAogCQkJCUJDNTk1NDg4MTVDNzg2ODUwMEZEMUUzRSAvKiBXZWJLaXQyLmggKi8sCiAJCQkJ
QkNCQUFDNkMxNDRFNjE5MTAwNTNGODJGIC8qIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5o
ICovLAogCQkJCUJDQkFBQzZEMTQ0RTYxOTIwMDUzRjgyRiAvKiBXS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIubW0gKi8sCkBAIC01Mzg3LDkgKzUzOTMsOSBAQAogCQkJCTFBODFCMzdGMThCRDY2
QUQwMDA3RkRBQyAvKiBfV0tWaXNpdGVkTGlua1Byb3ZpZGVyLmggKi8sCiAJCQkJMUE4MUIzN0Ux
OEJENjZBRDAwMDdGREFDIC8qIF9XS1Zpc2l0ZWRMaW5rUHJvdmlkZXIubW0gKi8sCiAJCQkJMUE4
MUIzODQxOEJENjczQTAwMDdGREFDIC8qIF9XS1Zpc2l0ZWRMaW5rUHJvdmlkZXJJbnRlcm5hbC5o
ICovLAotCQkJCTc1QThEMkM0MTg3Q0NGOUYwMEMzOUM5RSAvKiBfV0tXZWJzaXRlRGF0YVN0b3Jl
LmggKi8sCi0JCQkJNzVBOEQyQzUxODdDQ0Y5RjAwQzM5QzlFIC8qIF9XS1dlYnNpdGVEYXRhU3Rv
cmUubW0gKi8sCi0JCQkJNzVBOEQyRDQxODdEMUMwMTAwQzM5QzlFIC8qIF9XS1dlYnNpdGVEYXRh
U3RvcmVJbnRlcm5hbC5oICovLAorCQkJCTc1QThEMkM0MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1dl
YnNpdGVEYXRhU3RvcmUuaCAqLywKKwkJCQk3NUE4RDJDNTE4N0NDRjlGMDBDMzlDOUUgLyogV0tX
ZWJzaXRlRGF0YVN0b3JlLm1tICovLAorCQkJCTc1QThEMkQ0MTg3RDFDMDEwMEMzOUM5RSAvKiBX
S1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oICovLAogCQkJCTdDRUZBOTYwMUFDMDk5OTMwMEI5
MTBGRCAvKiBBUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlQ29jb2EubW0gKi8sCiAJCQkJMUEz
NjM1QUIxQTMxNDVFNTAwRUQ2MTk3IC8qIEFQSVdlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSAqLywK
IAkJCQkxQUZERTY0MzE5NTEwQjU1MDBDNDhGRkEgLyogTGVnYWN5QnVuZGxlRm9yQ2xhc3MubW0g
Ki8sCkBAIC03NjI1LDggKzc2MzEsOCBAQAogCQkJCTFBODFCMzgxMThCRDY2QUQwMDA3RkRBQyAv
KiBfV0tWaXNpdGVkTGlua1Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTgxQjM4NTE4
QkQ2NzNBMDAwN0ZEQUMgLyogX1dLVmlzaXRlZExpbmtQcm92aWRlckludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUZCNEM2RTFBREYwQzc4MDBCMzMzMzkgLyogX1dLV2Vic2l0ZURhdGFS
ZWNvcmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTc1QThEMkM4MTg3Q0NGQUIwMEMzOUM5RSAvKiBf
V0tXZWJzaXRlRGF0YVN0b3JlLmggaW4gSGVhZGVycyAqLywKLQkJCQk3NUE4RDJENjE4N0QxQzBF
MDBDMzlDOUUgLyogX1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmggaW4gSGVhZGVycyAqLywK
KwkJCQk3NUE4RDJDODE4N0NDRkFCMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3JlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk3NUE4RDJENjE4N0QxQzBFMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0
YVN0b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMTVEQzcyMTkxRDgyREEwMERB
ODA3MiAvKiBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
RDc5MkQ4MTc2N0NDQTMwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM2NDY5NzAxMURCRTYwMzAwNjQ1NUIwIC8qIEFQSUFycmF5LmggaW4gSGVhZGVy
cyAqLywKQEAgLTc5MTAsNiArNzkxNiw3IEBACiAJCQkJMUFBM0Q3NUMxNjUxQjQ0RjAwODcxM0Qw
IC8qIFJlbW90ZUxheWVyVHJlZUhvc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEREUwQUZBMTgy
OThDQzkwMEY5N0VBQSAvKiBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRjI2NEEwMUExRkY5Q0MwMDFGRTc1OSAvKiBSZW1vdGVMYXllclRyZWVT
Y3JvbGxpbmdQZXJmb3JtYW5jZURhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBRkI0QzcyMUFE
RjE1NUQwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUYxQUM2QzE2NTE3NTlFMDBDMTdEN0YgLyogUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjc4NDcxMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDMTMzODAxODU5MEFFNDAw
RjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTk0MDUs
NyArOTQxMiw3IEBACiAJCQkJN0MyNDEzMDIxQUFDRkE3NTAwQTU4QzE1IC8qIF9XS1VzZXJDb250
ZW50RXh0ZW5zaW9uU3RvcmUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Qzg5RDJCOTFBNkIwRjJD
MDAzQTVGREUgLyogX1dLVXNlckNvbnRlbnRGaWx0ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkx
QTgxQjM4MDE4QkQ2NkFEMDAwN0ZEQUMgLyogX1dLVmlzaXRlZExpbmtQcm92aWRlci5tbSBpbiBT
b3VyY2VzICovLAotCQkJCTc1QThEMkM5MTg3Q0NGQUYwMEMzOUM5RSAvKiBfV0tXZWJzaXRlRGF0
YVN0b3JlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNzVBOEQyQzkxODdDQ0ZBRjAwQzM5QzlFIC8q
IFdLV2Vic2l0ZURhdGFTdG9yZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExMTVEQzcxMTkxRDgy
RDcwMERBODA3MiAvKiBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBN0Q3OTJENjE3NjdDQjZFMDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM2NDY5NkYxMURCRTYwMzAwNjQ1NUIwIC8qIEFQSUFycmF5LmNw
cCBpbiBTb3VyY2VzICovLApAQCAtOTkwNCw2ICs5OTExLDcgQEAKIAkJCQk4MzcyREIyODFBNjc1
NjI4MDBDNjk3QzUgLyogV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDN0I2MjA3MTI5QTBBNjcwMEQxNzRBNCAvKiBXZWJQYWdlR3JvdXAuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3QjYyNTMxMkE0M0M5NjAwRDE3NEE0IC8qIFdlYlBhZ2VH
cm91cERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFGQjRDNzExQURGMTU1RDAwQjMzMzM5
IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzdCNjIxNjEy
QTQyMTlBMDBEMTc0QTQgLyogV2ViUGFnZUdyb3VwUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMjlENTVERjExNjFCRjlGMTAwMzFBMkUzIC8qIFdlYlBhZ2VHcm91cFByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOUVBMzExMUE5NkQ5RUIwMDJEMjgwNyAv
KiBXZWJQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250882</attachid>
            <date>2015-04-15 16:57:46 -0700</date>
            <delta_ts>2015-04-15 17:08:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143805-20150415165649.patch</filename>
            <type>text/plain</type>
            <size>37803</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjJhYjdhNmVjNjRjNDdj
N2RmZGQ3ZTMyY2ZhMWYyMTRiODQ4NDg2MS4uYTFiOTczNWZiNjUzYTg1MWI5NjcwM2M5NTM0N2Ni
MDc1ZTBkMTRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ4IEBACiAyMDE1LTA0LTE1ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgTWFrZSBXS1dlYnNp
dGVEYXRhU3RvcmUgcHVibGljCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDM4MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWUgdGhlIGN1cnJlbnQgX1dLV2Vic2l0ZURhdGFTdG9yZSB0byBXS1dl
YnNpdGVEYXRhU3RvcmUgYW5kIGFkZCBhIG5ldyBfV0tXZWJzaXRlRGF0YVN0b3JlCisgICAgICAg
IEBpbnRlcmZhY2UgYW5kIEBpbXBsZW1lbnRhdGlvbiB0aGF0IGp1c3QgZGVyaXZlcyBmcm9tIFdL
V2Vic2l0ZURhdGFTdG9yZS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV2ViS2l0Lmg6
CisgICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbToKKyAgICAgICAgKEFQSTo6T2Jq
ZWN0OjpuZXdPYmplY3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgaW5pdFdpdGhGcmFtZTpjb25maWd1cmF0aW9uOl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5t
bToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfd2Vic2l0ZURhdGFTdG9yZV0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmUubW0uCisgICAgICAgICgrW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZh
dWx0RGF0YVN0b3JlXSk6CisgICAgICAgICgrW1dLV2Vic2l0ZURhdGFTdG9yZSBub25QZXJzaXN0
ZW50RGF0YVN0b3JlXSk6CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWFsbG9jXSk6
CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBpc05vblBlcnNpc3RlbnRdKToKKyAgICAg
ICAgKHRvU3lzdGVtQ2xvY2tUaW1lKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIGZl
dGNoRGF0YVJlY29yZHNPZlR5cGVzOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtX
S1dlYnNpdGVEYXRhU3RvcmUgcmVtb3ZlRGF0YU9mVHlwZXM6bW9kaWZpZWRTaW5jZTpjb21wbGV0
aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKHRvV2Vic2l0ZURhdGFSZWNvcmRzKToKKyAgICAgICAg
KC1bV0tXZWJzaXRlRGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOmZvckRhdGFSZWNvcmRzOmNv
bXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2FwaU9i
amVjdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
SW50ZXJuYWwuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmguCisgICAgICAgIChXZWJLaXQ6OndyYXBw
ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5tbToK
KyAgICAgICAgKCtbX1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSk6CisgICAg
ICAgICgrW19XS1dlYnNpdGVEYXRhU3RvcmUgbm9uUGVyc2lzdGVudERhdGFTdG9yZV0pOgorICAg
ICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlIGRlYWxsb2NdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bX1dLV2Vic2l0ZURhdGFTdG9yZSBpc05vblBlcnNpc3RlbnRdKTogRGVsZXRlZC4KKyAgICAg
ICAgKHRvV2Vic2l0ZURhdGFUeXBlcyk6IERlbGV0ZWQuCisgICAgICAgICh0b1N5c3RlbUNsb2Nr
VGltZSk6IERlbGV0ZWQuCisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmUgcmVtb3ZlRGF0
YU9mVHlwZXM6bW9kaWZpZWRTaW5jZTpjb21wbGV0aW9uSGFuZGxlcjpdKTogRGVsZXRlZC4KKyAg
ICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZSBfYXBpT2JqZWN0XSk6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisyMDE1LTA0LTE1ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAgICAgTWFrZSBXS1dl
YnNpdGVEYXRhUmVjb3JkIHB1YmxpYwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQzNzk2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQ29jb2EvV2ViS2l0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dl
YktpdC5oCmluZGV4IDY1YzAwZTg2YzdhZDU2ZWZlNDgxNDU3ZTUxYmMxNTQ1MWFkNzVlNWMuLmQ5
ZTAxMWVhMzg5MGFjMTYxYmUwNGZmYWJhYWQ0MTVmNTc5MjdjOWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV2ViS2l0LmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9Db2NvYS9XZWJLaXQuaApAQCAtNDIsNSArNDIsNiBAQAogI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlldy5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
aD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhUmVjb3JkLmg+CisjaW1wb3J0IDxXZWJL
aXQvV0tXZWJzaXRlRGF0YVN0b3JlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXaW5kb3dGZWF0dXJl
cy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdExlZ2FjeS5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db2NvYS9BUElPYmplY3QubW0KaW5kZXggN2RmNDZmNjEyYjM5M2U5ODViZThhNDM2ODZmNjIz
N2Q0NTg1NmU4YS4uM2I1ODJlYzUwYzY0NjdlN2I0MjkzZWFmZTgxYzc2OTQwMWZlZGJhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tCkBAIC01OCwxMyArNTgsMTMg
QEAKICNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cEludGVybmFsLmgiCiAjaW1w
b3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZEludGVybmFsLmgiCiAjaW1wb3J0ICJX
S1dlYnNpdGVEYXRhUmVjb3JkSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLV2Vic2l0ZURhdGFTdG9y
ZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tEb3dubG9hZEludGVybmFsLmgiCiAjaW1wb3J0ICJf
V0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb25JbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUlu
dGVybmFsLmgiCiAjaW1wb3J0ICJfV0tVc2VyQ29udGVudEZpbHRlckludGVybmFsLmgiCiAjaW1w
b3J0ICJfV0tWaXNpdGVkTGlua1Byb3ZpZGVySW50ZXJuYWwuaCIKLSNpbXBvcnQgIl9XS1dlYnNp
dGVEYXRhU3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCA8b2JqYy9vYmpjLWF1dG8uaD4KIAogbmFt
ZXNwYWNlIEFQSSB7CkBAIC0yMDksNyArMjA5LDcgQEAgdm9pZCogT2JqZWN0OjpuZXdPYmplY3Qo
c2l6ZV90IHNpemUsIFR5cGUgdHlwZSkKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFR5cGU6
OldlYnNpdGVEYXRhU3RvcmU6Ci0gICAgICAgIHdyYXBwZXIgPSBbX1dLV2Vic2l0ZURhdGFTdG9y
ZSBhbGxvY107CisgICAgICAgIHdyYXBwZXIgPSBbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXTsK
ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFR5cGU6OkJ1bmRsZUZyYW1lOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAzYmNlMDBi
ZThiNDUzN2EwOTNiODk3ZGIzMjI1YzUwNTVlMDgzNGRlLi5mNjk5NWU1NzE1MDFlOWY5ZDU3OWVm
MjJlODI0ZWMxM2RkZmZjMmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNTksNiArNTksNyBAQAogI2ltcG9ydCAiV0tVc2VyQ29u
dGVudENvbnRyb2xsZXJJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlv
bkludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdDb250ZW50UHJvdmlkZXIuaCIKKyNpbXBv
cnQgIldLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJCYWNrRm9yd2Fy
ZExpc3QuaCIKICNpbXBvcnQgIldlYkNlcnRpZmljYXRlSW5mby5oIgogI2ltcG9ydCAiV2ViRm9y
bVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmgiCkBAIC03NCw3ICs3NSw2IEBACiAjaW1wb3J0ICJf
V0tSZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tTZXNzaW9uU3Rh
dGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLVmlzaXRlZExpbmtQcm92aWRlckludGVybmFsLmgi
Ci0jaW1wb3J0ICJfV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCIKICNpbXBvcnQgPEphdmFT
Y3JpcHRDb3JlL0pTQ29udGV4dC5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNWYWx1ZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9JT1N1cmZhY2UuaD4KQEAgLTI5MSw3ICsyOTEsNyBAQCBzdGF0
aWMgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbigpCiAKICAgICB3ZWJQYWdlQ29uZmlndXJhdGlv
bi51c2VyQ29udGVudENvbnRyb2xsZXIgPSBbX2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250
cm9sbGVyXS0+X3VzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmdldCgpOwogICAgIHdlYlBhZ2VD
b25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rUHJvdmlkZXIgPSBbX2NvbmZpZ3VyYXRpb24gX3Zpc2l0
ZWRMaW5rUHJvdmlkZXJdLT5fdmlzaXRlZExpbmtQcm92aWRlci5nZXQoKTsKLSAgICB3ZWJQYWdl
Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlID0gJltfY29uZmlndXJhdGlvbiBfd2Vic2l0
ZURhdGFTdG9yZV0tPl93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCk7CisgICAg
d2ViUGFnZUNvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSA9ICYoKFdLV2Vic2l0ZURhdGFT
dG9yZSAqKVtfY29uZmlndXJhdGlvbiBfd2Vic2l0ZURhdGFTdG9yZV0pLT5fd2Vic2l0ZURhdGFT
dG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpOwogICAgIHdlYlBhZ2VDb25maWd1cmF0aW9uLnNlc3Np
b25JRCA9IHdlYlBhZ2VDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgp
OwogICAgIHdlYlBhZ2VDb25maWd1cmF0aW9uLnRyZWF0c1NIQTFTaWduZWRDZXJ0aWZpY2F0ZXNB
c0luc2VjdXJlID0gW19jb25maWd1cmF0aW9uIF90cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVz
QXNJbnNlY3VyZV07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCA1MTc4NTQ1MDk2ZGU0
MjVkN2VmZDc1ZTAzMGE1MTNhZDFkZWQ5YWQ1Li42ZWVhNDlkZjc0MWJhMDYwOTAyYWNjZDI5N2E0
NTc2OTU4NDZmY2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCkBAIC04NCw3ICs4NCw3IEBA
IHByaXZhdGU6CiAgICAgTGF6eUluaXRpYWxpemVkPFJldGFpblB0cjxXS1ByZWZlcmVuY2VzPj4g
X3ByZWZlcmVuY2VzOwogICAgIExhenlJbml0aWFsaXplZDxSZXRhaW5QdHI8V0tVc2VyQ29udGVu
dENvbnRyb2xsZXI+PiBfdXNlckNvbnRlbnRDb250cm9sbGVyOwogICAgIExhenlJbml0aWFsaXpl
ZDxSZXRhaW5QdHI8X1dLVmlzaXRlZExpbmtQcm92aWRlcj4+IF92aXNpdGVkTGlua1Byb3ZpZGVy
OwotICAgIExhenlJbml0aWFsaXplZDxSZXRhaW5QdHI8X1dLV2Vic2l0ZURhdGFTdG9yZT4+IF93
ZWJzaXRlRGF0YVN0b3JlOworICAgIExhenlJbml0aWFsaXplZDxSZXRhaW5QdHI8V0tXZWJzaXRl
RGF0YVN0b3JlPj4gX3dlYnNpdGVEYXRhU3RvcmU7CiAgICAgV2ViS2l0OjpXZWFrT2JqQ1B0cjxX
S1dlYlZpZXc+IF9yZWxhdGVkV2ViVmlldzsKICAgICBXZWJLaXQ6OldlYWtPYmpDUHRyPFdLV2Vi
Vmlldz4gX2FsdGVybmF0ZVdlYlZpZXdGb3JOYXZpZ2F0aW9uR2VzdHVyZXM7CiAgICAgQk9PTCBf
dHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5zZWN1cmU7CkBAIC0yMDcsNyArMjA3LDcg
QEAgc3RhdGljIE5TU3RyaW5nICpkZWZhdWx0QXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KCkK
IAogLSAoX1dLV2Vic2l0ZURhdGFTdG9yZSAqKV93ZWJzaXRlRGF0YVN0b3JlCiB7Ci0gICAgcmV0
dXJuIF93ZWJzaXRlRGF0YVN0b3JlLmdldChbXSB7IHJldHVybiBbX1dLV2Vic2l0ZURhdGFTdG9y
ZSBkZWZhdWx0RGF0YVN0b3JlXTsgfSk7CisgICAgcmV0dXJuIChfV0tXZWJzaXRlRGF0YVN0b3Jl
ICopX3dlYnNpdGVEYXRhU3RvcmUuZ2V0KFtdIHsgcmV0dXJuIFtXS1dlYnNpdGVEYXRhU3RvcmUg
ZGVmYXVsdERhdGFTdG9yZV07IH0pOwogfQogCiAtICh2b2lkKV9zZXRXZWJzaXRlRGF0YVN0b3Jl
OihfV0tXZWJzaXRlRGF0YVN0b3JlICopd2Vic2l0ZURhdGFTdG9yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDM0NGU2YWQ1MTUxOTI1ZmY4YmM3NzBjMWQzZjg1MjM5NmJiNzc1NAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVN0b3JlLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktp
dC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgPFdlYktp
dC9XS1dlYnNpdGVEYXRhUmVjb3JkLmg+CisKK1dLX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKK1dL
X0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQorQGludGVyZmFjZSBXS1dl
YnNpdGVEYXRhU3RvcmUgOiBOU09iamVjdAorCisvLyBSZXR1cm5zIHRoZSBzaGFyZWQgZGVmYXVs
dCBkYXRhIHN0b3JlLgorKyAoV0tXZWJzaXRlRGF0YVN0b3JlICopZGVmYXVsdERhdGFTdG9yZTsK
KworLy8gUmV0dXJucyBhIG5ldyBub24tcGVyc2lzdGVudCBkYXRhIHN0b3JlLgorKyAoV0tXZWJz
aXRlRGF0YVN0b3JlICopbm9uUGVyc2lzdGVudERhdGFTdG9yZTsKKworLSAoaW5zdGFuY2V0eXBl
KWluaXQgV0tfVU5BVkFJTEFCTEU7CisKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIGdldHRlcj1pc05v
blBlcnNpc3RlbnQpIEJPT0wgbm9uUGVyc2lzdGVudDsKKworLSAodm9pZClmZXRjaERhdGFSZWNv
cmRzT2ZUeXBlczooV0tXZWJzaXRlRGF0YVR5cGVzKXdlYnNpdGVEYXRhVHlwZXMgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXkgKikpY29tcGxldGlvbkhhbmRsZXI7CistICh2b2lk
KXJlbW92ZURhdGFPZlR5cGVzOihXS1dlYnNpdGVEYXRhVHlwZXMpd2Vic2l0ZURhdGFUeXBlcyBm
b3JEYXRhUmVjb3JkczooTlNBcnJheSAqKWRhdGFSZWNvcmRzIGNvbXBsZXRpb25IYW5kbGVyOih2
b2lkICheKSgpKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClyZW1vdmVEYXRhT2ZUeXBlczoo
V0tXZWJzaXRlRGF0YVR5cGVzKXdlYnNpdGVEYXRhVHlwZXMgbW9kaWZpZWRTaW5jZTooTlNEYXRl
ICopZGF0ZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoKSljb21wbGV0aW9uSGFuZGxlcjsK
KworQGVuZAorCitXS19BU1NVTUVfTk9OTlVMTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmI1ZTQ5OGY1NWEwZmY0MmRjYWY2Y2M2ZjdkNzE2MGExNWFlMTZkYzQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCIKKworI2lm
IFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIldLTlNBcnJheS5oIgorI2ltcG9ydCAiV0tXZWJz
aXRlRGF0YVJlY29yZEludGVybmFsLmgiCisKK0BpbXBsZW1lbnRhdGlvbiBXS1dlYnNpdGVEYXRh
U3RvcmUKKworKyAoV0tXZWJzaXRlRGF0YVN0b3JlICopZGVmYXVsdERhdGFTdG9yZQoreworICAg
IHJldHVybiBXZWJLaXQ6OndyYXBwZXIoKkFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERh
dGFTdG9yZSgpLmdldCgpKTsKK30KKworKyAoV0tXZWJzaXRlRGF0YVN0b3JlICopbm9uUGVyc2lz
dGVudERhdGFTdG9yZQoreworICAgIHJldHVybiBbV2ViS2l0Ojp3cmFwcGVyKCpBUEk6OldlYnNp
dGVEYXRhU3RvcmU6OmNyZWF0ZU5vblBlcnNpc3RlbnREYXRhU3RvcmUoKS5yZWxlYXNlKCkubGVh
a1JlZigpKSBhdXRvcmVsZWFzZV07Cit9CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIF93ZWJz
aXRlRGF0YVN0b3JlLT5BUEk6OldlYnNpdGVEYXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3JlKCk7
CisKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKEJPT0wpaXNOb25QZXJzaXN0ZW50Cit7
CisgICAgcmV0dXJuIF93ZWJzaXRlRGF0YVN0b3JlLT5pc05vblBlcnNpc3RlbnQoKTsKK30KKwor
c3RhdGljIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgdG9TeXN0ZW1DbG9j
a1RpbWUoTlNEYXRlICpkYXRlKQoreworICAgIEFTU0VSVChkYXRlKTsKKyAgICB1c2luZyBuYW1l
c3BhY2Ugc3RkOjpjaHJvbm87CisKKyAgICByZXR1cm4gc3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50
KGR1cmF0aW9uX2Nhc3Q8c3lzdGVtX2Nsb2NrOjpkdXJhdGlvbj4oZHVyYXRpb248ZG91YmxlPihk
YXRlLnRpbWVJbnRlcnZhbFNpbmNlMTk3MCkpKTsKK30KKworLSAodm9pZClmZXRjaERhdGFSZWNv
cmRzT2ZUeXBlczooV0tXZWJzaXRlRGF0YVR5cGVzKXdlYnNpdGVEYXRhVHlwZXMgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXkgKikpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBh
dXRvIGNvbXBsZXRpb25IYW5kbGVyQ29weSA9IEJsb2NrX2NvcHkoY29tcGxldGlvbkhhbmRsZXIp
OworCisgICAgX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5mZXRjaERhdGEo
V2ViS2l0Ojp0b1dlYnNpdGVEYXRhVHlwZXMod2Vic2l0ZURhdGFUeXBlcyksIFtjb21wbGV0aW9u
SGFuZGxlckNvcHldKFZlY3RvcjxXZWJLaXQ6OldlYnNpdGVEYXRhUmVjb3JkPiB3ZWJzaXRlRGF0
YVJlY29yZHMpIHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+IGVsZW1lbnRz
OworICAgICAgICBlbGVtZW50cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHdlYnNpdGVEYXRhUmVj
b3Jkcy5zaXplKCkpOworCisgICAgICAgIGZvciAoYXV0byYgd2Vic2l0ZURhdGFSZWNvcmQgOiB3
ZWJzaXRlRGF0YVJlY29yZHMpCisgICAgICAgICAgICBlbGVtZW50cy51bmNoZWNrZWRBcHBlbmQo
QVBJOjpXZWJzaXRlRGF0YVJlY29yZDo6Y3JlYXRlKFdURjo6bW92ZSh3ZWJzaXRlRGF0YVJlY29y
ZCkpKTsKKworICAgICAgICBjb21wbGV0aW9uSGFuZGxlckNvcHkod3JhcHBlcigqQVBJOjpBcnJh
eTo6Y3JlYXRlKFdURjo6bW92ZShlbGVtZW50cykpKSk7CisKKyAgICAgICAgQmxvY2tfcmVsZWFz
ZShjb21wbGV0aW9uSGFuZGxlckNvcHkpOworICAgIH0pOworfQorCistICh2b2lkKXJlbW92ZURh
dGFPZlR5cGVzOihXS1dlYnNpdGVEYXRhVHlwZXMpd2Vic2l0ZURhdGFUeXBlcyBtb2RpZmllZFNp
bmNlOihOU0RhdGUgKilkYXRlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSgpKWNvbXBsZXRp
b25IYW5kbGVyCit7CisgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlckNvcHkgPSBCbG9ja19jb3B5
KGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBfd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFT
dG9yZSgpLnJlbW92ZURhdGEoV2ViS2l0Ojp0b1dlYnNpdGVEYXRhVHlwZXMod2Vic2l0ZURhdGFU
eXBlcyksIHRvU3lzdGVtQ2xvY2tUaW1lKGRhdGUgPyBkYXRlIDogW05TRGF0ZSBkaXN0YW50UGFz
dF0pLCBbY29tcGxldGlvbkhhbmRsZXJDb3B5XSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
Q29weSgpOworICAgICAgICBCbG9ja19yZWxlYXNlKGNvbXBsZXRpb25IYW5kbGVyQ29weSk7Cisg
ICAgfSk7Cit9CisKK3N0YXRpYyBWZWN0b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9X
ZWJzaXRlRGF0YVJlY29yZHMoTlNBcnJheSAqZGF0YVJlY29yZHMpCit7CisgICAgVmVjdG9yPFdl
YktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHJlc3VsdDsKKworICAgIGZvciAoV0tXZWJzaXRlRGF0
YVJlY29yZCAqZGF0YVJlY29yZCBpbiBkYXRhUmVjb3JkcykKKyAgICAgICAgcmVzdWx0LmFwcGVu
ZChkYXRhUmVjb3JkLT5fd2Vic2l0ZURhdGFSZWNvcmQtPndlYnNpdGVEYXRhUmVjb3JkKCkpOwor
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLSAodm9pZClyZW1vdmVEYXRhT2ZUeXBlczooV0tX
ZWJzaXRlRGF0YVR5cGVzKXdlYnNpdGVEYXRhVHlwZXMgZm9yRGF0YVJlY29yZHM6KE5TQXJyYXkg
KilkYXRhUmVjb3JkcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoKSljb21wbGV0aW9uSGFu
ZGxlcgoreworICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXJDb3B5ID0gQmxvY2tfY29weShjb21w
bGV0aW9uSGFuZGxlcik7CisKKyAgICBfd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9y
ZSgpLnJlbW92ZURhdGEoV2ViS2l0Ojp0b1dlYnNpdGVEYXRhVHlwZXMod2Vic2l0ZURhdGFUeXBl
cyksIHRvV2Vic2l0ZURhdGFSZWNvcmRzKGRhdGFSZWNvcmRzKSwgW2NvbXBsZXRpb25IYW5kbGVy
Q29weV0geworICAgICAgICBjb21wbGV0aW9uSGFuZGxlckNvcHkoKTsKKyAgICAgICAgQmxvY2tf
cmVsZWFzZShjb21wbGV0aW9uSGFuZGxlckNvcHkpOworICAgIH0pOworfQorCisjcHJhZ21hIG1h
cmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24KKworLSAoQVBJOjpPYmplY3QmKV9h
cGlPYmplY3QKK3sKKyAgICByZXR1cm4gKl93ZWJzaXRlRGF0YVN0b3JlOworfQorCitAZW5kCisK
KyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc4NmIxMmY1MmI5ZGE2NmQ1NzY4NDY2YTBkZDc0YTMwNjYyNmEwNTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZUludGVybmFsLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgIldLV2Vic2l0ZURhdGFTdG9yZS5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9y
dCAiQVBJV2Vic2l0ZURhdGFTdG9yZS5oIgorI2ltcG9ydCAiV0tPYmplY3QuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2lubGluZSBXS1dlYnNpdGVEYXRhU3RvcmUgKndyYXBwZXIoQVBJOjpX
ZWJzaXRlRGF0YVN0b3JlJiB3ZWJzaXRlRGF0YVN0b3JlKQoreworICAgIEFTU0VSVChbd2Vic2l0
ZURhdGFTdG9yZS53cmFwcGVyKCkgaXNLaW5kT2ZDbGFzczpbV0tXZWJzaXRlRGF0YVN0b3JlIGNs
YXNzXV0pOworICAgIHJldHVybiAoV0tXZWJzaXRlRGF0YVN0b3JlICopd2Vic2l0ZURhdGFTdG9y
ZS53cmFwcGVyKCk7Cit9CisKK30KKworQGludGVyZmFjZSBXS1dlYnNpdGVEYXRhU3RvcmUgKCkg
PFdLT2JqZWN0PiB7CitAcGFja2FnZQorICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OldlYnNp
dGVEYXRhU3RvcmU+IF93ZWJzaXRlRGF0YVN0b3JlOworfQorQGVuZAorCisjZW5kaWYgLy8gV0tf
QVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggYTMxNDk5NDRkOWIzN2JhMTA1NTg2YmJh
Mjk2NTRmZjEyOGEzNzAyMi4uZDJkOTRhZTYyZmQ5ZjE4ZjQ2OGY0ODhhYWM0OWQwN2Q5ZjYzYjJk
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI3LDIzICsyNywxNCBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAot
I2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVEYXRhUmVjb3JkLmg+CisjaW1wb3J0IDxXZWJLaXQv
V0tXZWJzaXRlRGF0YVN0b3JlLmg+CiAKIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQot
QGludGVyZmFjZSBfV0tXZWJzaXRlRGF0YVN0b3JlIDogTlNPYmplY3QKK0BpbnRlcmZhY2UgX1dL
V2Vic2l0ZURhdGFTdG9yZSA6IFdLV2Vic2l0ZURhdGFTdG9yZQogCi0vLyBSZXR1cm5zIHRoZSBz
aGFyZWQgZGVmYXVsdCBkYXRhIHN0b3JlLgotKyAoaW5zdGFuY2V0eXBlKWRlZmF1bHREYXRhU3Rv
cmU7Ci0KLS8vIFJldHVybnMgYSBuZXcgbm9uLXBlcnNpc3RlbnQgZGF0YSBzdG9yZS4KLSsgKGlu
c3RhbmNldHlwZSlub25QZXJzaXN0ZW50RGF0YVN0b3JlOwotCi1AcHJvcGVydHkgKHJlYWRvbmx5
LCBnZXR0ZXI9aXNOb25QZXJzaXN0ZW50KSBCT09MIG5vblBlcnNpc3RlbnQ7Ci0KLS0gKHZvaWQp
ZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6KFdLV2Vic2l0ZURhdGFUeXBlcyl3ZWJzaXRlRGF0YVR5
cGVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5ICopKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKHZvaWQpcmVtb3Zl
RGF0YU9mVHlwZXM6KFdLV2Vic2l0ZURhdGFUeXBlcyl3ZWJzaXRlRGF0YVR5cGVzIGZvckRhdGFS
ZWNvcmRzOihOU0FycmF5ICopZGF0YVJlY29yZHMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEp
OwotLSAodm9pZClyZW1vdmVEYXRhT2ZUeXBlczooV0tXZWJzaXRlRGF0YVR5cGVzKXdlYnNpdGVE
YXRhVHlwZXMgbW9kaWZpZWRTaW5jZTooTlNEYXRlICopZGF0ZSBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoKSljb21wbGV0aW9uSGFuZGxlciBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSk7CisrIChfV0tXZWJzaXRlRGF0YVN0b3JlICopZGVmYXVsdERhdGFTdG9yZTsKKysg
KF9XS1dlYnNpdGVEYXRhU3RvcmUgKilub25QZXJzaXN0ZW50RGF0YVN0b3JlOwogCiBAZW5kCiAK
LSNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXgg
MGE1ODEzMzgxNDJjMjczZTU1ODQ1ZWE4MTMwZGQ4M2RkMDRlODQ3MC4uZjM5OTQwNjcxYTZlOWMz
MTcxMGEyZWQ2OGMyYzRjNjYyZTg1NjNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMTAwICsyMywyMyBA
QAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbXBvcnQgImNv
bmZpZy5oIgotI2ltcG9ydCAiX1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgiCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiX1dLV2Vic2l0ZURhdGFTdG9yZS5oIgogCiAjaWYgV0tf
QVBJX0VOQUJMRUQKIAotI2ltcG9ydCAiQVBJQXJyYXkuaCIKLSNpbXBvcnQgIldLTlNBcnJheS5o
IgotI2ltcG9ydCAiV0tXZWJzaXRlRGF0YVJlY29yZEludGVybmFsLmgiCi0KIEBpbXBsZW1lbnRh
dGlvbiBfV0tXZWJzaXRlRGF0YVN0b3JlCiAKLSsgKGluc3RhbmNldHlwZSlkZWZhdWx0RGF0YVN0
b3JlCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6d3JhcHBlcigqQVBJOjpXZWJzaXRlRGF0YVN0b3Jl
OjpkZWZhdWx0RGF0YVN0b3JlKCkuZ2V0KCkpOwotfQotCi0rIChpbnN0YW5jZXR5cGUpbm9uUGVy
c2lzdGVudERhdGFTdG9yZQotewotICAgIHJldHVybiBbV2ViS2l0Ojp3cmFwcGVyKCpBUEk6Oldl
YnNpdGVEYXRhU3RvcmU6OmNyZWF0ZU5vblBlcnNpc3RlbnREYXRhU3RvcmUoKS5yZWxlYXNlKCku
bGVha1JlZigpKSBhdXRvcmVsZWFzZV07Ci19Ci0KLS0gKHZvaWQpZGVhbGxvYwotewotICAgIF93
ZWJzaXRlRGF0YVN0b3JlLT5BUEk6OldlYnNpdGVEYXRhU3RvcmU6On5XZWJzaXRlRGF0YVN0b3Jl
KCk7Ci0KLSAgICBbc3VwZXIgZGVhbGxvY107Ci19Ci0KLS0gKEJPT0wpaXNOb25QZXJzaXN0ZW50
CisrIChfV0tXZWJzaXRlRGF0YVN0b3JlICopZGVmYXVsdERhdGFTdG9yZQogewotICAgIHJldHVy
biBfd2Vic2l0ZURhdGFTdG9yZS0+aXNOb25QZXJzaXN0ZW50KCk7CisgICAgcmV0dXJuIChfV0tX
ZWJzaXRlRGF0YVN0b3JlICopW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXTsK
IH0KIAotc3RhdGljIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgdG9TeXN0
ZW1DbG9ja1RpbWUoTlNEYXRlICpkYXRlKQotewotICAgIEFTU0VSVChkYXRlKTsKLSAgICB1c2lu
ZyBuYW1lc3BhY2Ugc3RkOjpjaHJvbm87Ci0KLSAgICByZXR1cm4gc3lzdGVtX2Nsb2NrOjp0aW1l
X3BvaW50KGR1cmF0aW9uX2Nhc3Q8c3lzdGVtX2Nsb2NrOjpkdXJhdGlvbj4oZHVyYXRpb248ZG91
YmxlPihkYXRlLnRpbWVJbnRlcnZhbFNpbmNlMTk3MCkpKTsKLX0KLQotLSAodm9pZClmZXRjaERh
dGFSZWNvcmRzT2ZUeXBlczooV0tXZWJzaXRlRGF0YVR5cGVzKXdlYnNpdGVEYXRhVHlwZXMgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXkgKikpY29tcGxldGlvbkhhbmRsZXIKLXsK
LSAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyQ29weSA9IEJsb2NrX2NvcHkoY29tcGxldGlvbkhh
bmRsZXIpOwotCi0gICAgX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5mZXRj
aERhdGEoV2ViS2l0Ojp0b1dlYnNpdGVEYXRhVHlwZXMod2Vic2l0ZURhdGFUeXBlcyksIFtjb21w
bGV0aW9uSGFuZGxlckNvcHldKFZlY3RvcjxXZWJLaXQ6OldlYnNpdGVEYXRhUmVjb3JkPiB3ZWJz
aXRlRGF0YVJlY29yZHMpIHsKLSAgICAgICAgVmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+IGVs
ZW1lbnRzOwotICAgICAgICBlbGVtZW50cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHdlYnNpdGVE
YXRhUmVjb3Jkcy5zaXplKCkpOwotCi0gICAgICAgIGZvciAoYXV0byYgd2Vic2l0ZURhdGFSZWNv
cmQgOiB3ZWJzaXRlRGF0YVJlY29yZHMpCi0gICAgICAgICAgICBlbGVtZW50cy51bmNoZWNrZWRB
cHBlbmQoQVBJOjpXZWJzaXRlRGF0YVJlY29yZDo6Y3JlYXRlKFdURjo6bW92ZSh3ZWJzaXRlRGF0
YVJlY29yZCkpKTsKLQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlckNvcHkod3JhcHBlcigqQVBJ
OjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShlbGVtZW50cykpKSk7Ci0KLSAgICAgICAgQmxvY2tf
cmVsZWFzZShjb21wbGV0aW9uSGFuZGxlckNvcHkpOwotICAgIH0pOwotfQotCi0tICh2b2lkKXJl
bW92ZURhdGFPZlR5cGVzOihXS1dlYnNpdGVEYXRhVHlwZXMpd2Vic2l0ZURhdGFUeXBlcyBtb2Rp
ZmllZFNpbmNlOihOU0RhdGUgKilkYXRlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSgpKWNv
bXBsZXRpb25IYW5kbGVyCi17Ci0gICAgYXV0byBjb21wbGV0aW9uSGFuZGxlckNvcHkgPSBCbG9j
a19jb3B5KGNvbXBsZXRpb25IYW5kbGVyKTsKLSAgICBfd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0
ZURhdGFTdG9yZSgpLnJlbW92ZURhdGEoV2ViS2l0Ojp0b1dlYnNpdGVEYXRhVHlwZXMod2Vic2l0
ZURhdGFUeXBlcyksIHRvU3lzdGVtQ2xvY2tUaW1lKGRhdGUgPyBkYXRlIDogW05TRGF0ZSBkaXN0
YW50UGFzdF0pLCBbY29tcGxldGlvbkhhbmRsZXJDb3B5XSB7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyQ29weSgpOwotICAgICAgICBCbG9ja19yZWxlYXNlKGNvbXBsZXRpb25IYW5kbGVyQ29w
eSk7Ci0gICAgfSk7Ci19Ci0KLXN0YXRpYyBWZWN0b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29y
ZD4gdG9XZWJzaXRlRGF0YVJlY29yZHMoTlNBcnJheSAqZGF0YVJlY29yZHMpCi17Ci0gICAgVmVj
dG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHJlc3VsdDsKLQotICAgIGZvciAoV0tXZWJz
aXRlRGF0YVJlY29yZCAqZGF0YVJlY29yZCBpbiBkYXRhUmVjb3JkcykKLSAgICAgICAgcmVzdWx0
LmFwcGVuZChkYXRhUmVjb3JkLT5fd2Vic2l0ZURhdGFSZWNvcmQtPndlYnNpdGVEYXRhUmVjb3Jk
KCkpOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotLSAodm9pZClyZW1vdmVEYXRhT2ZUeXBl
czooV0tXZWJzaXRlRGF0YVR5cGVzKXdlYnNpdGVEYXRhVHlwZXMgZm9yRGF0YVJlY29yZHM6KE5T
QXJyYXkgKilkYXRhUmVjb3JkcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoKSljb21wbGV0
aW9uSGFuZGxlcgotewotICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXJDb3B5ID0gQmxvY2tfY29w
eShjb21wbGV0aW9uSGFuZGxlcik7Ci0KLSAgICBfd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURh
dGFTdG9yZSgpLnJlbW92ZURhdGEoV2ViS2l0Ojp0b1dlYnNpdGVEYXRhVHlwZXMod2Vic2l0ZURh
dGFUeXBlcyksIHRvV2Vic2l0ZURhdGFSZWNvcmRzKGRhdGFSZWNvcmRzKSwgW2NvbXBsZXRpb25I
YW5kbGVyQ29weV0gewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlckNvcHkoKTsKLSAgICAgICAg
QmxvY2tfcmVsZWFzZShjb21wbGV0aW9uSGFuZGxlckNvcHkpOwotICAgIH0pOwotfQotCi0jcHJh
Z21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24KLQotLSAoQVBJOjpPYmpl
Y3QmKV9hcGlPYmplY3QKKysgKF9XS1dlYnNpdGVEYXRhU3RvcmUgKilub25QZXJzaXN0ZW50RGF0
YVN0b3JlCiB7Ci0gICAgcmV0dXJuICpfd2Vic2l0ZURhdGFTdG9yZTsKKyAgICByZXR1cm4gKF9X
S1dlYnNpdGVEYXRhU3RvcmUgKilbV0tXZWJzaXRlRGF0YVN0b3JlIG5vblBlcnNpc3RlbnREYXRh
U3RvcmVdOwogfQogCiBAZW5kCiAKLSNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAorI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggY2IwMTEyODRhMzgwM2Y5YmQyODcxZWMwZjFmNDAyODgxZjI2NmUzMS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oCisrKyAvZGV2L251bGwK
QEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgIl9XS1dlYnNpdGVEYXRhU3Rv
cmUuaCIKLQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLSNpbXBvcnQgIkFQSVdlYnNpdGVEYXRhU3Rv
cmUuaCIKLSNpbXBvcnQgIldLT2JqZWN0LmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1pbmxp
bmUgX1dLV2Vic2l0ZURhdGFTdG9yZSAqd3JhcHBlcihBUEk6OldlYnNpdGVEYXRhU3RvcmUmIHdl
YnNpdGVEYXRhU3RvcmUpCi17Ci0gICAgQVNTRVJUKFt3ZWJzaXRlRGF0YVN0b3JlLndyYXBwZXIo
KSBpc0tpbmRPZkNsYXNzOltfV0tXZWJzaXRlRGF0YVN0b3JlIGNsYXNzXV0pOwotICAgIHJldHVy
biAoX1dLV2Vic2l0ZURhdGFTdG9yZSAqKXdlYnNpdGVEYXRhU3RvcmUud3JhcHBlcigpOwotfQot
Ci19Ci0KLUBpbnRlcmZhY2UgX1dLV2Vic2l0ZURhdGFTdG9yZSAoKSA8V0tPYmplY3Q+IHsKLUBw
YWNrYWdlCi0gICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6V2Vic2l0ZURhdGFTdG9yZT4gX3dl
YnNpdGVEYXRhU3RvcmU7Ci19Ci1AZW5kCi0KLSNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDcxMzUxMzMzN2UwNGQwNWNkOTRjZDNkNGM3NWQ3MWEwNDMyYWRlZjUuLmE1ZGFkYjFlYzczMDcz
MzA1YjA2MGUyZjg0ZWZmNTJkNzEwYTNjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUwMyw2ICs1MDMsOCBAQAogCQkxQUZB
NEI4RjFBNjVBOUUyMDA2QzRBQjQgLyogV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGQTRCOEQxQTY1
QTlFMjAwNkM0QUI0IC8qIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmNwcCAqLzsgfTsKIAkJ
MUFGQTRCOTAxQTY1QTlFMjAwNkM0QUI0IC8qIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZBNEI4RTFB
NjVBOUUyMDA2QzRBQjQgLyogV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuaCAqLzsgfTsKIAkJ
MUFGQjRDNkUxQURGMEM3ODAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRhUmVjb3JkLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZCNEM2QzFBREYwQzc4
MDBCMzMzMzkgLyogX1dLV2Vic2l0ZURhdGFSZWNvcmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxQUZCNEM3MTFBREYxNTVEMDBCMzMzMzkgLyog
X1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBRkI0QzZGMUFERjE1NUQwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVN0
b3JlLm1tICovOyB9OworCQkxQUZCNEM3MjFBREYxNTVEMDBCMzMzMzkgLyogX1dLV2Vic2l0ZURh
dGFTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUFGQjRDNzAxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUZERDMxNTE4OTFC
NTQwMDAxNTM5NzAgLyogQVBJUG9saWN5Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZERDMxNDE4OTFCNTQwMDAxNTM5NzAgLyogQVBJUG9s
aWN5Q2xpZW50LmggKi87IH07CiAJCTFBRkREMzE3MTg5MUM5NDcwMDE1Mzk3MCAvKiBXS1ByZWZl
cmVuY2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QUZERDMxNjE4OTFDOTQ3MDAxNTM5NzAgLyogV0tQcmVmZXJlbmNlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJMUFGREQzMTkxODkxQ0ExMjAwMTUz
OTcwIC8qIFdLUHJlZmVyZW5jZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQUZERDMxODE4OTFDQTEyMDAxNTM5NzAgLyogV0tQcmVmZXJlbmNlcy5t
bSAqLzsgfTsKQEAgLTEwNzcsOSArMTA3OSw5IEBACiAJCTc1NTQyMkNCMTgwNjUwMDIwMDQ2RjZB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJDNjE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXIuY3BwICovOyB9OwogCQk3NTU0MjJDQzE4MDc3M0NFMDA0NkY2QTggLyogV2Vi
T3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1NTQyMkM3MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
ci5oICovOyB9OwogCQk3NTlDQ0Q1QTE4MDhGNjE2MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU1NDIyQkYxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHku
aCAqLzsgfTsKLQkJNzVBOEQyQzgxODdDQ0ZBQjAwQzM5QzlFIC8qIF9XS1dlYnNpdGVEYXRhU3Rv
cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThE
MkM0MTg3Q0NGOUYwMEMzOUM5RSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNzVBOEQyQzkxODdDQ0ZBRjAw
QzM5QzlFIC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4RDJDNTE4N0NDRjlGMDBDMzlDOUUgLyogX1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbSAqLzsgfTsKLQkJNzVBOEQyRDYxODdEMUMwRTAwQzM5QzlFIC8qIF9X
S1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyRDQxODdEMUMwMTAwQzM5QzlFIC8qIF9XS1dlYnNpdGVE
YXRhU3RvcmVJbnRlcm5hbC5oICovOyB9OworCQk3NUE4RDJDODE4N0NDRkFCMDBDMzlDOUUgLyog
V0tXZWJzaXRlRGF0YVN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NUE4RDJDNDE4N0NDRjlGMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3Jl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OworCQk3NUE4
RDJDOTE4N0NDRkFGMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyQzUxODdDQ0Y5RjAwQzM5
QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZS5tbSAqLzsgfTsKKwkJNzVBOEQyRDYxODdEMUMwRTAw
QzM5QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4RDJENDE4N0QxQzAxMDBDMzlDOUUgLyog
V0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCAqLzsgfTsKIAkJNzVBOEQyRDcxODdEMzAzQTAw
QzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzVBOEQyRDExODdEMTdCRjAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc1QThE
MkQ4MTg3RDMwNDAwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyRDAxODdEMTdCRjAwQzM5QzlFIC8q
IFdLU2Vzc2lvblJlZi5jcHAgKi87IH07CiAJCTc1QThEMkUxMTg3REVDMUEwMEMzOUM5RSAvKiBB
UElTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3NUE4RDJERTE4N0RFODc0MDBDMzlDOUUgLyogQVBJU2Vzc2lvbi5oICovOyB9OwpAQCAtMjY1
Myw2ICsyNjU1LDggQEAKIAkJMUFGQTRCOEQxQTY1QTlFMjAwNkM0QUI0IC8qIFdlYlByb2Nlc3NM
aWZldGltZU9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUFGQTRCOEUxQTY1QTlFMjAwNkM0QUI0IC8qIFdlYlByb2Nlc3NMaWZldGltZU9ic2Vy
dmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlByb2Nlc3NMaWZldGlt
ZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBRkI0QzZDMUFERjBD
NzgwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVJlY29yZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBfV0tXZWJzaXRlRGF0YVJlY29yZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQUZCNEM2RjFBREYxNTVEMDBCMzMzMzkgLyogX1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1dlYnNpdGVE
YXRhU3RvcmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBRkI0QzcwMUFERjE1
NUQwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IF9XS1dlYnNpdGVEYXRhU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUFGREQzMTQxODkxQjU0MDAwMTUzOTcwIC8qIEFQSVBvbGljeUNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElQb2xpY3lDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFGREQzMTYxODkxQzk0NzAwMTUzOTcwIC8qIFdLUHJl
ZmVyZW5jZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmVmZXJlbmNl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUZERDMxODE4OTFDQTEyMDAxNTM5
NzAgLyogV0tQcmVmZXJlbmNlcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdLUHJlZmVyZW5jZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
Mjk0LDExICszMjk4LDExIEBACiAJCTc1NTQyMkM2MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmln
aW5EYXRhTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBX
ZWJPcmlnaW5EYXRhTWFuYWdlci5jcHA7IHBhdGggPSBPcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFN
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU1NDIyQzcxODA2NEZG
QzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmg7IHBhdGggPSBPcmlnaW5EYXRhL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NTQy
MkM4MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbjsg
cGF0aCA9IE9yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTc1QThEMkM0MTg3Q0NGOUYwMEMzOUM5RSAvKiBfV0tX
ZWJzaXRlRGF0YVN0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1dl
YnNpdGVEYXRhU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzVBOEQyQzUx
ODdDQ0Y5RjAwQzM5QzlFIC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tXZWJzaXRlRGF0YVN0b3JlLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJDNDE4N0NDRjlGMDBDMzlDOUUgLyogV0tXZWJz
aXRlRGF0YVN0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2Vic2l0
ZURhdGFTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJDNTE4N0ND
RjlGMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3JlLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJzaXRlRGF0YVN0b3JlLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3NUE4RDJEMDE4N0QxN0JGMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVm
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLU2Vzc2lvblJlZi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1QThEMkQxMTg3RDE3QkYwMEMzOUM5
RSAvKiBXS1Nlc3Npb25SZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tT
ZXNzaW9uUmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTc1QThEMkQ0MTg3RDFD
MDEwMEMzOUM5RSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1QThEMkQ0MTg3RDFDMDEwMEMzOUM5RSAvKiBXS1dl
YnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3NUE4RDJERDE4N0RFODc0MDBDMzlDOUUgLyogQVBJU2Vzc2lvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBUElTZXNzaW9uLmNwcDsgcGF0aCA9IFVJUHJv
Y2Vzcy9BUEkvQVBJU2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJ
NzVBOEQyREUxODdERTg3NDAwQzM5QzlFIC8qIEFQSVNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQVBJU2Vzc2lvbi5oOyBwYXRoID0gVUlQcm9jZXNzL0FQSS9BUElT
ZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNzVFNzQ5RTUxODBEQkI5
ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ0NDUsNiAr
NDQ0OSw4IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFBRkI0
QzZDMUFERjBDNzgwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVJlY29yZC5oICovLAorCQkJCTFB
RkI0QzcwMUFERjE1NUQwMEIzMzMzOSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlLmggKi8sCisJCQkJ
MUFGQjRDNkYxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUubW0gKi8sCiAJ
CQkJQkM1OTU0ODgxNUM3ODY4NTAwRkQxRTNFIC8qIFdlYktpdDIuaCAqLywKIAkJCQlCQ0JBQUM2
QzE0NEU2MTkxMDA1M0Y4MkYgLyogV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmggKi8sCiAJ
CQkJQkNCQUFDNkQxNDRFNjE5MjAwNTNGODJGIC8qIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ci5tbSAqLywKQEAgLTUzODcsOSArNTM5Myw2IEBACiAJCQkJMUE4MUIzN0YxOEJENjZBRDAwMDdG
REFDIC8qIF9XS1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaCAqLywKIAkJCQkxQTgxQjM3RTE4QkQ2NkFE
MDAwN0ZEQUMgLyogX1dLVmlzaXRlZExpbmtQcm92aWRlci5tbSAqLywKIAkJCQkxQTgxQjM4NDE4
QkQ2NzNBMDAwN0ZEQUMgLyogX1dLVmlzaXRlZExpbmtQcm92aWRlckludGVybmFsLmggKi8sCi0J
CQkJNzVBOEQyQzQxODdDQ0Y5RjAwQzM5QzlFIC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUuaCAqLywK
LQkJCQk3NUE4RDJDNTE4N0NDRjlGMDBDMzlDOUUgLyogX1dLV2Vic2l0ZURhdGFTdG9yZS5tbSAq
LywKLQkJCQk3NUE4RDJENDE4N0QxQzAxMDBDMzlDOUUgLyogX1dLV2Vic2l0ZURhdGFTdG9yZUlu
dGVybmFsLmggKi8sCiAJCQkJN0NFRkE5NjAxQUMwOTk5MzAwQjkxMEZEIC8qIEFQSVVzZXJDb250
ZW50RXh0ZW5zaW9uU3RvcmVDb2NvYS5tbSAqLywKIAkJCQkxQTM2MzVBQjFBMzE0NUU1MDBFRDYx
OTcgLyogQVBJV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tICovLAogCQkJCTFBRkRFNjQzMTk1MTBC
NTUwMEM0OEZGQSAvKiBMZWdhY3lCdW5kbGVGb3JDbGFzcy5tbSAqLywKQEAgLTU0NDYsNiArNTQ0
OSw5IEBACiAJCQkJMUE0ODMyQ0ExQTlCQzQ2NTAwOEI0REZFIC8qIFdLV2Vic2l0ZURhdGFSZWNv
cmQuaCAqLywKIAkJCQkxQTQ4MzJDOTFBOUJDNDY1MDA4QjRERkUgLyogV0tXZWJzaXRlRGF0YVJl
Y29yZC5tbSAqLywKIAkJCQkxQTQ4MzJDRDFBOUJDNDg0MDA4QjRERkUgLyogV0tXZWJzaXRlRGF0
YVJlY29yZEludGVybmFsLmggKi8sCisJCQkJNzVBOEQyQzQxODdDQ0Y5RjAwQzM5QzlFIC8qIFdL
V2Vic2l0ZURhdGFTdG9yZS5oICovLAorCQkJCTc1QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAvKiBX
S1dlYnNpdGVEYXRhU3RvcmUubW0gKi8sCisJCQkJNzVBOEQyRDQxODdEMUMwMTAwQzM5QzlFIC8q
IFdLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmggKi8sCiAJCQkJMUEzQ0MxNjUxODkwNkFDRjAw
MUU2RUQ4IC8qIFdLV2ViVmlldy5oICovLAogCQkJCTFBM0NDMTY0MTg5MDZBQ0YwMDFFNkVEOCAv
KiBXS1dlYlZpZXcubW0gKi8sCiAJCQkJMUFERjU5MTkxODkwNTI4RTAwNDNDMTQ1IC8qIFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24uaCAqLywKQEAgLTc2MjUsOCArNzYzMSw4IEBACiAJCQkJMUE4MUIz
ODExOEJENjZBRDAwMDdGREFDIC8qIF9XS1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBODFCMzg1MThCRDY3M0EwMDA3RkRBQyAvKiBfV0tWaXNpdGVkTGlua1Byb3Zp
ZGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRkI0QzZFMUFERjBDNzgwMEIzMzMz
OSAvKiBfV0tXZWJzaXRlRGF0YVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzVBOEQyQzgx
ODdDQ0ZBQjAwQzM5QzlFIC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTc1QThEMkQ2MTg3RDFDMEUwMEMzOUM5RSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1QThEMkM4MTg3Q0NGQUIwMEMzOUM5RSAvKiBXS1dl
YnNpdGVEYXRhU3RvcmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1QThEMkQ2MTg3RDFDMEUwMEMz
OUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTExNURDNzIxOTFEODJEQTAwREE4MDcyIC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTdENzkyRDgxNzY3Q0NBMzAwODgxQ0JFIC8qIEFjdGl2aXR5QXNz
ZXJ0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzY0Njk3MDExREJFNjAzMDA2NDU1QjAgLyog
QVBJQXJyYXkuaCBpbiBIZWFkZXJzICovLApAQCAtNzkxMCw2ICs3OTE2LDcgQEAKIAkJCQkxQUEz
RDc1QzE2NTFCNDRGMDA4NzEzRDAgLyogUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkRERTBBRkExODI5OENDOTAwRjk3RUFBIC8qIFJlbW90ZUxheWVyVHJlZVByb3Bl
cnR5QXBwbGllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGMjY0QTAxQTFGRjlDQzAwMUZFNzU5
IC8qIFJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMUFGQjRDNzIxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjFBQzZDMTY1MTc1OUUwMEMxN0Q3RiAvKiBSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFCNzg0NzExNjNGMjQ2
OTAwMDdCNjkyIC8qIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUMxMzM4MDE4NTkwQUU0MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBI
ZWFkZXJzICovLApAQCAtOTQwNSw3ICs5NDEyLDcgQEAKIAkJCQk3QzI0MTMwMjFBQUNGQTc1MDBB
NThDMTUgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDODlEMkI5MUE2QjBGMkMwMDNBNUZERSAvKiBfV0tVc2VyQ29udGVudEZpbHRlci5tbSBp
biBTb3VyY2VzICovLAogCQkJCTFBODFCMzgwMThCRDY2QUQwMDA3RkRBQyAvKiBfV0tWaXNpdGVk
TGlua1Byb3ZpZGVyLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNzVBOEQyQzkxODdDQ0ZBRjAwQzM5
QzlFIC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUubW0gaW4gU291cmNlcyAqLywKKwkJCQk3NUE4RDJD
OTE4N0NDRkFGMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTExNURDNzExOTFEODJENzAwREE4MDcyIC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRl
ci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE3RDc5MkQ2MTc2N0NCNkUwMDg4MUNCRSAvKiBBY3Rp
dml0eUFzc2VydGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzY0Njk2RjExREJFNjAzMDA2
NDU1QjAgLyogQVBJQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05OTA0LDYgKzk5MTEsNyBA
QAogCQkJCTgzNzJEQjI4MUE2NzU2MjgwMEM2OTdDNSAvKiBXZWJQYWdlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3QjYyMDcxMjlBMEE2NzAwRDE3NEE0
IC8qIFdlYlBhZ2VHcm91cC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzdCNjI1MzEyQTQzQzk2
MDBEMTc0QTQgLyogV2ViUGFnZUdyb3VwRGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUZC
NEM3MTFBREYxNTVEMDBCMzMzMzkgLyogX1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDN0I2MjE2MTJBNDIxOUEwMEQxNzRBNCAvKiBXZWJQYWdlR3JvdXBQcm94eS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyOUQ1NURGMTE2MUJGOUYxMDAzMUEyRTMgLyogV2ViUGFn
ZUdyb3VwUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5RUEz
MTExQTk2RDlFQjAwMkQyODA3IC8qIFdlYlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgaW4g
U291cmNlcyAqLywK
</data>
<flag name="review"
          id="275675"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>