<?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>211138</bug_id>
          
          <creation_ts>2020-04-28 11:59:51 -0700</creation_ts>
          <short_desc>Make PolicyChecker an inner class of FrameLoader</short_desc>
          <delta_ts>2020-04-29 06:09:30 -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>Safari Technology Preview</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rbuis</reporter>
          <assigned_to name="Rob Buis">rbuis</assigned_to>
          <cc>achristensen</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1646592</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-28 11:59:51 -0700</bug_when>
    <thetext>PolicyChecker HistoryController an inner class of FrameLoader, this allows us to move some methods
only used by PolicyChecker out of the FrameLoader public API. Because it is not possible to forward declare
an enum class in an inner class, move ShouldContinue out of the PolicyChecker class and rename it
to ShouldContinuePolicyCheck.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646596</commentid>
    <comment_count>1</comment_count>
      <attachid>397865</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-28 12:03:19 -0700</bug_when>
    <thetext>Created attachment 397865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646665</commentid>
    <comment_count>2</comment_count>
      <attachid>397882</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-28 13:58:35 -0700</bug_when>
    <thetext>Created attachment 397882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646667</commentid>
    <comment_count>3</comment_count>
      <attachid>397883</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-28 14:00:22 -0700</bug_when>
    <thetext>Created attachment 397883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646855</commentid>
    <comment_count>4</comment_count>
      <attachid>397883</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-04-28 23:00:40 -0700</bug_when>
    <thetext>Comment on attachment 397883
Patch

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

&gt; Source/WebCore/loader/FrameLoader.h:112
&gt;      PolicyChecker&amp; policyChecker() const { return *m_policyChecker; }

You could make m_policyChecker a UniqueRef

