<?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>196755</bug_id>
          
          <creation_ts>2019-04-09 18:06:24 -0700</creation_ts>
          <short_desc>Add SPI WKNavigationResponse._downloadAttribute</short_desc>
          <delta_ts>2019-04-10 15:57:15 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1525830</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-09 18:06:24 -0700</bug_when>
    <thetext>Add SPI WKNavigationResponse._downloadAttribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525835</commentid>
    <comment_count>1</comment_count>
      <attachid>367090</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-09 18:12:55 -0700</bug_when>
    <thetext>Created attachment 367090
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525837</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-09 18:17:30 -0700</bug_when>
    <thetext>Attachment 367090 did not pass style-queue:


ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:96:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526046</commentid>
    <comment_count>3</comment_count>
      <attachid>367090</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-04-10 11:56:44 -0700</bug_when>
    <thetext>Comment on attachment 367090
Patch

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

&gt; Source/WebKit/ChangeLog:10
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * UIProcess/API/APINavigationResponse.h:
&gt; +        * UIProcess/API/Cocoa/WKNavigationResponse.mm:

Please fill out this change log. At least explain what the intent of this change is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526074</commentid>
    <comment_count>4</comment_count>
      <attachid>367148</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-10 13:02:07 -0700</bug_when>
    <thetext>Created attachment 367148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526075</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-10 13:05:03 -0700</bug_when>
    <thetext>Attachment 367148 did not pass style-queue:


ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:96:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526153</commentid>
    <comment_count>6</comment_count>
      <attachid>367148</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-04-10 15:17:29 -0700</bug_when>
    <thetext>Comment on attachment 367148
Patch

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

&gt; Source/WebKit/UIProcess/API/APINavigationResponse.h:42
&gt; +    static Ref&lt;NavigationResponse&gt; create(API::FrameInfo&amp; frame, const WebCore::ResourceRequest&amp; request, const WebCore::ResourceResponse&amp; response, bool canShowMIMEType, const WTF::String&amp; downloadAttribute)
&gt;      {
&gt; +        return adoptRef(*new NavigationResponse(frame, request, response, canShowMIMEType, downloadAttribute));
&gt;      }

Can take the opportunity to make the static create() just be a variadic template :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526156</commentid>
    <comment_count>7</comment_count>
      <attachid>367170</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-10 15:24:50 -0700</bug_when>
    <thetext>Created attachment 367170
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526159</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-10 15:27:46 -0700</bug_when>
    <thetext>Attachment 367170 did not pass style-queue:


ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:96:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526186</commentid>
    <comment_count>9</comment_count>
      <attachid>367170</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-10 15:56:41 -0700</bug_when>
    <thetext>Comment on attachment 367170
Patch

Clearing flags on attachment: 367170

Committed r244161: &lt;https://trac.webkit.org/changeset/244161&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526187</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-10 15:56:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526188</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-10 15:57:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/49794165&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367090</attachid>
            <date>2019-04-09 18:12:55 -0700</date>
            <delta_ts>2019-04-10 13:02:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196755-20190409181254.patch</filename>
            <type>text/plain</type>
            <size>40820</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDAzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE5LTA0LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFNQSSBX
S05hdmlnYXRpb25SZXNwb25zZS5fZG93bmxvYWRBdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Njc1NQorICAgICAgICA8cmRhcjovLzQ5
NTg3MzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENvdmVyZWQgYnkgYW4gQVBJIHRlc3QgdGhhdCB2YWxpZGF0ZXMgdGhlIGF0dHJpYnV0ZSBpcyBj
b3JyZWN0bHkgc2VudCB0aHJvdWdoIHRoZSBGcmFtZUxvYWRlciB0byB0aGUgQVBJLgorCisgICAg
ICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dExvYWRlcjo6c2V0RG93bmxvYWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXI6OmRvd25sb2FkQXR0cmlidXRlIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50UG9saWN5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkVVJMKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyOjpsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFdpdGhOYXZpZ2F0
aW9uQWN0aW9uKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAx
OS0wNC0wOCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFsg
TWFjIFdLMiBpT1MgRGVidWcgXSBSRUdSRVNTSU9OKHIyMzM2NjcpIExheW91dCBUZXN0IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9Eb2N1
bWVudFRpbWVsaW5lL2NvbnN0cnVjdG9yLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAkocmV2aXNpb24gMjQ0MDMzKQorKysg
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM1Niw2ICszNTYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBbGxvd3NXZWJBcmNoaXZlRm9y
TWFpbkZyYW1lKGJvb2wgYWxsb3dzV2ViQXJjaGl2ZUZvck1haW5GcmFtZSkgeyBtX2FsbG93c1dl
YkFyY2hpdmVGb3JNYWluRnJhbWUgPSBhbGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lOyB9CiAg
ICAgYm9vbCBhbGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9h
bGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lOyB9CiAKKyAgICB2b2lkIHNldERvd25sb2FkQXR0
cmlidXRlKGNvbnN0IFN0cmluZyYgYXR0cmlidXRlKSB7IG1fZG93bmxvYWRBdHRyaWJ1dGUgPSBh
dHRyaWJ1dGU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9kb3dubG9hZEF0dHJpYnV0ZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09S
RV9FWFBPUlQgRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vi
c3RpdHV0ZURhdGEmKTsKIApAQCAtNTgxLDYgKzU4NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAog
ICAgIGJvb2wgbV9hbGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lIHsgZmFsc2UgfTsKKyAgICBT
dHJpbmcgbV9kb3dubG9hZEF0dHJpYnV0ZTsKIH07CiAKIGlubGluZSB2b2lkIERvY3VtZW50TG9h
ZGVyOjpyZWNvcmRNZW1vcnlDYWNoZUxvYWRGb3JGdXR1cmVDbGllbnROb3RpZmljYXRpb24oY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiAyNDQwMzMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC05Myw3ICs5Myw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJD
bGkKICAgICBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
KSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5h
bCB7IH0KIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsIHsgfQorICAgIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBG
cmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYsIFBvbGljeUNoZWNrSWRl
bnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RS
ZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBQb2xpY3lDaGVja0lkZW50
aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xp
Y3lDaGVjaygpIGZpbmFsIHsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCShyZXZpc2lvbiAyNDQwMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzIsNyArMzcyLDcgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbgogICAgIH0KIAogICAgIC8vIEZJWE1FOiBWYWxpZGF0
ZSB0aGUgcG9saWN5IGNoZWNrIGlkZW50aWZpZXIuCi0gICAgY2xpZW50KCkuZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShyZXNwb25zZSwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+cmVx
dWVzdCgpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGZ1bmN0aW9uKSk7CisgICAgY2xpZW50KCkuZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShyZXNwb25zZSwgYWN0aXZlRG9jdW1lbnRMb2Fk
ZXIoKS0+cmVxdWVzdCgpLCBpZGVudGlmaWVyLCBhY3RpdmVEb2N1bWVudExvYWRlcigpLT5kb3du
bG9hZEF0dHJpYnV0ZSgpLCBXVEZNb3ZlKGZ1bmN0aW9uKSk7CiB9CiAKIHZvaWQgRnJhbWVMb2Fk
ZXI6OmNoYW5nZUxvY2F0aW9uKEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0KQpAQCAtMTQxNiw3
ICsxNDE2LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTChGcmFtZUxvYWRSZXF1ZQogICAg
IGlmIChpc1N5c3RlbVByZXZpZXcpCiAgICAgICAgIHJlcXVlc3Quc2V0U3lzdGVtUHJldmlld1Jl
Y3QoZnJhbWVMb2FkUmVxdWVzdC5zeXN0ZW1QcmV2aWV3UmVjdCgpKTsKICNlbmRpZgotICAgIGxv
YWRXaXRoTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBXVEZNb3ZlKGFjdGlvbiksIGxvY2tIaXN0
b3J5LCBuZXdMb2FkVHlwZSwgV1RGTW92ZShmb3JtU3RhdGUpLCBhbGxvd05hdmlnYXRpb25Ub0lu
dmFsaWRVUkwsIFt0aGlzLCBpc1JlZGlyZWN0LCBzYW1lVVJMLCBuZXdMb2FkVHlwZSwgcHJvdGVj
dGVkRnJhbWUgPSBtYWtlUmVmKG1fZnJhbWUpLCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRp
b25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKV0gKCkgbXV0YWJsZSB7CisgICAgbG9hZFdpdGhOYXZp
Z2F0aW9uQWN0aW9uKHJlcXVlc3QsIFdURk1vdmUoYWN0aW9uKSwgbG9ja0hpc3RvcnksIG5ld0xv
YWRUeXBlLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwg
ZnJhbWVMb2FkUmVxdWVzdC5kb3dubG9hZEF0dHJpYnV0ZSgpLCBbdGhpcywgaXNSZWRpcmVjdCwg
c2FtZVVSTCwgbmV3TG9hZFR5cGUsIHByb3RlY3RlZEZyYW1lID0gbWFrZVJlZihtX2ZyYW1lKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCldICgp
IG11dGFibGUgewogICAgICAgICBpZiAoaXNSZWRpcmVjdCkgewogICAgICAgICAgICAgbV9xdWlj
a1JlZGlyZWN0Q29taW5nID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAobV9wcm92aXNpb25hbERv
Y3VtZW50TG9hZGVyKQpAQCAtMTQ5MiwxMSArMTQ5MiwxMiBAQCB2b2lkIEZyYW1lTG9hZGVyOjps
b2FkKEZyYW1lTG9hZFJlcXVlc3QmCiAgICAgbG9hZChsb2FkZXIuZ2V0KCkpOwogfQogCi12b2lk
IEZyYW1lTG9hZGVyOjpsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBOYXZpZ2F0aW9uQWN0aW9uJiYgYWN0aW9uLCBMb2NrSGlzdG9yeSBsb2Nr
SGlzdG9yeSwgRnJhbWVMb2FkVHlwZSB0eXBlLCBSZWZQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0
ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBG
cmFtZUxvYWRlcjo6bG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgTmF2aWdhdGlvbkFjdGlvbiYmIGFjdGlvbiwgTG9ja0hpc3RvcnkgbG9ja0hp
c3RvcnksIEZyYW1lTG9hZFR5cGUgdHlwZSwgUmVmUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUs
IEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkws
IGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJs
b2FkV2l0aE5hdmlnYXRpb25BY3Rpb246IGZyYW1lIGxvYWQgc3RhcnRlZCAoZnJhbWUgPSAlcCwg
bWFpbiA9ICVkKSIsICZtX2ZyYW1lLCBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpOwogCiAgICAgUmVm
PERvY3VtZW50TG9hZGVyPiBsb2FkZXIgPSBtX2NsaWVudC5jcmVhdGVEb2N1bWVudExvYWRlcihy
ZXF1ZXN0LCBkZWZhdWx0U3Vic3RpdHV0ZURhdGFGb3JVUkwocmVxdWVzdC51cmwoKSkpOworICAg
IGxvYWRlci0+c2V0RG93bmxvYWRBdHRyaWJ1dGUoZG93bmxvYWRBdHRyaWJ1dGUpOwogICAgIGFw
cGx5U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvTmV3RG9jdW1lbnRMb2FkZXIobV9mcmFt
ZSwgbG9hZGVyLCBhY3Rpb24uaW5pdGlhdGVkQnlNYWluRnJhbWUoKSwgYWN0aW9uLnNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3koKSk7CiAKICAgICBpZiAobG9ja0hpc3RvcnkgPT0gTG9ja0hp
c3Rvcnk6OlllcyAmJiBtX2RvY3VtZW50TG9hZGVyKQpAQCAtMzAxNiw3ICszMDE3LDcgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KEZyYW1lTAogICAgIGlmICghZnJhbWVOYW1l
LmlzRW1wdHkoKSkgewogICAgICAgICAvLyBUaGUgc2VhcmNoIGZvciBhIHRhcmdldCBmcmFtZSBp
cyBkb25lIGVhcmxpZXIgaW4gdGhlIGNhc2Ugb2YgZm9ybSBzdWJtaXNzaW9uLgogICAgICAgICBp
ZiAoYXV0byogdGFyZ2V0RnJhbWUgPSBmb3JtU3RhdGUgPyBudWxscHRyIDogZmluZEZyYW1lRm9y
TmF2aWdhdGlvbihmcmFtZU5hbWUpKSB7Ci0gICAgICAgICAgICB0YXJnZXRGcmFtZS0+bG9hZGVy
KCkubG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QsIFdURk1v
dmUoYWN0aW9uKSwgbG9ja0hpc3RvcnksIGxvYWRUeXBlLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGFs
bG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgICAgICAgICAgdGFyZ2V0RnJhbWUtPmxvYWRlcigpLmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlv
bih3b3JraW5nUmVzb3VyY2VSZXF1ZXN0LCBXVEZNb3ZlKGFjdGlvbiksIGxvY2tIaXN0b3J5LCBs
b2FkVHlwZSwgV1RGTW92ZShmb3JtU3RhdGUpLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkws
IHsgfSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKQEAgLTMwMjksNyArMzAzMCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRQ
b3N0UmVxdWVzdChGcmFtZUwKIAogICAgIC8vIG11c3QgZ3JhYiB0aGlzIG5vdywgc2luY2UgdGhp
cyBsb2FkIG1heSBzdG9wIHRoZSBwcmV2aW91cyBsb2FkIGFuZCBjbGVhciB0aGlzIGZsYWcKICAg
ICBib29sIGlzUmVkaXJlY3QgPSBtX3F1aWNrUmVkaXJlY3RDb21pbmc7Ci0gICAgbG9hZFdpdGhO
YXZpZ2F0aW9uQWN0aW9uKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QsIFdURk1vdmUoYWN0aW9uKSwg
bG9ja0hpc3RvcnksIGxvYWRUeXBlLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGFsbG93TmF2aWdhdGlv
blRvSW52YWxpZFVSTCwgW3RoaXMsIGlzUmVkaXJlY3QsIHByb3RlY3RlZEZyYW1lID0gbWFrZVJl
ZihtX2ZyYW1lKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKCkgbXV0YWJsZSB7CisgICAgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHdvcmtpbmdSZXNv
dXJjZVJlcXVlc3QsIFdURk1vdmUoYWN0aW9uKSwgbG9ja0hpc3RvcnksIGxvYWRUeXBlLCBXVEZN
b3ZlKGZvcm1TdGF0ZSksIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgeyB9LCBbdGhpcywg
aXNSZWRpcmVjdCwgcHJvdGVjdGVkRnJhbWUgPSBtYWtlUmVmKG1fZnJhbWUpLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKGlzUmVkaXJlY3QpIHsKICAgICAgICAgICAgIG1fcXVpY2tSZWRpcmVjdENvbWluZyA9
IGZhbHNlOwogICAgICAgICAgICAgaWYgKG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcikKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCShyZXZpc2lvbiAyNDQwMzMpCisrKyBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzgx
LDcgKzM4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2FkV2l0aERvY3VtZW50TG9hZGVyKERv
Y3VtZW50TG9hZGVyKiwgRnJhbWVMb2FkVHlwZSwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwgQWxsb3dO
YXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7IC8vIENhbGxzIGNvbnRpbnVlTG9hZEFm
dGVyTmF2aWdhdGlvblBvbGljeQogICAgIHZvaWQgbG9hZChEb2N1bWVudExvYWRlciYpOyAvLyBD
YWxscyBsb2FkV2l0aERvY3VtZW50TG9hZGVyCiAKLSAgICB2b2lkIGxvYWRXaXRoTmF2aWdhdGlv
bkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9uQWN0aW9uJiYsIExvY2tI
aXN0b3J5LCBGcmFtZUxvYWRUeXBlLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBBbGxvd05hdmlnYXRp
b25Ub0ludmFsaWRVUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7IC8v
IENhbGxzIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIKKyAgICB2b2lkIGxvYWRXaXRoTmF2aWdhdGlv
bkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9uQWN0aW9uJiYsIExvY2tI
aXN0b3J5LCBGcmFtZUxvYWRUeXBlLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBBbGxvd05hdmlnYXRp
b25Ub0ludmFsaWRVUkwsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUgPSB7IH0sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7IC8vIENhbGxzIGxvYWRXaXRoRG9j
dW1lbnRMb2FkZXIKIAogICAgIHZvaWQgbG9hZFBvc3RSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3Qm
JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgRnJhbWVMb2FkVHlwZSwgRXZlbnQqLCBSZWZQdHI8
Rm9ybVN0YXRlPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbG9h
ZFVSTChGcmFtZUxvYWRSZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIEZyYW1lTG9h
ZFR5cGUsIEV2ZW50KiwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwgT3B0aW9uYWw8QWRDbGlja0F0dHJp
YnV0aW9uPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDI0NDAzMykKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xOTEsNyArMTkxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRnJhbWUqIGRpc3BhdGNoQ3Jl
YXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaFNob3coKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBGcmFtZVBvbGljeUZ1bmN0
aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdX
aW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBQb2xpY3lDaGVja0lkZW50
aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlv
biYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGly
ZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSosIFBvbGljeURlY2lzaW9uTW9kZSwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Y2FuY2VsUG9saWN5Q2hlY2soKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjQ0MDQ4KQor
KysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNyBA
QAorMjAxOS0wNC0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIEFkZCBTUEkgV0tOYXZpZ2F0aW9uUmVzcG9uc2UuX2Rvd25sb2FkQXR0cmli
dXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY3
NTUKKyAgICAgICAgPHJkYXI6Ly80OTU4NzM2NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvblJlc3Bv
bnNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25z
ZS5tbToKKyAgICAgICAgKC1bV0tOYXZpZ2F0aW9uUmVzcG9uc2UgX2Rvd25sb2FkQXR0cmlidXRl
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZVBy
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMTktMDQtMDggIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXgg
c2VsZWN0b3IgbmFtZSBhZnRlciByMjQzODM0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyNDQwMzMpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4Myw5ICsyODMsOSBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGCiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
IGlkZW50aWZpZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYg
ZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKIHsKLSAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgaWRlbnRpZmll
ciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBsaXN0
ZW5lcklELCB1c2VyRGF0YSk7CisgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlk
ZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlw
ZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0KIAogdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1
aW50NjRfdCBmcmFtZUlEKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92
aXNpb25hbFBhZ2VQcm94eS5oCShyZXZpc2lvbiAyNDQwMzMpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5
MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAg
ICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0
IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsCi0gICAgICAgIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9h
ZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2
b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7CiAgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVk
aXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGlu
YXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVNl
cnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3Qg
VXNlckRhdGEmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAkocmV2aXNpb24gMjQ0MDMzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc3NSwxMyArNDc3NSwxMyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
KyAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBl
LCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VT
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwg
aWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVU
eXBlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VT
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwg
aWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVU
eXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCiB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlm
aWVyLAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKKyAg
ICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0
b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDgwOSw3ICs0ODA5LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbgogICAgIGlmIChtX3BvbGljeUNsaWVudCkKICAgICAg
ICAgbV9wb2xpY3lDbGllbnQtPmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKCp0aGlzLCAqZnJhbWUs
IHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCBw
cm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQo
KSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGF1dG8gbmF2aWdhdGlvblJlc3BvbnNlID0gQVBJOjpO
YXZpZ2F0aW9uUmVzcG9uc2U6OmNyZWF0ZShBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKCpmcmFtZSwg
ZnJhbWVTZWN1cml0eU9yaWdpbi5zZWN1cml0eU9yaWdpbigpKS5nZXQoKSwgcmVxdWVzdCwgcmVz
cG9uc2UsIGNhblNob3dNSU1FVHlwZSk7CisgICAgICAgIGF1dG8gbmF2aWdhdGlvblJlc3BvbnNl
ID0gQVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U6OmNyZWF0ZShBUEk6OkZyYW1lSW5mbzo6Y3JlYXRl
KCpmcmFtZSwgZnJhbWVTZWN1cml0eU9yaWdpbi5zZWN1cml0eU9yaWdpbigpKS5nZXQoKSwgcmVx
dWVzdCwgcmVzcG9uc2UsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUpOwogICAg
ICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25z
ZSgqdGhpcywgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKGxpc3RlbmVyKSwg
cHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0
KCkpOwogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CShyZXZpc2lvbiAyNDQwMzMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ3OSw3ICsxNDc5LDcgQEAgcHVibGljOgogICAgICAg
ICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5m
b0RhdGEmJiwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwK
ICAgICAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50
NjRfdCBsaXN0ZW5lcklEKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLAotICAgICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBib29sIGNhblNob3dNSU1FVHlwZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmKTsKKyAgICAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7
CiAgICAgdm9pZCBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0
IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYg
YmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxv
cHQpOwogICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVz
ZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdl
YnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQpOwpAQCAtMTYwNyw3ICsxNjA3LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAg
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdh
dGlvbklELAotICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgICAgIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNh
blNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHVuYWJsZVRvSW1wbGVtZW50
UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBj
b25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgYmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBV
UkwmLCBib29sLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkmKTsKIApJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNp
b24gMjQ0MDMzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNyArMTAyLDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xpY3kgbWVzc2FnZXMKLSAgICBEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJL
aXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2
NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1
cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBX
ZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3Qg
V2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgdWludDY0X3Qg
b3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9u
c2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiAgICAg
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9v
bCBpc01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRp
b25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUlu
Zm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdl
SUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5
Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGlj
eUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93
bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9s
aWNpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNr
SWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgZnJh
bWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQpJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25SZXNwb25zZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9u
UmVzcG9uc2UuaAkocmV2aXNpb24gMjQ0MDMzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSU5hdmlnYXRpb25SZXNwb25zZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw3
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBB
UElOYXZpZ2F0aW9uUmVzcG9uc2VfaAotI2RlZmluZSBBUElOYXZpZ2F0aW9uUmVzcG9uc2VfaAor
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElGcmFtZUluZm8uaCIKICNpbmNsdWRlICJBUElP
YmplY3QuaCIKQEAgLTM3LDE3ICszNiw5IEBAIGNsYXNzIEZyYW1lSW5mbzsKIAogY2xhc3MgTmF2
aWdhdGlvblJlc3BvbnNlIGZpbmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpO
YXZpZ2F0aW9uUmVzcG9uc2U+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5hdmlnYXRpb25S
ZXNwb25zZT4gY3JlYXRlKEFQSTo6RnJhbWVJbmZvJiBmcmFtZSwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwgYm9vbCBjYW5TaG93TUlNRVR5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBOYXZpZ2F0aW9uUmVzcG9uc2UoZnJhbWUsIHJlcXVlc3QsIHJlc3BvbnNlLCBj
YW5TaG93TUlNRVR5cGUpKTsKLSAgICB9Ci0KLSAgICBOYXZpZ2F0aW9uUmVzcG9uc2UoQVBJOjpG
cmFtZUluZm8mIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGNhblNob3dN
SU1FVHlwZSkKLSAgICAgICAgOiBtX2ZyYW1lKGZyYW1lKQotICAgICAgICAsIG1fcmVxdWVzdChy
ZXF1ZXN0KQotICAgICAgICAsIG1fcmVzcG9uc2UocmVzcG9uc2UpCi0gICAgICAgICwgbV9jYW5T
aG93TUlNRVR5cGUoY2FuU2hvd01JTUVUeXBlKQorICAgIHN0YXRpYyBSZWY8TmF2aWdhdGlvblJl
c3BvbnNlPiBjcmVhdGUoQVBJOjpGcmFtZUluZm8mIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRvd25sb2Fk
QXR0cmlidXRlKQogICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmF2aWdhdGlv
blJlc3BvbnNlKGZyYW1lLCByZXF1ZXN0LCByZXNwb25zZSwgY2FuU2hvd01JTUVUeXBlLCBkb3du
bG9hZEF0dHJpYnV0ZSkpOwogICAgIH0KIAogICAgIEZyYW1lSW5mbyYgZnJhbWUoKSB7IHJldHVy
biBtX2ZyYW1lLmdldCgpOyB9CkBAIC01NiwxNSArNDcsMjIgQEAgcHVibGljOgogICAgIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKCkgY29uc3QgeyByZXR1cm4gbV9y
ZXNwb25zZTsgfQogCiAgICAgYm9vbCBjYW5TaG93TUlNRVR5cGUoKSBjb25zdCB7IHJldHVybiBt
X2NhblNob3dNSU1FVHlwZTsgfQorICAgIGNvbnN0IFdURjo6U3RyaW5nJiBkb3dubG9hZEF0dHJp
YnV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZG93bmxvYWRBdHRyaWJ1dGU7IH0KIAogcHJpdmF0ZToK
KyAgICBOYXZpZ2F0aW9uUmVzcG9uc2UoQVBJOjpGcmFtZUluZm8mIGZyYW1lLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgV1RGOjpTdHJpbmcm
IGRvd25sb2FkQXR0cmlidXRlKQorICAgICAgICA6IG1fZnJhbWUoZnJhbWUpCisgICAgICAgICwg
bV9yZXF1ZXN0KHJlcXVlc3QpCisgICAgICAgICwgbV9yZXNwb25zZShyZXNwb25zZSkKKyAgICAg
ICAgLCBtX2NhblNob3dNSU1FVHlwZShjYW5TaG93TUlNRVR5cGUpCisgICAgICAgICwgbV9kb3du
bG9hZEF0dHJpYnV0ZShkb3dubG9hZEF0dHJpYnV0ZSkgeyB9CisKICAgICBSZWY8RnJhbWVJbmZv
PiBtX2ZyYW1lOwogCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAg
ICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAgICAgYm9vbCBtX2NhblNo
b3dNSU1FVHlwZTsKKyAgICBXVEY6OlN0cmluZyBtX2Rvd25sb2FkQXR0cmlidXRlOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgQVBJCi0KLSNlbmRpZiAvLyBBUElOYXZpZ2F0aW9uUmVzcG9uc2VfaApJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3Bv
bnNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25SZXNwb25zZS5tbQkocmV2aXNpb24gMjQ0MDMzKQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC03OCw0ICs3OCw5IEBAIC0gKE5TVVJMUmVxdWVzdCAqKV9yZXF1ZXN0CiAgICAgcmV0
dXJuIF9uYXZpZ2F0aW9uUmVzcG9uc2UtPnJlcXVlc3QoKS5uc1VSTFJlcXVlc3QoV2ViQ29yZTo6
SFRUUEJvZHlVcGRhdGVQb2xpY3k6OkRvTm90VXBkYXRlSFRUUEJvZHkpOwogfQogCistIChOU1N0
cmluZyAqKV9kb3dubG9hZEF0dHJpYnV0ZQoreworICAgIHJldHVybiBfbmF2aWdhdGlvblJlc3Bv
bnNlLT5kb3dubG9hZEF0dHJpYnV0ZSgpOworfQorCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2VQcml2YXRlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJl
c3BvbnNlUHJpdmF0ZS5oCShyZXZpc2lvbiAyNDQwMzMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2VQcml2YXRlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDUgKzI5LDYgQEAKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBX
S0ZyYW1lSW5mbyAqX2ZyYW1lOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VS
TFJlcXVlc3QgKl9yZXF1ZXN0OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0
cmluZyAqX2Rvd25sb2FkQXR0cmlidXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcAkocmV2aXNpb24gMjQ0MDMzKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzYzLDcgKzc2Myw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hv
dygKICAgICB3ZWJQYWdlLT5zaG93KCk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlv
bikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBm
dW5jdGlvbikKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZSA/IG1fZnJhbWUtPnBh
Z2UoKSA6IG51bGxwdHI7CiAgICAgaWYgKCF3ZWJQYWdlKSB7CkBAIC03OTQsNyArNzk0LDcgQEAg
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZAogICAgIFJlZjxXZWJGcmFt
ZT4gcHJvdGVjdG9yKCptX2ZyYW1lKTsKICAgICB1aW50NjRfdCBsaXN0ZW5lcklEID0gbV9mcmFt
ZS0+c2V0VXBQb2xpY3lMaXN0ZW5lcihpZGVudGlmaWVyLCBXVEZNb3ZlKGZ1bmN0aW9uKSwgV2Vi
RnJhbWU6OkZvck5hdmlnYXRpb25BY3Rpb246Ok5vKTsKICAgICBpZiAoIXdlYlBhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UobV9mcmFtZS0+
ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShjb3JlRnJhbWUpLCBpZGVu
dGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LAotICAgICAgICBjYW5TaG93
UmVzcG9uc2UsIGxpc3RlbmVySUQsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRy
YW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSkpKQorICAgICAg
ICBjYW5TaG93UmVzcG9uc2UsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCBVc2VyRGF0
YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJE
YXRhLmdldCgpKS5nZXQoKSkpKSkKICAgICAgICAgbV9mcmFtZS0+ZGlkUmVjZWl2ZVBvbGljeURl
Y2lzaW9uKGxpc3RlbmVySUQsIGlkZW50aWZpZXIsIFBvbGljeUFjdGlvbjo6SWdub3JlLCAwLCB7
IH0sIHsgfSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCShyZXZpc2lv
biAyNDQwMzMpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDcgKzEyMyw3IEBAIHBy
aXZhdGU6CiAgICAgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBm
aW5hbDsKICAgICAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmln
YXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpG
b3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6
Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpG
b3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAg
ICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNDQwMzMpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNC0wOSAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBT
UEkgV0tOYXZpZ2F0aW9uUmVzcG9uc2UuX2Rvd25sb2FkQXR0cmlidXRlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY3NTUKKyAgICAgICAgPHJkYXI6
Ly80OTU4NzM2NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisKIDIwMTkt
MDQtMDUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBSRUdSRVNTSU9OKEFwcGxlV2ViS2l0LzYwNS4xLjE1KTogV2ViRG93bmxvYWREZWxlZ2F0
ZSBkZWxlZ2F0ZSBtZXRob2RzIGNhbGxlZCBvbiBub24tbWFpbiB0aHJlYWQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gMjQ0MDMzKQorKysgU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMTI2LDcgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RnJhbWUqIGRp
c3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7
CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCAgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlv
biYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgZnJh
bWVOYW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9s
aWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
IHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURl
Y2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBm
aW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCShyZXZpc2lvbiAyNDQwMzMp
CisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtODY2LDcgKzg2Niw3IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygKICAgICBbW3dlYlZpZXcgX1VJRGVsZWdhdGVG
b3J3YXJkZXJdIHdlYlZpZXdTaG93OndlYlZpZXddOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYg
ZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7
CiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7CiAK
SW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDEwMikKKysrIFNv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE1IEBACisyMDE5LTA0LTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgQWRkIFNQSSBXS05hdmlnYXRpb25SZXNwb25zZS5fZG93bmxvYWRB
dHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5Njc1NQorICAgICAgICA8cmRhcjovLzQ5NTg3MzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisKIDIwMTktMDQtMDUgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1
ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDM4MzMu
CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lvbiAyNDQwMzMpCisr
KyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyOSw3ICs1MjksNyBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coCiAgICAgICAgIHVpLT53ZWJWaWV3U2hvdyh3ZWJW
aWV3KTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgRnJh
bWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBt
X3dlYkZyYW1lLT53ZWJWaWV3KCk7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV93ZWJG
cmFtZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDI0NDAzMykK
KysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWQoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNo
RGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9u
ZT4pIG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1l
UG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
V2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJl
c3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5j
dGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7
CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNDQxMDEpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyMiBAQAorMjAxOS0wNC0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBTUEkgV0tOYXZpZ2F0aW9uUmVzcG9uc2UuX2Rvd25s
b2FkQXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTY3NTUKKyAgICAgICAgPHJkYXI6Ly80OTU4NzM2NT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UubW06CisgICAgICAgICgtW05hdmlnYXRpb25S
ZXNwb25zZVRlc3REZWxlZ2F0ZSBuYXZpZ2F0aW9uUmVzcG9uc2VdKToKKyAgICAgICAgKC1bTmF2
aWdhdGlvblJlc3BvbnNlVGVzdERlbGVnYXRlIHdhaXRGb3JOYXZpZ2F0aW9uUmVzcG9uc2VDYWxs
YmFja10pOgorICAgICAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VUZXN0RGVsZWdhdGUgd2FpdEZv
ck5hdmlnYXRpb25GaW5pc2hlZENhbGxiYWNrXSk6CisgICAgICAgICgtW05hdmlnYXRpb25SZXNw
b25zZVRlc3REZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246
ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VUZXN0RGVs
ZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hOYXZpZ2F0aW9uOl0pOgorICAgICAgICAoLVtOYXZpZ2F0
aW9uUmVzcG9uc2VUZXN0RGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
UmVzcG9uc2U6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAocmVhZFJlcXVlc3QpOgorICAg
ICAgICAod3JpdGVSZXNwb25zZSk6CisgICAgICAgIChURVNUKToKKwogMjAxOS0wNC0wOSAgS2Vp
dGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWls
ZCBtYWludGVuYW5jZSAtLSB1cGRhdGUgLnhjZmlsZWxpc3RzLgpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLTmF2aWdhdGlv
blJlc3BvbnNlLm1tCShyZXZpc2lvbiAyNDQwMzMpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0yNSw3ICsyNSwxMCBAQAogCiAjaW1wb3J0ICJjb25maWcuaCIKIAorI2ltcG9ydCAiVENQU2Vy
dmVyLmgiCisjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0ICJVdGlsaXRpZXMuaCIKKyNpbXBvcnQg
PFdlYktpdC9XS05hdmlnYXRpb25SZXNwb25zZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9X
S1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgogI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgpAQCAtMTQyLDMgKzE0NSwxMDMgQEAgVEVTVChXZWJLaXQsIFdL
TmF2aWdhdGlvblJlc3BvbnNlUERGVHlwZQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTF1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmaXNEb25lKTsKIH0KKworQGludGVyZmFjZSBOYXZpZ2F0aW9uUmVzcG9uc2VUZXN0
RGVsZWdhdGUgOiBOU09iamVjdCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+CisKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgV0tOYXZpZ2F0aW9uUmVzcG9uc2UgKm5hdmlnYXRpb25SZXNw
b25zZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSBu
YXZpZ2F0aW9uUG9saWN5OworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBOYXZpZ2F0aW9uUmVz
cG9uc2VUZXN0RGVsZWdhdGUgeworICAgIFJldGFpblB0cjxXS05hdmlnYXRpb25SZXNwb25zZT4g
X25hdmlnYXRpb25SZXNwb25zZTsKKyAgICBib29sIF9oYXNSZWNlaXZlZFJlc3BvbnNlQ2FsbGJh
Y2s7CisgICAgYm9vbCBfaGFzUmVjZWl2ZWROYXZpZ2F0aW9uRmluaXNoZWRDYWxsYmFjazsKK30K
KworLSAoV0tOYXZpZ2F0aW9uUmVzcG9uc2UgKiluYXZpZ2F0aW9uUmVzcG9uc2UKK3sKKyAgICBy
ZXR1cm4gX25hdmlnYXRpb25SZXNwb25zZS5nZXQoKTsKK30KKworLSAodm9pZCl3YWl0Rm9yTmF2
aWdhdGlvblJlc3BvbnNlQ2FsbGJhY2sKK3sKKyAgICBfaGFzUmVjZWl2ZWRSZXNwb25zZUNhbGxi
YWNrID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZfaGFzUmVjZWl2ZWRS
ZXNwb25zZUNhbGxiYWNrKTsKK30KKworLSAodm9pZCl3YWl0Rm9yTmF2aWdhdGlvbkZpbmlzaGVk
Q2FsbGJhY2sKK3sKKyAgICBfaGFzUmVjZWl2ZWROYXZpZ2F0aW9uRmluaXNoZWRDYWxsYmFjayA9
IGZhbHNlOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmX2hhc1JlY2VpdmVkTmF2aWdh
dGlvbkZpbmlzaGVkQ2FsbGJhY2spOworfQorCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0
aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdh
dGlvbkFjdGlvblBvbGljeSkpZGVjaXNpb25IYW5kbGVyCit7CisgICAgZGVjaXNpb25IYW5kbGVy
KFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93KTsKK30KKworLSAodm9pZCl3ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246KG51bGxfdW5zcGVjaWZpZWQg
V0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbgoreworICAgIF9oYXNSZWNlaXZlZE5hdmlnYXRpb25G
aW5pc2hlZENhbGxiYWNrID0gdHJ1ZTsKK30KKworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZTooV0tOYXZpZ2F0aW9u
UmVzcG9uc2UgKiluYXZpZ2F0aW9uUmVzcG9uc2UgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShX
S05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkpZGVjaXNpb25IYW5kbGVyCit7CisgICAgZGVjaXNp
b25IYW5kbGVyKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QWxsb3cpOworICAgIF9uYXZpZ2F0
aW9uUmVzcG9uc2UgPSBuYXZpZ2F0aW9uUmVzcG9uc2U7CisgICAgX2hhc1JlY2VpdmVkUmVzcG9u
c2VDYWxsYmFjayA9IHRydWU7Cit9CisKK0BlbmQKKworc3RhdGljIHZvaWQgcmVhZFJlcXVlc3Qo
aW50IHNvY2tldCkKK3sKKyAgICBjaGFyIHJlYWRCdWZmZXJbMTAwMF07CisgICAgYXV0byBieXRl
c1JlYWQgPSA6OnJlYWQoc29ja2V0LCByZWFkQnVmZmVyLCBzaXplb2YocmVhZEJ1ZmZlcikpOwor
ICAgIEVYUEVDVF9HVChieXRlc1JlYWQsIDApOworICAgIEVYUEVDVF9UUlVFKHN0YXRpY19jYXN0
PHNpemVfdD4oYnl0ZXNSZWFkKSA8IHNpemVvZihyZWFkQnVmZmVyKSk7Cit9CisKK3N0YXRpYyB2
b2lkIHdyaXRlUmVzcG9uc2UoaW50IHNvY2tldCwgTlNTdHJpbmcgKnJlc3BvbnNlKQoreworICAg
IGNvbnN0IGNoYXIqIGJ5dGVzID0gcmVzcG9uc2UuVVRGOFN0cmluZzsKKyAgICBhdXRvIGJ5dGVz
V3JpdHRlbiA9IDo6d3JpdGUoc29ja2V0LCBieXRlcywgc3RybGVuKGJ5dGVzKSk7CisgICAgRVhQ
RUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNXcml0dGVuKSwgc3RybGVuKGJ5dGVzKSk7
Cit9CisKK1RFU1QoV2ViS2l0LCBXS05hdmlnYXRpb25SZXNwb25zZURvd25sb2FkQXR0cmlidXRl
KQoreworICAgIFRlc3RXZWJLaXRBUEk6OlRDUFNlcnZlciBzZXJ2ZXIoW10oaW50IHNvY2tldCkg
eworICAgICAgICByZWFkUmVxdWVzdChzb2NrZXQpOworICAgICAgICBOU1N0cmluZyAqYm9keSA9
IEAiPGEgaWQ9J2xpbmsnIGhyZWY9Jy9mcm9tSHJlZi50eHQnIGRvd25sb2FkPSdmcm9tRG93bmxv
YWRBdHRyaWJ1dGUudHh0Jz5DbGljayBNZSE8L2E+IjsKKyAgICAgICAgdW5zaWduZWQgYm9keUxl
bmd0aCA9IGJvZHkubGVuZ3RoOworICAgICAgICB3cml0ZVJlc3BvbnNlKHNvY2tldCwgW05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6CisgICAgICAgICAgICBAIkhUVFAvMS4xIDIwMCBPS1xyXG4i
CisgICAgICAgICAgICAiQ29udGVudC1MZW5ndGg6ICVkXHJcblxyXG4iCisgICAgICAgICAgICAi
JUAiLAorICAgICAgICAgICAgYm9keUxlbmd0aCwKKyAgICAgICAgICAgIGJvZHkKKyAgICAgICAg
XSk7CisgICAgICAgIHJlYWRSZXF1ZXN0KHNvY2tldCk7CisgICAgICAgIHdyaXRlUmVzcG9uc2Uo
c29ja2V0LAorICAgICAgICAgICAgQCJIVFRQLzEuMSAyMDAgT0tcclxuIgorICAgICAgICAgICAg
IkNvbnRlbnQtTGVuZ3RoOiA2XHJcbiIKKyAgICAgICAgICAgICJDb250ZW50LURpc3Bvc2l0aW9u
OiBhdHRhY2htZW50OyBmaWxlbmFtZT1mcm9tSGVhZGVyLnR4dDtcclxuXHJcbiIKKyAgICAgICAg
ICAgICJIZWxsbyEiCisgICAgICAgICk7CisgICAgfSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW05hdmlnYXRpb25SZXNwb25zZVRlc3REZWxlZ2F0ZSBuZXddKTsKKyAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdh
dGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6W05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJodHRwOi8vMTI3LjAuMC4xOiVkLyIsIHNlcnZlci5wb3J0
KCldXV1dOworICAgIFtkZWxlZ2F0ZSB3YWl0Rm9yTmF2aWdhdGlvbkZpbmlzaGVkQ2FsbGJhY2td
OworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2xpbmsnKS5jbGljaygpOyIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBbZGVs
ZWdhdGUgd2FpdEZvck5hdmlnYXRpb25SZXNwb25zZUNhbGxiYWNrXTsKKyAgICAKKyAgICBXS05h
dmlnYXRpb25SZXNwb25zZSAqcmVzcG9uc2UgPSBbZGVsZWdhdGUgbmF2aWdhdGlvblJlc3BvbnNl
XTsKKyAgICBFWFBFQ1RfU1RSRVEocmVzcG9uc2UucmVzcG9uc2Uuc3VnZ2VzdGVkRmlsZW5hbWUu
VVRGOFN0cmluZywgImZyb21IZWFkZXIudHh0Iik7CisgICAgRVhQRUNUX1NUUkVRKHJlc3BvbnNl
Ll9kb3dubG9hZEF0dHJpYnV0ZS5VVEY4U3RyaW5nLCAiZnJvbURvd25sb2FkQXR0cmlidXRlLnR4
dCIpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367148</attachid>
            <date>2019-04-10 13:02:07 -0700</date>
            <delta_ts>2019-04-10 15:24:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196755-20190410130206.patch</filename>
            <type>text/plain</type>
            <size>41192</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDE0MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE5LTA0LTEwICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFNQSSBX
S05hdmlnYXRpb25SZXNwb25zZS5fZG93bmxvYWRBdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Njc1NQorICAgICAgICA8cmRhcjovLzQ5
NTg3MzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENvdmVyZWQgYnkgYW4gQVBJIHRlc3QgdGhhdCB2YWxpZGF0ZXMgdGhlIGF0dHJpYnV0ZSBpcyBj
b3JyZWN0bHkgc2VudCB0aHJvdWdoIHRoZSBGcmFtZUxvYWRlciB0byB0aGUgQVBJLgorICAgICAg
ICBXaGVuIGEgdXNlciBjbGlja3Mgb24gYSBsaW5rIHdpdGggYSBkb3dubG9hZCBhdHRyaWJ1dGUs
IHRoZSBkb3dubG9hZCBhdHRyaWJ1dGUgc2hvdWxkIGJlIHVzZWQgYXMgdGhlIHN1Z2dlc3RlZCBm
aWxlbmFtZSBzb21ldGltZXMuCisgICAgICAgIFRoZSBhcHBsaWNhdGlvbiBuZWVkcyB0aGlzIGlu
Zm9ybWF0aW9uIGFmdGVyIGl0IGhhcyByZWNlaXZlZCB0aGUgcmVzcG9uc2UgaW4gb3JkZXIgdG8g
bWFrZSBmdWxseSBpbmZvcm1lZCBkZWNpc2lvbnMgYWJvdXQgZG93bmxvYWRzLgorICAgICAgICBJ
biBvcmRlciB0byBnZXQgdGhpcyBhdHRyaWJ1dGUgdG8gdGhlIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25SZXNwb25zZSwgd2UgbmVlZCB0byBzdG9yZSB0aGUgYXR0cmlidXRlIG9uIHRoZSBEb2N1
bWVudExvYWRlcgorICAgICAgICBmcm9tIHRoZSBGcmFtZUxvYWRSZXF1ZXN0IHRoZW4gc2VuZCBp
dCBmcm9tIHRoZSBEb2N1bWVudExvYWRlciB3aGVuIHRoZSByZXNwb25zZSBpcyByZWNlaXZlZC4K
KworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXI6OnNldERvd25sb2FkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyOjpkb3dubG9hZEF0dHJpYnV0ZSBjb25zdCk6CisgICAgICAgICogbG9h
ZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGlj
eSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFVSTCk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRXaXRo
TmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6
CisKIDIwMTktMDQtMTAgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4K
IAogICAgICAgICBGaXggdGV4dCBhdXRvc2Nyb2xsaW5nIHdoZW4gdHlwaW5nIGluIG1vZGVybiB3
ZWJraXQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCShyZXZpc2lv
biAyNDQxNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMzU2LDYgKzM1Niw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFsbG93
c1dlYkFyY2hpdmVGb3JNYWluRnJhbWUoYm9vbCBhbGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1l
KSB7IG1fYWxsb3dzV2ViQXJjaGl2ZUZvck1haW5GcmFtZSA9IGFsbG93c1dlYkFyY2hpdmVGb3JN
YWluRnJhbWU7IH0KICAgICBib29sIGFsbG93c1dlYkFyY2hpdmVGb3JNYWluRnJhbWUoKSBjb25z
dCB7IHJldHVybiBtX2FsbG93c1dlYkFyY2hpdmVGb3JNYWluRnJhbWU7IH0KIAorICAgIHZvaWQg
c2V0RG93bmxvYWRBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiBhdHRyaWJ1dGUpIHsgbV9kb3dubG9h
ZEF0dHJpYnV0ZSA9IGF0dHJpYnV0ZTsgfQorICAgIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRy
aWJ1dGUoKSBjb25zdCB7IHJldHVybiBtX2Rvd25sb2FkQXR0cmlidXRlOyB9CisKIHByb3RlY3Rl
ZDoKICAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpOwogCkBAIC01ODEsNiArNTg0LDcgQEAgcHJpdmF0
ZToKICNlbmRpZgogCiAgICAgYm9vbCBtX2FsbG93c1dlYkFyY2hpdmVGb3JNYWluRnJhbWUgeyBm
YWxzZSB9OworICAgIFN0cmluZyBtX2Rvd25sb2FkQXR0cmlidXRlOwogfTsKIAogaW5saW5lIHZv
aWQgRG9jdW1lbnRMb2FkZXI6OnJlY29yZE1lbW9yeUNhY2hlTG9hZEZvckZ1dHVyZUNsaWVudE5v
dGlmaWNhdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDI0
NDE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgRW1w
dHlGcmFtZUxvYWRlckNsaQogICAgIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2b2lkIGRpc3Bh
dGNoU2hvdygpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJl
c3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWwgeyB9Cisg
ICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWwgeyB9CiAgICAgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmln
YXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUsIFBv
bGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2
b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWwgeyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDI0NDE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3Miw3ICszNzIsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbnRlbnRQb2xpY3koY29uCiAgICAgfQogCiAgICAgLy8g
RklYTUU6IFZhbGlkYXRlIHRoZSBwb2xpY3kgY2hlY2sgaWRlbnRpZmllci4KLSAgICBjbGllbnQo
KS5kaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHJlc3BvbnNlLCBhY3RpdmVEb2N1bWVu
dExvYWRlcigpLT5yZXF1ZXN0KCksIGlkZW50aWZpZXIsIFdURk1vdmUoZnVuY3Rpb24pKTsKKyAg
ICBjbGllbnQoKS5kaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHJlc3BvbnNlLCBhY3Rp
dmVEb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCksIGlkZW50aWZpZXIsIGFjdGl2ZURvY3VtZW50
TG9hZGVyKCktPmRvd25sb2FkQXR0cmlidXRlKCksIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAog
dm9pZCBGcmFtZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24oRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVl
c3QpCkBAIC0xNDE2LDcgKzE0MTYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKEZyYW1l
TG9hZFJlcXVlCiAgICAgaWYgKGlzU3lzdGVtUHJldmlldykKICAgICAgICAgcmVxdWVzdC5zZXRT
eXN0ZW1QcmV2aWV3UmVjdChmcmFtZUxvYWRSZXF1ZXN0LnN5c3RlbVByZXZpZXdSZWN0KCkpOwog
I2VuZGlmCi0gICAgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIFdURk1vdmUoYWN0
aW9uKSwgbG9ja0hpc3RvcnksIG5ld0xvYWRUeXBlLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGFsbG93
TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgW3RoaXMsIGlzUmVkaXJlY3QsIHNhbWVVUkwsIG5ld0xv
YWRUeXBlLCBwcm90ZWN0ZWRGcmFtZSA9IG1ha2VSZWYobV9mcmFtZSksIGNvbXBsZXRpb25IYW5k
bGVyID0gY29tcGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgpXSAoKSBtdXRhYmxlIHsKKyAg
ICBsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdCwgV1RGTW92ZShhY3Rpb24pLCBsb2Nr
SGlzdG9yeSwgbmV3TG9hZFR5cGUsIFdURk1vdmUoZm9ybVN0YXRlKSwgYWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMLCBmcmFtZUxvYWRSZXF1ZXN0LmRvd25sb2FkQXR0cmlidXRlKCksIFt0aGlz
LCBpc1JlZGlyZWN0LCBzYW1lVVJMLCBuZXdMb2FkVHlwZSwgcHJvdGVjdGVkRnJhbWUgPSBtYWtl
UmVmKG1fZnJhbWUpLCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVy
LnJlbGVhc2UoKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChpc1JlZGlyZWN0KSB7CiAgICAg
ICAgICAgICBtX3F1aWNrUmVkaXJlY3RDb21pbmcgPSBmYWxzZTsKICAgICAgICAgICAgIGlmICht
X3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIpCkBAIC0xNDkyLDExICsxNDkyLDEyIEBAIHZvaWQg
RnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVMb2FkUmVxdWVzdCYKICAgICBsb2FkKGxvYWRlci5nZXQo
KSk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIE5hdmlnYXRpb25BY3Rpb24mJiBhY3Rpb24sIExv
Y2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBGcmFtZUxvYWRUeXBlIHR5cGUsIFJlZlB0cjxGb3JtU3Rh
dGU+JiYgZm9ybVN0YXRlLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgYWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24oY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBOYXZpZ2F0aW9uQWN0aW9uJiYgYWN0aW9uLCBMb2Nr
SGlzdG9yeSBsb2NrSGlzdG9yeSwgRnJhbWVMb2FkVHlwZSB0eXBlLCBSZWZQdHI8Rm9ybVN0YXRl
PiYmIGZvcm1TdGF0ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlv
blRvSW52YWxpZFVSTCwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbjogZnJhbWUgbG9hZCBzdGFydGVk
IChmcmFtZSA9ICVwLCBtYWluID0gJWQpIiwgJm1fZnJhbWUsIG1fZnJhbWUuaXNNYWluRnJhbWUo
KSk7CiAKICAgICBSZWY8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9IG1fY2xpZW50LmNyZWF0ZURv
Y3VtZW50TG9hZGVyKHJlcXVlc3QsIGRlZmF1bHRTdWJzdGl0dXRlRGF0YUZvclVSTChyZXF1ZXN0
LnVybCgpKSk7CisgICAgbG9hZGVyLT5zZXREb3dubG9hZEF0dHJpYnV0ZShkb3dubG9hZEF0dHJp
YnV0ZSk7CiAgICAgYXBwbHlTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9OZXdEb2N1bWVu
dExvYWRlcihtX2ZyYW1lLCBsb2FkZXIsIGFjdGlvbi5pbml0aWF0ZWRCeU1haW5GcmFtZSgpLCBh
Y3Rpb24uc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpKTsKIAogICAgIGlmIChsb2NrSGlz
dG9yeSA9PSBMb2NrSGlzdG9yeTo6WWVzICYmIG1fZG9jdW1lbnRMb2FkZXIpCkBAIC0zMDE2LDcg
KzMwMTcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QoRnJhbWVMCiAgICAg
aWYgKCFmcmFtZU5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFRoZSBzZWFyY2ggZm9yIGEg
dGFyZ2V0IGZyYW1lIGlzIGRvbmUgZWFybGllciBpbiB0aGUgY2FzZSBvZiBmb3JtIHN1Ym1pc3Np
b24uCiAgICAgICAgIGlmIChhdXRvKiB0YXJnZXRGcmFtZSA9IGZvcm1TdGF0ZSA/IG51bGxwdHIg
OiBmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKGZyYW1lTmFtZSkpIHsKLSAgICAgICAgICAgIHRhcmdl
dEZyYW1lLT5sb2FkZXIoKS5sb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24od29ya2luZ1Jlc291cmNl
UmVxdWVzdCwgV1RGTW92ZShhY3Rpb24pLCBsb2NrSGlzdG9yeSwgbG9hZFR5cGUsIFdURk1vdmUo
Zm9ybVN0YXRlKSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgICAgICAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkubG9hZFdpdGhO
YXZpZ2F0aW9uQWN0aW9uKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QsIFdURk1vdmUoYWN0aW9uKSwg
bG9ja0hpc3RvcnksIGxvYWRUeXBlLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGFsbG93TmF2aWdhdGlv
blRvSW52YWxpZFVSTCwgeyB9LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMzAyOSw3ICszMDMwLDcgQEAgdm9pZCBGcmFt
ZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KEZyYW1lTAogCiAgICAgLy8gbXVzdCBncmFiIHRoaXMg
bm93LCBzaW5jZSB0aGlzIGxvYWQgbWF5IHN0b3AgdGhlIHByZXZpb3VzIGxvYWQgYW5kIGNsZWFy
IHRoaXMgZmxhZwogICAgIGJvb2wgaXNSZWRpcmVjdCA9IG1fcXVpY2tSZWRpcmVjdENvbWluZzsK
LSAgICBsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24od29ya2luZ1Jlc291cmNlUmVxdWVzdCwgV1RG
TW92ZShhY3Rpb24pLCBsb2NrSGlzdG9yeSwgbG9hZFR5cGUsIFdURk1vdmUoZm9ybVN0YXRlKSwg
YWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBbdGhpcywgaXNSZWRpcmVjdCwgcHJvdGVjdGVk
RnJhbWUgPSBtYWtlUmVmKG1fZnJhbWUpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICBsb2FkV2l0aE5hdmlnYXRpb25BY3Rp
b24od29ya2luZ1Jlc291cmNlUmVxdWVzdCwgV1RGTW92ZShhY3Rpb24pLCBsb2NrSGlzdG9yeSwg
bG9hZFR5cGUsIFdURk1vdmUoZm9ybVN0YXRlKSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
LCB7IH0sIFt0aGlzLCBpc1JlZGlyZWN0LCBwcm90ZWN0ZWRGcmFtZSA9IG1ha2VSZWYobV9mcmFt
ZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11
dGFibGUgewogICAgICAgICBpZiAoaXNSZWRpcmVjdCkgewogICAgICAgICAgICAgbV9xdWlja1Jl
ZGlyZWN0Q29taW5nID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAobV9wcm92aXNpb25hbERvY3Vt
ZW50TG9hZGVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHJldmlzaW9u
IDI0NDE0MykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zODEsNyArMzgxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvYWRXaXRoRG9j
dW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqLCBGcmFtZUxvYWRUeXBlLCBSZWZQdHI8Rm9ybVN0
YXRlPiYmLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsgLy8gQ2FsbHMg
Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5CiAgICAgdm9pZCBsb2FkKERvY3VtZW50
TG9hZGVyJik7IC8vIENhbGxzIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIKIAotICAgIHZvaWQgbG9h
ZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25B
Y3Rpb24mJiwgTG9ja0hpc3RvcnksIEZyYW1lTG9hZFR5cGUsIFJlZlB0cjxGb3JtU3RhdGU+JiYs
IEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
ID0gW10geyB9KTsgLy8gQ2FsbHMgbG9hZFdpdGhEb2N1bWVudExvYWRlcgorICAgIHZvaWQgbG9h
ZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25B
Y3Rpb24mJiwgTG9ja0hpc3RvcnksIEZyYW1lTG9hZFR5cGUsIFJlZlB0cjxGb3JtU3RhdGU+JiYs
IEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJp
YnV0ZSA9IHsgfSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsgLy8gQ2Fs
bHMgbG9hZFdpdGhEb2N1bWVudExvYWRlcgogCiAgICAgdm9pZCBsb2FkUG9zdFJlcXVlc3QoRnJh
bWVMb2FkUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBGcmFtZUxvYWRUeXBlLCBF
dmVudCosIFJlZlB0cjxGb3JtU3RhdGU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBsb2FkVVJMKEZyYW1lTG9hZFJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiByZWZl
cnJlciwgRnJhbWVMb2FkVHlwZSwgRXZlbnQqLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBPcHRpb25h
bDxBZENsaWNrQXR0cmlidXRpb24+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24g
MjQ0MTQzKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTE5MSw3ICsxOTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBGcmFt
ZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoU2hvdygpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVu
Y3Rpb24mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJl
c3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIEZy
YW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lk
ZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFBv
bGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2Rl
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyNDQxNDMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI3IEBACisyMDE5LTA0LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFNQSSBXS05hdmlnYXRpb25SZXNwb25zZS5f
ZG93bmxvYWRBdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5Njc1NQorICAgICAgICA8cmRhcjovLzQ5NTg3MzY1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElO
YXZpZ2F0aW9uUmVzcG9uc2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2
aWdhdGlvblJlc3BvbnNlLm1tOgorICAgICAgICAoLVtXS05hdmlnYXRpb25SZXNwb25zZSBfZG93
bmxvYWRBdHRyaWJ1dGVdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdh
dGlvblJlc3BvbnNlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwog
MjAxOS0wNC0xMCAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAg
ICAgV0tTY3JvbGxWaWV3IGJhY2tncm91bmQgY29sb3IgZG9lcyBub3QgbWF0Y2ggV0tXZWJWaWV3
IGJlZm9yZSBjb250ZW50IGlzIGxvYWRlZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDI0NDE0MykKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjgzLDkgKzI4Myw5IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUYKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwKLSAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBk
b3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQogewotICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3By
b2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVy
LCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGxpc3Rl
bmVySUQsIHVzZXJEYXRhKTsKKyAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgaWRl
bnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBl
LCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCiB2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVp
bnQ2NF90IGZyYW1lSUQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25h
bFBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmgJKHJldmlzaW9uIDI0NDE0MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTkxLDcgKzkx
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAg
ICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3Qg
VXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwKLSAgICAgICAgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgICAgIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2Fk
QXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZv
aWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKICAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRp
cmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBV
c2VyRGF0YSYpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CShyZXZpc2lvbiAyNDQxNDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NzY5LDEzICs0NzY5LDEzIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW4KIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dN
SU1FVHlwZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQor
ICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUs
IGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNo
YXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBp
ZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5
cGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKKyAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNo
YXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBp
ZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5
cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKIHZvaWQg
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1F
VHlwZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAg
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNv
bnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3Rv
cihwYWdlQ2xpZW50KCkpOwogCkBAIC00ODAzLDcgKzQ4MDMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uCiAgICAgaWYgKG1fcG9saWN5Q2xpZW50KQogICAgICAg
ICBtX3BvbGljeUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoKnRoaXMsICpmcmFtZSwg
cmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgV1RGTW92ZShsaXN0ZW5lciksIHBy
b2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgp
KTsKICAgICBlbHNlIHsKLSAgICAgICAgYXV0byBuYXZpZ2F0aW9uUmVzcG9uc2UgPSBBUEk6Ok5h
dmlnYXRpb25SZXNwb25zZTo6Y3JlYXRlKEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUoKmZyYW1lLCBm
cmFtZVNlY3VyaXR5T3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkpLmdldCgpLCByZXF1ZXN0LCByZXNw
b25zZSwgY2FuU2hvd01JTUVUeXBlKTsKKyAgICAgICAgYXV0byBuYXZpZ2F0aW9uUmVzcG9uc2Ug
PSBBUEk6Ok5hdmlnYXRpb25SZXNwb25zZTo6Y3JlYXRlKEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUo
KmZyYW1lLCBmcmFtZVNlY3VyaXR5T3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkpLmdldCgpLCByZXF1
ZXN0LCByZXNwb25zZSwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSk7CiAgICAg
ICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNl
KCp0aGlzLCBXVEZNb3ZlKG5hdmlnYXRpb25SZXNwb25zZSksIFdURk1vdmUobGlzdGVuZXIpLCBw
cm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQo
KSk7CiAgICAgfQogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJ
KHJldmlzaW9uIDI0NDE0MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDg3LDcgKzE0ODcsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZv
RGF0YSYmLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLAog
ICAgICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2
NF90IGxpc3RlbmVySUQpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsCi0gICAgICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGJvb2wgY2FuU2hvd01JTUVUeXBlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0
YSYpOworICAgICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNo
b3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlz
dGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1No
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsK
ICAgICB2b2lkIGxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3Qg
U3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBi
YXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9w
dCk7CiAgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNl
ckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCk7CkBAIC0xNjE1LDcgKzE2MTUsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50
NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsCi0gICAgICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgdW5hYmxlVG9JbXBsZW1lbnRQ
b2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNv
bnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVS
TCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSYpOwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lv
biAyNDQxNDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEwMiw3ICsxMDIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogI2VuZGlmCiAKICAgICAjIFBvbGljeSBtZXNzYWdlcwotICAgIERlY2lkZVBv
bGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktp
dDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0
X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ug
cmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dN
SU1FVHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBX
ZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdl
YktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBX
ZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCB1aW50NjRfdCBv
cmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25z
ZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKICAgICBE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29s
IGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlv
bkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5m
b0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJ
RCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHks
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkgLT4gKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lD
aGVja0lkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5
QWN0aW9uLCB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3du
bG9hZElELCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xp
Y2llcykgU3luY2hyb25vdXMKICAgICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWlu
dDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9u
QWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFt
ZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvblJlc3BvbnNlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25S
ZXNwb25zZS5oCShyZXZpc2lvbiAyNDQxNDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJTmF2aWdhdGlvblJlc3BvbnNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDggKzIzLDcg
QEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEFQ
SU5hdmlnYXRpb25SZXNwb25zZV9oCi0jZGVmaW5lIEFQSU5hdmlnYXRpb25SZXNwb25zZV9oCisj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSUZyYW1lSW5mby5oIgogI2luY2x1ZGUgIkFQSU9i
amVjdC5oIgpAQCAtMzcsMTcgKzM2LDkgQEAgY2xhc3MgRnJhbWVJbmZvOwogCiBjbGFzcyBOYXZp
Z2F0aW9uUmVzcG9uc2UgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6Ok5h
dmlnYXRpb25SZXNwb25zZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmF2aWdhdGlvblJl
c3BvbnNlPiBjcmVhdGUoQVBJOjpGcmFtZUluZm8mIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBib29sIGNhblNob3dNSU1FVHlwZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE5hdmlnYXRpb25SZXNwb25zZShmcmFtZSwgcmVxdWVzdCwgcmVzcG9uc2UsIGNh
blNob3dNSU1FVHlwZSkpOwotICAgIH0KLQotICAgIE5hdmlnYXRpb25SZXNwb25zZShBUEk6OkZy
YW1lSW5mbyYgZnJhbWUsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wgY2FuU2hvd01J
TUVUeXBlKQotICAgICAgICA6IG1fZnJhbWUoZnJhbWUpCi0gICAgICAgICwgbV9yZXF1ZXN0KHJl
cXVlc3QpCi0gICAgICAgICwgbV9yZXNwb25zZShyZXNwb25zZSkKLSAgICAgICAgLCBtX2NhblNo
b3dNSU1FVHlwZShjYW5TaG93TUlNRVR5cGUpCisgICAgc3RhdGljIFJlZjxOYXZpZ2F0aW9uUmVz
cG9uc2U+IGNyZWF0ZShBUEk6OkZyYW1lSW5mbyYgZnJhbWUsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBXVEY6OlN0cmluZyYgZG93bmxvYWRB
dHRyaWJ1dGUpCiAgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOYXZpZ2F0aW9u
UmVzcG9uc2UoZnJhbWUsIHJlcXVlc3QsIHJlc3BvbnNlLCBjYW5TaG93TUlNRVR5cGUsIGRvd25s
b2FkQXR0cmlidXRlKSk7CiAgICAgfQogCiAgICAgRnJhbWVJbmZvJiBmcmFtZSgpIHsgcmV0dXJu
IG1fZnJhbWUuZ2V0KCk7IH0KQEAgLTU2LDE1ICs0NywyMiBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UoKSBjb25zdCB7IHJldHVybiBtX3Jl
c3BvbnNlOyB9CiAKICAgICBib29sIGNhblNob3dNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2FuU2hvd01JTUVUeXBlOyB9CisgICAgY29uc3QgV1RGOjpTdHJpbmcmIGRvd25sb2FkQXR0cmli
dXRlKCkgY29uc3QgeyByZXR1cm4gbV9kb3dubG9hZEF0dHJpYnV0ZTsgfQogCiBwcml2YXRlOgor
ICAgIE5hdmlnYXRpb25SZXNwb25zZShBUEk6OkZyYW1lSW5mbyYgZnJhbWUsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBXVEY6OlN0cmluZyYg
ZG93bmxvYWRBdHRyaWJ1dGUpCisgICAgICAgIDogbV9mcmFtZShmcmFtZSkKKyAgICAgICAgLCBt
X3JlcXVlc3QocmVxdWVzdCkKKyAgICAgICAgLCBtX3Jlc3BvbnNlKHJlc3BvbnNlKQorICAgICAg
ICAsIG1fY2FuU2hvd01JTUVUeXBlKGNhblNob3dNSU1FVHlwZSkKKyAgICAgICAgLCBtX2Rvd25s
b2FkQXR0cmlidXRlKGRvd25sb2FkQXR0cmlidXRlKSB7IH0KKwogICAgIFJlZjxGcmFtZUluZm8+
IG1fZnJhbWU7CiAKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAg
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKICAgICBib29sIG1fY2FuU2hv
d01JTUVUeXBlOworICAgIFdURjo6U3RyaW5nIG1fZG93bmxvYWRBdHRyaWJ1dGU7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBBUEkKLQotI2VuZGlmIC8vIEFQSU5hdmlnYXRpb25SZXNwb25zZV9oCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9u
c2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
TmF2aWdhdGlvblJlc3BvbnNlLm1tCShyZXZpc2lvbiAyNDQxNDMpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTc4LDQgKzc4LDkgQEAgLSAoTlNVUkxSZXF1ZXN0ICopX3JlcXVlc3QKICAgICByZXR1
cm4gX25hdmlnYXRpb25SZXNwb25zZS0+cmVxdWVzdCgpLm5zVVJMUmVxdWVzdChXZWJDb3JlOjpI
VFRQQm9keVVwZGF0ZVBvbGljeTo6RG9Ob3RVcGRhdGVIVFRQQm9keSk7CiB9CiAKKy0gKE5TU3Ry
aW5nICopX2Rvd25sb2FkQXR0cmlidXRlCit7CisgICAgcmV0dXJuIF9uYXZpZ2F0aW9uUmVzcG9u
c2UtPmRvd25sb2FkQXR0cmlidXRlKCk7Cit9CisKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZVByaXZhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVz
cG9uc2VQcml2YXRlLmgJKHJldmlzaW9uIDI0NDE0MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZVByaXZhdGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksNSArMjksNiBAQAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdL
RnJhbWVJbmZvICpfZnJhbWU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJM
UmVxdWVzdCAqX3JlcXVlc3Q7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3Ry
aW5nICpfZG93bmxvYWRBdHRyaWJ1dGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCShyZXZpc2lvbiAyNDQxNDMpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03NjMsNyArNzYzLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93
KAogICAgIHdlYlBhZ2UtPnNob3coKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9u
KQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1
bmN0aW9uKQogewogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lID8gbV9mcmFtZS0+cGFn
ZSgpIDogbnVsbHB0cjsKICAgICBpZiAoIXdlYlBhZ2UpIHsKQEAgLTc5NCw3ICs3OTQsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkCiAgICAgUmVmPFdlYkZyYW1l
PiBwcm90ZWN0b3IoKm1fZnJhbWUpOwogICAgIHVpbnQ2NF90IGxpc3RlbmVySUQgPSBtX2ZyYW1l
LT5zZXRVcFBvbGljeUxpc3RlbmVyKGlkZW50aWZpZXIsIFdURk1vdmUoZnVuY3Rpb24pLCBXZWJG
cmFtZTo6Rm9yTmF2aWdhdGlvbkFjdGlvbjo6Tm8pOwogICAgIGlmICghd2ViUGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShtX2ZyYW1lLT5m
cmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGNvcmVGcmFtZSksIGlkZW50
aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsCi0gICAgICAgIGNhblNob3dS
ZXNwb25zZSwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJh
bnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSkpCisgICAgICAg
IGNhblNob3dSZXNwb25zZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIFVzZXJEYXRh
KFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRh
dGEuZ2V0KCkpLmdldCgpKSkpKQogICAgICAgICBtX2ZyYW1lLT5kaWRSZWNlaXZlUG9saWN5RGVj
aXNpb24obGlzdGVuZXJJRCwgaWRlbnRpZmllciwgUG9saWN5QWN0aW9uOjpJZ25vcmUsIDAsIHsg
fSwgeyB9KTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9u
IDI0NDE0MykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNyArMTIzLDcgQEAgcHJp
dmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNv
cmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZp
bmFsOwogICAgIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGlj
eUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdh
dGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZv
cm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9p
ZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZv
cm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAg
IHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI0NDE0MykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA0LTEwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFNQ
SSBXS05hdmlnYXRpb25SZXNwb25zZS5fZG93bmxvYWRBdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Njc1NQorICAgICAgICA8cmRhcjov
LzQ5NTg3MzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKwogMjAxOS0w
NC0xMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJs
ZSBQb2ludGVyIEV2ZW50cyBvbiB3YXRjaE9TCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgJKHJldmlzaW9uIDI0NDE0MykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNiw3ICsx
MjYsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2Uo
Y29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0
Y2hTaG93KCkgZmluYWw7CiAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJh
bWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiwgIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAg
dm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2Vi
Q29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZp
bmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNv
bnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNl
LCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYm
KSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5tbQkocmV2aXNpb24gMjQ0MTQzKQorKysgU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0JKHdvcmtp
bmcgY29weSkKQEAgLTg2Niw3ICs4NjYsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaFNob3coCiAgICAgW1t3ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3
U2hvdzp3ZWJWaWV3XTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIFdlYlZpZXcgKndl
YlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDQxNDMpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNC0x
MCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAg
IEFkZCBTUEkgV0tOYXZpZ2F0aW9uUmVzcG9uc2UuX2Rvd25sb2FkQXR0cmlidXRlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY3NTUKKyAgICAgICAg
PHJkYXI6Ly80OTU4NzM2NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgor
CiAyMDE5LTA0LTA1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQzODMzLgpJbmRleDogU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNpb24gMjQ0MTQzKQorKysgU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MjksNyArNTI5LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hTaG93KAogICAgICAgICB1aS0+d2ViVmlld1Nob3cod2ViVmlldyk7CiB9CiAKLXZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZyYW1lUG9s
aWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24m
JiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2ViVmll
dygpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKG1fd2ViRnJhbWUpOwpJbmRleDogU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiAyNDQxNDMpCisrKyBTb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hEaWRG
aW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlYWNoTGF5b3V0TWls
ZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KSBvdmVycmlkZTsKIAot
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
IG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFj
dGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0
ZSosIGNvbnN0IFdURjo6U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6
Rm9ybVN0YXRlKiwgV2ViQ29yZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIG92ZXJyaWRlOwpJbmRleDogVG9vbHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ0MTQzKQor
KysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTkt
MDQtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAg
ICAgICBBZGQgU1BJIFdLTmF2aWdhdGlvblJlc3BvbnNlLl9kb3dubG9hZEF0dHJpYnV0ZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzU1CisgICAg
ICAgIDxyZGFyOi8vNDk1ODczNjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLTmF2aWdh
dGlvblJlc3BvbnNlLm1tOgorICAgICAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VUZXN0RGVsZWdh
dGUgbmF2aWdhdGlvblJlc3BvbnNlXSk6CisgICAgICAgICgtW05hdmlnYXRpb25SZXNwb25zZVRl
c3REZWxlZ2F0ZSB3YWl0Rm9yTmF2aWdhdGlvblJlc3BvbnNlQ2FsbGJhY2tdKToKKyAgICAgICAg
KC1bTmF2aWdhdGlvblJlc3BvbnNlVGVzdERlbGVnYXRlIHdhaXRGb3JOYXZpZ2F0aW9uRmluaXNo
ZWRDYWxsYmFja10pOgorICAgICAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VUZXN0RGVsZWdhdGUg
d2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjpd
KToKKyAgICAgICAgKC1bTmF2aWdhdGlvblJlc3BvbnNlVGVzdERlbGVnYXRlIHdlYlZpZXc6ZGlk
RmluaXNoTmF2aWdhdGlvbjpdKToKKyAgICAgICAgKC1bTmF2aWdhdGlvblJlc3BvbnNlVGVzdERl
bGVnYXRlIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOmRlY2lzaW9u
SGFuZGxlcjpdKToKKyAgICAgICAgKHJlYWRSZXF1ZXN0KToKKyAgICAgICAgKHdyaXRlUmVzcG9u
c2UpOgorICAgICAgICAoVEVTVCk6CisKIDIwMTktMDQtMDkgIEFsYW4gQ29vbiAgPGFsYW5jb29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBDaGVycnktcGljayByMjQzODcwLiByZGFyOi8vcHJvYmxl
bS80OTcyNTY5NwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
S05hdmlnYXRpb25SZXNwb25zZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLm1tCShyZXZpc2lvbiAyNDQx
NDMpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLTmF2aWdhdGlv
blJlc3BvbnNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjaW1wb3J0
ICJjb25maWcuaCIKIAorI2ltcG9ydCAiVENQU2VydmVyLmgiCisjaW1wb3J0ICJUZXN0LmgiCiAj
aW1wb3J0ICJVdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25SZXNwb25z
ZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgogI2lt
cG9ydCA8V2ViS2l0L1dlYktpdC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpAQCAtMTQy
LDMgKzE0NSwxMDMgQEAgVEVTVChXZWJLaXQsIFdLTmF2aWdhdGlvblJlc3BvbnNlUERGVHlwZQog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVz
dFVSTF1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKIH0KKworQGlu
dGVyZmFjZSBOYXZpZ2F0aW9uUmVzcG9uc2VUZXN0RGVsZWdhdGUgOiBOU09iamVjdCA8V0tOYXZp
Z2F0aW9uRGVsZWdhdGU+CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tOYXZp
Z2F0aW9uUmVzcG9uc2UgKm5hdmlnYXRpb25SZXNwb25zZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
KSBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSBuYXZpZ2F0aW9uUG9saWN5OworCitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBOYXZpZ2F0aW9uUmVzcG9uc2VUZXN0RGVsZWdhdGUgeworICAgIFJl
dGFpblB0cjxXS05hdmlnYXRpb25SZXNwb25zZT4gX25hdmlnYXRpb25SZXNwb25zZTsKKyAgICBi
b29sIF9oYXNSZWNlaXZlZFJlc3BvbnNlQ2FsbGJhY2s7CisgICAgYm9vbCBfaGFzUmVjZWl2ZWRO
YXZpZ2F0aW9uRmluaXNoZWRDYWxsYmFjazsKK30KKworLSAoV0tOYXZpZ2F0aW9uUmVzcG9uc2Ug
KiluYXZpZ2F0aW9uUmVzcG9uc2UKK3sKKyAgICByZXR1cm4gX25hdmlnYXRpb25SZXNwb25zZS5n
ZXQoKTsKK30KKworLSAodm9pZCl3YWl0Rm9yTmF2aWdhdGlvblJlc3BvbnNlQ2FsbGJhY2sKK3sK
KyAgICBfaGFzUmVjZWl2ZWRSZXNwb25zZUNhbGxiYWNrID0gZmFsc2U7CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZfaGFzUmVjZWl2ZWRSZXNwb25zZUNhbGxiYWNrKTsKK30KKworLSAo
dm9pZCl3YWl0Rm9yTmF2aWdhdGlvbkZpbmlzaGVkQ2FsbGJhY2sKK3sKKyAgICBfaGFzUmVjZWl2
ZWROYXZpZ2F0aW9uRmluaXNoZWRDYWxsYmFjayA9IGZhbHNlOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmX2hhc1JlY2VpdmVkTmF2aWdhdGlvbkZpbmlzaGVkQ2FsbGJhY2spOworfQor
CistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkpZGVjaXNpb25I
YW5kbGVyCit7CisgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFs
bG93KTsKK30KKworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlz
aE5hdmlnYXRpb246KG51bGxfdW5zcGVjaWZpZWQgV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbgor
eworICAgIF9oYXNSZWNlaXZlZE5hdmlnYXRpb25GaW5pc2hlZENhbGxiYWNrID0gdHJ1ZTsKK30K
KworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25SZXNwb25zZTooV0tOYXZpZ2F0aW9uUmVzcG9uc2UgKiluYXZpZ2F0aW9uUmVzcG9u
c2UgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkp
ZGVjaXNpb25IYW5kbGVyCit7CisgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvblJlc3Bv
bnNlUG9saWN5QWxsb3cpOworICAgIF9uYXZpZ2F0aW9uUmVzcG9uc2UgPSBuYXZpZ2F0aW9uUmVz
cG9uc2U7CisgICAgX2hhc1JlY2VpdmVkUmVzcG9uc2VDYWxsYmFjayA9IHRydWU7Cit9CisKK0Bl
bmQKKworc3RhdGljIHZvaWQgcmVhZFJlcXVlc3QoaW50IHNvY2tldCkKK3sKKyAgICBjaGFyIHJl
YWRCdWZmZXJbMTAwMF07CisgICAgYXV0byBieXRlc1JlYWQgPSA6OnJlYWQoc29ja2V0LCByZWFk
QnVmZmVyLCBzaXplb2YocmVhZEJ1ZmZlcikpOworICAgIEVYUEVDVF9HVChieXRlc1JlYWQsIDAp
OworICAgIEVYUEVDVF9UUlVFKHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNSZWFkKSA8IHNpemVv
ZihyZWFkQnVmZmVyKSk7Cit9CisKK3N0YXRpYyB2b2lkIHdyaXRlUmVzcG9uc2UoaW50IHNvY2tl
dCwgTlNTdHJpbmcgKnJlc3BvbnNlKQoreworICAgIGNvbnN0IGNoYXIqIGJ5dGVzID0gcmVzcG9u
c2UuVVRGOFN0cmluZzsKKyAgICBhdXRvIGJ5dGVzV3JpdHRlbiA9IDo6d3JpdGUoc29ja2V0LCBi
eXRlcywgc3RybGVuKGJ5dGVzKSk7CisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4o
Ynl0ZXNXcml0dGVuKSwgc3RybGVuKGJ5dGVzKSk7Cit9CisKK1RFU1QoV2ViS2l0LCBXS05hdmln
YXRpb25SZXNwb25zZURvd25sb2FkQXR0cmlidXRlKQoreworICAgIFRlc3RXZWJLaXRBUEk6OlRD
UFNlcnZlciBzZXJ2ZXIoW10oaW50IHNvY2tldCkgeworICAgICAgICByZWFkUmVxdWVzdChzb2Nr
ZXQpOworICAgICAgICBOU1N0cmluZyAqYm9keSA9IEAiPGEgaWQ9J2xpbmsnIGhyZWY9Jy9mcm9t
SHJlZi50eHQnIGRvd25sb2FkPSdmcm9tRG93bmxvYWRBdHRyaWJ1dGUudHh0Jz5DbGljayBNZSE8
L2E+IjsKKyAgICAgICAgdW5zaWduZWQgYm9keUxlbmd0aCA9IGJvZHkubGVuZ3RoOworICAgICAg
ICB3cml0ZVJlc3BvbnNlKHNvY2tldCwgW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6CisgICAg
ICAgICAgICBAIkhUVFAvMS4xIDIwMCBPS1xyXG4iCisgICAgICAgICAgICAiQ29udGVudC1MZW5n
dGg6ICVkXHJcblxyXG4iCisgICAgICAgICAgICAiJUAiLAorICAgICAgICAgICAgYm9keUxlbmd0
aCwKKyAgICAgICAgICAgIGJvZHkKKyAgICAgICAgXSk7CisgICAgICAgIHJlYWRSZXF1ZXN0KHNv
Y2tldCk7CisgICAgICAgIHdyaXRlUmVzcG9uc2Uoc29ja2V0LAorICAgICAgICAgICAgQCJIVFRQ
LzEuMSAyMDAgT0tcclxuIgorICAgICAgICAgICAgIkNvbnRlbnQtTGVuZ3RoOiA2XHJcbiIKKyAg
ICAgICAgICAgICJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1mcm9t
SGVhZGVyLnR4dDtcclxuXHJcbiIKKyAgICAgICAgICAgICJIZWxsbyEiCisgICAgICAgICk7Cisg
ICAgfSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW05hdmlnYXRpb25SZXNwb25zZVRl
c3REZWxlZ2F0ZSBuZXddKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtXS1dlYlZpZXcg
bmV3XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgp
XTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJodHRw
Oi8vMTI3LjAuMC4xOiVkLyIsIHNlcnZlci5wb3J0KCldXV1dOworICAgIFtkZWxlZ2F0ZSB3YWl0
Rm9yTmF2aWdhdGlvbkZpbmlzaGVkQ2FsbGJhY2tdOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVK
YXZhU2NyaXB0OkAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpbmsnKS5jbGljaygpOyIgY29t
cGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBbZGVsZWdhdGUgd2FpdEZvck5hdmlnYXRpb25SZXNw
b25zZUNhbGxiYWNrXTsKKyAgICAKKyAgICBXS05hdmlnYXRpb25SZXNwb25zZSAqcmVzcG9uc2Ug
PSBbZGVsZWdhdGUgbmF2aWdhdGlvblJlc3BvbnNlXTsKKyAgICBFWFBFQ1RfU1RSRVEocmVzcG9u
c2UucmVzcG9uc2Uuc3VnZ2VzdGVkRmlsZW5hbWUuVVRGOFN0cmluZywgImZyb21IZWFkZXIudHh0
Iik7CisgICAgRVhQRUNUX1NUUkVRKHJlc3BvbnNlLl9kb3dubG9hZEF0dHJpYnV0ZS5VVEY4U3Ry
aW5nLCAiZnJvbURvd25sb2FkQXR0cmlidXRlLnR4dCIpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367170</attachid>
            <date>2019-04-10 15:24:50 -0700</date>
            <delta_ts>2019-04-10 15:56:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196755-20190410152449.patch</filename>
            <type>text/plain</type>
            <size>41173</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDAzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE5LTA0LTEwICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFNQSSBX
S05hdmlnYXRpb25SZXNwb25zZS5fZG93bmxvYWRBdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Njc1NQorICAgICAgICA8cmRhcjovLzQ5
NTg3MzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KKworICAgICAgICBD
b3ZlcmVkIGJ5IGFuIEFQSSB0ZXN0IHRoYXQgdmFsaWRhdGVzIHRoZSBhdHRyaWJ1dGUgaXMgY29y
cmVjdGx5IHNlbnQgdGhyb3VnaCB0aGUgRnJhbWVMb2FkZXIgdG8gdGhlIEFQSS4KKyAgICAgICAg
V2hlbiBhIHVzZXIgY2xpY2tzIG9uIGEgbGluayB3aXRoIGEgZG93bmxvYWQgYXR0cmlidXRlLCB0
aGUgZG93bmxvYWQgYXR0cmlidXRlIHNob3VsZCBiZSB1c2VkIGFzIHRoZSBzdWdnZXN0ZWQgZmls
ZW5hbWUgc29tZXRpbWVzLgorICAgICAgICBUaGUgYXBwbGljYXRpb24gbmVlZHMgdGhpcyBpbmZv
cm1hdGlvbiBhZnRlciBpdCBoYXMgcmVjZWl2ZWQgdGhlIHJlc3BvbnNlIGluIG9yZGVyIHRvIG1h
a2UgZnVsbHkgaW5mb3JtZWQgZGVjaXNpb25zIGFib3V0IGRvd25sb2Fkcy4KKyAgICAgICAgSW4g
b3JkZXIgdG8gZ2V0IHRoaXMgYXR0cmlidXRlIHRvIHRoZSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uUmVzcG9uc2UsIHdlIG5lZWQgdG8gc3RvcmUgdGhlIGF0dHJpYnV0ZSBvbiB0aGUgRG9jdW1l
bnRMb2FkZXIKKyAgICAgICAgZnJvbSB0aGUgRnJhbWVMb2FkUmVxdWVzdCB0aGVuIHNlbmQgaXQg
ZnJvbSB0aGUgRG9jdW1lbnRMb2FkZXIgd2hlbiB0aGUgcmVzcG9uc2UgaXMgcmVjZWl2ZWQuCisK
KyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyOjpzZXREb3dubG9hZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRlcjo6ZG93bmxvYWRBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAqIGxvYWRl
ci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0NvbnRlbnRQb2xpY3kp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRVUkwpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkV2l0aE5h
dmlnYXRpb25BY3Rpb24pOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgor
CiAyMDE5LTA0LTA4ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAg
ICAgWyBNYWMgV0syIGlPUyBEZWJ1ZyBdIFJFR1JFU1NJT04ocjIzMzY2NykgTGF5b3V0IFRlc3Qg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2Vz
L0RvY3VtZW50VGltZWxpbmUvY29uc3RydWN0b3IuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCShyZXZpc2lvbiAyNDQwMzMp
CisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMzU2LDYgKzM1Niw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFsbG93c1dlYkFyY2hp
dmVGb3JNYWluRnJhbWUoYm9vbCBhbGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lKSB7IG1fYWxs
b3dzV2ViQXJjaGl2ZUZvck1haW5GcmFtZSA9IGFsbG93c1dlYkFyY2hpdmVGb3JNYWluRnJhbWU7
IH0KICAgICBib29sIGFsbG93c1dlYkFyY2hpdmVGb3JNYWluRnJhbWUoKSBjb25zdCB7IHJldHVy
biBtX2FsbG93c1dlYkFyY2hpdmVGb3JNYWluRnJhbWU7IH0KIAorICAgIHZvaWQgc2V0RG93bmxv
YWRBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiBhdHRyaWJ1dGUpIHsgbV9kb3dubG9hZEF0dHJpYnV0
ZSA9IGF0dHJpYnV0ZTsgfQorICAgIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUoKSBj
b25zdCB7IHJldHVybiBtX2Rvd25sb2FkQXR0cmlidXRlOyB9CisKIHByb3RlY3RlZDoKICAgICBX
RUJDT1JFX0VYUE9SVCBEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBTdWJzdGl0dXRlRGF0YSYpOwogCkBAIC01ODEsNiArNTg0LDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAgICAgYm9vbCBtX2FsbG93c1dlYkFyY2hpdmVGb3JNYWluRnJhbWUgeyBmYWxzZSB9Owor
ICAgIFN0cmluZyBtX2Rvd25sb2FkQXR0cmlidXRlOwogfTsKIAogaW5saW5lIHZvaWQgRG9jdW1l
bnRMb2FkZXI6OnJlY29yZE1lbW9yeUNhY2hlTG9hZEZvckZ1dHVyZUNsaWVudE5vdGlmaWNhdGlv
bihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDI0NDAzMykKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTkzLDcgKzkzLDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgRW1wdHlGcmFtZUxv
YWRlckNsaQogICAgIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFj
dGlvbiYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2b2lkIGRpc3BhdGNoU2hvdygp
IGZpbmFsIHsgfQogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWwgeyB9CisgICAgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiwgUG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rp
b24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRp
cmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUsIFBvbGljeUNoZWNr
SWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNl
bFBvbGljeUNoZWNrKCkgZmluYWwgeyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAJKHJldmlzaW9uIDI0NDAzMykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3Miw3ICszNzIsNyBAQCB2b2lkIEZyYW1l
TG9hZGVyOjpjaGVja0NvbnRlbnRQb2xpY3koY29uCiAgICAgfQogCiAgICAgLy8gRklYTUU6IFZh
bGlkYXRlIHRoZSBwb2xpY3kgY2hlY2sgaWRlbnRpZmllci4KLSAgICBjbGllbnQoKS5kaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHJlc3BvbnNlLCBhY3RpdmVEb2N1bWVudExvYWRlcigp
LT5yZXF1ZXN0KCksIGlkZW50aWZpZXIsIFdURk1vdmUoZnVuY3Rpb24pKTsKKyAgICBjbGllbnQo
KS5kaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHJlc3BvbnNlLCBhY3RpdmVEb2N1bWVu
dExvYWRlcigpLT5yZXF1ZXN0KCksIGlkZW50aWZpZXIsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCkt
PmRvd25sb2FkQXR0cmlidXRlKCksIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAogdm9pZCBGcmFt
ZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24oRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QpCkBAIC0x
NDE2LDcgKzE0MTYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKEZyYW1lTG9hZFJlcXVl
CiAgICAgaWYgKGlzU3lzdGVtUHJldmlldykKICAgICAgICAgcmVxdWVzdC5zZXRTeXN0ZW1QcmV2
aWV3UmVjdChmcmFtZUxvYWRSZXF1ZXN0LnN5c3RlbVByZXZpZXdSZWN0KCkpOwogI2VuZGlmCi0g
ICAgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIFdURk1vdmUoYWN0aW9uKSwgbG9j
a0hpc3RvcnksIG5ld0xvYWRUeXBlLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGFsbG93TmF2aWdhdGlv
blRvSW52YWxpZFVSTCwgW3RoaXMsIGlzUmVkaXJlY3QsIHNhbWVVUkwsIG5ld0xvYWRUeXBlLCBw
cm90ZWN0ZWRGcmFtZSA9IG1ha2VSZWYobV9mcmFtZSksIGNvbXBsZXRpb25IYW5kbGVyID0gY29t
cGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgpXSAoKSBtdXRhYmxlIHsKKyAgICBsb2FkV2l0
aE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdCwgV1RGTW92ZShhY3Rpb24pLCBsb2NrSGlzdG9yeSwg
bmV3TG9hZFR5cGUsIFdURk1vdmUoZm9ybVN0YXRlKSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlk
VVJMLCBmcmFtZUxvYWRSZXF1ZXN0LmRvd25sb2FkQXR0cmlidXRlKCksIFt0aGlzLCBpc1JlZGly
ZWN0LCBzYW1lVVJMLCBuZXdMb2FkVHlwZSwgcHJvdGVjdGVkRnJhbWUgPSBtYWtlUmVmKG1fZnJh
bWUpLCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2Uo
KV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChpc1JlZGlyZWN0KSB7CiAgICAgICAgICAgICBt
X3F1aWNrUmVkaXJlY3RDb21pbmcgPSBmYWxzZTsKICAgICAgICAgICAgIGlmIChtX3Byb3Zpc2lv
bmFsRG9jdW1lbnRMb2FkZXIpCkBAIC0xNDkyLDExICsxNDkyLDEyIEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmxvYWQoRnJhbWVMb2FkUmVxdWVzdCYKICAgICBsb2FkKGxvYWRlci5nZXQoKSk7CiB9CiAK
LXZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIE5hdmlnYXRpb25BY3Rpb24mJiBhY3Rpb24sIExvY2tIaXN0b3J5
IGxvY2tIaXN0b3J5LCBGcmFtZUxvYWRUeXBlIHR5cGUsIFJlZlB0cjxGb3JtU3RhdGU+JiYgZm9y
bVN0YXRlLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZh
bGlkVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBOYXZpZ2F0aW9uQWN0aW9uJiYgYWN0aW9uLCBMb2NrSGlzdG9yeSBs
b2NrSGlzdG9yeSwgRnJhbWVMb2FkVHlwZSB0eXBlLCBSZWZQdHI8Rm9ybVN0YXRlPiYmIGZvcm1T
dGF0ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTCwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoImxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbjogZnJhbWUgbG9hZCBzdGFydGVkIChmcmFtZSA9
ICVwLCBtYWluID0gJWQpIiwgJm1fZnJhbWUsIG1fZnJhbWUuaXNNYWluRnJhbWUoKSk7CiAKICAg
ICBSZWY8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9IG1fY2xpZW50LmNyZWF0ZURvY3VtZW50TG9h
ZGVyKHJlcXVlc3QsIGRlZmF1bHRTdWJzdGl0dXRlRGF0YUZvclVSTChyZXF1ZXN0LnVybCgpKSk7
CisgICAgbG9hZGVyLT5zZXREb3dubG9hZEF0dHJpYnV0ZShkb3dubG9hZEF0dHJpYnV0ZSk7CiAg
ICAgYXBwbHlTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9OZXdEb2N1bWVudExvYWRlciht
X2ZyYW1lLCBsb2FkZXIsIGFjdGlvbi5pbml0aWF0ZWRCeU1haW5GcmFtZSgpLCBhY3Rpb24uc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpKTsKIAogICAgIGlmIChsb2NrSGlzdG9yeSA9PSBM
b2NrSGlzdG9yeTo6WWVzICYmIG1fZG9jdW1lbnRMb2FkZXIpCkBAIC0zMDE2LDcgKzMwMTcsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QoRnJhbWVMCiAgICAgaWYgKCFmcmFt
ZU5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFRoZSBzZWFyY2ggZm9yIGEgdGFyZ2V0IGZy
YW1lIGlzIGRvbmUgZWFybGllciBpbiB0aGUgY2FzZSBvZiBmb3JtIHN1Ym1pc3Npb24uCiAgICAg
ICAgIGlmIChhdXRvKiB0YXJnZXRGcmFtZSA9IGZvcm1TdGF0ZSA/IG51bGxwdHIgOiBmaW5kRnJh
bWVGb3JOYXZpZ2F0aW9uKGZyYW1lTmFtZSkpIHsKLSAgICAgICAgICAgIHRhcmdldEZyYW1lLT5s
b2FkZXIoKS5sb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24od29ya2luZ1Jlc291cmNlUmVxdWVzdCwg
V1RGTW92ZShhY3Rpb24pLCBsb2NrSGlzdG9yeSwgbG9hZFR5cGUsIFdURk1vdmUoZm9ybVN0YXRl
KSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisgICAgICAgICAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkubG9hZFdpdGhOYXZpZ2F0aW9u
QWN0aW9uKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QsIFdURk1vdmUoYWN0aW9uKSwgbG9ja0hpc3Rv
cnksIGxvYWRUeXBlLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTCwgeyB9LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIApAQCAtMzAyOSw3ICszMDMwLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6
bG9hZFBvc3RSZXF1ZXN0KEZyYW1lTAogCiAgICAgLy8gbXVzdCBncmFiIHRoaXMgbm93LCBzaW5j
ZSB0aGlzIGxvYWQgbWF5IHN0b3AgdGhlIHByZXZpb3VzIGxvYWQgYW5kIGNsZWFyIHRoaXMgZmxh
ZwogICAgIGJvb2wgaXNSZWRpcmVjdCA9IG1fcXVpY2tSZWRpcmVjdENvbWluZzsKLSAgICBsb2Fk
V2l0aE5hdmlnYXRpb25BY3Rpb24od29ya2luZ1Jlc291cmNlUmVxdWVzdCwgV1RGTW92ZShhY3Rp
b24pLCBsb2NrSGlzdG9yeSwgbG9hZFR5cGUsIFdURk1vdmUoZm9ybVN0YXRlKSwgYWxsb3dOYXZp
Z2F0aW9uVG9JbnZhbGlkVVJMLCBbdGhpcywgaXNSZWRpcmVjdCwgcHJvdGVjdGVkRnJhbWUgPSBt
YWtlUmVmKG1fZnJhbWUpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICBsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24od29ya2lu
Z1Jlc291cmNlUmVxdWVzdCwgV1RGTW92ZShhY3Rpb24pLCBsb2NrSGlzdG9yeSwgbG9hZFR5cGUs
IFdURk1vdmUoZm9ybVN0YXRlKSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCB7IH0sIFt0
aGlzLCBpc1JlZGlyZWN0LCBwcm90ZWN0ZWRGcmFtZSA9IG1ha2VSZWYobV9mcmFtZSksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewog
ICAgICAgICBpZiAoaXNSZWRpcmVjdCkgewogICAgICAgICAgICAgbV9xdWlja1JlZGlyZWN0Q29t
aW5nID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAobV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVy
KQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHJldmlzaW9uIDI0NDAzMykK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zODEsNyArMzgxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvYWRXaXRoRG9jdW1lbnRMb2Fk
ZXIoRG9jdW1lbnRMb2FkZXIqLCBGcmFtZUxvYWRUeXBlLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBB
bGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsgLy8gQ2FsbHMgY29udGludWVM
b2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5CiAgICAgdm9pZCBsb2FkKERvY3VtZW50TG9hZGVyJik7
IC8vIENhbGxzIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIKIAotICAgIHZvaWQgbG9hZFdpdGhOYXZp
Z2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25BY3Rpb24mJiwg
TG9ja0hpc3RvcnksIEZyYW1lTG9hZFR5cGUsIFJlZlB0cjxGb3JtU3RhdGU+JiYsIEFsbG93TmF2
aWdhdGlvblRvSW52YWxpZFVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9
KTsgLy8gQ2FsbHMgbG9hZFdpdGhEb2N1bWVudExvYWRlcgorICAgIHZvaWQgbG9hZFdpdGhOYXZp
Z2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25BY3Rpb24mJiwg
TG9ja0hpc3RvcnksIEZyYW1lTG9hZFR5cGUsIFJlZlB0cjxGb3JtU3RhdGU+JiYsIEFsbG93TmF2
aWdhdGlvblRvSW52YWxpZFVSTCwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSA9IHsg
fSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsgLy8gQ2FsbHMgbG9hZFdp
dGhEb2N1bWVudExvYWRlcgogCiAgICAgdm9pZCBsb2FkUG9zdFJlcXVlc3QoRnJhbWVMb2FkUmVx
dWVzdCYmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBGcmFtZUxvYWRUeXBlLCBFdmVudCosIFJl
ZlB0cjxGb3JtU3RhdGU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBsb2FkVVJMKEZyYW1lTG9hZFJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgRnJh
bWVMb2FkVHlwZSwgRXZlbnQqLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBPcHRpb25hbDxBZENsaWNr
QXR0cmlidXRpb24+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gMjQ0MDMzKQor
KysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE5MSw3ICsxOTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBGcmFtZSogZGlzcGF0
Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoU2hvdygpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFBvbGljeUNoZWNr
SWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBQb2xpY3lD
aGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDQw
NDgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDI3IEBACisyMDE5LTA0LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgQWRkIFNQSSBXS05hdmlnYXRpb25SZXNwb25zZS5fZG93bmxvYWRB
dHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5Njc1NQorICAgICAgICA8cmRhcjovLzQ5NTg3MzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5
IEJyYWR5IEVpZHNvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvblJl
c3BvbnNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNw
b25zZS5tbToKKyAgICAgICAgKC1bV0tOYXZpZ2F0aW9uUmVzcG9uc2UgX2Rvd25sb2FkQXR0cmli
dXRlXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25z
ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMTktMDQtMDgg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBG
aXggc2VsZWN0b3IgbmFtZSBhZnRlciByMjQzODM0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyNDQwMzMpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI4Myw5ICsyODMsOSBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGCiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgdWludDY0X3QgbGlzdGVuZXJJRCwg
Y29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmlu
ZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKIHsKLSAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQo
bV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgaWRlbnRp
ZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBs
aXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNl
U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1F
VHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0KIAogdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0
cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5n
LCB1aW50NjRfdCBmcmFtZUlEKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5oCShyZXZpc2lvbiAyNDQwMzMpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3
ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwK
ICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNv
bnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsCi0gICAgICAgIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgICAgICBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3du
bG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAg
ICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7CiAgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVy
UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVz
dGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29u
c3QgVXNlckRhdGEmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAkocmV2aXNpb24gMjQ0MDMzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc3NSwxMyArNDc3NSwxMyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBp
ZGVudGlmaWVyLAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKKyAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVU
eXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdp
biwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01J
TUVUeXBlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdp
biwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01J
TUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCiB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
KyAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBl
LCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90
ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDgwOSw3ICs0ODA5LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbgogICAgIGlmIChtX3BvbGljeUNsaWVudCkKICAg
ICAgICAgbV9wb2xpY3lDbGllbnQtPmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKCp0aGlzLCAqZnJh
bWUsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIFdURk1vdmUobGlzdGVuZXIp
LCBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5n
ZXQoKSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGF1dG8gbmF2aWdhdGlvblJlc3BvbnNlID0gQVBJ
OjpOYXZpZ2F0aW9uUmVzcG9uc2U6OmNyZWF0ZShBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKCpmcmFt
ZSwgZnJhbWVTZWN1cml0eU9yaWdpbi5zZWN1cml0eU9yaWdpbigpKS5nZXQoKSwgcmVxdWVzdCwg
cmVzcG9uc2UsIGNhblNob3dNSU1FVHlwZSk7CisgICAgICAgIGF1dG8gbmF2aWdhdGlvblJlc3Bv
bnNlID0gQVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U6OmNyZWF0ZShBUEk6OkZyYW1lSW5mbzo6Y3Jl
YXRlKCpmcmFtZSwgZnJhbWVTZWN1cml0eU9yaWdpbi5zZWN1cml0eU9yaWdpbigpKS5nZXQoKSwg
cmVxdWVzdCwgcmVzcG9uc2UsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUpOwog
ICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNw
b25zZSgqdGhpcywgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKGxpc3RlbmVy
KSwgcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSku
Z2V0KCkpOwogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCShyZXZpc2lvbiAyNDQwMzMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ3OSw3ICsxNDc5LDcgQEAgcHVibGljOgogICAg
ICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1l
SW5mb0RhdGEmJiwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwKICAgICAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1
aW50NjRfdCBsaXN0ZW5lcklEKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyLAotICAgICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNl
ckRhdGEmKTsKKyAgICAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBj
YW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRh
c2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMm
Jik7CiAgICAgdm9pZCBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNv
bnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmlu
ZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51
bGxvcHQpOwogICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3Qq
IHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFs
PFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQpOwpAQCAtMTYwNyw3ICsxNjA3
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAg
ICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwg
dWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBv
bGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELAotICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgICAgIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29s
IGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHVuYWJsZVRvSW1wbGVt
ZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
LCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgYmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25z
dCBVUkwmLCBib29sLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkmKTsKIApJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkocmV2
aXNpb24gMjQ0MDMzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNyArMTAyLDcgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xpY3kgbWVzc2FnZXMKLSAgICBEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBX
ZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNr
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVj
dCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1
Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgdWludDY0
X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJl
cXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVz
cG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiAg
ICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwg
Ym9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmln
YXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFt
ZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgdWludDY0X3Qgb3JpZ2luYXRpbmdQ
YWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RC
b2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBv
bGljeUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQg
ZG93bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRl
UG9saWNpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJh
bWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNo
ZWNrSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdh
dGlvbkFjdGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcg
ZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25SZXNwb25z
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0
aW9uUmVzcG9uc2UuaAkocmV2aXNpb24gMjQ0MDMzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSU5hdmlnYXRpb25SZXNwb25zZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsy
Myw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRl
ZiBBUElOYXZpZ2F0aW9uUmVzcG9uc2VfaAotI2RlZmluZSBBUElOYXZpZ2F0aW9uUmVzcG9uc2Vf
aAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElGcmFtZUluZm8uaCIKICNpbmNsdWRlICJB
UElPYmplY3QuaCIKQEAgLTM3LDE3ICszNiw5IEBAIGNsYXNzIEZyYW1lSW5mbzsKIAogY2xhc3Mg
TmF2aWdhdGlvblJlc3BvbnNlIGZpbmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBl
OjpOYXZpZ2F0aW9uUmVzcG9uc2U+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5hdmlnYXRp
b25SZXNwb25zZT4gY3JlYXRlKEFQSTo6RnJhbWVJbmZvJiBmcmFtZSwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgYm9vbCBjYW5TaG93TUlNRVR5cGUpCi0gICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBOYXZpZ2F0aW9uUmVzcG9uc2UoZnJhbWUsIHJlcXVlc3QsIHJlc3BvbnNl
LCBjYW5TaG93TUlNRVR5cGUpKTsKLSAgICB9Ci0KLSAgICBOYXZpZ2F0aW9uUmVzcG9uc2UoQVBJ
OjpGcmFtZUluZm8mIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGNhblNo
b3dNSU1FVHlwZSkKLSAgICAgICAgOiBtX2ZyYW1lKGZyYW1lKQotICAgICAgICAsIG1fcmVxdWVz
dChyZXF1ZXN0KQotICAgICAgICAsIG1fcmVzcG9uc2UocmVzcG9uc2UpCi0gICAgICAgICwgbV9j
YW5TaG93TUlNRVR5cGUoY2FuU2hvd01JTUVUeXBlKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4u
IEFyZ3M+IHN0YXRpYyBSZWY8TmF2aWdhdGlvblJlc3BvbnNlPiBjcmVhdGUoQXJncyYmLi4uIGFy
Z3MpCiAgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOYXZpZ2F0aW9uUmVzcG9u
c2Uoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7CiAgICAgfQogCiAgICAgRnJhbWVJbmZv
JiBmcmFtZSgpIHsgcmV0dXJuIG1fZnJhbWUuZ2V0KCk7IH0KQEAgLTU2LDE1ICs0NywyMiBAQCBw
dWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UoKSBj
b25zdCB7IHJldHVybiBtX3Jlc3BvbnNlOyB9CiAKICAgICBib29sIGNhblNob3dNSU1FVHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY2FuU2hvd01JTUVUeXBlOyB9CisgICAgY29uc3QgV1RGOjpTdHJp
bmcmIGRvd25sb2FkQXR0cmlidXRlKCkgY29uc3QgeyByZXR1cm4gbV9kb3dubG9hZEF0dHJpYnV0
ZTsgfQogCiBwcml2YXRlOgorICAgIE5hdmlnYXRpb25SZXNwb25zZShBUEk6OkZyYW1lSW5mbyYg
ZnJhbWUsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBj
b25zdCBXVEY6OlN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUpCisgICAgICAgIDogbV9mcmFtZShm
cmFtZSkKKyAgICAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKKyAgICAgICAgLCBtX3Jlc3BvbnNl
KHJlc3BvbnNlKQorICAgICAgICAsIG1fY2FuU2hvd01JTUVUeXBlKGNhblNob3dNSU1FVHlwZSkK
KyAgICAgICAgLCBtX2Rvd25sb2FkQXR0cmlidXRlKGRvd25sb2FkQXR0cmlidXRlKSB7IH0KKwog
ICAgIFJlZjxGcmFtZUluZm8+IG1fZnJhbWU7CiAKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgbV9yZXF1ZXN0OwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsK
ICAgICBib29sIG1fY2FuU2hvd01JTUVUeXBlOworICAgIFdURjo6U3RyaW5nIG1fZG93bmxvYWRB
dHRyaWJ1dGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKLQotI2VuZGlmIC8vIEFQSU5hdmln
YXRpb25SZXNwb25zZV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tOYXZpZ2F0aW9uUmVzcG9uc2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLm1tCShyZXZpc2lvbiAyNDQwMzMp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9u
c2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTc4LDQgKzc4LDkgQEAgLSAoTlNVUkxSZXF1ZXN0ICop
X3JlcXVlc3QKICAgICByZXR1cm4gX25hdmlnYXRpb25SZXNwb25zZS0+cmVxdWVzdCgpLm5zVVJM
UmVxdWVzdChXZWJDb3JlOjpIVFRQQm9keVVwZGF0ZVBvbGljeTo6RG9Ob3RVcGRhdGVIVFRQQm9k
eSk7CiB9CiAKKy0gKE5TU3RyaW5nICopX2Rvd25sb2FkQXR0cmlidXRlCit7CisgICAgcmV0dXJu
IF9uYXZpZ2F0aW9uUmVzcG9uc2UtPmRvd25sb2FkQXR0cmlidXRlKCk7Cit9CisKIEBlbmQKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25z
ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2VQcml2YXRlLmgJKHJldmlzaW9uIDI0NDAzMykKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZVByaXZh
dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNSArMjksNiBAQAogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIFdLRnJhbWVJbmZvICpfZnJhbWU7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TVVJMUmVxdWVzdCAqX3JlcXVlc3Q7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TU3RyaW5nICpfZG93bmxvYWRBdHRyaWJ1dGUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZApJbmRleDogU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lvbiAyNDQwMzMpCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03NjMsNyArNzYzLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hTaG93KAogICAgIHdlYlBhZ2UtPnNob3coKTsKIH0KIAotdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgRnJhbWVQb2xpY3lG
dW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgRnJhbWVQ
b2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2Zy
YW1lID8gbV9mcmFtZS0+cGFnZSgpIDogbnVsbHB0cjsKICAgICBpZiAoIXdlYlBhZ2UpIHsKQEAg
LTc5NCw3ICs3OTQsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lk
CiAgICAgUmVmPFdlYkZyYW1lPiBwcm90ZWN0b3IoKm1fZnJhbWUpOwogICAgIHVpbnQ2NF90IGxp
c3RlbmVySUQgPSBtX2ZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyKGlkZW50aWZpZXIsIFdURk1v
dmUoZnVuY3Rpb24pLCBXZWJGcmFtZTo6Rm9yTmF2aWdhdGlvbkFjdGlvbjo6Tm8pOwogICAgIGlm
ICghd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShtX2ZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1l
KGNvcmVGcmFtZSksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3Qs
Ci0gICAgICAgIGNhblNob3dSZXNwb25zZSwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSku
Z2V0KCkpKSkpCisgICAgICAgIGNhblNob3dSZXNwb25zZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxp
c3RlbmVySUQsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVj
dHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSkpKQogICAgICAgICBtX2ZyYW1lLT5k
aWRSZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwgaWRlbnRpZmllciwgUG9saWN5QWN0
aW9uOjpJZ25vcmUsIDAsIHsgfSwgeyB9KTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgJKHJldmlzaW9uIDI0NDAzMykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjMsNyArMTIzLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVh
dGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbDsKICAgICB2b2lk
IGRpc3BhdGNoU2hvdygpIGZpbmFsOwogICAgIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZp
bmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29u
c3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24m
JikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVz
cG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0
aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKSW5kZXg6
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDAzMykKKysrIFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDE5LTA0LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgQWRkIFNQSSBXS05hdmlnYXRpb25SZXNwb25zZS5fZG93bmxvYWRBdHRyaWJ1
dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Njc1
NQorICAgICAgICA8cmRhcjovLzQ5NTg3MzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyYWR5
IEVpZHNvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06Cisg
ICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisKIDIwMTktMDQtMDUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKEFwcGxlV2ViS2l0LzYwNS4xLjE1KTogV2Vi
RG93bmxvYWREZWxlZ2F0ZSBkZWxlZ2F0ZSBtZXRob2RzIGNhbGxlZCBvbiBub24tbWFpbiB0aHJl
YWQKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gMjQ0MDMzKQorKysg
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDcgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAgV2Vi
Q29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9u
QWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAotICAgIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFs
OworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCAgV2ViQ29yZTo6RnJh
bWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBX
VEY6OlN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdl
YkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFj
dGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdl
YkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2Vs
UG9saWN5Q2hlY2soKSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCShy
ZXZpc2lvbiAyNDQwMzMpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtODY2LDcgKzg2Niw3
IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygKICAgICBbW3dlYlZp
ZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXdTaG93OndlYlZpZXddOwogfQogCi12b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBGcmFtZVBv
bGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYgZnVuY3Rpb24pCiB7CiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93ZWJG
cmFtZS5nZXQoKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9u
IDI0NDEwMikKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA0LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFNQSSBXS05hdmlnYXRpb25SZXNw
b25zZS5fZG93bmxvYWRBdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5Njc1NQorICAgICAgICA8cmRhcjovLzQ5NTg3MzY1PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE5LTA0LTA1ICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMjQzODMzLgpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNp
b24gMjQ0MDMzKQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MjksNyArNTI5LDcgQEAg
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93KAogICAgICAgICB1aS0+d2Vi
Vmlld1Nob3cod2ViVmlldyk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3Zv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3
KiB3ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2ViVmlldygpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUg
PSBjb3JlKG1fd2ViRnJhbWUpOwpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCShyZXZp
c2lvbiAyNDQwMzMpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNyArMTAwLDcgQEAg
cHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaXNwYXRjaERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpM
YXlvdXRNaWxlc3RvbmU+KSBvdmVycmlkZTsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rp
b24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNvbnN0IFdURjo6U3RyaW5nJiBmcmFt
ZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYgcmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2ViQ29yZTo6UG9saWN5
RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZy
YW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVj
aygpIG92ZXJyaWRlOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0NoYW5nZUxvZwkocmV2aXNpb24gMjQ0MTAxKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMDQtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJIFdLTmF2aWdhdGlvblJl
c3BvbnNlLl9kb3dubG9hZEF0dHJpYnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzU1CisgICAgICAgIDxyZGFyOi8vNDk1ODczNjU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5tbToKKyAgICAgICAgKC1b
TmF2aWdhdGlvblJlc3BvbnNlVGVzdERlbGVnYXRlIG5hdmlnYXRpb25SZXNwb25zZV0pOgorICAg
ICAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VUZXN0RGVsZWdhdGUgd2FpdEZvck5hdmlnYXRpb25S
ZXNwb25zZUNhbGxiYWNrXSk6CisgICAgICAgICgtW05hdmlnYXRpb25SZXNwb25zZVRlc3REZWxl
Z2F0ZSB3YWl0Rm9yTmF2aWdhdGlvbkZpbmlzaGVkQ2FsbGJhY2tdKToKKyAgICAgICAgKC1bTmF2
aWdhdGlvblJlc3BvbnNlVGVzdERlbGVnYXRlIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW05hdmlnYXRpb25SZXNw
b25zZVRlc3REZWxlZ2F0ZSB3ZWJWaWV3OmRpZEZpbmlzaE5hdmlnYXRpb246XSk6CisgICAgICAg
ICgtW05hdmlnYXRpb25SZXNwb25zZVRlc3REZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25SZXNwb25zZTpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgIChyZWFkUmVx
dWVzdCk6CisgICAgICAgICh3cml0ZVJlc3BvbnNlKToKKyAgICAgICAgKFRFU1QpOgorCiAyMDE5
LTA0LTA5ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkIGJ1aWxkIG1haW50ZW5hbmNlIC0tIHVwZGF0ZSAueGNmaWxlbGlzdHMuCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNl
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tOYXZpZ2F0aW9uUmVzcG9uc2UubW0JKHJldmlzaW9uIDI0NDAzMykKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UubW0JKHdvcmtp
bmcgY29weSkKQEAgLTI1LDcgKzI1LDEwIEBACiAKICNpbXBvcnQgImNvbmZpZy5oIgogCisjaW1w
b3J0ICJUQ1BTZXJ2ZXIuaCIKKyNpbXBvcnQgIlRlc3QuaCIKICNpbXBvcnQgIlV0aWxpdGllcy5o
IgorI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvblJlc3BvbnNlUHJpdmF0ZS5oPgogI2ltcG9y
dCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC0xNDIsMyArMTQ1LDEwMyBAQCBURVNU
KFdlYktpdCwgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQREZUeXBlCiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMXV07CiAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOwogfQorCitAaW50ZXJmYWNlIE5hdmlnYXRpb25S
ZXNwb25zZVRlc3REZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KKwor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS05hdmlnYXRpb25SZXNwb25zZSAqbmF2
aWdhdGlvblJlc3BvbnNlOworQHByb3BlcnR5IChub25hdG9taWMpIFdLTmF2aWdhdGlvblJlc3Bv
bnNlUG9saWN5IG5hdmlnYXRpb25Qb2xpY3k7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIE5h
dmlnYXRpb25SZXNwb25zZVRlc3REZWxlZ2F0ZSB7CisgICAgUmV0YWluUHRyPFdLTmF2aWdhdGlv
blJlc3BvbnNlPiBfbmF2aWdhdGlvblJlc3BvbnNlOworICAgIGJvb2wgX2hhc1JlY2VpdmVkUmVz
cG9uc2VDYWxsYmFjazsKKyAgICBib29sIF9oYXNSZWNlaXZlZE5hdmlnYXRpb25GaW5pc2hlZENh
bGxiYWNrOworfQorCistIChXS05hdmlnYXRpb25SZXNwb25zZSAqKW5hdmlnYXRpb25SZXNwb25z
ZQoreworICAgIHJldHVybiBfbmF2aWdhdGlvblJlc3BvbnNlLmdldCgpOworfQorCistICh2b2lk
KXdhaXRGb3JOYXZpZ2F0aW9uUmVzcG9uc2VDYWxsYmFjaworeworICAgIF9oYXNSZWNlaXZlZFJl
c3BvbnNlQ2FsbGJhY2sgPSBmYWxzZTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJl9o
YXNSZWNlaXZlZFJlc3BvbnNlQ2FsbGJhY2spOworfQorCistICh2b2lkKXdhaXRGb3JOYXZpZ2F0
aW9uRmluaXNoZWRDYWxsYmFjaworeworICAgIF9oYXNSZWNlaXZlZE5hdmlnYXRpb25GaW5pc2hl
ZENhbGxiYWNrID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZfaGFzUmVj
ZWl2ZWROYXZpZ2F0aW9uRmluaXNoZWRDYWxsYmFjayk7Cit9CisKKy0gKHZvaWQpd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05h
dmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBkZWNp
c2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOworfQorCistICh2b2lk
KXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmluaXNoTmF2aWdhdGlvbjoobnVsbF91
bnNwZWNpZmllZCBXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uCit7CisgICAgX2hhc1JlY2VpdmVk
TmF2aWdhdGlvbkZpbmlzaGVkQ2FsbGJhY2sgPSB0cnVlOworfQorCistICh2b2lkKXdlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOihX
S05hdmlnYXRpb25SZXNwb25zZSAqKW5hdmlnYXRpb25SZXNwb25zZSBkZWNpc2lvbkhhbmRsZXI6
KHZvaWQgKF4pKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KSlkZWNpc2lvbkhhbmRsZXIKK3sK
KyAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lBbGxvdyk7Cisg
ICAgX25hdmlnYXRpb25SZXNwb25zZSA9IG5hdmlnYXRpb25SZXNwb25zZTsKKyAgICBfaGFzUmVj
ZWl2ZWRSZXNwb25zZUNhbGxiYWNrID0gdHJ1ZTsKK30KKworQGVuZAorCitzdGF0aWMgdm9pZCBy
ZWFkUmVxdWVzdChpbnQgc29ja2V0KQoreworICAgIGNoYXIgcmVhZEJ1ZmZlclsxMDAwXTsKKyAg
ICBhdXRvIGJ5dGVzUmVhZCA9IDo6cmVhZChzb2NrZXQsIHJlYWRCdWZmZXIsIHNpemVvZihyZWFk
QnVmZmVyKSk7CisgICAgRVhQRUNUX0dUKGJ5dGVzUmVhZCwgMCk7CisgICAgRVhQRUNUX1RSVUUo
c3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1JlYWQpIDwgc2l6ZW9mKHJlYWRCdWZmZXIpKTsKK30K
Kworc3RhdGljIHZvaWQgd3JpdGVSZXNwb25zZShpbnQgc29ja2V0LCBOU1N0cmluZyAqcmVzcG9u
c2UpCit7CisgICAgY29uc3QgY2hhciogYnl0ZXMgPSByZXNwb25zZS5VVEY4U3RyaW5nOworICAg
IGF1dG8gYnl0ZXNXcml0dGVuID0gOjp3cml0ZShzb2NrZXQsIGJ5dGVzLCBzdHJsZW4oYnl0ZXMp
KTsKKyAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1dyaXR0ZW4pLCBzdHJs
ZW4oYnl0ZXMpKTsKK30KKworVEVTVChXZWJLaXQsIFdLTmF2aWdhdGlvblJlc3BvbnNlRG93bmxv
YWRBdHRyaWJ1dGUpCit7CisgICAgVGVzdFdlYktpdEFQSTo6VENQU2VydmVyIHNlcnZlcihbXShp
bnQgc29ja2V0KSB7CisgICAgICAgIHJlYWRSZXF1ZXN0KHNvY2tldCk7CisgICAgICAgIE5TU3Ry
aW5nICpib2R5ID0gQCI8YSBpZD0nbGluaycgaHJlZj0nL2Zyb21IcmVmLnR4dCcgZG93bmxvYWQ9
J2Zyb21Eb3dubG9hZEF0dHJpYnV0ZS50eHQnPkNsaWNrIE1lITwvYT4iOworICAgICAgICB1bnNp
Z25lZCBib2R5TGVuZ3RoID0gYm9keS5sZW5ndGg7CisgICAgICAgIHdyaXRlUmVzcG9uc2Uoc29j
a2V0LCBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDoKKyAgICAgICAgICAgIEAiSFRUUC8xLjEg
MjAwIE9LXHJcbiIKKyAgICAgICAgICAgICJDb250ZW50LUxlbmd0aDogJWRcclxuXHJcbiIKKyAg
ICAgICAgICAgICIlQCIsCisgICAgICAgICAgICBib2R5TGVuZ3RoLAorICAgICAgICAgICAgYm9k
eQorICAgICAgICBdKTsKKyAgICAgICAgcmVhZFJlcXVlc3Qoc29ja2V0KTsKKyAgICAgICAgd3Jp
dGVSZXNwb25zZShzb2NrZXQsCisgICAgICAgICAgICBAIkhUVFAvMS4xIDIwMCBPS1xyXG4iCisg
ICAgICAgICAgICAiQ29udGVudC1MZW5ndGg6IDZcclxuIgorICAgICAgICAgICAgIkNvbnRlbnQt
RGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPWZyb21IZWFkZXIudHh0O1xyXG5cclxu
IgorICAgICAgICAgICAgIkhlbGxvISIKKyAgICAgICAgKTsKKyAgICB9KTsKKyAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbTmF2aWdhdGlvblJlc3BvbnNlVGVzdERlbGVnYXRlIG5ld10pOwor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1dLV2ViVmlldyBuZXddKTsKKyAgICBbd2ViVmll
dyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAImh0dHA6Ly8xMjcuMC4wLjE6JWQvIiwg
c2VydmVyLnBvcnQoKV1dXV07CisgICAgW2RlbGVnYXRlIHdhaXRGb3JOYXZpZ2F0aW9uRmluaXNo
ZWRDYWxsYmFja107CisKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnbGluaycpLmNsaWNrKCk7IiBjb21wbGV0aW9uSGFuZGxlcjpuaWxd
OworICAgIFtkZWxlZ2F0ZSB3YWl0Rm9yTmF2aWdhdGlvblJlc3BvbnNlQ2FsbGJhY2tdOworICAg
IAorICAgIFdLTmF2aWdhdGlvblJlc3BvbnNlICpyZXNwb25zZSA9IFtkZWxlZ2F0ZSBuYXZpZ2F0
aW9uUmVzcG9uc2VdOworICAgIEVYUEVDVF9TVFJFUShyZXNwb25zZS5yZXNwb25zZS5zdWdnZXN0
ZWRGaWxlbmFtZS5VVEY4U3RyaW5nLCAiZnJvbUhlYWRlci50eHQiKTsKKyAgICBFWFBFQ1RfU1RS
RVEocmVzcG9uc2UuX2Rvd25sb2FkQXR0cmlidXRlLlVURjhTdHJpbmcsICJmcm9tRG93bmxvYWRB
dHRyaWJ1dGUudHh0Iik7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>