&gt; Source/WebCore/loader/FrameLoaderTypes.h:115
&gt; +enum class ShouldContinuePolicyCheck : uint8_t {

bool

&gt; Source/WebCore/loader/PolicyChecker.h:114
&gt; +template&lt;&gt; struct EnumTraits&lt;WebCore::ShouldContinuePolicyCheck&gt; {

This is not needed if ShouldContinuePolicyCheck has a bool underlying type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646907</commentid>
    <comment_count>5</comment_count>
      <attachid>397940</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-29 01:22:53 -0700</bug_when>
    <thetext>Created attachment 397940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646942</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-29 03:23:06 -0700</bug_when>
    <thetext>Committed r260890: &lt;https://trac.webkit.org/changeset/260890&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397940.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646943</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-29 03:24:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/62587616&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646965</commentid>
    <comment_count>8</comment_count>
      <attachid>397883</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-29 06:09:30 -0700</bug_when>
    <thetext>Comment on attachment 397883
Patch

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

&gt;&gt; Source/WebCore/loader/FrameLoader.h:112
&gt;&gt;      PolicyChecker&amp; policyChecker() const { return *m_policyChecker; }
&gt; 
&gt; You could make m_policyChecker a UniqueRef

Is there a clear benefit? I left it out for landing since there are a few similar cases in FrameLoader, I think it is better if needed to fix them all in one patch if there are benefits.

&gt;&gt; Source/WebCore/loader/FrameLoaderTypes.h:115
&gt;&gt; +enum class ShouldContinuePolicyCheck : uint8_t {
&gt; 
&gt; bool

Done.

&gt;&gt; Source/WebCore/loader/PolicyChecker.h:114
&gt;&gt; +template&lt;&gt; struct EnumTraits&lt;WebCore::ShouldContinuePolicyCheck&gt; {
&gt; 
&gt; This is not needed if ShouldContinuePolicyCheck has a bool underlying type.

Nice! I removed it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397865</attachid>
            <date>2020-04-28 12:03:19 -0700</date>
            <delta_ts>2020-04-28 13:58:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211138-20200428210314.patch</filename>
            <type>text/plain</type>
            <size>42642</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwODIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJhNTY3NGZjNTY5Mjlk
OWY2MDE2NzJlNzcxZmM4YTI0ZGU0OGZmMS4uNjQwMDM5ZmFhZTdmYzlkNjE5NWI3ZmEyOWI2MmVh
NDdlNjE4MzI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA0LTI4ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBQb2xpY3lDaGVja2VyIGFu
IGlubmVyIGNsYXNzIG9mIEZyYW1lTG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTExMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQb2xpY3lDaGVja2VyIEhpc3RvcnlDb250cm9sbGVyIGFuIGlu
bmVyIGNsYXNzIG9mIEZyYW1lTG9hZGVyLCB0aGlzIGFsbG93cyB1cyB0byBtb3ZlIHNvbWUgbWV0
aG9kcworICAgICAgICBvbmx5IHVzZWQgYnkgUG9saWN5Q2hlY2tlciBvdXQgb2YgdGhlIEZyYW1l
TG9hZGVyIHB1YmxpYyBBUEkuIEJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGZvcndhcmQg
ZGVjbGFyZQorICAgICAgICBhbiBlbnVtIGNsYXNzIGluIGFuIGlubmVyIGNsYXNzLCBtb3ZlIFNo
b3VsZENvbnRpbnVlIG91dCBvZiB0aGUgUG9saWN5Q2hlY2tlciBjbGFzcyBhbmQgcmVuYW1lIGl0
CisgICAgICAgIHRvIFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2suCisKKyAgICAgICAgKiBsb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRV
UkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kpOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlclR5cGVz
Lmg6CisgICAgICAgICogbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogbG9h
ZGVyL1BvbGljeUNoZWNrZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9Qb2xpY3lDaGVja2VyLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQ6OnJlc3Bv
bnNlUmVjZWl2ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZCk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1t
OgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50Ojpy
ZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKC1bV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNr
IHJlc291cmNlOnJlY2VpdmVkUmVzcG9uc2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMjAt
MDQtMjggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAg
IG1lZGlhL3RyYWNrL3RyYWNrLWxvYWQtZXJyb3ItcmVhZHlTdGF0ZS5odG1sIHBhc3NlcyBvbmx5
IHdoZW4gYWNjb21wYW5pZWQgYnkgc29tZSBvdGhlciB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3NWJjYWE1
OWNkOTI2ZDgzOWUwZTYyYmZjNzViOWE3NzY3ZmM1NjdkLi45ZGM1NGZlZTM4NDlkMjcwMDdkNmYx
N2Q2OTY1Yjc1YzYzMjM1YThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA0LTI4
ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBQb2xpY3lDaGVj
a2VyIGFuIGlubmVyIGNsYXNzIG9mIEZyYW1lTG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTExMzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0byBQb2xpY3lDaGVja2VyOjpTaG91bGRD
b250aW51ZSBjaGFuZ2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpyZXNw
b25zZVJlY2VpdmVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2UuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6
OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQ
cm94eTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg6CisKIDIwMjAtMDQtMjggIFBlciBBcm5lIFZvbGxh
biAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEZpeCBzYW5kYm94IHZpb2xh
dGlvbiB3aGVuIHVwbG9hZGluZyBhIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCmluZGV4IDhiMDVmODM3NTE0ZjUwYWUwOGIyYWY0ZDg0ZTNiMWVkNTcyNGFlYzcuLjVlMTEw
ODgwMjhiMjE1NDgwYjNhMjMyZDE4NTYwNTkxMjJlNjVjZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcApAQCAtMTM4NCw3ICsxMzg0LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6
bG9hZFVSTChGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVMb2FkUmVxdWVzdCwgY29uc3QgU3RyaW5n
JiByZWYKICAgICBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgYWxsb3dOYXZpZ2F0aW9uVG9J
bnZhbGlkVVJMID0gZnJhbWVMb2FkUmVxdWVzdC5hbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwo
KTsKICAgICBpZiAoIXRhcmdldEZyYW1lICYmICFlZmZlY3RpdmVGcmFtZU5hbWUuaXNFbXB0eSgp
KSB7CiAgICAgICAgIGFjdGlvbiA9IGFjdGlvbi5jb3B5V2l0aFNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3koc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvQXBwbHkobV9mcmFtZSwgZnJh
bWVMb2FkUmVxdWVzdCkpOwotICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQ
b2xpY3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZvcm1TdGF0
ZSksIGVmZmVjdGl2ZUZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TCwgb3BlbmVyUG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2Fs
bGVyLnJlbGVhc2UoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxG
b3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSBzaG91
bGRDb250aW51ZSkgbXV0YWJsZSB7CisgICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dp
bmRvd1BvbGljeShXVEZNb3ZlKGFjdGlvbiksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZm9y
bVN0YXRlKSwgZWZmZWN0aXZlRnJhbWVOYW1lLCBbdGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZh
bGlkVVJMLCBvcGVuZXJQb2xpY3ksIGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRs
ZXJDYWxsZXIucmVsZWFzZSgpXSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFr
UHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2sgc2hv
dWxkQ29udGludWUpIG11dGFibGUgewogICAgICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJOZXdX
aW5kb3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLmdldCgpLCBmcmFtZU5hbWUsIGFjdGlvbiwg
c2hvdWxkQ29udGludWUsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgb3BlbmVyUG9saWN5
KTsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIH0pOwpAQCAtMTQ2
Nyw3ICsxNDY3LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChGcmFtZUxvYWRSZXF1ZXN0JiYg
cmVxdWVzdCkKIAogICAgIGlmIChyZXF1ZXN0LnNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KCkp
IHsKICAgICAgICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24geyByZXF1ZXN0LnJlcXVlc3Rlcigp
LCByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93
biwgTmF2aWdhdGlvblR5cGU6Ok90aGVyLCByZXF1ZXN0LnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3koKSB9OwotICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3ko
V1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpLCB7IH0s
IHJlcXVlc3QuZnJhbWVOYW1lKCksIFt0aGlzXSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVO
YW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFBvbGljeUNoZWNrZXI6OlNob3Vs
ZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSB7CisgICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVj
a05ld1dpbmRvd1BvbGljeShXVEZNb3ZlKGFjdGlvbiksIFdURk1vdmUocmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKSksIHsgfSwgcmVxdWVzdC5mcmFtZU5hbWUoKSwgW3RoaXNdIChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29u
c3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgU2hv
dWxkQ29udGludWVQb2xpY3lDaGVjayBzaG91bGRDb250aW51ZSkgewogICAgICAgICAgICAgY29u
dGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLmdldCgpLCBm
cmFtZU5hbWUsIGFjdGlvbiwgc2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MpOwogICAgICAgICB9KTsK
IApAQCAtMzAyMiw3ICszMDIyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0
KEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJlZmUKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05l
d1dpbmRvd1BvbGljeShXVEZNb3ZlKGFjdGlvbiksIFdURk1vdmUod29ya2luZ1Jlc291cmNlUmVx
dWVzdCksIFdURk1vdmUoZm9ybVN0YXRlKSwgZnJhbWVOYW1lLCBbdGhpcywgYWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xpY3ksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdl
YWtQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNv
bnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGlu
dWUgc2hvdWxkQ29udGludWUpIG11dGFibGUgeworICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hl
Y2tOZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHdvcmtpbmdSZXNvdXJj
ZVJlcXVlc3QpLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2
aWdhdGlvblRvSW52YWxpZFVSTCwgb3BlbmVyUG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1l
LCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFNob3VsZENvbnRpbnVlUG9saWN5Q2hl
Y2sgc2hvdWxkQ29udGludWUpIG11dGFibGUgewogICAgICAgICAgICAgY29udGludWVMb2FkQWZ0
ZXJOZXdXaW5kb3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLmdldCgpLCBmcmFtZU5hbWUsIGFj
dGlvbiwgc2hvdWxkQ29udGludWUsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgb3BlbmVy
UG9saWN5KTsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIH0pOwpA
QCAtMzUwMSw5ICszNTAxLDkgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJO
YXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWUKIH0KIAogdm9pZCBG
cmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3koY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LAotICAgIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBQb2xpY3lDaGVj
a2VyOjpTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZh
bGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQb2xpY3kg
b3BlbmVyUG9saWN5KQorICAgIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZy
YW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZVBv
bGljeUNoZWNrIHNob3VsZENvbnRpbnVlLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgYWxs
b3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBOZXdGcmFtZU9wZW5lclBvbGljeSBvcGVuZXJQb2xp
Y3kpCiB7Ci0gICAgaWYgKHNob3VsZENvbnRpbnVlICE9IFBvbGljeUNoZWNrZXI6OlNob3VsZENv
bnRpbnVlOjpZZXMpCisgICAgaWYgKHNob3VsZENvbnRpbnVlICE9IFNob3VsZENvbnRpbnVlUG9s
aWN5Q2hlY2s6OlllcykKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmPEZyYW1lPiBmcmFtZSht
X2ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggMjEzYTA3NTEzZjM4
ODQ1NzVkYjc2YTE0NWEyMDU3MzkzZjY5YTRiMy4uMzJmNTg4N2RmOGVmODcyZjE1NWVjNzdjYjQ0
Y2VmZTQzMGVhOWRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTM5LDcg
KzM5LDYgQEAKICNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmUuaCIKICNpbmNsdWRlICJNaXhlZENv
bnRlbnRDaGVja2VyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJQ
b2xpY3lDaGVja2VyLmgiCiAjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZUxvYWROb3RpZmllci5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5o
IgpAQCAtNzcsNyArNzYsNiBAQCBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOwogY2xhc3MgTmV0d29y
a2luZ0NvbnRleHQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgUGFnZTsKLWNsYXNzIFBvbGljeUNoZWNr
ZXI7CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3Mg
UmVzb3VyY2VSZXNwb25zZTsKQEAgLTg3LDYgKzg1LDcgQEAgY2xhc3MgU3Vic3RpdHV0ZURhdGE7
CiAKIGVudW0gY2xhc3MgTmV3TG9hZEluUHJvZ3Jlc3MgOiBib29sOwogZW51bSBjbGFzcyBOYXZp
Z2F0aW9uUG9saWN5RGVjaXNpb24gOiB1aW50OF90OworY2xhc3MgRnJhbWVMb2FkZXI7CiBlbnVt
IGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2w7CiBlbnVtIGNsYXNzIFVz
ZWRMZWdhY3lUTFMgOiBib29sOwogZW51bSBjbGFzcyBJc01haW5SZXNvdXJjZSA6IGJvb2wgeyBO
bywgWWVzIH07CkBAIC0xMTAsNiArMTA5LDcgQEAgcHVibGljOgogCiAgICAgRnJhbWUmIGZyYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfQogCisgICAgY2xhc3MgUG9saWN5Q2hlY2tlcjsK
ICAgICBQb2xpY3lDaGVja2VyJiBwb2xpY3lDaGVja2VyKCkgY29uc3QgeyByZXR1cm4gKm1fcG9s
aWN5Q2hlY2tlcjsgfQogCiAgICAgY2xhc3MgSGlzdG9yeUNvbnRyb2xsZXI7CkBAIC0xNTYsNyAr
MTU2LDYgQEAgcHVibGljOgogICAgIHZvaWQgc3RvcExvYWRpbmcoVW5sb2FkRXZlbnRQb2xpY3kp
OwogICAgIHZvaWQgY2xvc2VVUkwoKTsKICAgICB2b2lkIGNhbmNlbEFuZENsZWFyKCk7Ci0gICAg
dm9pZCBjbGVhclByb3Zpc2lvbmFsTG9hZEZvclBvbGljeUNoZWNrKCk7CiAgICAgLy8gRklYTUU6
IGNsZWFyKCkgaXMgdHJ5aW5nIHRvIGRvIHRvbyBtYW55IHRoaW5ncy4gV2Ugc2hvdWxkIGJyZWFr
IGl0IGRvd24gaW50byBzbWFsbGVyIGZ1bmN0aW9ucyAoaWRlYWxseSB3aXRoIGZld2VyIHJhdyBC
b29sZWFuIHBhcmFtZXRlcnMpLgogICAgIHZvaWQgY2xlYXIoRG9jdW1lbnQqIG5ld0RvY3VtZW50
LCBib29sIGNsZWFyV2luZG93UHJvcGVydGllcyA9IHRydWUsIGJvb2wgY2xlYXJTY3JpcHRPYmpl
Y3RzID0gdHJ1ZSwgYm9vbCBjbGVhckZyYW1lVmlldyA9IHRydWUsIFdURjo6RnVuY3Rpb248dm9p
ZCgpPiYmIGhhbmRsZURPTVdpbmRvd0NyZWF0aW9uID0gbnVsbHB0cik7CiAKQEAgLTI1Niw3ICsy
NTUsNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUqIG9wZW5lcigpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3BlbmVyKEZyYW1lKik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkZXRhY2hGcm9tQWxsT3BlbmVkRnJhbWVzKCk7Ci0gICAgYm9vbCBoYXNPcGVuZWRG
cmFtZXMoKSBjb25zdCB7IHJldHVybiAhbV9vcGVuZWRGcmFtZXMuaXNFbXB0eSgpOyB9CiAKICAg
ICB2b2lkIHJlc2V0TXVsdGlwbGVGb3JtU3VibWlzc2lvblByb3RlY3Rpb24oKTsKIApAQCAtMzYz
LDcgKzM2MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaFVubG9hZEV2ZW50cyhVbmxv
YWRFdmVudFBvbGljeSk7CiAKICAgICB2b2lkIGNvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBv
bGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBOYXZpZ2F0aW9uUG9saWN5
RGVjaXNpb24sIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCk7Ci0gICAgdm9pZCBjb250aW51
ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3Rh
dGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIFBv
bGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkws
IE5ld0ZyYW1lT3BlbmVyUG9saWN5KTsKKyAgICB2b2lkIGNvbnRpbnVlTG9hZEFmdGVyTmV3V2lu
ZG93UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgU2hvdWxkQ29udGludWVQb2xp
Y3lDaGVjaywgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBOZXdGcmFtZU9wZW5lclBvbGlj
eSk7CiAgICAgdm9pZCBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgc2hvdWxkQ29udGludWUpOwogCiAgICAgYm9v
bCBzaG91bGRQZXJmb3JtRnJhZ21lbnROYXZpZ2F0aW9uKGJvb2wgaXNGb3JtU3VibWlzc2lvbiwg
Y29uc3QgU3RyaW5nJiBodHRwTWV0aG9kLCBGcmFtZUxvYWRUeXBlLCBjb25zdCBVUkwmKTsKQEAg
LTQzMCw2ICs0MjgsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvYWRVUkxJbnRvQ2hpbGRGcmFt
ZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVyZXIsIEZyYW1lKik7CiAgICAgdm9pZCBz
dGFydGVkKCk7CiAKKyAgICAvLyBQb2xpY3lDaGVja2VyIHNwZWNpZmljLgorICAgIHZvaWQgY2xl
YXJQcm92aXNpb25hbExvYWRGb3JQb2xpY3lDaGVjaygpOworICAgIGJvb2wgaGFzT3BlbmVkRnJh
bWVzKCkgY29uc3QgeyByZXR1cm4gIW1fb3BlbmVkRnJhbWVzLmlzRW1wdHkoKTsgfQorCiAgICAg
RnJhbWUmIG1fZnJhbWU7CiAgICAgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiBtX2NsaWVu
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKaW5kZXggYmMwNTdm
MmY3NDIyOGE5YjA4ODhmYzQ3M2Y2YzRmMDRiNzMzZTViNy4uYmYzOGRkYWE3NWU3M2IwNGRlZjIz
NTBkZTAwMTQ2ZTUxMjJkNjRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJU
eXBlcy5oCkBAIC0xMTIsNiArMTEyLDExIEBAIE9wdGlvbmFsPFBvbGljeUNoZWNrSWRlbnRpZmll
cj4gUG9saWN5Q2hlY2tJZGVudGlmaWVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICBy
ZXR1cm4gUG9saWN5Q2hlY2tJZGVudGlmaWVyIHsgKnByb2Nlc3MsIHBvbGljeUNoZWNrIH07CiB9
CiAKK2VudW0gY2xhc3MgU2hvdWxkQ29udGludWVQb2xpY3lDaGVjayA6IHVpbnQ4X3QgeworICAg
IFllcywKKyAgICBObworfTsKKwogZW51bSBjbGFzcyBOZXdGcmFtZU9wZW5lclBvbGljeSA6IHVp
bnQ4X3QgewogICAgIFN1cHByZXNzLAogICAgIEFsbG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMGRmNmNmOGJmNGEwNzdlZTlkOWY0ZWY3
MjE5YjliN2EwN2ExMTQyNy4uMTcwMDBkZjhiZjQ4OGRhNTEwNzcxMjE2YjA3ZjJmM2QxY2U4ZWJi
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcApA
QCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgTWVkaWFSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZChD
YWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVzCiAgICAgICAgIG1fY2xp
ZW50LT5yZXNwb25zZVJlY2VpdmVkKCp0aGlzLCByZXNwb25zZSwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxl
ckNhbGxlci5yZWxlYXNlKCldIChhdXRvIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAgICAg
ICAgICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikKICAgICAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwotICAgICAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlID09IFBvbGljeUNoZWNr
ZXI6OlNob3VsZENvbnRpbnVlOjpObykKKyAgICAgICAgICAgIGlmIChzaG91bGRDb250aW51ZSA9
PSBTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpObykKICAgICAgICAgICAgICAgICBzdG9wKCk7
CiAgICAgICAgIH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5
Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKaW5k
ZXggNDYxNjlmNTA5OTk1NzQ3ZjRkZjIwMGMzYzA4Njc0Yzc3MzVhODc1YS4uYzVjNGVhODVhNDY0
ZjhkOWQzMzJkNDQ3Njg3NmMyY2M5MzRiMjljNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xp
Y3lDaGVja2VyLmNwcApAQCAtOTEsNyArOTEsNyBAQCBib29sIFBvbGljeUNoZWNrSWRlbnRpZmll
cjo6aXNWYWxpZEZvcihQb2xpY3lDaGVja0lkZW50aWZpZXIgZXhwZWN0ZWRJZGVudGlmaWVyKQog
ICAgIHJldHVybiBtX3BvbGljeUNoZWNrID09IGV4cGVjdGVkSWRlbnRpZmllci5tX3BvbGljeUNo
ZWNrOwogfQogCi1Qb2xpY3lDaGVja2VyOjpQb2xpY3lDaGVja2VyKEZyYW1lJiBmcmFtZSkKK0Zy
YW1lTG9hZGVyOjpQb2xpY3lDaGVja2VyOjpQb2xpY3lDaGVja2VyKEZyYW1lJiBmcmFtZSkKICAg
ICA6IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX2RlbGVnYXRlSXNEZWNpZGluZ05hdmlnYXRpb25Q
b2xpY3koZmFsc2UpCiAgICAgLCBtX2RlbGVnYXRlSXNIYW5kbGluZ1VuaW1wbGVtZW50YWJsZVBv
bGljeShmYWxzZSkKQEAgLTk5LDEyICs5OSwxMiBAQCBQb2xpY3lDaGVja2VyOjpQb2xpY3lDaGVj
a2VyKEZyYW1lJiBmcmFtZSkKIHsKIH0KIAotdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05hdmln
YXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYgbmV3UmVxdWVzdCwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rp
b24mJiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNrZXI6OmNoZWNrTmF2
aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QmJiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5j
dGlvbiYmIGZ1bmN0aW9uKQogewogICAgIGNoZWNrTmF2aWdhdGlvblBvbGljeShXVEZNb3ZlKG5l
d1JlcXVlc3QpLCByZWRpcmVjdFJlc3BvbnNlLCBtX2ZyYW1lLmxvYWRlcigpLmFjdGl2ZURvY3Vt
ZW50TG9hZGVyKCksIHsgfSwgV1RGTW92ZShmdW5jdGlvbikpOwogfQogCi1Db21wbGV0aW9uSGFu
ZGxlckNhbGxpbmdTY29wZSBQb2xpY3lDaGVja2VyOjpleHRlbmRCbG9iVVJMTGlmZXRpbWVJZk5l
Y2Vzc2FyeShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CitDb21wbGV0aW9uSGFuZGxl
ckNhbGxpbmdTY29wZSBGcmFtZUxvYWRlcjo6UG9saWN5Q2hlY2tlcjo6ZXh0ZW5kQmxvYlVSTExp
ZmV0aW1lSWZOZWNlc3NhcnkoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogewogICAg
IGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzQmxvYigpKQogICAgICAgICByZXR1cm4geyB9
OwpAQCAtMTE4LDcgKzExOCw3IEBAIENvbXBsZXRpb25IYW5kbGVyQ2FsbGluZ1Njb3BlIFBvbGlj
eUNoZWNrZXI6OmV4dGVuZEJsb2JVUkxMaWZldGltZUlmTmVjZXNzYXJ5KFJlCiAgICAgfSk7CiB9
CiAKLXZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2Us
IERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIFJlZlB0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiYmIGZ1bmN0aW9uLCBQb2xpY3lEZWNpc2lv
bk1vZGUgcG9saWN5RGVjaXNpb25Nb2RlKQordm9pZCBGcmFtZUxvYWRlcjo6UG9saWN5Q2hlY2tl
cjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIsIFJlZlB0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNp
b25GdW5jdGlvbiYmIGZ1bmN0aW9uLCBQb2xpY3lEZWNpc2lvbk1vZGUgcG9saWN5RGVjaXNpb25N
b2RlKQogewogICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uID0gbG9hZGVyLT50cmlnZ2VyaW5n
QWN0aW9uKCk7CiAgICAgaWYgKGFjdGlvbi5pc0VtcHR5KCkpIHsKQEAgLTI0NywxMyArMjQ3LDEz
IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIGNvbnN0IFJlc291CiAgICAgICAgIG1fZnJhbWUubG9hZGVyKCkuY2xp
ZW50KCkuZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGFjdGlvbiwgcmVx
dWVzdCwgcmVkaXJlY3RSZXNwb25zZSwgZm9ybVN0YXRlLmdldCgpLCBwb2xpY3lEZWNpc2lvbk1v
ZGUsIHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcikpOwogfQogCi12
b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25BY3Rpb24m
JiBuYXZpZ2F0aW9uQWN0aW9uLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZWZQdHI8Rm9y
bVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIE5ld1dpbmRvd1Bv
bGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OlBvbGlj
eUNoZWNrZXI6OmNoZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25BY3Rpb24mJiBuYXZpZ2F0
aW9uQWN0aW9uLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZWZQdHI8Rm9ybVN0YXRlPiYm
IGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIE5ld1dpbmRvd1BvbGljeURlY2lz
aW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpICYm
IG1fZnJhbWUuZG9jdW1lbnQoKS0+aXNTYW5kYm94ZWQoU2FuZGJveFBvcHVwcykpCi0gICAgICAg
IHJldHVybiBmdW5jdGlvbih7IH0sIG51bGxwdHIsIHsgfSwgeyB9LCBTaG91bGRDb250aW51ZTo6
Tm8pOworICAgICAgICByZXR1cm4gZnVuY3Rpb24oeyB9LCBudWxscHRyLCB7IH0sIHsgfSwgU2hv
dWxkQ29udGludWVQb2xpY3lDaGVjazo6Tm8pOwogCiAgICAgaWYgKCFET01XaW5kb3c6OmFsbG93
UG9wVXAobV9mcmFtZSkpCi0gICAgICAgIHJldHVybiBmdW5jdGlvbih7IH0sIG51bGxwdHIsIHsg
fSwgeyB9LCBTaG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICByZXR1cm4gZnVuY3Rpb24oeyB9
LCBudWxscHRyLCB7IH0sIHsgfSwgU2hvdWxkQ29udGludWVQb2xpY3lDaGVjazo6Tm8pOwogCiAg
ICAgYXV0byBibG9iVVJMTGlmZXRpbWVFeHRlbnNpb24gPSBleHRlbmRCbG9iVVJMTGlmZXRpbWVJ
Zk5lY2Vzc2FyeShyZXF1ZXN0KTsKIApAQCAtMjYzLDM4ICsyNjMsMzggQEAgdm9pZCBQb2xpY3lD
aGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeShOYXZpZ2F0aW9uQWN0aW9uJiYgbmF2aWdhdGlv
bkFjdGlvbiwgUmUKICAgICAgICAgcmVxdWVzdElkZW50aWZpZXJdIChQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgcmVzcG9uc2VJZGVudGlmaWVyKSBtdXRh
YmxlIHsKIAogICAgICAgICBpZiAoIXJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVl
c3RJZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbih7IH0sIG51bGxwdHIs
IHsgfSwgeyB9LCBTaG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICAgICAgcmV0dXJuIGZ1bmN0
aW9uKHsgfSwgbnVsbHB0ciwgeyB9LCB7IH0sIFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5v
KTsKIAogICAgICAgICBzd2l0Y2ggKHBvbGljeUFjdGlvbikgewogICAgICAgICBjYXNlIFBvbGlj
eUFjdGlvbjo6RG93bmxvYWQ6CiAgICAgICAgICAgICBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCku
c3RhcnREb3dubG9hZChyZXF1ZXN0KTsKICAgICAgICAgICAgIEZBTExUSFJPVUdIOwogICAgICAg
ICBjYXNlIFBvbGljeUFjdGlvbjo6SWdub3JlOgotICAgICAgICAgICAgZnVuY3Rpb24oeyB9LCBu
dWxscHRyLCB7IH0sIHsgfSwgU2hvdWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAgICAgIGZ1bmN0
aW9uKHsgfSwgbnVsbHB0ciwgeyB9LCB7IH0sIFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5v
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2FzZSBQb2xpY3lBY3Rpb246OlN0b3BB
bGxMb2FkczoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAg
ZnVuY3Rpb24oeyB9LCBudWxscHRyLCB7IH0sIHsgfSwgU2hvdWxkQ29udGludWU6Ok5vKTsKKyAg
ICAgICAgICAgIGZ1bmN0aW9uKHsgfSwgbnVsbHB0ciwgeyB9LCB7IH0sIFNob3VsZENvbnRpbnVl
UG9saWN5Q2hlY2s6Ok5vKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2FzZSBQb2xp
Y3lBY3Rpb246OlVzZToKLSAgICAgICAgICAgIGZ1bmN0aW9uKHJlcXVlc3QsIG1ha2VXZWFrUHRy
KGZvcm1TdGF0ZS5nZXQoKSksIGZyYW1lTmFtZSwgbmF2aWdhdGlvbkFjdGlvbiwgU2hvdWxkQ29u
dGludWU6Olllcyk7CisgICAgICAgICAgICBmdW5jdGlvbihyZXF1ZXN0LCBtYWtlV2Vha1B0cihm
b3JtU3RhdGUuZ2V0KCkpLCBmcmFtZU5hbWUsIG5hdmlnYXRpb25BY3Rpb24sIFNob3VsZENvbnRp
bnVlUG9saWN5Q2hlY2s6Olllcyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfSk7CiB9CiAKLXZvaWQgUG9saWN5Q2hl
Y2tlcjo6c3RvcENoZWNrKCkKK3ZvaWQgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNrZXI6OnN0b3BD
aGVjaygpCiB7CiAgICAgbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5jYW5jZWxQb2xpY3lDaGVj
aygpOwogfQogCi12b2lkIFBvbGljeUNoZWNrZXI6OmNhbm5vdFNob3dNSU1FVHlwZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNr
ZXI6OmNhbm5vdFNob3dNSU1FVHlwZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
IHsKICAgICBoYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3kobV9mcmFtZS5sb2FkZXIoKS5jbGll
bnQoKS5jYW5ub3RTaG93TUlNRVR5cGVFcnJvcihyZXNwb25zZSkpOwogfQogCi12b2lkIFBvbGlj
eUNoZWNrZXI6OmhhbmRsZVVuaW1wbGVtZW50YWJsZVBvbGljeShjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKK3ZvaWQgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNrZXI6OmhhbmRsZVVuaW1wbGVt
ZW50YWJsZVBvbGljeShjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBtX2RlbGVn
YXRlSXNIYW5kbGluZ1VuaW1wbGVtZW50YWJsZVBvbGljeSA9IHRydWU7CiAgICAgbV9mcmFtZS5s
b2FkZXIoKS5jbGllbnQoKS5kaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGVycm9yKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oCmluZGV4IGMzY2UyNjYyN2VlZDgzNDM0
NGU0YzI2MzZiMzUwYjU4ZDgxMzY1Y2UuLmZlMDQ2MTJlZTdmNDI1ZWEwMDJmMDNmOWQxNGQxZDg3
Y2QwYTQ4MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaApAQCAtMjksNyAr
MjksNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIK
KyNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgog
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CkBAIC02MCwxOSArNjAsMTQgQEAgZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24g
OiB1aW50OF90IHsKIAogZW51bSBjbGFzcyBQb2xpY3lEZWNpc2lvbk1vZGUgeyBTeW5jaHJvbm91
cywgQXN5bmNocm9ub3VzIH07CiAKLWNsYXNzIFBvbGljeUNoZWNrZXIgeworY2xhc3MgRnJhbWVM
b2FkZXI6OlBvbGljeUNoZWNrZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBvbGljeUNo
ZWNrZXIpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxp
Y2l0IFBvbGljeUNoZWNrZXIoRnJhbWUmKTsKIAotICAgIGVudW0gY2xhc3MgU2hvdWxkQ29udGlu
dWUgewotICAgICAgICBZZXMsCi0gICAgICAgIE5vCi0gICAgfTsKLQogICAgIHVzaW5nIE5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNv
dXJjZVJlcXVlc3QmJiwgV2Vha1B0cjxGb3JtU3RhdGU+JiYsIE5hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbik+OwotICAgIHVzaW5nIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24gPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFdlYWtQdHI8Rm9ybVN0
YXRlPiYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYs
IFNob3VsZENvbnRpbnVlKT47CisgICAgdXNpbmcgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5j
dGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgV2Vh
a1B0cjxGb3JtU3RhdGU+JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0
aW9uQWN0aW9uJiwgU2hvdWxkQ29udGludWVQb2xpY3lDaGVjayk+OwogCiAgICAgdm9pZCBjaGVj
a05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlZGlyZWN0UmVzcG9uc2UsIERvY3VtZW50TG9hZGVyKiwgUmVmUHRyPEZvcm1TdGF0ZT4m
JiwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiwgUG9saWN5RGVjaXNpb25Nb2Rl
ID0gUG9saWN5RGVjaXNpb25Nb2RlOjpBc3luY2hyb25vdXMpOwogICAgIHZvaWQgY2hlY2tOYXZp
Z2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZWRpcmVjdFJlc3BvbnNlLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKQEAg
LTExMywxNCArMTA4LDE0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
Ly8gVG8gc3VwcG9ydCBlbmNvZGluZyBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250
aW51ZSBpbiBYUEMgbWVzc2FnZXMKKy8vIFRvIHN1cHBvcnQgZW5jb2RpbmcgV2ViQ29yZTo6U2hv
dWxkQ29udGludWVQb2xpY3lDaGVjayBpbiBYUEMgbWVzc2FnZXMKIG5hbWVzcGFjZSBXVEYgewog
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNo
b3VsZENvbnRpbnVlPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNo
b3VsZENvbnRpbnVlUG9saWN5Q2hlY2s+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAotICAgICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSwKLSAgICAg
ICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Ok5vLAotICAgICAgICBX
ZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6WWVzCisgICAgICAgIFdlYkNv
cmU6OlNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2ssCisgICAgICAgIFdlYkNvcmU6OlNob3VsZENv
bnRpbnVlUG9saWN5Q2hlY2s6Ok5vLAorICAgICAgICBXZWJDb3JlOjpTaG91bGRDb250aW51ZVBv
bGljeUNoZWNrOjpZZXMKICAgICA+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaApp
bmRleCBhMTQ1ZjE2M2M2NDNhMzg2OGUxOTcxMzhhYWU0ZWRjZmQwNDc2ZjljLi4yNWJkY2I1OGVh
OGYxNmE4Nzk5ZWViNDg4Nzc1NGY1Yzk5M2M5ZGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQg
ewogcHVibGljOgogICAgIHZpcnR1YWwgflBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudCgpID0g
ZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVk
aWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikg
eyBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6WWVzKTsg
fQorICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJj
ZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3Vs
ZENvbnRpbnVlUG9saWN5Q2hlY2spPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25I
YW5kbGVyKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Olllcyk7IH0KICAgICB2aXJ0dWFsIHZv
aWQgcmVkaXJlY3RSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlv
bkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2Fj
aGVSZXNwb25zZShQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkYXRhU2VudChQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgeyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIu
bW0KaW5kZXggYzQwZDdmOWY5NGYwODljNmY5YWM3MjZlYjVkYmU5NDJlMWY0YTdhMy4uN2UwNzc4
Nzk2MjcxNmNjNzU1ZmY1YWRmNWM4NGRlMDQxYjZhYTEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291
cmNlTG9hZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQpAQCAtMTQzLDcgKzE0Myw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2FkRmluaXNoZWQoKTsKIAogICAgIC8vIFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZUNsaWVudAotICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpIGZpbmFsOworICAgIHZvaWQg
cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250aW51ZVBvbGljeUNoZWNr
KT4mJikgZmluYWw7CiAgICAgdm9pZCByZWRpcmVjdFJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNv
dXJjZSYsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgZmluYWwgeyBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlcXVlc3QpKTsgfQog
ICAgIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIGRh
dGFTZW50KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWdu
ZWQgbG9uZyBsb25nKSBmaW5hbCB7IH0KQEAgLTE4NiwxMCArMTg2LDEwIEBAIHZvaWQgUGxhdGZv
cm1SZXNvdXJjZU1lZGlhTG9hZGVyOjpzdG9wKCkKICAgICByZXNvdXJjZS0+c2V0Q2xpZW50KG51
bGxwdHIpOwogfQogCi12b2lkIFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6cmVzcG9uc2VS
ZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250
aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxv
YWRlcjo6cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250
aW51ZVBvbGljeUNoZWNrKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BhcmVudC5y
ZXNwb25zZVJlY2VpdmVkKHJlc3BvbnNlKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lD
aGVja2VyOjpTaG91bGRDb250aW51ZTo6WWVzKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihTaG91
bGRDb250aW51ZVBvbGljeUNoZWNrOjpZZXMpOwogfQogCiB2b2lkIFBsYXRmb3JtUmVzb3VyY2VN
ZWRpYUxvYWRlcjo6bG9hZEZhaWxlZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRX
ZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggN2Y3ZTI0OGY5MGE0
MTMxZjc4MGRmMWVhNzI3MzBkM2QwNzVhNzA1OS4uNGZlYWI1ODVhNmIzNGFhMzcxMGE2NGI0M2Q4
MDIyMThjZjAzMGE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNoZWNrVXBkYXRlQmxv
Y2tzaXplKHVuc2lnbmVkIGJ5dGVzUmVhZCk7CiAKICAgICAvLyBQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2VDbGllbnQgdmlydHVhbCBtZXRob2RzLgotICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250aW51ZVBv
bGljeUNoZWNrKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkYXRhUmVjZWl2ZWQoUGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgY29uc3QgY2hhciosIGludCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBhY2Nl
c3NDb250cm9sQ2hlY2tGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYpIG92ZXJyaWRlOwogICAgIHZvaWQgbG9hZEZhaWxlZChQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmLCBjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CkBAIC05OTIsMTQgKzk5Miwx
NCBAQCB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpjaGVja1VwZGF0ZUJsb2Nr
c2l6ZSh1bnNpZ25lZCBieXRlc1JlYWQpCiAgICAgfQogfQogCi12b2lkIENhY2hlZFJlc291cmNl
U3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZv
cm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWVQb2xpY3ljaGVjayk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBXZWJLaXRXZWJT
cmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKG1fc3JjLmdldCgpKTsKICAgICBXZWJLaXRXZWJTcmNQ
cml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwogICAgIERhdGFNdXRleDxXZWJLaXRXZWJTcmNQcml2
YXRlOjpTdHJlYW1pbmdNZW1iZXJzPjo6TG9ja2VkV3JhcHBlciBtZW1iZXJzKHByaXYtPmRhdGFN
dXRleCk7CiAgICAgaWYgKG1lbWJlcnMtPnJlcXVlc3ROdW1iZXIgIT0gbV9yZXF1ZXN0TnVtYmVy
KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRp
bnVlOjpObyk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlUG9saWN5
Q2hlY2s6Ok5vKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTA1MSw3ICsxMDUxLDcg
QEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZChQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb24KICAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3Jj
LCBSRVNPVVJDRSwgUkVBRCwgKCJSJXU6IFJlY2VpdmVkICVkIEhUVFAgZXJyb3IgY29kZSIsIG1f
cmVxdWVzdE51bWJlciwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSksIChudWxscHRyKSk7CiAg
ICAgICAgIG1lbWJlcnMtPmRvZXNIYXZlRU9TID0gdHJ1ZTsKICAgICAgICAgbWVtYmVycy0+cmVz
cG9uc2VDb25kaXRpb24ubm90aWZ5T25lKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBv
bGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5vKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtMTA2Miw3ICsxMDYyLDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0Ns
aWVudDo6cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb24KICAgICAg
ICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIFJFQUQsICgiUiV1OiBSZWNl
aXZlZCB1bmV4cGVjdGVkICVkIEhUVFAgc3RhdHVzIGNvZGUgZm9yIHJhbmdlIHJlcXVlc3QiLCBt
X3JlcXVlc3ROdW1iZXIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpLCAobnVsbHB0cikpOwog
ICAgICAgICAgICAgbWVtYmVycy0+ZG9lc0hhdmVFT1MgPSB0cnVlOwogICAgICAgICAgICAgbWVt
YmVycy0+cmVzcG9uc2VDb25kaXRpb24ubm90aWZ5T25lKCk7Ci0gICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29udGludWVQb2xpY3lDaGVjazo6Tm8pOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3Jj
LCAiUiV1OiBSYW5nZSByZXF1ZXN0IHN1Y2NlZWRlZCIsIG1fcmVxdWVzdE51bWJlcik7CkBAIC0x
MTAxLDcgKzExMDEsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpyZXNw
b25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbgogICAgIG1lbWJlcnMtPndh
c1Jlc3BvbnNlUmVjZWl2ZWQgPSB0cnVlOwogICAgIG1lbWJlcnMtPnJlc3BvbnNlQ29uZGl0aW9u
Lm5vdGlmeU9uZSgpOwogCi0gICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hv
dWxkQ29udGludWU6Olllcyk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29udGludWVQ
b2xpY3lDaGVjazo6WWVzKTsKIH0KIAogdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVu
dDo6ZGF0YVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IGNoYXIqIGRhdGEs
IGludCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KaW5kZXggNGI5OGFkYWRiYWEzYzI1
MGIyMGY0Y2FlNDZlMDE3NDUwMDBmOTllNS4uNzRlZDkzNGE1YmFiMWFjNmIyNjY0N2ZhZTdlMzc4
NTdhYmM5ZGFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQpAQCAtNTcsNyArNTcsNyBAQCBO
U19BU1NVTUVfTk9OTlVMTF9CRUdJTgogQHByb3BlcnR5IChhc3NpZ24pIFdlYkNvcmVOU1VSTFNl
c3Npb24gKiBfTnVsbGFibGUgc2Vzc2lvbjsKIAogLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1N
ZWRpYVJlc291cmNlJilyZXNvdXJjZSBzZW50Qnl0ZXM6KHVuc2lnbmVkIGxvbmcgbG9uZylieXRl
c1NlbnQgdG90YWxCeXRlc1RvQmVTZW50Oih1bnNpZ25lZCBsb25nIGxvbmcpdG90YWxCeXRlc1Rv
QmVTZW50OwotLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJj
ZSByZWNlaXZlZFJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNwb25zZSBjb21w
bGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91
bGRDb250aW51ZSk+JiYpY29tcGxldGlvbkhhbmRsZXI7CistICh2b2lkKXJlc291cmNlOihQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIHJlY2VpdmVkUmVzcG9uc2U6KGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKXJlc3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2spPiYmKWNvbXBsZXRpb25IYW5kbGVyOwog
LSAoQk9PTClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJjZSBzaG91bGRD
YWNoZVJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNwb25zZTsKIC0gKHZvaWQp
cmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2UgcmVjZWl2ZWREYXRhOihj
b25zdCBjaGFyKilkYXRhIGxlbmd0aDooaW50KWxlbmd0aDsKIC0gKHZvaWQpcmVzb3VyY2U6KFBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2UgcmVjZWl2ZWRSZWRpcmVjdDooY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpcmVzcG9uc2UgcmVxdWVzdDooUmVzb3VyY2VSZXF1ZXN0JiYpcmVxdWVz
dCBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVl
c3QmJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CkBAIC0zODIsNyArMzgyLDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCBjbGVhclRhc2soKTsKIAotICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250aW51ZVBv
bGljeUNoZWNrKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWRpcmVjdFJlY2VpdmVkKFBsYXRm
b3JtTWVkaWFSZXNvdXJjZSYsIFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpIG92ZXJy
aWRlOwogICAgIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkYXRhU2VudChQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcg
bG9uZykgb3ZlcnJpZGU7CkBAIC00MTEsMTEgKzQxMSwxMSBAQCB2b2lkIFdlYkNvcmVOU1VSTFNl
c3Npb25EYXRhVGFza0NsaWVudDo6ZGF0YVNlbnQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiByZXNv
dXJjZQogICAgIFttX3Rhc2sgcmVzb3VyY2U6cmVzb3VyY2Ugc2VudEJ5dGVzOmJ5dGVzU2VudCB0
b3RhbEJ5dGVzVG9CZVNlbnQ6dG90YWxCeXRlc1RvQmVTZW50XTsKIH0KIAotdm9pZCBXZWJDb3Jl
TlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRp
YVJlc291cmNlJiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6
OnJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiByZXNvdXJjZSwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxk
Q29udGludWVQb2xpY3lDaGVjayk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV90YXNrTG9jayk7CiAgICAgaWYgKCFtX3Rhc2spCi0gICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pOwor
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29udGludWVQb2xpY3lDaGVj
azo6Tm8pOwogCiAgICAgW21fdGFzayByZXNvdXJjZTpyZXNvdXJjZSByZWNlaXZlZFJlc3BvbnNl
OnJlc3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXTsK
IH0KQEAgLTYyOCw3ICs2MjgsNyBAQCB2b2lkIFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0Ns
aWVudDo6bG9hZEZpbmlzaGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzbwogICAgIC8vIE5v
LW9wLgogfQogCi0tICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291
cmNlIHJlY2VpdmVkUmVzcG9uc2U6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc3BvbnNlIGNv
bXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBvbGljeUNoZWNrZXI6OlNo
b3VsZENvbnRpbnVlKT4mJiljb21wbGV0aW9uSGFuZGxlcgorLSAodm9pZClyZXNvdXJjZTooUGxh
dGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJjZSByZWNlaXZlZFJlc3BvbnNlOihjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJilyZXNwb25zZSBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTaG91bGRDb250aW51ZVBvbGljeUNoZWNrKT4mJiljb21wbGV0aW9uSGFuZGxlcgog
ewogICAgIEFTU0VSVChyZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpTb3Vy
Y2U6Ok5ldHdvcmsgfHwgcmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6U291
cmNlOjpEaXNrQ2FjaGUgfHwgcmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6
U291cmNlOjpEaXNrQ2FjaGVBZnRlclZhbGlkYXRpb24gfHwgcmVzcG9uc2Uuc291cmNlKCkgPT0g
UmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKTsKICAgICBBU1NFUlRfVU5V
U0VEKHJlc291cmNlLCAmcmVzb3VyY2UgPT0gX3Jlc291cmNlKTsKQEAgLTYzOSwxNCArNjM5LDE0
IEBAIHZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50Ojpsb2FkRmluaXNoZWQo
UGxhdGZvcm1NZWRpYVJlc291cmNlJiByZXNvCiAgICAgUmV0YWluUHRyPE5TVVJMUmVzcG9uc2U+
IHN0cm9uZ1Jlc3BvbnNlIHsgcmVzcG9uc2UubnNVUkxSZXNwb25zZSgpIH07CiAgICAgUmV0YWlu
UHRyPFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFzaz4gc3Ryb25nU2VsZiB7IHNlbGYgfTsKICAg
ICBpZiAoIXNlbGYuc2Vzc2lvbikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFBv
bGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpObyk7CiAgICAgW3NlbGYuc2Vz
c2lvbiBhZGREZWxlZ2F0ZU9wZXJhdGlvbjpbc3Ryb25nU2VsZiwgc3Ryb25nUmVzcG9uc2UsIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUg
ewogICAgICAgICBzdHJvbmdTZWxmLT5fcmVzcG9uc2UgPSBzdHJvbmdSZXNwb25zZS5nZXQoKTsK
IAogICAgICAgICBpZDxOU1VSTFNlc3Npb25EYXRhRGVsZWdhdGU+IGRhdGFEZWxlZ2F0ZSA9IChp
ZDxOU1VSTFNlc3Npb25EYXRhRGVsZWdhdGU+KXN0cm9uZ1NlbGYuZ2V0KCkuc2Vzc2lvbi5kZWxl
Z2F0ZTsKICAgICAgICAgaWYgKCFbZGF0YURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoVVJMU2Vzc2lvbjpkYXRhVGFzazpkaWRSZWNlaXZlUmVzcG9uc2U6Y29tcGxldGlvbkhh
bmRsZXI6KV0pIHsKICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3N0cm9uZ1NlbGYsIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUg
ewotICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3Vs
ZENvbnRpbnVlOjpZZXMpOworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3Vs
ZENvbnRpbnVlUG9saWN5Q2hlY2s6Olllcyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpAQCAtNjU0LDEwICs2NTQsMTAgQEAgdm9pZCBXZWJDb3JlTlNV
UkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmxvYWRGaW5pc2hlZChQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2UmIHJlc28KICAgICAgICAgW2RhdGFEZWxlZ2F0ZSBVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24g
KilzdHJvbmdTZWxmLmdldCgpLnNlc3Npb24gZGF0YVRhc2s6KE5TVVJMU2Vzc2lvbkRhdGFUYXNr
ICopc3Ryb25nU2VsZi5nZXQoKSBkaWRSZWNlaXZlUmVzcG9uc2U6c3Ryb25nUmVzcG9uc2UuZ2V0
KCkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtzdHJvbmdTZWxmLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoTlNVUkxTZXNzaW9uUmVzcG9u
c2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbikgbXV0YWJsZSB7CiAgICAgICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFtzdHJvbmdTZWxmLCBkaXNwb3NpdGlvbiwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAg
aWYgKGRpc3Bvc2l0aW9uID09IE5TVVJMU2Vzc2lvblJlc3BvbnNlQ2FuY2VsKQotICAgICAgICAg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51
ZTo6Tm8pOworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRDb250
aW51ZVBvbGljeUNoZWNrOjpObyk7CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICAgICAgICAgIEFTU0VSVChkaXNwb3NpdGlvbiA9PSBOU1VSTFNlc3Npb25SZXNwb25zZUFsbG93
KTsKLSAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6
U2hvdWxkQ29udGludWU6Olllcyk7CisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Olllcyk7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pLmdldCgpXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcAppbmRleCBmNzkz
MzQ3ZTI4NDFhZTNjMmJjNmI0MTlhMmNjMDg0NWVhYmI5MTlkLi42NDE1MGY5OTI3NzUwNTFiMjEy
ZGM2MDY3OGJmNTJlMDRhZjk0NTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCkBAIC02Niw3ICs2Niw3IEBAIGJv
b2wgUmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaygpIGNvbnN0
CiAgICAgcmV0dXJuIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjazsKIH0KIAotdm9pZCBSZW1v
dGVNZWRpYVJlc291cmNlOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2ssIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2ss
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWVQb2xpY3lDaGVjayk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwpA
QCAtNzQsNyArNzQsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OnJlc3BvbnNlUmVjZWl2
ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvbwogICAgIG1fZGlkUGFzc0Fj
Y2Vzc0NvbnRyb2xDaGVjayA9IGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2s7CiAgICAgbV9jbGll
bnQtPnJlc3BvbnNlUmVjZWl2ZWQoKnRoaXMsIHJlc3BvbnNlLCBbcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShhdXRvIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKLSAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlID09IFBvbGljeUNoZWNrZXI6
OlNob3VsZENvbnRpbnVlOjpObykKKyAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlID09IFNob3Vs
ZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5vKQogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+c3Rv
cCgpOwogCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHNob3VsZENvbnRpbnVlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5o
CmluZGV4IDQ1YmExY2FhYzJhZGYyZWQ2ODAyMWRmMjdmZWIxMzc2ZTZkMzM0MjEuLjQ4NmY2YmI2
MWEzNzkwZGZmMmY0MGU1ODUzZjU4ODg1ZjdkNzg1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuaApAQCAtNDgsNyArNDgs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAgICAgYm9vbCBkaWRQYXNzQWNj
ZXNzQ29udHJvbENoZWNrKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHJlc3BvbnNlUmVjZWl2
ZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJvb2wsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmKTsKKyAg
ICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U2hvdWxkQ29udGludWVQb2xp
Y3lDaGVjayk+JiYpOwogICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpPiYmKTsKICAgICB2b2lkIGRh
dGFTZW50KHVpbnQ2NF90LCB1aW50NjRfdCk7CiAgICAgdm9pZCBkYXRhUmVjZWl2ZWQoY29uc3Qg
Y2hhciosIGludDY0X3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAKaW5kZXggY2U3OTNmNTk5
OTkxOGQ0NTA3Y2ZmODZmMjgzNWVjOWM2YzI5M2VlYy4uMTM0YjhjYTZiOGEyZjE4MDA5MTc3NDFm
OWFjYTA2ODc2YWU4MGMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwCkBAIC01OSwxMSAr
NTksMTEgQEAgdm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVtb3ZlTWVkaWFSZXNv
dXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmkKICAgICBtX3JlbW90ZU1lZGlhUmVzb3Vy
Y2VzLnJlbW92ZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlc3BvbnNlUmVjZWl2ZWQoUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29s
IGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5
Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVzcG9uc2VSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllciBpZCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wg
ZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRD
b250aW51ZVBvbGljeUNoZWNrKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBy
ZXNvdXJjZSA9IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKTsKICAgICBpZiAoIXJlc291
cmNlIHx8ICFyZXNvdXJjZS0+cmVhZHkoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQ
b2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpObyk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgKaW5kZXggMDhmZGU0MjkyMTNiMmE4N2M4MzJlODc4
NzY1MjQzMWQ4ZTA0NGE2My4uNzc1MDE0NTg2MDBkZDA5ODY1N2M5NDVlZWIwZWU0OWJiNmUwMDNh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
ZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKFJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgYm9v
bCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRD
b250aW51ZSk+JiYpOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJvb2wsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U2hvdWxkQ29udGludWVQb2xpY3lDaGVjayk+
JiYpOwogICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmKT4mJik7CiAgICAgdm9pZCBkYXRhU2VudChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciwgdWludDY0X3QsIHVpbnQ2NF90KTsKICAgICB2b2lkIGRhdGFSZWNlaXZlZChSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYzA0YTM4NmJmMGEyYmYzMDAz
OTA4NGIxN2YwYjU1NmNkMWMyOGEzYy4uNGViY2M1ZjAxN2FjY2U1MTMwMDBkZDE4OTJiYTQ4ZWUx
YjgzMjAzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAt
MjYsNyArMjYsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7Ci0gICAgUmVzcG9uc2VSZWNl
aXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2sp
IC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51
ZSkgQXN5bmMKKyAgICBSZXNwb25zZVJlY2VpdmVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIGJvb2wg
ZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaykgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpTaG91
bGRDb250aW51ZVBvbGljeUNoZWNrIHNob3VsZENvbnRpbnVlKSBBc3luYwogICAgIFJlZGlyZWN0
UmVjZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmV0dXJuUmVxdWVzdCkgQXN5bmMK
ICAgICBEYXRhU2VudChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCB1
aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2VudCkKICAgICBEYXRh
UmVjZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgSVBDOjpE
YXRhUmVmZXJlbmNlIGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQppbmRleCA3YmEzYTY2ZGM5MzYxYTRlOThkODdhN2I2N2MyYmFmNjcyNDlkNzllLi5kODNhZTMy
OTAyYTk0NWQ1YzgyNWQyNWE1NDIxZmZjZDk0ZTJhMDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTYwNyw2ICs2MDcsNyBAQCBkZWYgaGVhZGVyc19mb3Jf
dHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGUnOiBbJzxX
ZWJDb3JlL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmg+J10sCiAgICAgICAgICdXZWJD
b3JlOjpQbHVnaW5JbmZvJzogWyc8V2ViQ29yZS9QbHVnaW5EYXRhLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpQb2xpY3lBY3Rpb24nOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwK
KyAgICAgICAgJ1dlYkNvcmU6OlNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2snOiBbJzxXZWJDb3Jl
L0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllcic6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXInOiBbJzxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpSZWNlbnRTZWFyY2gnOiBbJzxXZWJDb3JlL1NlYXJjaFBv
cHVwTWVudS5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCmluZGV4IDkwOTZlMjUw
MGE4YTMzZjdlMzU2ZDJiM2NlZjk0NDk4N2RkMDc3ZDkuLjZhNmJiY2Q2ZDVhNzZmYjk0MDNlN2Ri
N2Y3NzAxZjVmZWY4MjY2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAKQEAgLTQ2
LDcgKzQ2LDcgQEAgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Ojp+UmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5KCkKIHsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OnJlc3BvbnNl
UmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OnJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U2hvdWxkQ29udGludWVQ
b2xpY3lDaGVjayk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpS
ZXNwb25zZVJlY2VpdmVkKG1faWQsIHJlc3BvbnNlLCBtX3BsYXRmb3JtTWVkaWFSZXNvdXJjZS5k
aWRQYXNzQWNjZXNzQ29udHJvbENoZWNrKCkpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7CiAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHNob3VsZENvbnRpbnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQ
cm94eS5oCmluZGV4IGQ2Y2RmOTZhYjIwMDNkNzgxMGZlZGQxOWFkMDU3MGY2MDEzMDQ3OTIuLjk1
M2JiMzAzOTA0ZGVjYzc3MTAzNWNiZDY5NjgzOWY1YTcwNWRmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291
cmNlUHJveHkuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8g
UGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50Ci0gICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNo
b3VsZENvbnRpbnVlKT4mJikgZmluYWw7CisgICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlNob3VsZENvbnRpbnVlUG9saWN5
Q2hlY2spPiYmKSBmaW5hbDsKICAgICB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmKT4mJikgZmluYWw7CiAgICAgYm9vbCBzaG91bGRDYWNoZVJlc3Bv
bnNlKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKSBmaW5hbDsKICAgICB2b2lkIGRhdGFTZW50KFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nKSBm
aW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397882</attachid>
            <date>2020-04-28 13:58:35 -0700</date>
            <delta_ts>2020-04-28 14:00:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211138-20200428225833.patch</filename>
            <type>text/plain</type>
            <size>42586</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjViM2MxYjE0OGE5MmM2
Yzg2ZDQ5NmRiNWUwNmJjNWMxNjAxNGRhMC4uMTY4YzgwYjZlN2Q1NmFmMWRhMGIzYzBlOGFiZTZm
OGYzNDRkYTY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA0LTI4ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBQb2xpY3lDaGVja2VyIGFu
IGlubmVyIGNsYXNzIG9mIEZyYW1lTG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTExMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQb2xpY3lDaGVja2VyIEhpc3RvcnlDb250cm9sbGVyIGFuIGlu
bmVyIGNsYXNzIG9mIEZyYW1lTG9hZGVyLCB0aGlzIGFsbG93cyB1cyB0byBtb3ZlIHNvbWUgbWV0
aG9kcworICAgICAgICBvbmx5IHVzZWQgYnkgUG9saWN5Q2hlY2tlciBvdXQgb2YgdGhlIEZyYW1l
TG9hZGVyIHB1YmxpYyBBUEkuIEJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGZvcndhcmQg
ZGVjbGFyZQorICAgICAgICBhbiBlbnVtIGNsYXNzIGluIGFuIGlubmVyIGNsYXNzLCBtb3ZlIFNo
b3VsZENvbnRpbnVlIG91dCBvZiB0aGUgUG9saWN5Q2hlY2tlciBjbGFzcyBhbmQgcmVuYW1lIGl0
CisgICAgICAgIHRvIFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2suCisKKyAgICAgICAgKiBsb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRV
UkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kpOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlclR5cGVz
Lmg6CisgICAgICAgICogbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogbG9h
ZGVyL1BvbGljeUNoZWNrZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9Qb2xpY3lDaGVja2VyLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQ6OnJlc3Bv
bnNlUmVjZWl2ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZCk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1t
OgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50Ojpy
ZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKC1bV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNr
IHJlc291cmNlOnJlY2VpdmVkUmVzcG9uc2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMjAt
MDQtMjggIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW1vdmUgZG93
bmxvYWRBdHRyaWJ1dGUgZnJvbSBEb2N1bWVudExvYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyMDBjYzc4YTlh
YjY3ZjBkYWQ0Nzk3YTZmYTc3ZjRmMWNjOWVmNmUxLi43MDNlYmI0MGE5NDMwMDBhMGZlMmU1ZTZj
MGFiMTFhYWU3Y2QyN2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA0LTI4ICBS
b2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBQb2xpY3lDaGVja2Vy
IGFuIGlubmVyIGNsYXNzIG9mIEZyYW1lTG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTExMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0byBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250
aW51ZSBjaGFuZ2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpyZXNwb25z
ZVJlY2VpdmVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3Vy
Y2UuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJl
c3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg6CisKIDIwMjAtMDQtMjggIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjQ2F0YWx5c3RdIEFkZCBtaXNzaW5nIHN5
bWxpbmtzIHRvIFdlYktpdC5mcmFtZXdvcmtzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAppbmRleCBlMTkxNWJhYTkxM2EwNmFlYzcxMjFlNzI4M2VlNzE2YWM4M2IzN2I5Li4zZTY1
YTgwZmQ0ZTUzM2Y5ZjM1ZDcwMGQyZWNiNmViNGYyMDE5NDVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKQEAgLTEzODQsNyArMTM4NCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmxvYWRVUkwoRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0IFN0cmlu
ZyYgcmVmCiAgICAgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRv
SW52YWxpZFVSTCA9IGZyYW1lTG9hZFJlcXVlc3QuYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
KCk7CiAgICAgaWYgKCF0YXJnZXRGcmFtZSAmJiAhZWZmZWN0aXZlRnJhbWVOYW1lLmlzRW1wdHko
KSkgewogICAgICAgICBhY3Rpb24gPSBhY3Rpb24uY29weVdpdGhTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5KHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb0FwcGx5KG1fZnJhbWUsIGZy
YW1lTG9hZFJlcXVlc3QpKTsKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93
UG9saWN5KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3Rh
dGUpLCBlZmZlY3RpdmVGcmFtZU5hbWUsIFt0aGlzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
UkwsIG9wZW5lclBvbGljeSwgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNh
bGxlci5yZWxlYXNlKCldIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8
Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUgc2hv
dWxkQ29udGludWUpIG11dGFibGUgeworICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdX
aW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZv
cm1TdGF0ZSksIGVmZmVjdGl2ZUZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTCwgb3BlbmVyUG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5k
bGVyQ2FsbGVyLnJlbGVhc2UoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vh
a1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZVBvbGljeUNoZWNrIHNo
b3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNvbnRpbnVlTG9hZEFmdGVyTmV3
V2luZG93UG9saWN5KHJlcXVlc3QsIGZvcm1TdGF0ZS5nZXQoKSwgZnJhbWVOYW1lLCBhY3Rpb24s
IHNob3VsZENvbnRpbnVlLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGlj
eSk7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICB9KTsKQEAgLTE0
NjcsNyArMTQ2Nyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVMb2FkUmVxdWVzdCYm
IHJlcXVlc3QpCiAKICAgICBpZiAocmVxdWVzdC5zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSgp
KSB7CiAgICAgICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uIHsgcmVxdWVzdC5yZXF1ZXN0ZXIo
KSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25v
d24sIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgcmVxdWVzdC5zaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5KCkgfTsKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5
KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSwgeyB9
LCByZXF1ZXN0LmZyYW1lTmFtZSgpLCBbdGhpc10gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1l
TmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBQb2xpY3lDaGVja2VyOjpTaG91
bGRDb250aW51ZSBzaG91bGRDb250aW51ZSkgeworICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hl
Y2tOZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkpLCB7IH0sIHJlcXVlc3QuZnJhbWVOYW1lKCksIFt0aGlzXSAoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFNo
b3VsZENvbnRpbnVlUG9saWN5Q2hlY2sgc2hvdWxkQ29udGludWUpIHsKICAgICAgICAgICAgIGNv
bnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KHJlcXVlc3QsIGZvcm1TdGF0ZS5nZXQoKSwg
ZnJhbWVOYW1lLCBhY3Rpb24sIHNob3VsZENvbnRpbnVlLCBBbGxvd05hdmlnYXRpb25Ub0ludmFs
aWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzKTsKICAgICAgICAgfSk7
CiAKQEAgLTMwMjEsNyArMzAyMSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVz
dChGcmFtZUxvYWRSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiByZWZlCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tO
ZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHdvcmtpbmdSZXNvdXJjZVJl
cXVlc3QpLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTCwgb3BlbmVyUG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBX
ZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRp
bnVlIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKKyAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNo
ZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZSh3b3JraW5nUmVzb3Vy
Y2VSZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3RhdGUpLCBmcmFtZU5hbWUsIFt0aGlzLCBhbGxvd05h
dmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFt
ZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZVBvbGljeUNo
ZWNrIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNvbnRpbnVlTG9hZEFm
dGVyTmV3V2luZG93UG9saWN5KHJlcXVlc3QsIGZvcm1TdGF0ZS5nZXQoKSwgZnJhbWVOYW1lLCBh
Y3Rpb24sIHNob3VsZENvbnRpbnVlLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5l
clBvbGljeSk7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICB9KTsK
QEAgLTM1MDAsOSArMzUwMCw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVy
TmF2aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlCiB9CiAKIHZvaWQg
RnJhbWVMb2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwKLSAgICBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgY29uc3QgU3Ry
aW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgUG9saWN5Q2hl
Y2tlcjo6U2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0ZyYW1lT3BlbmVyUG9saWN5
IG9wZW5lclBvbGljeSkKKyAgICBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBm
cmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgU2hvdWxkQ29udGludWVQ
b2xpY3lDaGVjayBzaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFs
bG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQb2xpY3kgb3BlbmVyUG9s
aWN5KQogewotICAgIGlmIChzaG91bGRDb250aW51ZSAhPSBQb2xpY3lDaGVja2VyOjpTaG91bGRD
b250aW51ZTo6WWVzKQorICAgIGlmIChzaG91bGRDb250aW51ZSAhPSBTaG91bGRDb250aW51ZVBv
bGljeUNoZWNrOjpZZXMpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZjxGcmFtZT4gZnJhbWUo
bV9mcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGYwMTZmMWVhZTU1
ODI2Njc5MTAwNzQ2NjM0N2ViMjEyNzFkNTBiNWEuLjBlZDNmNzczMTk4YmQ0N2IzZjEzNDczNGE1
ZjRjMDkyMGUzMzBkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0zOSw3
ICszOSw2IEBACiAjaW5jbHVkZSAiTGF5b3V0TWlsZXN0b25lLmgiCiAjaW5jbHVkZSAiTWl4ZWRD
b250ZW50Q2hlY2tlci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAi
UG9saWN5Q2hlY2tlci5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VMb2FkTm90aWZpZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMu
aCIKQEAgLTc3LDcgKzc2LDYgQEAgY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKIGNsYXNzIE5ldHdv
cmtpbmdDb250ZXh0OwogY2xhc3MgTm9kZTsKIGNsYXNzIFBhZ2U7Ci1jbGFzcyBQb2xpY3lDaGVj
a2VyOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNz
IFJlc291cmNlUmVzcG9uc2U7CkBAIC04Nyw2ICs4NSw3IEBAIGNsYXNzIFN1YnN0aXR1dGVEYXRh
OwogCiBlbnVtIGNsYXNzIE5ld0xvYWRJblByb2dyZXNzIDogYm9vbDsKIGVudW0gY2xhc3MgTmF2
aWdhdGlvblBvbGljeURlY2lzaW9uIDogdWludDhfdDsKK2NsYXNzIEZyYW1lTG9hZGVyOwogZW51
bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOwogZW51bSBjbGFzcyBV
c2VkTGVnYWN5VExTIDogYm9vbDsKIGVudW0gY2xhc3MgSXNNYWluUmVzb3VyY2UgOiBib29sIHsg
Tm8sIFllcyB9OwpAQCAtMTEwLDYgKzEwOSw3IEBAIHB1YmxpYzoKIAogICAgIEZyYW1lJiBmcmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWU7IH0KIAorICAgIGNsYXNzIFBvbGljeUNoZWNrZXI7
CiAgICAgUG9saWN5Q2hlY2tlciYgcG9saWN5Q2hlY2tlcigpIGNvbnN0IHsgcmV0dXJuICptX3Bv
bGljeUNoZWNrZXI7IH0KIAogICAgIGNsYXNzIEhpc3RvcnlDb250cm9sbGVyOwpAQCAtMTU2LDcg
KzE1Niw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3BMb2FkaW5nKFVubG9hZEV2ZW50UG9saWN5
KTsKICAgICB2b2lkIGNsb3NlVVJMKCk7CiAgICAgdm9pZCBjYW5jZWxBbmRDbGVhcigpOwotICAg
IHZvaWQgY2xlYXJQcm92aXNpb25hbExvYWRGb3JQb2xpY3lDaGVjaygpOwogICAgIC8vIEZJWE1F
OiBjbGVhcigpIGlzIHRyeWluZyB0byBkbyB0b28gbWFueSB0aGluZ3MuIFdlIHNob3VsZCBicmVh
ayBpdCBkb3duIGludG8gc21hbGxlciBmdW5jdGlvbnMgKGlkZWFsbHkgd2l0aCBmZXdlciByYXcg
Qm9vbGVhbiBwYXJhbWV0ZXJzKS4KICAgICB2b2lkIGNsZWFyKERvY3VtZW50KiBuZXdEb2N1bWVu
dCwgYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRpZXMgPSB0cnVlLCBib29sIGNsZWFyU2NyaXB0T2Jq
ZWN0cyA9IHRydWUsIGJvb2wgY2xlYXJGcmFtZVZpZXcgPSB0cnVlLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJiBoYW5kbGVET01XaW5kb3dDcmVhdGlvbiA9IG51bGxwdHIpOwogCkBAIC0yNTYsNyAr
MjU1LDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lKiBvcGVuZXIoKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE9wZW5lcihGcmFtZSopOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGV0YWNoRnJvbUFsbE9wZW5lZEZyYW1lcygpOwotICAgIGJvb2wgaGFzT3BlbmVk
RnJhbWVzKCkgY29uc3QgeyByZXR1cm4gIW1fb3BlbmVkRnJhbWVzLmlzRW1wdHkoKTsgfQogCiAg
ICAgdm9pZCByZXNldE11bHRpcGxlRm9ybVN1Ym1pc3Npb25Qcm90ZWN0aW9uKCk7CiAKQEAgLTM2
Myw3ICszNjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hVbmxvYWRFdmVudHMoVW5s
b2FkRXZlbnRQb2xpY3kpOwogCiAgICAgdm9pZCBjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Q
b2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgTmF2aWdhdGlvblBvbGlj
eURlY2lzaW9uLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpOwotICAgIHZvaWQgY29udGlu
dWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0
YXRlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBQ
b2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
LCBOZXdGcmFtZU9wZW5lclBvbGljeSk7CisgICAgdm9pZCBjb250aW51ZUxvYWRBZnRlck5ld1dp
bmRvd1BvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIFNob3VsZENvbnRpbnVlUG9s
aWN5Q2hlY2ssIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQb2xp
Y3kpOwogICAgIHZvaWQgY29udGludWVGcmFnbWVudFNjcm9sbEFmdGVyTmF2aWdhdGlvblBvbGlj
eShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29sIHNob3VsZENvbnRpbnVlKTsKIAogICAgIGJv
b2wgc2hvdWxkUGVyZm9ybUZyYWdtZW50TmF2aWdhdGlvbihib29sIGlzRm9ybVN1Ym1pc3Npb24s
IGNvbnN0IFN0cmluZyYgaHR0cE1ldGhvZCwgRnJhbWVMb2FkVHlwZSwgY29uc3QgVVJMJik7CkBA
IC00MzAsNiArNDI4LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2FkVVJMSW50b0NoaWxkRnJh
bWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcmVyLCBGcmFtZSopOwogICAgIHZvaWQg
c3RhcnRlZCgpOwogCisgICAgLy8gUG9saWN5Q2hlY2tlciBzcGVjaWZpYy4KKyAgICB2b2lkIGNs
ZWFyUHJvdmlzaW9uYWxMb2FkRm9yUG9saWN5Q2hlY2soKTsKKyAgICBib29sIGhhc09wZW5lZEZy
YW1lcygpIGNvbnN0IHsgcmV0dXJuICFtX29wZW5lZEZyYW1lcy5pc0VtcHR5KCk7IH0KKwogICAg
IEZyYW1lJiBtX2ZyYW1lOwogICAgIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4gbV9jbGll
bnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCmluZGV4IGJjMDU3
ZjJmNzQyMjhhOWIwODg4ZmM0NzNmNmM0ZjA0YjczM2U1YjcuLmJmMzhkZGFhNzVlNzNiMDRkZWYy
MzUwZGUwMDE0NmU1MTIyZDY0YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlclR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
VHlwZXMuaApAQCAtMTEyLDYgKzExMiwxMSBAQCBPcHRpb25hbDxQb2xpY3lDaGVja0lkZW50aWZp
ZXI+IFBvbGljeUNoZWNrSWRlbnRpZmllcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAg
cmV0dXJuIFBvbGljeUNoZWNrSWRlbnRpZmllciB7ICpwcm9jZXNzLCBwb2xpY3lDaGVjayB9Owog
fQogCitlbnVtIGNsYXNzIFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2sgOiB1aW50OF90IHsKKyAg
ICBZZXMsCisgICAgTm8KK307CisKIGVudW0gY2xhc3MgTmV3RnJhbWVPcGVuZXJQb2xpY3kgOiB1
aW50OF90IHsKICAgICBTdXBwcmVzcywKICAgICBBbGxvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDBkZjZjZjhiZjRhMDc3ZWU5ZDlmNGVm
NzIxOWI5YjdhMDdhMTE0MjcuLjE3MDAwZGY4YmY0ODhkYTUxMDc3MTIxNmIwN2YyZjNkMWNlOGVi
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAK
QEAgLTE4Miw3ICsxODIsNyBAQCB2b2lkIE1lZGlhUmVzb3VyY2U6OnJlc3BvbnNlUmVjZWl2ZWQo
Q2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlcwogICAgICAgICBtX2Ns
aWVudC0+cmVzcG9uc2VSZWNlaXZlZCgqdGhpcywgcmVzcG9uc2UsIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRs
ZXJDYWxsZXIucmVsZWFzZSgpXSAoYXV0byBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7CiAgICAg
ICAgICAgICBpZiAoY29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKLSAgICAgICAgICAgIGlmIChzaG91bGRDb250aW51ZSA9PSBQb2xpY3lDaGVj
a2VyOjpTaG91bGRDb250aW51ZTo6Tm8pCisgICAgICAgICAgICBpZiAoc2hvdWxkQ29udGludWUg
PT0gU2hvdWxkQ29udGludWVQb2xpY3lDaGVjazo6Tm8pCiAgICAgICAgICAgICAgICAgc3RvcCgp
OwogICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGlj
eUNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCmlu
ZGV4IDQ2MTY5ZjUwOTk5NTc0N2Y0ZGYyMDBjM2MwODY3NGM3NzM1YTg3NWEuLmM1YzRlYTg1YTQ2
NGY4ZDlkMzMyZDQ0NzY4NzZjMmNjOTM0YjI5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9s
aWN5Q2hlY2tlci5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgYm9vbCBQb2xpY3lDaGVja0lkZW50aWZp
ZXI6OmlzVmFsaWRGb3IoUG9saWN5Q2hlY2tJZGVudGlmaWVyIGV4cGVjdGVkSWRlbnRpZmllcikK
ICAgICByZXR1cm4gbV9wb2xpY3lDaGVjayA9PSBleHBlY3RlZElkZW50aWZpZXIubV9wb2xpY3lD
aGVjazsKIH0KIAotUG9saWN5Q2hlY2tlcjo6UG9saWN5Q2hlY2tlcihGcmFtZSYgZnJhbWUpCitG
cmFtZUxvYWRlcjo6UG9saWN5Q2hlY2tlcjo6UG9saWN5Q2hlY2tlcihGcmFtZSYgZnJhbWUpCiAg
ICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgICwgbV9kZWxlZ2F0ZUlzRGVjaWRpbmdOYXZpZ2F0aW9u
UG9saWN5KGZhbHNlKQogICAgICwgbV9kZWxlZ2F0ZUlzSGFuZGxpbmdVbmltcGxlbWVudGFibGVQ
b2xpY3koZmFsc2UpCkBAIC05OSwxMiArOTksMTIgQEAgUG9saWN5Q2hlY2tlcjo6UG9saWN5Q2hl
Y2tlcihGcmFtZSYgZnJhbWUpCiB7CiB9CiAKLXZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZp
Z2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0
aW9uJiYgZnVuY3Rpb24pCit2b2lkIEZyYW1lTG9hZGVyOjpQb2xpY3lDaGVja2VyOjpjaGVja05h
dmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYgbmV3UmVxdWVzdCwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVu
Y3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBjaGVja05hdmlnYXRpb25Qb2xpY3koV1RGTW92ZShu
ZXdSZXF1ZXN0KSwgcmVkaXJlY3RSZXNwb25zZSwgbV9mcmFtZS5sb2FkZXIoKS5hY3RpdmVEb2N1
bWVudExvYWRlcigpLCB7IH0sIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAotQ29tcGxldGlvbkhh
bmRsZXJDYWxsaW5nU2NvcGUgUG9saWN5Q2hlY2tlcjo6ZXh0ZW5kQmxvYlVSTExpZmV0aW1lSWZO
ZWNlc3NhcnkoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAorQ29tcGxldGlvbkhhbmRs
ZXJDYWxsaW5nU2NvcGUgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNrZXI6OmV4dGVuZEJsb2JVUkxM
aWZldGltZUlmTmVjZXNzYXJ5KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIHsKICAg
ICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0Jsb2IoKSkKICAgICAgICAgcmV0dXJuIHsg
fTsKQEAgLTExOCw3ICsxMTgsNyBAQCBDb21wbGV0aW9uSGFuZGxlckNhbGxpbmdTY29wZSBQb2xp
Y3lDaGVja2VyOjpleHRlbmRCbG9iVVJMTGlmZXRpbWVJZk5lY2Vzc2FyeShSZQogICAgIH0pOwog
fQogCi12b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNl
LCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBSZWZQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwg
TmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbiwgUG9saWN5RGVjaXNp
b25Nb2RlIHBvbGljeURlY2lzaW9uTW9kZSkKK3ZvaWQgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNr
ZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBEb2N1bWVudExvYWRlciogbG9h
ZGVyLCBSZWZQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgTmF2aWdhdGlvblBvbGljeURlY2lz
aW9uRnVuY3Rpb24mJiBmdW5jdGlvbiwgUG9saWN5RGVjaXNpb25Nb2RlIHBvbGljeURlY2lzaW9u
TW9kZSkKIHsKICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbiA9IGxvYWRlci0+dHJpZ2dlcmlu
Z0FjdGlvbigpOwogICAgIGlmIChhY3Rpb24uaXNFbXB0eSgpKSB7CkBAIC0yNDcsMTMgKzI0Nywx
MyBAQCB2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdQogICAgICAgICBtX2ZyYW1lLmxvYWRlcigpLmNs
aWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihhY3Rpb24sIHJl
cXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UsIGZvcm1TdGF0ZS5nZXQoKSwgcG9saWN5RGVjaXNpb25N
b2RlLCByZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShkZWNpc2lvbkhhbmRsZXIpKTsKIH0KIAot
dm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeShOYXZpZ2F0aW9uQWN0aW9u
JiYgbmF2aWdhdGlvbkFjdGlvbiwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVmUHRyPEZv
cm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBOZXdXaW5kb3dQ
b2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIEZyYW1lTG9hZGVyOjpQb2xp
Y3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeShOYXZpZ2F0aW9uQWN0aW9uJiYgbmF2aWdh
dGlvbkFjdGlvbiwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVmUHRyPEZvcm1TdGF0ZT4m
JiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBOZXdXaW5kb3dQb2xpY3lEZWNp
c2lvbkZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKSAm
JiBtX2ZyYW1lLmRvY3VtZW50KCktPmlzU2FuZGJveGVkKFNhbmRib3hQb3B1cHMpKQotICAgICAg
ICByZXR1cm4gZnVuY3Rpb24oeyB9LCBudWxscHRyLCB7IH0sIHsgfSwgU2hvdWxkQ29udGludWU6
Ok5vKTsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHsgfSwgbnVsbHB0ciwgeyB9LCB7IH0sIFNo
b3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5vKTsKIAogICAgIGlmICghRE9NV2luZG93OjphbGxv
d1BvcFVwKG1fZnJhbWUpKQotICAgICAgICByZXR1cm4gZnVuY3Rpb24oeyB9LCBudWxscHRyLCB7
IH0sIHsgfSwgU2hvdWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHsg
fSwgbnVsbHB0ciwgeyB9LCB7IH0sIFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5vKTsKIAog
ICAgIGF1dG8gYmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uID0gZXh0ZW5kQmxvYlVSTExpZmV0aW1l
SWZOZWNlc3NhcnkocmVxdWVzdCk7CiAKQEAgLTI2MywzOCArMjYzLDM4IEBAIHZvaWQgUG9saWN5
Q2hlY2tlcjo6Y2hlY2tOZXdXaW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbiYmIG5hdmlnYXRp
b25BY3Rpb24sIFJlCiAgICAgICAgIHJlcXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBv
bGljeUFjdGlvbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0
YWJsZSB7CiAKICAgICAgICAgaWYgKCFyZXNwb25zZUlkZW50aWZpZXIuaXNWYWxpZEZvcihyZXF1
ZXN0SWRlbnRpZmllcikpCi0gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oeyB9LCBudWxscHRy
LCB7IH0sIHsgfSwgU2hvdWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAgICAgIHJldHVybiBmdW5j
dGlvbih7IH0sIG51bGxwdHIsIHsgfSwgeyB9LCBTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpO
byk7CiAKICAgICAgICAgc3dpdGNoIChwb2xpY3lBY3Rpb24pIHsKICAgICAgICAgY2FzZSBQb2xp
Y3lBY3Rpb246OkRvd25sb2FkOgogICAgICAgICAgICAgZnJhbWUtPmxvYWRlcigpLmNsaWVudCgp
LnN0YXJ0RG93bmxvYWQocmVxdWVzdCk7CiAgICAgICAgICAgICBGQUxMVEhST1VHSDsKICAgICAg
ICAgY2FzZSBQb2xpY3lBY3Rpb246Oklnbm9yZToKLSAgICAgICAgICAgIGZ1bmN0aW9uKHsgfSwg
bnVsbHB0ciwgeyB9LCB7IH0sIFNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAgICAgICBmdW5j
dGlvbih7IH0sIG51bGxwdHIsIHsgfSwgeyB9LCBTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpO
byk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgUG9saWN5QWN0aW9uOjpTdG9w
QWxsTG9hZHM6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAg
IGZ1bmN0aW9uKHsgfSwgbnVsbHB0ciwgeyB9LCB7IH0sIFNob3VsZENvbnRpbnVlOjpObyk7Cisg
ICAgICAgICAgICBmdW5jdGlvbih7IH0sIG51bGxwdHIsIHsgfSwgeyB9LCBTaG91bGRDb250aW51
ZVBvbGljeUNoZWNrOjpObyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgUG9s
aWN5QWN0aW9uOjpVc2U6Ci0gICAgICAgICAgICBmdW5jdGlvbihyZXF1ZXN0LCBtYWtlV2Vha1B0
cihmb3JtU3RhdGUuZ2V0KCkpLCBmcmFtZU5hbWUsIG5hdmlnYXRpb25BY3Rpb24sIFNob3VsZENv
bnRpbnVlOjpZZXMpOworICAgICAgICAgICAgZnVuY3Rpb24ocmVxdWVzdCwgbWFrZVdlYWtQdHIo
Zm9ybVN0YXRlLmdldCgpKSwgZnJhbWVOYW1lLCBuYXZpZ2F0aW9uQWN0aW9uLCBTaG91bGRDb250
aW51ZVBvbGljeUNoZWNrOjpZZXMpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0pOwogfQogCi12b2lkIFBvbGljeUNo
ZWNrZXI6OnN0b3BDaGVjaygpCit2b2lkIEZyYW1lTG9hZGVyOjpQb2xpY3lDaGVja2VyOjpzdG9w
Q2hlY2soKQogewogICAgIG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuY2FuY2VsUG9saWN5Q2hl
Y2soKTsKIH0KIAotdm9pZCBQb2xpY3lDaGVja2VyOjpjYW5ub3RTaG93TUlNRVR5cGUoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIEZyYW1lTG9hZGVyOjpQb2xpY3lDaGVj
a2VyOjpjYW5ub3RTaG93TUlNRVR5cGUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
CiB7CiAgICAgaGFuZGxlVW5pbXBsZW1lbnRhYmxlUG9saWN5KG1fZnJhbWUubG9hZGVyKCkuY2xp
ZW50KCkuY2Fubm90U2hvd01JTUVUeXBlRXJyb3IocmVzcG9uc2UpKTsKIH0KIAotdm9pZCBQb2xp
Y3lDaGVja2VyOjpoYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3koY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IpCit2b2lkIEZyYW1lTG9hZGVyOjpQb2xpY3lDaGVja2VyOjpoYW5kbGVVbmltcGxl
bWVudGFibGVQb2xpY3koY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAgbV9kZWxl
Z2F0ZUlzSGFuZGxpbmdVbmltcGxlbWVudGFibGVQb2xpY3kgPSB0cnVlOwogICAgIG1fZnJhbWUu
bG9hZGVyKCkuY2xpZW50KCkuZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShlcnJvcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaAppbmRleCBjM2NlMjY2MjdlZWQ4MzQz
NDRlNGMyNjM2YjM1MGI1OGQ4MTM2NWNlLi5mZTA0NjEyZWU3ZjQyNWVhMDAyZjAzZjlkMTRkMWQ4
N2NkMGE0ODE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmgKQEAgLTI5LDcg
KzI5LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgi
CisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIK
ICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgpAQCAtNjAsMTkgKzYwLDE0IEBAIGVudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeURlY2lzaW9u
IDogdWludDhfdCB7CiAKIGVudW0gY2xhc3MgUG9saWN5RGVjaXNpb25Nb2RlIHsgU3luY2hyb25v
dXMsIEFzeW5jaHJvbm91cyB9OwogCi1jbGFzcyBQb2xpY3lDaGVja2VyIHsKK2NsYXNzIEZyYW1l
TG9hZGVyOjpQb2xpY3lDaGVja2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQb2xpY3lD
aGVja2VyKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBs
aWNpdCBQb2xpY3lDaGVja2VyKEZyYW1lJik7CiAKLSAgICBlbnVtIGNsYXNzIFNob3VsZENvbnRp
bnVlIHsKLSAgICAgICAgWWVzLAotICAgICAgICBObwotICAgIH07Ci0KICAgICB1c2luZyBOYXZp
Z2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVz
b3VyY2VSZXF1ZXN0JiYsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmLCBOYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb24pPjsKLSAgICB1c2luZyBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBXZWFrUHRyPEZvcm1T
dGF0ZT4mJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
LCBTaG91bGRDb250aW51ZSk+OworICAgIHVzaW5nIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVu
Y3Rpb24gPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFdl
YWtQdHI8Rm9ybVN0YXRlPiYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYsIFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2spPjsKIAogICAgIHZvaWQgY2hl
Y2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlLCBEb2N1bWVudExvYWRlciosIFJlZlB0cjxGb3JtU3RhdGU+
JiYsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYsIFBvbGljeURlY2lzaW9uTW9k
ZSA9IFBvbGljeURlY2lzaW9uTW9kZTo6QXN5bmNocm9ub3VzKTsKICAgICB2b2lkIGNoZWNrTmF2
aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7CkBA
IC0xMTMsMTQgKzEwOCwxNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
LS8vIFRvIHN1cHBvcnQgZW5jb2RpbmcgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29u
dGludWUgaW4gWFBDIG1lc3NhZ2VzCisvLyBUbyBzdXBwb3J0IGVuY29kaW5nIFdlYkNvcmU6OlNo
b3VsZENvbnRpbnVlUG9saWN5Q2hlY2sgaW4gWFBDIG1lc3NhZ2VzCiBuYW1lc3BhY2UgV1RGIHsK
IAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpT
aG91bGRDb250aW51ZT4gewordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpT
aG91bGRDb250aW51ZVBvbGljeUNoZWNrPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKLSAgICAgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUsCi0gICAg
ICAgIFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObywKLSAgICAgICAg
V2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6OlllcworICAgICAgICBXZWJD
b3JlOjpTaG91bGRDb250aW51ZVBvbGljeUNoZWNrLAorICAgICAgICBXZWJDb3JlOjpTaG91bGRD
b250aW51ZVBvbGljeUNoZWNrOjpObywKKyAgICAgICAgV2ViQ29yZTo6U2hvdWxkQ29udGludWVQ
b2xpY3lDaGVjazo6WWVzCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgK
aW5kZXggYTE0NWYxNjNjNjQzYTM4NjhlMTk3MTM4YWFlNGVkY2ZkMDQ3NmY5Yy4uMjViZGNiNThl
YThmMTZhODc5OWVlYjQ4ODc3NTRmNWM5OTNjOWRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9h
ZGVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQoKSA9
IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIp
IHsgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Olllcyk7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91
bGRDb250aW51ZVBvbGljeUNoZWNrKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9u
SGFuZGxlcihTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpZZXMpOyB9CiAgICAgdmlydHVhbCB2
b2lkIHJlZGlyZWN0UmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUocmVxdWVzdCkpOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZENh
Y2hlUmVzcG9uc2UoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGF0YVNlbnQoUGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgdW5zaWduZWQgbG9uZyBsb25nLCB1bnNpZ25lZCBsb25nIGxvbmcpIHsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVy
Lm1tCmluZGV4IGM0MGQ3ZjlmOTRmMDg5YzZmOWFjNzI2ZWI1ZGJlOTQyZTFmNGE3YTMuLjdlMDc3
ODc5NjI3MTZjYzc1NWZmNWFkZjVjODRkZTA0MWI2YWExMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNv
dXJjZUxvYWRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0KQEAgLTE0Myw3ICsxNDMs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9hZEZpbmlzaGVkKCk7CiAKICAgICAvLyBQbGF0Zm9y
bU1lZGlhUmVzb3VyY2VDbGllbnQKLSAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmKSBmaW5hbDsKKyAgICB2b2lk
IHJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWVQb2xpY3lDaGVj
ayk+JiYpIGZpbmFsOwogICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpIGZpbmFsIHsgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7IH0K
ICAgICBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdm9pZCBk
YXRhU2VudChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2ln
bmVkIGxvbmcgbG9uZykgZmluYWwgeyB9CkBAIC0xODYsMTAgKzE4NiwxMCBAQCB2b2lkIFBsYXRm
b3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6c3RvcCgpCiAgICAgcmVzb3VyY2UtPnNldENsaWVudChu
dWxscHRyKTsKIH0KIAotdm9pZCBQbGF0Zm9ybVJlc291cmNlTWVkaWFMb2FkZXI6OnJlc3BvbnNl
UmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29u
dGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBQbGF0Zm9ybVJlc291cmNlTWVkaWFM
b2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29u
dGludWVQb2xpY3lDaGVjayk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9wYXJlbnQu
cmVzcG9uc2VSZWNlaXZlZChyZXNwb25zZSk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5
Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Olllcyk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoU2hv
dWxkQ29udGludWVQb2xpY3lDaGVjazo6WWVzKTsKIH0KIAogdm9pZCBQbGF0Zm9ybVJlc291cmNl
TWVkaWFMb2FkZXI6OmxvYWRGYWlsZWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0
V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDdmN2UyNDhmOTBh
NDEzMWY3ODBkZjFlYTcyNzMwZDNkMDc1YTcwNTkuLmM4NTdmMTY1YTdiMmNhODNhNmU0ZjRjMTAw
NGEwMTU0ZjkyZWIwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFt
ZXIuY3BwCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjaGVja1VwZGF0ZUJs
b2Nrc2l6ZSh1bnNpZ25lZCBieXRlc1JlYWQpOwogCiAgICAgLy8gUGxhdGZvcm1NZWRpYVJlc291
cmNlQ2xpZW50IHZpcnR1YWwgbWV0aG9kcy4KLSAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUGxh
dGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmKSBvdmVycmlkZTsK
KyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWVQ
b2xpY3lDaGVjayk+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGF0YVJlY2VpdmVkKFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYsIGNvbnN0IGNoYXIqLCBpbnQpIG92ZXJyaWRlOwogICAgIHZvaWQgYWNj
ZXNzQ29udHJvbENoZWNrRmFpbGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291
cmNlRXJyb3ImKSBvdmVycmlkZTsKICAgICB2b2lkIGxvYWRGYWlsZWQoUGxhdGZvcm1NZWRpYVJl
c291cmNlJiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwpAQCAtOTkyLDE0ICs5OTIs
MTQgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6Y2hlY2tVcGRhdGVCbG9j
a3NpemUodW5zaWduZWQgYnl0ZXNSZWFkKQogICAgIH0KIH0KIAotdm9pZCBDYWNoZWRSZXNvdXJj
ZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRm
b3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2spPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgV2ViS2l0V2Vi
U3JjKiBzcmMgPSBXRUJLSVRfV0VCX1NSQyhtX3NyYy5nZXQoKSk7CiAgICAgV2ViS2l0V2ViU3Jj
UHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKICAgICBEYXRhTXV0ZXg8V2ViS2l0V2ViU3JjUHJp
dmF0ZTo6U3RyZWFtaW5nTWVtYmVycz46OkxvY2tlZFdyYXBwZXIgbWVtYmVycyhwcml2LT5kYXRh
TXV0ZXgpOwogICAgIGlmIChtZW1iZXJzLT5yZXF1ZXN0TnVtYmVyICE9IG1fcmVxdWVzdE51bWJl
cikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250
aW51ZTo6Tm8pOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRDb250aW51ZVBvbGlj
eUNoZWNrOjpObyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEwNTEsNyArMTA1MSw3
IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQo
UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uCiAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNy
YywgUkVTT1VSQ0UsIFJFQUQsICgiUiV1OiBSZWNlaXZlZCAlZCBIVFRQIGVycm9yIGNvZGUiLCBt
X3JlcXVlc3ROdW1iZXIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpLCAobnVsbHB0cikpOwog
ICAgICAgICBtZW1iZXJzLT5kb2VzSGF2ZUVPUyA9IHRydWU7CiAgICAgICAgIG1lbWJlcnMtPnJl
c3BvbnNlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQ
b2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpObyk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTEwNjIsNyArMTA2Miw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdD
bGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uCiAgICAg
ICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIFJFU09VUkNFLCBSRUFELCAoIlIldTogUmVj
ZWl2ZWQgdW5leHBlY3RlZCAlZCBIVFRQIHN0YXR1cyBjb2RlIGZvciByYW5nZSByZXF1ZXN0Iiwg
bV9yZXF1ZXN0TnVtYmVyLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKSwgKG51bGxwdHIpKTsK
ICAgICAgICAgICAgIG1lbWJlcnMtPmRvZXNIYXZlRU9TID0gdHJ1ZTsKICAgICAgICAgICAgIG1l
bWJlcnMtPnJlc3BvbnNlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwotICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5vKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNy
YywgIlIldTogUmFuZ2UgcmVxdWVzdCBzdWNjZWVkZWQiLCBtX3JlcXVlc3ROdW1iZXIpOwpAQCAt
MTEwMSw3ICsxMTAxLDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVz
cG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb24KICAgICBtZW1iZXJzLT53
YXNSZXNwb25zZVJlY2VpdmVkID0gdHJ1ZTsKICAgICBtZW1iZXJzLT5yZXNwb25zZUNvbmRpdGlv
bi5ub3RpZnlPbmUoKTsKIAotICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNo
b3VsZENvbnRpbnVlOjpZZXMpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVl
UG9saWN5Q2hlY2s6Olllcyk7CiB9CiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGll
bnQ6OmRhdGFSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBjaGFyKiBkYXRh
LCBpbnQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCmluZGV4IDRiOThhZGFkYmFhM2My
NTBiMjBmNGNhZTQ2ZTAxNzQ1MDAwZjk5ZTUuLjc0ZWQ5MzRhNWJhYjFhYzZiMjY2NDdmYWU3ZTM3
ODU3YWJjOWRhZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KQEAgLTU3LDcgKzU3LDcgQEAg
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIEBwcm9wZXJ0eSAoYXNzaWduKSBXZWJDb3JlTlNVUkxT
ZXNzaW9uICogX051bGxhYmxlIHNlc3Npb247CiAKIC0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYpcmVzb3VyY2Ugc2VudEJ5dGVzOih1bnNpZ25lZCBsb25nIGxvbmcpYnl0
ZXNTZW50IHRvdGFsQnl0ZXNUb0JlU2VudDoodW5zaWduZWQgbG9uZyBsb25nKXRvdGFsQnl0ZXNU
b0JlU2VudDsKLS0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3Vy
Y2UgcmVjZWl2ZWRSZXNwb25zZTooY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzcG9uc2UgY29t
cGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hv
dWxkQ29udGludWUpPiYmKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClyZXNvdXJjZTooUGxh
dGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJjZSByZWNlaXZlZFJlc3BvbnNlOihjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJilyZXNwb25zZSBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTaG91bGRDb250aW51ZVBvbGljeUNoZWNrKT4mJiljb21wbGV0aW9uSGFuZGxlcjsK
IC0gKEJPT0wpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2Ugc2hvdWxk
Q2FjaGVSZXNwb25zZTooY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzcG9uc2U7CiAtICh2b2lk
KXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIHJlY2VpdmVkRGF0YToo
Y29uc3QgY2hhciopZGF0YSBsZW5ndGg6KGludClsZW5ndGg7CiAtICh2b2lkKXJlc291cmNlOihQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIHJlY2VpdmVkUmVkaXJlY3Q6KGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKXJlc3BvbnNlIHJlcXVlc3Q6KFJlc291cmNlUmVxdWVzdCYmKXJlcXVl
c3QgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzb3VyY2VSZXF1
ZXN0JiYpPiYmKWNvbXBsZXRpb25IYW5kbGVyOwpAQCAtMzgyLDcgKzM4Miw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgY2xlYXJUYXNrKCk7CiAKLSAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUGxh
dGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmKSBvdmVycmlkZTsK
KyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWVQ
b2xpY3lDaGVjayk+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYpPiYmKSBvdmVy
cmlkZTsKICAgICBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoUGxhdGZvcm1NZWRpYVJlc291cmNl
JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGF0YVNlbnQo
UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgdW5zaWduZWQgbG9uZyBsb25nLCB1bnNpZ25lZCBsb25n
IGxvbmcpIG92ZXJyaWRlOwpAQCAtNDExLDExICs0MTEsMTEgQEAgdm9pZCBXZWJDb3JlTlNVUkxT
ZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmRhdGFTZW50KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVz
b3VyY2UKICAgICBbbV90YXNrIHJlc291cmNlOnJlc291cmNlIHNlbnRCeXRlczpieXRlc1NlbnQg
dG90YWxCeXRlc1RvQmVTZW50OnRvdGFsQnl0ZXNUb0JlU2VudF07CiB9CiAKLXZvaWQgV2ViQ29y
ZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVk
aWFSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50
OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3Vs
ZENvbnRpbnVlUG9saWN5Q2hlY2spPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fdGFza0xvY2spOwogICAgIGlmICghbV90YXNrKQotICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Ok5vKTsK
KyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlUG9saWN5Q2hl
Y2s6Ok5vKTsKIAogICAgIFttX3Rhc2sgcmVzb3VyY2U6cmVzb3VyY2UgcmVjZWl2ZWRSZXNwb25z
ZTpyZXNwb25zZSBjb21wbGV0aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07
CiB9CkBAIC02MjgsNyArNjI4LDcgQEAgdm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tD
bGllbnQ6OmxvYWRGaW5pc2hlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc28KICAgICAvLyBO
by1vcC4KIH0KIAotLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNv
dXJjZSByZWNlaXZlZFJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNwb25zZSBj
b21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpT
aG91bGRDb250aW51ZSk+JiYpY29tcGxldGlvbkhhbmRsZXIKKy0gKHZvaWQpcmVzb3VyY2U6KFBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2UgcmVjZWl2ZWRSZXNwb25zZTooY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpcmVzcG9uc2UgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU2hvdWxkQ29udGludWVQb2xpY3lDaGVjayk+JiYpY29tcGxldGlvbkhhbmRsZXIK
IHsKICAgICBBU1NFUlQocmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6U291
cmNlOjpOZXR3b3JrIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlNv
dXJjZTo6RGlza0NhY2hlIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9uc2U6
OlNvdXJjZTo6RGlza0NhY2hlQWZ0ZXJWYWxpZGF0aW9uIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09
IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcik7CiAgICAgQVNTRVJUX1VO
VVNFRChyZXNvdXJjZSwgJnJlc291cmNlID09IF9yZXNvdXJjZSk7CkBAIC02MzksMTQgKzYzOSwx
NCBAQCB2b2lkIFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDo6bG9hZEZpbmlzaGVk
KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzbwogICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNl
PiBzdHJvbmdSZXNwb25zZSB7IHJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKSB9OwogICAgIFJldGFp
blB0cjxXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2s+IHN0cm9uZ1NlbGYgeyBzZWxmIH07CiAg
ICAgaWYgKCFzZWxmLnNlc3Npb24pCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihQ
b2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoU2hvdWxkQ29udGludWVQb2xpY3lDaGVjazo6Tm8pOwogICAgIFtzZWxmLnNl
c3Npb24gYWRkRGVsZWdhdGVPcGVyYXRpb246W3N0cm9uZ1NlbGYsIHN0cm9uZ1Jlc3BvbnNlLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxl
IHsKICAgICAgICAgc3Ryb25nU2VsZi0+X3Jlc3BvbnNlID0gc3Ryb25nUmVzcG9uc2UuZ2V0KCk7
CiAKICAgICAgICAgaWQ8TlNVUkxTZXNzaW9uRGF0YURlbGVnYXRlPiBkYXRhRGVsZWdhdGUgPSAo
aWQ8TlNVUkxTZXNzaW9uRGF0YURlbGVnYXRlPilzdHJvbmdTZWxmLmdldCgpLnNlc3Npb24uZGVs
ZWdhdGU7CiAgICAgICAgIGlmICghW2RhdGFEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKFVSTFNlc3Npb246ZGF0YVRhc2s6ZGlkUmVjZWl2ZVJlc3BvbnNlOmNvbXBsZXRpb25I
YW5kbGVyOildKSB7CiAgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtzdHJvbmdTZWxmLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxl
IHsKLSAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91
bGRDb250aW51ZTo6WWVzKTsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTaG91
bGRDb250aW51ZVBvbGljeUNoZWNrOjpZZXMpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KQEAgLTY1NCwxMCArNjU0LDEwIEBAIHZvaWQgV2ViQ29yZU5T
VVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50Ojpsb2FkRmluaXNoZWQoUGxhdGZvcm1NZWRpYVJlc291
cmNlJiByZXNvCiAgICAgICAgIFtkYXRhRGVsZWdhdGUgVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9u
ICopc3Ryb25nU2VsZi5nZXQoKS5zZXNzaW9uIGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFz
ayAqKXN0cm9uZ1NlbGYuZ2V0KCkgZGlkUmVjZWl2ZVJlc3BvbnNlOnN0cm9uZ1Jlc3BvbnNlLmdl
dCgpIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbc3Ryb25nU2VsZiwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKE5TVVJMU2Vzc2lvblJlc3Bv
bnNlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24pIG11dGFibGUgewogICAgICAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbc3Ryb25nU2VsZiwgZGlzcG9zaXRpb24sIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICAgICAgICAg
IGlmIChkaXNwb3NpdGlvbiA9PSBOU1VSTFNlc3Npb25SZXNwb25zZUNhbmNlbCkKLSAgICAgICAg
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGlu
dWU6Ok5vKTsKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29u
dGludWVQb2xpY3lDaGVjazo6Tm8pOwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgICAgICAgICBBU1NFUlQoZGlzcG9zaXRpb24gPT0gTlNVUkxTZXNzaW9uUmVzcG9uc2VBbGxv
dyk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6
OlNob3VsZENvbnRpbnVlOjpZZXMpOworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpZZXMpOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KS5nZXQoKV07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKaW5kZXggZjc5
MzM0N2UyODQxYWUzYzJiYzZiNDE5YTJjYzA4NDVlYWJiOTE5ZC4uNjQxNTBmOTkyNzc1MDUxYjIx
MmRjNjA2NzhiZjUyZTA0YWY5NDU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcApAQCAtNjYsNyArNjYsNyBAQCBi
b29sIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2soKSBjb25z
dAogICAgIHJldHVybiBtX2RpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2s7CiB9CiAKLXZvaWQgUmVt
b3RlTWVkaWFSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgYm9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNr
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2spPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsK
QEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpyZXNwb25zZVJlY2Vp
dmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib28KICAgICBtX2RpZFBhc3NB
Y2Nlc3NDb250cm9sQ2hlY2sgPSBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrOwogICAgIG1fY2xp
ZW50LT5yZXNwb25zZVJlY2VpdmVkKCp0aGlzLCByZXNwb25zZSwgW3Byb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oYXV0byBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0gICAgICAgIGlmIChzaG91bGRDb250aW51ZSA9PSBQb2xpY3lDaGVja2Vy
OjpTaG91bGRDb250aW51ZTo6Tm8pCisgICAgICAgIGlmIChzaG91bGRDb250aW51ZSA9PSBTaG91
bGRDb250aW51ZVBvbGljeUNoZWNrOjpObykKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnN0
b3AoKTsKIAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzaG91bGRDb250aW51ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJj
ZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2Uu
aAppbmRleCA0NWJhMWNhYWMyYWRmMmVkNjgwMjFkZjI3ZmViMTM3NmU2ZDMzNDIxLi40ODZmNmJi
NjFhMzc5MGRmZjJmNDBlNTg1M2Y1ODg4NWY3ZDc4NWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmgKQEAgLTQ4LDcgKzQ4
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogICAgIGJvb2wgZGlkUGFzc0Fj
Y2Vzc0NvbnRyb2xDaGVjaygpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCByZXNwb25zZVJlY2Vp
dmVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBib29sLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJik7Cisg
ICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
LCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlNob3VsZENvbnRpbnVlUG9s
aWN5Q2hlY2spPiYmKTsKICAgICB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKT4mJik7CiAgICAgdm9pZCBk
YXRhU2VudCh1aW50NjRfdCwgdWludDY0X3QpOwogICAgIHZvaWQgZGF0YVJlY2VpdmVkKGNvbnN0
IGNoYXIqLCBpbnQ2NF90KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwCmluZGV4IGNlNzkzZjU5
OTk5MThkNDUwN2NmZjg2ZjI4MzVlYzljNmMyOTNlZWMuLjEzNGI4Y2E2YjhhMmYxODAwOTE3NzQx
ZjlhY2EwNjg3NmFlODBjMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcApAQCAtNTksMTEg
KzU5LDExIEBAIHZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlbW92ZU1lZGlhUmVz
b3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpCiAgICAgbV9yZW1vdGVNZWRpYVJlc291
cmNlcy5yZW1vdmUocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOwogfQogCi12b2lkIFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpyZXNwb25zZVJlY2VpdmVkKFJlbW90ZU1lZGlhUmVz
b3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9v
bCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBvbGlj
eUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlc3BvbnNlUmVjZWl2ZWQoUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29s
IGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxk
Q29udGludWVQb2xpY3lDaGVjayk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byog
cmVzb3VyY2UgPSBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCk7CiAgICAgaWYgKCFyZXNv
dXJjZSB8fCAhcmVzb3VyY2UtPnJlYWR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoU2hvdWxkQ29udGludWVQb2xpY3lDaGVjazo6Tm8pOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oCmluZGV4IDA4ZmRlNDI5MjEzYjJhODdjODMyZTg3
ODc2NTI0MzFkOGUwNDRhNjMuLjc3NTAxNDU4NjAwZGQwOTg2NTdjOTQ1ZWViMGVlNDliYjZlMDAz
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IGZpbmFsOwogCiBwcml2YXRlOgotICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJv
b2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxk
Q29udGludWUpPiYmKTsKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBib29sLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2sp
PiYmKTsKICAgICB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJik+JiYpOwogICAgIHZvaWQgZGF0YVNlbnQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIsIHVpbnQ2NF90LCB1aW50NjRfdCk7CiAgICAgdm9pZCBkYXRhUmVjZWl2ZWQoUmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IGMwNGEzODZiZjBhMmJmMzAw
MzkwODRiMTdmMGI1NTZjZDFjMjhhM2MuLjRlYmNjNWYwMTdhY2NlNTEzMDAwZGQxODkyYmE0OGVl
MWI4MzIwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAg
LTI2LDcgKzI2LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgewotICAgIFJlc3BvbnNlUmVj
ZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgYm9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNr
KSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUgc2hvdWxkQ29udGlu
dWUpIEFzeW5jCisgICAgUmVzcG9uc2VSZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBib29s
IGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2spIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U2hv
dWxkQ29udGludWVQb2xpY3lDaGVjayBzaG91bGRDb250aW51ZSkgQXN5bmMKICAgICBSZWRpcmVj
dFJlY2VpdmVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJl
c3BvbnNlKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJldHVyblJlcXVlc3QpIEFzeW5j
CiAgICAgRGF0YVNlbnQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwg
dWludDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpCiAgICAgRGF0
YVJlY2VpdmVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIElQQzo6
RGF0YVJlZmVyZW5jZSBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKaW5kZXggN2JhM2E2NmRjOTM2MWE0ZTk4ZDg3YTdiNjdjMmJhZjY3MjQ5ZDc5ZS4uZDgzYWUz
MjkwMmE5NDVkNWM4MjVkMjVhNTQyMWZmY2Q5NGUyYTA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC02MDcsNiArNjA3LDcgQEAgZGVmIGhlYWRlcnNfZm9y
X3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlJzogWyc8
V2ViQ29yZS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6UGx1Z2luSW5mbyc6IFsnPFdlYkNvcmUvUGx1Z2luRGF0YS5oPiddLAogICAgICAgICAn
V2ViQ29yZTo6UG9saWN5QWN0aW9uJzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10s
CisgICAgICAgICdXZWJDb3JlOjpTaG91bGRDb250aW51ZVBvbGljeUNoZWNrJzogWyc8V2ViQ29y
ZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXInOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dl
YkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6UmVjZW50U2VhcmNoJzogWyc8V2ViQ29yZS9TZWFyY2hQ
b3B1cE1lbnUuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAppbmRleCA5MDk2ZTI1
MDBhOGEzM2Y3ZTM1NmQyYjNjZWY5NDQ5ODdkZDA3N2Q5Li42YTZiYmNkNmQ1YTc2ZmI5NDAzZTdk
YjdmNzcwMWY1ZmVmODI2NjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCkBAIC00
Niw3ICs0Niw3IEBAIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6flJlbW90ZU1lZGlhUmVzb3Vy
Y2VQcm94eSgpCiB7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpyZXNwb25z
ZVJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpyZXNwb25zZVJlY2VpdmVkKFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlNob3VsZENvbnRpbnVl
UG9saWN5Q2hlY2spPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fY29ubmVjdGlvbi0+
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6
UmVzcG9uc2VSZWNlaXZlZChtX2lkLCByZXNwb25zZSwgbV9wbGF0Zm9ybU1lZGlhUmVzb3VyY2Uu
ZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaygpKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gc2hvdWxkQ29udGludWUpIG11dGFibGUgewogICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihzaG91bGRDb250aW51ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaAppbmRleCBkNmNkZjk2YWIyMDAzZDc4MTBmZWRkMTlhZDA1NzBmNjAxMzA0NzkyLi45
NTNiYjMwMzkwNGRlY2M3NzEwMzVjYmQ2OTY4MzlmNWE3MDVkZjkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8v
IFBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudAotICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpT
aG91bGRDb250aW51ZSk+JiYpIGZpbmFsOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTaG91bGRDb250aW51ZVBvbGlj
eUNoZWNrKT4mJikgZmluYWw7CiAgICAgdm9pZCByZWRpcmVjdFJlY2VpdmVkKFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJik+JiYpIGZpbmFsOwogICAgIGJvb2wgc2hvdWxkQ2FjaGVSZXNw
b25zZShXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJikgZmluYWw7CiAgICAgdm9pZCBkYXRhU2VudChXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykg
ZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397883</attachid>
            <date>2020-04-28 14:00:22 -0700</date>
            <delta_ts>2020-04-29 01:22:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211138-20200428230020.patch</filename>
            <type>text/plain</type>
            <size>42309</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjViM2MxYjE0OGE5MmM2
Yzg2ZDQ5NmRiNWUwNmJjNWMxNjAxNGRhMC4uMTY4YzgwYjZlN2Q1NmFmMWRhMGIzYzBlOGFiZTZm
OGYzNDRkYTY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA0LTI4ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBQb2xpY3lDaGVja2VyIGFu
IGlubmVyIGNsYXNzIG9mIEZyYW1lTG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTExMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQb2xpY3lDaGVja2VyIEhpc3RvcnlDb250cm9sbGVyIGFuIGlu
bmVyIGNsYXNzIG9mIEZyYW1lTG9hZGVyLCB0aGlzIGFsbG93cyB1cyB0byBtb3ZlIHNvbWUgbWV0
aG9kcworICAgICAgICBvbmx5IHVzZWQgYnkgUG9saWN5Q2hlY2tlciBvdXQgb2YgdGhlIEZyYW1l
TG9hZGVyIHB1YmxpYyBBUEkuIEJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGZvcndhcmQg
ZGVjbGFyZQorICAgICAgICBhbiBlbnVtIGNsYXNzIGluIGFuIGlubmVyIGNsYXNzLCBtb3ZlIFNo
b3VsZENvbnRpbnVlIG91dCBvZiB0aGUgUG9saWN5Q2hlY2tlciBjbGFzcyBhbmQgcmVuYW1lIGl0
CisgICAgICAgIHRvIFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2suCisKKyAgICAgICAgKiBsb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRV
UkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kpOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlclR5cGVz
Lmg6CisgICAgICAgICogbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogbG9h
ZGVyL1BvbGljeUNoZWNrZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9Qb2xpY3lDaGVja2VyLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQ6OnJlc3Bv
bnNlUmVjZWl2ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZCk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1t
OgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50Ojpy
ZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKC1bV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNr
IHJlc291cmNlOnJlY2VpdmVkUmVzcG9uc2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMjAt
MDQtMjggIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW1vdmUgZG93
bmxvYWRBdHRyaWJ1dGUgZnJvbSBEb2N1bWVudExvYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyMDBjYzc4YTlh
YjY3ZjBkYWQ0Nzk3YTZmYTc3ZjRmMWNjOWVmNmUxLi43MDNlYmI0MGE5NDMwMDBhMGZlMmU1ZTZj
MGFiMTFhYWU3Y2QyN2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA0LTI4ICBS
b2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBQb2xpY3lDaGVja2Vy
IGFuIGlubmVyIGNsYXNzIG9mIEZyYW1lTG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTExMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0byBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250
aW51ZSBjaGFuZ2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpyZXNwb25z
ZVJlY2VpdmVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3Vy
Y2UuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJl
c3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg6CisKIDIwMjAtMDQtMjggIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjQ2F0YWx5c3RdIEFkZCBtaXNzaW5nIHN5
bWxpbmtzIHRvIFdlYktpdC5mcmFtZXdvcmtzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAppbmRleCBlMTkxNWJhYTkxM2EwNmFlYzcxMjFlNzI4M2VlNzE2YWM4M2IzN2I5Li4zZTY1
YTgwZmQ0ZTUzM2Y5ZjM1ZDcwMGQyZWNiNmViNGYyMDE5NDVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKQEAgLTEzODQsNyArMTM4NCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmxvYWRVUkwoRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0IFN0cmlu
ZyYgcmVmCiAgICAgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRv
SW52YWxpZFVSTCA9IGZyYW1lTG9hZFJlcXVlc3QuYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
KCk7CiAgICAgaWYgKCF0YXJnZXRGcmFtZSAmJiAhZWZmZWN0aXZlRnJhbWVOYW1lLmlzRW1wdHko
KSkgewogICAgICAgICBhY3Rpb24gPSBhY3Rpb24uY29weVdpdGhTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5KHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb0FwcGx5KG1fZnJhbWUsIGZy
YW1lTG9hZFJlcXVlc3QpKTsKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93
UG9saWN5KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3Rh
dGUpLCBlZmZlY3RpdmVGcmFtZU5hbWUsIFt0aGlzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
UkwsIG9wZW5lclBvbGljeSwgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNh
bGxlci5yZWxlYXNlKCldIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8
Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUgc2hv
dWxkQ29udGludWUpIG11dGFibGUgeworICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdX
aW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZv
cm1TdGF0ZSksIGVmZmVjdGl2ZUZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTCwgb3BlbmVyUG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5k
bGVyQ2FsbGVyLnJlbGVhc2UoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vh
a1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZVBvbGljeUNoZWNrIHNo
b3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNvbnRpbnVlTG9hZEFmdGVyTmV3
V2luZG93UG9saWN5KHJlcXVlc3QsIGZvcm1TdGF0ZS5nZXQoKSwgZnJhbWVOYW1lLCBhY3Rpb24s
IHNob3VsZENvbnRpbnVlLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGlj
eSk7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICB9KTsKQEAgLTE0
NjcsNyArMTQ2Nyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVMb2FkUmVxdWVzdCYm
IHJlcXVlc3QpCiAKICAgICBpZiAocmVxdWVzdC5zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSgp
KSB7CiAgICAgICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uIHsgcmVxdWVzdC5yZXF1ZXN0ZXIo
KSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25v
d24sIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgcmVxdWVzdC5zaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5KCkgfTsKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5
KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSwgeyB9
LCByZXF1ZXN0LmZyYW1lTmFtZSgpLCBbdGhpc10gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1l
TmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBQb2xpY3lDaGVja2VyOjpTaG91
bGRDb250aW51ZSBzaG91bGRDb250aW51ZSkgeworICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hl
Y2tOZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkpLCB7IH0sIHJlcXVlc3QuZnJhbWVOYW1lKCksIFt0aGlzXSAoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFNo
b3VsZENvbnRpbnVlUG9saWN5Q2hlY2sgc2hvdWxkQ29udGludWUpIHsKICAgICAgICAgICAgIGNv
bnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KHJlcXVlc3QsIGZvcm1TdGF0ZS5nZXQoKSwg
ZnJhbWVOYW1lLCBhY3Rpb24sIHNob3VsZENvbnRpbnVlLCBBbGxvd05hdmlnYXRpb25Ub0ludmFs
aWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzKTsKICAgICAgICAgfSk7
CiAKQEAgLTMwMjEsNyArMzAyMSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVz
dChGcmFtZUxvYWRSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiByZWZlCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tO
ZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHdvcmtpbmdSZXNvdXJjZVJl
cXVlc3QpLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTCwgb3BlbmVyUG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBX
ZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRp
bnVlIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKKyAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNo
ZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZSh3b3JraW5nUmVzb3Vy
Y2VSZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3RhdGUpLCBmcmFtZU5hbWUsIFt0aGlzLCBhbGxvd05h
dmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFt
ZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZVBvbGljeUNo
ZWNrIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNvbnRpbnVlTG9hZEFm
dGVyTmV3V2luZG93UG9saWN5KHJlcXVlc3QsIGZvcm1TdGF0ZS5nZXQoKSwgZnJhbWVOYW1lLCBh
Y3Rpb24sIHNob3VsZENvbnRpbnVlLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5l
clBvbGljeSk7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICB9KTsK
QEAgLTM1MDAsOSArMzUwMCw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVy
TmF2aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlCiB9CiAKIHZvaWQg
RnJhbWVMb2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwKLSAgICBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgY29uc3QgU3Ry
aW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgUG9saWN5Q2hl
Y2tlcjo6U2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0ZyYW1lT3BlbmVyUG9saWN5
IG9wZW5lclBvbGljeSkKKyAgICBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBm
cmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgU2hvdWxkQ29udGludWVQ
b2xpY3lDaGVjayBzaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFs
bG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQb2xpY3kgb3BlbmVyUG9s
aWN5KQogewotICAgIGlmIChzaG91bGRDb250aW51ZSAhPSBQb2xpY3lDaGVja2VyOjpTaG91bGRD
b250aW51ZTo6WWVzKQorICAgIGlmIChzaG91bGRDb250aW51ZSAhPSBTaG91bGRDb250aW51ZVBv
bGljeUNoZWNrOjpZZXMpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZjxGcmFtZT4gZnJhbWUo
bV9mcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGYwMTZmMWVhZTU1
ODI2Njc5MTAwNzQ2NjM0N2ViMjEyNzFkNTBiNWEuLmM3ZGRhZTQxN2E2YmEzMjkwODllMTViOGU0
NmFiMzA0YTkyM2VlYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0zOSw3
ICszOSw2IEBACiAjaW5jbHVkZSAiTGF5b3V0TWlsZXN0b25lLmgiCiAjaW5jbHVkZSAiTWl4ZWRD
b250ZW50Q2hlY2tlci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAi
UG9saWN5Q2hlY2tlci5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VMb2FkTm90aWZpZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMu
aCIKQEAgLTc3LDcgKzc2LDYgQEAgY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKIGNsYXNzIE5ldHdv
cmtpbmdDb250ZXh0OwogY2xhc3MgTm9kZTsKIGNsYXNzIFBhZ2U7Ci1jbGFzcyBQb2xpY3lDaGVj
a2VyOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNz
IFJlc291cmNlUmVzcG9uc2U7CkBAIC0xMTAsNiArMTA4LDcgQEAgcHVibGljOgogCiAgICAgRnJh
bWUmIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfQogCisgICAgY2xhc3MgUG9saWN5
Q2hlY2tlcjsKICAgICBQb2xpY3lDaGVja2VyJiBwb2xpY3lDaGVja2VyKCkgY29uc3QgeyByZXR1
cm4gKm1fcG9saWN5Q2hlY2tlcjsgfQogCiAgICAgY2xhc3MgSGlzdG9yeUNvbnRyb2xsZXI7CkBA
IC0xNTYsNyArMTU1LDYgQEAgcHVibGljOgogICAgIHZvaWQgc3RvcExvYWRpbmcoVW5sb2FkRXZl
bnRQb2xpY3kpOwogICAgIHZvaWQgY2xvc2VVUkwoKTsKICAgICB2b2lkIGNhbmNlbEFuZENsZWFy
KCk7Ci0gICAgdm9pZCBjbGVhclByb3Zpc2lvbmFsTG9hZEZvclBvbGljeUNoZWNrKCk7CiAgICAg
Ly8gRklYTUU6IGNsZWFyKCkgaXMgdHJ5aW5nIHRvIGRvIHRvbyBtYW55IHRoaW5ncy4gV2Ugc2hv
dWxkIGJyZWFrIGl0IGRvd24gaW50byBzbWFsbGVyIGZ1bmN0aW9ucyAoaWRlYWxseSB3aXRoIGZl
d2VyIHJhdyBCb29sZWFuIHBhcmFtZXRlcnMpLgogICAgIHZvaWQgY2xlYXIoRG9jdW1lbnQqIG5l
d0RvY3VtZW50LCBib29sIGNsZWFyV2luZG93UHJvcGVydGllcyA9IHRydWUsIGJvb2wgY2xlYXJT
Y3JpcHRPYmplY3RzID0gdHJ1ZSwgYm9vbCBjbGVhckZyYW1lVmlldyA9IHRydWUsIFdURjo6RnVu
Y3Rpb248dm9pZCgpPiYmIGhhbmRsZURPTVdpbmRvd0NyZWF0aW9uID0gbnVsbHB0cik7CiAKQEAg
LTI1Niw3ICsyNTQsNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUqIG9wZW5l
cigpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3BlbmVyKEZyYW1lKik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkZXRhY2hGcm9tQWxsT3BlbmVkRnJhbWVzKCk7Ci0gICAgYm9vbCBo
YXNPcGVuZWRGcmFtZXMoKSBjb25zdCB7IHJldHVybiAhbV9vcGVuZWRGcmFtZXMuaXNFbXB0eSgp
OyB9CiAKICAgICB2b2lkIHJlc2V0TXVsdGlwbGVGb3JtU3VibWlzc2lvblByb3RlY3Rpb24oKTsK
IApAQCAtMzYzLDcgKzM2MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaFVubG9hZEV2
ZW50cyhVbmxvYWRFdmVudFBvbGljeSk7CiAKICAgICB2b2lkIGNvbnRpbnVlTG9hZEFmdGVyTmF2
aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBOYXZpZ2F0
aW9uUG9saWN5RGVjaXNpb24sIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCk7Ci0gICAgdm9p
ZCBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFj
dGlvbiYsIFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlLCBBbGxvd05hdmlnYXRpb25Ub0lu
dmFsaWRVUkwsIE5ld0ZyYW1lT3BlbmVyUG9saWN5KTsKKyAgICB2b2lkIGNvbnRpbnVlTG9hZEFm
dGVyTmV3V2luZG93UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgU2hvdWxkQ29u
dGludWVQb2xpY3lDaGVjaywgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBOZXdGcmFtZU9w
ZW5lclBvbGljeSk7CiAgICAgdm9pZCBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0
aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgc2hvdWxkQ29udGludWUpOwog
CiAgICAgYm9vbCBzaG91bGRQZXJmb3JtRnJhZ21lbnROYXZpZ2F0aW9uKGJvb2wgaXNGb3JtU3Vi
bWlzc2lvbiwgY29uc3QgU3RyaW5nJiBodHRwTWV0aG9kLCBGcmFtZUxvYWRUeXBlLCBjb25zdCBV
UkwmKTsKQEAgLTQzMCw2ICs0MjcsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvYWRVUkxJbnRv
Q2hpbGRGcmFtZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVyZXIsIEZyYW1lKik7CiAg
ICAgdm9pZCBzdGFydGVkKCk7CiAKKyAgICAvLyBQb2xpY3lDaGVja2VyIHNwZWNpZmljLgorICAg
IHZvaWQgY2xlYXJQcm92aXNpb25hbExvYWRGb3JQb2xpY3lDaGVjaygpOworICAgIGJvb2wgaGFz
T3BlbmVkRnJhbWVzKCkgY29uc3QgeyByZXR1cm4gIW1fb3BlbmVkRnJhbWVzLmlzRW1wdHkoKTsg
fQorCiAgICAgRnJhbWUmIG1fZnJhbWU7CiAgICAgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50
PiBtX2NsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKaW5k
ZXggYmMwNTdmMmY3NDIyOGE5YjA4ODhmYzQ3M2Y2YzRmMDRiNzMzZTViNy4uYmYzOGRkYWE3NWU3
M2IwNGRlZjIzNTBkZTAwMTQ2ZTUxMjJkNjRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJUeXBlcy5oCkBAIC0xMTIsNiArMTEyLDExIEBAIE9wdGlvbmFsPFBvbGljeUNoZWNr
SWRlbnRpZmllcj4gUG9saWN5Q2hlY2tJZGVudGlmaWVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKICAgICByZXR1cm4gUG9saWN5Q2hlY2tJZGVudGlmaWVyIHsgKnByb2Nlc3MsIHBvbGljeUNo
ZWNrIH07CiB9CiAKK2VudW0gY2xhc3MgU2hvdWxkQ29udGludWVQb2xpY3lDaGVjayA6IHVpbnQ4
X3QgeworICAgIFllcywKKyAgICBObworfTsKKwogZW51bSBjbGFzcyBOZXdGcmFtZU9wZW5lclBv
bGljeSA6IHVpbnQ4X3QgewogICAgIFN1cHByZXNzLAogICAgIEFsbG93CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMGRmNmNmOGJmNGEwNzdl
ZTlkOWY0ZWY3MjE5YjliN2EwN2ExMTQyNy4uMTcwMDBkZjhiZjQ4OGRhNTEwNzcxMjE2YjA3ZjJm
M2QxY2U4ZWJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3Vy
Y2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9h
ZGVyLmNwcApAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgTWVkaWFSZXNvdXJjZTo6cmVzcG9uc2VS
ZWNlaXZlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVzCiAgICAg
ICAgIG1fY2xpZW50LT5yZXNwb25zZVJlY2VpdmVkKCp0aGlzLCByZXNwb25zZSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0
aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCldIChhdXRvIHNob3VsZENvbnRpbnVlKSBtdXRhYmxl
IHsKICAgICAgICAgICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikKICAgICAgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlID09IFBv
bGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObykKKyAgICAgICAgICAgIGlmIChzaG91bGRD
b250aW51ZSA9PSBTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpObykKICAgICAgICAgICAgICAg
ICBzdG9wKCk7CiAgICAgICAgIH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUG9saWN5Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tl
ci5jcHAKaW5kZXggNDYxNjlmNTA5OTk1NzQ3ZjRkZjIwMGMzYzA4Njc0Yzc3MzVhODc1YS4uYzVj
NGVhODVhNDY0ZjhkOWQzMzJkNDQ3Njg3NmMyY2M5MzRiMjljNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Qb2xpY3lDaGVja2VyLmNwcApAQCAtOTEsNyArOTEsNyBAQCBib29sIFBvbGljeUNoZWNr
SWRlbnRpZmllcjo6aXNWYWxpZEZvcihQb2xpY3lDaGVja0lkZW50aWZpZXIgZXhwZWN0ZWRJZGVu
dGlmaWVyKQogICAgIHJldHVybiBtX3BvbGljeUNoZWNrID09IGV4cGVjdGVkSWRlbnRpZmllci5t
X3BvbGljeUNoZWNrOwogfQogCi1Qb2xpY3lDaGVja2VyOjpQb2xpY3lDaGVja2VyKEZyYW1lJiBm
cmFtZSkKK0ZyYW1lTG9hZGVyOjpQb2xpY3lDaGVja2VyOjpQb2xpY3lDaGVja2VyKEZyYW1lJiBm
cmFtZSkKICAgICA6IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX2RlbGVnYXRlSXNEZWNpZGluZ05h
dmlnYXRpb25Qb2xpY3koZmFsc2UpCiAgICAgLCBtX2RlbGVnYXRlSXNIYW5kbGluZ1VuaW1wbGVt
ZW50YWJsZVBvbGljeShmYWxzZSkKQEAgLTk5LDEyICs5OSwxMiBAQCBQb2xpY3lDaGVja2VyOjpQ
b2xpY3lDaGVja2VyKEZyYW1lJiBmcmFtZSkKIHsKIH0KIAotdm9pZCBQb2xpY3lDaGVja2VyOjpj
aGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYgbmV3UmVxdWVzdCwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgTmF2aWdhdGlvblBvbGljeURlY2lz
aW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNrZXI6
OmNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QmJiBuZXdSZXF1ZXN0LCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBOYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb25GdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIGNoZWNrTmF2aWdhdGlvblBvbGljeShX
VEZNb3ZlKG5ld1JlcXVlc3QpLCByZWRpcmVjdFJlc3BvbnNlLCBtX2ZyYW1lLmxvYWRlcigpLmFj
dGl2ZURvY3VtZW50TG9hZGVyKCksIHsgfSwgV1RGTW92ZShmdW5jdGlvbikpOwogfQogCi1Db21w
bGV0aW9uSGFuZGxlckNhbGxpbmdTY29wZSBQb2xpY3lDaGVja2VyOjpleHRlbmRCbG9iVVJMTGlm
ZXRpbWVJZk5lY2Vzc2FyeShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CitDb21wbGV0
aW9uSGFuZGxlckNhbGxpbmdTY29wZSBGcmFtZUxvYWRlcjo6UG9saWN5Q2hlY2tlcjo6ZXh0ZW5k
QmxvYlVSTExpZmV0aW1lSWZOZWNlc3NhcnkoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25z
dAogewogICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzQmxvYigpKQogICAgICAgICBy
ZXR1cm4geyB9OwpAQCAtMTE4LDcgKzExOCw3IEBAIENvbXBsZXRpb25IYW5kbGVyQ2FsbGluZ1Nj
b3BlIFBvbGljeUNoZWNrZXI6OmV4dGVuZEJsb2JVUkxMaWZldGltZUlmTmVjZXNzYXJ5KFJlCiAg
ICAgfSk7CiB9CiAKLXZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0
UmVzcG9uc2UsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIFJlZlB0cjxGb3JtU3RhdGU+JiYgZm9y
bVN0YXRlLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiYmIGZ1bmN0aW9uLCBQb2xp
Y3lEZWNpc2lvbk1vZGUgcG9saWN5RGVjaXNpb25Nb2RlKQordm9pZCBGcmFtZUxvYWRlcjo6UG9s
aWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIERvY3VtZW50TG9h
ZGVyKiBsb2FkZXIsIFJlZlB0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBOYXZpZ2F0aW9uUG9s
aWN5RGVjaXNpb25GdW5jdGlvbiYmIGZ1bmN0aW9uLCBQb2xpY3lEZWNpc2lvbk1vZGUgcG9saWN5
RGVjaXNpb25Nb2RlKQogewogICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uID0gbG9hZGVyLT50
cmlnZ2VyaW5nQWN0aW9uKCk7CiAgICAgaWYgKGFjdGlvbi5pc0VtcHR5KCkpIHsKQEAgLTI0Nywx
MyArMjQ3LDEzIEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFJlc291CiAgICAgICAgIG1fZnJhbWUubG9h
ZGVyKCkuY2xpZW50KCkuZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGFj
dGlvbiwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSwgZm9ybVN0YXRlLmdldCgpLCBwb2xpY3lE
ZWNpc2lvbk1vZGUsIHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcikp
OwogfQogCi12b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRp
b25BY3Rpb24mJiBuYXZpZ2F0aW9uQWN0aW9uLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBS
ZWZQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIE5l
d1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2Fk
ZXI6OlBvbGljeUNoZWNrZXI6OmNoZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25BY3Rpb24m
JiBuYXZpZ2F0aW9uQWN0aW9uLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZWZQdHI8Rm9y
bVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIE5ld1dpbmRvd1Bv
bGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5kb2N1
bWVudCgpICYmIG1fZnJhbWUuZG9jdW1lbnQoKS0+aXNTYW5kYm94ZWQoU2FuZGJveFBvcHVwcykp
Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbih7IH0sIG51bGxwdHIsIHsgfSwgeyB9LCBTaG91bGRD
b250aW51ZTo6Tm8pOworICAgICAgICByZXR1cm4gZnVuY3Rpb24oeyB9LCBudWxscHRyLCB7IH0s
IHsgfSwgU2hvdWxkQ29udGludWVQb2xpY3lDaGVjazo6Tm8pOwogCiAgICAgaWYgKCFET01XaW5k
b3c6OmFsbG93UG9wVXAobV9mcmFtZSkpCi0gICAgICAgIHJldHVybiBmdW5jdGlvbih7IH0sIG51
bGxwdHIsIHsgfSwgeyB9LCBTaG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICByZXR1cm4gZnVu
Y3Rpb24oeyB9LCBudWxscHRyLCB7IH0sIHsgfSwgU2hvdWxkQ29udGludWVQb2xpY3lDaGVjazo6
Tm8pOwogCiAgICAgYXV0byBibG9iVVJMTGlmZXRpbWVFeHRlbnNpb24gPSBleHRlbmRCbG9iVVJM
TGlmZXRpbWVJZk5lY2Vzc2FyeShyZXF1ZXN0KTsKIApAQCAtMjYzLDM4ICsyNjMsMzggQEAgdm9p
ZCBQb2xpY3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeShOYXZpZ2F0aW9uQWN0aW9uJiYg
bmF2aWdhdGlvbkFjdGlvbiwgUmUKICAgICAgICAgcmVxdWVzdElkZW50aWZpZXJdIChQb2xpY3lB
Y3Rpb24gcG9saWN5QWN0aW9uLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgcmVzcG9uc2VJZGVudGlm
aWVyKSBtdXRhYmxlIHsKIAogICAgICAgICBpZiAoIXJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlk
Rm9yKHJlcXVlc3RJZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbih7IH0s
IG51bGxwdHIsIHsgfSwgeyB9LCBTaG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uKHsgfSwgbnVsbHB0ciwgeyB9LCB7IH0sIFNob3VsZENvbnRpbnVlUG9saWN5
Q2hlY2s6Ok5vKTsKIAogICAgICAgICBzd2l0Y2ggKHBvbGljeUFjdGlvbikgewogICAgICAgICBj
YXNlIFBvbGljeUFjdGlvbjo6RG93bmxvYWQ6CiAgICAgICAgICAgICBmcmFtZS0+bG9hZGVyKCku
Y2xpZW50KCkuc3RhcnREb3dubG9hZChyZXF1ZXN0KTsKICAgICAgICAgICAgIEZBTExUSFJPVUdI
OwogICAgICAgICBjYXNlIFBvbGljeUFjdGlvbjo6SWdub3JlOgotICAgICAgICAgICAgZnVuY3Rp
b24oeyB9LCBudWxscHRyLCB7IH0sIHsgfSwgU2hvdWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAg
ICAgIGZ1bmN0aW9uKHsgfSwgbnVsbHB0ciwgeyB9LCB7IH0sIFNob3VsZENvbnRpbnVlUG9saWN5
Q2hlY2s6Ok5vKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2FzZSBQb2xpY3lBY3Rp
b246OlN0b3BBbGxMb2FkczoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICAgICAgZnVuY3Rpb24oeyB9LCBudWxscHRyLCB7IH0sIHsgfSwgU2hvdWxkQ29udGludWU6
Ok5vKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uKHsgfSwgbnVsbHB0ciwgeyB9LCB7IH0sIFNob3Vs
ZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5vKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
Y2FzZSBQb2xpY3lBY3Rpb246OlVzZToKLSAgICAgICAgICAgIGZ1bmN0aW9uKHJlcXVlc3QsIG1h
a2VXZWFrUHRyKGZvcm1TdGF0ZS5nZXQoKSksIGZyYW1lTmFtZSwgbmF2aWdhdGlvbkFjdGlvbiwg
U2hvdWxkQ29udGludWU6Olllcyk7CisgICAgICAgICAgICBmdW5jdGlvbihyZXF1ZXN0LCBtYWtl
V2Vha1B0cihmb3JtU3RhdGUuZ2V0KCkpLCBmcmFtZU5hbWUsIG5hdmlnYXRpb25BY3Rpb24sIFNo
b3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Olllcyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfSk7CiB9CiAKLXZvaWQg
UG9saWN5Q2hlY2tlcjo6c3RvcENoZWNrKCkKK3ZvaWQgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNr
ZXI6OnN0b3BDaGVjaygpCiB7CiAgICAgbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5jYW5jZWxQ
b2xpY3lDaGVjaygpOwogfQogCi12b2lkIFBvbGljeUNoZWNrZXI6OmNhbm5vdFNob3dNSU1FVHlw
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgRnJhbWVMb2FkZXI6OlBv
bGljeUNoZWNrZXI6OmNhbm5vdFNob3dNSU1FVHlwZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKIHsKICAgICBoYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3kobV9mcmFtZS5sb2Fk
ZXIoKS5jbGllbnQoKS5jYW5ub3RTaG93TUlNRVR5cGVFcnJvcihyZXNwb25zZSkpOwogfQogCi12
b2lkIFBvbGljeUNoZWNrZXI6OmhhbmRsZVVuaW1wbGVtZW50YWJsZVBvbGljeShjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKK3ZvaWQgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNrZXI6OmhhbmRs
ZVVuaW1wbGVtZW50YWJsZVBvbGljeShjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAg
ICBtX2RlbGVnYXRlSXNIYW5kbGluZ1VuaW1wbGVtZW50YWJsZVBvbGljeSA9IHRydWU7CiAgICAg
bV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5kaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5
KGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oCmluZGV4IGMzY2UyNjYy
N2VlZDgzNDM0NGU0YzI2MzZiMzUwYjU4ZDgxMzY1Y2UuLmZlMDQ2MTJlZTdmNDI1ZWEwMDJmMDNm
OWQxNGQxZDg3Y2QwYTQ4MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xp
Y3lDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaApA
QCAtMjksNyArMjksNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkZyYW1lTG9hZGVy
VHlwZXMuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVx
dWVzdC5oIgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CkBAIC02MCwxOSArNjAsMTQgQEAgZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5
RGVjaXNpb24gOiB1aW50OF90IHsKIAogZW51bSBjbGFzcyBQb2xpY3lEZWNpc2lvbk1vZGUgeyBT
eW5jaHJvbm91cywgQXN5bmNocm9ub3VzIH07CiAKLWNsYXNzIFBvbGljeUNoZWNrZXIgeworY2xh
c3MgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNrZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFBvbGljeUNoZWNrZXIpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIGV4cGxpY2l0IFBvbGljeUNoZWNrZXIoRnJhbWUmKTsKIAotICAgIGVudW0gY2xhc3MgU2hv
dWxkQ29udGludWUgewotICAgICAgICBZZXMsCi0gICAgICAgIE5vCi0gICAgfTsKLQogICAgIHVz
aW5nIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZXNvdXJjZVJlcXVlc3QmJiwgV2Vha1B0cjxGb3JtU3RhdGU+JiYsIE5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbik+OwotICAgIHVzaW5nIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rp
b24gPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFdlYWtQ
dHI8Rm9ybVN0YXRlPiYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYsIFNob3VsZENvbnRpbnVlKT47CisgICAgdXNpbmcgTmV3V2luZG93UG9saWN5RGVj
aXNpb25GdW5jdGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgV2Vha1B0cjxGb3JtU3RhdGU+JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiwgU2hvdWxkQ29udGludWVQb2xpY3lDaGVjayk+OwogCiAgICAg
dm9pZCBjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIERvY3VtZW50TG9hZGVyKiwgUmVmUHRyPEZv
cm1TdGF0ZT4mJiwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiwgUG9saWN5RGVj
aXNpb25Nb2RlID0gUG9saWN5RGVjaXNpb25Nb2RlOjpBc3luY2hyb25vdXMpOwogICAgIHZvaWQg
Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlv
biYmKTsKQEAgLTExMywxNCArMTA4LDE0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAotLy8gVG8gc3VwcG9ydCBlbmNvZGluZyBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpT
aG91bGRDb250aW51ZSBpbiBYUEMgbWVzc2FnZXMKKy8vIFRvIHN1cHBvcnQgZW5jb2RpbmcgV2Vi
Q29yZTo6U2hvdWxkQ29udGludWVQb2xpY3lDaGVjayBpbiBYUEMgbWVzc2FnZXMKIG5hbWVzcGFj
ZSBXVEYgewogCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OlNob3VsZENvbnRpbnVlPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdl
YkNvcmU6OlNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51
ZSwKLSAgICAgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Ok5vLAot
ICAgICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6WWVzCisgICAg
ICAgIFdlYkNvcmU6OlNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2ssCisgICAgICAgIFdlYkNvcmU6
OlNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5vLAorICAgICAgICBXZWJDb3JlOjpTaG91bGRD
b250aW51ZVBvbGljeUNoZWNrOjpZZXMKICAgICA+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXIuaAppbmRleCBhMTQ1ZjE2M2M2NDNhMzg2OGUxOTcxMzhhYWU0ZWRjZmQwNDc2ZjljLi4y
NWJkY2I1OGVhOGYxNmE4Nzk5ZWViNDg4Nzc1NGY1Yzk5M2M5ZGI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVz
b3VyY2VMb2FkZXIuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2VDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflBsYXRmb3JtTWVkaWFSZXNvdXJjZUNs
aWVudCgpID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKFBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51
ZTo6WWVzKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVk
aWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2spPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNv
bXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Olllcyk7IH0KICAgICB2
aXJ0dWFsIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7IH0KICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkQ2FjaGVSZXNwb25zZShQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkYXRhU2VudChQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcg
bG9uZykgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3Vy
Y2VMb2FkZXIubW0KaW5kZXggYzQwZDdmOWY5NGYwODljNmY5YWM3MjZlYjVkYmU5NDJlMWY0YTdh
My4uN2UwNzc4Nzk2MjcxNmNjNzU1ZmY1YWRmNWM4NGRlMDQxYjZhYTEyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29y
ZUFWRlJlc291cmNlTG9hZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQpAQCAtMTQz
LDcgKzE0Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2FkRmluaXNoZWQoKTsKIAogICAgIC8v
IFBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudAotICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpIGZpbmFsOwor
ICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250aW51ZVBv
bGljeUNoZWNrKT4mJikgZmluYWw7CiAgICAgdm9pZCByZWRpcmVjdFJlY2VpdmVkKFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikgZmluYWwgeyBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlcXVl
c3QpKTsgfQogICAgIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2b2lkIGRhdGFTZW50KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9u
ZywgdW5zaWduZWQgbG9uZyBsb25nKSBmaW5hbCB7IH0KQEAgLTE4NiwxMCArMTg2LDEwIEBAIHZv
aWQgUGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyOjpzdG9wKCkKICAgICByZXNvdXJjZS0+c2V0
Q2xpZW50KG51bGxwdHIpOwogfQogCi12b2lkIFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6
cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpT
aG91bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFBsYXRmb3JtUmVzb3Vy
Y2VNZWRpYUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
aG91bGRDb250aW51ZVBvbGljeUNoZWNrKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBt
X3BhcmVudC5yZXNwb25zZVJlY2VpdmVkKHJlc3BvbnNlKTsKLSAgICBjb21wbGV0aW9uSGFuZGxl
cihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6WWVzKTsKKyAgICBjb21wbGV0aW9uSGFu
ZGxlcihTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpZZXMpOwogfQogCiB2b2lkIFBsYXRmb3Jt
UmVzb3VyY2VNZWRpYUxvYWRlcjo6bG9hZEZhaWxlZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggN2Y3
ZTI0OGY5MGE0MTMxZjc4MGRmMWVhNzI3MzBkM2QwNzVhNzA1OS4uYzg1N2YxNjVhN2IyY2E4M2E2
ZTRmNGMxMDA0YTAxNTRmOTJlYjBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJj
ZUdTdHJlYW1lci5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNoZWNr
VXBkYXRlQmxvY2tzaXplKHVuc2lnbmVkIGJ5dGVzUmVhZCk7CiAKICAgICAvLyBQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2VDbGllbnQgdmlydHVhbCBtZXRob2RzLgotICAgIHZvaWQgcmVzcG9uc2VSZWNl
aXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpIG92
ZXJyaWRlOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRD
b250aW51ZVBvbGljeUNoZWNrKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkYXRhUmVjZWl2ZWQo
UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgY2hhciosIGludCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBhY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29u
c3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwogICAgIHZvaWQgbG9hZEZhaWxlZChQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CkBAIC05OTIs
MTQgKzk5MiwxNCBAQCB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpjaGVja1Vw
ZGF0ZUJsb2Nrc2l6ZSh1bnNpZ25lZCBieXRlc1JlYWQpCiAgICAgfQogfQogCi12b2lkIENhY2hl
ZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFS
ZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OnJlc3BvbnNlUmVjZWl2
ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWVQb2xpY3lDaGVjayk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBX
ZWJLaXRXZWJTcmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKG1fc3JjLmdldCgpKTsKICAgICBXZWJL
aXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwogICAgIERhdGFNdXRleDxXZWJLaXRX
ZWJTcmNQcml2YXRlOjpTdHJlYW1pbmdNZW1iZXJzPjo6TG9ja2VkV3JhcHBlciBtZW1iZXJzKHBy
aXYtPmRhdGFNdXRleCk7CiAgICAgaWYgKG1lbWJlcnMtPnJlcXVlc3ROdW1iZXIgIT0gbV9yZXF1
ZXN0TnVtYmVyKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNo
b3VsZENvbnRpbnVlOjpObyk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRp
bnVlUG9saWN5Q2hlY2s6Ok5vKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTA1MSw3
ICsxMDUxLDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VS
ZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb24KICAgICAgICAgR1NUX0VMRU1FTlRf
RVJST1Ioc3JjLCBSRVNPVVJDRSwgUkVBRCwgKCJSJXU6IFJlY2VpdmVkICVkIEhUVFAgZXJyb3Ig
Y29kZSIsIG1fcmVxdWVzdE51bWJlciwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSksIChudWxs
cHRyKSk7CiAgICAgICAgIG1lbWJlcnMtPmRvZXNIYXZlRU9TID0gdHJ1ZTsKICAgICAgICAgbWVt
YmVycy0+cmVzcG9uc2VDb25kaXRpb24ubm90aWZ5T25lKCk7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5vKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtMTA2Miw3ICsxMDYyLDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0
cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBj
b24KICAgICAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIFJFQUQsICgi
UiV1OiBSZWNlaXZlZCB1bmV4cGVjdGVkICVkIEhUVFAgc3RhdHVzIGNvZGUgZm9yIHJhbmdlIHJl
cXVlc3QiLCBtX3JlcXVlc3ROdW1iZXIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpLCAobnVs
bHB0cikpOwogICAgICAgICAgICAgbWVtYmVycy0+ZG9lc0hhdmVFT1MgPSB0cnVlOwogICAgICAg
ICAgICAgbWVtYmVycy0+cmVzcG9uc2VDb25kaXRpb24ubm90aWZ5T25lKCk7Ci0gICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pOwor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29udGludWVQb2xpY3lDaGVjazo6
Tm8pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEdTVF9ERUJVR19P
QkpFQ1Qoc3JjLCAiUiV1OiBSYW5nZSByZXF1ZXN0IHN1Y2NlZWRlZCIsIG1fcmVxdWVzdE51bWJl
cik7CkBAIC0xMTAxLDcgKzExMDEsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xp
ZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbgogICAgIG1l
bWJlcnMtPndhc1Jlc3BvbnNlUmVjZWl2ZWQgPSB0cnVlOwogICAgIG1lbWJlcnMtPnJlc3BvbnNl
Q29uZGl0aW9uLm5vdGlmeU9uZSgpOwogCi0gICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hl
Y2tlcjo6U2hvdWxkQ29udGludWU6Olllcyk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxk
Q29udGludWVQb2xpY3lDaGVjazo6WWVzKTsKIH0KIAogdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVh
bWluZ0NsaWVudDo6ZGF0YVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IGNo
YXIqIGRhdGEsIGludCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KaW5kZXggNGI5OGFk
YWRiYWEzYzI1MGIyMGY0Y2FlNDZlMDE3NDUwMDBmOTllNS4uNzRlZDkzNGE1YmFiMWFjNmIyNjY0
N2ZhZTdlMzc4NTdhYmM5ZGFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQpAQCAtNTcsNyAr
NTcsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogQHByb3BlcnR5IChhc3NpZ24pIFdlYkNv
cmVOU1VSTFNlc3Npb24gKiBfTnVsbGFibGUgc2Vzc2lvbjsKIAogLSAodm9pZClyZXNvdXJjZToo
UGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJjZSBzZW50Qnl0ZXM6KHVuc2lnbmVkIGxvbmcg
bG9uZylieXRlc1NlbnQgdG90YWxCeXRlc1RvQmVTZW50Oih1bnNpZ25lZCBsb25nIGxvbmcpdG90
YWxCeXRlc1RvQmVTZW50OwotLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNl
JilyZXNvdXJjZSByZWNlaXZlZFJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNw
b25zZSBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVj
a2VyOjpTaG91bGRDb250aW51ZSk+JiYpY29tcGxldGlvbkhhbmRsZXI7CistICh2b2lkKXJlc291
cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIHJlY2VpdmVkUmVzcG9uc2U6KGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2spPiYmKWNvbXBsZXRpb25I
YW5kbGVyOwogLSAoQk9PTClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJj
ZSBzaG91bGRDYWNoZVJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNwb25zZTsK
IC0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2UgcmVjZWl2
ZWREYXRhOihjb25zdCBjaGFyKilkYXRhIGxlbmd0aDooaW50KWxlbmd0aDsKIC0gKHZvaWQpcmVz
b3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2UgcmVjZWl2ZWRSZWRpcmVjdDoo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzcG9uc2UgcmVxdWVzdDooUmVzb3VyY2VSZXF1ZXN0
JiYpcmVxdWVzdCBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNv
dXJjZVJlcXVlc3QmJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CkBAIC0zODIsNyArMzgyLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBjbGVhclRhc2soKTsKIAotICAgIHZvaWQgcmVzcG9uc2VSZWNl
aXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpIG92
ZXJyaWRlOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRD
b250aW51ZVBvbGljeUNoZWNrKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWRpcmVjdFJlY2Vp
dmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+
JiYpIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBk
YXRhU2VudChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2ln
bmVkIGxvbmcgbG9uZykgb3ZlcnJpZGU7CkBAIC00MTEsMTEgKzQxMSwxMSBAQCB2b2lkIFdlYkNv
cmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDo6ZGF0YVNlbnQoUGxhdGZvcm1NZWRpYVJlc291
cmNlJiByZXNvdXJjZQogICAgIFttX3Rhc2sgcmVzb3VyY2U6cmVzb3VyY2Ugc2VudEJ5dGVzOmJ5
dGVzU2VudCB0b3RhbEJ5dGVzVG9CZVNlbnQ6dG90YWxCeXRlc1RvQmVTZW50XTsKIH0KIAotdm9p
ZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQoUGxh
dGZvcm1NZWRpYVJlc291cmNlJiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGlu
dWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRh
c2tDbGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiByZXNvdXJj
ZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU2hvdWxkQ29udGludWVQb2xpY3lDaGVjayk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV90YXNrTG9jayk7CiAgICAgaWYgKCFtX3Rhc2spCi0gICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51
ZTo6Tm8pOworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29udGludWVQ
b2xpY3lDaGVjazo6Tm8pOwogCiAgICAgW21fdGFzayByZXNvdXJjZTpyZXNvdXJjZSByZWNlaXZl
ZFJlc3BvbnNlOnJlc3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXTsKIH0KQEAgLTYyOCw3ICs2MjgsNyBAQCB2b2lkIFdlYkNvcmVOU1VSTFNlc3Npb25E
YXRhVGFza0NsaWVudDo6bG9hZEZpbmlzaGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzbwog
ICAgIC8vIE5vLW9wLgogfQogCi0tICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2UmKXJlc291cmNlIHJlY2VpdmVkUmVzcG9uc2U6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJl
c3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBvbGljeUNo
ZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiljb21wbGV0aW9uSGFuZGxlcgorLSAodm9pZClyZXNv
dXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJjZSByZWNlaXZlZFJlc3BvbnNlOihj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNwb25zZSBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250aW51ZVBvbGljeUNoZWNrKT4mJiljb21wbGV0aW9u
SGFuZGxlcgogewogICAgIEFTU0VSVChyZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJjZVJlc3Bv
bnNlOjpTb3VyY2U6Ok5ldHdvcmsgfHwgcmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNw
b25zZTo6U291cmNlOjpEaXNrQ2FjaGUgfHwgcmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VS
ZXNwb25zZTo6U291cmNlOjpEaXNrQ2FjaGVBZnRlclZhbGlkYXRpb24gfHwgcmVzcG9uc2Uuc291
cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKTsKICAgICBB
U1NFUlRfVU5VU0VEKHJlc291cmNlLCAmcmVzb3VyY2UgPT0gX3Jlc291cmNlKTsKQEAgLTYzOSwx
NCArNjM5LDE0IEBAIHZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50Ojpsb2Fk
RmluaXNoZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiByZXNvCiAgICAgUmV0YWluUHRyPE5TVVJM
UmVzcG9uc2U+IHN0cm9uZ1Jlc3BvbnNlIHsgcmVzcG9uc2UubnNVUkxSZXNwb25zZSgpIH07CiAg
ICAgUmV0YWluUHRyPFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFzaz4gc3Ryb25nU2VsZiB7IHNl
bGYgfTsKICAgICBpZiAoIXNlbGYuc2Vzc2lvbikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpObyk7CiAgICAg
W3NlbGYuc2Vzc2lvbiBhZGREZWxlZ2F0ZU9wZXJhdGlvbjpbc3Ryb25nU2VsZiwgc3Ryb25nUmVz
cG9uc2UsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgp
IG11dGFibGUgewogICAgICAgICBzdHJvbmdTZWxmLT5fcmVzcG9uc2UgPSBzdHJvbmdSZXNwb25z
ZS5nZXQoKTsKIAogICAgICAgICBpZDxOU1VSTFNlc3Npb25EYXRhRGVsZWdhdGU+IGRhdGFEZWxl
Z2F0ZSA9IChpZDxOU1VSTFNlc3Npb25EYXRhRGVsZWdhdGU+KXN0cm9uZ1NlbGYuZ2V0KCkuc2Vz
c2lvbi5kZWxlZ2F0ZTsKICAgICAgICAgaWYgKCFbZGF0YURlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoVVJMU2Vzc2lvbjpkYXRhVGFzazpkaWRSZWNlaXZlUmVzcG9uc2U6Y29t
cGxldGlvbkhhbmRsZXI6KV0pIHsKICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3N0cm9u
Z1NlbGYsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgp
IG11dGFibGUgewotICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNr
ZXI6OlNob3VsZENvbnRpbnVlOjpZZXMpOworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Olllcyk7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNjU0LDEwICs2NTQsMTAgQEAgdm9pZCBX
ZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmxvYWRGaW5pc2hlZChQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2UmIHJlc28KICAgICAgICAgW2RhdGFEZWxlZ2F0ZSBVUkxTZXNzaW9uOihOU1VS
TFNlc3Npb24gKilzdHJvbmdTZWxmLmdldCgpLnNlc3Npb24gZGF0YVRhc2s6KE5TVVJMU2Vzc2lv
bkRhdGFUYXNrICopc3Ryb25nU2VsZi5nZXQoKSBkaWRSZWNlaXZlUmVzcG9uc2U6c3Ryb25nUmVz
cG9uc2UuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtzdHJvbmdTZWxmLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoTlNVUkxTZXNz
aW9uUmVzcG9uc2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbikgbXV0YWJsZSB7CiAgICAgICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFtzdHJvbmdTZWxmLCBkaXNwb3NpdGlvbiwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICAgICAgaWYgKGRpc3Bvc2l0aW9uID09IE5TVVJMU2Vzc2lvblJlc3BvbnNlQ2FuY2VsKQot
ICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91
bGRDb250aW51ZTo6Tm8pOworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihT
aG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpObyk7CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAg
ICAgICAgICAgICAgICAgICAgIEFTU0VSVChkaXNwb3NpdGlvbiA9PSBOU1VSTFNlc3Npb25SZXNw
b25zZUFsbG93KTsKLSAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5
Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Olllcyk7CisgICAgICAgICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Olllcyk7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pLmdldCgpXTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcApp
bmRleCBmNzkzMzQ3ZTI4NDFhZTNjMmJjNmI0MTlhMmNjMDg0NWVhYmI5MTlkLi42NDE1MGY5OTI3
NzUwNTFiMjEyZGM2MDY3OGJmNTJlMDRhZjk0NTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCkBAIC02Niw3ICs2
Niw3IEBAIGJvb2wgUmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVj
aygpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjazsKIH0KIAot
dm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2ssIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpyZXNwb25zZVJlY2VpdmVk
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250
cm9sQ2hlY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWVQb2xpY3lDaGVj
ayk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAg
cmV0dXJuOwpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OnJlc3Bv
bnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvbwogICAgIG1f
ZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjayA9IGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2s7CiAg
ICAgbV9jbGllbnQtPnJlc3BvbnNlUmVjZWl2ZWQoKnRoaXMsIHJlc3BvbnNlLCBbcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXShhdXRvIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAgICAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlID09IFBvbGlj
eUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObykKKyAgICAgICAgaWYgKHNob3VsZENvbnRpbnVl
ID09IFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5vKQogICAgICAgICAgICAgcHJvdGVjdGVk
VGhpcy0+c3RvcCgpOwogCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHNob3VsZENvbnRpbnVl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZS5oCmluZGV4IDQ1YmExY2FhYzJhZGYyZWQ2ODAyMWRmMjdmZWIxMzc2ZTZkMzM0MjEu
LjQ4NmY2YmI2MWEzNzkwZGZmMmY0MGU1ODUzZjU4ODg1ZjdkNzg1ZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuaApAQCAt
NDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAgICAgYm9vbCBk
aWRQYXNzQWNjZXNzQ29udHJvbENoZWNrKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHJlc3Bv
bnNlUmVjZWl2ZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJvb2wsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUp
PiYmKTsKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U2hvdWxkQ29u
dGludWVQb2xpY3lDaGVjayk+JiYpOwogICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpPiYmKTsKICAg
ICB2b2lkIGRhdGFTZW50KHVpbnQ2NF90LCB1aW50NjRfdCk7CiAgICAgdm9pZCBkYXRhUmVjZWl2
ZWQoY29uc3QgY2hhciosIGludDY0X3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAKaW5kZXgg
Y2U3OTNmNTk5OTkxOGQ0NTA3Y2ZmODZmMjgzNWVjOWM2YzI5M2VlYy4uMTM0YjhjYTZiOGEyZjE4
MDA5MTc3NDFmOWFjYTA2ODc2YWU4MGMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwCkBA
IC01OSwxMSArNTksMTEgQEAgdm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVtb3Zl
TWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmkKICAgICBtX3JlbW90ZU1l
ZGlhUmVzb3VyY2VzLnJlbW92ZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CiB9CiAK
LXZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlc3BvbnNlUmVjZWl2ZWQoUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2ssIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVzcG9uc2VSZWNlaXZlZChSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGJvb2wgZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTaG91bGRDb250aW51ZVBvbGljeUNoZWNrKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBhdXRvKiByZXNvdXJjZSA9IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKTsKICAgICBp
ZiAoIXJlc291cmNlIHx8ICFyZXNvdXJjZS0+cmVhZHkoKSkgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpObyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgKaW5kZXggMDhmZGU0MjkyMTNiMmE4
N2M4MzJlODc4NzY1MjQzMWQ4ZTA0NGE2My4uNzc1MDE0NTg2MDBkZDA5ODY1N2M5NDVlZWIwZWU0
OWJiNmUwMDNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJikgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKFJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xpY3lDaGVja2Vy
OjpTaG91bGRDb250aW51ZSk+JiYpOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U2hvdWxkQ29udGludWVQb2xp
Y3lDaGVjayk+JiYpOwogICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmKT4mJik7CiAgICAgdm9pZCBkYXRhU2VudChSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciwgdWludDY0X3QsIHVpbnQ2NF90KTsKICAgICB2b2lkIGRhdGFSZWNlaXZlZChS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYzA0YTM4NmJm
MGEyYmYzMDAzOTA4NGIxN2YwYjU1NmNkMWMyOGEzYy4uNGViY2M1ZjAxN2FjY2U1MTMwMDBkZDE4
OTJiYTQ4ZWUxYjgzMjAzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbgpAQCAtMjYsNyArMjYsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2Fn
ZXMgLT4gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7Ci0gICAgUmVz
cG9uc2VSZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250
cm9sQ2hlY2spIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSBzaG91
bGRDb250aW51ZSkgQXN5bmMKKyAgICBSZXNwb25zZVJlY2VpdmVkKFdlYktpdDo6UmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9u
c2UsIGJvb2wgZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaykgLT4gKGVudW06dWludDhfdCBXZWJD
b3JlOjpTaG91bGRDb250aW51ZVBvbGljeUNoZWNrIHNob3VsZENvbnRpbnVlKSBBc3luYwogICAg
IFJlZGlyZWN0UmVjZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBp
ZCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UgcmVzcG9uc2UpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmV0dXJuUmVxdWVz
dCkgQXN5bmMKICAgICBEYXRhU2VudChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyIGlkLCB1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2VudCkK
ICAgICBEYXRhUmVjZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBp
ZCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQppbmRleCA3YmEzYTY2ZGM5MzYxYTRlOThkODdhN2I2N2MyYmFmNjcyNDlkNzll
Li5kODNhZTMyOTAyYTk0NWQ1YzgyNWQyNWE1NDIxZmZjZDk0ZTJhMDQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTYwNyw2ICs2MDcsNyBAQCBkZWYgaGVh
ZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRh
dGUnOiBbJzxXZWJDb3JlL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpQbHVnaW5JbmZvJzogWyc8V2ViQ29yZS9QbHVnaW5EYXRhLmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpQb2xpY3lBY3Rpb24nOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlw
ZXMuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OlNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2snOiBb
JzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXInOiBbJzxXZWJDb3JlL1Byb2Nlc3NJZGVu
dGlmaWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpSZWNlbnRTZWFyY2gnOiBbJzxXZWJDb3Jl
L1NlYXJjaFBvcHVwTWVudS5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCmluZGV4
IDkwOTZlMjUwMGE4YTMzZjdlMzU2ZDJiM2NlZjk0NDk4N2RkMDc3ZDkuLjZhNmJiY2Q2ZDVhNzZm
Yjk0MDNlN2RiN2Y3NzAxZjVmZWY4MjY2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5j
cHAKQEAgLTQ2LDcgKzQ2LDcgQEAgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Ojp+UmVtb3RlTWVk
aWFSZXNvdXJjZVByb3h5KCkKIHsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6
OnJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OnJlc3BvbnNlUmVjZWl2ZWQo
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U2hvdWxk
Q29udGludWVQb2xpY3lDaGVjayk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9jb25u
ZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyOjpSZXNwb25zZVJlY2VpdmVkKG1faWQsIHJlc3BvbnNlLCBtX3BsYXRmb3JtTWVkaWFS
ZXNvdXJjZS5kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrKCkpLCBbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBzaG91bGRDb250aW51ZSkgbXV0YWJs
ZSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHNob3VsZENvbnRpbnVlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eS5oCmluZGV4IGQ2Y2RmOTZhYjIwMDNkNzgxMGZlZGQxOWFkMDU3MGY2MDEz
MDQ3OTIuLjk1M2JiMzAzOTA0ZGVjYzc3MTAzNWNiZDY5NjgzOWY1YTcwNWRmOTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVJlc291cmNlUHJveHkuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgLy8gUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50Ci0gICAgdm9pZCByZXNwb25zZVJl
Y2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJikgZmluYWw7CisgICAgdm9pZCByZXNwb25zZVJlY2Vp
dmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlNob3VsZENvbnRp
bnVlUG9saWN5Q2hlY2spPiYmKSBmaW5hbDsKICAgICB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKT4mJikgZmluYWw7CiAgICAgYm9vbCBzaG91bGRD
YWNoZVJlc3BvbnNlKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmKSBmaW5hbDsKICAgICB2b2lkIGRhdGFTZW50KFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9u
ZyBsb25nKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397940</attachid>
            <date>2020-04-29 01:22:53 -0700</date>
            <delta_ts>2020-04-29 03:23:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211138-20200429102251.patch</filename>
            <type>text/plain</type>
            <size>42027</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjViM2MxYjE0OGE5MmM2
Yzg2ZDQ5NmRiNWUwNmJjNWMxNjAxNGRhMC4uNjU3NmNhNWRmMDkwMzVkMWExZTgzYWUwY2EwNmIy
MDQ5NzNhMzRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA0LTI4ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBQb2xpY3lDaGVja2VyIGFu
IGlubmVyIGNsYXNzIG9mIEZyYW1lTG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTExMzgKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuLgorCisgICAgICAgIFBvbGljeUNoZWNrZXIgSGlzdG9yeUNvbnRyb2xsZXIgYW4g
aW5uZXIgY2xhc3Mgb2YgRnJhbWVMb2FkZXIsIHRoaXMgYWxsb3dzIHVzIHRvIG1vdmUgc29tZSBt
ZXRob2RzCisgICAgICAgIG9ubHkgdXNlZCBieSBQb2xpY3lDaGVja2VyIG91dCBvZiB0aGUgRnJh
bWVMb2FkZXIgcHVibGljIEFQSS4gQmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gZm9yd2Fy
ZCBkZWNsYXJlCisgICAgICAgIGFuIGVudW0gY2xhc3MgaW4gYW4gaW5uZXIgY2xhc3MsIG1vdmUg
U2hvdWxkQ29udGludWUgb3V0IG9mIHRoZSBQb2xpY3lDaGVja2VyIGNsYXNzIGFuZCByZW5hbWUg
aXQKKyAgICAgICAgdG8gU2hvdWxkQ29udGludWVQb2xpY3lDaGVjay4KKworICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9h
ZFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZCk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeSk6CisgICAgICAg
ICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyVHlw
ZXMuaDoKKyAgICAgICAgKiBsb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVJlc291cmNlOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKiBs
b2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgICogbG9hZGVyL1BvbGljeUNoZWNrZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudDo6cmVz
cG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoK
KyAgICAgICAgKENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24u
bW06CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6
OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoLVtXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRh
c2sgcmVzb3VyY2U6cmVjZWl2ZWRSZXNwb25zZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKwogMjAy
MC0wNC0yOCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbW92ZSBk
b3dubG9hZEF0dHJpYnV0ZSBmcm9tIERvY3VtZW50TG9hZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIwMGNjNzhh
OWFiNjdmMGRhZDQ3OTdhNmZhNzdmNGYxY2M5ZWY2ZTEuLjliOTRhOGFjZDE4OTI1YzNjZGVmYjU5
ODM1ZjQyOTBkYTcwNmE1YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDQtMjgg
IFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBNYWtlIFBvbGljeUNoZWNr
ZXIgYW4gaW5uZXIgY2xhc3Mgb2YgRnJhbWVMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTEzOAorCisgICAgICAgIFJldmlld2VkIGJ5IEFs
ZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRhcHQgdG8gUG9saWN5Q2hlY2tlcjo6U2hvdWxk
Q29udGludWUgY2hhbmdlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6cmVz
cG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJl
c291cmNlLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
OjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNl
UHJveHk6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oOgorCiAyMDIwLTA0LTI4ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY0NhdGFseXN0XSBBZGQgbWlzc2lu
ZyBzeW1saW5rcyB0byBXZWJLaXQuZnJhbWV3b3JrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKaW5kZXggZTE5MTViYWE5MTNhMDZhZWM3MTIxZTcyODNlZTcxNmFjODNiMzdiOS4u
M2U2NWE4MGZkNGU1MzNmOWYzNWQ3MDBkMmVjYjZlYjRmMjAxOTQ1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xMzg0LDcgKzEzODQsNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpsb2FkVVJMKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBT
dHJpbmcmIHJlZgogICAgIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRp
b25Ub0ludmFsaWRVUkwgPSBmcmFtZUxvYWRSZXF1ZXN0LmFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTCgpOwogICAgIGlmICghdGFyZ2V0RnJhbWUgJiYgIWVmZmVjdGl2ZUZyYW1lTmFtZS5pc0Vt
cHR5KCkpIHsKICAgICAgICAgYWN0aW9uID0gYWN0aW9uLmNvcHlXaXRoU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9BcHBseShtX2ZyYW1l
LCBmcmFtZUxvYWRSZXF1ZXN0KSk7Ci0gICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dp
bmRvd1BvbGljeShXVEZNb3ZlKGFjdGlvbiksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZm9y
bVN0YXRlKSwgZWZmZWN0aXZlRnJhbWVOYW1lLCBbdGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZh
bGlkVVJMLCBvcGVuZXJQb2xpY3ksIGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRs
ZXJDYWxsZXIucmVsZWFzZSgpXSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFr
UHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVl
IHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKKyAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNr
TmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92
ZShmb3JtU3RhdGUpLCBlZmZlY3RpdmVGcmFtZU5hbWUsIFt0aGlzLCBhbGxvd05hdmlnYXRpb25U
b0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSwgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9u
SGFuZGxlckNhbGxlci5yZWxlYXNlKCldIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFdlYWtQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUs
IGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgU2hvdWxkQ29udGludWVQb2xpY3lDaGVj
ayBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjb250aW51ZUxvYWRBZnRl
ck5ld1dpbmRvd1BvbGljeShyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCksIGZyYW1lTmFtZSwgYWN0
aW9uLCBzaG91bGRDb250aW51ZSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQ
b2xpY3kpOwogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgfSk7CkBA
IC0xNDY3LDcgKzE0NjcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKEZyYW1lTG9hZFJlcXVl
c3QmJiByZXF1ZXN0KQogCiAgICAgaWYgKHJlcXVlc3Quc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xp
Y3koKSkgewogICAgICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbiB7IHJlcXVlc3QucmVxdWVz
dGVyKCksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpV
bmtub3duLCBOYXZpZ2F0aW9uVHlwZTo6T3RoZXIsIHJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSgpIH07Ci0gICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dpbmRvd1Bv
bGljeShXVEZNb3ZlKGFjdGlvbiksIFdURk1vdmUocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSks
IHsgfSwgcmVxdWVzdC5mcmFtZU5hbWUoKSwgW3RoaXNdIChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBm
cmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgUG9saWN5Q2hlY2tlcjo6
U2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIHsKKyAgICAgICAgcG9saWN5Q2hlY2tlcigp
LmNoZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZShyZXF1ZXN0LnJl
c291cmNlUmVxdWVzdCgpKSwgeyB9LCByZXF1ZXN0LmZyYW1lTmFtZSgpLCBbdGhpc10gKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRl
LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9u
LCBTaG91bGRDb250aW51ZVBvbGljeUNoZWNrIHNob3VsZENvbnRpbnVlKSB7CiAgICAgICAgICAg
ICBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0
KCksIGZyYW1lTmFtZSwgYWN0aW9uLCBzaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9J
bnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcyk7CiAgICAgICAg
IH0pOwogCkBAIC0zMDIxLDcgKzMwMjEsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJl
cXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcmVmZQogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNo
ZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZSh3b3JraW5nUmVzb3Vy
Y2VSZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3RhdGUpLCBmcmFtZU5hbWUsIFt0aGlzLCBhbGxvd05h
dmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFt
ZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBQb2xpY3lDaGVja2VyOjpTaG91bGRD
b250aW51ZSBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7CisgICAgICAgIHBvbGljeUNoZWNrZXIo
KS5jaGVja05ld1dpbmRvd1BvbGljeShXVEZNb3ZlKGFjdGlvbiksIFdURk1vdmUod29ya2luZ1Jl
c291cmNlUmVxdWVzdCksIFdURk1vdmUoZm9ybVN0YXRlKSwgZnJhbWVOYW1lLCBbdGhpcywgYWxs
b3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xpY3ksIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFt
ZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgU2hvdWxkQ29udGludWVQb2xp
Y3lDaGVjayBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjb250aW51ZUxv
YWRBZnRlck5ld1dpbmRvd1BvbGljeShyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCksIGZyYW1lTmFt
ZSwgYWN0aW9uLCBzaG91bGRDb250aW51ZSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBv
cGVuZXJQb2xpY3kpOwogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAg
fSk7CkBAIC0zNTAwLDkgKzM1MDAsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRB
ZnRlck5hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZQogfQogCiB2
b2lkIEZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsCi0gICAgRm9ybVN0YXRlKiBmb3JtU3RhdGUsIGNvbnN0
IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFBvbGlj
eUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlLCBBbGxvd05hdmlnYXRpb25U
b0ludmFsaWRVUkwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBOZXdGcmFtZU9wZW5lclBv
bGljeSBvcGVuZXJQb2xpY3kpCisgICAgRm9ybVN0YXRlKiBmb3JtU3RhdGUsIGNvbnN0IFN0cmlu
ZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFNob3VsZENvbnRp
bnVlUG9saWN5Q2hlY2sgc2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0ZyYW1lT3BlbmVyUG9saWN5IG9wZW5l
clBvbGljeSkKIHsKLSAgICBpZiAoc2hvdWxkQ29udGludWUgIT0gUG9saWN5Q2hlY2tlcjo6U2hv
dWxkQ29udGludWU6OlllcykKKyAgICBpZiAoc2hvdWxkQ29udGludWUgIT0gU2hvdWxkQ29udGlu
dWVQb2xpY3lDaGVjazo6WWVzKQogICAgICAgICByZXR1cm47CiAKICAgICBSZWY8RnJhbWU+IGZy
YW1lKG1fZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBmMDE2ZjFl
YWU1NTgyNjY3OTEwMDc0NjYzNDdlYjIxMjcxZDUwYjVhLi5jN2RkYWU0MTdhNmJhMzI5MDg5ZTE1
YjhlNDZhYjMwNGE5MjNlZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAt
MzksNyArMzksNiBAQAogI2luY2x1ZGUgIkxheW91dE1pbGVzdG9uZS5oIgogI2luY2x1ZGUgIk1p
eGVkQ29udGVudENoZWNrZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgotI2luY2x1
ZGUgIlBvbGljeUNoZWNrZXIuaCIKICNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgogI2luY2x1
ZGUgIlJlc291cmNlTG9hZE5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRp
b25zLmgiCkBAIC03Nyw3ICs3Niw2IEBAIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247CiBjbGFzcyBO
ZXR3b3JraW5nQ29udGV4dDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBQYWdlOwotY2xhc3MgUG9saWN5
Q2hlY2tlcjsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBj
bGFzcyBSZXNvdXJjZVJlc3BvbnNlOwpAQCAtMTEwLDYgKzEwOCw3IEBAIHB1YmxpYzoKIAogICAg
IEZyYW1lJiBmcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWU7IH0KIAorICAgIGNsYXNzIFBv
bGljeUNoZWNrZXI7CiAgICAgUG9saWN5Q2hlY2tlciYgcG9saWN5Q2hlY2tlcigpIGNvbnN0IHsg
cmV0dXJuICptX3BvbGljeUNoZWNrZXI7IH0KIAogICAgIGNsYXNzIEhpc3RvcnlDb250cm9sbGVy
OwpAQCAtMTU2LDcgKzE1NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3BMb2FkaW5nKFVubG9h
ZEV2ZW50UG9saWN5KTsKICAgICB2b2lkIGNsb3NlVVJMKCk7CiAgICAgdm9pZCBjYW5jZWxBbmRD
bGVhcigpOwotICAgIHZvaWQgY2xlYXJQcm92aXNpb25hbExvYWRGb3JQb2xpY3lDaGVjaygpOwog
ICAgIC8vIEZJWE1FOiBjbGVhcigpIGlzIHRyeWluZyB0byBkbyB0b28gbWFueSB0aGluZ3MuIFdl
IHNob3VsZCBicmVhayBpdCBkb3duIGludG8gc21hbGxlciBmdW5jdGlvbnMgKGlkZWFsbHkgd2l0
aCBmZXdlciByYXcgQm9vbGVhbiBwYXJhbWV0ZXJzKS4KICAgICB2b2lkIGNsZWFyKERvY3VtZW50
KiBuZXdEb2N1bWVudCwgYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRpZXMgPSB0cnVlLCBib29sIGNs
ZWFyU2NyaXB0T2JqZWN0cyA9IHRydWUsIGJvb2wgY2xlYXJGcmFtZVZpZXcgPSB0cnVlLCBXVEY6
OkZ1bmN0aW9uPHZvaWQoKT4mJiBoYW5kbGVET01XaW5kb3dDcmVhdGlvbiA9IG51bGxwdHIpOwog
CkBAIC0yNTYsNyArMjU0LDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lKiBv
cGVuZXIoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE9wZW5lcihGcmFtZSopOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGV0YWNoRnJvbUFsbE9wZW5lZEZyYW1lcygpOwotICAgIGJv
b2wgaGFzT3BlbmVkRnJhbWVzKCkgY29uc3QgeyByZXR1cm4gIW1fb3BlbmVkRnJhbWVzLmlzRW1w
dHkoKTsgfQogCiAgICAgdm9pZCByZXNldE11bHRpcGxlRm9ybVN1Ym1pc3Npb25Qcm90ZWN0aW9u
KCk7CiAKQEAgLTM2Myw3ICszNjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hVbmxv
YWRFdmVudHMoVW5sb2FkRXZlbnRQb2xpY3kpOwogCiAgICAgdm9pZCBjb250aW51ZUxvYWRBZnRl
ck5hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgTmF2
aWdhdGlvblBvbGljeURlY2lzaW9uLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpOwotICAg
IHZvaWQgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRp
b25BY3Rpb24mLCBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMLCBOZXdGcmFtZU9wZW5lclBvbGljeSk7CisgICAgdm9pZCBjb250aW51ZUxv
YWRBZnRlck5ld1dpbmRvd1BvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUq
LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIFNob3Vs
ZENvbnRpbnVlUG9saWN5Q2hlY2ssIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJh
bWVPcGVuZXJQb2xpY3kpOwogICAgIHZvaWQgY29udGludWVGcmFnbWVudFNjcm9sbEFmdGVyTmF2
aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29sIHNob3VsZENvbnRpbnVl
KTsKIAogICAgIGJvb2wgc2hvdWxkUGVyZm9ybUZyYWdtZW50TmF2aWdhdGlvbihib29sIGlzRm9y
bVN1Ym1pc3Npb24sIGNvbnN0IFN0cmluZyYgaHR0cE1ldGhvZCwgRnJhbWVMb2FkVHlwZSwgY29u
c3QgVVJMJik7CkBAIC00MzAsNiArNDI3LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2FkVVJM
SW50b0NoaWxkRnJhbWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcmVyLCBGcmFtZSop
OwogICAgIHZvaWQgc3RhcnRlZCgpOwogCisgICAgLy8gUG9saWN5Q2hlY2tlciBzcGVjaWZpYy4K
KyAgICB2b2lkIGNsZWFyUHJvdmlzaW9uYWxMb2FkRm9yUG9saWN5Q2hlY2soKTsKKyAgICBib29s
IGhhc09wZW5lZEZyYW1lcygpIGNvbnN0IHsgcmV0dXJuICFtX29wZW5lZEZyYW1lcy5pc0VtcHR5
KCk7IH0KKwogICAgIEZyYW1lJiBtX2ZyYW1lOwogICAgIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNs
aWVudD4gbV9jbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlclR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5o
CmluZGV4IGJjMDU3ZjJmNzQyMjhhOWIwODg4ZmM0NzNmNmM0ZjA0YjczM2U1YjcuLmY5ZGM5Yjhk
OTYxNGE2NGMzYzE4YjAwZmUyNWUxZmFlNjdjYjM2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtMTEyLDYgKzExMiwxMSBAQCBPcHRpb25hbDxQb2xpY3lD
aGVja0lkZW50aWZpZXI+IFBvbGljeUNoZWNrSWRlbnRpZmllcjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAgICAgcmV0dXJuIFBvbGljeUNoZWNrSWRlbnRpZmllciB7ICpwcm9jZXNzLCBwb2xp
Y3lDaGVjayB9OwogfQogCitlbnVtIGNsYXNzIFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2sgOiBi
b29sIHsKKyAgICBZZXMsCisgICAgTm8KK307CisKIGVudW0gY2xhc3MgTmV3RnJhbWVPcGVuZXJQ
b2xpY3kgOiB1aW50OF90IHsKICAgICBTdXBwcmVzcywKICAgICBBbGxvdwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDBkZjZjZjhiZjRhMDc3
ZWU5ZDlmNGVmNzIxOWI5YjdhMDdhMTE0MjcuLjE3MDAwZGY4YmY0ODhkYTUxMDc3MTIxNmIwN2Yy
ZjNkMWNlOGViYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291
cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxv
YWRlci5jcHAKQEAgLTE4Miw3ICsxODIsNyBAQCB2b2lkIE1lZGlhUmVzb3VyY2U6OnJlc3BvbnNl
UmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlcwogICAg
ICAgICBtX2NsaWVudC0+cmVzcG9uc2VSZWNlaXZlZCgqdGhpcywgcmVzcG9uc2UsIFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxl
dGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgpXSAoYXV0byBzaG91bGRDb250aW51ZSkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICBpZiAoY29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgICAgIGlmIChzaG91bGRDb250aW51ZSA9PSBQ
b2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pCisgICAgICAgICAgICBpZiAoc2hvdWxk
Q29udGludWUgPT0gU2hvdWxkQ29udGludWVQb2xpY3lDaGVjazo6Tm8pCiAgICAgICAgICAgICAg
ICAgc3RvcCgpOwogICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BvbGljeUNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNr
ZXIuY3BwCmluZGV4IDQ2MTY5ZjUwOTk5NTc0N2Y0ZGYyMDBjM2MwODY3NGM3NzM1YTg3NWEuLmM1
YzRlYTg1YTQ2NGY4ZDlkMzMyZDQ0NzY4NzZjMmNjOTM0YjI5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgYm9vbCBQb2xpY3lDaGVj
a0lkZW50aWZpZXI6OmlzVmFsaWRGb3IoUG9saWN5Q2hlY2tJZGVudGlmaWVyIGV4cGVjdGVkSWRl
bnRpZmllcikKICAgICByZXR1cm4gbV9wb2xpY3lDaGVjayA9PSBleHBlY3RlZElkZW50aWZpZXIu
bV9wb2xpY3lDaGVjazsKIH0KIAotUG9saWN5Q2hlY2tlcjo6UG9saWN5Q2hlY2tlcihGcmFtZSYg
ZnJhbWUpCitGcmFtZUxvYWRlcjo6UG9saWN5Q2hlY2tlcjo6UG9saWN5Q2hlY2tlcihGcmFtZSYg
ZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgICwgbV9kZWxlZ2F0ZUlzRGVjaWRpbmdO
YXZpZ2F0aW9uUG9saWN5KGZhbHNlKQogICAgICwgbV9kZWxlZ2F0ZUlzSGFuZGxpbmdVbmltcGxl
bWVudGFibGVQb2xpY3koZmFsc2UpCkBAIC05OSwxMiArOTksMTIgQEAgUG9saWN5Q2hlY2tlcjo6
UG9saWN5Q2hlY2tlcihGcmFtZSYgZnJhbWUpCiB7CiB9CiAKLXZvaWQgUG9saWN5Q2hlY2tlcjo6
Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIE5hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbkZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIEZyYW1lTG9hZGVyOjpQb2xpY3lDaGVja2Vy
OjpjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYgbmV3UmVxdWVzdCwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgTmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBjaGVja05hdmlnYXRpb25Qb2xpY3ko
V1RGTW92ZShuZXdSZXF1ZXN0KSwgcmVkaXJlY3RSZXNwb25zZSwgbV9mcmFtZS5sb2FkZXIoKS5h
Y3RpdmVEb2N1bWVudExvYWRlcigpLCB7IH0sIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAotQ29t
cGxldGlvbkhhbmRsZXJDYWxsaW5nU2NvcGUgUG9saWN5Q2hlY2tlcjo6ZXh0ZW5kQmxvYlVSTExp
ZmV0aW1lSWZOZWNlc3NhcnkoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAorQ29tcGxl
dGlvbkhhbmRsZXJDYWxsaW5nU2NvcGUgRnJhbWVMb2FkZXI6OlBvbGljeUNoZWNrZXI6OmV4dGVu
ZEJsb2JVUkxMaWZldGltZUlmTmVjZXNzYXJ5KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgY29u
c3QKIHsKICAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0Jsb2IoKSkKICAgICAgICAg
cmV0dXJuIHsgfTsKQEAgLTExOCw3ICsxMTgsNyBAQCBDb21wbGV0aW9uSGFuZGxlckNhbGxpbmdT
Y29wZSBQb2xpY3lDaGVja2VyOjpleHRlbmRCbG9iVVJMTGlmZXRpbWVJZk5lY2Vzc2FyeShSZQog
ICAgIH0pOwogfQogCi12b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVj
dFJlc3BvbnNlLCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBSZWZQdHI8Rm9ybVN0YXRlPiYmIGZv
cm1TdGF0ZSwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbiwgUG9s
aWN5RGVjaXNpb25Nb2RlIHBvbGljeURlY2lzaW9uTW9kZSkKK3ZvaWQgRnJhbWVMb2FkZXI6OlBv
bGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBEb2N1bWVudExv
YWRlciogbG9hZGVyLCBSZWZQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgTmF2aWdhdGlvblBv
bGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbiwgUG9saWN5RGVjaXNpb25Nb2RlIHBvbGlj
eURlY2lzaW9uTW9kZSkKIHsKICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbiA9IGxvYWRlci0+
dHJpZ2dlcmluZ0FjdGlvbigpOwogICAgIGlmIChhY3Rpb24uaXNFbXB0eSgpKSB7CkBAIC0yNDcs
MTMgKzI0NywxMyBAQCB2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdQogICAgICAgICBtX2ZyYW1lLmxv
YWRlcigpLmNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihh
Y3Rpb24sIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UsIGZvcm1TdGF0ZS5nZXQoKSwgcG9saWN5
RGVjaXNpb25Nb2RlLCByZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShkZWNpc2lvbkhhbmRsZXIp
KTsKIH0KIAotdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeShOYXZpZ2F0
aW9uQWN0aW9uJiYgbmF2aWdhdGlvbkFjdGlvbiwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
UmVmUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBO
ZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIEZyYW1lTG9h
ZGVyOjpQb2xpY3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeShOYXZpZ2F0aW9uQWN0aW9u
JiYgbmF2aWdhdGlvbkFjdGlvbiwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVmUHRyPEZv
cm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBOZXdXaW5kb3dQ
b2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgaWYgKG1fZnJhbWUuZG9j
dW1lbnQoKSAmJiBtX2ZyYW1lLmRvY3VtZW50KCktPmlzU2FuZGJveGVkKFNhbmRib3hQb3B1cHMp
KQotICAgICAgICByZXR1cm4gZnVuY3Rpb24oeyB9LCBudWxscHRyLCB7IH0sIHsgfSwgU2hvdWxk
Q29udGludWU6Ok5vKTsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHsgfSwgbnVsbHB0ciwgeyB9
LCB7IH0sIFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5vKTsKIAogICAgIGlmICghRE9NV2lu
ZG93OjphbGxvd1BvcFVwKG1fZnJhbWUpKQotICAgICAgICByZXR1cm4gZnVuY3Rpb24oeyB9LCBu
dWxscHRyLCB7IH0sIHsgfSwgU2hvdWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAgcmV0dXJuIGZ1
bmN0aW9uKHsgfSwgbnVsbHB0ciwgeyB9LCB7IH0sIFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6
Ok5vKTsKIAogICAgIGF1dG8gYmxvYlVSTExpZmV0aW1lRXh0ZW5zaW9uID0gZXh0ZW5kQmxvYlVS
TExpZmV0aW1lSWZOZWNlc3NhcnkocmVxdWVzdCk7CiAKQEAgLTI2MywzOCArMjYzLDM4IEBAIHZv
aWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOZXdXaW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbiYm
IG5hdmlnYXRpb25BY3Rpb24sIFJlCiAgICAgICAgIHJlcXVlc3RJZGVudGlmaWVyXSAoUG9saWN5
QWN0aW9uIHBvbGljeUFjdGlvbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIHJlc3BvbnNlSWRlbnRp
ZmllcikgbXV0YWJsZSB7CiAKICAgICAgICAgaWYgKCFyZXNwb25zZUlkZW50aWZpZXIuaXNWYWxp
ZEZvcihyZXF1ZXN0SWRlbnRpZmllcikpCi0gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oeyB9
LCBudWxscHRyLCB7IH0sIHsgfSwgU2hvdWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAgICAgIHJl
dHVybiBmdW5jdGlvbih7IH0sIG51bGxwdHIsIHsgfSwgeyB9LCBTaG91bGRDb250aW51ZVBvbGlj
eUNoZWNrOjpObyk7CiAKICAgICAgICAgc3dpdGNoIChwb2xpY3lBY3Rpb24pIHsKICAgICAgICAg
Y2FzZSBQb2xpY3lBY3Rpb246OkRvd25sb2FkOgogICAgICAgICAgICAgZnJhbWUtPmxvYWRlcigp
LmNsaWVudCgpLnN0YXJ0RG93bmxvYWQocmVxdWVzdCk7CiAgICAgICAgICAgICBGQUxMVEhST1VH
SDsKICAgICAgICAgY2FzZSBQb2xpY3lBY3Rpb246Oklnbm9yZToKLSAgICAgICAgICAgIGZ1bmN0
aW9uKHsgfSwgbnVsbHB0ciwgeyB9LCB7IH0sIFNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAg
ICAgICBmdW5jdGlvbih7IH0sIG51bGxwdHIsIHsgfSwgeyB9LCBTaG91bGRDb250aW51ZVBvbGlj
eUNoZWNrOjpObyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgUG9saWN5QWN0
aW9uOjpTdG9wQWxsTG9hZHM6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgICAgIGZ1bmN0aW9uKHsgfSwgbnVsbHB0ciwgeyB9LCB7IH0sIFNob3VsZENvbnRpbnVl
OjpObyk7CisgICAgICAgICAgICBmdW5jdGlvbih7IH0sIG51bGxwdHIsIHsgfSwgeyB9LCBTaG91
bGRDb250aW51ZVBvbGljeUNoZWNrOjpObyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IGNhc2UgUG9saWN5QWN0aW9uOjpVc2U6Ci0gICAgICAgICAgICBmdW5jdGlvbihyZXF1ZXN0LCBt
YWtlV2Vha1B0cihmb3JtU3RhdGUuZ2V0KCkpLCBmcmFtZU5hbWUsIG5hdmlnYXRpb25BY3Rpb24s
IFNob3VsZENvbnRpbnVlOjpZZXMpOworICAgICAgICAgICAgZnVuY3Rpb24ocmVxdWVzdCwgbWFr
ZVdlYWtQdHIoZm9ybVN0YXRlLmdldCgpKSwgZnJhbWVOYW1lLCBuYXZpZ2F0aW9uQWN0aW9uLCBT
aG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpZZXMpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0pOwogfQogCi12b2lk
IFBvbGljeUNoZWNrZXI6OnN0b3BDaGVjaygpCit2b2lkIEZyYW1lTG9hZGVyOjpQb2xpY3lDaGVj
a2VyOjpzdG9wQ2hlY2soKQogewogICAgIG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuY2FuY2Vs
UG9saWN5Q2hlY2soKTsKIH0KIAotdm9pZCBQb2xpY3lDaGVja2VyOjpjYW5ub3RTaG93TUlNRVR5
cGUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIEZyYW1lTG9hZGVyOjpQ
b2xpY3lDaGVja2VyOjpjYW5ub3RTaG93TUlNRVR5cGUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCiB7CiAgICAgaGFuZGxlVW5pbXBsZW1lbnRhYmxlUG9saWN5KG1fZnJhbWUubG9h
ZGVyKCkuY2xpZW50KCkuY2Fubm90U2hvd01JTUVUeXBlRXJyb3IocmVzcG9uc2UpKTsKIH0KIAot
dm9pZCBQb2xpY3lDaGVja2VyOjpoYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3koY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpCit2b2lkIEZyYW1lTG9hZGVyOjpQb2xpY3lDaGVja2VyOjpoYW5k
bGVVbmltcGxlbWVudGFibGVQb2xpY3koY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CiAg
ICAgbV9kZWxlZ2F0ZUlzSGFuZGxpbmdVbmltcGxlbWVudGFibGVQb2xpY3kgPSB0cnVlOwogICAg
IG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGlj
eShlcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tl
ci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaAppbmRleCBjM2NlMjY2
MjdlZWQ4MzQzNDRlNGMyNjM2YjM1MGI1OGQ4MTM2NWNlLi4zYzkyY2NhNGY0MDllMWY2ODA5MDlm
ZWU2NGViZTI5ZTdlYWY1Njk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9s
aWN5Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmgK
QEAgLTI5LDcgKzI5LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJGcmFtZUxvYWRl
clR5cGVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJl
cXVlc3QuaCIKICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgpAQCAtNjAsMTkgKzYwLDE0IEBAIGVudW0gY2xhc3MgTmF2aWdhdGlvblBvbGlj
eURlY2lzaW9uIDogdWludDhfdCB7CiAKIGVudW0gY2xhc3MgUG9saWN5RGVjaXNpb25Nb2RlIHsg
U3luY2hyb25vdXMsIEFzeW5jaHJvbm91cyB9OwogCi1jbGFzcyBQb2xpY3lDaGVja2VyIHsKK2Ns
YXNzIEZyYW1lTG9hZGVyOjpQb2xpY3lDaGVja2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShQb2xpY3lDaGVja2VyKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBQb2xpY3lDaGVja2VyKEZyYW1lJik7CiAKLSAgICBlbnVtIGNsYXNzIFNo
b3VsZENvbnRpbnVlIHsKLSAgICAgICAgWWVzLAotICAgICAgICBObwotICAgIH07Ci0KICAgICB1
c2luZyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiA9IENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmLCBOYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb24pPjsKLSAgICB1c2luZyBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0
aW9uID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBXZWFr
UHRyPEZvcm1TdGF0ZT4mJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRp
b25BY3Rpb24mLCBTaG91bGRDb250aW51ZSk+OworICAgIHVzaW5nIE5ld1dpbmRvd1BvbGljeURl
Y2lzaW9uRnVuY3Rpb24gPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYsIFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2spPjsKIAogICAg
IHZvaWQgY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBEb2N1bWVudExvYWRlciosIFJlZlB0cjxG
b3JtU3RhdGU+JiYsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYsIFBvbGljeURl
Y2lzaW9uTW9kZSA9IFBvbGljeURlY2lzaW9uTW9kZTo6QXN5bmNocm9ub3VzKTsKICAgICB2b2lk
IGNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rp
b24mJik7CkBAIC0xMTIsMTYgKzEwNywzIEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLS8vIFRvIHN1cHBvcnQgZW5jb2RpbmcgV2ViQ29yZTo6UG9saWN5Q2hlY2tl
cjo6U2hvdWxkQ29udGludWUgaW4gWFBDIG1lc3NhZ2VzCi1uYW1lc3BhY2UgV1RGIHsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRD
b250aW51ZT4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNv
cmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlLAotICAgICAgICBXZWJDb3JlOjpQb2xp
Y3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8sCi0gICAgICAgIFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OlNob3VsZENvbnRpbnVlOjpZZXMKLSAgICA+OwotfTsKLQotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVz
b3VyY2VMb2FkZXIuaAppbmRleCBhMTQ1ZjE2M2M2NDNhMzg2OGUxOTcxMzhhYWU0ZWRjZmQwNDc2
ZjljLi4yNWJkY2I1OGVhOGYxNmE4Nzk5ZWViNDg4Nzc1NGY1Yzk5M2M5ZGI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1l
ZGlhUmVzb3VyY2VMb2FkZXIuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBQbGF0Zm9ybU1lZGlh
UmVzb3VyY2VDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflBsYXRmb3JtTWVkaWFSZXNv
dXJjZUNsaWVudCgpID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2Vp
dmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRD
b250aW51ZTo6WWVzKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKFBsYXRm
b3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2spPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSB7IGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Olllcyk7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7IH0KICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkYXRh
U2VudChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVk
IGxvbmcgbG9uZykgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZG
UmVzb3VyY2VMb2FkZXIubW0KaW5kZXggYzQwZDdmOWY5NGYwODljNmY5YWM3MjZlYjVkYmU5NDJl
MWY0YTdhMy4uN2UwNzc4Nzk2MjcxNmNjNzU1ZmY1YWRmNWM4NGRlMDQxYjZhYTEyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
V2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQpA
QCAtMTQzLDcgKzE0Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2FkRmluaXNoZWQoKTsKIAog
ICAgIC8vIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudAotICAgIHZvaWQgcmVzcG9uc2VSZWNl
aXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpIGZp
bmFsOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250
aW51ZVBvbGljeUNoZWNrKT4mJikgZmluYWw7CiAgICAgdm9pZCByZWRpcmVjdFJlY2VpdmVkKFBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwgeyBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KHJlcXVlc3QpKTsgfQogICAgIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWwgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2b2lkIGRhdGFTZW50KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxv
bmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nKSBmaW5hbCB7IH0KQEAgLTE4NiwxMCArMTg2LDEw
IEBAIHZvaWQgUGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyOjpzdG9wKCkKICAgICByZXNvdXJj
ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwogfQogCi12b2lkIFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxv
YWRlcjo6cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVj
a2VyOjpTaG91bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFBsYXRmb3Jt
UmVzb3VyY2VNZWRpYUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTaG91bGRDb250aW51ZVBvbGljeUNoZWNrKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBtX3BhcmVudC5yZXNwb25zZVJlY2VpdmVkKHJlc3BvbnNlKTsKLSAgICBjb21wbGV0aW9u
SGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6WWVzKTsKKyAgICBjb21wbGV0
aW9uSGFuZGxlcihTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpZZXMpOwogfQogCiB2b2lkIFBs
YXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6bG9hZEZhaWxlZChjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5k
ZXggN2Y3ZTI0OGY5MGE0MTMxZjc4MGRmMWVhNzI3MzBkM2QwNzVhNzA1OS4uYzg1N2YxNjVhN2Iy
Y2E4M2E2ZTRmNGMxMDA0YTAxNTRmOTJlYjBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdl
YlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGNoZWNrVXBkYXRlQmxvY2tzaXplKHVuc2lnbmVkIGJ5dGVzUmVhZCk7CiAKICAgICAvLyBQbGF0
Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQgdmlydHVhbCBtZXRob2RzLgotICAgIHZvaWQgcmVzcG9u
c2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+
JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
aG91bGRDb250aW51ZVBvbGljeUNoZWNrKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkYXRhUmVj
ZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgY2hhciosIGludCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBhY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNl
JiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwogICAgIHZvaWQgbG9hZEZhaWxlZChQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CkBA
IC05OTIsMTQgKzk5MiwxNCBAQCB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50Ojpj
aGVja1VwZGF0ZUJsb2Nrc2l6ZSh1bnNpZ25lZCBieXRlc1JlYWQpCiAgICAgfQogfQogCi12b2lk
IENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OnJlc3BvbnNl
UmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWVQb2xpY3lDaGVj
ayk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
ICAgICBXZWJLaXRXZWJTcmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKG1fc3JjLmdldCgpKTsKICAg
ICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwogICAgIERhdGFNdXRleDxX
ZWJLaXRXZWJTcmNQcml2YXRlOjpTdHJlYW1pbmdNZW1iZXJzPjo6TG9ja2VkV3JhcHBlciBtZW1i
ZXJzKHByaXYtPmRhdGFNdXRleCk7CiAgICAgaWYgKG1lbWJlcnMtPnJlcXVlc3ROdW1iZXIgIT0g
bV9yZXF1ZXN0TnVtYmVyKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNr
ZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3Vs
ZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5vKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
MTA1MSw3ICsxMDUxLDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVz
cG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb24KICAgICAgICAgR1NUX0VM
RU1FTlRfRVJST1Ioc3JjLCBSRVNPVVJDRSwgUkVBRCwgKCJSJXU6IFJlY2VpdmVkICVkIEhUVFAg
ZXJyb3IgY29kZSIsIG1fcmVxdWVzdE51bWJlciwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSks
IChudWxscHRyKSk7CiAgICAgICAgIG1lbWJlcnMtPmRvZXNIYXZlRU9TID0gdHJ1ZTsKICAgICAg
ICAgbWVtYmVycy0+cmVzcG9uc2VDb25kaXRpb24ubm90aWZ5T25lKCk7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5vKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTA2Miw3ICsxMDYyLDcgQEAgdm9pZCBDYWNoZWRSZXNv
dXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2UmLCBjb24KICAgICAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIFJF
QUQsICgiUiV1OiBSZWNlaXZlZCB1bmV4cGVjdGVkICVkIEhUVFAgc3RhdHVzIGNvZGUgZm9yIHJh
bmdlIHJlcXVlc3QiLCBtX3JlcXVlc3ROdW1iZXIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkp
LCAobnVsbHB0cikpOwogICAgICAgICAgICAgbWVtYmVycy0+ZG9lc0hhdmVFT1MgPSB0cnVlOwog
ICAgICAgICAgICAgbWVtYmVycy0+cmVzcG9uc2VDb25kaXRpb24ubm90aWZ5T25lKCk7Ci0gICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6
Tm8pOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29udGludWVQb2xpY3lD
aGVjazo6Tm8pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEdTVF9E
RUJVR19PQkpFQ1Qoc3JjLCAiUiV1OiBSYW5nZSByZXF1ZXN0IHN1Y2NlZWRlZCIsIG1fcmVxdWVz
dE51bWJlcik7CkBAIC0xMTAxLDcgKzExMDEsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFt
aW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbgog
ICAgIG1lbWJlcnMtPndhc1Jlc3BvbnNlUmVjZWl2ZWQgPSB0cnVlOwogICAgIG1lbWJlcnMtPnJl
c3BvbnNlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwogCi0gICAgY29tcGxldGlvbkhhbmRsZXIoUG9s
aWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Olllcyk7CisgICAgY29tcGxldGlvbkhhbmRsZXIo
U2hvdWxkQ29udGludWVQb2xpY3lDaGVjazo6WWVzKTsKIH0KIAogdm9pZCBDYWNoZWRSZXNvdXJj
ZVN0cmVhbWluZ0NsaWVudDo6ZGF0YVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNv
bnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KaW5kZXgg
NGI5OGFkYWRiYWEzYzI1MGIyMGY0Y2FlNDZlMDE3NDUwMDBmOTllNS4uNzRlZDkzNGE1YmFiMWFj
NmIyNjY0N2ZhZTdlMzc4NTdhYmM5ZGFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQpAQCAt
NTcsNyArNTcsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogQHByb3BlcnR5IChhc3NpZ24p
IFdlYkNvcmVOU1VSTFNlc3Npb24gKiBfTnVsbGFibGUgc2Vzc2lvbjsKIAogLSAodm9pZClyZXNv
dXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJjZSBzZW50Qnl0ZXM6KHVuc2lnbmVk
IGxvbmcgbG9uZylieXRlc1NlbnQgdG90YWxCeXRlc1RvQmVTZW50Oih1bnNpZ25lZCBsb25nIGxv
bmcpdG90YWxCeXRlc1RvQmVTZW50OwotLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJl
c291cmNlJilyZXNvdXJjZSByZWNlaXZlZFJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JilyZXNwb25zZSBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xp
Y3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpY29tcGxldGlvbkhhbmRsZXI7CistICh2b2lk
KXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIHJlY2VpdmVkUmVzcG9u
c2U6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOihD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2spPiYmKWNvbXBs
ZXRpb25IYW5kbGVyOwogLSAoQk9PTClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJily
ZXNvdXJjZSBzaG91bGRDYWNoZVJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNw
b25zZTsKIC0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2Ug
cmVjZWl2ZWREYXRhOihjb25zdCBjaGFyKilkYXRhIGxlbmd0aDooaW50KWxlbmd0aDsKIC0gKHZv
aWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2UgcmVjZWl2ZWRSZWRp
cmVjdDooY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzcG9uc2UgcmVxdWVzdDooUmVzb3VyY2VS
ZXF1ZXN0JiYpcmVxdWVzdCBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CkBAIC0zODIsNyArMzgy
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGVhclRhc2soKTsKIAotICAgIHZvaWQgcmVzcG9u
c2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+
JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
aG91bGRDb250aW51ZVBvbGljeUNoZWNrKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWRpcmVj
dFJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIFJlc291cmNlUmVxdWVzdCYmLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVl
c3QmJik+JiYpIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkYXRhU2VudChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcs
IHVuc2lnbmVkIGxvbmcgbG9uZykgb3ZlcnJpZGU7CkBAIC00MTEsMTEgKzQxMSwxMSBAQCB2b2lk
IFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDo6ZGF0YVNlbnQoUGxhdGZvcm1NZWRp
YVJlc291cmNlJiByZXNvdXJjZQogICAgIFttX3Rhc2sgcmVzb3VyY2U6cmVzb3VyY2Ugc2VudEJ5
dGVzOmJ5dGVzU2VudCB0b3RhbEJ5dGVzVG9CZVNlbnQ6dG90YWxCeXRlc1RvQmVTZW50XTsKIH0K
IAotdm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OnJlc3BvbnNlUmVjZWl2
ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxk
Q29udGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9u
RGF0YVRhc2tDbGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiBy
ZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU2hvdWxkQ29udGludWVQb2xpY3lDaGVjayk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90YXNrTG9jayk7CiAgICAgaWYgKCFtX3Rhc2sp
Ci0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRD
b250aW51ZTo6Tm8pOworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29u
dGludWVQb2xpY3lDaGVjazo6Tm8pOwogCiAgICAgW21fdGFzayByZXNvdXJjZTpyZXNvdXJjZSBy
ZWNlaXZlZFJlc3BvbnNlOnJlc3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXTsKIH0KQEAgLTYyOCw3ICs2MjgsNyBAQCB2b2lkIFdlYkNvcmVOU1VSTFNl
c3Npb25EYXRhVGFza0NsaWVudDo6bG9hZEZpbmlzaGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYg
cmVzbwogICAgIC8vIE5vLW9wLgogfQogCi0tICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmKXJlc291cmNlIHJlY2VpdmVkUmVzcG9uc2U6KGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKXJlc3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBv
bGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiljb21wbGV0aW9uSGFuZGxlcgorLSAodm9p
ZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJjZSByZWNlaXZlZFJlc3Bv
bnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNwb25zZSBjb21wbGV0aW9uSGFuZGxlcjoo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250aW51ZVBvbGljeUNoZWNrKT4mJiljb21w
bGV0aW9uSGFuZGxlcgogewogICAgIEFTU0VSVChyZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJj
ZVJlc3BvbnNlOjpTb3VyY2U6Ok5ldHdvcmsgfHwgcmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3Vy
Y2VSZXNwb25zZTo6U291cmNlOjpEaXNrQ2FjaGUgfHwgcmVzcG9uc2Uuc291cmNlKCkgPT0gUmVz
b3VyY2VSZXNwb25zZTo6U291cmNlOjpEaXNrQ2FjaGVBZnRlclZhbGlkYXRpb24gfHwgcmVzcG9u
c2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKTsK
ICAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCAmcmVzb3VyY2UgPT0gX3Jlc291cmNlKTsKQEAg
LTYzOSwxNCArNjM5LDE0IEBAIHZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50
Ojpsb2FkRmluaXNoZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiByZXNvCiAgICAgUmV0YWluUHRy
PE5TVVJMUmVzcG9uc2U+IHN0cm9uZ1Jlc3BvbnNlIHsgcmVzcG9uc2UubnNVUkxSZXNwb25zZSgp
IH07CiAgICAgUmV0YWluUHRyPFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFzaz4gc3Ryb25nU2Vs
ZiB7IHNlbGYgfTsKICAgICBpZiAoIXNlbGYuc2Vzc2lvbikKLSAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpObyk7
CiAgICAgW3NlbGYuc2Vzc2lvbiBhZGREZWxlZ2F0ZU9wZXJhdGlvbjpbc3Ryb25nU2VsZiwgc3Ry
b25nUmVzcG9uc2UsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildICgpIG11dGFibGUgewogICAgICAgICBzdHJvbmdTZWxmLT5fcmVzcG9uc2UgPSBzdHJvbmdS
ZXNwb25zZS5nZXQoKTsKIAogICAgICAgICBpZDxOU1VSTFNlc3Npb25EYXRhRGVsZWdhdGU+IGRh
dGFEZWxlZ2F0ZSA9IChpZDxOU1VSTFNlc3Npb25EYXRhRGVsZWdhdGU+KXN0cm9uZ1NlbGYuZ2V0
KCkuc2Vzc2lvbi5kZWxlZ2F0ZTsKICAgICAgICAgaWYgKCFbZGF0YURlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoVVJMU2Vzc2lvbjpkYXRhVGFzazpkaWRSZWNlaXZlUmVzcG9u
c2U6Y29tcGxldGlvbkhhbmRsZXI6KV0pIHsKICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
W3N0cm9uZ1NlbGYsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildICgpIG11dGFibGUgewotICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGlj
eUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpZZXMpOworICAgICAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Olllcyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNjU0LDEwICs2NTQsMTAgQEAg
dm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmxvYWRGaW5pc2hlZChQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc28KICAgICAgICAgW2RhdGFEZWxlZ2F0ZSBVUkxTZXNzaW9u
OihOU1VSTFNlc3Npb24gKilzdHJvbmdTZWxmLmdldCgpLnNlc3Npb24gZGF0YVRhc2s6KE5TVVJM
U2Vzc2lvbkRhdGFUYXNrICopc3Ryb25nU2VsZi5nZXQoKSBkaWRSZWNlaXZlUmVzcG9uc2U6c3Ry
b25nUmVzcG9uc2UuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtzdHJvbmdT
ZWxmLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoTlNV
UkxTZXNzaW9uUmVzcG9uc2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbikgbXV0YWJsZSB7CiAgICAg
ICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtzdHJvbmdTZWxmLCBkaXNwb3NpdGlvbiwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICAgICAgaWYgKGRpc3Bvc2l0aW9uID09IE5TVVJMU2Vzc2lvblJlc3BvbnNlQ2Fu
Y2VsKQotICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2Vy
OjpTaG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpObyk7CiAgICAgICAgICAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChkaXNwb3NpdGlvbiA9PSBOU1VSTFNlc3Np
b25SZXNwb25zZUFsbG93KTsKLSAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Olllcyk7CisgICAgICAgICAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Olllcyk7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pLmdldCgpXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
LmNwcAppbmRleCBmNzkzMzQ3ZTI4NDFhZTNjMmJjNmI0MTlhMmNjMDg0NWVhYmI5MTlkLi42NDE1
MGY5OTI3NzUwNTFiMjEyZGM2MDY3OGJmNTJlMDRhZjk0NTU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCkBAIC02
Niw3ICs2Niw3IEBAIGJvb2wgUmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGlkUGFzc0FjY2Vzc0NvbnRy
b2xDaGVjaygpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjazsK
IH0KIAotdm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2ss
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpyZXNwb25zZVJl
Y2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nl
c3NDb250cm9sQ2hlY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWVQb2xp
Y3lDaGVjayk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2NsaWVudCkKICAg
ICAgICAgcmV0dXJuOwpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6
OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvbwog
ICAgIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjayA9IGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hl
Y2s7CiAgICAgbV9jbGllbnQtPnJlc3BvbnNlUmVjZWl2ZWQoKnRoaXMsIHJlc3BvbnNlLCBbcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAgICAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlID09
IFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObykKKyAgICAgICAgaWYgKHNob3VsZENv
bnRpbnVlID09IFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5vKQogICAgICAgICAgICAgcHJv
dGVjdGVkVGhpcy0+c3RvcCgpOwogCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHNob3VsZENv
bnRpbnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZS5oCmluZGV4IDQ1YmExY2FhYzJhZGYyZWQ2ODAyMWRmMjdmZWIxMzc2ZTZk
MzM0MjEuLjQ4NmY2YmI2MWEzNzkwZGZmMmY0MGU1ODUzZjU4ODg1ZjdkNzg1ZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2Uu
aApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAgICAg
Ym9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lk
IHJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJvb2ws
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29u
dGludWUpPiYmKTsKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U2hv
dWxkQ29udGludWVQb2xpY3lDaGVjayk+JiYpOwogICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpPiYm
KTsKICAgICB2b2lkIGRhdGFTZW50KHVpbnQ2NF90LCB1aW50NjRfdCk7CiAgICAgdm9pZCBkYXRh
UmVjZWl2ZWQoY29uc3QgY2hhciosIGludDY0X3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAK
aW5kZXggY2U3OTNmNTk5OTkxOGQ0NTA3Y2ZmODZmMjgzNWVjOWM2YzI5M2VlYy4uMTM0YjhjYTZi
OGEyZjE4MDA5MTc3NDFmOWFjYTA2ODc2YWU4MGMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIu
Y3BwCkBAIC01OSwxMSArNTksMTEgQEAgdm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6
cmVtb3ZlTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmkKICAgICBtX3Jl
bW90ZU1lZGlhUmVzb3VyY2VzLnJlbW92ZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7
CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlc3BvbnNlUmVjZWl2ZWQo
UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2ssIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVzcG9uc2VSZWNlaXZlZChS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIGJvb2wgZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTaG91bGRDb250aW51ZVBvbGljeUNoZWNrKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBhdXRvKiByZXNvdXJjZSA9IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKTsK
ICAgICBpZiAoIXJlc291cmNlIHx8ICFyZXNvdXJjZS0+cmVhZHkoKSkgewotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRDb250aW51ZVBvbGljeUNoZWNrOjpObyk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgKaW5kZXggMDhmZGU0Mjky
MTNiMmE4N2M4MzJlODc4NzY1MjQzMWQ4ZTA0NGE2My4uNzc1MDE0NTg2MDBkZDA5ODY1N2M5NDVl
ZWIwZWU0OWJiNmUwMDNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgKQEAgLTYwLDcgKzYwLDcg
QEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCByZXNwb25zZVJlY2Vp
dmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xpY3lD
aGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U2hvdWxkQ29udGlu
dWVQb2xpY3lDaGVjayk+JiYpOwogICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmKT4mJik7CiAgICAgdm9pZCBkYXRhU2VudChSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllciwgdWludDY0X3QsIHVpbnQ2NF90KTsKICAgICB2b2lkIGRhdGFSZWNl
aXZlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYzA0
YTM4NmJmMGEyYmYzMDAzOTA4NGIxN2YwYjU1NmNkMWMyOGEzYy4uMTcwNDdjMzQ1Y2VhMGM5Y2Q5
MjM5ZTU1NTYwZmMyMWY3NDJhMDE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAog
bWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7Ci0g
ICAgUmVzcG9uc2VSZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
IGlkLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nl
c3NDb250cm9sQ2hlY2spIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51
ZSBzaG91bGRDb250aW51ZSkgQXN5bmMKKyAgICBSZXNwb25zZVJlY2VpdmVkKFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ug
cmVzcG9uc2UsIGJvb2wgZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaykgLT4gKGVudW06Ym9vbCBX
ZWJDb3JlOjpTaG91bGRDb250aW51ZVBvbGljeUNoZWNrIHNob3VsZENvbnRpbnVlKSBBc3luYwog
ICAgIFJlZGlyZWN0UmVjZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciBpZCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UgcmVzcG9uc2UpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmV0dXJuUmVx
dWVzdCkgQXN5bmMKICAgICBEYXRhU2VudChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyIGlkLCB1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2Vu
dCkKICAgICBEYXRhUmVjZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciBpZCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQppbmRleCA3YmEzYTY2ZGM5MzYxYTRlOThkODdhN2I2N2MyYmFmNjcyNDlk
NzllLi5kODNhZTMyOTAyYTk0NWQ1YzgyNWQyNWE1NDIxZmZjZDk0ZTJhMDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTYwNyw2ICs2MDcsNyBAQCBkZWYg
aGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlBheW1lbnRNZXRob2RV
cGRhdGUnOiBbJzxXZWJDb3JlL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpQbHVnaW5JbmZvJzogWyc8V2ViQ29yZS9QbHVnaW5EYXRhLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpQb2xpY3lBY3Rpb24nOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVy
VHlwZXMuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OlNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2sn
OiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXInOiBbJzxXZWJDb3JlL1Byb2Nlc3NJ
ZGVudGlmaWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpSZWNlbnRTZWFyY2gnOiBbJzxXZWJD
b3JlL1NlYXJjaFBvcHVwTWVudS5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCmlu
ZGV4IDkwOTZlMjUwMGE4YTMzZjdlMzU2ZDJiM2NlZjk0NDk4N2RkMDc3ZDkuLjZhNmJiY2Q2ZDVh
NzZmYjk0MDNlN2RiN2Y3NzAxZjVmZWY4MjY2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Ojp+UmVtb3Rl
TWVkaWFSZXNvdXJjZVByb3h5KCkKIHsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJv
eHk6OnJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OnJlc3BvbnNlUmVjZWl2
ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U2hv
dWxkQ29udGludWVQb2xpY3lDaGVjayk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9j
b25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyOjpSZXNwb25zZVJlY2VpdmVkKG1faWQsIHJlc3BvbnNlLCBtX3BsYXRmb3JtTWVk
aWFSZXNvdXJjZS5kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrKCkpLCBbY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBzaG91bGRDb250aW51ZSkgbXV0
YWJsZSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHNob3VsZENvbnRpbnVlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eS5oCmluZGV4IGQ2Y2RmOTZhYjIwMDNkNzgxMGZlZGQxOWFkMDU3MGY2
MDEzMDQ3OTIuLjk1M2JiMzAzOTA0ZGVjYzc3MTAzNWNiZDY5NjgzOWY1YTcwNWRmOTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlUHJveHkuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgLy8gUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50Ci0gICAgdm9pZCByZXNwb25z
ZVJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGlj
eUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJikgZmluYWw7CisgICAgdm9pZCByZXNwb25zZVJl
Y2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlNob3VsZENv
bnRpbnVlUG9saWN5Q2hlY2spPiYmKSBmaW5hbDsKICAgICB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQo
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKT4mJikgZmluYWw7CiAgICAgYm9vbCBzaG91
bGRDYWNoZVJlc3BvbnNlKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBmaW5hbDsKICAgICB2b2lkIGRhdGFTZW50KFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQg
bG9uZyBsb25nKSBmaW5hbDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>